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
All trademarks, logo's and copyrights are the property of their respective
holders.
Return to 'Parent Directory'