| Byte |
Length |
Description |
| 0 |
1 |
A register |
| 1 |
1 |
F register |
| 2 |
2 |
BC register pair (LSB, i.e. C, first) |
| 4 |
2 |
HL register pair |
| 6 |
2 |
Always 0 (the emulator creates snapshoot files like release
2.0 of Lunter's 'Z80' emulator) |
| 8 |
2 |
Stack pointer (SP) |
| 10 |
1 |
Interrupt register (I) |
| 11 |
1 |
Refresh register (R), bit 7 is not significant! |
| 12 |
1 |
Various flags:
Bit D0: bit 7 of the R-register
Bits D1-D3: border color
Bit D4: always 0
Bit D5: always 1 (e.g. blocks are always compressed)
Bits D6-D7: not used |
| 13 |
2 |
DE register pair |
| 15 |
2 |
BC' register pair |
| 17 |
2 |
DE' register pair |
| 19 |
2 |
HL' register pair |
| 21 |
1 |
A' register |
| 22 |
1 |
F' register |
| 23 |
2 |
IY register (Again LSB first) |
| 25 |
2 |
IX register |
| 27 |
1 |
Interrupt flip-flop IFF1 (0 = DI, otherwise EI) |
| 28 |
1 |
IFF2 (not particularly important...) |
| 29 |
1 |
Interrupt mode (0, 1 or 2) |
| 30 |
2 |
Length of additional header block (contains 23) |
| 32 |
2 |
Program counter (PC) |
| 34 |
1 |
Hardware mode: 0 = Spectrum 48K, 1 = Spectrum 48K with ZX
Interface 1, 3 = Spectrum 128K, 4 = Spectrum 128K with ZX
Interface 1, 128 = Timex Sinclair 2068 |
| 35 |
1 |
In version 128, contains last OUT to 32765; in Timex version
contains last OUT to port 244 |
| 36 |
1 |
Contains 255 if Interface 1 ROM paged in, except on Timex
version; on Timex version contains last OUT to port 255 |
| 37 |
1 |
Some flags:
Bit D0: Always 1 (e.g. active R register emulation)
Bit D1: Always 1 (e.g. always full LDIR emulation) |
| 38 |
1 |
Last OUT to port 65533 (AY register number, 128 version) or
to port 245 (Timex version) |
| 39 |
16 |
Contents of the AY chip registers (128 or Timex version) |
| Page: |
In 48 or Timex version: |
In 128 version: |
| 0 |
Standard 48 ROM |
Standard 128 ROM |
| 1 |
Interface 1 shadow ROM |
Interface 1 shadow ROM |
| 2 |
- |
Derby 128 ROM |
| 3 |
- |
RAM, page 0 (49152-65535) |
| 4 |
RAM, 32768-49151 |
RAM, page 1 (49152-65535) |
| 5 |
RAM, 49152-65535 |
RAM, page 2 (49152-65535 or 32768-49151) |
| 6 |
- |
RAM, page 3 (49152-65535) |
| 7 |
- |
RAM, page 4 (49152-65535) |
| 8 |
RAM, 16384-32767 |
RAM, page 5 (49152-65535 or 16384-32767) |
| 9 |
- |
RAM, page 6 (49152-65535) |
| 10 |
- |
RAM, page 7 (49152-65535) |
| Byte |
Length |
Name |
Description |
| 0 |
1 |
HDFLAG |
Header flag byte, bit D0 is 1 to mark header, other
bits are not used |
| 1 |
1 |
HDNUMB |
Logical number of the sector |
| 2 |
2 |
HDEMPTY |
Not used |
| 4 |
10 |
HDNAME |
Cartridge name (e.g. the name given by FORMAT) padded with blanks |
| 14 |
1 |
HDCHK |
Header checksum by modulo 255 (checksum of the first 14 bytes) |
| 15 |
1 |
RECFLG |
Data block flag byte:
Bit D0: Always 0, to mark data block
Bit D1: EOF bit, set if this sector is the last sector assigned to some file
Bit D2: Clear if block belongs to file created using PRINT#
Bits D3-D7: Not used (always 0) |
| 16 |
1 |
RECNUM |
Determines which part of file allocated in this sector lays in
this sector (counting starts from 0) |
| 17 |
2 |
RECLEN |
Actual data length into the block (ó512), if the
block is not a EOF block, RECLEN must be 512;
unallocated sector has RECLEN=0 with clear EOF bit,
and a bad sector has also RECLEN=0 with set EOF bit |
| 19 |
10 |
RECNAM |
Name of the file allocated into the sector (padded with blanks) |
| 29 |
1 |
DESCHK |
Checksum of the descriptor (e.g. of the last 14 bytes) by modulo 255 |
| 30 |
512 |
DATA |
Actual data |
| 542 |
1 |
DCHK |
Checksum of the actual data (of whole 512 bytes, even if RECLEN<512) by modulo 255
|