base:crt_file_format
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:crt_file_format [2015-04-17 04:31] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== CRT - CaRTridge Images (from the CCS64 emulator) ====== | ||
+ | Document revision: 1.10 // | ||
+ | Last updated: Nov 27, 2005 // | ||
+ | Contributors/ | ||
+ | |||
+ | Cartridge files were introduced in the CCS64 emulator, | ||
+ | Hakan Sundell, and use the " | ||
+ | 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 | ||
+ | ($8000-9FFF, | ||
+ | cartridges were less intrusive, hiding themselves until called | ||
+ | still others used bank-switching techniques to allow much larger ROM's than | ||
+ | normal. Because of these " | ||
+ | cartridge format | ||
+ | cartridge should reside, the control line states | ||
+ | special hardware features it uses. | ||
+ | |||
+ | Here is a dump of a sample 8K normal cartridge, " | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | 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 | ||
+ | 0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00 | ||
+ | 0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00 | ||
+ | 0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13 | ||
+ | 0060: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0 | ||
+ | |||
+ | Bytes: | ||
+ | with space characters) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 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 | ||
+ | | ||
+ | | ||
+ | with null characters) | ||
+ | | ||
+ | be more than one per CRT file). | ||
+ | | ||
+ | |||
+ | (*Note: Ocean type 1 includes Navy Seals, Robocop 2 & 3, Shadow | ||
+ | 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 | ||
+ | 0010: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13 | ||
+ | 0020: 4C B3 9B A9 08 85 5A 88 D0 FD C6 5A D0 F9 60 D0 | ||
+ | 0030: F2 60 A9 04 85 49 A9 00 85 48 A2 00 A5 48 9D 40 | ||
+ | 0040: 03 A5 49 9D 60 03 A5 48 18 69 28 85 48 A5 49 69 | ||
+ | 0050: 00 85 49 E8 E0 18 D0 E4 60 A6 03 A4 02 BD 40 03 | ||
+ | |||
+ | Bytes: | ||
+ | than one image in a .CRT file) | ||
+ | | ||
+ | | ||
+ | | ||
+ | 0 - ROM | ||
+ | 1 - RAM, no ROM data | ||
+ | 2 - Flash ROM | ||
+ | | ||
+ | | ||
+ | | ||
+ | $2000 or $4000) | ||
+ | | ||
+ | </ | ||
+ | |||
+ | The following is a chart taken from the " | ||
+ | Guide" | ||
+ | state of the control lines. | ||
+ | |||
+ | < | ||
+ | Legend: | ||
+ | L - ROML (low) | ||
+ | H - ROMH (high) | ||
+ | G - GAME | ||
+ | E - EXROM | ||
+ | |||
+ | Addr | ||
+ | Range | ||
+ | | ||
+ | | ||
+ | ------------------------------------------------------------------------- | ||
+ | E000-FFFF Kernal | ||
+ | D000-DFFF IO/CHR IO/CHR IO/RAM IO/ | ||
+ | C000-CFFF | ||
+ | A000-BFFF BASIC | ||
+ | 8000-9FFF | ||
+ | 4000-7FFF | ||
+ | 1000-3FFF | ||
+ | 0000-0FFF | ||
+ | |||
+ | (*) 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 | ||
+ | in K | ||
+ | ------------------------------------------------- | ||
+ | Normal | ||
+ | Normal | ||
+ | Ultimax | ||
+ | </ | ||
+ | |||
+ | The ROMH and ROML lines are CPU-controlled status | ||
+ | in/out RAM, ROM or I/O, depending on what is needed at the time. | ||
+ | |||
+ | Ultimax cartridges typically are situated | ||
+ | address range. There are some cartridges | ||
+ | allocation. If the cartridge is 16K in size, then it will reside | ||
+ | $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 | ||
+ | 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 | ||
+ | 0030: 54 41 4E 54 20 43 41 4D 45 4C 53 00 00 00 00 00 | ||
+ | 0040: 43 48 49 50 00 00 20 10 00 00 00 00 80 00 20 00 | ||
+ | 0050: D3 9B BC FE C3 C2 CD 38 30 EA EA EA A9 01 85 13 | ||
+ | </ | ||
+ | |||
+ | The second sample below is a dump of "Music Machine", | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 3C 66 C3 C3 66 3C FF FF 18 3C 66 7E 66 66 66 00 < | ||
+ | </ | ||
+ | |||
+ | The third sample is a dump of " | ||
+ | < | ||
+ | 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 | ||
+ | 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 | ||
+ | 0030: 72 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 | ||
+ | 0050: 09 80 81 EA C3 C2 CD 38 30 A2 00 78 D8 8E 11 D0 | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 09 80 0C 80 C3 C2 CD 38 30 4C 60 80 4C 63 80 4C | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 2 - KCS Power Cartridge ===== | ||
+ | < | ||
+ | |||
+ | Size - 16Kb (2 banks of 8K each) | ||
+ | GAME - inactive (0) | ||
+ | EXROM - inactive (0) | ||
+ | Load address - module #1 - $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 | ||
+ | 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 | ||
+ | 0030: 64 67 65 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 | ||
+ | 0050: 09 80 5E FE C3 C2 CD 38 30 78 D8 A2 FF 9A A9 27 | ||
+ | .... | ||
+ | 2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0030: 49 49 49 20 31 39 38 37 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 | ||
+ | 0050: 09 80 5E FE C3 C2 CD 38 30 4C 4C 80 4C 55 95 4C | ||
+ | .... | ||
+ | 4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00 | ||
+ | 4060: 01 02 00 81 5D 81 61 81 99 81 D8 81 0B 82 33 82 | ||
+ | .... | ||
+ | 8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00 | ||
+ | 8070: 20 43 80 20 52 80 A9 4E 20 05 DE 20 FD BF AD 39 | ||
+ | .... | ||
+ | C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00 | ||
+ | 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 | ||
+ | located at $8000-$BFFF. Bank switching is done by writing | ||
+ | number plus $40 into memory location $DFFF. | ||
+ | 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. | ||
+ | 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 | ||
+ | | ||
+ | |||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 52 81 52 81 C3 C2 CD 38 30 41 4C 52 81 20 2C 81 | ||
+ | .... | ||
+ | 2050: 43 48 49 50 00 00 20 10 00 00 00 00 A0 00 20 00 | ||
+ | 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 | ||
+ | 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. | ||
+ | cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to | ||
+ | indicate the RESET/ | ||
+ | |||
+ | ===== 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 | ||
+ | |||
+ | 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 | ||
+ | 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 | ||
+ | 00030: 41 53 54 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 | ||
+ | 00050: 09 80 83 81 C3 C2 CD 38 30 4C 83 81 4C 76 82 80 | ||
+ | .... | ||
+ | 02050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00 | ||
+ | 02060: 59 6D 00 56 AD 00 55 AE F0 00 01 A0 FE 00 01 F8 | ||
+ | .... | ||
+ | 20140: 43 48 49 50 00 00 20 10 00 00 00 10 A0 00 20 00 | ||
+ | 20150: 0A 9A 55 FF 9B 69 57 FE AA 65 96 FE 65 0F D6 D9 | ||
+ | </ | ||
+ | |||
+ | Here is a list of the known OCEAN cartridges: | ||
+ | |||
+ | * Batman The Movie (128 kB) | ||
+ | * Battle Command | ||
+ | * Double Dragon | ||
+ | * 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, | ||
+ | is banked into $8000-$9FFF and for the upper 128Kb, | ||
+ | into $A000-$BFFF. Note that the Terminator 2 cartridge | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 00050: 1E 80 86 EA C3 C2 CD 38 30 1B 00 81 0D 08 80 00 | ||
+ | .... | ||
+ | 02050: 43 48 49 50 00 00 20 10 00 00 00 08 80 00 20 00 | ||
+ | 02060: 78 A2 F0 86 01 BD 1D 08 9D F8 00 CA D0 F7 4C 00 | ||
+ | .... | ||
+ | 04060: 43 48 49 50 00 00 20 10 00 00 00 10 80 00 20 00 | ||
+ | 04070: 38 E5 68 85 03 B0 11 27 03 12 C0 18 69 27 42 90 | ||
+ | .... | ||
+ | 06070: 43 48 49 50 00 00 20 10 00 00 00 18 80 00 20 00 | ||
+ | 06080: 44 D0 5E 06 02 C0 44 11 40 04 11 44 01 5F 1C 73 | ||
+ | .... | ||
+ | 1E130: 43 48 49 50 00 00 20 10 00 00 00 39 80 00 20 00 | ||
+ | 1E140: 85 EB 41 EA 9E 08 03 00 C0 06 18 01 00 C0 08 03 | ||
+ | </ | ||
+ | |||
+ | The FUN PLAY Cartridge uses $DE00 for bank selection, | ||
+ | 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 | ||
+ | written to $DE00. The following bits are used for bank decoding | ||
+ | $DE00 (0 being the LSB, 3 being the MSB). | ||
+ | |||
+ | < | ||
+ | Bit# 76543210 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | After copying memory from the ROM banks, the selection program writes | ||
+ | a value of $86 to $DE00. This seems either | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 0A 80 0A 80 C3 C2 CD 38 30 00 A9 80 A0 00 85 FB | ||
+ | .... | ||
+ | 4050: 43 48 49 50 00 00 40 10 00 00 00 01 80 00 40 00 | ||
+ | 4060: 27 80 A8 80 C3 C2 CD 38 30 00 40 C0 40 C0 40 C0 ' | ||
+ | .... | ||
+ | 8060: 43 48 49 50 00 00 40 10 00 00 00 02 80 00 40 00 | ||
+ | 8070: 00 00 00 49 4D C7 64 47 46 45 F3 48 DC 08 7E 0B | ||
+ | .... | ||
+ | C070: 43 48 49 50 00 00 40 10 00 00 00 03 80 00 40 00 | ||
+ | C080: D5 F9 F0 C1 D5 F7 F0 BD E8 B5 02 F0 FB C9 05 30 | ||
+ | </ | ||
+ | |||
+ | The SUPER GAMES cartridge uses 4 16Kb banks ($8000-$BFFF) | ||
+ | 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 09 80 0C 80 C3 C2 CD 38 30 4C 41 80 4C 1E 80 4C | ||
+ | .... | ||
+ | 2050: 43 48 49 50 00 00 20 10 00 00 00 01 80 00 20 00 | ||
+ | 2060: 09 80 0C 80 C3 C2 CD 38 30 4C 3F 80 4C 91 80 4C | ||
+ | .... | ||
+ | 4060: 43 48 49 50 00 00 20 10 00 00 00 02 80 00 20 00 | ||
+ | 4070: EF FC 09 80 C3 C2 CD 38 30 4C 27 80 4C DB 81 4C | ||
+ | .... | ||
+ | 6070: 43 48 49 50 00 00 20 10 00 00 00 03 80 00 20 00 | ||
+ | 6080: 09 80 0C 80 C3 C2 CD 38 30 4C 73 86 4C 30 80 4C | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 30 80 5E FE C3 C2 CD 38 30 20 04 90 4C 38 DF AB | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 09 80 9C 80 C3 C2 CD 38 30 A2 00 8E 16 D0 20 84 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 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 | ||
+ | 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 | ||
+ | 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 | ||
+ | 0050: 08 80 C1 FE C3 C2 CD 38 30 6C 95 E3 20 A3 FD 20 | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | 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 | ||
+ | 0030: 64 67 65 20 49 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 | ||
+ | 0050: 80 BA 5E FE C3 C2 CD 38 30 00 A0 A0 20 2D FE 58 | ||
+ | </ | ||
+ | |||
+ | ===== 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 | ||
+ | * Last Ninja Remix (System 3) (512 kB) | ||
+ | * Myth (System 3) (512 kB) | ||
+ | |||
+ | |||
+ | ROM memory is organized in 8Kb ($2000) banks located | ||
+ | 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" | ||
+ | </ | ||
+ | |||
+ | After RESET or POWER ON, 16kB of Cartridge | ||
+ | $8000-$BFFF. Additionally, | ||
+ | mirrored into IO1 and IO2 at $DE00-$DFFF. | ||
+ | disabled by writing into the IO2 area (typically | ||
+ | re-enabled by writing | ||
+ | (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 | ||
+ | * Satan (128 kB) | ||
+ | |||
+ | ROM memory is organized in 8Kb ($2000) banks located | ||
+ | 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 | ||
+ | $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 ˙? | ||
+ | .. | ||
+ | 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$, | ||
+ | .. | ||
+ | 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, | ||
+ | </ | ||
+ | |||
+ | This cartridge type is very similar to the OCEAN cart type: ROM memory | ||
+ | is organized | ||
+ | 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, | ||
+ | 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/ | ||
+ | |||
+ | Here is a list of the known cartridges: | ||
+ | |||
+ | * Ghosbusters | ||
+ | * Magic Desk | ||
+ | * Badlands | ||
+ | * Vindicators | ||
+ | * Wonderboy | ||
+ | * Cyberball | ||
+ | |||
+ | |||
+ | ===== 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, | ||
+ | banks ($4000) at $8000-$BFFF. There are 4 banks of ROM memory | ||
+ | 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 ? | ||
+ | |||
+ | 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 by 127.0.0.1