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 SRAM card like the original cards
- A non-volatile MRAM card, a RAM card that doesn't need a battery
- A ROM card, there is new software that runs from a rom card but no known images of any old original rom cards
- A programming adapter that can read and write both the RAM and ROM cards outside of the WP-2
- A breakout card to allow connecting the bus to a breadboard or logic analyser etc
- REQUIRES 1.2mm PCB
The normal default PCB thickness of 1.6mm will NOT fit.
If you don't remember to manually change the PCB THICKNESS to 1.2mm when ordering, you'll get 1.6mm.
-
The SRAM card has a battery terminal that should be gold. ENIG copper finish will give you a better battery terminal without the expense and custom steps of proper selective hard gold.
-
Attach the cover with thin 3mm or 1/8" adhesive transfer tape aka "cell phone / tablet screen repair tape".
https://www.amazon.com/dp/B0C78LJLDR/ 0.2mm
https://www.amazon.com/dp/B0DRV5D4YG/ 0.2mm
https://www.amazon.com/dp/B078H298G2/ 0.2mm
https://www.amazon.com/dp/B019OQ4ZG0/ 0.2mm
https://www.amazon.com/dp/B01N27LYV9/ 0.09mm
Or glue, but adhesive is easier to remove later.
You can make the cover easy to remove by just using small bits of tape instead of full lengths like the picture. It doesn't take much to hold it on
The cover is not just cosmetic. It prevents the components from catching on the lip of the card slot when inserting & removing, and protects against shorts, and protects against general physical damage to the components.
Similarly, it's a good idea to cover the bottom of the pcb with a piece of 2 inch shipping or packing tape to protect the pcb from scratching and shorting.
Just lay a simple single piece across the main pcb part along the connector edge but not on the connector.
The various solder-jumpers are mostly for hacking and custom software development like making a ram card emulate a rom card, or possible use in other machines besides the WP-2, for instance maybe some other machine besides the WP-2 could address 256k in ram mode, etc.
They are pre-connected for normal operation and you normally just ignore them. Don't solder them or cut them.
The most likely exceptions you might actually use are:
. On the ROM card, to make a simple 256k rom card with no bank switch or write-enable switch, hard-wired to always be write-enabled via the S3 pin to work with a matching bodge wire mod in the WP-2, solder-blob the S3 pin pads on the (unpopulated) write-enable switch.
. On the SRAM card, to make a simple 128k ram card with no bank switch, solder-blob RAM_CE2 to BUS_CE2 (or RAM_CE2 to VMEM, it doesn't much matter which, but only one or the other not both!)
Most cards have a few different styles and configurations of the printed cover.
If you have trouble printing the fancy switch sliders, the "finger" versions are a simpler alternative.
The switches are optional on all cards, so there are versions without any bank-select or write-enable switches.
Aside from the pre-generated stl files, you can open the scad file in openscad and use the customizer panel to select different options and generate a new stl file. You don't have to touch the scad code. Just play with a few of the main options at the top of the customizer panel.
Gerbers, BOMs, and STLs are in releases
Fully populated for a 256k or 512k chip

BOM from DigiKey (512k) ((128k))
PCB and COVER from 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.
Supports both a 512K chip with a bank-select switch for 4 x 128K banks, or a 128K chip and you simply omit the indicated bank-select parts.
NOTE: MRAM is permanently damaged by strong magnetic fields.
The BOM here specifies the Industrial grade version of the chip which claims to be able to tolerate up to 125 gauss.
The Commercial and Automotive versions are only safe to 25 gauss. A fridge magnet is 100-300 gauss.
Even with the Industrial part you should still avoid exposure to magnetic fields.
You may want to store the card in a steel candy tin,
with 5-10mm thick shipping foam affixed to the inside top & bottom surfaces, so that the card is suspended away from the top or bottom surface.
The 4 edge walls aren't a problem because the center of the mram chip isn't near a card edge.
Magnetic fields drop off rapidly with distance, so suspending the card even just 6mm away from the inside walls makes even more difference than the steel shell.
This protects against many common magnetic sources that measure in the 100-1000 gauss range.
Some examples: large over ear headphones, bluetooth speaker, cell phone, laptop lid, "refrigerator" magnets, tablet cover, handbag closer, magnetic usb-c cable end.
But for example a 3900 gauss (very strong) flashlight handle stuck to the outside of the can still measures 500 gauss at the surface of the foam, which is still too high.
For long-term storage, you may want to just keep it in a larger box & filler that simply adds at least another inch (20-30mm) of distance on all sides.
512K MRAM PCB and COVER from PCBWAY
512K MRAM BOM from DigiKey
ROM PCB and COVER from PCBWAY
ROM BOM from DigiKey (256K & no bank sw)
SW1 is optional. The marked S3 and R/W pads double as solder jumpers.

Fully populated with 512k chip, bank switch, and convenience write-enable switch.

Minimal config with 256k chip, no bank switch, solder blob for WP-2 S3 pin write mod.
R1 is not ideal or wanted here because it is a pullup on /WE, and in this configuration, the /WE line is connected to both the S3 and /WR pins inside the WP-2, and they both already have 100k pullups each.
If you leave the solder blob on, then you don't need R1. If you remove the solder blob, then you need R1. Same for the R/W position or S3.

There are 2 options for writing to the ROM card, using a programmer or using software on a modded WP-2.
-
On the WP-2 mainboard, add a bodge wire connecting RA4 pin 5 to RA5 pin 2.
( RA4p5 is /WR on the cpu, RA4p2 is pin 36 (S3) on the IC Card connector )
This wire can be left there permanently, it doesn't interfere with normal operation.Notes if using mini-grabbers instead of soldering:
- Requires mini-grabbers with a thin body and strong hooks: https://www.amazon.com/dp/B0DL5ZLK8H
- Fold X1 away from RA5 to let the grabber reach.
- Ensure the RA5 grabber handle lies on the pcb to the side of the square chip, not on top of the chip.
- Ensure the RA4 grabber lies angled towards the printer port so that the lcd ribbon doesn't lay on top of the grabber handle when you close the case. The sharp corners on the grabber handle will poke into the cable.
The tape in the pic is just to keep the grabbers in the best position long enough to close the case. - Shift & wiggle the case halves back & forth a little while while closing so that the grabber handles get pushed to the sides of the chips where there is just enough room for them so they don't put pressure on the lcd.
-
On the card, Select SW1 position S3 or solder-jumper S3 if no switch installed.
-
Find Ben Grimmett's software in the files section of the Model-T Computers group on Facebook.
and especially the latest version of hexview on his Discord.
Copy HEXVIEW v2 (or later) to the WP-2 using a serial cable and TPDD emulator (LaddieAlpha or DL2).
(I would change the name to something like HEXVIEW2.CO)
Run HEXVIEW on the WP-2 (F2-FILES -> RAM DISK -> HEXVIEW2.CO -> F2-RUN)
Run RomCardWriter.exe on a pc and press S in hexview to write a full rom image from the pc to the rom card.
-
Build the programming adapter below
If the card has a 512K chip and bank switch installed then there are a few complications to writing the banks.
See https://github.com/bkw777/M4ROM?tab=readme-ov-file#programming-the-chip for explaination from a similar project with the same feature.
This is the main reason the default BOM has a 256K chip and no bank switch.
The programming adapter supports both ROM and RAM cards.
Use with a standard eprom programmer such as TL-866 or T48, etc.
Programming Adapter PCB from PCBWAY
Programming adapter BOM from DigiKey
Set all 4 jumpers on the programming adapter to ROM.
Set the write-enable switch on the card to the R/W position.
Example using a TL-866 programmer to write a file named rom.bin to the ROM card:
minipro --device SST39SF020A --unprotect --protect --write rom.bin
Set all 4 jumpers on the programming adapter to RAM.
Examples using a TL-866 programmer (628128 is the generic part number compatible with 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)
Breakout card with a card socket to monitor bus signals while a card is in use.
The VHOST-VCARD pins allow to measure the current drawn by the card.
VHOST is VCC from the WP-2, VCARD is VCC to the card.
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
Pin 2 -> RA5 -> IC5 pin 64, "T1"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 14, 2nd GND
This pin is tied to GND inside the WP-2, but it looks like it's an un-used input or output, not intended to be used as a power gnd.
It looks like this pin was partially implimented as Pin 14 -> RA5 -> IC5 pin 65, "T2", just like S1-S3, but ended up not being used in the final production.
So instead, IC5 pin 65 is pulled up to VDD and not connected to the socket or anything else, and the connector pin is tied to GND and not connected to anything else.
It's possible the "IC Card" spec defines a function for that pin, and the gnd is just a way to satisfy that part of the spec in case there are cards that expect it, like how CE2 is hard-wired to VDD.The cards in this repo all include a cuttable solder-jumper to disconnect pin 14 from GND on the card, in case there is some other machine (not WP-2) that might not like the pin being shorted to gnd.
-
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. -
Pins 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. Though, unused address lines pins would more likely be pulled down than up, since address lines are active-high. -
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: It's unknown exactly how this was intended to be used by the "IC-Card" spec.
The SRAM card here simply connects pin 37 to BATT+. This seems to do nothing at all on a WP-2 but maybe some other machine like WP-3 or Citizen uses it.
The schematic on page 8-2 in the servivce manual 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 did have 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.
Just for the sake of keeping track somewhere, the following look very similar, but 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 physically count 39 holes plus another smaller hole in pictures) But no polarity notch on the pin-38 side. -
Yamaha MCD32 / MCD64
This one is insidious. It combines both the fact that it looks perfect and probably fits perfectly, with the fact that it would short the WP-2's VCC directly to GND. It has the same single-row 38-pin connector and the same shape of keying notch on one side. You could probably plug this card in and it would probably fit perfectly. The key notch is on the on the wrong side, so you'd have to plug it in upside-down, but maybe the pins are just numbered the other way and doesn't really matter? Well 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, while WP-2 has GND on pin 1 and VCC on pin 38. So, no matter which direction the pin numbers count, no matter what the rest of the pinout looks like, if you managed to insert the card it would short the WP-2's VCC 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.
Figure that out and write some sort of reproduceable toolchain & Makefile template hello world project to create new executables.
Known examples:- John Hogerhuis CamelFORTH
- "Christopher" from "randomvariations" DUMPROM
- Ben Grimmett HEXVIEW
-
Use the programming adapter to dump ram card images and reverse engineer the "filesystem".
The files themselves (at least .DO) are already fairly well documented: https://bitchin100.com/files/wp2/wp2format.html -
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.
































