file type: BASIC programm (0x00)
Raw ASCII flag is: 0
ASCII flag: tokenized BASIC (0x00)
gap flag is 0x0 (0x00=no gaps, 0xff=gaps)
machine code starting address: 0x4558
machine code loading address: 0x3339
1_super_d.WAV from Dragon Software Issue 22 (1986)(GTS)(ES)[a][WAV]
Filename: 'SUPER-D'
file type: BASIC programm (0x00)
Raw ASCII flag is: 0
ASCII flag: tokenized BASIC (0x00)
gap flag is 0x0 (0x00=no gaps, 0xff=gaps)
machine code starting address: 0x5355
machine code loading address: 0x5045
4_super.WAV from Dragon Software Issue 22 (1986)(GTS)(ES)[a][WAV]
Filename: 'SUPER'
file type: BASIC programm (0x00)
Raw ASCII flag is: 0
ASCII flag: tokenized BASIC (0x00)
gap flag is 0x0 (0x00=no gaps, 0xff=gaps)
machine code starting address: 0x5355
machine code loading address: 0x5045
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
Filename: 'MILIPEED'
file type: BASIC programm (0x00)
Raw ASCII flag is: 0
ASCII flag: tokenized BASIC (0x00)
gap flag is 0x0 (0x00=no gaps, 0xff=gaps)
machine code starting address: 0x4d49
machine code loading address: 0x4c49
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
jedie wrote:Exist here anywhere a list with the information which files [...] are BASIC programs?
I don't know if anyone has made a list, but some information for Microdeal's programs can be gleaned from the cassette inlay. If it is a BASIC program the name Microdeal will be spread out (for an example see Alcatraz II), for m/c programs the name will have normal kerning (e.g., Cashman).
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
If you take a look at the description of the CAS file format in the Tape/Disk Preservation section, you'll see that the load and execution addresses are stores in the name block.
See points 5.5 and 5.6 below:
5.1 An 8 byte program name
5.2 A file ID byte where:
00=BASIC program
01=Data file
02=Binary file
5.3 An ASCII flag where:
00=Binary file
FF=ASCII file
5.4 A gap flag to indicate whether the
data stream is continuous (00) as
in binary or BASIC files, or in blocks
where the tape keeps stopping (FF) as
in data files.
5.5 Two bytes for the default EXEC address
of a binary file.
5.6 Two bytes for the default load address
of a binary file.
Yes, i grab it from the name block if the source is wave or a cas file.
But if PyDC should convert a bas to wav/cas then i must "create" a "machine code starting/loading address"...
But it seems that the values are only used in machine code and only exist in BASIC code, because it the same format.
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
jedie wrote:Yes, i grab it from the name block if the source is wave or a cas file.
But if PyDC should convert a bas to wav/cas then i must "create" a "machine code starting/loading address"...
But it seems that the values are only used in machine code and only exist in BASIC code, because it the same format.
That's what I tried to say already on the mailing list. In case of file ID other than 2 (MC) it seems irrelevant what the addr fields contain. The filename is just a method to ensure that just in case a load the address does not harm the system (too much).
The load and exec addresses aren't used for BASIC files. If you're seeing ASCII characters repeated from the filename in there, it's probably just a result of memory or registers being reused. Those two fields can be ignored - actually I suspect you could just use an 11 byte header block for BASIC if you like; the header length doesn't have to be 15 bytes; it can be > 15 up to 255 bytes so I expect that it could be < 15 too!
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809