Final Cartridge III Internals Errata.txt

From ReplayResources
Jump to: navigation, search

Final Cartridge III Internals Errata

text refers to "Final Cartridge III Internals.txt" at ftp.zimmers.net and the local copy.

*********************************** DRAFT **************************************

Please check the text for credits!


*********************************** DRAFT **************************************
*********************************** DRAFT **************************************
*********************************** DRAFT **************************************

                     Final Cartridge III Internals - Errata
                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This document contains corrections for Final Cartridge III Internals.txt 
version 1.0, dated 19 Apr 98. The author of the original document is 
Michael Steil.

This errata document was written by Thomas 'skoe' Giesel after having a closer
look to the hardware. (Version 16 Apr 2010)


2.1 Writing into the ROM Management Register
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The description of register $DFFF and the rest of chapter 2.1 is not correct 
in the original document. It should be:

$DFFF: Bits #0-1    number of bank to show at $8000    $3
             2-3    unassigned                         $C
             4      EXROM line (0 = low = active)      $10
             5      GAME line  (0 = low = active)      $20
             6      NMI line   (0 = low = active)      $40
             7      Hide this register (1 = hidden)    $80

Bits 2 and 3 and have no function, The FC3 ROM itself always sets bits 2 and 3
to 0.

Bits 4-5 control what ROM is visible in the C64 address space.
             GAME EXROM
             0    0     $2000 bytes of ROM at $8000    $00
             0    1     Ultimax mode                   $10
             1    0     $1000 bytes of ROM at $8000    $20
             1    1     No FC3 ROM visible             $30

The Ultimax mode has a very special memory map: Only the first 4 kByte of C64
RAM can be seen by the CPU. The rest of RAM is invisible. $2000 bytes of ROM
are seen at $8000, the next $2000 bytes are seen at $E000. This mode ist
used whenever the FC3 wants to replace the CPU vectors with its own vectors.

The statement that the bit combination 01 starts the Freezer is not correct,
but it may be started by a side effect, possibly when a BRK instruction is hit
or when the NMI line is activated (low).

If bit 7 is 1, the register $DFFF is hidden. In this state the register cannot
be written, but all bits keep their value and functionality. It is only 
writable again after a reset or temporarily while the freezer button is being 
pressed. 

When the FC3 is powered up or when the reset button of the FC3 is pressed, all
bits in $DFFF are reset to 0. This means that 16 kByte of bank 0 are visible 
and in addition to RESET the NMI line is active (low). The reset code of the 
FC3 deactivates the NMI line.

If the reset line is activated from computer side, the register $DFFF is not 
reset. Bacause of this behaviour it is possible to enter the C128 mode of the
C128 without unplugging the cartridge.

2.2 Reading from the ROM Management Register
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The FC3 does not allow to read the configuration register $DFFF. When $DFFF
is read, the ROM content is read as described in chapter 3.2

3.2 The ROM at $DE00 to $DFFF
    ~~~~~~~~~~~~~~~~~~~~~~~~~
The 512 bytes of ROM at $DE00 to $DFFF cannot be turned off. This piece of
ROM is always visible. It is mirrored from $1E00 to $1EFF of the current bank.