Building a REX

From Tandy Tech
Jump to navigation Jump to search

Introduction

Building a REX
Note this isn't the original REX. This is essentially a REX1 with a modified pcb layout from Steven Adolph's original.
It is electrically identical, and uses the same software and firmware.
The PCB layout and shape are modified to snap into a 3d-printed carrier, and provide connections for power and PORT_EN to facilitate programming the CPLD.

Original version of this page, for building the original REX1

Parts & Materials

For Tandy 100/102/200 version

For NEC PC-8201/8300 version


Other Compatible Flash Chips and how to identify them

Tools

Cheap Chinese clone is fine.
Look at the pictures for ones that say model DLC9G, or DLC9LP. Don't put "DLC9G" or "DLC9LP" in the search, you will only get the overpriced ones.
Get one that includes a "flying leads" cable, with separate loose individual wires on one end.
A cheap usb-ttl cable is perfect. It's cheap, and already ends in loose wires with female dupont pins.
Just use the red and black wires and ignore the rest.
  • PC with at least one usb port, and a COM port or usb-serial adapter.
  • Sandpaper, medium grit (120 or so), and a hard flat surface like a cutting board.
Do not necessarily need anything fancy. I actually used this exact one to build a few REXs, although now I use a Hakko FX-888D.
Or the strongest reading glasses you can get at a local drug store. 3.00x or higher.
0.1" (2.54mm) pitch single row male pin header
1x6
1x4
one shunt


  • A Tandy Model 100, 102, or 200.


Software

  • Xilinx ISE 14.7 Lab Tools
Lab Tools is a subset of ISE. You can use either ISE or Lab Tools, but you only need Lab Tools to program the REX.
This software is old and needs special futzing to make it work, no matter what OS you are using.
Installing on Ubuntu Linux
Installing on Windows.
  • A DOS (aka TPDD client) for the M100
There are several dos's, and several ways to get one installed. These are a few options:
Get dlplus and use the bootstrap option to install Teeny.
Get mComm for Windows or Android and use the dos installer that comes with it to install either Teeny or TS-DOS.
Play File:DOS100.CO.MP3 into the cassette port to install TS-DOS. (SOUND OFF:CLEAR 0,57089:RUNM "CAS:DOS100.CO")
Get a real tpdd and bootstrap it's utility disk to install "Floppy".
The rex firmware updater needs a TPDD server.
dlplus and mComm above are both tpdd servers, which come with tpdd client installers, and previously you used to be able to just use one of those packages for everything.
But there is a bug in the latest REX build 254 files, such that it only works (reliably) with LaddieAlpha as the TPDD server.
But LaddieAlpha does not come with any dos installer.
So, right now it's a bit inconvenient. You have to get one of the above packages just to use it's dos installer, and then you have to get LaddieAlpha also, and use it for the rest of the rex setup process.
Start there, and follow the links to whatever is the latest "REX Release x.x Rebuild Package" zip file.

Procedure

Prep the Bare PCB

Lay a piece of medium grit (100-200) sandpaper face up on a hard flat surface like a cutting board.

Sand the edges of the PCB on the sandpaper just enough to clean off the panelization break-away points.

Use magnification to look closely at the castellated edge contacts for copper or gold "flags" hanging on the edge of most contacts. Scrape them off with an xacto knife.

Solder the Electronic Components

Solder these parts onto the matching labeled locations on the pcb.

U1 = XCR3064XL
U2 = 29F800
U3 = LP2980-3.3
R1 = 10K
C1 = 1uF
TP1 & TP2 = right-angle pin (optional)

Don't be too intimidated by the tiny legs on that TSOP-48 chip.
Just use magnifying glasses, lots of flux, and the DRAG TECHNIQUE.
Another example: https://youtu.be/09qb0KY_IF4

The TP1 and TP2 pins are only needed if you think you will ever perform the hardware modification required to use the main rom management feature. See FlexROM_100 or FlexROM_102 to facilitate this.

NEC

For the NEC version, do the DIP legs the same way as FlexROM_100.

Cut 2 strips of 14 pins each
Cut the top (larger end) off of all the pins using ordinary scissors, leaving a simple "comb" of pins.
Insert the "comb" into the top of the pcb and poke the legs down through about 1/2 way. The frame holding all the pins together should be on the top side of the pcb, 2-3mm above the pcb. The legs sticking out the bottom of the pcb should be 4 to 6 mm long.
Adjust the leg on one end of the row and solder that leg.
Adjust the leg on the opposite end of the row so the row is even, and solder that leg.
Solder all remaining legs.
Examine the legs for excess solder on the bottom of the pcb and along the length of the legs. If there is any solder built up on the legs, use flux and solder wick to remove it.
When you are sure the legs are all good, use flush cutters and cut the top of each leg off flush with the top of the pcb.


Clean the Finished PCB

Even "No-Clean" flux should still be removed as much as possible after soldering.

The best is to use an ultrasonic cleaner and Branson EC mixed to 3% by volume with distilled water, heated to 150F. (2 cups in the microwave for 3 minutes, and a capful of Branson EC. Run the cleaner for 3 minutes. Stir the chips around with a plastic spudger or chopstick etc, so they pass in and out of the invisible resonating "hot-spots" and all parts of all chips get even exposure, since this cleaner doesn't have frequency sweep. But it does have 2 transducers instead of one, and decent power, and a plastic basket. You can lift the basket up and down while cleaning too.)

If you don't have that, then at least make sure your flux pen or flux syringe is "no-clean", and make sure the flux inside the solder is also no-clean, and then use 99% isopropyl alcohol and a small paint brush. This will still leave flux trapped under the chips no matter how much you soak it or wash it, but if it's definitely all no-clean, then it's ok.

Program the CPLD

Now we need to flash the CPLD (Xilinx) with the .jed file. This configures the blank CPLD into a functional circuit that actually does something.

  • Get the .jed file from here.
  • Connect the jtag, 5vdc, and PORT_EN jumper.

Snap the PCB Into the Carrier

Place the end of the PCB without the hole into the carrier first, then snap the rest of it in.

Flash the Firmware

Follow the 4.9 update directions to load the firmware.

The directions for the 4.9 update state that you use any tpdd device to serve the 3 files to the M100/T102/T200, but in fact at least at present, it does not work with actual tpdd1 or tpdd2 drives at all, and is not reliable with just any tpdd server either. You must use specifically LaddieAlpha.

Directions for a Linux PC:

Outline

  • Get a proper serial cable
  • Install Teeny onto the M100/T102/T200.
  • Get LaddieAlpha onto a PC.
  • Get the 3 update files.
  • Run LaddieAlpha in the dir with the 3 update files.
  • Use Teeny to copy rf149.co to the M100.
  • Run rf149.co on the M100.

Details

Back up any files off of M100. M100 will be wiped.

Cold reset M100 (ctrl+pause+reset)

Power off M100

Install REX into M100

Connect serial cable between M100 and PC

Power on M100

On PC, open a terminal.

$ mkdir -p trs-80
$ cd trs-80
$ git clone git@github.com:bkw777/dlplus.git
$ cd dlplus
$ make all && sudo make install
$ cd ..
$ dl -b

Follow the prompts on the PC and on the M100 screen.

On M100:

BASIC
RUN "COM:98N1ENN"

On PC:

Enter
wait...

On M100:

Enter
NEW
?HIMEM:CALL9643
see that Top: says 62213 (Or whatever it says for you. 32k machine should say 62213)
CLEAR 0,62213
MENU

On PC:

Enter
should be back at a shell prompt now
$ mkdir LaddieAlpha
$ cd LaddieAlpha
$ sudo apt install mono-complete
$ wget http://bitchin100.com/files/linux/LaddieAlpha.EXE
$ wget http://bitchin100.com/wiki/images/4/4f/R49_M100T102_254_rebuild.zip
$ wget http://bitchin100.com/wiki/images/6/63/M100_OPTION_ROMS.zip
$ unzip R49_M100T102_254_rebuild.zip
$ unzip M100_OPTION_ROMS.zip
$ mono ./LaddieAlpha.EXE /dev/ttyUSB0 6

On M100:

should be at menu
TEENY.CO
> L RF149.CO
> Q
should be at menu
BASIC
CLEAR 0,55000
MENU
should be at menu
RF149.CO
Answer Y
Wait...
should be at menu
ctrl+pause+reset
should be at menu, ram wiped
BASIC
CALL 63012
should be at menu, REXMGR should appear in menu

REX is now ready to use, and empty except for TS-DOS.
Now install a rom. Ex: Ultimate Rom II

REXMGR
press TAB once
screen should say "TS-DOS* ------"
press right-arrow once, highlight should move to "------"
press F2
Loading from image filename: UR2100
Hit any key when TPDD ready.
Loading 0:UR2100.BX     ####
now it should say "TS-DOS* UR2100 ------"

UR2 is now loaded into REX, but not currently active, TS-DOS is.

right-arrow to highlight UR2100
press enter
Y

UR2 is now active, and the equivalent of "CALL 63013,1" to "install" an option rom was already done for you by REX or REXMGR.

F8 back to menu.

Leave LaddieAlpha running on PC while you load more roms.

Ctrl+C to exit LadieAlpha.

Done!

That was the last step. You're done! Consult the REX docs to start using it!

Main ROM Management

Main ROM Management

  • For 100, see FlexROM_100
  • For 102, see FlexROM_102
  • For 200, no FlexROM for 200 yet. See the regular REX docs.
  • For NEC, you can use FlexROM_102 in NEC, but there is almost no reason to. The main advantage to FlexROM is the ability to deactivate/re-activate an internal main rom without taking the computer apart. In the NEC, the main rom socket is accessible, so you can just pop the standard main rom back in any time you need to.

References

Current PCB source is maintained on github

Version c6 pcb This version of the pcb is obsolete, but has pics of the firmware flashing procedures.

Version c8 pcb This version is also now obsolete, but the only difference is the pcb dimensions and matching carrier.

User Manual

Original sources and support files

Copies of some of the sources and support files, and new sources for some things modified from the originals