From: Charles T. "Dr. Tom" Turley
Related FAQs Resources: R010APPLE1.GIF
(gif pic of Apple I)
003- How did Woz invent the Apple computer?
Following is a Steve Wozniak interview which appeared in the
Summer 1997 issue of II Alive.
Looking Back: Woz Tells: "How I Did It!"
Charles T. Turley, interviewer
The recent flurry of speculations
surrounding Apple Inc.'s future seems to
have stirred up questions concerning birth of the Apple II. Some writers have
reported that coding of the first II ROMs was a fairly simple affair since, "of
course", Steve Wozniak had access to an assembler and terminal. Similar
"obvious" and "easy" comments have surfaced about the decisions to use dynamic
RAM and include a BASIC interpreter. I decided to ask Woz for all the facts.
C.T.: You've seen the report; how much is accurate?
Woz: 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.
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.
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
C.T.: Even Commodore's Vic20, which appeared years
easy-to-design-for static memory IC's. What was behind the decision to use
Woz: 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
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.
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.
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.
C.T.: How did BASIC come to be part of the first Apple computer?
Woz: 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.
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.
C.T.: What about peripherals like the printer interface,
cassette, and disk? I
guess these were all coded using an assembler; right?
Woz: 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).
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.
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!