AMSDOS Header: Difference between revisions
From CPCWiki - THE Amstrad CPC encyclopedia!
More actions
wrong byte offsets for file length and checksum (thanks to Targhan) |
moar info |
||
| Line 2: | Line 2: | ||
<pre> | <pre> | ||
Byte 00: User number | Byte 00: User number (value from 0 to 15 or #E5 for deleted entries) | ||
Byte 01 to 08: filename | Byte 01 to 08: filename (fill unused char with spaces) | ||
Byte 09 bis 11: Extension | Byte 09 bis 11: Extension (fill unused char with spaces) | ||
Byte 18: type-byte | Byte 16: first block (tape only) | ||
Byte 21 and 22: loading address | Byte 17: first block (tape only) | ||
Byte 24 and 25: file length | Byte 18: type-byte (0: basic 1:protected 2:binary) | ||
Byte 26 and 27: execution address for machine code programs | Byte 21 and 22: loading address LSB first | ||
Byte 64 and | Byte 23: first block (tape only?) | ||
Byte 67 and 68: checksum for byte 00 to byte 66 | Byte 24 and 25: file length LSB first | ||
Byte 26 and 27: execution address for machine code programs LSB first | |||
Byte 64 and 66: 24 bits file length LSB first | |||
Byte 67 and 68: checksum for byte 00 to byte 66 LSB first | |||
Byte 69 to 127: undefined content, free to use | |||
</pre> | </pre> | ||
Revision as of 14:51, 13 December 2017
In AMSDOS it is possible to store files in two ways: headerless and with a header. Headerless files are often files which were created with OPENOUT and SAVE"filename",a. Programs normally have a file header, which is consists of 128 bytes and contains the following data:
Byte 00: User number (value from 0 to 15 or #E5 for deleted entries) Byte 01 to 08: filename (fill unused char with spaces) Byte 09 bis 11: Extension (fill unused char with spaces) Byte 16: first block (tape only) Byte 17: first block (tape only) Byte 18: type-byte (0: basic 1:protected 2:binary) Byte 21 and 22: loading address LSB first Byte 23: first block (tape only?) Byte 24 and 25: file length LSB first Byte 26 and 27: execution address for machine code programs LSB first Byte 64 and 66: 24 bits file length LSB first Byte 67 and 68: checksum for byte 00 to byte 66 LSB first Byte 69 to 127: undefined content, free to use
To calculate the checksum, just add byte 00 to byte 66 to each other.
This is only a summary. All details are in Firmware Guide chapter 9, page 4.