• Please review our updated Terms and Rules here

TRS-80 Expansion Interface Project

Chromedome45

Veteran Member
Joined
Jul 6, 2009
Messages
3,993
Location
Central Florida
Hey I was kicking around an idea that may get some support from some forum members.

This group in the past has created some great products. 1st was the XT-IDE. Now there is the XT-FDC, The PCjr side card which integrates a XT-IDE along with 512MB memory expansion, ETC. How about a TRS-80 expansion interface?

Give it a floppy controller but make it Double Sided, Double Density. 32K RAM, Parallel printer port using a standard DB-25 connector and a serial port too. Make it about the same size or maybe smaller. The 32k Ram could be say a 64k Static RAM as a single chip. Instead of 16 16k RAM chips. and then you wont need the - 5v Supply. Just 1 chip single 5 volt. But would need the 12v for the RS-232. What does the group think???? Need input.
 
Which TRS-80 model are you thinking of? I assume Model IV. Although I think I'd like an expansion for my Model I instead :)

Yunno, I've never actually taken my Model IV apart. Is the floppy controller a card or is it on the motherboard (I seem to remember that it is a daughterboard)? Mine is the non-gate array model (no arrow keys).

Why stop at DS/DD? Can't we go higher, if the controller and drives supported it?

And why stop at 32K? I'm not an expert, but it'd be cool to bank-switch so that CP/M had a little breathing room.

And since I'm dreaming, why not a CFFA or SD-card storage solution? ;)
 
The expansion interface is for the Model 1.

If such a project were attempted, I would like to see it in a case that looks like the real expansion interface, not plastic obviously, but an aluminium box of similar dimensions.
However, 32KB ram is available as a single static ram chip that could be installed in the keyboard case, floppy disks can be replaced by CF/SD card and do you really need RS232?
 
Yeah it is for the Model 1. As for the Model IV lotonah if it is the Non gate the Floppy controller is separate. And the IV comes standard with 64k expandable to 128k. And it runs CP/M out of the box just find a copy of Montezuma Micros version of CP/M.

mnbvcxz: That's the reason I said possibility of using a single 64k static RAM. If a 32K is available so much the better. The RS-232 could be a way of transferring files between a PC and the trs-80 for those that don't run an emulator. And yes a CF card would be great but then you would need an IDE interface in there as well. But I would like to keep close to original as possible using floppy controllers hence the DS/DD is a step up from the original SS/SD. And an aluminum enclosure would be awesome. Just doing the cutouts for the floppy, Printer rs-232 and the input to the TRS-80 might be a bear unless you can find a metal shop to do it.

So I hope we can find some electronics genius to build it. I'm not really qualified. I know Lynch usually does these things. Have to put a bug in his ear.
 
Regarding a floppy controller, authenticity is nice and all but floppies are dying out so quickly that it would be nice if you were building something from scratch if it offered some modern functionality for doing software image transfers/etc. The other issue (and I'm sure someone here would be able to correct me if I'm wrong) is that if you wanted your hardware to be completely compatible with the original you might be stuck having to use two FDC chips, a WD 1771 for single density and a better one for double density, similar to the "Doubler" boards used in the original. As I recall the Model I's TRS-DOS uses a formatting mark that later DD FDCs don't support. There was a third-party expansion interface that only used a double-density FDC:

http://www.trs-80.org/lobo-lx-80/

But it only runs a limited selection of DOSes. (Heck, even if there is a DD FDC that fully supports all the single-density functionality of the 1771 you'd probably have to run a patched version of DOS on it, and that would probably rule out using self-booting programs.)

Given all that what I think would be *cool* is an E/I replacement that uses a high-speed microcontroller to emulate the Model I's disk subsystem. In theory at least emulating the disk system at the "drive controller socket" level might be simpler than an external device like an SVD, and it would certainly be convenient to be able to just copy emulator images onto, say, an SD memory card and plug them straight in. (And optionally, you could provide the ability to write a "native mode" DOS driver that would allow a TRS-80 DOS to treat a directory or partition on the memory card as a hard disk.)

If we're really dreaming it's fun to imagine building the E/I replacement hardware on a PCB that also includes a complete Model I workalike computer. Fit the board with a TRS-80 compatible 40 pin expansion connector and provide the builder the option of just building the E/I hardware and interfacing it to a real Model I with a special cable, or building up the entire board and using the header for future Model I compatible peripherals.
 
Sounds like great suggestions. Using an SD card to transfer the disk images is a fantastic idea. I thought keeping it original might have been a great idea but the more inputs I get the more we need to bring it up to somewhat modern specs. Also please take into consideration I am by no means electronics genius. just know a little.

Keep the inputs coming...
 
If anyone does consider designing something like this they might also consider more memory with some kind of bankswitching, since single chip static rams are available in 128Kb and 512KB capacities for a similar price as the 32KB chip.
 
More RAM and using as a RAM disk or bank switching. Great idea but would to possibly come up with our own DOS. Maybe a hacked or modified LDOS 5.3.1.
Also off topic seeing as though Jimmy stole my power adapter I had to build my own power supply. Just a prototype of my own design but so far it is running my TRS-80! When I have a final version I'll let everyone know. But in the meantime Ian's looks like a great replacement unit! Awesome design and I recommend it to anyone seeking a replacement.
 
We're way overdue for a (non-FPGA) TRS-80 replica of some sort. You can't swing a dead cat without hitting an Apple I clone and there's a (somewhat indirect) PET replica out there, it's time for the Trash 80 to get a little love.

Sort of what I'm picturing is an 8x10"-ish modular board, roughly half of which consists of the E/I peripherals. The heart of it would be the "disk controller", which would use a suitably fast MCU to emulate a 1771 or later FDC with disk images stored on an SD card. (The finished version of the software would be able to emulate later DD FDCs in addition to the 1771, so the board could act like an original Model I E/I with a doubler, or optionally the hardware could allow the subsystem to be remapped to the Model III/4 addresses and emulate the controller in those systems.) The memory subsystem would use a 128k (or larger) static RAM chip and include an MMU that's upwardly compatible with the one in the Model 4(P), and you'd have a printer port which could also be mapped at both the Model I or III/4 memory/port locations. (Since there's not that much call for actual printing these days the port could double as a buffered general I/O port for educational hardware hacking.) Serial port hardware could be optional.

The other half of the board, which you'd have the option to not build out if you only wanted to use it as a replacement for an E/I on an original Model I, would have a Z-80 socket, video generation and cassette hardware, and a header for a matrix keyboard. (You could also offer the option of using a small MCU to drive a PS/2 keyboard interface, for people who don't want to have to hack together their own matrix keyboard.) When fully-built up as a computer the disk controller MCU would be used to read a ROM image from SD and set up the hardware to emulate a Model I, III, or 4, or even compatible systems like the PCM-80/81/etc on power-up, at which point the board would act just like the real McCoy. (The ROM image would be stored in a write-protected area of RAM, similar to what a 4P does with its MODELIII/A ROM file.)

Bonus points, of course, if the video system fully supports all Model I/III/4 modes and character sets, and perhaps even emulates the III and 4 high-res boards. (To get the parts count down on the video generation portion perhaps it could utilize something like an AVR32 or Propeller to generate in software the necessary timing. The same MCU might also be able to handle the PS/2 keyboard interface.) In "full computer" mode a hardware or software key could be used to pop up a setup menu that allows the user to change what disk images are assigned to each virtual drive in real time; when just being used as an expansion interface perhaps a small basic program could do the job.

Anyway, pipe dream and all that, but it could make a for a fun educational toy. (To make it somewhat simpler one could deep-six any thought of Model IV compatibility, making the video section and MMU easier. Model III compatibility might be worth the minimal trouble, however. Could also ditch the "ROM in RAM" idea and just include a 32K EPROM socket that could hold both Model I and Model III ROMs, plus an extended Monitor/setup program.)
 
So maybe something along the line of a ARM-7/9 as the Microcontroller? I have messed a little bit with a Netduino that uses an Atmel Arm-7 and is programmed in Visual Studio C#. But my programming skills leave a lot to be desired. Would need a good software person to write the emulation code. And the SD card drivers.

But we are not stuck using an ARM-7 Almost any popular microcontroller would probably do the job. But whatever gets used it would be best to use a through hole design to make it easier to build. Maybe an ATMega 32? I have really no idea what would be best in that situation.

Also agree that the TRS-80 in one unit as an option is an excellent idea. Or like you said just build the E/I portion hook up the 80 then your disk drives and go.
 
I don't get the reference to 'non-FPGA' design then suggesting a 3V MPU bit-bang a parallel bus.

From a simple expantion point of view, a PSoC (maybe FreeSoC mini) or a Propeller or PIC32 with a few IDT7000s would be a good starting point.
 
I don't get the reference to 'non-FPGA' design then suggesting a 3V MPU bit-bang a parallel bus.

From a simple expantion point of view, a PSoC (maybe FreeSoC mini) or a Propeller or PIC32 with a few IDT7000s would be a good starting point.

The faint hope would be that as much as this thing would be through-hole and "tinker-toy"-y as possible so it could be put together by your average schmo with basic soldering skills, thus the "no FPGA" thing, but... yes, I have no idea if there's a cheap MCU that would be fast enough in practice to replace a 1771 or equivalent. (I've devoured a fair amount regarding computer designs incorporating devices like the Propeller alongside an "old-fashioned" CPU, but in general those devices seem to largely depend on the Propeller acting as the clock generator and otherwise controlling the horizontal and the vertical.) I wasn't too fussed over the 5v vs. 3v problem figuring worst case that could be solved by incorporating resistors or level shifters as needed. That said (and again, forgive me for where's I'm being stupid):

Looking at the datasheet for the 1771 it has a two bit address bus, a bi-directional data bus, a chip select, read-enable and write enable pins, interrupt (is that used on the TRS-80?), a DRQ pin that indicated readiness for a transfer, and a 2Mhz clock. Assuming you use external decoding to generate the chip select (IE, decoded so a single pin transition on the MCU can "wake it up" and tell it to decode the state of the remaining pins, so we're not depending on the MCU to have to follow the address bus in real time) would it really be beyond the abilities of a 20Mhz AVR or a Propeller to handle the rest of the conversation on a ~2Mhz bus? I've never written a TRS-80 disk driver before, (Yeah, I should crack a book before coming up with stupid ideas.) but my gut feeling is that this might be something that an MCU like a Propeller should be able to handle, given I've seen example code where people claim to have achieved 10Mhz+ sampling with it?

In my mind the harder part would be the data handling from the SD card, given the somewhat random latencies it seems they can produce, (my guess is that sort of reading the whole disk image into RAM the best strategy would be to do track-level buffering) but again, I completely do not have the experience to say for certain. Worse case could one not just pull the WAIT line on the CPU and let the disk controller take its own sweet time? If we're not driving a mechanical device I don't really see the need to make this a clock/cycle accurate version of the original.

Anyway, my "inspiration" for thinking this just might be possible is this "nine chip CP/M" Z-80 on a breadboard:

http://searle.hostei.com/grant/cpm/index.html

By strange coincidence when this board is in "BASIC" mode it essentially has a TRS-80's memory map. (ROM at the bottom, 48k on top.) To make it a TRS-80 "all" it needs is a memory mapped keyboard, a 1771 emulator in place of the CompactFlash card, and memory-mapped video. (Granted a design for that is a whole other discussion.) I certainly understand that implementing the TRS-80 bits might increase the parts count to the point that it might be desirable to resort to programmable logic, but for a simple "hobby" device do we really need to talk high-speed PSoCs?
 
A fully expanded TRS-80 replacement board could fit inside the keyboard case, and two half height 5.25 disk drives could fit under the monitor where the EI would have been.
Also, make it a 3 speed cpu, 1.77/2Mhz, 3.54/4Mhz and 7.16/8Mhz.
 
Last edited:
For snickers and grins, some possibly useful links. Byte Magazine, May and June 1980:

http://archive.org/details/byte-magazine-1980-05
http://archive.org/details/byte-magazine-1980-06

Ciarcia's Circuit Cellar articles on the "COMM-80", a Radio Shack compatible parallel/RS-232 expansion for the Model I, and Byte Magazine March 1981:

http://archive.org/details/byte-magazine-1981-03

Ciarcia's DISK-80 RAM, Disk controller, and parallel port expander for the Model I.

The articles contain some additional and useful theory-of-operation explanations for the circuitry compared to what's in the Radio Shack service manual. (In particular it seems slightly difficult to track down information about the RS-232 board.) Google Books also appears to have the full text of Ciarcia's Circuit Cellar Volume III, which contains slightly expanded/revised versions of the Byte articles.
 
I'd like to see an Expansion Interface Clone, because my second Model I does not have one. I would like it to have an IBM Compatible Printer Port (DB-25 Connector), 9-Pin Serial Port, 32k of RAM, Newclock/80 compatible RTC, and a 5"/8" Doubler built on-board.

If you want to add more than 48k RAM, put it in the keyboard, clone the Holmes Memory expansion that plugs into the sockets in the keyboard and attaches a few wires with clips. If it were compatible with the Omikron Mapper CP/M board, that would be cool. Or, if someone ported CP/M to their design and provided it, that would be fine. A Print Spooler would be cool as well. Not sure if a RAM Disk would be useful, but you never know.

Then, I'd love to see a Model I clone like the Replica I, that used a PS/2 Keyboard, VGA video (with composite as well), had a cassette port, Alpha Joystick Port, Orch-85 sound, Newclock/80, and supported floppy drives. Having an SD Card interface would be fine.

If the clone could do Model III and IV by using a different ROM image and setting a switch in the BIOS, all the better.

I'd prefer it in an ATX format so I could have my pick of cases and mount the floppies internally.


As long as I'm wishing, I wish someone would make a universal floppy to USB adapter so I could attach a 5.25 floppy drive (360k or 1.2mb) to any PC with a USB port and use it in an emulator to read/write native disks, or make disk images.
 
Yeah... But where is the disk drive port? Where is the Parallel Printer Port? The Serial Port? That's a nice project, but it isn't what I asked for. Though, it's a nice start.

That's the easy stuff , it all could be added very easy and if you had a larger part with a bit more ram you could add support for some of the after market graphics boards also .
ken
 
Back
Top