IMSAI 8080‎ > ‎

IMSAI 8080 page 9 - running system

As of this writing, I have the IMSAI connected to a Raspberry Pi model A, and I use screen as a terminal program (screen /dev/ttyAMA0 using the RS-232 serial shield on the Pi or screen /dev/ttyUSB0 with a USB adapter). The RS-232 is set up for 8N1 at 9600 baud. With screen, I can switch over easily to the Pi and edit assembly files, then transfer the files with XMODEM. It's a little inconvenient with just one serial port, but it works. The commands look like this to receive a file from the Pi:

A>XMODEM FOO.ASM /R
cntl-A : exec !! sx FOO.ASM

and to send a file to the Pi:

A>XMODEM FOO.ASM /S
cntl-A : exec !! rx FOO.ASM -c

I usually force the CRC checking. For reasons I haven't figured out yet, the checksum method fails. I was also having difficulty transferring larger files (like the XMODEM.ASM, or the PRN file that ASM generates, which is about 72K). My solution was to limit the size of the transfer buffer efrom a maximum of 0xF0 (240) 128-byte (sector-sized) pages to 0x80 (128) pages. I haven't tested values between these, but I haven't had trouble transferring files with this smaller buffer size. (It turns out that this was a bug in XMODEM. It was corrected in a recent revision.)

More serial, please

Recently, I grabbed an IMSAI SIO-2 board to expand the number of serial ports and enable direct file transfers. The board was missing the 8251 UARTs and one transistor had been sheared off, but otherwise it was in immaculate condition. After the usual check-outs (tantalums for shorts, power on the 7805 regulator) I had the board operating in pretty short order. I used DDT to enter the following test program


0001   0000             CDAT .EQU 22H ;8251 DATA PORT

0002   0000             CCOM .EQU    23H             ;8251 COMMAND PORT.

0003   0000             SENSE .EQU 0FFH

0004   0000 3E 00       MVI  A,00H ;INITIALIZE UART.

0005   0002 D3 23       OUT  CCOM

0006   0004 D3 23       OUT  CCOM

0007   0006 D3 23       OUT  CCOM

0008   0008 3E 40       MVI  A,40H ;reset command

0009   000A D3 23       OUT  CCOM

0010   000C 3E 4E       MVI  A,04EH         ;Mode register 8,1,n

0011   000E D3 23       OUT  CCOM

0012   0010 3E 37               MVI A,37H ;Command register

0013   0012 D3 23       OUT  CCOM

0014   0014 DB FF       LOOP: IN SENSE

0015   0016 D3 22       OUT CDAT

0016   0018 DB 23       LOOP1: IN CCOM

0017   001A E6 01       ANI 01H

0018   001C CA 18 00    JZ LOOP1

0019   001F C3 14 00    JMP LOOP

0020   0022             

0021   0022             .END

and used it to verify valid RS-232 output on my scope. The three 00 bytes initially sent to the UART are recommended in the 8251 sheet. 


Channel A is currently jumpered for data on I/O port 22, and control on 23, which sets channel B (unused, so far) data on 24 and control on 25. XMODEM is now set up to use the console (Proc Tech 3P+S) and transfers files directly over the SIO-2. Now I can see the transfer in progress. 

What's next?

My restoration from a barn-find machine, complete with mud wasp nests, to a functioning microcomputer system is more or less finished. I've learned a lot along the way. It's my hope that these pages serve to document the adventure of a relative novice through the process of taking a non-working system and making it breathe again as a running machine. Without the online boards and mailing lists, I wouldn't have gotten far. These are the information exchanges of today, like the Homebrew Computer Club or other computer user groups of old. It is one small example for others just jumping in that, using the resources of this community, it's possible to restore, explore, and run these machines.

I suppose it's time to turn to other projects in the retropipeline, but I'll probably circle back and fix a few nagging details. On the one hand, I'd like to get the entire thing apart again to do a much deeper clean, but of course this comes at the risk of busting an operating machine. During my quest for more serial, I obtained a Cromemco TU-ART board. It turned out to be in pretty bad shape (ah, eBay roulette), with a lot of corrosion on many chips and weakened pins. I haven't gotten it working yet. I've been writing small utilities to help archive and restore disks. My second disk drive is showing some mild signs of its age again. Of course, I get to play with the IMSAI now... like watching the amazing blinkenlights and 8" electromechanical disk activity during assembly and command file generation. 

Page listing - "Subpage Listing"