While reading the comp.sys.be newsgroup, i noted a post that questioned the creation of the Apple computer, the ROM and the methods used.
I decided to ask the creator himself for all the facts. The very interesting and detailed following reply covers it all - fairly well. It covers a nice bit of Apple Computer history). I asked Steve and he said sure, post, use and/or distribute it as you wish! It may be of interest also to note that Glen Bredon speculated on a lot of the following:
Date: 27 Feb 1996 17:04:47 -0800
From: "Steve Wozniak" <email@example.com>
Subject: Re: Just the facts - PLEASE!
To: "Charles Turley" <firstname.lastname@example.org>
The author of the report I received from you is wrong when he says no ROM of large size was assembled by hand. I could never afford an assembler for the 6502 which I bought for $20.
First, I connected the 6502 to Static RAM and a video terminal of my own design. I then wrote a short "monitor" program to watch the keyboard and display characters, both under interrupt and polled. We didn't have 256 byte PROMS, just 256x4 PROMS at that time. I used two of the ones we burned for calculator development at HP. The first hardware bringup had a few frustrating hours but I got it working with polled keyboard that night.
I then wrote a 256 byte "Monitor" program which watched the keyboard for hex data entry (address:data data data) and hex display and program initiation ("Run"). I got very good at typing in hex and very very good at checking data entry carefully, character by character. I still can't read a credit card number without a high expectation of mistake, but I have good habits to this day.
Next, I switched to dynamic RAMs when someone at our club sold some for a couple of bucks each. After all, in 1975 these were the first RAMS cheaper than core memory, the 4K dynamics. I bought some 22 pin AMI ones, there were three vendors. Virtually none of the other hobby computers around that time used dynamic RAMs, I decided it was because of the hobbyist technician sense of most fans I met, they weren't true engineers. Also, they were familiar with low-cost routes like surplus stores where the favorite RAM was the 2102 static. But for me, designing for the dynamic RAM was a piece of cake and I had fun at that which I excelled, combining MSI chips in clever ways.
Steve Jobs asked what did I think of the Intel dynamic RAMs. I told him I felt they were the best. Although they required more driving circuitry for Row and Column addressing (not just a wire from the CPU for each address line) they were in a smaller package. I had for some time measured the worth of my IC designs in terms of how little board space they took, not how few chips. So these 16-pin Intel chips, plus some row/column multiplexers and timing signals, actually took less board space than the 22-pin AMI RAMS. And saved some transistor clock drivers as well. I felt we could never afford any Intel chip, having heard how the 8080 was $370. But Steve got a rep to give us 16 samples. So the Apple I started with the best possible RAM choice, even before it was certain how things would go with RAMs. When the 16K dynamics appeared in the Intel compatible format we were luckily on the right track.
The book "101 BASIC Games" made me think that the right higher level language for these low cost computers was BASIC, even though I'd never used it. I referred to an HP BASIC manual to develop my syntax diagrams. Hoping to be noted as the first with a 6502 BASIC, I left out floating point. But what I wanted was games, logic simulations, puzzle solving, etc. and integers are fine. Most of my college programming was numerics done with integer only operations for large accuracy.
I wrote the entire BASIC by hand with no assembler. I kept thousands of pages of my hand-done work from day 1. The final Apple II ROM code was entirely done by hand and is in a notebook. The Apple II was the first product to ship with 2K ROMS from Synertek. 4K total of code. I built in a disassembler and wrote a mini-assembler (no symbols, only absolute hex or decimal addresses and constants) which shipped either in the Apple II or in a later ROM addition.
By the time the Printer card was done with it's 256 byte ROM I may still have been coding by hand or we might have gotten our first assembler. It's unusual to this day that you plugged in a printer and it attached itself to the op-sys by means of a driver in ROM on the printer card. True plug'n play. Possible to this day but rarely done (I've heard of some Newton exception).
The ROM op-sys of the Apple II could direct output and input to any of 7 slots. Mass media was read and write an entire cassette file at once.
The floppy brought a very tight hardware design, coupled very tightly to the lowest level access subroutines which I wrote without an assembler. Randy Wiggington wrote the "Read Write Tractor Sector" routines, a step higher. Randy and I began a full op-sys but we farmed it out to Shepardson associates. Needless to say, none of that was done by hand.
by Charles Turley