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:
|BYTE||User number||0-15, or #E5 for deleted entries|
|8 BYTES||Filename||Unused characters are filled with space|
|3 BYTES||Extension||Unused characters are filled with space|
|DWORD||Zero||Contains all zeroes|
|BYTE||Block number||Tape only|
|BYTE||Last block||Tape only|
|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")|
|WORD||Data location||Address of the 2KB buffer|
|BYTE||First block||Set to #FF, only used for output files|
|WORD||Logical length||Actual file length is here|
|3 BYTES||Real length||24-bit number. Just a copy, not used!|
|WORD||Checksum||Unsigned sum of all bytes until this field|
|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.