Compiled and written by Steven Weyhrich
(C) Copyright 1991, Zonker Software
Csa2 FAQs resource file: R016V1HIST.HTML
The comp.sys.apple2 Usenet newsgroup Apple II FAQs
originate from the II Computing Apple II site. 1997 ...
Note: To facilitate easier reading, the extensive footnote
references have been removed from this document.
This is the ENTIRE series of articles that make up the Apple II History.
Please feel free to make comments (on GEnie's A2 Roundtable, Category 2, Topic 16) or in E-mail (S.WEYHRICH) about the contents of these files. PLEASE, if you detect any errors or have any corrections, let me know about it. I would like to have as accurate a history as possible.
If you would like to print any of these files in a user group newsletter, I only ask that you print any segment you use in its entirety, and that you give me as the author credit for the work. Also, please send me a copy of any newsletter in which it is printed. My address is:
2715 N. 112th St.
Omaha, NE 68164-3666
This project began as a description of how the Apple II evolved into a IIGS, and some of the standards that emerged along the way. It has grown into a history of Apple Computer, with an emphasis on the place of the Apple II in that history. It has been gleaned from a variety of magazine articles and books that I have collected over the years, supplemented by information supplied by individuals who were "there" when it happened. I have tried not to spend much time on information that has been often repeated, but rather on the less known stories that led to the Apple II as we know it (and love it) today.
Along the way I hope to present some interesting technical trivia, some thoughts about what the Apple II could have been, and what the Apple II still can be. The Apple II has been described as the computer that refuses to die. This story tells a little bit of why that is true.
If you are a new Apple II owner in 1991 and use any 8-bit Apple II software at all, you may feel bewildered by the seemingly nonsensical way in which certain things are laid out. AppleWorks asks which "slot" your printer is in. If you want to use the 80 column screen in Applesoft BASIC you must type an odd command, "PR#3". If you want to write PROGRAMS for Applesoft, you may have some of those ridiculous PEEKs and POKEs to contend with. The disk layout (which type is supposed to go into which slot) seems to be in some random order!
And then there is the alphabet soup of disk systems: DOS 3.3, CP/M, Pascal, ProDOS, and GS/OS (if you have a IIGS). If you use 16-bit software EXCLUSIVELY, you will probably see none of this; however, even the most diehard GS user of the "latest and greatest" 16-bit programs will eventually need to use an 8-bit program. If you can tolerate a history lesson and would like to know "the rest of the story," I will try to make sense of it all.
I think one of the Apple II's greatest strengths is the attention they have paid over the years to be backward compatible. That means that a IIGS "power system" manufactured in 1991, with 8 meg of memory, a hand-held optical scanner, CD-ROM drive, and 150 meg of hard disk storage can still run an Integer BASIC program written in 1977, probably without ANY modification! In the world of microcomputers, where technology continues to advance monthly, and old programs may or may not run on the new models, that consistency is amazing to me. Consider the quantum leap in complexity and function between the original 4K Apple ][ and the ROM 03 IIGS; the amount of firmware (built-in programs) in the IIGS is larger than the entire RAM SPACE in a fully expanded original Apple ][!
This strength of the Apple II could also be considered a weakness, because it presents a major difficulty in making design improvements that keep up with the advances in computer technology between 1976 and the present, and yet maintain that compatibility with the past. Other early computer makers found it easy to design improvements that created a better machine, but they did so at the expense of their existing user base (Commodore comes to mind, with the PET, Vic 20, Commodore 64, and lastly the Amiga, all completely incompatible). However, this attention to detail is just one of the things that has made the Apple II the long-lived computer that it is.
In examining the development of the Apple II,
we will take a look at some pre-Apple microcomputer history, the Apple
I, and the formation of Apple Computers, Inc., with some sideroads into
ways in which early users overcame the limits of their systems. We
will follow through with the development of the Apple IIe, IIc, and IIGS,
and lastly make some comments on the current state of affairs at Apple
Inc. regarding the Apple II.
Let's begin our adventure in history. I've designed a special interface card that plugs into slot 7 on an Apple II. It contains an item its inventor called a "Flux Capacitor" (something about the being able to modify flux and flow of time). The card derives its power from a self-contained generator called "Mr. Fusion" (another item I dug out of the wreckage from a train/auto accident in California a couple of years ago). Connected to the card via a specially shielded line, Mr. Fusion runs on trash (and is, therefore, the ultimate computer peripheral, if you recall the old principal of "garbage in, garbage out"). Let's put a few issues of PC MAGAZINE into Mr. Fusion, and switch on the Flux Capacitor. (Incidentally, for this to work, it needs an Apple II equipped with a specially modified Zip chip running at 88 MHz). Boot the disk and set the time circuits for 1975. Ready? Set? Go! ** CRACKADOOM ** !!
Did you make it all right? (Just don't touch anything -- you don't want to disrupt the space-time continuum, you know!) Now, since the first Apple II wasn't released until 1977, what are we doing back in 1975? Well, to understand how the Apple II came about, it helps to know the environment that produced it.
In 1975, the microcomputer industry was still very much in its infancy. There were few "home computers" that you can choose from, and their capabilities were very much limited. The first microprocessor chip, the 4-bit 4004, had been released by Intel back in 1971.
The first video game, Pong, was created by Nolan Bushnell of Atari in 1972. Also in 1972, Intel had gone a step further in microprocessor development and released the 8-bit 8008, and then the 8080 in 1973. The year 1974 saw Scelbi Computer Consulting sell what some consider to be the first commercially built microcomputer, the Scelbi 8-H, based on Intel's 8008 chip. However, it had limited distribution and due to the designer's health problems it didn't go very far.
The first home-built computer, the Mark 8, was released that same year. The Mark 8 used the Intel 8080 chip, but had no power supply, monitor, keyboard, or case, and only a few hobbyists ever finished their kits. Overall, the microchip had yet to make much of an impact on the general public beyond the introduction of the hand-held calculator.
With the start of 1975 came a significant event in microcomputer history. If you will consider the early microprocessors of the years 1971 through 1974 as a time of germination and "pregnancy" of ideas and various hardware designs, January of 1975 saw the "labor and delivery" of a special package.
The birth announcement was splashed on the front cover of a hacker's magazine, Popular Electronics. The baby's parents, MITS, Inc., named it "Altair 8800"; it measured 18-inches deep by 17 inches wide by 7 inches high, and it weighed in at a massive 256 bytes (that's one fourth of a "K"). Called the "World's First Minicomputer Kit to Rival Commercial Models," the Altair 8800 used the Intel 8080 chip, and sold for $395 (or $498 fully assembled).
MITS hoped that they would get about four hundred orders for clones of this baby, trickling in over the months that the two-part article was printed. This would supply the money MITS needed to buy the parts to send to people ordering the kits (one common way those days of "bootstrapping" a small electronics business). This "trickle" of orders would also give MITS time to establish a proper assembly line for packaging the kits. However, they misjudged the burning desire of Popular Electronic's readers to build and operate their own computer.
MITS received four hundred orders in ONE AFTERNOON, and in three weeks it had taken in $250,000. The Popular Electronics article was a bit exuberant in the way the Altair 8800 was described. They called it "a full-blown computer that can hold its own against sophisticated minicomputers now on the market... The Altair 8800 is not a 'demonstrator' or souped-up calculator... [it] is a complete system." The article had an insert that lists some possible applications for the computer, stating that "the Altair 8800 is so powerful, in fact, that many of these applications can be performed simultaneously."
Among the possible uses listed are an automated control for a ham station, a digital clock with time zone conversion, an autopilot for planes and boats, navigation computer, a brain for a robot, a pattern-recognition device, and a printed matter-to-Braille converter for the blind. Many of these things will be possible with microcomputers by 1991, but even by then few people will have the hardware add-ons to make some of these applications possible. Also, despite the power that micros will have in that year, the ability to carry out more than one of these applications "simultaneously" will not be not practical or in some cases even possible.
The exaggeration by the authors of the Popular Electronics article can perhaps be excused by their excitement in being able to offer a computer that ANYONE can own and use. All this was promised from a computer that came "complete" with only 256 bytes of memory (expandable if you can afford it) and no keyboard, monitor, or storage device.
The IMSAI 8080 (an Altair clone) also came out in 1975 and did fairly well in the hobbyist market. Another popular early computer, the Sol, would not be released until the following year. Other computers released in 1975 that enjoyed limited success were the Altair 680 (also from MITS, Inc., based on the Motorola 6800 processor), the Jupiter II (Wavemate), M6800 (Southwest Technical Products), and the JOLT (Microcomputer Associates), all kits.
The entire microcomputer market was still very much a hobbyist market, best suited for those who enjoyed assembling a computer from a kit. After you assembled your computer, you either had to write your own programs (from assembly language) or enter a program someone else wrote. If you could afford the extra memory and the cost of buying a BASIC interpreter, you might have been able to write some small programs that ran in that language instead of having to figure out 8080 assembly language.
If you were lucky (or rich) you had 16K of memory, possibly more; if you were REALLY lucky you owned (or could borrow) a surplus paper tape reader to avoid typing in manually your friend's checkbook balancing program. Did I say typing? Many early computer hobbyists didn't even have the interface allowing them to TYPE from a keyboard or teletype. The "complete" Altair 8800 discussed above could only be programmed by entering data via tiny little switches on its front panel, as either octal (base 8) bytes or hexadecimal (base 16) bytes. With no television monitor available either, the results of the program were read in binary (base 2) from lights on that front panel. This may sound like the old story that begins with the statement, "I had to walk five miles to school through snow three feet deep when I was your age," but it helps to understand how things were at this time to see what a leap forward the Apple II really was (er, will be. Time travel complicates grammar!)
THE APPLE I: DEVELOPMENT
At the Homebrew Computer club in Palo Alto,
California (in Silicon Valley), Steve Wozniak, a 26 year old employee of
Hewlett-Packard and a long-time digital electronics hacker, had been wanting
to build a computer of his own for a long time. For years he had
designed many on paper, and even written FORTRAN compilers and BASIC interpreters
for these theoretical machines, but a lack of money kept him from carrying
out his desire. He looked at the Intel 8080 chip (the heart of the
Altair), but at $179 decided he couldn't afford it. A decision to
NOT use the 8080 was considered foolhardy by other members of the club.
Consider this description of the microcomputer "world" as it was in the
summer of 1975:
"That summer at the Homebrew Club the Intel 8080 formed the center of
the universe. The Altair was built around the 8080 and its early
popularity spawned a cottage industry of small companies that either made
machines that would run programs written for the Altair or made attachments
that would plug into the computer. The private peculiarities of microprocessors
meant that a program or device designed for one would not work on another.
The junction of these peripheral devices for the Altair was known as the
S-100 bus because it used one hundred signal lines. Disciples of
the 8080 formed religious attachments to the 8080 and S-100 even though
they readily admitted that the latter was poorly designed. The people
who wrote programs or built peripherals for 8080 computers thought that
later, competing microprocessors were doomed. The sheer weight of
the programs and the choice of peripherals, so the argument went, would
make it more useful to more users and more profitable for more companies.
The 8080, they liked to say, had critical mass which was sufficient to
consign anything else to oblivion."
Another chip, the Motorola 6800, interested Wozniak because it resembled his favorite minicomputers (such as the Data General Nova) more than the 8080. However, cost was still a problem for him until he and his friend Allen Baum discovered a chip that was almost identical to the 6800, while considerably cheaper. MOS Technology sold their 6502 chip for $25, as opposed to the $175 Motorola 6800.
Wozniak decided to change his choice of processor to the 6502 and began writing a version of BASIC that would run on it. A friend over at Hewlett-Packard programmed a computer to simulate the function of the 6502, and Wozniak used it to test some of his early routines. When his BASIC interpreter was finished, he turned his attention to designing the computer he could run it on. Except for some small timing differences, he was able to use the hardware design he had earlier done on paper for the 6800.
To make the computer easier to use, Wozniak favored a keyboard over the front panel switches that came on the Altair. He also made it simple to use a television for a video terminal. (Recall that at this time the most common mechanism used for input/output was a teletype, which consisted of a keyboard, typewriter, and if you were lucky, a paper tape reader/puncher). Functionally, it was a television terminal attached to a computer, all on one printed circuit board (another enhancement over the Altair).
Wozniak used two 256 x 4 PROM (programmable read-only memory) chips to create a 256 byte program (called a "monitor") that looked at the keyboard when the computer was turned on. This monitor program could not do much more than allow entry of hex bytes, examine a range of memory, and run a program at a specific address. (The Altair needed these "bootstrapping" instructions to be entered by hand each time the computer was turned on).
Because there were no cheap RAMs available, Woz used shift registers to send text to the TV screen. Consequently, his video terminal was somewhat slow, displaying characters at about 60 characters per second, one character per scan of the TV screen. (This speed would be similar to watching a computer communicate via a modem at 1200 baud).
It was slow by 1991 standards, but an advancement over the teletypes that could only type 10 characters per second. The computer had 8K of dynamic RAM. You could load BASIC into 4K of memory and have 4K left over for your own programs. It had a video connector, but you had to connect a monitor on your own. You also had to buy the keyboard separately and wire it into a 16-pin DIP connector.
The power supply had to be connected to two
transformers to get 5 volts and 12 volts for the motherboard. There
was no speaker, no graphics, and no color. There was a single peripheral
slot, and when it was first released there was nothing available to plug
into this slot. It was entirely contained on a single printed circuit
board, about six by eight inches in size (most hobby computers of that
time needed at least two boards), used only 30 or 40 chips, and because
it could run BASIC programs it got people's attention.
THE APPLE I: MARKETING
Let's adjust our time circuits for 1976, and jump forward in time. By now, Steve Wozniak had completed his 6502-based computer and would display enhancements or modifications at the bi-weekly Homebrew Computer Club meetings. Steve Jobs was a 21 year old friend of Wozniak's and also a visitor at the Homebrew club. He had worked with Wozniak in the past (together they designed the arcade game "Breakout" for Atari) and was very interested in his computer.
During the design process Jobs made suggestions that helped shape the final product, such as the use of the newer dynamic RAMs instead of older, more expensive static RAMs. He suggested to Wozniak that they get some printed circuit boards made for the computer and sell it at the club for people to assemble themselves. They pooled their financial resources together to have PC boards made, and on April 1st, 1976 they officially formed the Apple Computer Company. Jobs had recently worked at an organic apple orchard, and liked the name because "he thought of the apple as the perfect fruit--it has a high nutritional content, it comes in a nice package, it doesn't damage easily--and he wanted Apple to be the perfect company. Besides, they couldn't come up with a better name."
Jobs approached the owner of a new computer store in the bay area called "The Byte Shop." This businessman, Paul Terrell, expressed an interest in the Apple Computer (to be known later as the "AppleI"), but wanted only fully assembled computers to sell. If they could provide this, Terrell told them he would order fifty Apples, and pay cash on delivery. Suddenly, the cost of making (and selling) this computer was considerably more than they expected. Jobs and Wozniak managed to get the parts on "net 30 days" (30 days credit without interest), and set themselves up in Job's garage for assembly and testing of the AppleI.
After marathon sessions of stuffing and soldering PC boards, Jobs delivered the computers to the Byte Shop. Although these "fully assembled" computers lacked a power supply, keyboard, or monitor, Terrell bought them as promised. In July of 1976 the AppleI was released and sold for $666.66, which was about twice the cost of the parts plus a 33% dealer markup. Two hundred AppleI computers were manufactured, and all except twenty-five of them sold over a period of ten months.
Although the AppleI was easier to begin using than the Altair (thanks to its built-in ROM code), it was still a time consuming process to set it up to do something useful. Steve Wozniak would have to type in about 3K of hexadecimal bytes before BASIC was ready to use. He could do it in about 20 to 30 minutes, but he almost knew the code by heart. The typical user was more limited in ability to use BASIC on the AppleI.
To broaden the appeal of the AppleI (and at the insistence of Paul Terrell), Wozniak designed a cassette interface. It was mounted on a small two-inch-high printed circuit board and plugged into the single slot on the motherboard. The card sold for $75 and a cassette tape of Woz's BASIC was included with it. The advertisement Apple included with the card stated, "Our philosophy is to provide software for our machines free or at minimal cost." The interface worked, but worked well only with cassettes running on expensive tape recorders. To further try to enhance sales, the Byte Shop stores found a local cabinetmaker that made some koa-wood cases for the Apple computer (so it would no longer be just a "naked" circuit board).
Interestingly, although most of the action
in the micro world was going on in Silicon Valley, news of the AppleI made
its way east. Stan Veit, owner of the east coast's first computer
store, bought an AppleI and took it to a meeting of the Association of
Computer Machinery. Those attending were quite skeptical that a REAL
computer could fit into a small briefcase; they were sure that the machine
was just a portable terminal, attached by a hidden phone line to a mainframe
THE APPLE II: HARDWARE AND FIRMWARE
Moving our time machine on to 1977, we can
now look at Steve Wozniak's next generation Apple. Even as the AppleI
was completed and was slowly selling, Wozniak was already working on making
enhancements that would make his computer faster and more functional.
He wanted to make it display in color. He worked to combine the terminal
and memory functions of the AppleI by moving the display into main memory,
allowing instant screen changes. Many of his changes were not added
with the end user specifically in mind. Wozniak stated:
"A lot of features of the AppleII went in because I had designed Breakout
for Atari. I had designed it in hardware. I wanted to write
it in software now. So that was the reason that color was added in first--so
that games could be programmed. I sat down one night and tried to
put it into BASIC. Fortunately I had written the BASIC myself, so
I just burned some new ROMs with line drawing commands, color changing
commands, and various BASIC commands that would plot in color. I
got this ball bouncing around, and I said, 'Well it needs sound,' and I
had to add a speaker to the AppleII. It wasn't planned, it was just
accidental... Obviously you need paddles, so I had to scratch my head and
design a simple minimum-chip paddle circuit, and put on some paddles.
So a lot of these features that really made the AppleII stand out in its
day came from a game, and the fun features that were built in were only
to do one pet project, which was to program a BASIC version of Breakout
and show it off at the club."
Wozniak added other features that he felt were important for a computer that was useful, one that he would want to own. Since the 6502 processor could address a total of 64K of memory, he designed the computer with the ability to use either 4K RAM chips, or the newer (and more expensive) 16K RAM chips. The first AppleII's came standard with 4K of memory, and more could be added, to a maximum of 12K (if using the 4K chips) or 48K (if using the 16K chips). Specially wired strapping blocks attached to the motherboard told the AppleII how much memory was present and where it was.
According to the 1981 edition of the APPLE II REFERENCE MANUAL, the Apple could have memory in the following sizes: 4K, 8K, 12K, 16K, 20K, 24K, 32K, 36K, or a full 48K. (These sizes were determined by the different ways that three RAM chips, either 4K or 16K, could be installed). The strapping blocks were even designed with the flexibility of allowing blank spots in memory if there were no RAM chips available to fill those spots.
The first 4K of memory always had to have RAM present, since it was used by the 6502 processor, the ROM routines, and the text screen display. If, for example, you only had two other 4K RAM chips to install and you wanted to display hi-res graphics, you could strap one chip to the lower half of hi-res memory from $2000-$2FFF, and the other to the upper half of hi-res memory from $3000-$3FFF. Since 16K RAM chips cost about $500 when Wozniak designed the AppleII, not many users could afford them. Whereas the Commodore PET and the Radio Shack TRS-80 could not easily be expanded beyond the 4K they came with, the AppleII from the beginning was designed with expansion in mind.
The row of eight expansion slots was another feature about the AppleII that was a strong selling point. Unlike the TRS-80 or PET, you could easily expand the AppleII by simply plugging a card into one of these slots. This degree of expandability made it more expensive to build, however. Steve Jobs didn't believe that anyone would ever need more than two slots, one for a printer and one possibly for a modem. Wozniak knew from his experience with computers at Hewlett-Packard that computer users would always find SOMETHING to fill those extra slots, and insisted that they keep the number at eight.
One problem Apple had to deal with was getting FCC approval for the computer. The RF (radio frequency) modulator that had been designed gave off too much interference, and it was probable that the FCC would not approve it. (The RF modulator allowed a user to attach the Apple to a standard television receiver, instead of requiring the purchase of an expensive computer monitor).
Rather than have the release of the AppleII delayed for re-engineering of the RF modulator to get that FCC approval, Apple gave the specifications for the RF modulator to Marty Spergel. He ran a small company (called M&R Electronics) that specialized in obtaining hard-to-get parts that electronics and computer hackers wanted for their projects. Their agreement allowed M&R to make and sell the RF modulators, while Apple could concentrate on making and selling the AppleII. Dealers would sell an AppleII with a "Sup'r Mod" (costing about $30) if the buyer wanted to see the graphics on their color TV.
Jobs assured Spergel that the item would sell well, maybe as many as fifty units a month. (Years later Spergel estimated that he had sold about four hundred thousand Sup'r Mods).
Other features that Wozniak (and Allen Baum, who helped him with the project) included in the AppleII ROMs included the terminal software to do screen text display, expanded Monitor functionality, and cassette input/output routines. They added the ability to split the screen into different sized windows.
They also wrote a disassembler, which was one of the most important features of the AppleII from the beginning and a significant part of its open design. It allowed ANYONE to view the 6502 code that ANY program used, and matched the philosophy of the Homebrew Club of making all computer knowledge available to everybody.
In the AppleI days, when Apple was supplying software "free or at minimal charge", Wozniak and Baum published an early version of their 6502 disassembler in a hacker's magazine. It was designed to be loaded in memory on the AppleI from $800 to $9D8 and the routine could be executed from the monitor. This early code was quit similar to the disassembler that was later included in the AppleII ROM.
Having an expanded Monitor program in ROM and color graphics were not the only features in the AppleII that attracted people to it. Having Wozniak's BASIC language in ROM, available immediately when the power was turned on, made it possible for non-hackers to write programs that used the AppleII's color graphics.
An interesting bit of trivia about Wozniak's
Integer BASIC was that he never had an assembly language source file for
it. He wrote it in machine language, assembling it by hand on paper:
"I wrote this BASIC processor, and I wrote a little ALGOL simulator and got it simulated. It looked like it would work, but I had forgotten to build the machine. I had no assembler, that was another thing. To use an assembler, they figured that somebody was going to buy this processor [the 6502] to use for a company, and their company can pay a few thousand dollars in time-sharing charges to use an assembler that was available in time-share. I didn't have any money like that, so a friend taught me that you just sort of look at each instruction, you write your instructions on the right side of the page, you write the addresses over on the left side, and you then look up the hex data for each instruction--you could assemble it yourself. So I would just sit there and assemble it myself. The [Integer] BASIC, which we shipped with the first AppleII's, was never assembled--ever. There was one handwritten copy, all handwritten, all hand-assembled. So we were in an era that we could not afford tools."
Even to this day there is not an official source
code listing of Integer BASIC at Apple. And interestingly, the only
error I am aware of in the Integer interpreter is one involving a single
byte. If a line is entered that has too many parentheses, the "TOO
LONG" error message is displayed instead of the "TOO MANY PARENS" message.
NOW A WORD FROM OUR SPONSOR: BACK TO THE BASICS...
I want to take a short break in this discussion of the AppleII firmware to look at some other items that will make further descriptions easier to understand. If you are a programmer already, you may want to skip this section, since you probably already know this stuff. First we will examine some definitions of terms that are commonly known to programmers, but possibly not to you. Next will be a brief excursion into the realm of hexadecimal, and finally a look at the memory map of the original AppleII.
First, let's look at definitions of some words
that I have been loosely throwing around:
BIT The smallest piece of information that a computer can deal with, it is either a "0" (off, clear) or a "1" (on, set).
BYTE The most convenient piece of information (for humans) that computers use. One byte consists of eight bits, and ranges from "00000000" (0 decimal) to "11111111" (255 decimal).
NIBBLE (also spelled "nybble"). One half of a byte, consisting of four bits, ranging from "0000" (0 decimal) to "1111" (15 decimal).
WORD Two bytes (or four nibbles, if you prefer), consisting of sixteen bits, and ranging from "00000000 00000000" (0 decimal) to "11111111 11111111" (65535 decimal). Not used much in microcomputers.
BINARY A system of counting using only two digits, "0" and "1" (base 2). Computers speak in binary at their most basic level; anything else is translated into binary, so the computer can understand it.
DECIMAL A system of counting using ten digits, "0" through "9" (base 10). Most of the Western world uses this system.
HEXADECIMAL A system of counting using sixteen digits, "0" through "9" and "A" through "F" (base 16). Programmers use this system as a convenient way of organizing groups of binary numbers.
KILOBYTE Abbreviated "K", "KB", or "Kbytes", it refers to 1,024 bytes. A 64K computer has 64 x 1024 = 65536 bytes.
MEGABYTE Abbreviated "M", "MB", or "meg", it refers to 1,024 Kbytes, or 1,024 x 1,024 = 1,048,576 bytes. A 32 MB hard disk, the largest size volume that ProDOS can handle, holds 32 x 1,024 = 32,768 Kbytes, or 32 x 1,024 x 1,024 = 33,554,432 bytes.
GIGABYTE Abbreviated "G", "GB", or "gig", it refers to 1,024 MB, or 1,048,576 Kbytes, or 10,737,441,824 bytes. The AppleII Smartport (which will be mentioned later in this history) can handle disk devices up to 4 gig in size (although the software to handle that type of size has yet to be written).
RAM Random Access Memory. Any data stored in this memory disappears when the computer is turned off.
ROM Read Only Memory. Data cannot be stored in this type of memory, but instead it usually contains programs or other information that does not disappear when the computer is turned off.
HARDWARE The physical electronic components and mechanical parts that make up a piece of computer equipment. Examples would be the keyboard, disk drive, or television monitor (also called CRT, or Cathode Ray Tube).
SOFTWARE The digital instructions executed by the computer in RAM. They may act on the hardware that is attached to the computer. Examples would be a BASIC or Pascal program, an assembly language routine to read a clock, or a disk operating system. Since software is executed in RAM, it disappears from memory when the computer is turned off.
FIRMWARE The same as software, except
it is executed from ROM, and does not disappear when the computer is turned
off. Almost any software could be in ROM, except programs that modify
themselves as they run.
Next, let's look at hexadecimal numbers in more detail. Since computers deal in binary (base 2), the true language of computers is either in terms of "0" (off) or "1" (on). However, it quickly becomes cumbersome to refer to large numbers in binary; the base 10 number "458" is "111001010" in binary. So programmers have decided to group numbers in such a way as to make it easy to convert part or all of that number to binary if necessary, but still have numbers (almost) as easy to deal with as our standard base 10 system.
Now, in the familiar base 10 system there are ten digits, 0 through 9. When counting, after you pass 9, you add one to the digit to the left of the 9, change the 9 to a 0, and continue. So, "09" becomes "10", "19" becomes "20", and so on. However, in the base 16 system there are sixteen digits, 0 through 9, and then A through F (representing decimal 10 through 15). When counting, then, you go 7, 8, 9, then A (not 10), B, C, D, E, F, 10, 11, 12, and so on.
In the Apple world we have traditionally used a preceding dollar sign to signify a hexadecimal number, so "25" means twenty-five, but "$25" means thirty-seven (2 x 16, plus 5). To translate a hexadecimal number to decimal, use powers of 16:
$B65F = (11 x 16^3) + (6 x 16^2) +
(5 x 16^1) + (15 x 16^0)
= (11 x 4096) + (6 x 256) + (5 x 16) + (15 x 1)
= 45056 + 1536 + 80 + 15
The same thing can be done in reverse to convert base 10 to hexadecimal, starting by dividing the number by 4096, then the remainder by 256, then 16. If the number is greater than 65536, you need a bigger power of 16 (and you are probably not dealing with an 8-bit AppleII!) Or you can just get a programmer's calculator like mine that automatically does the conversion for you...
When dealing with memory addresses on an AppleII,
we usually designate them as four digit hex numbers (such as the $B65F
example above). Numbers less than $1000 often are printed without
the leading blank ($400 instead of $0400), and numbers less than $100 are
treated the same way ($32 instead of $0032).
THE APPLE II: MEMORY MAP
To understand the memory layout of the AppleII, consider this analogy: Imagine a cabinet with sixteen shelves, and sixteen separate slots or pigeon holes on each shelf (similar to those found in old roll-top desks). Each slot refers to a specific address in memory on the computer, and each slot can hold a number between 0 and 255. (Since a byte is eight bits wide, the largest number that can be represented by eight binary bits is 255). The bottom shelf is row "0", and the leftmost slot in that row is slot "0". The address of that slot, then, is $00.
As we move to the right, the addresses increase, $01, $02, $03, and so on to $0F at the end. We then go up to the next row, (row "1"), and the addresses continue in the same fashion with $10, $11, $12, and so on as before. The sixteenth row is row "F", the rightmost slot in that row is slot "F", and the address of that slot is $FF.
This cabinet has, then, 256 slots (16 x 16), and represents what is called a "page" in the Apple memory. The cabinet itself has an address (since computers need addresses for everything), and this one's address is "00". The full address of row "5", slot "A" on cabinet "00" is $005A.
Only the Altair 8800 came with just 256 bytes of memory, so we have to account for the entire 64K memory space that the 6502 chip in the AppleII can handle. There is a cabinet sitting on top of cabinet "00", and it is laid out in the same fashion with its 256 slots in sixteen rows. This is cabinet "01", and on top of that one is cabinet "02"; this continues on up until we reach cabinet "FF" way up at the top. Apple programmers refer to these cabinets as "pages" of memory. There are 256 pages of memory, each with 256 bytes on a page, making a grand total of 256 x 256 = 65536 bytes of memory (or slots that can hold a number, if you prefer the analogy).
In discussing the memory map on the AppleII,
we can refer to pages of memory with a hexadecimal two-digit number for
shorthand if we wish. The general layout of the AppleII memory is
Page $00: used by the 6502 processor for storage of information that it can access quickly. This is prime real-estate that is seldom available for general use by programmers without special care.
Page $01: used by the 6502 for internal operations as a "stack."
Page $02: used by the AppleII firmware as an input buffer when using the keyboard from BASIC, or when a program uses any of the firmware input routines.
Page $03: general storage area, up to the top three rows (from $3D0 through $3FF) which are used by the disk operating system and the firmware for pointers to internal routines.
Pages $04-$07: used for the 40 column text screen.
Pages $08-$BF: available for use by programs, operating systems, and for hi-res graphics. Within this space, Woz designated pages $20-$3F for hi-res "page" one, and pages $40-$5F for hi-res "page" two.
Page $C0: internal I/O and softswitches
Pages $C1-$C7: ROM assigned to each of the seven peripheral cards
Pages $C8-$CF: switchable ROM available for any of the seven cards
Pages $D0-$D7: empty ROM socket #1
Pages $D8-$DF: empty ROM socket #2
Pages $E0-$F7: Integer BASIC ROM
Pages $F8-$FF: Monitor ROM
The memory space on the AppleII between $C000 and $CFFF was assigned to handle input and output. From $C000 to $C0FF the space was reserved for various soft-switches used to control the display, and various built-in I/O devices, such as the keyboard, paddles, annunciators, and the cassette port. (A soft-switch is simply a memory location that, when a number is stored there, changes something in the computer--such as switching on graphics mode).
From $C100 to $CFFF the space was reserved for ROM on the plug-in peripheral cards for each of the seven slots. Slot 1 was given the space from $C100 to $C1FF, slot 2 from $C200 to $C2FF, and so on. The $C800 to $CFFF space was special slot-selectable ROM that was uniquely available for each of the seven peripheral cards. For example, a program running on the card in slot 6 to control a device could use the $C800-$CFFF space for its own purpose. When control passed to the card in slot 3, that card could use a program of its own that ran in the same $C800-$CFFF space.
This was accomplished by allowing each card to have ROM code that covered pages $C8-$CF, and making that space "switchable", depending on which card wanted to use it. Having this space available made writing ROM code simpler, since it would not have to be capable of running at various memory locations (depending on which slot a card was plugged into).
The memory from $D000 to $D7FF and $D800 to
$DFFF was empty on all early AppleII computers. On the motherboard
were two empty sockets that were available for the user to plug in their
own ROM chips. The $D000-$D7FF space was most often used by a plug-in
ROM chip sold by Apple, known as "Programmer's Aid #1." It contained
various utilities for Integer BASIC programmers, including machine language
routines to do the following:
Renumber BASIC programs
Append one BASIC program to the end of another
Verify a BASIC program that had been saved on tape (to confirm it was an accurate save)
Verify non-program data that had been saved on tape
Relocate assembly language routines to a different location in memory (most would only run in one place in memory)
Test the AppleII RAM
Generate musical tones through the built-in speaker
Handle hi-res graphics from BASIC, including
code to clear the hi-res screen, set colors, plot points and lines, draw
shapes, and load shapes from tape.
All the routines on the Programmer's Aid #1 ROM were written by Wozniak between June 1977 (the RAM test routine) and April 1978 (program renumber and append), except for the music routine, which was written by Gary Shannon.
The other empty ROM socket (covering memory from $D800 to $DFFF) was never filled by Apple. Various third-party vendors sold ROMs for that socket (or for the $D000-$D7FF socket used by the Programmer's Aid #1 ROM), but none made enough of an inroad to be preserved in the INTBASIC file that would later be included on the DOS 3.3 System Master disk. In fact, the $D800-$DFFF space in the INTBASIC file on that disk contains an image of that same space taken directly from the Applesoft ROM! It is completely useless to Integer BASIC, of course, but disk files being what they are, Apple had to fill that space with SOMETHING!
The Integer BASIC interpreter lived in the ROM space between $E000 and $F7FF. However, BASIC only used the space up to $F424. Between $F425-$F4FB and $F63D-$F65D could be found a floating-point math package that was not used by Integer BASIC, but was available for BASIC programmers who were astute enough to figure out how it worked. (An early Apple user group, the Apple Pugetsound Program Library Exchange, or A.P.P.L.E., sold a tape and notes by Steve Wozniak they called "Wozpak", that documented some of the secrets of the Integer BASIC ROM).
Between $F500-$F63C there was code that was known as the "miniassembler", which was executed starting at the ominous address $F666. The miniassembler allowed you to enter short machine language programs using the standard 6502 mnemonics (the three letter codes that referred to a specific type of operation; for example, "LDA #" represented the 6502 opcode $A9) instead of entering the program byte by byte in the monitor. The $F689-$F7FC space contained Woz's SWEET16 interpreter. Wozniak wrote SWEET16 to simulate a 16-bit processor; it simplified some routines he wrote for the AppleII ROMs, including the Programmer's Aid #1 renumber, append, and relocate routines.
Simply put, he took a series of hex bytes, defined them as "opcodes" the way HE wanted them to function, and when executing the code used his SWEET16 interpreter to translate the code into legal 6502 operations. It ran slower than standard 6502 code, but when memory space was at a premium it was better to have a slow program than to not have enough room for the program at all.
For those who are keeping count, there are a few unreferenced bytes in the latter part of the Integer ROM. Those bytes contained filler bytes that were not used as any program code.
The last part of the AppleII memory, from $F800-$FFFF,
contained Wozniak's Monitor program which has already been discussed above.
THE APPLE II: OTHER DESIGN FEATURES
Since Steve Wozniak was the designer of the
AppleI and II, exactly what contribution did Steve Jobs make to the effort?
Unlike Wozniak, who would not think much of extra wires hanging out of
a computer that worked properly, Jobs had an eye for the appearance of
the final product. He wanted the AppleII to be a product that people
outside the Homebrew Computer Club would want to own:
"Jobs thought the cigar boxes [housing the home-made computers] that
sat on the... desk tops during Homebrew meetings were as elegant as fly
traps. The angular, blue and black sheet-metal case that housed Processor
Technology's Sol struck him as clumsy and industrial... A plastic case
was generally considered a needless expense compared to the cheaper and
more pliable sheet metal. Hobbyists, so the arguments went, didn't care
as much for appearance as they did for substance. Jobs wanted to
model the case for the Apple after those Hewlett-Packard used for its calculators.
He admired their sleek, fresh lines, their hardy finish, and the way they
looked at home on a table or desk."
The final case design made the AppleII look quite different from most of their competition. The other computers looked like they had been assembled at home (and many of them were). The Apple had no visible screws or bolts (the ten screws attached at the bottom). It had the appearance of some variation of a typewriter, but still looked futuristic enough to be a computer. The friendliness of the design even extended to the lid, which popped off easily to allow access to the expansion slots, almost inviting the user to look inside (unlike most electronic devices that held the warning "CAUTION! NO USER SERVICEABLE PARTS INSIDE").
Other aesthetics to which Jobs paid attention were the color of the keyboard, vents for heat dissipation (avoiding the need for a noisy fan), and a shape and color that would blend in with other items in a home or on a desk. He also hired an engineer who was good with analog circuitry (not Wozniak's area of interest) to design a reliable, lightweight power supply that would stay cool. The engineer, Rod Holt, was working at Atari at the time, but was convinced to help Jobs and Wozniak. He developed a new approach (for microcomputers) by taking household current and switching it on and off rapidly, producing a steady current that was safe for the expensive memory chips. The final design of this switching power supply was smaller than a quart carton of milk and was quite reliable. Holt also helped design the television interface for the AppleII.
The new company was racing to have the AppleII
ready for the First West Coast Computer Fair in April of 1977. Some
last minute bugs had to be eliminated; because of a static electricity
problem affecting a sensitive chip, the keyboards went dead every twenty
minutes. Chris Espinosa and Randy Wigginton, two high school students
who were early employees of Apple, had written programs to demonstrate
the computer's color and sound. They were hurriedly working to duplicate
these programs on cassette. People at Apple were working to fix blemishes
in the computer cases that had returned from the plastics molding company.
The name for this new computer was also finalized as "AppleII", following
the example of Digital Equipment Company, who had given each newer version
of its PDP series a higher number (PDP-1, PDP-6, etc.). They stylized
the "II" in the product name by using right and left brackets, and displaying
it on the case as "][". The final product bore the mark of each person
"The computer that appeared at the West Coast Computer Faire was not
one person's machine. It was the product of collaboration and blended
contributions in digital logic design, analog engineering, and aesthetic
appeal. The color, the slots, the way in which the memory could be
expanded from 4K to 48K bytes, the control of the keyboard and hookup to
the cassette recorder, and the BASIC that was stored in the ROM chip--in
effect the motherboard--was Wozniak's contribution. Holt had contributed
the extremely significant power supply, and Jerry Mannock the case.
The engineering advances were officially recognized when, some months later,
Wozniak was awarded U.S. Patent #4,136,359 for a microcomputer for use
with video display, and Holt was given Patent #4,130,862 for direct current
power supply. But behind them all Jobs was poking, prodding, and
pushing and it was he, with his seemingly inexhaustible supply of energy,
who became the chief arbiter and rejector... [Finally,] the combination
of [Mike] Markkula [Apple's first president], Jobs, and the McKenna Agency
turned Apple's public bow [at the West Coast Computer Faire] into a coup."
THE APPLE II: PRODUCT INTRODUCTION
As they prepared for the display at the First
West Coast Faire, it was decided to create a new corporate logo.
The original one, used in sales of the AppleI, was a picture of Isaac Newton
sitting under an apple tree, with a phrase from Wordsworth: "Newton...'A
Mind Forever Voyaging Through Strange Seas of Thought...Alone.'"
Jobs had been concerned that the logo had part of the slow sales of the
AppleI, and the Regis McKenna Agency was hired to help in the design of
a new one.
"Rob Janov, a young art director, was assigned to the Apple account and set about designing a corporate logo. Armed with the idea that the computers would be sold to consumers and that their machine was one of the few to offer color, Janov set about drawing still lifes from a bowl of apples ... He gouged a rounded chunk from one side of the Apple, seeing this as a playful comment on the world of bits and bytes but also as a novel design. To Janov the missing portion 'prevented the apple from looking like a cherry tomato.' He ran six colorful stripes across the Apple, starting with a jaunty sprig of green, and the mixture had a slightly psychedelic tint. The overall result was enticing and warm ..."
"[Steve] Jobs was meticulous about the style and appearance of the logo... When Janov suggested that the six colors be separated by thin strips to make the reproduction easier, Jobs refused."
For the Faire, Markkula had ordered a smoky, backlit, illuminated plexiglas sign with the new logo. Although Apple had a smaller booth than other companies displaying their products at the Faire, and some of the other microcomputer makers (Processor Technology, IMSAI, and Cromemco) had been in business longer, Apple's booth looked far more professional, thanks to Markkula's sign. Some of the other participants, companies larger than Apple, had done no more than use card tables with signs written in black markers.
Because they had been one of the first to commit
themselves to displaying at the Faire, Apple's booth was near the entrance
and was visible to everybody entering the convention center. They
demonstrated a kaleidoscopic video graphics program (possibly an early
version of "BRIAN'S THEME") on a huge Advent display monitor, catching
everybody's attention. But, after the Faire its organizer Jim Warren
(Homebrew club member and editor of DR. DOBB'S JOURNAL) didn't think that
Apple was a strong exhibitor. Byte magazine, in their report of the
show, failed to even mention Apple. Despite these early opinions
by influential people, over the next few months Apple received about three
hundred orders for the AppleII, over a hundred more than the total number
of AppleI's sold.
THE APPLE II: COST
Prebuilt systems were also sold by Commodore
(the 6502-based PET, for $595), and Radio Shack (the Z80-based TRS-80,
for $600). This was quite a bit less than the AppleII's premium price
of $1,298 for a 4K computer, a pair of game paddles, and an audio cassette
with demo programs. This price did not include a cassette recorder
or monitor (which both the PET and TRS-80 did include). The hardware
limitations and lack of expandability of those machines, however, offset
some of the price difference. Also, one other hardware introduction
for the AppleII that happened in mid-1978 set it well ahead of its immediate
competitors; we'll get to that shortly.
THE APPLE II: EXPERIENCES OF EARLY USERS
The original manual for the AppleII was sparse. It consisted of thirty photocopied pages, including some handwritten notes from Woz. The cover stated, "simplicity is the ultimate sophistication: introducing Apple][, the personal computer." In early 1978 these original photocopied manuals were replaced with the new "AppleII Technical Reference Manual" (also known as the "Red Book"), and copies were mailed to previous customers. Steve Jobs realized that people often viewed the quality of a product by the quality of its documentation, and so he took pains to get manuals that were easy to read and had a professional appearance.
Setting up an early AppleII was fairly simple. The lid popped off easily, and one of the first things you would attach was the Sup'r Mod (RF modulator). This was plugged onto two pins sticking up from the back rear of the motherboard, near the video output jack (assuming that you did not also buy a REAL computer monitor). The game paddles were two small black boxes, with a knob on the top attached to a potentiometer (similar to volume controls on a radio) and a tiny black button on the side. These boxes were attached via a narrow cable to a plug that looked (and was) fragile; this plug also went into a small socket in the motherboard. Lastly, you attached your data storage device (the cassette recorder) to the input and output jacks in the back of the computer.
After turning on the AppleII, the first thing to greet you was a screen full of random alphabetic characters and symbols, and possibly some colored blocks (lo-res graphics mode might be turned on). Here you had to press the RESET key in the upper right hand side of the keyboard, which, after releasing the key, would cause a "beep!" and an asterisk to appear in the bottom left-hand corner of the screen. (If the lo-res graphics mode had been on, it would now be off). Next to the asterisk (which was a prompt to show that you were in the Monitor) was a flashing box, the cursor. To get into BASIC, you had to press the "Ctrl" key and the "B" key simultaneously. Now you would see a different prompt, one that looked like a ">".
At this point, you could either begin entering
a BASIC program, or try to load one from cassette. To load from cassette
was not always easy; it took time to get the right volume and tone settings
on the tape player in order to avoid getting the "ERR" or "*** SYNTAX ERR"
message. (And if you didn't have much memory, you might get a "***
MEM FULL ERR" message!) When you got it properly loaded, you could
type RUN and see what happened. Beyond that, it was more or less
up to you to actually find something to DO with your new toy.
THE APPLE II: EARLY HARDWARE ADD-ONS
Aside from the M&R "Sup'r Mod" that allowed early AppleII users to run their computer on their color TV's, some other enterprising hackers designed their own versions of modulators. One used by an early member of an Apple user group in Washington State (Apple Pugetsound Program Library Exchange, or A.P.P.L.E.) was somewhat better shielded than the "Sup'r Mod". It had its own power supply and plugged into the video output jack on the back of the Apple. The "Sup'r Mod" was by far the biggest seller, however.
At first, there were no interface cards for
any of Woz's eight slots. With the limited funds that computer purchasers
had then (and now) there was not much they could afford after shelling
out anywhere from $1200 to $1800 just to get their own AppleII. But
they were innovative, and like many other hardware hackers of the day managed
to make do with old or surplus parts. Some people, for instance,
had gotten their hands on used teletype printers, such as the ASR-33 (called
"battleships" because they were so rugged and heavy). Since there
weren't any printer interface cards to plug into the slots to allow the
computer to communicate with the teletype, they used a trick they learned
from Woz himself. The AppleII had four single-bit output pins on
the game controller socket that could be used for various purposes.
A schematic floated through the various user groups that showed how to
connect the teletype to an annunciator pin; along with it was a machine
language program that re-directed output from the screen to that one-bit
port, and on to the printer.
THE DISK II
Let's put some more trash into Mr. Fusion to fuel the next leg of our trip. How about one of those KIM-1 computers over there in the corner of the Computer Faire auditorium? We might have to break it up a bit to make it fit... Okay, now we'll just make a small jump, to December of 1977. By this time the AppleII had been generally available for about six months. Most customers used their television as an inexpensive color monitor, and used a cassette recorder to store and retrieve their programs and data. Apple's major competitors were the TRS-80 and the Commodore PET. The products made by these two companies, together with Apple, could be considered as the second generation of microcomputers; they all came fully assembled and ready to use out of the box, with a keyboard and cassette interface. The TRS-80 and the PET even came with a monitors and cassette recorders. The strength of the Apple was expandability and graphics, while the strength of the others was cost (both the TRS-80 and the PET sold for around $600, half the price of the AppleII).
By late 1977, Apple had introduced some enhancements to the II, including their first version of a floating point BASIC (called "Applesoft") on cassette, and a printer interface card to plug into one of the slots on the motherboard. But the AppleII still needed something to make it more attractive to buyers, to stand out above the TRS-80 and the PET. One area that needed improvement was its program and data storage and retrieval system on cassette; it was a continued source of frustration for many users. The cassette system used on the TRS-80 was more sophisticated than that of the AppleII, allowing named files and easier storage of files and data on the same tape. On the AppleII it took VERY careful adjustment of the volume and tone controls on the cassette recorder to get programs or data to successfully load. The Apple cassette system also needed careful attention to the location on the tape where a program was stored, and was no more accurate than the number on the recorder's mechanical tape counter (if it had one).
Apple president Mike Markkula was one AppleII
user that was dissatisfied with cassette tape storage. He had a favorite
checkbook program, but it took two minutes to read in the program from
the tape, and another two minutes to read in the check files. Consequently,
at the executive board meeting held in December 1977 he made a list of
company goals. At the top of the list was "floppy disk". Although
Wozniak didn't know much about how floppy disks worked, he had once looked
through a manual from Shugart (a Silicon Valley disk drive manufacturer):
"As an experiment Woz had [earlier] conceived a circuit that would do
much of what the Shugart manual said was needed to control a disk drive.
Woz didn't know how computers actually controlled drives, but his method
had seemed to him particularly simple and clever. When Markkula challenged
him to put a disk drive on the Apple, he recalled that circuit and began
considering its feasibility. He looked at the way other computer
companies--including IBM--controlled drives. He also began to examine
disk drives--particularly North Star's. After reading the North Star
manual, Woz knew that his circuit would do what theirs did and more.
He knew he really had a clever design."
Other issues that Wozniak had to deal with involved a way to properly time the reading and writing of information to the disk. IBM used a complex hardware-based circuit to achieve this synchronization. Wozniak, after studying how IBM's drive worked, realized that if the data was written to the disk in a different fashion, all that circuitry was unneeded. Many floppy disks sold at that time were "hard sectored", meaning that they had a hole punched in the disk near the center ring. This hole was used by the disk drive hardware to identify what section of the disk was passing under the read/write head at any particular time. Wozniak's technique would allow the drive to do self-synchronization ("soft sectoring"), not have to deal with that little timing hole, and save on hardware.
Wozniak asked Randy Wigginton for help in writing some software to control the disk drive. During their week of Christmas vacation in 1977 they worked day and night creating a rudimentary disk operating system, working hard to get the drive ready to demonstrate at the Consumer Electronics Show in the first week of 1978. Their system was to allow entry of single letter commands to read files from fixed locations on the disk. However, even this simple system was not working when Wozniak and Wigginton left for the show.
When they got to Las Vegas they helped to set up the booth, and then returned to working on the disk drive. They stayed up all night, and by six in the morning they had a functioning demonstration disk. Randy suggested making a copy of the disk, so they would have a backup if something went wrong. They copied the disk, track by track. When they were done, they found that they had copied the blank disk on top of their working demo! By 7:30 am they had recovered the lost information and went on to display the new disk drive at the show.
Following the Consumer Electronics Show, Wozniak
set out to complete the design of the Disk II. For two weeks, he
worked late each night to make a satisfactory design. When he was
finished, he found that if he moved a connector he could cut down on feedthroughs,
making the board more reliable. To make that move, however, he had
to start over in his design. This time it only took twenty hours.
He then saw another feedthrough that could be eliminated, and again started
over on his design. "The final design was generally recognized by
computer engineers as brilliant and was by engineering aesthetics beautiful.
Woz later said, 'It's something you can ONLY do if you're the engineer
and the PC board layout person yourself. That was an artistic layout.
The board has virtually no feedthroughs.'"
THE DISK II: COST
The Disk II was finally available in July 1978 with the first full version of DOS, 3.1. It had an introductory price of $495 (including the controller card) if you ordered them before Apple had them in stock; otherwise, the price would be $595. Even at that price, however, it was the least expensive floppy disk drive ever sold by a computer company. Early production at Apple was handled by only two people, and they produced about thirty drives a day.
Apple bought the drives to sell with Woz's
disk controller from Shugart, right there in Silicon Valley. To cut
costs, however, they decided to go to Alps Electric Company of Japan and
ask them to design a less expensive clone. According to Frank Rose, in
his book "West Of Eden":
"The resulting product, the Disk II, was almost obscenely profitable:
For about $140 in parts ($80 after the shift to Alps) [not counting labor
costs], Apple could package a disk drive and a disk controller in a single
box that sold at retail for upwards of $495. Better yet was the impact
the Disk II had on computer sales, for it suddenly transformed the AppleII
from a gadget only hard-core hobbyists would want to something all sorts
of people could use. Few outsiders realized it, but in strategic
terms, Woz's invention of the disk controller was as important to the company
as his invention of the computer itself."
THE APPLE II PLUS: HARDWARE
We now go cruising ahead in time about one year, to June of 1979. Applesoft BASIC had been in heavy demand since the introduction in late 1978 of an improved version. It was needed by those wanting to write and use applications that needed the capability of floating-point math. Because of this, Apple engineers had begun working in 1978 on the AppleII Plus, a modest enhancement to the AppleII. The main attraction of this newer Apple would be Applesoft in ROM, available immediately without having to load it from cassette or disk. Also, having it in ROM would move it out of the part of memory where RAM Applesoft conflicted with hi-res graphics (after all, Applesoft had commands specifically written into it for manipulating those graphics, something that Integer BASIC could only do via special CALLs to the routines in the Programmer's Aid #1 chip).
With the decision made to upgrade the AppleII, other changes were made to make it more attractive to new computer buyers. The cost of RAM chips had dropped considerably, so most new IIPlus systems came standard with a full 48K of RAM. Since the disk operating system consumed about 10K of memory, having the full complement of available RAM made it easier to use the Disk II with either version of BASIC. Since users would not need to add the smaller 4K memory chips, the strapping blocks that had made it possible to use either 4K or 16K RAM chips on the original AppleII were removed.
Small changes had already been made to the product since it first began distribution. Most of these changes were made primarily to simplify it and decrease costs of manufacturing. First of all, the original AppleII motherboard, designated as "Revision0", was changed to make it possible to display two more colors in hi-res graphics. The Revision0 board had only four colors (green, violet, black, white), but Wozniak had learned that by making a simple alteration he could get two more colors (blue and orange) and two more varieties of black and white. The Revision1 and later boards were capable of displaying all eight colors. The means of making this modification to Revision0 Apples was described by Wozniak in his reply to an article by Allen WatsonIII about hi-res graphics (in the June 1979 issue of Byte magazine). With that change, people who were not afraid of doing a little electrical work on their computers had some of the benefits of an updated AppleII.
Hardware bugs that Apple engineers fixed included one that caused text characters to be displayed with green and violet fringing, whether in graphics mode or text mode. The "color killer" circuit they added fixed things so that non-graphics text would display in black and white only. Another problem involved RAM configurations of either 20K or 24K (a 16K RAM chip plus one or two 4K RAM chips). In those systems a hardware bug caused the 8K of memory from $4000 to $5FFF to be duplicated in the next 8K of memory, from $6000 to $7FFF, whether there was RAM present at those locations or not. This made a 20K Apple appear to have 24K, and a 24K Apple appear to have 36K. The Revision1 motherboard fixed this problem as well.
Revision1 boards also modified the cassette
input circuit to respond with more accuracy to a weak input signal, making
it easier to load data and programs from cassette. Also, one "feature"
of the original AppleII was that any sound generated by the internal speaker
also appeared as a signal on the cassette output connector; this was fixed
in the new motherboards. Lastly, the RESET cycle was made part of
the power-up circuitry, eliminating the requirement that the RESET key
be pressed after turning on the computer.
THE APPLE II PLUS: FIRMWARE
More important than the minor hardware changes, however, were the changes in the ROM code. The new ROM replaced the original Monitor with one that, among other things, better supported the new Disk II drive. Since RESET was now automatically activated when the power was turned on, the new ROM code had the computer automatically do a few things. It cleared the screen (displaying "APPLE ][" at the top), and began a scan down the slots, starting at slot 7 down to slot 1. It examined the first few bytes of code in each card's ROM for a specific sequence that identified it as a Disk II controller card. If one was found, control was passed to that card, causing the disk drive to startup and begin loading the disk operating system into memory. If no disk controller was found, the ROM code jumped instead to the start of BASIC (instead of leaving the user in the Monitor, as in the old ROM). This "Autostart ROM", as it was called, made it possible to have a system that started up a program on the disk with little action needed by the user.
The RESET code was more intelligent in the Autostart ROM than in the Old Monitor ROM. There was now a "Cold Start" RESET (which functioned as described above), and a "Warm Start" RESET. A Warm Start RESET could occur without re-booting the Disk II (if it was present); in fact, it ensured that the disk operating system remained "connected" after RESET was pressed. This feature was implemented by setting three bytes at the end of page $03 in memory. Two of the bytes were the address of the place in memory to which the Apple should jump if RESET was pressed. The third byte was a specially coded byte created from half of the address byte. When RESET was pressed, this special "power-up" byte was checked with the address byte. If they didn't properly match, the Monitor assumed that the power had just been turned on, and it executed a Cold Start RESET. This feature was extensively used by writers of copy protected software, so users could not modify or copy the code in memory simply by pressing the RESET key.
The other major change, mentioned earlier, was the BASIC that was supplied in ROM. Gone was Steve Wozniak's hand-assembled Integer BASIC, in favor of the newer Applesoft. Since these ROM versions of BASIC used the same memory locations, they could not be used simultaneously. With the introduction of the IIPlus, Apple also released the Applesoft Firmware card. This card, which plugged into slot 0, made it possible for previous AppleII owners to have some of the benefits of the IIPlus without having to buy an entirely new computer. Even with that card, however, you could not use features of one BASIC while the other was active, and switching from one BASIC to the other erased any program that was being used at the time. The two BASICs could be told apart by the prompt they used; Integer BASIC used the ">" character, but Applesoft used the "]" character.
Another change made to the Monitor ROM made screen editing easier. The original AppleII's procedure for editing a line typed in BASIC or in the Monitor was tedious at best. To change a line of text in BASIC, you had to list the line, move the cursor up to the start of the line, and then use the right-arrow key to "copy" text from the screen into the input buffer. If you wanted to skip part of the line, you had to move the cursor past the text that you wanted to eliminate WITHOUT using the arrow keys. If you wanted to INSERT something into the line, you had to move the cursor off the line (above it or below it), type the additional text, and then move the cursor back into the line to finish copying the original part of the line.
For example, suppose you had typed this line
in Applesoft and displayed it on the 40-column screen:
100 FOR I = 1 TO 100: PRINT "I
LIKE MY APPLE": NEXT : END
To change that line so the PRINT statement
read "I REALLY LIKE MY APPLE" meant either retyping the entire line, or
using the edit feature. (If the line was particularly long, it was
preferable to edit rather than retype the entire line). To edit this
line, you would have to move the cursor up to the "1" of "100" and begin
pressing the right arrow key. When you got to the "L" of "LIKE" you
would have to move the cursor above or below the line, type the word "REALLY"
followed by a space, then move the cursor back to the "L" of "LIKE", and
continue copying with the right arrow key. After editing a line,
the screen might look like this:
100 FOR I = 1 TO 100: PRINT "I
LIKE MY APPLE": NEXT : END
(In this example, I moved the cursor down one
line, typed "REALLY", and then moved it back to the start of the word "LIKE").
If you didn't make any mistakes it would read like this:
100 FOR I = 1 TO 100: PRINT "I
REALLY LIKE MY APPLE" : NEXT
However, if you didn't take care to skip over
the extra spaces inserted in front of the word "LIKE" by the Applesoft
LIST command, it could appear this way:
100 FOR I = 1 TO 100: PRINT "I
REALLY LIKE MY APPLE"
: NEXT : END
The big problem with these cursor moves for editing under the Old Monitor was that each move required two keypresses. To move the cursor up, you had to press "ESC" and then "D" EACH TIME you wanted to move the cursor up. "ESC A" moved right, "ESC B" moved left, and "ESC C" moved the cursor down. With a long line that needed much editing, this would get old real fast. Not only was it cumbersome, but the layout of the keyboard made it difficult to remember the correct letters used for cursor movement; although "D" (up) was above "C" (down), it seemed that "D" should stand for "Down". Also confusing was that "A" was to the left of "B", but their functions were the opposite of their position!
The new Autostart ROM improved this screen editing process just a bit. Now, pressing "ESC" turned on a special editing mode. Repeated presses of "I" (up), "J" (left), "K" (right), and "M" (down) continued to move the cursor until a key other than ESC was pressed. On the keyboard these letters were arranged in a sort of "directional keypad" or diamond, which made remembering the moves a little easier. The previous ESC editing codes were still supported, but still with their previous limitations. Unfortunately, however, you still couldn't tell whether you were in the regular text entry mode or in the ESC editing mode, and often attempts at changing a line took several tries to get it right.
Other features added in the new Autostart ROM included the ability to pause a listing by pressing Ctrl-S (VERY helpful when trying to scan through a long program!) As mentioned above, pressing RESET would return control through the soft-entry vectors on memory page $03. This would allow a user to exit from a runaway BASIC program by pressing RESET, and still keep program and variables intact in memory (which could not be guaranteed with the old Monitor ROM).
John Arkley at Apple wrote the changes to the original Monitor ROM and created the Autostart ROM in November 1978 (he's the "John A" mentioned in the source code listing found in the 1981 edition of the APPLE II REFERENCE MANUAL). After he had done the work and the ROMs had been created, Apple wanted to publish a new version of the Reference Manual to cover the AppleII Plus.
The older Reference Manual (affectionately known as the "Red Book") had included an assembly language source code listing of the Monitor ROM. They wanted to include the source for BOTH versions of the Monitor, but a problem came up.
While developing the Monitor, Apple had used a local mainframe computer dial-up service known as "Call Computer." They used a cross-assembler on that computer, assembled the code, and then used the resulting object code to create the ROM. (A cross-assembler is an assembler that creates object code for a processor other than the one the cross-assembler runs on. For example, if you can write 8080 machine code with an assembler running on a 6502-based computer, you are using a cross-assembler).
Unfortunately, Call Computer had accidentally done a system backup with the source and destination disks reversed, erasing all the files containing the source code for the AppleII Monitors. There were no disk or cassette copies of the source code for the Autostart ROM back at Apple. Working from the source listing in the Red Book, John recreated the source file for the original Monitor, and then disassembled his own modifications for the IIPlus and re-created his Autostart ROM source file. Those reconstructed listings are what appeared in the 1981 edition of the AppleII Reference Manual.
Not everyone was pleased with the modifications
made in the Autostart ROMs, however. Some of the authors of the magazine
CALL-A.P.P.L.E. liked to refer to the new computer as the "AppleII Minus",
since Arkley had to remove some of their beloved routines from the ROMs
to make room for the new features. Missing from the AppleII Plus
ROMs were Integer BASIC, the miniassembler, and Woz's SWEET16 interpreter
(that entire space now being used by Applesoft). Missing from the
Monitor were the assembly language STEP and TRACE features, and a set of
sixteen-bit multiply and divide routines.
THE APPLE II PLUS: COST
The new AppleII Plus, at $1,195, sold for over
$100 less than the original AppleII, although it came with more memory
and had Applesoft (previously an added expense item) in ROM.
THE APPLE II PLUS: BELL & HOWELL
Apple made a deal early on with Bell & Howell to let them sell the AppleII Plus with a Bell & Howell name plate on it for use in schools. These Apples were black colored (instead of the standard beige), and had screws on the back to keep the lids on (apparently to keep students' hands out). These Apples (sometimes called "Darth Vader" Apples) also had the "shift-key mod" (see below) applied. Since Bell & Howell was a major supplier of school equipment, this was a means for Apple to get a foothold in the school environment.
Bell & Howell also had electronics correspondence
courses, and used the black AppleII Plus for one of their courses.
They offered a one year warranty, instead of the ninety-day warranty offered
THE APPLE II PLUS: EARLY USER EXPERIENCES
An AppleII veteran on GEnie, Dennis Ulm, kindly
provided me with the following reproduction of his ORIGINAL AppleII Plus
packing list. It gives a little picture of what early non-disk users
had to work with:
APPLE II PLUS
This package should contain the following items:
item no. part number
---- --- ----------- -----------
1 1 600-2023 cassette
tape: LITTLE BRICKOUT, COLOR DEMOSOFT
2 1 600-2024 cassette tape: RENUMBER/APPEND, ALIGNMENT TEST TONE
3 1 600-2025 cassette tape: FINANCE I, PENNY ARCADE
4 1 600-2026 cassette tape: LEMONADE, HOPALONG CASSIDY
5 1 600-2027 cassette tape: BRIAN'S THEME, PHONE LIST
6 1 030-2057 manual: Introductory Programs for the Apple II Plus
7 1 030-0044 manual: The Applesoft Tutorial
8 1 030-0013 manual: Applesoft II BASIC Programming Reference Manual
9 1 030-0004 manual: Apple II Reference Manual
10 1 030-0035 publication: Apple Magazine
11 1 600-0033 1 pair of game controls
12 1 590-0002 cable: to hook up a cassette recorder
13 1 590-0003 cable: power cord for the Apple II Plus
14 1 030-0001 Apple Warranty Card
15 1 600-0816 Apple II Plus System 16K
600-0832 Apple II Plus System 32K
600-0848 Apple II Plus System 48K
LITTLE BRICKOUT was an abbreviated Applesoft version of Woz's Integer BASIC Breakout game (the reason he designed the AppleII in the first place). BRIAN'S THEME was a hi-res graphics program that drew lines on the screen in various patterns. HOPALONG CASSIDY was a "guess who" program that also used the hi-res screen.
Also included in Dennis' IIPlus box was this
photocopied instruction sheet:
TAPE LOADING INSTRUCTIONS
If problems are encountered in LOADing tape programs, it may be necessary to "queue" (sic) the tape before LOADing. To queue a tape, use the following procedure:
1. Rewind the tape.
2. Disconnect the cable from the tape recorder (so you can hear what's on the tape).
3. Start the tape recorder in PLAY mode.
4. When a steady tone is heard, STOP the tape recorder.
5. Connect the cable to the tape recorder and adjust the volume and tone controls on the tape recorder to the recommended levels.
6. Make sure your computer is in BASIC.
7. Type LOAD.
8. START the tape playing.
9. Press RETURN.
The program should LOAD properly. If an error message occurs,
repeat the procedure, but try readjusting the tone and volume controls
on the tape recorder.
Dennis says that in his experience it took
at least five to ten tries to get anything to load properly from tape!
THE APPLE II PLUS: MORE HARDWARE ADD-ONS
Lower-case was still not supported on the new AppleII Plus, though it was a popular user-modification. The thriving industry for AppleII peripherals made up for this shortcoming, with various vendors supplying small plug-in circuit boards that fit under the keyboard, allowing display of lower-case on the screen (and sometimes direct entry of lower-case from the keyboard). By 1981, when the Revision 7 motherboard was released for the AppleII Plus, a different method of character generation was used, which reduced radio-frequency interference that was generated. For Revision 7 boards, lower-case characters could be displayed with the addition of only a single chip. However, unless a user changed the keyboard encoder with a third-party product, only upper-case characters could be typed.
The keyboard itself underwent some changes, both by users and by Apple. The original RESET key was in the upper right-hand corner of the keyboard. The problem with that key was that it had the same feel as the keys around it, making it possible to accidentally hit RESET and lose the entire program that was being so carefully entered. One user modification was to pop off the RESET keycap and put a rubber washer under it, making it necessary to apply more pressure than usual to do a RESET. Apple fixed this twice, once by replacing the spring under the keycap with a stiffer one, and finally by making it necessary to press the CTRL key and the RESET together to make a RESET cycle happen. The keyboards that had the CTRL-RESET feature made it user selectable via a small slide switch just inside the case (some people didn't want to have to press the CTRL key to do a RESET).
Another keyboard limitation was addressed through a modification that became known as the "shift-key mod". This was such a widely used trick that Apple ended up supporting it in hardware when they designed the AppleIIe. Since the II and IIPlus keyboards could not directly generate lower-case characters, early word processing programs had to find some way to make up for that deficiency. Apple's own Apple Writer program used the ESC key as a shift and shift-lock key, displaying upper-case characters in inverse video and lower-case in regular video.
Other programs suggested installing the shift-key
mod to allow more natural entry of upper-case, using the SHIFT key already
present on the keyboard. The user had to attach a wire to the contact
under the SHIFT key, and run it to the game port where the input for push-button
2 was found. (This push-button PB2, $C063 in memory, was for one
of an optional second pair of game paddles that third-party hardware companies
supplied for the AppleII). The program would assume that all letters
being typed were in lower-case, unless the SHIFT key (attached now to paddle
button PB2) was also being pressed; in that case the letter would be entered
as upper-case. Since the PB2 button was not often used for a second
pair of game paddles, it was unlikely that this modification would be accidentally
triggered by pressing one of the game paddle buttons. This modification
did NOT use buttons PB0 or PB1, which were on the first pair of game paddles.
(PB0 and PB1 now correspond to the Open-Apple and Solid-Apple/Option keys
on modern AppleII computers).
Formatting by Ground Apple II FAQs site, 1999