As of this morning I have my Apple 1 clone up and running, this has been quite the little adventure.
I bought a blank Apple 1 PCB and Cassette adapter PCB on EBay from the seller Obtronix. I received the boards only. The rest was up to me.
I scoured the web and eventually found all the hard to obtain parts, many people supplied parts, thanks to all.
A number of problems with the assembled board have kept me busy, to recap some of them:
Lack of proper transformers: The board requires two transformers, there are recommended ones in the original Apple 1 manual, I have one of these already in my old stuff bin. The other one harder to obtain, the few I have found are expensive. Right now I am using one of my regulated bench supplies to supply DC +8VDC and +/-15VDC directly to the filter caps on the PCB. I have an 8VDC 5-Amp transformer I found on EBay in transit to me.
Video issue: When scrolling characters would change, usually a single bit error. This turned out to be a combination of the 2904V shift register and 74161 ICs. I could make the problem follow the 2904V around as I swapped it (there are 7 on the board). In the end I used three 74LS161PC parts from my stock which looks to have fixed the subtle timing issue.
DRAM issues: I was never fully convinced my DRAM was working properly. I swapped a lot of parts (TTL logic and DRAM chips), scoped out the signals, checked power rails etc. etc. etc. I believe in the end this was a mix of a bad 74257 chip and human error; I didn’t understand how the WOZ Monitor used lower RAM (the basic memory map of the system under the WOZ monitor) and was confused when bytes would appear to change on their own.
Parallel ASCII Keyboard: Right now I am cheating. Using a PIC18F452 and Mikroc I’ve written c code to convert the inputs from a PS/2 style keyboard to parallel ASCII as the Apple 1 expects. F11 and F12 send the Clear Screen and Reset signals the Apple 1 needs to operate. The actual hardware was wired up on one of the 40-Pin Microchip prototype boards I have in my stock. With all the extra ROM space in the PIC chip I’ve added routines to download programs to the Apple 1 (such as the small program to cycle through the character set) and a few patterns that let me test memory by writing patterns to it then using the WOZ monitor to dump the contents and manually looking for issues.
Apple 1 BASIC: I wanted to have the Apple 1 BASIC running on the board. I added the commands to my keyboard adapter ROM to enter BASIC into RAM via the WOZ monitor. I sourced BASIC from a HEX dump I found on Vince Briel’s Replica1 web site. I never got this to run however believing it to be DRAM issues.
I eventually burned the BASIC code into a 2732 EPROM and wire-wrapped a board to plug into the expansion connector on the Apple 1. Using the WOZ monitor I could read back the contents of the EPROM however when I ran it the system crashed. I continued to believe this was a DRAM issue.
I added a 32Kx8 SRAM to my wire-wrapped card however I only enabled the lower 4K of it. Again BASIC refused to run. Sometimes I would get the ‘>’ prompt, it would crash pretty quickly.
Last night I realized that the Replica 1 has a full 32K of RAM (0×0000-0x7FFF), perhaps the BASIC image I had used was modified from the original image to use the additional RAM? I searched the web this morning and found a site that mentioned the LOMEM and HIMEM commands. Now convinced it was a modified BASIC image I enabled all 32K of the SRAM (had to add simple decoder logic to the expansion card). Apple 1 BASIC now runs!
I may well be the first person to run Vince’s tweaked Apple 1 image out of EPROM on an Apple 1 clone (clone all the way down to the PCB level). Pretty sweet!