Replica 1 Computer
Most people over the age of 20 remember the Apple ][ computer, a classic that many of us grew up with, and that inspired us into a lifetime of fascination with computers and programming. Very few have heard of the Apple 1. This is the very first board that Steve Jobs and Steve Wozniak created in that garage back in the 1970's. They are incredibly rare today and I became totally entranced when, in late 2009, I happened upon a gentleman named Vince Briel, who had created a replica of the Apple 1, called, simply enough, Replica 1, and was selling it in kit form. I decided it would be fun to buy the kit, solder it all together and then enjoy a nostalgic return to 6502 programming, something I haven't done for over 20 years.
Below are the contents of the kit as received from Vince Briel. The PCB is of a very high quality. (unlike my photo!)
A set of manuals came on CD, including a brief but very easy-to-follow set of build instructions. I haven't indulged in soldering boards for a couple of decades, so I tentatively began with the simple resistors. My skills rapidly returned and in a couple of hours I had all the resistors and chip sockets mounted to the board.
In the next session it took me only a couple of hours more to have the entire board soldered. The instructions recommended checking a few voltages before inserting all the chips, so I prepared to power it up for the first time. And hit a problem. I had purchased a cheap 300W ATX power supply and realized that none of the power plugs matched the ATX socket on the Replica 1. Evidently there are 2 ATX standards: The board had a 20-pin socket and my PSU had a 24-pin plug. Grrr.
Vince had thoughtfully built a DC power socket on to the board as well as the ATX socket, so I exchanged the ATX PSU for a variable voltage wall "brick" to plug into the DC-in. The board is rated 7-9V with a recommendation for up to 1000mA if you intend to connect other boards to the expansion slot. My "brick" was rated at 1200mA, and I dialed in 7.5V to start with. In hindsight, the brick is a much smaller and neater solution than the clumsy ATX power supply, but I was so used to building PC's that I hadn't given it much thought.
OK, plug it in, flip the switch, and... well the power LED lit up, that's a good start! Using a small multimeter, I dutifully checked various points on the board for 0 and 5V, as per the instructions. OK so far. Now came my big deviation from the instructions. They recommended inserting a few chips, powering it on and checking video output, before inserting the rest of the chips. The video out is composite video. I don't have TV or monitor that accepts composite. I couldn't find a cheap one on craigslist, and I wasn't about to spend $100+ on one. What I really wanted, was to plug the replica 1 into one of the VGA monitors on my desk. So I hunted for a composite->VGA convertor cable. Ouch. Those are $60+ too. (OK, so I'm cheap!)
In reality, I didn't want to devote a lot of desk space to my Replica 1 anyway, what with a display and keyboard. My intent was to use the serial port to program it. So.. I would just take a leap of faith, plug in all the chips and hope I could talk to it first time via serial.
I don't think my soldering is too bad...
I hate inserting chips into sockets. I never did discover the secret of bending the pins in enough to make a snug fit in the socket, without bending them too far that they fold up under the chip when you push it home. Immediately I almost destroyed one of the TTL chips by pushing it down sideways on the work surface to bend the pins. Half a dozen pins bent out, sideways and all over the place. Man, it was like breaking the legs on a spider! I managed to recover from that disaster after some surgery with needle-nosed pliers. I proceeded with caution. Finally I was down to the 65C02 itself (the CPU), and I damn near snapped off 3 of its pins too! "Son of a b****", as Sawyer would say on "Lost"!
Convinced that my baby couldn't possible work after my man-handling of its chips, I put down the completed board. I powered it up and checked voltage levels across the board. So far so good. Nothing had obviously exploded or caught fire.
My Mac doesn't have a serial port on it, so I bought a serial DB9 to USB cable, an Aluratek AUS100. It took me several attempts to install the drivers, since the ones that came with it, weren't the latest. On Mac Snow Leopard, the USB serial drivers are supposed to show up as either /dev/tty.usbserial or /dev/tty.PL2303-002034FD. I didn't see either. I found out that it uses the common PL2303 chipset, and found some open source drivers that did the trick. I tapped the reset button on the Replica 1 a couple of times and then attempted to connect to it via the Mac's terminal app. The Replica 1 requires serial settings of 2400 N 8 1, so for a quick test I typed: screen /dev/tty.PL2303-002034FD 2400.
Nothing happened at first. I tapped Enter and got the backslash prompt of the Replica 1. Was that random? To find out, I entered a command for the simple WozMonitor included in the Replica 1's ROM. 300 (enter). It echoed back the contents of the single byte at location $300. It didn't agree with the value listed in the manual however. I tried: 300.32f and didn't get the display of bytes $300 to $32f that I had expected. Perhaps it wasn't working properly after all? Wait, I read somewhere that this thing doesn't accept lowercase characters. I retyped using upper case, and got a dump of 40 odd bytes in nice rows... except that all the rows were overwriting the same line, with no line feeds.
OK, time for a proper terminal program instead of the quick-and-dirty screen command. I installed zterm, a very popular serial terminal. Within a minute I had it configured for 2400 N 8 1 and had the local line feed option enabled. Now I had a proper, albeit slow, interface to the Replica 1. I ran through the couple of tests in the manual, for checking Apple BASIC and the Krusader Monitor written by Ken Wessen and included in the ROM. As you can see below, everything was working perfectly. (Sorry about the blurry photo)
So.. a few hours of construction, some hairy moments and some messing around with archaic serial port configurations and my Replica 1 is ready for business!
High speed RS232 mod
The stock Replica 1 runs at 2400 baud. Once you start trying to download software of more than 100 bytes or so, you start realizing how slow 2400 is. Also, because there is no hardware handshaking, you are likely to lose a few bytes in each download. It is annoying to have to find those bytes and fix them.
Basically it involves soldering 5 wires to the back of the Replica 1 board...
There is no modification required to the Replica 1 ROM, but you do need to download a patch to the firmware in the Propeller chip that controls I/O on the Replica 1. All instructions and command lines are provided in Will's article.
This site is Copyright ©, 1999-2008, Graeme Ing.