[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-