Expansion IC-Card for TANDY WP-2, TANDY WP-3, Citizen CBM-10WP, NTS WP-10C
The TANDY WP-2 and other clones of the Citizen CBM-10WP have an expansion slot that accepts "IC Cards".
Here are a few different cards to fit that slot.
- A battery-backed 128k RAM card (like the original cards)
- A non-volatile 512k RAM card that needs no battery
- A ROM card (of only academic value, since there are no known ROM card images)
- A programming adapter that can read and write both the RAM and ROM cards
- A breakout card to allow connecting the bus to a breadboard
These cards must be made with 1.2mm PCB or thinner
Standard 1.6mm PCB thickness is too thick.
You have to change this option when ordering a PCB or you'll get 1.6mm by default.
Attach the printable covers with thin adhesive transfer tape or glue.
It's a good idea to cover the bottom of the pcb with a piece of shipping or packing tape. Just lay a single 2-inch piece right across the middle and don't worry about the small bit of uncovered pcb on either side.
Gerbers and STLs are in releases
128K SRAM BOM from DigiKey
128K SRAM PCB and COVER from PCBWAY
IMPORTANT, when ordering the PCB:
- Thickness: 1.2 <-- MOST IMPORTANT - DO NOT MISS
- Min Track/Spacing: 6/6mil
The PCBWAY ordering page may auto-select thinner minimum traces which is expensive, but thise pcb actually has all traces at least 0.2mm (7.8mil), so you should manually change the option to 6mil. - Surface Finish: Immersion gold(ENIG)
Makes it expensive, but you want the battery terminal to be gold. - Other Special request: Bottom solder mask full cover.
There are no openings in the bottom soldermask layer, so you have to tell them that you want 100% soldermask coverage rather than 0% coverage.
You can save some money on the ENIG by using Elecrow instead of PCBWAY.
RAM card without a battery!
This card is expensive. The BOM cost is over $50 before tax or shipping and not including the PCB or the 3d-printed top cover. The total including PCB, BOM, printed cover, tax, & shipping is over $100.
However it does provide 4 128k cards in a single card, without any battery.
NOTE: MRAM is permanently damaged by exposure to magnetic fields.
The particular part used here is internally shielded and specifically the Industrial version claims to be safe to 125 gauss.
The Commercial and Automotive versions are only safe to 25 gauss. A fridge magnet is 100 gauss.
The BOM specifies the Industrial part so it should be reasonably safe, however you should still generally avoid exposure to magnetic fields.
512K MRAM PCB and COVER from PCBWAY
512K MRAM BOM from DigiKey , Mouser
There are two versions of 3d-printable cover available, with different ways to handle the bank-select switch.
The "slider" version has a fancy separate moving part switch actuator.
The "window" version is a single piece and simpler to print.
There are no known rom images for any rom cards. Don't bother building one of these unless you are trying to create a rom from scratch.
ROM PCB from PCBWAY (Select 1.2mm PCB thickness)
ROM BOM from DigiKey
The programming adapter supports both ROM and RAM cards.
Use with a standard eprom programmer such as TL-866.
Programming Adapter PCB from PCBWAY
Programming adapter BOM from DigiKey
In addition to soldering the pins to the PCB, also make a male jumper for the write-enable contacts on the card.
Cut a pair of pins off the leftover 2.54mm pin header, and solder-blob the two pins together on the short side.
There is a spot to stow the jumper on the programming adapter when not in use.
Insert the male jumper into the write-enable holes on the card.
Set all 4 jumpers on the programming adapter to ROM.
Example using a TL-866 programmer to write a file named rom.bin
to the ROM card:
minipro --device SST39SF020A --write rom.bin
Set all 4 jumpers on the programming adapter to RAM.
Examples using a TL-866 programmer (628128 is a generic part number for the SRAM on the card):
minipro --skip_id --device 628128 --read ram.bin
minipro --skip_id --device 628128 --write ram.bin
Breakout PCB from PCBWAY (Select 1.2mm PCB thickness)
Connect the WP-2 to a PC via 9 pin female-female rs-232 null-modem cable and usb-serial adapter(usb-c example), or a one-piece usb-null-modem cable.
Run DL2 or LaddieAlpha on the pc.
Then use the WP-2 (press F2
+=
) to copy files between MEMORY CARD
and DISKETTE
.
WP-2 Owner & Service Manuals
Card slot signals & usage: Service Manual 8-2, C-3.
Executable "RUN" files: Service Manual 4-16, D-1.
Original Connectors
Datasheet for both the slot in the computer and the connector in the card.
You can't get the real connector any more, but you can get a generic socket header which fits the pins.
The pins inside the card slot are 1 row x 38 pins, 1.27mm pitch, 6.0mm long
SAMTEC 8.5mm Pin Socket
https://duckduckgo.com/?q=SMS-138-01
https://www.digikey.com/en/products/detail/samtec-inc/SMS-138-01-G-S/9773732
https://www.mouser.com/ProductDetail/Samtec/SMS-138-01-G-S
There are much less expensive generic female 1.27mm pin headers on ebay and aliexpress, but they don't work for this. Sorry :/ The metal parts inside the cheap connectors aren't held in place accurately enough, and the pins in the WP-2 hit the edges of the metal parts in female sockets, and no amount of wiggling gets all 38 pins to line up and let the card insert. And trying just risks damaging the pins inside the WP-2. So, the Samtec socket is both deep enough to take the 6mm-long pins, and is manufactured to tight enough tolerances that the pins slot right into the socket with no problems.
Pin 2, /DET Card Detect: WP-2 uses this to detect the type of card. The pin is pulled up to VDD inside the WP-2. A RAM card connects this pin to GND, which tells the WP-2 that it is a RAM card. A ROM card leaves this pin not connected, which means it will be pulled high by the pullup resistor inside the WP-2, which tells the WP-2 that it is a ROM card.
Pin 3, CE2, active-high chip-enable: This is not a real CE2 signal from the WP-2, it's just connected directly to VDD inside the WP-2. The card is only enabled/disabled by /CE1. Some of these designs connect the pin anyway as long as the card is based on a chip that actually has a CE2 pin anyway, because it's possible there is some other machines besides WP-2 that use the same card standard, and possibly one of those might actually use the signal. But for instance the 512K MRAM chip does not have a CE2 pin, and that card does not bother to add logic to impliment it, so the pin is NC on that card.
Pin 15, 16, & 36:
Pin 15 -> RA5 -> IC5 pin 66, "S1"
Pin 16 -> RA5 -> IC5 pin 67, "S2"
Pin 36 -> RA5 -> IC5 pin 68, "S3"
RA5 is 100k pullup to VDD.
IC5 is a gate array with unknown programming.
The S1, S2, S3 labels come from a schematic in the service manual. They are not mentioned anywhere else.
The service manual says the original IC Cards have no connections on any of these pins (that's in the cards, not in the WP-2).
It is unknown if the WP-2 does anything at all with these pins. They are connected to a chip, and the chip is a gate array that could be programmed to do anything. The only clues are that the pins are actually connected to anything at all instead of NC, and that they are pulled up rather than down or floating. It suggests there was a possible reserved usage, and that it was an active-low signal, and that possibly software could do it on the existing hardware. One guess for pins 15 & 16 might be made purely from their position on the connector. Possibly the spec for the "Toshiba IC-Card" interface includes pins for A18 and A19 that the WP-2 just doesn't happen to use.
Pin 17, A17: Only used for ROM. the WP-2 only supports up to 128K in a RAM card.
Pin 37, BCHK/Vchk, Battery Voltage Check: Unknown usage, but probably originally intended for the WP-2 (or the Citizen CBM-10WP) to detect the level of the battery in a RAM card. The schematic on service manual page 8-2 doesn't show Vchk connecting to anything, and I also cannot find anything anywhere on the motherboard that has continuity with this pin. Other similar machines had a pin that was used for the host machine to read the level of the battery on a RAM card. See the VBB pin in Atari Portfolio Technical reference Guide, page 11.
The "Toshiba IC-Card" appears to have been almost a standard, maybe, before PCMCIA type 1 was formalized. And so it's tempting to try to find other possible cards that might be compatible besides the ones sold by Tandy. There might be some but I have not found any yet.
The following are NOT the same and NOT compatible.
-
Amstrad NC100 and clones & derivatives like NTS DreamWriter 325.
They look very similar but the memory card in those is PCMCIA Type 1, which is totally different from this. -
ITT Canon Star Card
single row 38 pins (or maybe 39 or 40, references say 38-pin, but you can count 39 holes plus another smaller hole) but no polarity notch on the pin-38 side. -
Yamaha MCD32 / MCD64
MCD in particular really looks perfect, just upside-down, with the same single-row 38-pin connector and a keying notch on one side. But the key notch is on the on the wrong side, and it's not merely the same card but updside down. The pinout is different. Just for starters, MCD has GND on both pin 1 and pin 38, and vcc on pin 20, while the WP-2 has GND on pin 1 and VCC on pin 38. No matter which direction the pin numbers count, whether the Yamaha counts in the other direction or not, whether inserting the card upside-down changes that or not, no matter what either way if you managed to insert the card it would short the WP-2's power rail directly to GND.
CamelFORTH on ROM?
But how to construct rom image?
Try to deduce how a rom is supposed to work by recording the bus while trying to load a dictionary while the breakout board has the /DET pin not connected to GND.
Document how to create a RUN file like CamelFORTH. I don't know myself, but John Hogerhuis did it to make CamelFORTH based on the available info in the service manual, and someone else ported Zork the same way. Figure that out and write some sort of reproduceable toolchain & Makefile template hello world project to create new executables.
Use the programming adapter to dump ram card images and reverse engineer the file format. Possibly eventually add an mcu to the card that can read & write the sram and present a standard usb mass storage interface to a pc.
Add a 5v power output for a MounT?
Some way to access the card directly from a pc. IE, add a microcontroller to provide a usb interface.