The Birth of the Apple Computer - by WOZ
Presented, authored and copyright (c) 1996 by Charles Turley
From: Steve Wozniak (Originally
released to Usenet public post as copyright text. Available for use with any
other media presentations - at the authors discretion/permission and with senders
consent only.)
While reading another Usenet group -
comp.sys.be - I noted a post that
questioned the creation of the Apple computer, the ROM and the methods, etc.
used. The post aroused my
interest. So, I decided to ask the creator himself for all the facts. The very
interesting and detailed following reply covers it all - fairly well.
I
thought it would be a good idea to share it with everybody, (as 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 - fairly accurately, in the 'Glen Bredon -
Interview',which is available for your review in GS WorldView.
Date: 27
Feb 1996 17:04:47 -0800
From: "Steve Wozniak"
<steve@woz.org>
Subject: Re: Just the facts - PLEASE!
To:
"Charles Turley" <owsw@aol.com>
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.
This html document page is copyright (c) 1996 by Charles
Turley
Return to the Main Directory