Cartridges

### Cartridge slot description

Left slot pinout (all models)

A | RD4 | if cartridge maps to $8000-$9FFF area (act H) | 1 | /S4 | selects lower bank (act L)
B | GND |  | 2 | A3 |
C | A4 |  | 3 | A2 |
D | A5 |  | 4 | A1 |
E | A6 |  | 5 | A0 |
F | A7 |  | 6 | D4 |
H | A8 |  | 7 | D5 |
J | A9 |  | 8 | D2 |
K | A12 |  | 9 | D1 |
L | D3 |  | 10 | D0 |
M | D7 |  | 11 | D6 |
N | A11 |  | 12 | /S5 | selects upper bank (act L)
P | A10 |  | 13 | +5V |
R | R/W | R/W - read (act H), write (act L) | 14 | RD5 | if cartridge maps to $A000-$BFFF area (act H)
S | B-PHI2 | buffered phase 2 clock | 15 | /CCTL | active when written to $D5xx (act L)

Right slot pinout (only 800)

A | B-PHI2 |  | 1 | R/W |
B | GND |  | 2 | A3 |
C | A4 |  | 3 | A2 |
D | A5 |  | 4 | A1 |
E | A6 |  | 5 | A0 |
F | A7 |  | 6 | D4 |
H | A8 |  | 7 | D5 |
J | A9 |  | 8 | D2 |
K | A12 |  | 9 | D1 |
L | D3 |  | 10 | D0 |
M | D7 |  | 11 | D6 |
N | A11 |  | 12 | /S4 | selects lower bank (act L)
P | A10 |  | 13 | +5V |
R | R/W | R/W - read (act H), write (act L) | 14 | RD4 | if cartridge maps to $8000-$9FFF area (act H)
S | B-PHI2 | buffered phase 2 clock | 15 | /CCTL | active when written to $D5xx (act L)

Parts are (always?) at back (XL)/bottom (XE) part of the cartridge. Connector orientation is S-A from front, 1-15 from back.

### Cartridge basics

There are three different 'windows' or banks in the memory:

Bank $A000-$BFFF is selected by low state on S5. Its presence is signaled by high state on RD5. This signal is attached to TRIG3 in XL/XE series. Used in left carts only.

Bank $8000-$9FFF is selected by low state on S4. Its presence is signaled by high state on RD4. Used in both left and right slot carts.

'Bank' $D500-$D5FF is selected by low state on CCTL. It's used for bankswitching. (mapping ports etc.)

Czech speciality (AFAIK) are cartridges with buttons. There are two different ways:
1) the button only connects RD5 to computer. So you push it, press reset, make the selection (if any) and then release the button. The program will be loaded from cartridge and will not take that much amount of memory (minimum is 8KB, obviously).
2) the button turns on RD5 and leaves it on. After reset, user could do some selections and cartridge will turn off when needed.

PCB Bottom (94 KB JPG)
PCB Top (112 KB JPG)
PCB Bottom (90 KB JPG) (another design)
PCB Top (93 KB JPG) (another design)
PCB Bottom (48 KB JPG) (another design - Miner 2049er)
PCB Top (41 KB JPG) (another design - Miner 2049er)

Romox released 'blank' 16KB cartridges which could be programmed in special machines. They were called Edge Connector Programmable Cartridges. List of potential releases is here.
PCB Bottom (60 KB JPG)
PCB Top (62 KB JPG)

Emulated: Atari800

### OSS carts

Banks: Usually contain 4 4KB banks. One of the banks is mapped in $B000-$BFFF. Other banks are mapped to $A000-$AFFF.
Detailed article is here.

Double eprom PCB (OSS DBL):

Older scheme, uses 74LS175 (4bit register???), 2 eproms and uses 4 bits of address bus.

Physical order of banks: ROM A = 3, M; ROM B = 0, 4

PCB Top (42 KB JPG)
PCB Bottom (42 KB JPG) (with parts)

A0 if 1, selects AL
A1 if 0, selects B
A2 if 0, selects BL, if 1 selects BH (A1 must be 0!)
A3 if 0, cart on, if 1, cart off.

Addr | A000-AFFF | B000-BFFF | RD5
0000 | BL | AU | 1
0001 | AL+BL = shit | AU | 1
0010 | nothing = FF's | AU | 1
0011 | AL | AU | 1
0100 | BH | AU | 1
0101 | AL+BH = shit | AU | 1
0110 | nothing = FF's | AU | 1
0111 | AL | AU | 1
1xxx | off | off | 0

Single rom PCB (OSS SNG):

Newer scheme, uses 2 d-flipflops, bits A0 and A3.

Physical order of banks: M, 0, 9, 1.

PCB Bottom (103 KB JPG)
PCB Top (96 KB JPG)
PCB Bottom (91 KB JPG) (with parts)

Schematics (8 KB GIF) drawn by me from the board pictures above. I doubt they are 100% correct, but are good enough to understand how does it work.

A3 | A0 | A000-AFFF | B000-BFFF | RD5 | Values
0 | 0 | bank 0 | bank m | 1 | 0,2,4,6
0 | 1 | bank 1 | bank m | 1 | 1,3,5,7
1 | 0 | off | off | 0 | 8,A,C,E
1 | 1 | bank 9 | bank m | 1 | 9,B,D,F

Examples:

Action!
MAC/65 1.00
MAC/65 1.01
MAC/65 1.02
Basic XE
Basic XL 1.02
Basic XL 1.03
Writer's Tool

Emulated: Atari800

### SDX carts

Banks: Contain 8 8KB banks. Access to base+0-7 turns on banks 0-7 in $A000-$BFFF area. Access to base+8-F turns the cart off.

SDX: Base is $D5E0.
Diamond: Base is $D5D0.
Express: Base is $D570.

PCB MIO test cart (471 KB JPG)
PCB Top (401 KB JPG)
PCB Bottom (423 KB JPG)

Better said: Cartridge looks for low CCTL and match in A4-A7. For SDX it is 0xE (1110), Diamond 0xD (1101), Express 0x7 (0111). If A3 is high, cart is turned off. If A3 is low, the bank whose number is in A0-A2 is selected. I'm not sure what happens when turning cart off, but I think that it turns off RD5 only.

Examples:

Sdx 4.18
Sdx 4.19
Sdx 4.20
Sdx 4.21
Sdx 4.22
Express
Diamond
Diamond 2
MIO Diagnostics

Emulated: Atari800

### R-Time 8

Pass thru cartridge with battery-backup for real-time clock.
PCB Bottom (109 KB JPG)
PCB Top (113 KB JPG)
Emulated: Atari800 - read only is enough.

### XEGS carts

Banks: Contain n 8KB banks. Bank n-1 is mapped at $A000-$BFFF. Banks 0 to n-1 are mapped to $8000-$9FFF by writing the number of bank to any of $D500 registers.

Thanks to Torsten Schall, following are pictures of something called 1MB ROM EMULATOR. It was probably used for developing of XEGS games.
PCB Parts (109 KB JPG)
PCB Back (64 KB JPG)
PCB design (18 KB ZIP) (in postscript)
XEGS developer docs part 1 (375 KB JPG)
XEGS developer docs part 2 (228 KB JPG)
PCB designs (39 KB ZIP) for different revisions of XEGS carts (in postscript)

Here is Ballblazer cart (board C100649):
PCB Top (105 KB JPG)
PCB Bottom (90 KB JPG) (with parts)
Schematics (15 KB GIF) drawn by Jerzy Sobola

Here is Bug Hunt cart (board CO26449):
PCB Top (82 KB JPG)
PCB Bottom (87 KB JPG) (with parts)
Schematics (15 KB GIF) drawn by Jerzy Sobola

Examples (32KB):

Archon
Blue Max
Crystal Castles
Into the Eagle's Nest
Food Fight
Star Raiders II

Examples (64KB):

Ballblazer
Battlezone
Choplifter!
David's Midnight Magic
Deflektor
Dark Chambers
Desert Falcon
Hardball
Mario Bros.
Rescue on Fractalus
Tower Toppler
Thunderfox

Examples (128KB):
Bug Hunt and Lode Runner probably contain 64KB rom, but starting from the bank 8.

Ace of Aces
Airball
Barnyard Blaster
Bug Hunt
Crime Buster
Crossbow
Fight Night
Flight Simulator II
Gato
Karateka
Lode Runner
Summer Games

Emulated: Atari800

### XEGS demo cartridge

Banks:
128 KBs.
Contains:
XEGS 64 - Flight Simulator 2 (shortened version)
XEGS 32 - One on One (same version as on XEGS cart)
LS16 - Joust (same version as on cart)
LS16 - Ms. Pacman (same version as on cart)
Does change game on each reboot (binary counter powered by capacitors).

PCB Bottom (75 KB JPG) (with parts)
PCB Top (88 KB JPG)
Emulated: Unemulated (not needed).

### Telelink 2 cartridge

Banks: Just one 8kb bank at A000-BFFF. Additional hardware is one X2212 nonvolatile SRAM, containing 256 x 4 bits, for storing telephone numbers. It's accessed by reading/writing 9000-90FF. There is also read access to $D501 and write access to $D502, don't know yet for what, but probably for setting read/write mode of the SRAM. The cartridge uses RD4 hardwired to +5V, what means that it takes full 16KB of address space. Not very elegant solution.

Telelink 2

PCB Bottom (50 KB JPG) (with parts)
PCB Bottom (51 KB JPG)
PCB Top (55 KB JPG)
Emulated: Unemulated

### MD-DOS cartridge

Banks: Same as OSS SNG cartridges. Uses two additional bits (A5,A4) for selecting 'subcart'. It thus has 4x16KB = 64KB. Also has button, don't know for what it is used (probably for calling the cartridge).

MD Dos

Emulated: My experimental Atari800 emulator - but with possible bugs.

### JRC cartridges

Toolbox III: Contains 64KB bankswitched cart with reset button.

Rambox2: EPROM part same or very similar to Toolbox III. Additionally contains 256KB of RAM. This ram could be accessed by TT-Dos and BeWe Dos.

Toolbox III
Rambox2

EPROM part: 8x8KB banks. Selected by D6, D5 & D4. Bank number is remembered when A7 is off (D500-D57F). If D7 is on, cartridge is off. If button is pressed, register is cleared, RD5 is on, main bank selected.

RAM part:

    ram bank select:
    X = 00 - 7F (7bits)
    A = A | $F0 (4bits)
    STA $D500,X
    Together it's 11 bits of bank address. You can address $80 bytes of memory
    in region $D580 (7bits). 11 bits + 7 bits = 18 bits = 256KB of RAM.

    memory write:
    LDA (BUFRLO), Y
    STA $D580, Y

    memory read:
    LDA $D580, Y
    STA (BUFRLO), Y

    Y = 00 - 7F. Uses previously set bank address.

Schematics (53 KB GIF).
GAL equations (1 KB EQN) (converted from JED file).

Emulated: My experimental Atari800 emulator.

### ATRAX cartridge

Banks: Contains 16 x 8KB banks (128KB). Uses A000-BFFF region. Bits 0-3 select bank. Bit 7 turns cart off. Menu program loads standard Atari dos executable, then turns cart off. I was told that 16 different carts exists.

ATRAX no.1
ATRAX no.5

PCB top (51 KB JPG)
PCB bottom (54 KB JPG)
PCB bottom with parts (47 KB JPG)
Emulated: Atari800

### Bounty Bob cartridge

Banks: Very strange bankswitching method. Contains main bank at A000-BFFF. From 8000-8FFF is first bank, 9000-9FFF is second bank. They are switched by accessing 8FF6-8FF9 (9FF6-9FF9). In each bank there's 4 x 4 KBs. Totally, it's 2 x 4 x 4 + 8 = 40 KBs. I was told that the cartridge is almost same as 5200 version and such cart contains only three chips: one 8KB rom, and two special self-switching 16KB roms. What circuitry is inside those chips is unknown to me.

Bounty Bob

Emulated: Atari800

### 128/256 K RamCart

Banks: Unknown.

PCB top with parts (118 KB JPG)
PCB bottom (140 KB JPG)
Schematics (26 KB JPG)

Emulated: Unemulated.

### A/D Converter

Banks: None. Uses lower four bits of $D500 for getting the digitized sound from mono analog input.

Emulated: Unemulated.

### Super Charger

Banks: Nothing than a multiply/divide chip inside to speed up 3d graphics calculations. Chip type is unknown. Used together with game disk 'Assault Force'.

PCB (53 KB JPG) top
PCB (53 KB JPG) back

Emulated: My experimental Atari800 emulator.

### PILL carts

The PILL!
Super PILL!
Super Cart (by Frontrunner)

Banks: None. Just a way to fool the computer into thinking that cartridge is inserted.

PCB (25 KB JPG) top (Frontrunner).
PCB (28 KB JPG) back (Frontrunner).

Emulated: ?

### Willams multibanked cartridge

Banks: Contains 8 x 8kb banks. Writing to $D500 turns on first bank (on bootup), writing to $D507 turns on last bank. Writing to $D508 turns cart off. Video61 uses this design for their newly released 'big' cartridges.

Emulated: Atari800 (from >1.2.2)

### Thompson Proburner

EPROM burner.

Banks: Contains 8kb in right slot, accesses D500, probably hardware for chip writing. Need more info.

Emulated: Unemulated.

### COS32

Banks: 16kb main bank. The other is banked in for a short period of time (would anybody compute that for me?) by any access to $D5xx area. Also contains the button on RD4/RD5. As I have other similar COS cartridge, I seem to remember the was some kind of service/toolkit which allowed to put anything on the cart.

Schematics (25 KB GIF)

Emulated: Unemulated.

Great source of information about memory and cartridge mappings is in the article by John Picken. Back (c) 1998-2004 Jindroush Last modified: Tue Mar 25 12:38:31 2003