life, the universe, and everything (although not always in that order)

Sunday, October 06, 2013

an example of my work from 1980

I have carried this with me since I created it, starting in 1980, through my dating with my future wife, our marriage, and on down to my current home in Orlando. It's been sitting in its case in the garage until I went out today, pulled it out, and took these photos of it. It is a single board computer (SBC) designed and built around a 6502 processor, the same processor that wound up in the Apple ][ and the Commodore computers of the era (PET, VIC-20, and C-64).

And believe it or not, I can still power it up and it still works. More or less...

This top-level view gives a better idea of the components and the density of the components. Again, keep in mind that this was built on a proto-board from the company I worked for at the time, Digital Communications Associates (DCA) of Atlanta. I was an engineer working for them (first a customer engineer, then a software engineer, then a field engineer; that last position is how I got to Orlando). It was interesting building this board because DCA used the Z-80 as the core of their SBC, then later, the Motorola 68000. I wanted to recreate, in essence, a cross between the Apple ][ and the C-64.

One reason I hang onto this board is the one lone chip from Rockwell International (you can see the logo on the lower 6522 chip), the conglomerate that made the Space Shuttle. Rockwell also had a chip division, and I picked up a kit of their industrial grade semiconductors back in the day. This board was initially meant for harsh industrial environments, not shirt-sleeve office areas.

Here were the specifications in a nutshell.

4MHz 65C02 (before I put the board away in the garage, I upgraded the processor to a 65C802 and began to dabble with the extended 16-bit instructions).

Full 64K decoded address broken up between 48K SRAM, 16K EPROM, with 1K I/O. The SRAM addressing lost 1K to the I/O block.

Phillips Electronics SCC 2692 Dual Universal Asynchronous Receiver/Transmitter (DUART). These chips came with separate input and output ports as well as full blown UART control pins, baud rates up to 38.4K, quad buffer registers, and timers. I had two on the board at one time, one was taken off for another project.

When it was fully populated with all its parts and running at full bore it was capable of handling up to four 3.5" floppy disks, four separate serial channels, and capable of running with either the kernel and monitor I wrote, or a hacked version of Commodore Basic (yes, I said Commodore Basic) from the C-64. I'd disassembled C-64 Basic with an application called Sourcerer, modified the I/O routines to use my serial routines in my kernel, then loaded it into the SRAM from the floppy drives.

I'd gone to the trouble to write 6502 assembly routines to read, write, and manage the floppies using the MSDOS file system. That meant I could use an IBM PC with 3.5" floppies installed (720K only) as an intermediary to set up the floppies, writing files I could read via my SBC. I hated how Woz had created the floppy controller and totally incompatible floppy format for the Apple ][, and I was no fan of the Commodore 1541 floppy drive either. When it came time to add disks to my SBC, it was IBM format compatibility with MSDOS support all the way.

In this age of multi-gigabyte, multi-gigahertz cell phones, something like this limited and slow look ludicrous. But back in 1983 when it was finished it was a decent tool for driving other computers for testing. And when I finally added my modified C-64 Basic to the toolkit, it because even more flexible. It was the computer I wanted, something that was powerful and flexible and anywhere from four to eight times faster than the C-64 and the Apple ][ at that time. But I didn't push to productize it because I already saw the writing on the wall with the 16- and 32-bit processors that were hitting the market. For example, in 1985 I picked up a Compaq Computer 80386 computer as a loaner for evaluation. Just two years after I finished my SBC, and one year after adding a hacked Basic to my SBC. And keep in mind that the IBM PC was introduced back in 1981, and it was based on a 4.7MHz 8088, a 16-bit internal processor with an 8-bit buss.

Just to show you how much a prototype it really was, here's the backside, all wire-wrapped. Yes, I wrapped every wire on every post using a commercial wire-wrap gun.

It's fun to pull out, and I could probably re-create this board with up-to-date parts and probably my old firmware source code reassembled for the new hardware. But that would detract my attention away from the 6502's spiritual descendant, the ARM processor and all the products built with it, like the majority of today's smartphones.

1 comment:

Hi, things progressed rapidly back in the day, didn't they? My first computer was an AIM-65 from Rockwell. I had a teletype machine(!) and stored programs on paper tape, believe it or not. That was probably back in 1982. Hey, have you run across Ken Shiriff's blog? He has been dissecting the actual circuits down to the transistor level on these eight bit processors. Fascinating stuff; his most recent post that I read revealed that the Z-80 was actually built on a 4 bit ALU!