
8 For experts: Technical details
• Bank 120: Free
• Bank 121: Free
• Bank 122: Free
• Bank 123: Freezer software bank 3
• Bank 124: Freezer software bank 1 (start bank)
• Bank 125: Freezer software bank 2
• Bank 126: Cartridge emulation menu
• Bank 127: Oldrunner OS
The banks 127 (Oldrunner OS), 126 (cartridge emulation) and 124 (freezer software)
are “hardwired” in the CPLD logic. The usage of the remaining banks 120. . . 123 and 125
may change in later versions.
8.3 Freezer
As long as the “
Freeze
” button is not pressed, the freezer is completely invisible for the
Atari. That means, no software can detect if there is a freezer attached to the Atari or
not. Only when the button is pressed, the freezer becomes visible and active.
8.3.1 Shadowing of hardware registers
The freezer uses the following “trick” to read the content of the non-readable hardware
registers of ANTIC, GTIA and POKEY. Whenever there is a write access to the area
$D000. . . $D7FF, the freezer RAM is also activated. This way the freezer software can
read the data of the custom chips from there without problems. The write access to the
RAM is only performed if the “
Freeze
” button has not been pressed yet. Otherwise the
freezer software itself would overwrite the stored data.
The addresses of custom chips in the Atari are not completely decoded. The ANTIC
can for example be accessed via the addresses $D40x, $D41x, . . . . When $22 is written
to $D400 and $00 is written to $D410 afterwards, both values will end up in the
DMACTL
register of the ANTIC. DMACTL will have the value $00 after the 2nd write access.
Some programs use these tricks. To enable the freezer to restore the exact state upon
resuming, the freezer logic has to take this in account. Therefore the non-decoded address
lines are pulled “low” when shadowing the hardware register. For ANTIC ($D4xx) and
POKEY ($D2xx) these are A4–A7, for GTIA ($D0xx) these are A5–A7.
If the Atari contains stereo POKEY extension, then the first POKEY is accessible via
$D20x, $D22x, . . . , the second POKEY via $D21x, $D23x, . . . . Turning the “
Stereo
”
switch of the freezer right (
ON
) changes the shadowing logic. During access to $D2xx
the address lines A5–A7 are pulled “low” then and the data of both POKEYs are stored
correctly.
52
Comments to this Manuals