Growing up in the 80's I was part of an amazing and special time for computers. Every school I remember had a computer lab loaded with Apple II's running such iconic games as Oregon Trail, Odell Lake, and Number Munchers. My mom was a school teacher and somehow we were lucky enough to actually buy an Apple ][ to use at home. That to me sparked an interest in computers and technology that has followed me all these many decades later. 

Towards the beginning of 2019 David Murray, best known as The 8 Bit Guy, posted a video where he described his dream computer. In his video David tells about his childhood, growing up with a VIC 20 computer, and how he missed the closeness to the hardware that those early 8 bit computers provided. David's video got me thinking, and made me ask the tough life question, "what was my dream computer growing up, and what would that look like today?". That question would eventually give way to a year long project I called RETRO II. The name Retro ][ came as a result of it being inspired and compatible with the original Apple II, but also because it is a descendant of my first 6502 computer I built in 2015 which was called Retro 1. Retro 1 was similar to the Apple 1, with basically a terminal window to type in BASIC programs. With Retro II I wanted to add graphics. I used the Parallax Propeller for video generation in Retro 1, and I knew it could handle the task of more video processing. This is why I'm using it again in Retro II.

Some basic design decisions for the project. I wanted it to feel like an 80's era computer, with the big beefy through hole components. I wanted it to be simple to understand and easy to program. I wanted it to be made from off the shelf parts that are still being produced today. I wanted it to have at least VGA output so that it could be connected to modern monitors. And for storage I wanted to be able to use a simple SD card. At its core, I wanted this project to be about learning. I wanted something that could give my kids the same sort of experience I had with the Apple II so long ago. The simplicity of being able to flip a bit at a ram location and see it result in drawing a pixel on the screen was eye opening to me as a youngster, and I was hoping to replicate that experience now with my own kids.

To meet my design decisions I needed to make a few changes to the original Apple II schematic. There were a number of components that were no longer made, like the keyboard encoder, the quad 558 timer, the RAM chips, etc. In addition the timing circuitry needed to be reworked to accommodate the new video requirements. The Apple II timing was tightly coupled with the video signal, the RAM refresh rates, as well as the keyboard multiplexer. I wanted to simplify all of this by feeding a simple 1MHz clock into all the key timing circuits. Later on I programmed the Parallax Propeller to take care of the timing. This enabled me to not only stop or single step the clock, but I could overclock the computer as well. I found that the max rate I could reliably get was around 4MHz. At the heart of Retro II is a WDC 65C02. I had to modify the original Apple II address decoding scheme a bit in order to get it to work for this project. By using the same address decoding as the original Apple ][ I'm able to run the same programs. I got rid of the DRAM and instead used a single 64K dual port static RAM. By using dual port ram, I can easily share the needed video RAM with the Propeller without having to worry about DMA. 

I have two Parallax Propellers in Retro II. One is solely responsible for video. It simply reads from the video RAM and outputs a VGA signal. The other Propeller is in charge of routines related to the PS/2 keyboard, SD Card, and clock signals. The two Propeller's communicate with one another over an I2C bus. The Propeller ended up being a great fit for this project due to how it can easily handle many parallel processes at once. Instead of using interrupt routines like traditional microcontrollers, the Propeller has what are called "cogs". These cogs are basically tiny single core processes that can run independently. There's 8 cogs in each Propeller. The ability to handle these parallel processes make the Propeller unique in that it's easily programmed like a traditional microcontroller, but you can take advantage of running things in parallel similar to what an FPGA could do.

For the power supply, I wanted to support the same voltages as the original Apple II (+5v, -5v, +12v, -12v) as well as 3.3v to power the Propeller's. I settled on the LM2576. I liked the flexibility that the LM2576 provided. It was able to meet the current demands of the project, and came in an easily solderable through whole version. I did find that there was a large inrush current when first applying power, especially for the +12/-12 supply. I'm going to try and rectify this in the next revision.

The last large part of this project are the peripherals. I wanted it to have the same options for expansion as the original Apple II. I have 8 expansion slots, compatible with existing Apple ][ cards. In addition there are two DB9 Apple ][ joystick ports, as well as two DB15 Gameports. 

For sound output, there's a built in speaker, as well as a headphone jack and a volume control knob to turn the game sounds down when playing at night or around other people. There's also a cassette out/in jack for loading programs on and saving programs to a device like a cassette, or these days a smart phone etc. 

That's it for now! I'll post more project updates as I have time. If you're interested, please make sure and follow my project here on Hackaday, as well as subscribe to my Youtube feed.