[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
'Birth of the Apple Computer - by WOZ'
'The Birth of the Apple Computer'
Presented for public review by Charles Turley
From: Steve Wozniak (released to Usenet public post, with senders
consent)
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 and the very interesting, 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 history). I asked Steve and he said sure,
post, use and/or distribute it as you wish! I'll be including it with
the other post, my original email to Steve and his reply, giving me
consent to distribute and use it as I wished, in the GS WorldView EZine
( http://www.wco.com/~3d5d1wsw/gsezine ) - as an html document sometime
tomorrow afternoon.
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 also.
------------------------------------------------------------------------
Date: 27 Feb 1996 17:04:47 -0800
From: "Steve Wozniak" <steve@woz.org>
Subject: Re: Just the facts - PLEASE!
To: "Charles Turley" <gbmaidsf@wco.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 hobbiest 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 compatable 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.
-END OF FILE-