APPLE I, II, III

 

I love the smell of 6502 in the morning

My first computer was an Apple ][ plus.  The hours I spent learning what it could teach me.  This was back in the day when a computer came with it’s schematics, list of I/O and memory maps, and the CPU documentation.  It kept me busy for years.  Still does, in fact.


In the beginning - The Apple I

The Apple I has an interesting place in computer folklore.  It was Steve Wozniak’s (Woz) first complete computer.  However, it wasn’
t designed all at once.  Woz and Steve Jobs started out making a TV typewriter, a simple device that just places whatever you type on a TV screen.  When connected to a modem, it allows it to become a very simplistic data terminal.  When Woz was learning how to efficiently hook up the new DRAM technology to the 6502, he just re-used the TV typewriter as the video section of his new computer.  It allowed him to focus on the RAM hardware, but left the computer with a pretty lame video implementation, even for 1976.


Real Apple I hardware is very hard to come by today, and often fetches $25,000.00 or more.  However, some enterprising individuals have made clones by laying out an identical motherboard and sourcing chips from the appropriate time frame.  This is no easy task.  One such person made kits from his motherboard, complete with all the original chips he was able to source, and sold it on eBay.  I bought one and built it up.  Fired up the first time.


Notice how many chips there are in this design.  The only I/O available for the Apple I was the keyboard and video along with an optional cassette tape interface.  Not too many of us have tape players anymore, and they were not entirely reliable back then, either.  Not too mention how slow they were.  Some of these same people who have made Apple I clones have also created new hardware to ease the problem of program storage.


Vince Briel has created an Apple I clone using modern logic chips which greatly simplify the design.  He has also created a serial interface that allows one to connect another computer to send/receive data in parallel with the keyboard and video.


Mike Willegal is also currently building an Apple I kit.  He has also done a great job on building an Apple II Rev 0 motherboard kit, so I know his Apple I kit will be incredible.


My buddy Rich Dreher has created on of the most useful new devices for the 6502 Apples, a compact flash storage device that acts like a hard drive.  Most Apple diehards use his Apple II product, but he also designed one for the Apple I.  You can find it on Vince Briel’s website as well.


Now that all this hardware has been acquired, what to do with it?  How about a fun tribute to Apple’s 30th birthday?  Here is the program, in Apple I monitor input format, along with some others:

Apple I 30th Birthday.  Forth was a popular language for micros in the ’70 and ‘80s.  I met Chuck Moore, the creator of Forth, so I decided to port Forth to the Apple 1 and CFFA1 combination in tribute.  Check out my Forth page.



Apple II - The Next Generation

Soon after finishing the Apple I, Woz was already designing his masterpiece, the Apple II.  Pulling on everything he
learned from the Apple I as well as his knowledge of color video circuitry from work at Atari, he designed one of the most efficient computers ever.  As you can see, this motherboard is about the same size and complexity as the Apple I yet it has so much more functionality that the two can’t really be compared.  Color graphics (hi res and lo res), sound, game controllers, 7 slots for peripheral expansion, built in cassette interface.  The crowning jewel was the floppy disk interface that Woz designed using a fourth of the chips of competing products.


One of my eBay auctions netted me an early Apple ][ case and keyboard, but the motherboard had been swapped out for a later revision.  Just as in the Apple I clone kits, Mike Willegal created an Apple II Rev 0 motherboard.  This allowed me to come very close to recreating the Apple ][ as it originally shipped, including Integer BASIC and the Programmers Aid #1 in ROM.


Of course, building your own Apple ][ is fun, but it really gets interesting when you mix 30 years of software development experience with modern tools and turn the focus towards the Apple.


Appalm ][ - Is that an Apple II in your pocket?

Mentioned earlier, this is the Apple II emulator I wrote for the PalmPilot while waiting for my son to be born. 
This emulator really shows how good those Apple II games were - they are as relevant on a handheld as on a desktop.  Because the games were a little simpler that modern games, they are perfect for the limited resources of the PalmPilot.  I actually finished more games on the PalmPilot than I ever did on my Apple ][!  The PalmPilot platform died with the last of the Treo smartphones, but I had my Apple collection with me all the time until I switched to the iPhone (which unfortunately doesn’t have an emulator).



Over the years I have written down ideas in notebooks that weren’t altogether related - they were just tidbits of clever code or ideas that would come to me.  When the 30th anniversary of the Apple II was coming up, I decided to take some of my ideas and make a game that would have seemed impossible on such basic hardware, especially in 1977.  My next project was:


Escape! from the HomeBrew Computer Club 3D




ESCAPE  FROM THE  HOMEBREW COMPUTER CLUB

    WHEN:   EVENING, FEBRUARY 16, 1977
    WHERE:  BASEMENT OF BUILDING,
            STANFORD CAMPUS
    STATUS: YOU (WOZ) HAVE JUST
DEMONSTRATED YOUR LATEST CREATION,
THE APPLE ][, TO THE HOMEBREW COMPUTER
CLUB. HOWEVER, THE EVIL MINIONS OF
TANDY, ATARI, AND COMMODORE HAVE
PLOTTED TO STEAL THE COMPUTER FROM YOU
AS YOU LEAVE THE MEETING. YOU MUST
ESCAPE THE BUILDING AND JOIN STEVE JOBS
TO ENSURE YOUR COMPUTER GETS TO MARKET.


This was my silly premise for a first person, 2 1/2 D game in the stye of DOOM, or more closely Castle Wolfenstein (which was originally an Apple II game) from id Software.  It really pushed what could be done with a 1 MHz, 8 bit computer.  You can watch the video on my Home page.  Here it is running on my Rev 0 clone:




At the 2011 KansasFest, the annual Apple II conference, I gave a presentation on developing and playing HBCC 3D.  Ken Gagne recorded the session and made it available for all:





































Speaking of KasasFest, I was the guest on Open-Apple.  an Apple II podcast put on by my friends Ken and Mike.  Being a first time attendee of KFest, they asked me to be their guest and share my experience.  Lots of fun.


Although HBCC 3D was a fun project, it wasn’t open-ended - there was nothing you could really do with it except play it.

The Apple II had some of the best games written for it, but I really wanted something to bring the Apple II up-to-date in regards to its development potential.  A tool that would bridge the gap from the ‘80s to now.



When I received my first Apple ][ as a gift from my folks, I was actually spending time over at the neighbors house on their Apple ][.  A friend of their family’s who was a typical ‘70s hacker would come over and teach the neighbors son and me Apple Pascal.  It was a very sophisticated environment for a micro computer at the time and was a great introduction to real computer programming.  Apple Pascal was based on the UCSD version of Pascal which used a pseudo-machine architecture meaning a pretend computer was being emulated on the Apple.  Now commonly referred to as virtual machines, this approach allowed the Pascal environment to be quickly and easily ported to other computers with a slight penalty in performance (due to the emulation).  This architecture was actually the basis for Java, the language from Sun Microsystems that was supposed to make the internet a write-once, run-anywhere environment.  It didn’t quite work out that way, but the intention was nice.  Java is a very sophisticated environment compared to Pascal.  Java defines a virtual machine, the JVM, which supports all the latest language features: multi-threading, managed memory, object oriented, 32 and 64 bit data types, etc.  It would be the perfect bridge from old to new, but how could such a limited computer support all those new features?  There really is no way for an Apple II to support a JVM, which is why I had to do it.


VM02 - The Java VM for the Apple II and 6502 CPU

Many years of development were required to get to a workable release.  Being a tool to run other programs, VM02 doesn’t have much in the way of eye candy, but here are a few screenshots of the Character User Interface classes that I wrote to show off it’s capabilities:


   


And some classes showing off access to the Apple II graphics features directly from Java:


   


Not much to show for it, but VM02 is the most comprehensive project I’ve ever done.


In between these projects, I’ve worked with Rich Dreher on is CFFA product, the Compact Flash For Apple plug-in card.  The great product make the Apple II a real joy to use.  It provides the usefulness and performance of a hard disk in the bullet-proof form of Compact Flash memory cards.  Even small ones that come free with digital cameras are more than adequate for storing lots of Apple software.  Remember than 140K per floppy disk was the norm back in 1980.  A 32 MB CF card could probably handle all the software of even a hard core collector.  I helped Rich improve the performance of the data transfers since I had some intimate knowledge of IDE controllers from back in my disk array days.



Three’s Company - The Apple III

Yes, Steve Jobs has had some failures in his career.  The Apple III was to be Apple’s business machine.  No game
controllers here, it was all about accounting, word processing and ledgers.  Which is too bad because the Apple III was probably the most sophisticated 8 bit computer ever built.  It had some custom features that allowed it to address up to 512K, had an optional hard drive, and a disk operating system that truly was an operating system.  But a combination of mis-directed marketing, bad timing, and flakey hardware led to it’s bastard child status.  It never reached its potential but has a place in computer history, much like the Edsel has in automobile history.


This particular Apple III was salvaged from a local school along with a full suite of office software and a Cobol development package, still in the shrink-wrap!  It has a CFFA in it as well.  Aside from some CFFA improvements, there haven’t been any real projects targeted towards the III yet.















Some links from the above projects:


Rich Dreher’s website: http://dreher.net/

Mike Willegal’s website: http://www.willegal.net/

Vince Briel’s website: http://www.brielcomputers.com/

Appalm ][ Apple II emulator for PalmOS: http://palmapple.sourceforge.net/

Escape from the HomeBrew Computer Club: ProDos SHK archive, DOS 3.3 disk image

HBCC Presentation at KFest: http://vimeo.com/27498402

KansasFest website: http://www.kansasfest.org/

Open Apple podcast: http://www.open-apple.net/

VM02 Java VM for Apple II: http://vm02.sourceforge.net/