User Tools

Site Tools


base:crt_file_format

CRT - CaRTridge Images (from the CCS64 emulator)

Document revision: 1.10 Last updated: Nov 27, 2005 Contributors/sources: Per Hakan Sundell, Markus Brenner, Marco Van Den Heuvel

Cartridge files were introduced in the CCS64 emulator, written by Per Hakan Sundell, and use the “.CRT” file extension. This format was created to handle the various ROM cartridges that exist, such as Action Replay, the Power cartridge, and the Final Cartridge.

Normal game cartridges can load into several different memory ranges ($8000-9FFF, $A000-BFFF or $E000-FFFF). Newer utility and freezer cartridges were less intrusive, hiding themselves until called upon, and still others used bank-switching techniques to allow much larger ROM's than normal. Because of these “stealthing” and bank-switching methods, a special cartridge format was necessary, to let the emulator know where the cartridge should reside, the control line states to enable it and any special hardware features it uses.

Here is a dump of a sample 8K normal cartridge, “Attack Of The Mutant Camels”…

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 00 00 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 41 54 54 41 43 4B 20 4F 46 20 54 48 45 20 4D 55   ATTACK˙OF˙THE˙MU
0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00   TANT˙CAMELS˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   ”õº˛√¬Õ80ÍÍÍ©˙Ö˙
0060: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0   L≥õ©˙ÖZà–˝∆Z–˘`–

  Bytes:$0000-000F - 16-byte cartridge signature  "C64  CARTRIDGE"  (padded
                     with space characters)
         0010-0013 - File header length  ($00000040,  in  high/low  format,
                     calculated from offset $0000). Default value is $40
         0014-0015 - Cartridge version (high/low, presently 01.00)
         0016-0017 - Cartridge hardware type ($0000, high/low)
                       0 - Normal cartridge
                       1 - Action Replay
                       2 - KCS Power Cartridge
                       3 - Final Cartridge III
                       4 - Simons Basic
                       5 - Ocean type 1*
                       6 - Expert Cartridge
                       7 - Fun Play, Power Play
                       8 - Super Games
                       9 - Atomic Power
                      10 - Epyx Fastload
                      11 - Westermann Learning
                      12 - Rex Utility
                      13 - Final Cartridge I
                      14 - Magic Formel
                      15 - C64 Game System, System 3
                      16 - WarpSpeed
                      17 - Dinamic**
                      18 - Zaxxon, Super Zaxxon (SEGA)
                      19 - Magic Desk, Domark, HES Australia
              0018 - Cartridge port EXROM line status
                      0 - inactive
                      1 - active
              0019 - Cartridge port GAME line status
                      0 - inactive
                      1 - active
         001A-001F - Reserved for future use
         0020-003F - 32-byte cartridge  name  "CCSMON"  (uppercase,  padded
                     with null characters)
         0040-xxxx - Cartridge contents (called CHIP PACKETS, as there  can
                     be more than one  per  CRT  file).  See  below  for  a
                     breakdown of the CHIP format.

  (*Note: Ocean type 1 includes Navy Seals, Robocop 2 & 3,  Shadow  of  the
    Beast, Toki, Terminator 2 and more)

  (**Note: Dinamic includes Narco Police and more)

CHIP Contents

The following is the contents of the CHIP packet, from position $0040 on in the CRT file. Note I have re-adjusted the starting address to be $0000, since we are now looking at a file contained in the .CRT file, and all size references are from where it starts.

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0010: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   ”õº˛√¬Õ80ÍÍÍ©˙Ö˙
0020: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0   L≥õ©˙ÖZà–˝∆Z–˘`–
0030: F2 60 A9 04 85 49 A9 00 85 48 A2 00 A5 48 9D 40   Ú`©˙ÖI©˙ÖH¢˙•Hù@
0040: 03 A5 49 9D 60 03 A5 48 18 69 28 85 48 A5 49 69   ˙•Iù`˙•H˙i(ÖH•Ii
0050: 00 85 49 E8 E0 18 D0 E4 60 A6 03 A4 02 BD 40 03   ˙ÖIˇ˙–‰`¶˙§˙Ω@˙

  Bytes:$0000-0003 - Contained ROM signature "CHIP" (note there can be more
                     than one image in a .CRT file)
         0004-0007 - Total packet length ($00002010,  ROM  image  size  and
                     header combined) (high/low format)
         0008-0009 - Chip type
                      0 - ROM
                      1 - RAM, no ROM data
                      2 - Flash ROM
         000A-000B - Bank number ($0000 - normal cartridge)
         000C-000D - Starting load address (high/low format)
         000E-000F - ROM image size in bytes  (high/low  format,  typically
                     $2000 or $4000)
         0010-xxxx - ROM data

The following is a chart taken from the “Commodore Programmers Reference Guide”. It details the state of various areas of memory depending on the state of the control lines.

Legend:
L - ROML (low)
H - ROMH (high)
G - GAME
E - EXROM

Addr       LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE   LHGE
Range
           1111   101X   1000   011X   001X   1110   0100   1100   XX01
         default                00X0                             Ultimax
-------------------------------------------------------------------------
E000-FFFF Kernal  RAM    RAM   Kernal  RAM   Kernal Kernal Kernal ROMH(*)
D000-DFFF IO/CHR IO/CHR IO/RAM IO/CHR  RAM   IO/CHR IO/CHR IO/CHR   I/O
C000-CFFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
A000-BFFF BASIC   RAM    RAM    RAM    RAM   BASIC   ROMH   ROMH    -
8000-9FFF  RAM    RAM    RAM    RAM    RAM    ROML   RAM    ROML  ROML(*)
4000-7FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
1000-3FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM     -
0000-0FFF  RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM    RAM

(*) Internal memory does not respond to write accesses in these areas

From the above chart, the following table can be built. It shows standard cartridges, either 8K or 16K in size, and the memory ranges they load into.

Type     Size   Game   EXRom  Low Bank  High Bank
         in K   Line   Line    (ROML)    (ROMH)
-------------------------------------------------
Normal    8k     hi     lo     $8000      ----
Normal    16k    lo     lo     $8000     $A000
Ultimax   8k     lo     hi     $E000      ----

The ROMH and ROML lines are CPU-controlled status lines, used to bank in/out RAM, ROM or I/O, depending on what is needed at the time.

Ultimax cartridges typically are situated in the $E000-FFFF (8K) ROM address range. There are some cartridges which only use 4K of the 8K allocation. If the cartridge is 16K in size, then it will reside in both $8000-9FFF and $E000-FFFF.

Cartridge Specifics

0 - Normal cartridge

    Size - 8Kb
    GAME - active (1)
    EXROM - inactive (0)
    Load address - $8000-9FFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 00 00 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 41 54 54 41 43 4B 20 4F 46 20 54 48 45 20 4D 55   ATTACK˙OF˙THE˙MU
0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00   TANT˙CAMELS˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13   ”õº˛√¬Õ80ÍÍÍ©˙Ö˙

The second sample below is a dump of “Music Machine”, a 4Kb ULTIMAX mode cartridge. It is still identified as a “standard cartridge” according to the ID.

    Normal cartridge

    Size - 4Kb (ULTIMAX mode)
    GAME - inactive (0)
    EXROM - active (1)
    Load address - $F000-F7FF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 00 01 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 4D 55 53 49 43 20 4D 41 43 48 49 4E 45 00 00 00   MUSIC˙MACHINE˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 10 10 00 00 00 00 F0 00 10 00   CHIP˙˙˙˙˙˙˙˙˙˙˙
0050: 3C 66 C3 C3 66 3C FF FF 18 3C 66 7E 66 66 66 00   <f√√f<˙˙˙<f~fff˙

The third sample is a dump of “Adventure Creator”, a 16Kb standard cartridge.

    Normal cartridge

    Size - 16Kb
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 41 64 76 65 6E 74 75 72 65 20 43 72 65 61 74 6F   Adventure˙Creato
0030: 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   r˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 09 80 81 EA C3 C2 CD 38 30 A2 00 78 D8 8E 11 D0   ˙ÄÅÍ√¬Õ80¢˙xÿé˙–

1 - Action Replay

    Size - 32Kb (4 banks of 8Kb each)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - $8000-9FFF (all modules)

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 01 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 41 63 74 69 6F 6E 20 52 65 70 6C 61 79 20 56 00   Action˙Replay˙V˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 09 80 0C 80 C3 C2 CD 38 30 4C 60 80 4C 63 80 4C   ˙Ä˙Ä√¬Õ80L`ÄLcÄL

2 - KCS Power Cartridge

    Size - 16Kb (2 banks of 8K each)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - module #1 - $8000-9FFF
                   module #2 - $A000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 20 01 00 00 02 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0020: 4B 43 53 20 50 6F 77 65 72 20 43 61 72 74 72 69   KCS˙Power˙Cartri
0030: 64 67 65 00 00 00 00 00 00 00 00 00 00 00 00 00   dge˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 09 80 5E FE C3 C2 CD 38 30 78 D8 A2 FF 9A A9 27   ˙Ä^˛√¬Õ80xÿ¢˙ö©'
....
2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00   CHIP˙˙˙˙˙˙˙˙†˙˙˙
2060: 97 E3 16 A1 FF FF FF 20 13 A0 A5 01 09 01 85 01   ó„˙°˙˙˙˙˙†•˙˙˙Ö˙

3 - Final Cartridge III

    Size - 64Kb (4 banks of 16Kb each)
    GAME - active (1)
    EXROM - active (1)
    Load address - $8000-BFFF (all modules)

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 03 01 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 46 69 6E 61 6C 20 43 61 72 74 72 69 64 67 65 20   Final˙Cartridge˙
0030: 49 49 49 20 31 39 38 37 00 00 00 00 00 00 00 00   III˙1987˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 09 80 5E FE C3 C2 CD 38 30 4C 4C 80 4C 55 95 4C   ˙Ä^˛√¬Õ80LLÄLUïL
....
4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
4060: 01 02 00 81 5D 81 61 81 99 81 D8 81 0B 82 33 82   ˙˙˙Å]ÅaÅôÅÿÅ˙Ç3Ç
....
8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
8070: 20 43 80 20 52 80 A9 4E 20 05 DE 20 FD BF AD 39   ˙CÄ˙RÄ©N˙˙fi˙˝ø≠9
....
C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
C080: A2 06 BD DD 85 95 05 CA 10 F8 AE A0 02 E8 EC A2   ¢˙Ω›Öï˙ ˙¯Æ†˙ËÏ¢

A total of 64 kB of ROM memory is organized into four $4000 banks located at $8000-$BFFF. Bank switching is done by writing the bank number plus $40 into memory location $DFFF. For instance, to select bank 2, $DFFF is set to $42.

The CRT file contains four CHIP blocks, each block with a start address of $8000, length $4000 and the bank number in the bank field. In the cartridge header, both EXROM ($18) and GAME ($19) are set to 1 to enable the 16 kB ROM configuration.

4 - Simons Basic

    Size - 16Kb (2 banks of 8kb each)
    GAME - active (1)
    EXROM - inactive (0)
    Load address - module #1 - $8000-9FFF
                   module #2 - $A000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 04 00 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 53 69 6D 6F 6E 27 73 20 42 61 73 69 63 00 00 00   Simon's˙Basic˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 52 81 52 81 C3 C2 CD 38 30 41 4C 52 81 20 2C 81   RÅRÅ√¬Õ80ALRÅ˙,Å
....
2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00   CHIP˙˙˙˙˙˙˙˙†˙˙˙
2060: 20 A4 A6 99 9E CB A0 05 A5 A8 91 20 A4 A6 99 A2   ˙§¶ôûÀ†˙•®ë˙§¶ô¢

SIMONS BASIC permanently uses 16 kB ($4000) bytes of cartridge memory from $8000-$BFFF. However, through some custom bank-switching logic the upper area ($A000-$BFFF) may be disabled so Simons BASIC may use it as additional RAM. Writing a value of $01 to address location $DE00 banks in ROM, $00 disables ROM and enables RAM.

The CRT file contains two CHIP blocks of length $2000 each, the first block having a start address of $8000, the second block $A000. In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to indicate the RESET/power-up configuration of 8 kB ROM.

5 - Ocean type 1

    Size - 128Kb, 256Kb or 512Kb sizes (16, 32 or 64 banks of 8Kb each)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - Banks 00-15 - $8000-9FFF
                   Banks 16-31 - $A000-BFFF  (except Terminator 2)

       00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
       -----------------------------------------------   ----------------
00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
00010: 00 00 00 40 01 00 00 05 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
00020: 53 48 41 44 4F 57 20 4F 46 20 54 48 45 20 42 45   SHADOW˙OF˙THE˙BE
00030: 41 53 54 00 00 00 00 00 00 00 00 00 00 00 00 00   AST˙˙˙˙˙˙˙˙˙˙˙˙˙
00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
00050: 09 80 83 81 C3 C2 CD 38 30 4C 83 81 4C 76 82 80   ˙ÄÉÅ√¬Õ80LÉÅLvÇÄ
 ....
02050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
02060: 59 6D 00 56 AD 00 55 AE F0 00 01 A0 FE 00 01 F8   Ym˙V≠˙UÆ˙˙†˛˙˙¯
 ....
20140: 43 48 49 50 00 00 20 10 00 00 00 10 A0 00 20 00   CHIP˙˙˙˙˙˙˙˙†˙˙˙
20150: 0A 9A 55 FF 9B 69 57 FE AA 65 96 FE 65 0F D6 D9   ˙öU˙õiW˛™eñ˛e˙÷Ÿ

Here is a list of the known OCEAN cartridges:

  • Batman The Movie (128 kB)
  • Battle Command (128 kB)
  • Double Dragon (128 kB)
  • Navy Seals (128 kB)
  • Pang (128 kB)
  • Robocop 3 (128 kB)
  • Space Gun (128 kB)
  • Toki (128 kB)
  • Chase H.Q. II (256 kB)
  • Robocop 2 (256 kB)
  • Shadow of the Beast (256 kB)
  • Terminator 2 (512 kB)

Memory is divided into 8Kb ($2000) banks. For the lower 128Kb, memory is banked into $8000-$9FFF and for the upper 128Kb, memory is banked into $A000-$BFFF. Note that the Terminator 2 cartridge loads all 64 banks at $8000-$9FFF.

Bank switching is done by writing to $DE00. The lower six bits give the bank number (ranging from 0-63). Bit 8 in this selection word is always set.

6 - Expert Cartridge

    Size - 8Kb
    GAME - active (1)
    EXROM - active (1)
    Load address - $8000-9FFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 06 01 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 45 78 70 65 72 74 20 43 61 72 74 72 69 64 67 65   Expert˙Cartridge
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 02 00 00 80 00 20 00   CHIP˙˙@˙˙˙˙˙Ä˙˙˙
0050: 00 00 00 0A F3 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙Û˙˙˙˙˙˙˙˙˙˙˙

7 - Fun Play, Power Play

    Size - 128Kb (16 banks of 8Kb modules)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - $8000-9FFF (all modules)

       00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
       -----------------------------------------------   ----------------
00000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
00010: 00 00 00 40 01 00 00 07 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
00020: 46 55 4E 20 50 4C 41 59 00 00 00 00 00 00 00 00   FUN˙PLAY˙˙˙˙˙˙˙˙
00030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
00040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
00050: 1E 80 86 EA C3 C2 CD 38 30 1B 00 81 0D 08 80 00   ˙ÄÜÍ√¬Õ80˙˙Å˙˙Ä˙
 ....
02050: 43 48 49 50 00 00 20 10 00 00 00 08 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
02060: 78 A2 F0 86 01 BD 1D 08 9D F8 00 CA D0 F7 4C 00   x¢Ü˙Ω˙˙ù¯˙ –˜L˙
 ....
04060: 43 48 49 50 00 00 20 10 00 00 00 10 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
04070: 38 E5 68 85 03 B0 11 27 03 12 C0 18 69 27 42 90   8ÂhÖ˙∞˙'˙˙¿˙i'Bê
 ....
06070: 43 48 49 50 00 00 20 10 00 00 00 18 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
06080: 44 D0 5E 06 02 C0 44 11 40 04 11 44 01 5F 1C 73   D–^˙˙¿D˙@˙˙D˙_˙s
 ....
1E130: 43 48 49 50 00 00 20 10 00 00 00 39 80 00 20 00   CHIP˙˙˙˙˙˙˙9Ä˙˙˙
1E140: 85 EB 41 EA 9E 08 03 00 C0 06 18 01 00 C0 08 03   ÖÎAÍû˙˙˙¿˙˙˙˙¿˙˙

The FUN PLAY Cartridge uses $DE00 for bank selection, and uses 8Kb banks ($2000) at $8000-$9FFF. There are 16 banks of ROM memory and are referenced by the following values:

    $00 -> Bank 0
    $08 -> Bank 1
    $10 -> Bank 2
    $18 -> Bank 3
    $20 -> Bank 4
    $28 -> Bank 5
    $30 -> Bank 6
    $38 -> Bank 7
    $01 -> Bank 8
    $09 -> Bank 9
    $11 -> Bank 10
    $19 -> Bank 11
    $21 -> Bank 12
    $29 -> Bank 13
    $31 -> Bank 14
    $39 -> Bank 15

The bank field in the chip headers is set according to the value written to $DE00. The following bits are used for bank decoding in $DE00 (0 being the LSB, 3 being the MSB).

        Bit# 76543210
             xx210xx3

After copying memory from the ROM banks, the selection program writes a value of $86 to $DE00. This seems either to reset or disable the cartridge ROM.

8 - Super Games

    Size - 64Kb (4 banks of 16Kb each)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - $8000-BFFF (all modules)

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 08 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 53 55 50 45 52 20 47 41 4D 45 53 00 00 00 00 00   SUPER˙GAMES˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 0A 80 0A 80 C3 C2 CD 38 30 00 A9 80 A0 00 85 FB   ˙Ä˙Ä√¬Õ80˙©Ä†˙Ö˚
....
4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
4060: 27 80 A8 80 C3 C2 CD 38 30 00 40 C0 40 C0 40 C0   'Ä®Ä√¬Õ80˙@¿@¿@¿
....
8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
8070: 00 00 00 49 4D C7 64 47 46 45 F3 48 DC 08 7E 0B   ˙˙˙IM«dGFEÛH‹˙~˙
....
C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
C080: D5 F9 F0 C1 D5 F7 F0 BD E8 B5 02 F0 FB C9 05 30   ’˘¡’˜Ω˵˙˚…˙0

The SUPER GAMES cartridge uses 4 16Kb banks ($8000-$BFFF) of ROM memory. Bank selecting is done by writing to $DF00.

    Values for $DF00:

    $00 -> Bank 0
    $01 -> Bank 1 (also value $09 used)
    $02 -> Bank 2
    $03 -> Bank 3

      Bit #2
       0: ROM $8000-$BFFF
       1: ROM $8000-$9FFF
      Bit #3
       0: ?
       1: if bit #2 AND #3 are on (1) then the module is off

9 - Atomic Power

    Size - 32Kb (4 banks of 8Kb modules)
    GAME - inactive (0)
    EXROM - inactive (0)
    Load address - $8000-9FFF (all modules)

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 09 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 41 74 6F 6D 69 63 20 50 6F 77 65 72 00 00 00 00   Atomic˙Power˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 09 80 0C 80 C3 C2 CD 38 30 4C 41 80 4C 1E 80 4C   ˙Ä˙Ä√¬Õ80LAÄL˙ÄL
....
2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
2060: 09 80 0C 80 C3 C2 CD 38 30 4C 3F 80 4C 91 80 4C   ˙Ä˙Ä√¬Õ80L?ÄLëÄL
....
4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
4070: EF FC 09 80 C3 C2 CD 38 30 4C 27 80 4C DB 81 4C   Ô¸˙Ä√¬Õ80L'ÄL€ÅL
....
6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
6080: 09 80 0C 80 C3 C2 CD 38 30 4C 73 86 4C 30 80 4C   ˙Ä˙Ä√¬Õ80LsÜL0ÄL

10 - Epyx Fastload

     Size - 8Kb
     GAME - active (1)
     EXROM - active (1)
     Load address - $8000-9FFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 0A 01 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 45 50 59 58 20 46 41 53 54 4C 4F 41 44 00 00 00   EPYX˙FASTLOAD˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 30 80 5E FE C3 C2 CD 38 30 20 04 90 4C 38 DF AB   0Ä^˛√¬Õ80˙˙êL8fl´

11 - Westermann Learning

     Size - 16Kb
     GAME - inactive (0)
     EXROM - inactive (0)
     Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 0B 00 00 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 57 45 53 54 45 52 4D 41 4E 4E 00 00 00 00 00 00   WESTERMANN˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 40 00   CHIP˙˙˙˙˙˙˙˙Ä˙@˙
0050: 09 80 9C 80 C3 C2 CD 38 30 A2 00 8E 16 D0 20 84   ˙ÄúÄ√¬Õ80¢˙é˙–˙Ñ

12 - Rex Utility

     Size - 8K
     GAME - active (1)
     EXROM - inactive (0)
     Load address - $8000-9FFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 0C 00 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 52 45 58 00 00 00 00 00 00 00 00 00 00 00 00 00   REX˙˙˙˙˙˙˙˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00   CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 08 80 C1 FE C3 C2 CD 38 30 6C 95 E3 20 A3 FD 20   ˙Ä¡˛√¬Õ80lï„˙£˝˙

13 - Final Cartridge I

     Size - 16Kb
     GAME - active (1)
     EXROM - active (1)
     Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F        ASCII
      -----------------------------------------------   ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20   C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 0D 01 01 00 00 00 00 00 00   ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 54 68 65 20 46 69 6E 61 6C 20 43 61 72 74 72 69   The˙Final˙Cartri
0030: 64 67 65 20 49 00 00 00 00 00 00 00 00 00 00 00   dge˙I˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00   CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 80 BA 5E FE C3 C2 CD 38 30 00 A0 A0 20 2D FE 58   Ä∫^˛√¬Õ80˙††˙-˛X

14 - Magic Formel

     Size - 64Kb (8 banks of 8Kb)
     GAME - Inactive (0)
     EXROM - Inactive (0)
     Load Address - $E000-FFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 0E 01 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 4D 61 67 69 63 20 46 6F 72 6D 65 6C 00 00 00 00  Magic˙Formel˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
0050: 4D 46 30 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF0ç˙fl`ç˙fl`ç˙fl`ç
...
2050: 43 48 49 50 00 00 20 10 00 00 00 01 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
2060: 4C 5F E4 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  L_‰ç˙fl`ç˙fl`ç˙fl`ç
...
4060: 43 48 49 50 00 00 20 10 00 00 00 02 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
4070: 4D 46 32 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF2ç˙fl`ç˙fl`ç˙fl`ç
...
6070: 43 48 49 50 00 00 20 10 00 00 00 03 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
6080: 4D 46 33 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF3ç˙fl`ç˙fl`ç˙fl`ç
...
8080: 43 48 49 50 00 00 20 10 00 00 00 04 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
8090: 4D 46 34 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF4ç˙fl`ç˙fl`ç˙fl`ç
...
A090: 43 48 49 50 00 00 20 10 00 00 00 05 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
A0A0: 4D 46 35 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF5ç˙fl`ç˙fl`ç˙fl`ç
...
C0A0: 43 48 49 50 00 00 20 10 00 00 00 06 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
C0B0: 4D 46 36 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF6ç˙fl`ç˙fl`ç˙fl`ç
..
E0B0: 43 48 49 50 00 00 20 10 00 00 00 07 E0 00 20 00  CHIP˙˙˙˙˙˙˙˙‡˙˙˙
E0C0: 4D 46 37 8D 00 DF 60 8D 01 DF 60 8D 02 DF 60 8D  MF7ç˙fl`ç˙fl`ç˙fl`ç

15 - C64 Game System, System 3

     Size - 512Kb (64 banks of 8Kb each)
     GAME - inactive (0)
     EXROM - active (1)
     Load address - $8000-9FFF (all modules)

        00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
        -----------------------------------------------  ----------------
000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
000010: 00 00 00 40 01 00 00 0F 00 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
000020: 43 36 34 47 53 20 43 61 72 74 72 69 64 67 65 00  C64GS˙Cartridge˙
000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
000040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
000050: 6D 80 C5 80 C3 C2 CD 38 30 4C CB 80 4C 36 84 4C  mÄ≈Ä√¬Õ80LÀÄL6ÑL
....
002050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
002060: 18 D0 A9 FF 8D 15 D0 8D 1D D0 8D 17 D0 A2 07 A9  ˙–©˙ç˙–ç˙–ç˙–¢˙©
....
004060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
004070: E0 08 19 21 77 84 52 98 9F 80 A5 21 31 01 31 89  ‡˙˙!wÑRòüÄ•!1˙1â
....
006070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
006080: C0 08 1C 1D A0 92 03 03 D8 AA 04 C0 B8 01 40 EA  ¿˙˙˙†í˙˙ÿ™˙¿∏˙@Í
....
07E430: 43 48 49 50 00 00 20 10 00 00 00 3F 80 00 20 00  CHIP˙˙˙˙˙˙˙?Ä˙˙˙
07E440: 45 20 41 20 42 49 47 20 58 FE 4F 4E 20 54 48 49  E˙A˙BIG˙X˛ON˙THI

Here is a list of the known cartridges:

  • C64GS 4-in-1 (Commodore) (512 kB)
  • Last Ninja Remix (System 3) (512 kB)
  • Myth (System 3) (512 kB)

ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank switching is done by writing to address $DE00+X, where X is the bank number (STA $DE00,X). For instance, to read from bank 3, address $DE03 is accessed.

The CRT file contains a string of CHIP blocks, each block with a start address of $8000, length $2000 and the bank number in the bank field. In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to enable the 8 kB ROM configuration.

16 - WarpSpeed

     Size - 16Kb
     GAME - inactive (0)
     EXROM - inactive (0)
     Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 10 01 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 57 61 72 70 73 70 65 65 64 00 00 00 00 00 00 00  Warpspeed˙˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 4C 22 80 4C 22 80 FF 43 42 4D 20 53 E4 20 18 E5  L"ÄL"Ä˙CBM˙S‰˙˙Â

After RESET or POWER ON, 16kB of Cartridge ROM are visible at $8000-$BFFF. Additionally, ROM normally located at $9E00-$9FFF is mirrored into IO1 and IO2 at $DE00-$DFFF. ROM at $8000-$BFFF is disabled by writing into the IO2 area (typically $DF00) and may be re-enabled by writing into IO1 ($DE00). However, the $DE00-$DFFF (IO1/IO2) area itself always remains mapped to cartridge ROM.

Included with these documents is a WRPSPEED.JPG which is the schematic of the WarpSpeed cartridge itself.

17 - Dinamic

     Size - 128Kb (16 banks of 8Kb each)
     GAME - inactive (0)
     EXROM - active (1)
     Load address - $8000-9FFF (all modules)

        00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
        -----------------------------------------------  ----------------
000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
000010: 00 00 00 40 01 00 00 11 00 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
000020: 4E 61 72 63 6F 20 50 6F 6C 69 63 65 00 00 00 00  Narco˙Police˙˙˙˙
000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
000040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
000050: 0B 80 0B 80 C3 C2 CD 38 30 00 00 78 A2 FF 9A D8  ˙Ä˙Ä√¬Õ80˙˙x¢˙öÿ
..
002050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
002060: 1C 8C 1B 8C 16 16 8F 16 16 88 1C 1C 86 1C 1C 89  ˙å˙å˙˙è˙˙à˙˙Ü˙˙â
..
004060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
004070: B6 02 07 08 07 07 00 0A 0A B6 00 05 0A 00 07 07  ∂˙˙˙˙˙˙˙˙∂˙˙˙˙˙˙
..
01E130: 43 48 49 50 00 00 20 10 00 00 00 0F 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
01E140: 00 D5 70 03 F5 70 0F 5F 70 0F F7 70 35 FD F0 37  ˙’p˙ıp˙_p˙˜p5˝7

Here is a list of the known DINAMIC cartridges:

  • Narco Police (128 kB)
  • Satan (128 kB)

ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank switching is done by reading from address $DE00+X, where X is the bank number (LDA $DE00,X). For instance, to read from bank 3, address $DE03 is accessed.

The CRT file contains a string of CHIP blocks, each block with a start address of $8000, length $2000 and the bank number in the bank field. In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to enable the 8 kB ROM configuration.

18 - Zaxxon, Super Zaxxon (SEGA)

     Size - 20Kb (3 banks of different sizes)
     GAME - active (1)
     EXROM - active (1)
     Load address - $8000-8FFF (mirrored in $9000-9FFF, module 0, chip U1)
                    $A000-BFFF (banked modules 1 and 2, chip U2)

        00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
        -----------------------------------------------  ----------------
000000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
000010: 00 00 00 40 01 00 00 12 00 00 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
000020: 5A 61 78 78 6F 6E 00 00 00 00 00 00 00 00 00 00  Zaxxon˙˙˙˙˙˙˙˙˙˙
000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
000040: 43 48 49 50 00 00 10 10 00 00 00 00 80 00 10 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
000050: 0D 80 29 80 C3 C2 CD 38 30 78 4C 09 80 78 A9 00  ˙Ä)Ä√¬Õ80xL˙Äx©˙
..
001050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00  CHIP˙˙˙˙˙˙˙˙†˙˙˙
001060: A2 0F BD 00 20 D0 04 CA 10 F8 60 BD 70 20 F0 0D  ¢˙Ω˙˙–˙ ˙¯`Ωp˙˙
..
003060: 43 48 49 50 00 00 20 10 00 00 00 01 A0 00 20 00  CHIP˙˙˙˙˙˙˙˙†˙˙˙
003070: 65 A2 36 A3 E7 A3 CB A4 94 A5 86 A6 5E A7 35 A8  e¢6£Á£À§î•Ü¶^ß5®

The (Super) Zaxxon carts use a 4Kb ($1000) ROM at $8000-$8FFF (mirrored in $9000-$9FFF) along with two 8Kb ($2000) cartridge banks located at $A000-$BFFF. One of the two banks is selected by doing a read access to either the $8000-$8FFF area (bank 0 is selected) or to $9000-$9FFF area (bank 1 is selected). EXROM ($18 = $00) and GAME ($19 = $00) lines are always pulled to GND to select the 16 kB ROM configuration.

The CRT file includes three CHIP blocks:

    a) bank = 0, load address = $8000, size = $1000
    b) bank = 0, load address = $A000, size = $2000
    c) bank = 1, load address = $A000, size = $2000

19. Magic Desk, Domark, HES Australia

    Size - 32Kb, 64Kb or 128Kb sizes (4 to 16 banks of 8Kb each)
    GAME - inactive (0)
    EXROM - active (1)
    Load address (banks 00-15) - $8000-9FFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 13 00 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 4D 61 67 69 63 20 44 65 73 6B 00 00 00 00 00 00  Magic˙Desk˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
0050: 09 80 C6 CA C3 C2 CD 38 30 8E 16 D0 20 A3 FD 20  ˙Ä∆ √¬Õ80é˙–˙£˝˙
..
2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
2060: 00 3F 0A 01 00 86 4E 24 28 31 30 29 3A 4A 4F 59  ˙?˙˙˙ÜN$(10):JOY
..
4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
4070: 00 8B C9 28 4E 24 2C 31 29 B3 B1 22 FF 22 A7 32  ˙ã…(N$,1)≥±"˙"ß2
..
6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00  CHIP˙˙˙˙˙˙˙˙Ä˙˙˙
6080: AE 01 83 33 2C 37 2C 22 32 29 20 44 45 4C 20 4B  Æ˙É3,7,"2)˙DEL˙K

This cartridge type is very similar to the OCEAN cart type: ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank switching is done by writing the bank number to $DE00. Deviant from the Ocean type, bit 8 is cleared for selecting one of the ROM banks. If bit 8 is set ($DE00 = $80), the GAME/EXROM lines are disabled, turning on RAM at $8000-$9FFF instead of ROM.

In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to indicate the RESET/power-up configuration of 8 kB ROM.

Here is a list of the known cartridges:

  • Ghosbusters (HES Australia) (32 kB)
  • Magic Desk (Commodore) (32 kB)
  • Badlands (Domark) (64 kB)
  • Vindicators (Domark) (64 kB)
  • Wonderboy (HES Australia) (64 kB)
  • Cyberball (Domark) (128 kB)

20. Super Snapshot 5

    Size - 64Kb (4 banks of 16Kb each)
    GAME - active (1)
    EXROM - active (1)
    Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 14 01 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 53 75 70 65 72 20 53 6E 61 70 73 68 6F 74 20 35  Super˙Snapshot˙5
0030: 20 4E 54 53 43 00 00 00 00 00 00 00 00 00 00 00  ˙NTSC˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 09 80 59 80 C3 C2 CD 38 30 20 03 9F 00 FA F4 20  ˙ÄYÄ√¬Õ80˙˙ü˙˙Ù˙
...
4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
4060: 79 DE BC FE C3 C2 CD 38 30 A9 05 8D 20 D0 8D 21  yfiº˛√¬Õ80©˙ç˙–ç!
...
8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
8070: 50 DE BC FE C3 C2 CD 38 30 A9 0A 85 6A A9 0D 85  Pfiº˛√¬Õ80©˙Öj©˙Ö
...
C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
C080: 50 DE BC FE C3 C2 CD 38 30 85 07 20 1A AD A5 76  Pfiº˛√¬Õ80Ö˙˙˙≠•v

21. Comal-80

    Size - 64Kb (4 banks of 16Kb each)
    GAME - active (1)
    EXROM - active (1)
    Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 15 01 01 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 43 6F 6D 61 6C 20 38 30 00 00 00 00 00 00 00 00  Comal˙80˙˙˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 87 87 70 CF C3 C2 CD 38 30 4C AA CF 4C 70 CF 4C  áápœ√¬Õ80L™œLpœL
...
4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
4060: AA CF 70 CF C3 C2 CD 38 30 01 29 01 28 01 2C 04  ™œpœ√¬Õ80˙)˙(˙,˙
...
8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
8070: AA CF 70 CF C3 C2 CD 38 30 91 92 92 92 92 92 92  ™œpœ√¬Õ80ëíííííí
...
C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
C080: 7B C8 7E C8 C3 C2 CD 38 30 43 4F 4D 41 4C 80 93  {»~»√¬Õ80COMALÄì

The Comal-80 Cartridge uses $DE00 for bank selection, and uses 16Kb banks ($4000) at $8000-$BFFF. There are 4 banks of ROM memory and are referenced by the following values:

       $80 -> Bank 0
       $81 -> Bank 1
       $82 -> Bank 2
       $83 -> Bank 3

22. Structured Basic

    Size - 16Kb (2 banks of 8Kb each)
    GAME - active (0)
    EXROM - active (1)
    Load address - $8000-9FFF

    No sample data/file available.

    Any read/write access to $DE00 or $DE01 will switch in bank 0.
    Any read/write access to $DE02 will switch in bank 1.
    Any read/write access to $DE03 will switch off EXROM.

23. Ross

    Size - 16Kb or 32Kb sizes (1 or 2 banks of 16Kb each)
    GAME - active (1)
    EXROM - active (1)
    Load address - $8000-BFFF

      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F       ASCII
      -----------------------------------------------  ----------------
0000: 43 36 34 20 43 41 52 54 52 49 44 47 45 20 20 20  C64˙CARTRIDGE˙˙˙
0010: 00 00 00 40 01 00 00 17 00 00 00 00 00 00 00 00  ˙˙˙@˙˙˙˙˙˙˙˙˙˙˙˙
0020: 52 6F 73 73 20 31 34 00 00 00 00 00 00 00 00 00  Ross˙14˙˙˙˙˙˙˙˙˙
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙
0040: 43 48 49 50 00 00 40 10 00 00 00 00 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
0050: 09 80 09 80 C3 C2 CD 38 30 A2 00 BD 20 80 4D 0E  ˙Ä˙Ä√¬Õ80¢˙Ω˙ÄM˙
...
4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00  CHIP˙˙@˙˙˙˙˙Ä˙@˙
4060: 3F 5A 4D 4D 50 4D 8D 25 3F 1A 1F 77 3F CD E0 3F  ?ZMMPMç%?˙˙w?Õ‡?

    Any read access to $DE00 will switch in bank 1 (if cart is 32Kb).
    Any read access to $DF00 will switch off EXROM and GAME.
base/crt_file_format.txt · Last modified: 2015-04-17 04:31 (external edit)