I have been busy thinking/working on a few things .. but before I get into that I wanted to ramble on for a bit about why I like to use the Apple II as a learning platform for new technologies …
The Apple II was my first personal computer…. I learned from books and magazines about how computers actually work and not just how to use them … a few of my favorite programs were Rocky’s Boots (hardware logic gate game/teaching aid) and the 6502 simulator (you could see the program flow at the lowest level. That was the good old days back in the mid 80’s …
Fast forward to around about 2001 when I started having the retro urges and got all of my old stuff out. Once I started looking around, I also found out that I could afford to buy some of the old Apple II hardware that was previously out of reach for me back in the 80’s. While dong some research I came across hardware that had been developed for the Apple II long after I left the scene (Second Sight, RamFast). This intrigued me … I had the urge to build something myself ( I ended up making an Ethernet card). When looking around at what was available it became clear to me the way to go was to try and retro fit products developed for the embedded scene. This also led me to an interest in embedded systems. It seemed a natural fit to try an adapt embedded technology (lots of 8-bit stuff still being sold and developed) to the Apple II … I could satisfy two urges with one strategy.
Sure one could stop at buying the demo boards and using the built in tools that come with the SDK’s. It works for most other embedded developers but it certainly is more fun to learn about these things while applying them to our favorite retro platform.
When it comes to hardware, I have been primarily interested in connectivity and storage options …
- Certain form factors like Compact Flash/MMC/SD/SDio seem appealing as they are fairly open (some more than others)
- Certain interfaces like i2c/spi/usb/ethernet/wifi/are the typical methods for interfacing (in our case we also need a2bus(8bit parallel)/smartport(serial bit stream))
- To build solutions one needs to determine if they can get by with using the native 6502/65816 or does one put an onboard co-processor to help offload the main CPU (such as a PIC/AVR or ARM chip).
- One also has to think about using CPLD/FPGA where appropriate.
In the Apple II world, there are not many the havn’t heard about the CFFA card by Rich Dreher. This interface card was the first Apple II peripheral to use a compact flash slot. While it only supported true ide mode, the possibility was hanging there to use the i/o mode. The project uses an Altera CPLD to facilitate talking to the CF card and the a2bus. Rich was kind enough to share his project details.
More recently Alex Freed has released the Psuedo disk which implements an a2bus to MMC/SD card interface. It too uses a CPLD (xilinx) to talk to the a2bus but goes a few steps further by using a Atmel ATMega cpu to talk spi to the CPLD and the MMC/SD card. Alex has also has made his project details public.
There’s something about wifi that has always interested me - I spend time surfing the net looking at various projects - open source wifi stacks, I bought Fred Eady’as book on implementing 802.11b with micro controlers. The last cool project I found was a CF wifi implementation by Till Harbum called SPI2CF. This is a project where a AVR processor is interfaced via SPI to a CPLD that translates to CF ( the CF slot holds a CF wifi adapter).
So this leads me to my next project … I posted a while back about a Uber card that had a few of these technologies placed on it … I’ve taken that a step further and assembled a prototype for the memory expandable IIc that I hope to see to completion even if there is only one ever made. This project will bring together a combination of Alex’s and Till’s projects with the added enhancement of a 1Meg ram interface.
This (ambitious - for me) project will help develop my knowledge of these technologies. While i have the luxury of learning how to do the wifi and sd interfaces from Till and Alex, the CPLD implementation of the SRAM interface will be totaly new for me …. There is also a mini side project on how to make a field updatable ROM for the IIc/IIc+ as that will be a requirement for any of this to actually work in a IIc … I don’t see a problem retrofitting this back into a IIgs/IIe card.
If this gets finished then there becomes the possibility to make my first SMD (surface mount design) PCB to incorporate the design onto something small enough to fit under the IIc keyboard.
More details/pictures to be posted soon …