I am going to build at least one ELF that is in the spirit of the original ELF from 1976. But it will use current parts and have an alternate way to load programs without flipping switches.
Details
There is a lot more to do but I have a lot of the mechanical portion done. I need dry transfer lettering. Can't find it anywhere. Hmmm
One of the interesting things about the RCA 1802 is that you can add a lot of digital I/O pins without doing memory mapped I/O.
Ok, let me step back a little. I am learning this as I go so I might not be quite right but this is my understanding. On most computers I am familiar with I/O is done by mapping the ports into the memory address area of the computer. So, a serial port is given a memory address and then bytes are written and read "from memory" at that address as far as the uP is concerned. The uP puts the address on the address bus and then reads or writes from the data bus.
So the circuit design is done in a way that some of the address space is wired to non-memory circuits.
The 1802 is interesting because it has a set of instructions that will put the value of the data bus into memory after setting a value onto three special pins (N0, N1, and N2). So you get a separate 7 bytes (there is no instruction for 000b) of address space for I/O that has its own special machine instructions.
The original ELF article describes a system where the use of the N pins is limited to "is N2 set?" or "is N0 set?", which limits to 3 bytes. I am going to build my ELF to have a little more developed I/O system so that I can add a full set of I/O ports if I get around to it. (This should only require one more logic chip.) The switches and LEDs will still be put at the same I/O address as in the article so that I can run some of the programs intended for the ELF.
Here is a hand drawn schematic of a representative I/O port.
This scheme will use one 74HC138 to decode the N pins and then 4 74HC chips per port (74HC00, 74HC04, 74HC541, and 74HC573).
In the end this may be overkill, but it was fun to work out and hopefully I don't regret it when debugging starts.
I was waffling on whether to use solder or wire wrap. I've never done WW, but reading http://wilsonminesco.com/6502primer/WireWrap.html seemed to make it look like a good way to go, even though I need to get a few tools and supplies. If I make more than this project with it it will be worth it. Well, today I took the plunge and purchased the pencil from an eBay seller in China. Hope it arrives soon.
In the mean time I am testing some of my circuits in broadboard with the arduino driving the circuit segments. I'll make a repo on github with the verious sketches although they may only be useful to me.
I recently started using wire-wrap. I am using a hybrid mix of traditional wire-wrap wire and wrapping tool with vero like board and soldered 'standard' pin headers and ZIF sockets. I chose this way because wire-wrap sockets are expensive and hard to find and they won't accept breakout board that have thicker pins so I use ZIF sockets instead and solder normal pin headers.
In case anybody else comes here wondering what a COSMAC ELF is, here's the answer I found on Wikipedia:
> The COSMAC ELF was an RCA 1802 microprocessor-based computer based on a series of construction articles in Popular Electronics magazine in 1976 and 1977. Through the back pages of electronics magazines, both Netronics and Quest Electronics offered low-priced kits that were based on this design. The system was a very early personal computer. It was operated without built-in ROMs and programs were entered directly with help of the CPU integrated DMA.
I know wikipedia is the source of all knowledge in the universe but I figured the reference link (they are right there under the photos) to the site with the domain cosmacelf.com would be sufficient.
I recently started using wire-wrap. I am using a hybrid mix of traditional wire-wrap wire and wrapping tool with vero like board and soldered 'standard' pin headers and ZIF sockets. I chose this way because wire-wrap sockets are expensive and hard to find and they won't accept breakout board that have thicker pins so I use ZIF sockets instead and solder normal pin headers.
Some pic's here -
https://hackaday.io/project/5565-trs-80-compatible-clone/log/26115-a-wire-wrap-test-bed