Byte | Use |
| First block (program, code, memory created by !SAVE) |
0 | Track pointer to next block |
1 | Sector pointer to next block |
2 | #FF = suitable for !LOAD |
3 | 00 |
4 - 5 | Start address for !LOAD - 2 bytes |
6 - 7 | End address for !LOAD - 2 bytes |
8 | T address / program type - 2 bytes: |
9 | 0000 = code no T, 0001 = basic, 0002 = basic AUTO, ABCD = code T address |
A | Number of bytes in this block. #F5 = full |
B | Data bytes from here on |
| Subsequent blocks created by !SAVE |
0 | Track pointer to next block. Null if no more |
1 | Sector pointer to next block. Null if no more |
2 | Number of bytes in this block. #FD = full |
3 | Data bytes from here on |
| Blocks created by !OPEN / !PUT |
0 | Track pointer to next block. Null if no more |
1 | Sector pointer to next block. Null if no more |
2 | Data - for single byte data. For $ - length of $ (e.g. 3) followed by |
| string |
3 | Data - for single byte data. For $ - string character |
4 | Data - for single byte data. For $ - string character |
5 | Data - for single byte data. For $ - string character (last) |
6 | Data - for single byte data. For $ - length of $ followed by string |
7 | Data - for single byte data. For $ - string character |
8 | etc. |
| Blocks created by !STORE |
0 | Track pointer to next block. Null if no more |
1 | Sector pointer to next block. Null if no more |
2 - 3 | End address + 1 from which data was saved - 2 bytes |
4 - 5 | Start address from which array was saved - 2 bytes |
6 | Bit 7 set for % integers |
7 | #FF for strings |
8 | Array block copied from memory. For $ - Length of $ followed by $. |