|
|
Bits | Size (yyyy) |
010 | 2 |
00 | 3 |
100 | 4 |
101 | 5 |
011 | >= 10 |
1100 | 6 |
1101 | 7 |
1110 | 8 |
1111 | 9 |
Bits | Higher byte of xxxx |
1 | 0 |
0000 | 1 |
0001 | 2 |
00100 | 3 |
00101 | 4 |
00110 | 5 |
00111 | 6 |
01bbbb | 7+bbbb |
|
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) |
Byte | Length | Description |
0 | 2 | Length of data (without this 3-byte header) |
2 | 1 | Page number of block |
3 | ? | Compressed data |
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 |
Byte | Length | Description |
0 | 1 | File type (0-BASIC, 1/2-DATA, 3-CODE) |
1 | 2 | Number of bytes into the file |
3 | 2 | Start address of the file |
5 | 2 | Length of program zone (only for BASIC) |
7 | 2 | Autorun line (only for BASIC) |
|
0: | DOCK bank (the most frequent variant) |
1-253: | Reserved for expansions which allow more than three 64 Kb banks (not implemented at this moment) |
254: | EXROM bank (using this ID you may insert RAM or ROM chunks into EXROM bank, such hardware units exist on real Timex Sinclair) |
255: | HOME bank (mainly useless, HOME content is typically stored in a Z80 file); however, using this bank ID you may replace content of Timex HOME ROM, or turn Timex HOME ROM into RAM |
bit D0: | 0 = read-only chunk, 1 = read/write chunk |
bit D1: | 0 = memory image for corresponding chunk is not present in DCK file, 1 = memory image is present in DCK file |
bits D2-D7: | reserved (all zeros) |
|
Byte | Length | Description |
0 | 2 | Package ID (used for fast checking whether content of the Net file is changed) |
2 | 2 | Reserved; not yet used |
4 | 256 | Content of the package |
|
|
Field Name | Description | Type | Width | Dcp |
DODATNI | For future expansion | AN | 10 | |
GODISTE | Year of production | AN | 4 | |
KOMPJUTER | Computer type | AN | 4 | |
MATERJEZIK | Messages language | AN | 4 | |
OPIS | Program description (descriptor) | MO | 10 | |
POZICIJA | Block position in the tape | NU | 3 | 0 |
PRIORITET | Marking sign | AN | 1 | |
PROBLEMI | Problems (coded) | NU | 5 | 0 |
PROIZVODJ | Producer | AN | 4 | |
PUNOIME | Full name of the program | AN | 30 | |
SIMULOPC | Startup options | AN | 50 | |
SKRACENO | Short name | AN | 10 | |
TRAKA | Tape (or snapshot etc.) name | AN | 10 | |
VRSTA | Category of the program | AN | 4 |
Field Name | Description | Type | Width | Dcp |
REDPODAT | See below | AN | 60 |