Last modified on 7 November 2023, at 14:46

AMSDOS Header

Revision as of 14:46, 7 November 2023 by PulkoMandy (Talk | contribs)

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 consist of 128 bytes and contain the following data:

Offset Size Name Notes
0 BYTE User number 0-15, or #E5 for deleted entries
1 8 BYTES Filename Unused characters are filled with space
9 3 BYTES Extension Unused characters are filled with space
C DWORD Zero Contains all zeroes
10 BYTE Block number Tape only
11 BYTE Last block Tape only
12 BYTE File type 0:BASIC 1:Protected 2:Binary (ASCII files don't have headers but a fake header is built in memory with the file type #16, "Unprotected ASCII v1")
13 WORD Data location Address of the 2KB buffer
15 WORD Load address
16 BYTE First block Set to #FF, only used for output files
17 WORD Logical length Actual file length is here
19 WORD Entry address
1B 36 BYTES Unused
3F 3 BYTES Real length 24-bit number. Just a copy, not used!
42 WORD Checksum Unsigned sum of all bytes until this field
44 59 BYTES Unused Free to use

To calculate the checksum just add all bytes from 00 up to and including byte 66 together.

This is only a summary. All details are in Firmware Guide chapter 9, page 4.