Cartridges |
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) |
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.
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
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:
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:
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):
Examples (64KB):
Examples (128KB):
Bug Hunt and Lode Runner probably contain 64KB rom, but starting from
the bank 8.
PCB Bottom (75 KB JPG) (with parts)
PCB Top (88 KB JPG)
Emulated:
Unemulated (not needed).
PCB Bottom (50 KB JPG) (with parts)
PCB Bottom (51 KB JPG)
PCB Top (55 KB JPG)
Emulated:
Unemulated
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.
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.
PCB top (51 KB JPG)
PCB bottom (54 KB JPG)
PCB bottom with parts (47 KB JPG)
Emulated:
Atari800
PCB top with parts (118 KB JPG)
PCB bottom (140 KB JPG)
Schematics (26 KB JPG)
Emulated: Unemulated.
Emulated: Unemulated.
PCB (53 KB JPG) top
PCB (53 KB JPG) back
Emulated: My experimental Atari800 emulator.
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: ?
Emulated: Atari800 (from >1.2.2)
Banks: Contains 8kb in right slot, accesses D500, probably hardware for chip writing. Need more info.
Emulated: Unemulated.
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.