GRAM Kracker format
The GK format, for short, is a headered ROM dump format commonly used in the TI/Geneve world. GK files are dumps from the cartridge memory chips.
The main uses cases why one would like to save the cartridge contents to disk are:
- Use cartridges in environments without cartridge slots, like for the Geneve, or the TI-99/4P (aka SGCPU).
- Load multiple cartridges in an expansion card (like the GRAM Karte).
- Change cartridge contents.
- Using disk images prevents wear on the TI-99/4A cartridge slot.
The contents of GK files are taken from the ROMs and GROMs of the cartridge, so there must be meta-data about the origin of the data. In fact, GK files are commonly 8198 bytes long, that is, 6 bytes plus the common size of a ROM (8K).
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
0x00 | MF | Type | Length | Address | Data | |||
0x08 | Data | |||||||
... | ||||||||
end |
MF byte
- 00 = No more files to load
- 80 = Load UTIL file next (E/A option 5)
- FF = More files to load
Type byte
01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 00 / ff |
GROM | GROM | GROM | GROM | GROM | GROM | GROM | GROM | ROM1 | ROM2 | RAM |
G>0000 | G>2000 | G>4000 | G>6000 | G>8000 | G>A000 | G>C000 | G>E000 | >6000 | >6000 | Memory Exp |
ROM1 is the default ROM bank in >6000 - >7FFF. ROM2 is a second bank which is used in Extended Basic or other cartridges with a large ROM part (like Atarisoft Games).
Length and Address
Length and address provide information where the dump is located, and how long it is. Note that the memory may be smaller than the default (like a 4 KiB ROM) or it may not be located at the start of its part defined by the type byte, so this information is not redundant.