Apple II HistoryCompiled and written by Steven Weyhrich(c) Copyright 1991, Zonker SoftwareSourcehttp://www.blinkenlights.com/classiccmp/apple2history.html31 October 2004TABLE OF CONTENTSPART 01 -- PRE-APPLE HISTORYPART 02 -- THE APPLE IPART 03 -- THE APPLE IIPART 04 -- THE APPLE II, CONT.PART 05 -- THE DISK IIPART 06 -- THE APPLE II PLUSPART 07 -- THE APPLE IIEPART 08 -- THE APPLE IICPART 09 -- DISK EVOLUTION / THE APPLE IIC PLUSPART 10 -- THE APPLE IIGSPART 11 -- THE APPLE IIGS, CONT.PART 12 -- PERIPHERALS & THE APPLE II ABROADPART 13 -- PERIPHERALS, CONT.PART 14 -- DOSPART 15 -- DOS 3.3, PRODOS & BEYONDPART 16 -- LANGUAGESPART 17 -- LANGUAGES, CONT.PART 18 -- SOFTWARE (PART 1 -- PRE-APPLE HISTORY) [v1.1 :: 12 Dec 91]INTRODUCTION This project began as a description of how the Apple II evolved intoa IIGS, and some of the standards that emerged along the way. It has growninto a history of Apple Computer, with an emphasis on the place of theApple II in that history. It has been gleaned from a variety of magazinearticles and books that I have collected over the years, supplemented byinformation supplied by individuals who were "there" when it happened. Ihave tried not to spend much time on information that has been oftenrepeated, but rather on the less known stories that led to the Apple II aswe know it (and love it) today. Along the way I hope to present someinteresting technical trivia, some thoughts about what the Apple II couldhave been, and what the Apple II still can be. The Apple II has beendescribed as the computer that refuses to die. This story tells a littlebit of why that is true. If you are a new Apple II owner in 1991 and use any 8-bit Apple IIsoftware at all, you may feel bewildered by the seemingly nonsensical wayin which certain things are laid out. AppleWorks asks which "slot" yourprinter is in. If you want to use the 80 column screen in Applesoft BASICyou must type an odd command, "PR#3". If you want to write PROGRAMS forApplesoft, you may have some of those ridiculous PEEKs and POKEs to contendwith. The disk layout (which type is supposed to go into which slot) seemsto be in some random order! And then there is the alphabet soup of disksystems: DOS 3.3, CP/M, Pascal, ProDOS, and GS/OS (if you have a IIGS). Ifyou 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-bitprograms will eventually need to use an 8-bit program. If you can toleratea history lesson and would like to know "the rest of the story," I will tryto make sense of it all. I think one of the Apple II's greatest strengths is the attentionthey have paid over the years to be backward compatible. That means that aIIGS "power system" manufactured in 1991, with 8 meg of memory, a hand-heldoptical scanner, CD-ROM drive, and 150 meg of hard disk storage can stillrun an Integer BASIC program written in 1977, probably without ANYmodification! In the world of microcomputers, where technology continuesto 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 complexityand function between the original 4K Apple ][ and the ROM 03 IIGS; theamount of firmware (built-in programs) in the IIGS is larger than theentire 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 thatkeep up with the advances in computer technology between 1976 and thepresent, and yet maintain that compatibility with the past. Other earlycomputer makers found it easy to design improvements that created a bettermachine, but they did so at the expense of their existing user base(Commodore comes to mind, with the PET, Vic 20, Commodore 64, and lastlythe Amiga, all completely incompatible). However, this attention to detailis just one of the things that has made the Apple II the long-livedcomputer that it is. In examining the development of the Apple II, we will take a look atsome pre-Apple microcomputer history, the Apple I, and the formation ofApple Computers, Inc., with some sideroads into ways in which early usersovercame the limits of their systems. We will follow through with thedevelopment of the Apple IIe, IIc, and IIGS, and lastly make some commentson the current state of affairs at Apple Inc. regarding the Apple II.PRE-APPLE HISTORY Let's begin our adventure in history. I've designed a specialinterface card that plugs into slot 7 on an Apple II. It contains an itemits inventor called a "Flux Capacitor" (something about the being able tomodify flux and flow of time). The card derives its power from aself-contained generator called "Mr. Fusion" (another item I dug out of thewreckage from a train/auto accident in California a couple of years ago).Connected to the card via a specially shielded line, Mr. Fusion runs ontrash (and is, therefore, the ultimate computer peripheral, if you recallthe old principal of "garbage in, garbage out"). Let's put a few issues ofPC MAGAZINE into Mr. Fusion, and switch on the Flux Capacitor.(Incidentally, for this to work, it needs an Apple II equipped with aspecially modified Zip chip running at 88 MHz). Boot the disk and set thetime circuits for 1975. Ready? Set? Go! ** CRACKADOOM ** !! Did you make it all right? (Just don't touch anything -- you don'twant to disrupt the space-time continuum, you know!) Now, since the firstApple 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 environmentthat produced it. In 1975, the microcomputer industry was still very muchin its infancy. There were few "home computers" that you can choose from,and their capabilities were very much limited. The first microprocessorchip, the 4-bit 4004, had been released by Intel back in 1971. The firstvideo game, Pong, was created by Nolan Bushnell of Atari in 1972. Also in1972, Intel had gone a step further in microprocessor development andreleased the 8-bit 8008, and then the 8080 in 1973. The year 1974 sawScelbi Computer Consulting sell what some consider to be the firstcommercially built microcomputer, the Scelbi 8-H, based on Intel's 8008chip. However, it had limited distribution and due to the designer'shealth problems it didn't go very far. The first home-built computer, theMark 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 fewhobbyists ever finished their kits. Overall, the microchip had yet to makemuch of an impact on the general public beyond the introduction of thehand-held calculator. With the start of 1975 came a significant event in microcomputerhistory. If you will consider the early microprocessors of the years 1971through 1974 as a time of germination and "pregnancy" of ideas and varioushardware designs, January of 1975 saw the "labor and delivery" of a specialpackage. The birth announcement was splashed on the front cover of ahacker's magazine, Popular Electronics. The baby's parents, MITS, Inc.,named it "Altair 8800"; it measured 18-inches deep by 17 inches wide by 7inches high, and it weighed in at a massive 256 bytes (that's one fourth ofa "K"). Called the "World's First Minicomputer Kit to Rival CommercialModels," the Altair 8800 used the Intel 8080 chip, and sold for $395 (or$498 fully assembled). MITS hoped that they would get about four hundredorders for clones of this baby, trickling in over the months that thetwo-part article was printed. This would supply the money MITS needed tobuy the parts to send to people ordering the kits (one common way thosedays of "bootstrapping" a small electronics business). This "trickle" oforders would also give MITS time to establish a proper assembly line forpackaging the kits. However, they misjudged the burning desire of PopularElectronic's readers to build and operate their own computer. MITSreceived four hundred orders in ONE AFTERNOON, and in three weeks it hadtaken in $250,000.<1> The Popular Electronics article was a bit exuberant in the way theAltair 8800 was described. They called it "a full-blown computer that canhold its own against sophisticated minicomputers now on the market... TheAltair 8800 is not a 'demonstrator' or souped-up calculator... [it] is acomplete system." The article had an insert that lists some possibleapplications for the computer, stating that "the Altair 8800 is sopowerful, in fact, that many of these applications can be performedsimultaneously." Among the possible uses listed are an automated controlfor a ham station, a digital clock with time zone conversion, an autopilotfor planes and boats, navigation computer, a brain for a robot, apattern-recognition device, and a printed matter-to-Braille converter forthe blind.<2> Many of these things will be possible with microcomputers by1991, but even by then few people will have the hardware add-ons to makesome of these applications possible. Also, despite the power that microswill have in that year, the ability to carry out more than one of theseapplications "simultaneously" will not be not practical or in some caseseven possible. The exaggeration by the authors of the Popular Electronicsarticle can perhaps be excused by their excitement in being able to offer acomputer that ANYONE can own and use. All this was promised from acomputer that came "complete" with only 256 bytes of memory (expandable ifyou can afford it) and no keyboard, monitor, or storage device. The IMSAI 8080 (an Altair clone) also came out in 1975 and did fairlywell in the hobbyist market. Another popular early computer, the Sol,would not be released until the following year. Other computers releasedin 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 (MicrocomputerAssociates), all kits.<3> The entire microcomputer market was still verymuch a hobbyist market, best suited for those who enjoyed assembling acomputer from a kit. After you assembled your computer, you either had towrite your own programs (from assembly language) or enter a program someoneelse wrote. If you could afford the extra memory and the cost of buying aBASIC interpreter, you might have been able to write some small programsthat ran in that language instead of having to figure out 8080 assemblylanguage. If you were lucky (or rich) you had 16K of memory, possiblymore; if you were REALLY lucky you owned (or could borrow) a surplus papertape reader to avoid typing in manually your friend's checkbook balancingprogram. Did I say typing? Many early computer hobbyists didn't even havethe interface allowing them to TYPE from a keyboard or teletype. The"complete" Altair 8800 discussed above could only be programmed by enteringdata via tiny little switches on its front panel, as either octal (base 8)bytes or hexadecimal (base 16) bytes. With no television monitor availableeither, the results of the program were read in binary (base 2) from lightson that front panel. This may sound like the old story that begins withthe statement, "I had to walk five miles to school through snow three feetdeep when I was your age," but it helps to understand how things were atthis time to see what a leap forward the Apple II really was (er, will be.Time travel complicates grammar!)++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple I++++++++++++++++++++++++++++++ NOTES <1> Steven Levy, HACKERS: HEROES OF THE COMPUTER REVOLUTION, pp. 187-192. <2> H. Edward Roberts and William Yates, "Altair 8800 Minicomputer, Part 1", POPULAR ELECTRONICS, January 1975, pp. 33, 38. The article is interesting also in some of the terminology that is used. The Altair is described as having "256 eight-bit words" of RAM. Apparently, the term "byte" was not in common use yet. <3> Gene Smarte and Andrew Reinhardt, "15 Years of Bits, Bytes, and Other Great Moments", BYTE, September 1990, pp. 370-371. This is the ENTIRE series of articles that make up the Apple IIHistory. They are readable in either AppleWorks 2.x or 3.0, but willrequire an expanded desktop for some segments. Please feel free to make comments (on GEnie's A2 Roundtable, Category2, 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 aboutit. I would like to have as accurate a history as possible. If you would like to print any of these files in a user groupnewsletter, 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 sendme a copy of any newsletter in which it is printed. My address is: Steven Weyhrich Zonker Software 2715 N. 112th St. Omaha, NE 68164-3666 (402) 498-0246 Enjoy! APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 2 -- THE APPLE I) [v1.1 :: 12 Dec 91]THE APPLE I: DEVELOPMENT At the Homebrew Computer club in Palo Alto, California (in SiliconValley), Steve Wozniak, a 26 year old employee of Hewlett-Packard and along-time digital electronics hacker, had been wanting to build a computerof his own for a long time. For years he had designed many on paper, andeven written FORTRAN compilers and BASIC interpreters for these theoreticalmachines, but a lack of money kept him from carrying out his desire. Helooked at the Intel 8080 chip (the heart of the Altair), but at $179decided he couldn't afford it. A decision to NOT use the 8080 wasconsidered foolhardy by other members of the club. Consider thisdescription 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."<1> Another chip, the Motorola 6800, interested Wozniak because itresembled his favorite minicomputers (such as the Data General Nova) morethan the 8080. However, cost was still a problem for him until he and hisfriend 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 choiceof processor to the 6502 and began writing a version of BASIC that wouldrun on it. A friend over at Hewlett-Packard programmed a computer tosimulate the function of the 6502, and Wozniak used it to test some of hisearly routines. When his BASIC interpreter was finished, he turned hisattention to designing the computer he could run it on. Except for somesmall timing differences, he was able to use the hardware design he hadearlier done on paper for the 6800.<2> To make the computer easier to use, Wozniak favored a keyboard overthe front panel switches that came on the Altair. He also made it simpleto use a television for a video terminal. (Recall that at this time themost common mechanism used for input/output was a teletype, which consistedof a keyboard, typewriter, and if you were lucky, a paper tapereader/puncher). Functionally, it was a television terminal attached to acomputer, all on one printed circuit board (another enhancement over theAltair). Wozniak used two 256 x 4 PROM (programmable read-only memory)chips to create a 256 byte program (called a "monitor") that looked at thekeyboard when the computer was turned on. This monitor program could notdo much more than allow entry of hex bytes, examine a range of memory, andrun a program at a specific address.<3> (The Altair needed these"bootstrapping" instructions to be entered by hand each time the computerwas turned on). Because there were no cheap RAMs available, Woz used shift registersto send text to the TV screen. Consequently, his video terminal wassomewhat slow, displaying characters at about 60 characters per second, onecharacter per scan of the TV screen. (This speed would be similar towatching a computer communicate via a modem at 1200 baud). It was slow by1991 standards, but an advancement over the teletypes that could only type10 characters per second. The computer had 8K of dynamic RAM. You couldload 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 DIPconnector. The power supply had to be connected to two transformers to get5 volts and 12 volts for the motherboard. There was no speaker, nographics, and no color. There was a single peripheral slot, and when itwas first released there was nothing available to plug into this slot. Itwas entirely contained on a single printed circuit board, about six byeight inches in size (most hobby computers of that time needed at least twoboards), used only 30 or 40 chips, and because it could run BASIC programsit got people's attention.<4>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 woulddisplay enhancements or modifications at the bi-weekly Homebrew ComputerClub meetings. Steve Jobs was a 21 year old friend of Wozniak's and also avisitor at the Homebrew club. He had worked with Wozniak in the past(together they designed the arcade game "Breakout" for Atari) and was veryinterested in his computer. During the design process Jobs madesuggestions that helped shape the final product, such as the use of thenewer dynamic RAMs instead of older, more expensive static RAMs. Hesuggested to Wozniak that they get some printed circuit boards made for thecomputer and sell it at the club for people to assemble themselves. Theypooled their financial resources together to have PC boards made, and onApril 1st, 1976 they officially formed the Apple Computer Company. Jobshad 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 nutritionalcontent, it comes in a nice package, it doesn't damage easily--and hewanted Apple to be the perfect company. Besides, they couldn't come upwith a better name."<5> Jobs approached the owner of a new computer store in the bay areacalled "The Byte Shop." This businessman, Paul Terrell, expressed aninterest in the Apple Computer (to be known later as the "Apple I"), butwanted 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 considerablymore than they expected. Jobs and Wozniak managed to get the parts on "net30 days" (30 days credit without interest), and set themselves up in Job'sgarage for assembly and testing of the Apple I. After marathon sessions ofstuffing and soldering PC boards, Jobs delivered the computers to the ByteShop. Although these "fully assembled" computers lacked a power supply,keyboard, or monitor, Terrell bought them as promised. In July of 1976 theApple I was released and sold for $666.66, which was about twice the costof the parts plus a 33% dealer markup.<6> Two hundred Apple I computerswere manufactured, and all except twenty-five of them sold over a period often months.<7> Although the Apple I was easier to begin using than the Altair(thanks to its built-in ROM code), it was still a time consuming process toset it up to do something useful. Steve Wozniak would have to type inabout 3K of hexadecimal bytes before BASIC was ready to use. He could doit in about 20 to 30 minutes, but he almost knew the code by heart. Thetypical user was more limited in ability to use BASIC on the Apple I. Tobroaden the appeal of the Apple I (and at the insistence of Paul Terrell),Wozniak designed a cassette interface. It was mounted on a smalltwo-inch-high printed circuit board and plugged into the single slot on themotherboard. The card sold for $75 and a cassette tape of Woz's BASIC wasincluded with it. The advertisement Apple included with the card stated,"Our philosophy is to provide software for our machines free or at minimalcost." The interface worked, but worked well only with cassettes runningon expensive tape recorders. To further try to enhance sales, the ByteShop stores found a local cabinetmaker that made some koa-wood cases forthe Apple computer (so it would no longer be just a "naked" circuitboard).<8> Interestingly, although most of the action in the micro world wasgoing on in Silicon Valley, news of the Apple I made its way east. StanVeit, owner of the east coast's first computer store, bought an Apple I andtook it to a meeting of the Association of Computer Machinery. Thoseattending were quite skeptical that a REAL computer could fit into a smallbriefcase; they were sure that the machine was just a portable terminal,attached by a hidden phone line to a mainframe somewhere!<9>+++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple II+++++++++++++++++++++++++++++++ NOTES <1> Michael Moritz, THE LITTLE KINGDOM, p. 123. <2> Moritz, pp. 124-127. <3> Williams & Moore, p. A69. <4> Gregg Williams and Rob Moore, "The Apple Story, Part 1: Early History", BYTE, Dec 1984, pp. A68-A69. <5> Frank Rose, WEST OF EDEN: THE END OF INNOCENCE AT APPLE COMPUTER, p. 33. <6> Moritz, pp. 138-144. <7> Williams & Moore, pp. A69. <8> Moritz, pp. 147-149. <9> Chien, Philip, "Apple's First Decade: A Look Back", THE APPLE II REVIEW, Fall/Winter 1986, p. 12. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 3 -- THE APPLE II) [v1.1 :: 12 Dec 91]THE APPLE II: HARDWARE AND FIRMWARE Moving our time machine on to 1977, we can now look at SteveWozniak's next generation Apple. Even as the Apple I was completed and wasslowly selling, Wozniak was already working on making enhancements thatwould make his computer faster and more functional. He wanted to make itdisplay in color. He worked to combine the terminal and memory functionsof the Apple I by moving the display into main memory, allowing instantscreen changes. Many of his changes were not added with the end userspecifically in mind. Wozniak stated: "A lot of features of the Apple II 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 Apple II. 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 Apple II 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."<1> Wozniak added other features that he felt were important for acomputer that was useful, one that he would want to own. Since the 6502processor could address a total of 64K of memory, he designed the computerwith the ability to use either 4K RAM chips, or the newer (and moreexpensive) 16K RAM chips. The first Apple II's came standard with 4K ofmemory, and more could be added, to a maximum of 12K (if using the 4Kchips) or 48K (if using the 16K chips). Specially wired strapping blocksattached to the motherboard told the Apple II how much memory was presentand where it was. According to the 1981 edition of the APPLE II REFERENCEMANUAL, 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 bythe different ways that three RAM chips, either 4K or 16K, could beinstalled). The strapping blocks were even designed with the flexibilityof allowing blank spots in memory if there were no RAM chips available tofill those spots. The first 4K of memory always had to have RAM present, since it wasused 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 youwanted to display hi-res graphics, you could strap one chip to the lowerhalf of hi-res memory from $2000-$2FFF, and the other to the upper half ofhi-res memory from $3000-$3FFF.<2> Since 16K RAM chips cost about $500when Wozniak designed the Apple II, not many users could afford them. Whereas the Commodore PET and the Radio Shack TRS-80 could not easily beexpanded beyond the 4K they came with, the Apple II from the beginning wasdesigned with expansion in mind.<3> The row of eight expansion slots was another feature about theApple II that was a strong selling point. Unlike the TRS-80 or PET, youcould easily expand the Apple II by simply plugging a card into one ofthese slots. This degree of expandability made it more expensive to build,however. Steve Jobs didn't believe that anyone would ever need more thantwo slots, one for a printer and one possibly for a modem. Wozniak knewfrom his experience with computers at Hewlett-Packard that computer userswould always find SOMETHING to fill those extra slots, and insisted thatthey keep the number at eight.<4> One problem Apple had to deal with was getting FCC approval for thecomputer. The RF (radio frequency) modulator that had been designed gaveoff too much interference, and it was probable that the FCC would notapprove it. (The RF modulator allowed a user to attach the Apple to astandard television receiver, instead of requiring the purchase of anexpensive computer monitor). Rather than have the release of the Apple IIdelayed for re-engineering of the RF modulator to get that FCC approval,Apple gave the specifications for the RF modulator to Marty Spergel. Heran a small company (called M&R Electronics) that specialized in obtaininghard-to-get parts that electronics and computer hackers wanted for theirprojects. Their agreement allowed M&R to make and sell the RF modulators,while Apple could concentrate on making and selling the Apple II. Dealerswould sell an Apple II with a "Sup'r Mod" (costing about $30) if the buyerwanted to see the graphics on their color TV. Jobs assured Spergel thatthe item would sell well, maybe as many as fifty units a month. (Yearslater Spergel estimated that he had sold about four hundred thousand Sup'rMods).<5> Other features that Wozniak (and Allen Baum, who helped him with theproject) included in the Apple II ROMs included the terminal software to doscreen text display, expanded Monitor functionality, and cassetteinput/output routines. They added the ability to split the screen intodifferent sized windows. They also wrote a disassembler, which was one ofthe most important features of the Apple II from the beginning and asignificant part of its open design. It allowed ANYONE to view the 6502code that ANY program used, and matched the philosophy of the Homebrew Clubof making all computer knowledge available to everybody. In the Apple Idays, when Apple was supplying software "free or at minimal charge",Wozniak and Baum published an early version of their 6502 disassembler in ahacker's magazine. It was designed to be loaded in memory on the Apple Ifrom $800 to $9D8 and the routine could be executed from the monitor. Thisearly code was quit similar to the disassembler that was later included inthe Apple II ROM.<6> Having an expanded Monitor program in ROM and color graphics were notthe only features in the Apple II that attracted people to it. HavingWozniak's BASIC language in ROM, available immediately when the power wasturned on, made it possible for non-hackers to write programs that used theApple II's color graphics. An interesting bit of trivia about Wozniak's Integer BASIC was thathe never had an assembly language source file for it. He wrote it inmachine 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 Apple II'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."<7> Even to this day there is not an official source code listing ofInteger BASIC at Apple. And interestingly, the only error I am aware of inthe Integer interpreter is one involving a single byte. If a line isentered that has too many parentheses, the "TOO LONG" error message isdisplayed instead of the "TOO MANY PARENS" message.<8>NOW A WORD FROM OUR SPONSOR: BACK TO THE BASICS... I want to take a short break in this discussion of the Apple IIfirmware to look at some other items that will make further descriptionseasier to understand. If you are a programmer already, you may want toskip this section, since you probably already know this stuff. First wewill examine some definitions of terms that are commonly known toprogrammers, but possibly not to you. Next will be a brief excursion intothe realm of hexadecimal, and finally a look at the memory map of theoriginal Apple II. First, let's look at definitions of some words that I have beenloosely 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 Apple II 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. Sincecomputers deal in binary (base 2), the true language of computers is eitherin terms of "0" (off) or "1" (on). However, it quickly becomes cumbersometo refer to large numbers in binary; the base 10 number "458" is"111001010" in binary. So programmers have decided to group numbers insuch a way as to make it easy to convert part or all of that number tobinary if necessary, but still have numbers (almost) as easy to deal withas our standard base 10 system. Now, in the familiar base 10 system there are ten digits, 0 through9. When counting, after you pass 9, you add one to the digit to the leftof 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 sixteendigits, 0 through 9, and then A through F (representing decimal 10 through15). 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 apreceding dollar sign to signify a hexadecimal number, so "25" meanstwenty-five, but "$25" means thirty-seven (2 x 16, plus 5). To translate ahexadecimal 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 = 46687 The same thing can be done in reverse to convert base 10 tohexadecimal, starting by dividing the number by 4096, then the remainder by256, then 16. If the number is greater than 65536, you need a bigger powerof 16 (and you are probably not dealing with an 8-bit Apple II!) Or youcan just get a programmer's calculator like mine that automatically doesthe conversion for you... When dealing with memory addresses on an Apple II, we usuallydesignate them as four digit hex numbers (such as the $B65F example above). Numbers less than $1000 often are printed without the leading blank ($400instead of $0400), and numbers less than $100 are treated the same way ($32instead of $0032).THE APPLE II: MEMORY MAP To understand the memory layout of the Apple II, consider thisanalogy: Imagine a cabinet with sixteen shelves, and sixteen separateslots or pigeon holes on each shelf (similar to those found in old roll-topdesks). 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 eightbits wide, the largest number that can be represented by eight binary bitsis 255). The bottom shelf is row "0", and the leftmost slot in that row isslot "0". The address of that slot, then, is $00. As we move to theright, 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 thesame fashion with $10, $11, $12, and so on as before. The sixteenth row isrow "F", the rightmost slot in that row is slot "F", and the address ofthat slot is $FF. This cabinet has, then, 256 slots (16 x 16), andrepresents what is called a "page" in the Apple memory. The cabinet itselfhas an address (since computers need addresses for everything), and thisone'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 haveto account for the entire 64K memory space that the 6502 chip in theApple II 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"; thiscontinues on up until we reach cabinet "FF" way up at the top. Appleprogrammers refer to these cabinets as "pages" of memory. There are 256pages of memory, each with 256 bytes on a page, making a grand total of 256x 256 = 65536 bytes of memory (or slots that can hold a number, if youprefer the analogy). In discussing the memory map on the Apple II, we can refer to pagesof memory with a hexadecimal two-digit number for shorthand if we wish. The general layout of the Apple II memory is as follows: 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 Apple II 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 softswitchesPages $C1-$C7: ROM assigned to each of the seven peripheral cardsPages $C8-$CF: switchable ROM available for any of the seven cardsPages $D0-$D7: empty ROM socket #1Pages $D8-$DF: empty ROM socket #2Pages $E0-$F7: Integer BASIC ROMPages $F8-$FF: Monitor ROM The memory space on the Apple II between $C000 and $CFFF was assignedto handle input and output. From $C000 to $C0FF the space was reserved forvarious soft-switches used to control the display, and various built-in I/Odevices, such as the keyboard, paddles, annunciators, and the cassetteport. (A soft-switch is simply a memory location that, when a number isstored there, changes something in the computer--such as switching ongraphics mode). From $C100 to $CFFF the space was reserved for ROM on theplug-in peripheral cards for each of the seven slots. Slot 1 was given thespace 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 uniquelyavailable for each of the seven peripheral cards. For example, a programrunning on the card in slot 6 to control a device could use the $C800-$CFFFspace for its own purpose. When control passed to the card in slot 3, thatcard 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 coveredpages $C8-$CF, and making that space "switchable", depending on which cardwanted to use it. Having this space available made writing ROM codesimpler, since it would not have to be capable of running at various memorylocations (depending on which slot a card was plugged into). The memory from $D000 to $D7FF and $D800 to $DFFF was empty on allearly Apple II computers. On the motherboard were two empty sockets thatwere 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 IntegerBASIC 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 Apple II 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 byWozniak between June 1977 (the RAM test routine) and April 1978 (programrenumber and append), except for the music routine, which was written byGary Shannon. The other empty ROM socket (covering memory from $D800 to $DFFF) wasnever filled by Apple. Various third-party vendors sold ROMs for thatsocket (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 thatwould 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 ofthat same space taken directly from the Applesoft ROM! It is completelyuseless 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 $E000and $F7FF. However, BASIC only used the space up to $F424. Between$F425-$F4FB and $F63D-$F65D could be found a floating-point math packagethat was not used by Integer BASIC, but was available for BASIC programmerswho were astute enough to figure out how it worked. (An early Apple usergroup, the Apple Pugetsound Program Library Exchange, or A.P.P.L.E., sold atape and notes by Steve Wozniak they called "Wozpak", that documented someof the secrets of the Integer BASIC ROM). Between $F500-$F63C there wascode that was known as the "miniassembler", which was executed starting atthe ominous address $F666. The miniassembler allowed you to enter shortmachine language programs using the standard 6502 mnemonics (the threeletter codes that referred to a specific type of operation; for example,"LDA #" represented the 6502 opcode $A9) instead of entering the programbyte by byte in the monitor. The $F689-$F7FC space contained Woz'sSWEET 16 interpreter. Wozniak wrote SWEET 16 to simulate a 16-bitprocessor; it simplified some routines he wrote for the Apple II 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" theway HE wanted them to function, and when executing the code used hisSWEET 16 interpreter to translate the code into legal 6502 operations. Itran slower than standard 6502 code, but when memory space was at a premiumit was better to have a slow program than to not have enough room for theprogram at all. For those who are keeping count, there are a few unreferenced bytesin the latter part of the Integer ROM. Those bytes contained filler bytesthat were not used as any program code.<9>,<10>,<11> The last part of the Apple II memory, from $F800-$FFFF, containedWozniak's Monitor program which has already been discussed above.++++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple II, cont.++++++++++++++++++++++++++++++++++++++ NOTES <1> Jack Connick, "...And Then There Was Apple", CALL-A.P.P.L.E., Oct 1986, p. 24. <2> -----, "Memory Organization", APPLE II REFERENCE MANUAL, 1979, 1981, pp. 70-73. <3> Val J. Golding, "Applesoft From Bottom To Top", CALL-A.P.P.L.E. IN DEPTH #1, 1981, p. 8. <4> Michael Moritz, THE LITTLE KINGDOM, p. 157. <5> Steven Levy, HACKERS: HEROES OF THE COMPUTER REVOLUTION, pp. 260-261. <6> Steve Wozniak and Allen Baum, "A 6502 Disassembler From Apple", Dr. Dobb's Journal of Computer Calisthenics & Orthodontia, Sep 1976, pp. 22-25. <7> Jack Connick, p. 23. <8> Christopher Volpe, "Beep: A Tale of (T)ERROR", CALL-A.P.P.L.E., Mar 1983, p. 114. <9> Bob Bragner, "Open Discussion", SOFTALK, Nov 1983, pp. 51-52. <10> -----, PROGRAMMER'S AID #1, 1978. <11> Dick Sedgewick, "SWEET 16 - Introduction", MERLIN USER'S MANUAL, 1982, pp. 103-109. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 4 -- THE APPLE II, CONT.) [v1.1 :: 12 Dec 91]THE APPLE II: OTHER DESIGN FEATURES Since Steve Wozniak was the designer of the Apple I and II, exactlywhat contribution did Steve Jobs make to the effort? Unlike Wozniak, whowould not think much of extra wires hanging out of a computer that workedproperly, Jobs had an eye for the appearance of the final product. Hewanted the Apple II to be a product that people outside the HomebrewComputer 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."<1> The final case design made the Apple II look quite different frommost of their competition. The other computers looked like they had beenassembled at home (and many of them were). The Apple had no visible screwsor bolts (the ten screws attached at the bottom). It had the appearance ofsome variation of a typewriter, but still looked futuristic enough to be acomputer. The friendliness of the design even extended to the lid, whichpopped off easily to allow access to the expansion slots, almost invitingthe user to look inside (unlike most electronic devices that held thewarning "CAUTION! NO USER SERVICEABLE PARTS INSIDE").<2> Other aesthetics to which Jobs paid attention were the color of thekeyboard, 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 ona desk. He also hired an engineer who was good with analog circuitry (notWozniak's area of interest) to design a reliable, lightweight power supplythat would stay cool. The engineer, Rod Holt, was working at Atari at thetime, but was convinced to help Jobs and Wozniak. He developed a newapproach (for microcomputers) by taking household current and switching iton and off rapidly, producing a steady current that was safe for theexpensive memory chips. The final design of this switching power supplywas smaller than a quart carton of milk and was quite reliable. Holt alsohelped design the television interface for the Apple II.<3> The new company was racing to have the Apple II ready for the FirstWest Coast Computer Fair in April of 1977. Some last minute bugs had to beeliminated; because of a static electricity problem affecting a sensitivechip, the keyboards went dead every twenty minutes. Chris Espinosa andRandy Wigginton, two high school students who were early employees ofApple, 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 thathad returned from the plastics molding company. The name for this newcomputer was also finalized as "Apple II", following the example of DigitalEquipment Company, who had given each newer version of its PDP series ahigher number (PDP-1, PDP-6, etc.). They stylized the "II" in the productname by using right and left brackets, and displaying it on the case as"][". The final product bore the mark of each person at Apple: "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."<4>THE APPLE II: PRODUCT INTRODUCTION As they prepared for the display at the First West Coast Faire, itwas decided to create a new corporate logo. The original one, used insales of the Apple I, was a picture of Isaac Newton sitting under an appletree, with a phrase from Wordsworth: "Newton...'A Mind Forever VoyagingThrough Strange Seas of Thought...Alone.'" Jobs had been concerned thatthe logo had part of the slow sales of the Apple I, and the Regis McKennaAgency 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."<5> For the Faire, Markkula had ordered a smoky, backlit, illuminatedplexiglas sign with the new logo. Although Apple had a smaller booth thanother companies displaying their products at the Faire, and some of theother microcomputer makers (Processor Technology, IMSAI, and Cromemco) hadbeen in business longer, Apple's booth looked far more professional, thanksto Markkula's sign. Some of the other participants, companies larger thanApple, had done no more than use card tables with signs written in blackmarkers. Because they had been one of the first to commit themselves todisplaying at the Faire, Apple's booth was near the entrance and wasvisible to everybody entering the convention center. They demonstrated akaleidoscopic video graphics program (possibly an early version of "BRIAN'STHEME") on a huge Advent display monitor, catching everybody's attention. But, after the Faire its organizer Jim Warren (Homebrew club member andeditor of DR. DOBB'S JOURNAL) didn't think that Apple was a strongexhibitor. Byte magazine, in their report of the show, failed to evenmention Apple. Despite these early opinions by influential people, overthe next few months Apple received about three hundred orders for theApple II, over a hundred more than the total number of Apple I's sold.<6>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 abit less than the Apple II's premium price of $1,298 for a 4K computer, apair of game paddles, and an audio cassette with demo programs. This pricedid not include a cassette recorder or monitor (which both the PET andTRS-80 did include). The hardware limitations and lack of expandability ofthose machines, however, offset some of the price difference. Also, oneother hardware introduction for the Apple II that happened in mid-1978 setit well ahead of its immediate competitors; we'll get to that shortly.THE APPLE II: EXPERIENCES OF EARLY USERS The original manual for the Apple II was sparse. It consisted ofthirty photocopied pages, including some handwritten notes from Woz. Thecover stated, "simplicity is the ultimate sophistication: introducingApple ][, the personal computer." In early 1978 these original photocopiedmanuals were replaced with the new "Apple II Technical Reference Manual"(also known as the "Red Book"), and copies were mailed to previouscustomers. Steve Jobs realized that people often viewed the quality of aproduct by the quality of its documentation, and so he took pains to getmanuals that were easy to read and had a professional appearance.<7> Setting up an early Apple II was fairly simple. The lid popped offeasily, and one of the first things you would attach was the Sup'r Mod (RFmodulator). This was plugged onto two pins sticking up from the back rearof the motherboard, near the video output jack (assuming that you did notalso buy a REAL computer monitor). The game paddles were two small blackboxes, with a knob on the top attached to a potentiometer (similar tovolume controls on a radio) and a tiny black button on the side. Theseboxes 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) tothe input and output jacks in the back of the computer. After turning on the Apple II, the first thing to greet you was ascreen full of random alphabetic characters and symbols, and possibly somecolored blocks (lo-res graphics mode might be turned on). Here you had topress 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 inthe bottom left-hand corner of the screen. (If the lo-res graphics modehad been on, it would now be off). Next to the asterisk (which was aprompt to show that you were in the Monitor) was a flashing box, thecursor. To get into BASIC, you had to press the "Ctrl" key and the "B" keysimultaneously. Now you would see a different prompt, one that looked likea ">". At this point, you could either begin entering a BASIC program, ortry 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 playerin order to avoid getting the "ERR" or "*** SYNTAX ERR" message. (And ifyou 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 DOwith your new toy.<8>THE APPLE II: EARLY HARDWARE ADD-ONS Aside from the M&R "Sup'r Mod" that allowed early Apple II users torun their computer on their color TV's, some other enterprising hackersdesigned their own versions of modulators. One used by an early member ofan Apple user group in Washington State (Apple Pugetsound Program LibraryExchange, 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 theback of the Apple. The "Sup'r Mod" was by far the biggest seller,however.<9> 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) therewas not much they could afford after shelling out anywhere from $1200 to$1800 just to get their own Apple II. But they were innovative, and likemany other hardware hackers of the day managed to make do with old orsurplus parts. Some people, for instance, had gotten their hands on usedteletype printers, such as the ASR-33 (called "battleships" because theywere so rugged and heavy). Since there weren't any printer interface cardsto plug into the slots to allow the computer to communicate with theteletype, they used a trick they learned from Woz himself. The Apple IIhad four single-bit output pins on the game controller socket that could beused for various purposes. A schematic floated through the various usergroups that showed how to connect the teletype to an annunciator pin; alongwith it was a machine language program that re-directed output from thescreen to that one-bit port, and on to the printer.<10>++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Disk II++++++++++++++++++++++++++++++ NOTES <1> Michael Moritz, THE LITTLE KINGDOM, p. 186. <2> Steven Levy, HACKERS: HEROES OF THE COMPUTER REVOLUTION, pp. 263-264. <3> Moritz, p. 189. <4> Moritz, pp. 190-191. <5> Moritz, p. 188. <6> Moritz, pp. 192-193. <7> Philip Chien, "The First Ten Years: A Look Back", THE APPLE II REVIEW, Fall/Winter 1986, p. 12. <8> -----, APPLE II BASIC PROGRAMMING MANUAL, 1978, 1979, 1980, 1981, pp. 1-19. <9> -----, "A.P.P.L.E. Co-op Celebrates A Decade of Service", CALL-A.P.P.L.E., Feb 1988, pp. 12-27. <10> Val J. Golding, "Applesoft From Bottom To Top", CALL-A.P.P.L.E. IN DEPTH #1, 1981, p. 8. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 5 -- THE DISK II) [v1.1 :: 12 Dec 91]THE DISK II Let's put some more trash into Mr. Fusion to fuel the next leg of ourtrip. How about one of those KIM-1 computers over there in the corner ofthe Computer Faire auditorium? We might have to break it up a bit to makeit fit ... Okay, now we'll just make a small jump, to December of 1977. Bythis time the Apple II had been generally available for about six months. Most customers used their television as an inexpensive color monitor, andused a cassette recorder to store and retrieve their programs and data. Apple's major competitors were the TRS-80 and the Commodore PET. Theproducts made by these two companies, together with Apple, could beconsidered as the second generation of microcomputers; they all came fullyassembled and ready to use out of the box, with a keyboard and cassetteinterface. The TRS-80 and the PET even came with a monitors and cassetterecorders. The strength of the Apple was expandability and graphics, whilethe strength of the others was cost (both the TRS-80 and the PET sold foraround $600, half the price of the Apple II). 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 ofthe slots on the motherboard. But the Apple II still needed something tomake it more attractive to buyers, to stand out above the TRS-80 and thePET. One area that needed improvement was its program and data storage andretrieval system on cassette; it was a continued source of frustration formany users. The cassette system used on the TRS-80 was more sophisticatedthan that of the Apple II, allowing named files and easier storage of filesand data on the same tape. On the Apple II it took VERY careful adjustmentof the volume and tone controls on the cassette recorder to get programs ordata to successfully load. The Apple cassette system also needed carefulattention to the location on the tape where a program was stored, and wasno more accurate than the number on the recorder's mechanical tape counter(if it had one). Apple president Mike Markkula was one Apple II user that wasdissatisfied with cassette tape storage. He had a favorite checkbookprogram, but it took two minutes to read in the program from the tape, andanother two minutes to read in the check files.<1> Consequently, at theexecutive board meeting held in December 1977 he made a list of companygoals. At the top of the list was "floppy disk". Although Wozniak didn'tknow much about how floppy disks worked, he had once looked through amanual 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."<2> Other issues that Wozniak had to deal with involved a way to properlytime the reading and writing of information to the disk. IBM used acomplex hardware-based circuit to achieve this synchronization. Wozniak,after studying how IBM's drive worked, realized that if the data waswritten to the disk in a different fashion, all that circuitry wasunneeded. 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 ofthe disk was passing under the read/write head at any particular time. Wozniak's technique would allow the drive to do self-synchronization ("softsectoring"), not have to deal with that little timing hole, and save onhardware. Wozniak asked Randy Wigginton for help in writing some software tocontrol the disk drive. During their week of Christmas vacation in 1977they worked day and night creating a rudimentary disk operating system,working hard to get the drive ready to demonstrate at the ConsumerElectronics Show in the first week of 1978. Their system was to allowentry of single letter commands to read files from fixed locations on thedisk. However, even this simple system was not working when Wozniak andWigginton left for the show. When they got to Las Vegas they helped to set up the booth, and thenreturned to working on the disk drive. They stayed up all night, and bysix in the morning they had a functioning demonstration disk. Randysuggested making a copy of the disk, so they would have a backup ifsomething went wrong. They copied the disk, track by track. When theywere done, they found that they had copied the blank disk on top of theirworking demo! By 7:30 am they had recovered the lost information and wenton to display the new disk drive at the show.<3>,<4> Following the Consumer Electronics Show, Wozniak set out to completethe design of the Disk II. For two weeks, he worked late each night tomake a satisfactory design. When he was finished, he found that if hemoved a connector he could cut down on feedthroughs, making the board morereliable. 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 thatcould be eliminated, and again started over on his design. "The finaldesign was generally recognized by computer engineers as brilliant and wasby engineering aesthetics beautiful. Woz later said, 'It's something youcan 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.'"<5>THE DISK II: COST The Disk II was finally available in July 1978 with the first fullversion of DOS, 3.1. It had an introductory price of $495 (including thecontroller card) if you ordered them before Apple had them in stock;otherwise, the price would be $595. Even at that price, however, it wasthe least expensive floppy disk drive ever sold by a computer company. Early production at Apple was handled by only two people, and they producedabout thirty drives a day.<6>,<7> Apple bought the drives to sell with Woz's disk controller fromShugart, right there in Silicon Valley. To cut costs, however, theydecided to go to Alps Electric Company of Japan and ask them to design aless 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 Apple II 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."<8>++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple II Plus++++++++++++++++++++++++++++++++++++ NOTES <1> Gregg Williams and Rob Moore, "The Apple Story, Part 2: More History And The Apple III", BYTE, Jan 1985, pp. 167-168. <2> Paul Freiberger and Michael Swaine, "Fire In The Valley, Part Two (Book Excerpt)", A+ MAGAZINE, Jan 1985, p. 45. <3> Williams and Moore, "Part II", p. 168. <4> Freiberger and Swaine, (Part Two), p. 45. <5> Freiberger and Swaine, (Part Two), p. 46. <6> -----, "A.P.P.L.E. Co-op Celebrates A Decade of Service", CALL-A.P.P.L.E., Feb 1988, pp. 12-27. <7> -----, "Apple and Apple II History", THE APPLE II GUIDE, Fall 1990, pp. 9-16. <8> Frank Rose, WEST OF EDEN: THE END OF INNOCENCE AT APPLE COMPUTER, 1989, pp. 62. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 6 -- THE APPLE II PLUS) [v1.1 :: 12 Dec 91]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 late1978 of an improved version. It was needed by those wanting to write anduse applications that needed the capability of floating-point math. Because of this, Apple engineers had begun working in 1978 on the Apple IIPlus, a modest enhancement to the Apple II. The main attraction of thisnewer Apple would be Applesoft in ROM, available immediately without havingto load it from cassette or disk. Also, having it in ROM would move it outof the part of memory where RAM Applesoft conflicted with hi-res graphics(after all, Applesoft had commands specifically written into it formanipulating those graphics, something that Integer BASIC could only do viaspecial CALLs to the routines in the Programmer's Aid #1 chip). With the decision made to upgrade the Apple II, other changes weremade to make it more attractive to new computer buyers. The cost of RAMchips had dropped considerably, so most new II Plus systems came standardwith a full 48K of RAM. Since the disk operating system consumed about 10Kof memory, having the full complement of available RAM made it easier touse the Disk II with either version of BASIC. Since users would not needto add the smaller 4K memory chips, the strapping blocks that had made itpossible to use either 4K or 16K RAM chips on the original Apple II wereremoved. Small changes had already been made to the product since it firstbegan distribution. Most of these changes were made primarily to simplifyit and decrease costs of manufacturing. First of all, the originalApple II motherboard, designated as "Revision 0", was changed to make itpossible to display two more colors in hi-res graphics. The Revision 0board had only four colors (green, violet, black, white), but Wozniak hadlearned that by making a simple alteration he could get two more colors(blue and orange) and two more varieties of black and white. TheRevision 1 and later boards were capable of displaying all eight colors. The means of making this modification to Revision 0 Apples was described byWozniak in his reply to an article by Allen Watson III about hi-resgraphics (in the June 1979 issue of Byte magazine). With that change,people who were not afraid of doing a little electrical work on theircomputers had some of the benefits of an updated Apple II. Hardware bugs that Apple engineers fixed included one that causedtext characters to be displayed with green and violet fringing, whether ingraphics mode or text mode. The "color killer" circuit they added fixedthings so that non-graphics text would display in black and white only. Another problem involved RAM configurations of either 20K or 24K (a 16K RAMchip plus one or two 4K RAM chips). In those systems a hardware bug causedthe 8K of memory from $4000 to $5FFF to be duplicated in the next 8K ofmemory, from $6000 to $7FFF, whether there was RAM present at thoselocations or not. This made a 20K Apple appear to have 24K, and a 24KApple appear to have 36K. The Revision 1 motherboard fixed this problem aswell.<1> Revision 1 boards also modified the cassette input circuit to respondwith more accuracy to a weak input signal, making it easier to load dataand programs from cassette. Also, one "feature" of the original Apple IIwas that any sound generated by the internal speaker also appeared as asignal on the cassette output connector; this was fixed in the newmotherboards. Lastly, the RESET cycle was made part of the power-upcircuitry, eliminating the requirement that the RESET key be pressed afterturning on the computer.<2>,<3>THE APPLE II PLUS: FIRMWARE More important than the minor hardware changes, however, were thechanges in the ROM code. The new ROM replaced the original Monitor withone 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. Itcleared the screen (displaying "APPLE ][" at the top), and began a scandown the slots, starting at slot 7 down to slot 1. It examined the firstfew bytes of code in each card's ROM for a specific sequence thatidentified it as a Disk II controller card. If one was found, control waspassed to that card, causing the disk drive to startup and begin loadingthe disk operating system into memory. If no disk controller was found,the ROM code jumped instead to the start of BASIC (instead of leaving theuser in the Monitor, as in the old ROM). This "Autostart ROM", as it wascalled, made it possible to have a system that started up a program on thedisk with little action needed by the user. The RESET code was more intelligent in the Autostart ROM than in theOld Monitor ROM. There was now a "Cold Start" RESET (which functioned asdescribed above), and a "Warm Start" RESET. A Warm Start RESET could occurwithout re-booting the Disk II (if it was present); in fact, it ensuredthat the disk operating system remained "connected" after RESET waspressed. This feature was implemented by setting three bytes at the end ofpage $03 in memory. Two of the bytes were the address of the place inmemory to which the Apple should jump if RESET was pressed. The third bytewas a specially coded byte created from half of the address byte. WhenRESET was pressed, this special "power-up" byte was checked with theaddress byte. If they didn't properly match, the Monitor assumed that thepower had just been turned on, and it executed a Cold Start RESET. Thisfeature was extensively used by writers of copy protected software, sousers could not modify or copy the code in memory simply by pressing theRESET key. The other major change, mentioned earlier, was the BASIC that wassupplied in ROM. Gone was Steve Wozniak's hand-assembled Integer BASIC, infavor of the newer Applesoft. Since these ROM versions of BASIC used thesame memory locations, they could not be used simultaneously. With theintroduction of the II Plus, Apple also released the Applesoft Firmwarecard. This card, which plugged into slot 0, made it possible for previousApple II owners to have some of the benefits of the II Plus without havingto buy an entirely new computer. Even with that card, however, you couldnot use features of one BASIC while the other was active, and switchingfrom one BASIC to the other erased any program that was being used at thetime. The two BASICs could be told apart by the prompt they used; IntegerBASIC used the ">" character, but Applesoft used the "]" character. Another change made to the Monitor ROM made screen editing easier. The original Apple II's procedure for editing a line typed in BASIC or inthe Monitor was tedious at best. To change a line of text in BASIC, youhad to list the line, move the cursor up to the start of the line, and thenuse the right-arrow key to "copy" text from the screen into the inputbuffer. If you wanted to skip part of the line, you had to move the cursorpast 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 cursoroff the line (above it or below it), type the additional text, and thenmove the cursor back into the line to finish copying the original part ofthe line. For example, suppose you had typed this line in Applesoft anddisplayed it on the 40-column screen:]LIST 100100 FOR I = 1 TO 100: PRINT "I LIKE MY APPLE": NEXT : END To change that line so the PRINT statement read "I REALLY LIKE MYAPPLE" meant either retyping the entire line, or using the edit feature. (If the line was particularly long, it was preferable to edit rather thanretype the entire line). To edit this line, you would have to move thecursor up to the "1" of "100" and begin pressing the right arrow key. Whenyou got to the "L" of "LIKE" you would have to move the cursor above orbelow the line, type the word "REALLY" followed by a space, then move thecursor back to the "L" of "LIKE", and continue copying with the right arrowkey. After editing a line, the screen might look like this:100 FOR I = 1 TO 100: PRINT "I LIKE MY APPLE": NEXT : END REALLY (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'tmake any mistakes it would read like this:]LIST 100100 FOR I = 1 TO 100: PRINT "I REALLY LIKE MY APPLE" : NEXT : END However, if you didn't take care to skip over the extra spacesinserted in front of the word "LIKE" by the Applesoft LIST command, itcould 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 OldMonitor 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 cursorup. "ESC A" moved right, "ESC B" moved left, and "ESC C" moved the cursordown. With a long line that needed much editing, this would get old realfast. Not only was it cumbersome, but the layout of the keyboard made itdifficult 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 theirfunctions were the opposite of their position! The new Autostart ROM improved this screen editing process just abit. Now, pressing "ESC" turned on a special editing mode. Repeatedpresses of "I" (up), "J" (left), "K" (right), and "M" (down) continued tomove the cursor until a key other than ESC was pressed. On the keyboardthese letters were arranged in a sort of "directional keypad" or diamond,which made remembering the moves a little easier. The previous ESC editingcodes were still supported, but still with their previous limitations. Unfortunately, however, you still couldn't tell whether you were in theregular text entry mode or in the ESC editing mode, and often attempts atchanging a line took several tries to get it right.<4>,<5> Other features added in the new Autostart ROM included the ability topause a listing by pressing Ctrl-S (VERY helpful when trying to scanthrough a long program!) As mentioned above, pressing RESET would returncontrol through the soft-entry vectors on memory page $03. This wouldallow a user to exit from a runaway BASIC program by pressing RESET, andstill keep program and variables intact in memory (which could not beguaranteed with the old Monitor ROM).<5> John Arkley at Apple wrote the changes to the original Monitor ROMand created the Autostart ROM in November 1978 (he's the "John A" mentionedin the source code listing found in the 1981 edition of the APPLE IIREFERENCE MANUAL). After he had done the work and the ROMs had beencreated, Apple wanted to publish a new version of the Reference Manual tocover the Apple II Plus. The older Reference Manual (affectionately knownas the "Red Book") had included an assembly language source code listing ofthe Monitor ROM. They wanted to include the source for BOTH versions ofthe Monitor, but a problem came up. While developing the Monitor, Applehad used a local mainframe computer dial-up service known as "CallComputer." They used a cross-assembler on that computer, assembled thecode, and then used the resulting object code to create the ROM. (Across-assembler is an assembler that creates object code for a processorother than the one the cross-assembler runs on. For example, if you canwrite 8080 machine code with an assembler running on a 6502-based computer,you are using a cross-assembler). Unfortunately, Call Computer hadaccidentally done a system backup with the source and destination disksreversed, erasing all the files containing the source code for the Apple IIMonitors. There were no disk or cassette copies of the source code for theAutostart ROM back at Apple. Working from the source listing in the RedBook, John recreated the source file for the original Monitor, and thendisassembled his own modifications for the II Plus and re-created hisAutostart ROM source file. Those reconstructed listings are what appearedin the 1981 edition of the Apple II Reference Manual.<6> Not everyone was pleased with the modifications made in the AutostartROMs, however. Some of the authors of the magazine CALL-A.P.P.L.E. likedto refer to the new computer as the "Apple II Minus", since Arkley had toremove some of their beloved routines from the ROMs to make room for thenew features. Missing from the Apple II Plus ROMs were Integer BASIC, theminiassembler, and Woz's SWEET 16 interpreter (that entire space now beingused by Applesoft). Missing from the Monitor were the assembly languageSTEP and TRACE features, and a set of sixteen-bit multiply and divideroutines.<5>THE APPLE II PLUS: COST The new Apple II Plus, at $1,195, sold for over $100 less than theoriginal Apple II, 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 theApple II Plus with a Bell & Howell name plate on it for use in schools. These Apples were black colored (instead of the standard beige), and hadscrews on the back to keep the lids on (apparently to keep students' handsout). These Apples (sometimes called "Darth Vader" Apples) also had the"shift-key mod" (see below) applied. Since Bell & Howell was a majorsupplier of school equipment, this was a means for Apple to get a footholdin the school environment.<7>,<8> Bell & Howell also had electronics correspondence courses, and usedthe black Apple II Plus for one of their courses. They offered a one yearwarranty, instead of the ninety-day warranty offered by Apple.<9>,<10>,<11>THE APPLE II PLUS: EARLY USER EXPERIENCES An Apple II veteran on GEnie, Dennis Ulm, kindly provided me with thefollowing reproduction of his ORIGINAL Apple II Plus packing list. Itgives a little picture of what early non-disk users had to work with: APPLE II PLUS PACKING LISTThis package should contain the following items: item no. part number description ---- --- ----------- ----------- 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 or 600-0832 Apple II Plus System 32K or 600-0848 Apple II Plus System 48K (LITTLE BRICKOUT was an abbreviated Applesoft version of Woz'sInteger BASIC Breakout game (the reason he designed the Apple II in thefirst place). BRIAN'S THEME was a hi-res graphics program that drew lineson the screen in various patterns. HOPALONG CASSIDY was a "guess who"program that also used the hi-res screen).<12>,<13> Also included in Dennis' II Plus box was this photocopied instructionsheet: 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 triesto get anything to load properly from tape!THE APPLE II PLUS: MORE HARDWARE ADD-ONS Lower-case was still not supported on the new Apple II Plus, thoughit was a popular user-modification. The thriving industry for Apple IIperipherals made up for this shortcoming, with various vendors supplyingsmall plug-in circuit boards that fit under the keyboard, allowing displayof lower-case on the screen (and sometimes direct entry of lower-case fromthe keyboard). By 1981, when the Revision 7 motherboard was released forthe Apple II Plus, a different method of character generation was used,which reduced radio-frequency interference that was generated. ForRevision 7 boards, lower-case characters could be displayed with theaddition of only a single chip. However, unless a user changed thekeyboard encoder with a third-party product, only upper-case characterscould be typed.<14> The keyboard itself underwent some changes, both by users and byApple. The original RESET key was in the upper right-hand corner of thekeyboard. The problem with that key was that it had the same feel as thekeys around it, making it possible to accidentally hit RESET and lose theentire program that was being so carefully entered. One user modificationwas to pop off the RESET keycap and put a rubber washer under it, making itnecessary to apply more pressure than usual to do a RESET. Apple fixedthis twice, once by replacing the spring under the keycap with a stifferone, and finally by making it necessary to press the CTRL key and the RESETtogether to make a RESET cycle happen. The keyboards that had theCTRL-RESET feature made it user selectable via a small slide switch justinside the case (some people didn't want to have to press the CTRL key todo a RESET). Another keyboard limitation was addressed through a modification thatbecame known as the "shift-key mod". This was such a widely used trickthat Apple ended up supporting it in hardware when they designed theApple IIe. Since the II and II Plus keyboards could not directly generatelower-case characters, early word processing programs had to find some wayto make up for that deficiency. Apple's own Apple Writer program used theESC key as a shift and shift-lock key, displaying upper-case characters ininverse video and lower-case in regular video. Other programs suggestedinstalling the shift-key mod to allow more natural entry of upper-case,using the SHIFT key already present on the keyboard. The user had toattach a wire to the contact under the SHIFT key, and run it to the gameport 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 paddlesthat third-party hardware companies supplied for the Apple II). Theprogram would assume that all letters being typed were in lower-case,unless the SHIFT key (attached now to paddle button PB2) was also beingpressed; in that case the letter would be entered as upper-case. Since thePB2 button was not often used for a second pair of game paddles, it wasunlikely that this modification would be accidentally triggered by pressingone of the game paddle buttons. This modification did NOT use buttons PB0or PB1, which were on the first pair of game paddles. (PB0 and PB1 nowcorrespond to the Open-Apple and Solid-Apple/Option keys on modern Apple IIcomputers).++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple IIe++++++++++++++++++++++++++++++++ NOTES <1> -----, "Memory Organization", APPLE II REFERENCE MANUAL, 1979, 1981, pp. 70-73. <2> -----, APPLE II REFERENCE MANUAL, 1979,1981, pp. 25-27, 34-36. <3> Bruce Field, "A.P.P.L.E. Doctor", CALL-A.P.P.L.E., Jan 1984, pp. 74-75. <4> -----, "Apple and Apple II History", THE APPLE II GUIDE, Fall 1990, pp. 9-16. <5> -----, APPLE II REFERENCE MANUAL, 1979,1981, pp. 25-27, 34-36. <6> John Arkley, (personal telephone call), Sep 9, 1991. <7> Joe Regan, GEnie A2 ROUNDTABLE, Category 2, Topic 16, Apr 1991. <8> Dan Paymar, "Curing A Shiftless Apple", CALL-A.P.P.L.E., May 1982, pp. 63-64. <9> Tom Vanderpool, GEnie A2 ROUNDTABLE, Category 2, Topic 16, Mar & Aug 1991. <10> Tom Zuchowski, GEnie A2 ROUNDTABLE, Category 2, Topic 16, Mar 1991. <11> Steve Hirsch, GEnie A2 ROUNDTABLE, Category 2, Topic 16, Mar 1991. <12> Dennis Ulm, GEnie A2 ROUNDTABLE, Category 2, Topic 16, Apr 1991. <13> Wes Felty, GEnie. A2 ROUNDTABLE, Category 2, Topic 16, Apr 1991. <14> Bruce Field, "A.P.P.L.E. Doctor", CALL-A.P.P.L.E., Jan 1984, pp. 74-75. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 7 -- THE APPLE IIE) [v1.1 :: 26 Jan 92]PRELUDE: THE APPLE III PROJECT As we continue our travels examining the history of the Apple II,let's fine tune the time-machine card on our souped-up Apple II toconcentrate specifically on the next version of the II, the IIe. Asbefore, just accelerate the microprocessor speed to 88 MHz, and watch outfor the digital fire-trails! Destination: 1982. Between the years 1979 and 1983, although no new versions of theApple II were released, it enjoyed a broad popularity and annuallyincreasing sales. The open architecture of the computer, with its fullydescribed hardware and firmware function via the Reference Manual, made itappealing both to hardware and software hackers. Third-party companiesdesigned cards to plug into the internal slots, and their function variedfrom making it possible to display and use 80-column text, to clocks andcards allowing the Apple II to control a variety of external devices. During this time there was also an explosion of new software written forthis easily expandable machine, from the realm of business (VisiCalc andother spreadsheet clones), to utilities, to games of all types. Each montha host of new products would be available for those who wanted to find morethings to do with their computer, and the Apple II was finding a place inthe home, the classroom, and the office. At Apple Computer, Inc., however, the Apple II was not viewed withthe same degree of loyalty. By September 1979 the Apple II had continuedto be a sales leader. However, few at Apple believed that the II couldcontinue to be a best seller for more than another year or two. SinceApple Computer, Inc. was a business, and not just a vehicle for selling theApple II computer, they began to enlarge the engineering department tobegin designing new products.<1> These new design efforts had begun as farback as late 1978. Their first effort was an enhanced Apple II that usedsome custom chips, but that project was never finished. They also beganwork on a different, more powerful computer that would use severalidentical microprocessor chips sharing tasks. The main advantage would bespeed, and the ability to do high precision calculations. This computerwas code-named Lisa, and because it was such a revolutionary type ofdesign, they knew it would take many years to come to actual production. Because of the power it was to have, Apple executives felt that Lisa wasthe future of the company.<2>,<14> Because they knew that the Lisa project would take a long time tocomplete, and because the Apple II was perceived to have only a shortremaining useful life as a product, they began a new computer projectcalled the Apple III. Instead of building upon the Apple II as a basis forthis new computer, they decided to start from scratch. Also, althoughWozniak made most of the design decisions for the II, a committee at Appledecided what capabilities the Apple III should have. They decided that theApple III was to be a business machine, and not have the home orarcade-game reputation that the II had. It was to have a fullupper/lowercase keyboard and display, 80-column text, and a morecomprehensive operating system. They also decided that since it would be awhile before many application programs would be available for this newcomputer, it should be capable of running existing Apple II software. Insome ways this handicapped the project, since it was then necessary to usethe same microprocessor and disk drive hardware as was used in theApple II.<3> Apple executives also decided that with the introduction of theApple III they wanted a clear separation between it and the Apple II inregards to marketing. They did not want ANY overlap between the two. TheIII would be an 80-column business machine and was predicted to have ninetypercent of the market, while the Apple II would be a 40-column home andschool machine and would have ten percent of the market. Apple'sexecutives were confident that after the release of the Apple III, theApple II would quickly lose its appeal.<4> Because of their desire for a strong and distinct product separation,the Apple II emulation mode designed into the Apple III was very limited. The engineers actually ADDED hardware chips that prevented access to theIII's more advanced features from Apple II emulation mode. Apple IIemulation couldn't use 80 columns, and had access to only 48K memory andnone of the better graphics modes. As a result, it wouldn't run some ofthe better Apple II business software, during a time when there wasn't muchNEW business software for the Apple III. The Apple III engineers were given a one year target date forcompletion. It was ready for release in the spring of 1980, but there wereproblems with both design and manufacturing. (It was the first time thatApple as a company tried to come out with a new product; the Apple II hadbeen designed and built by Wozniak when he WAS the engineering department). The first Apple III computers were plagued with nearly 100% defects and hadto be recalled for fixes. Although Apple took the unprecedented step ofrepairing all of the defective computers at no charge, they never recoveredthe momentum they lost with that first misstep, and the III did not becomethe success Apple needed it to be.<3> Although all of the bugs and limitations of the Apple III wereeventually overcome, and it became the computer of choice within Apple, itdid not capture the market as they had hoped. At that point, they weren'tsure exactly what to do with the II. They had purposely ignored anddownplayed it for the four years since the II Plus was released, althoughwithout its continued strong sales they would not have lasted as a company. In a 1985 interview in Byte magazine, Steve Wozniak stated: "When we came out with the Apple III, the engineering staff cancelled every Apple II engineering program that was ongoing, in expectation of the Apple III's success. Every single one was cancelled. We really perceived that the Apple II would not last six months. So the company was almost all Apple III people, and we worked for years after that to try and tell the world how good the Apple III was, because we KNEW [how good it was] ... If you looked at our advertising and R&D dollars, everything we did here was done first on the III, if it was business related. Then maybe we'd consider doing a sub-version on the II. To make sure there was a good boundary between the two machines, anything done on the II had to be done at a lower level than on the III. Only now are we discovering that good solutions can be implemented on the II ... We made sure the Apple II was not allowed to have a hard disk or more than 128K of memory. At a time when outside companies had very usable schemes for adding up to a megabyte of memory, we came out with a method of adding 64K to an Apple IIe, which was more difficult to use and somewhat limited. We refused to acknowledge any of the good 80-column cards that were in the outside world--only ours, which had a lot of problems."<4> Wozniak went on in that interview to say that at one time he hadwritten some fast disk routines for the Pascal system on the Apple II, andwas criticized by the Apple III engineers. They didn't think that anythingon the II should be allowed to run faster than on a III. That was themindset of the entire company at the time. Apple has been much maligned for the attention they gave theApple III project, while suspending all further development on theApple II. They pegged their chances for the business market in 1980 on theApple III. Even Steve Wozniak had stated in another interview, "We'd havesold tons of [computers in the business market] if we'd have let the IIevolve ... to become a business machine called the III instead ofdeveloping a separate, incompatible computer. We could have added theaccessories to make it do the business functions that the outside world isgoing to IBM for."<3> Part of the problem was the immaturity of the entiremicrocomputer industry at the time. There had NEVER been a microcomputerthat had sold well for more than a couple of years before it was replacedby a more powerful model, usually from another company. The Altair 8800and IMSAI had fallen to the more popular and easier to use Apple II andTRS-80 and Commodore PET, as well as other new machines based on the Intel8080 and 8088 processors. It is entirely understandable that Apple'sattitude between 1978 and 1980 would be of panic and fear that theywouldn't get a new computer out in time to keep their market share andsurvive as a company. However, during the entire time when Apple wasworking on the III as a computer to carry the company through until Lisawould be ready, and during the entire time that the Apple II was ignored byits own company, it continued to quietly climb in sales. It is a credit toboth the ingenuity of Wozniak in his original design, and to the users ofthe Apple II in THEIR ingenuity at finding new uses for the II, that itsvalue increased and stimulated yet more new sales. The Apple II "beat" theodds of survival that historically were against it.THE APPLE IIE: BEGINNINGS When Apple saw that the sales on the Apple II were NOT going todwindle away, they finally decided to take another look at it. The firstnew look at advancing the design of the II was with a project called"Diana" in 1980. Diana was intended primarily to be an Apple II that hadfewer internal components, and would be less expensive to build. Theproject was later known as "LCA", which stood for "Low Cost Apple". InsideApple this meant a lower cost of manufacturing, but outsiders who got windof the project thought it meant a $350 Apple II. Because of thatmisconception, the final code name for the updated Apple II was "Super II",and lasted until its release.<5>THE APPLE IIE: HARDWARE Part of the IIe project grew out of the earlier work on customintegrated circuits for the Apple II. When they finally decided to goahead and improve the design by adding new features, one of the originalplans was to give the Apple II an 80-column text display and a fullupper/lowercase keyboard. Walt Broedner at Apple did much of the originalhardware planning, and was one of those at Apple who pushed for the upgradein the first place. To help maintain compatibility with older 40-columnsoftware (which often addressed the screen directly for speed), he decidedto make 80-columns work by mirroring the older 40 column text screen onto a1K memory space parallel to it, with the even columns in main memory andthe odd columns in this new "auxiliary" memory. To display 80-column textwould require switching between the two memory banks. Broedner realizedthat with little extra effort he could do the same for the entire 64Kmemory space and get 128K of bank-switchable memory. They put this extramemory (the 1K "80-column card, or a 64K "extended 80-column card") in aspecial slot called the "auxiliary" slot that replaced slot 0 (the 16KLanguage Card was going to be a built-in feature). The 80-column firmwareroutines were mapped to slot 3, since that was a location commonly used bypeople who bought 80-column cards for their Apple II's, and was also theplace where the Apple Pascal system expected to find an external terminal. The auxiliary slot also supplied some special video signals, and was usedduring manufacture for testing on the motherboard. The engineers that worked on the IIe tried hard to make sure thatcards designed for the II and II Plus would work properly in the newcomputer. They even had to "tune" the timing on the IIe to be slightly OFF(to act more like the II Plus) because the Microsoft CP/M Softcard refusedto function properly with the new hardware. A socket was included on themotherboard for attaching a numeric keypad, a feature that many businessusers had been adding (with difficulty) to the II Plus for years. The fullkeyboard they designed was very similar to the one found on the Apple III,including two unique keys that had first appeared with the III--one with apicture of an hollow apple ("open-apple") and the other with the same applepicture filled in ("solid-apple"). These keys were electrically connectedto buttons 0 and 1 on the Apple paddles or joystick. They were availableto software designers as modifier keys when pressed with another key; forexample, open-apple-H could be programmed to call up a "help" screen. Thenewer electronics of the keyboard also made it easier to manufactureforeign language versions of the Apple IIe.<6> Overall, Broedner and Peter Quinn (the design manager for the IIe andlater the IIc projects) and their team managed to decrease the number ofcomponents on the motherboard from over one hundred to thirty-one, whileadding to the capabilities of the computer by the equivalent of anotherhundred components.THE APPLE IIE: FIRMWARE Peter Quinn had to beg for someone to help write the firmwarerevisions to the Monitor and Applesoft for the IIe. He finally got RichAuricchio, who had been a hacker on the Apple II almost from the beginning. Quinn said in a later interview, "You cannot get someone to write firmwarefor this machine unless he's been around for three or four years. You haveto know how to get through the mine field [of unofficial but commonly usedentry points]. He [Rick] was extremely good. He added in all the80-column and Escape-key stuff." Quinn also got Bryan Stearns to work onthe new Monitor.<6>,<7> Changes were made in the ROMs to support the new bank-switching modesmade necessary by having two parallel 64K banks of RAM memory. To haveenough firmware space for these extra features, the engineers increased thesize of the available ROM by making IT bank-switched. This space was takenfrom a location that had previously not been duplicated before--the memorylocations used by cards in the slots on the motherboard. Ordinarily, ifyou use the Monitor to look at the slot 1 memory locations from $C100through $C1FF, you get either random numbers (if the slot is empty), or thebytes that made up the controller program on that card. Any card couldalso have the space from $C800 through $CFFF available for extra ROM codeif they needed it. If a card in a slot did a read or write to memorylocation $CFFF, the $C800-$CFFF ROM that belonged to that card would appearin that space in the Apple II memory. When another card was working, thenITS version of that space would appear. On the IIe, they made a specialsoft-switch that would switch OUT all the peripheral cards from the memory,and switch IN the new expanded ROM on the motherboard. The firmware in thenew bank-switched ROM space was designed to avoid being needed by any cardin a slot (to avoid conflicts), and much of it was dedicated to making the80-column display (mapped to slot 3) work properly. Also added were enhancements to the ESC routines used to do screenediting. In addition to the original ESC A, B, C, and D, and the ESC I, J,K, and M added with the Apple II Plus, Auricchio added the ability to makethe ESC cursor moves work with the left and right arrow keys, and the newup and down arrow keys. The new IIe ROM also included a self-test that wasactivated by pressing both apple keys, the control key, and RESETsimultaneously.<5>THE APPLE IIE: SUCCESS The new Apple IIe turned out to be quite profitable for Apple. Notonly was it more functional than the II Plus for a similar price, but thecost to the dealers selling it was about three times the cost ofmanufacture. They had gotten their "Low Cost Apple", and by May of 1983the Apple IIe was selling sixty to seventy thousand units a month, overtwice the average sales of the II Plus. Christmas of 1983 saw the IIecontinue to sell extremely well, partly resulting from the delayedavailability of the new IBM PCjr. Even after the Apple IIc was released in1984, IIe sales continued beyond those of the IIc, despite the IIc'sbuilt-in features.<8>THE APPLE IIE: MODIFICATIONS Early Apple IIe motherboard's were labelled as "Revision A". Engineers determined soon after its introduction that if the same use ofparallel memory was applied to the hi-res graphics display as was done withthe text display, they could create higher density graphics. Thesegraphics, which they called "double hi-res", also had the capability ofdisplaying a wider range of colors, similar to those available with theoriginal Apple II lo-res graphics. The IIe motherboards with the necessarymodifications to display these double hi-res graphics were labelled"Revision B", and a softswitch was assigned to turning on and off the newgraphics mode. Later versions of the IIe motherboards were again called "Revision A"(for some reason), although they HAD been modified for double hi-resgraphics. The difference between the two "Revision A" boards was that thelatter had most of the chips soldered to the motherboard. An original"Revision A" board that had been changed to an Enhanced IIe was notnecessarily able to handle double hi-res, since the change to the Enhancedversion involved only a four-chip change to the motherboard, but not thechanges to make double hi-res possible.<9>THE APPLE IIE: THE ENHANCED IIE This version of the Apple IIe was introduced in March of 1985. Itinvolved changes to make the IIe more closely compatible with the Apple IIcand II Plus. The upgrade consisted of four chips that were swapped in themotherboard: The 65c02 processor, with more assembly language opcodes,replaced the 6502; two more chips with Applesoft and Monitor ROM changes;and the fourth a character generator ROM that included graphics characters(first introduced on the IIc) called "MouseText". The Enhanced IIe ROMchanges fixed most of the known problems with the IIe 80-column firmware,and made it possible to enter Applesoft and Monitor commands in lower-case. The older 80-column routines were slower than most software developerswanted, they disabled interrupts for too long a time, and there wereproblems in making Applesoft work properly with the 80-column routines. These problems were solved with the newer ROMs. Monitor changes also included a return of the mini-assembler, absentsince the days of Integer BASIC. It was activated by entering a "!"command in the Monitor, instead of a jump to a memory location as in theolder Apple ][. Also added were an "S" command was added to make itpossible to search memory for a byte sequence, and the ability to enterASCII characters directly into memory. However, the "L" command todisassemble 6502 code still did not handle the new 65c02 opcodes as did theIIc disassembler. Interrupt handling was also improved. Applesoft was fixed to let commands such as GET, HTAB, TAB, SPC, andcomma tabbing work properly in 80-column mode. The new MouseText characters caused a problem for some older programsat first, until they were upgraded; characters previously displayed asinverse upper-case would sometimes display as MouseText instead.<10>,<11>THE APPLE IIE: THE PLATINUM IIE This version of the IIe, introduced in January 1987, had a keyboardthat was the same as the IIGS keyboard, but the RESET key was moved abovethe ESC and "1" keys (as on the IIc), and the power light was above the "/"on the included numeric keypad (the internal numeric keypad connector wasleft in place). The CLEAR key on the keypad generated the same characteras the ESC key, but with a hardware modification it could generate a Ctrl-Xas it did on the IIGS. The motherboard had 64K RAM in only two chips(instead of the previous eight), and one ROM chip instead of two. An"extended 80-column card" with 64K extra memory was included in all unitssold, and was smaller than previous versions of that memory card. No ROM changes were made. The old shift-key modification wasinstalled, making it possible for programs to determine if the shift-keywas being pressed. However, if using a game controller that actually usedthe third push-button (where the shift-key mod was internally connected),pressing shift and the third push-button simultaneously causes a shortcircuit that shuts down the power supply.<12>THE APPLE IIE: EMULATION CARD ON MACINTOSH LC In early 1991, Apple introduced a new version of the Apple IIe. Thisone was designed to be exactly like the 128K Platinum IIe, with themodification that it had a color Macintosh attached to it. This Apple IIecost only $199, but the required Macintosh peripheral went for about$2,495, which makes the combination the most expensive Apple II ever made. Apple engineers managed to put the function of an entire IIe onto a cardsmaller than the old Disk II controller card. With version 2.0 of theApple II interface software, more of the memory allocated to the Macintoshcould be used by the IIe (strange way of designing an Apple II!). However,unlike all previous versions of the IIe, there were no hardware-based slotson the IIe card; instead, it used software-based slots that were allocatedby moving icons that represent various peripherals into "slots" on the Macscreen. (Oh, yes; it ran some Mac software, too. This was, of course, theMacintosh LC computer with its optional Apple IIe card). To use 5.25 disks with this Apple IIe, there was a cable thatattached to the card. The cable would split into a game connector (forpaddles or joystick operation) and a connector that accepted IIc and IIGSstyle 5.25 drives. The IIe card ran at a "normal" (1 MHz) speed and a"fast" (2 MHz) speed.<13> It had limitations, however. For a 1991Apple II, it was limited in being unable to be accelerated beyond 2 MHz (aZip Chip can run a standard IIe at 8 MHz), and the screen response seemedslow, since it was using a software-based Mac text display instead of thehardware-based Apple II character ROM. As a Macintosh it lacked the powerand speed of the newer Macintosh II models (which also ran color displays). But if having a Apple II and a Mac in one machine was important, this wasthe best way to do it.++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple IIc++++++++++++++++++++++++++++++++ NOTES <1> Freiberger, Paul, and Swaine, Michael. "Fire In The Valley, Part I (Book Excerpt)", A+ Magazine, Jan 1985, p. 45-48. <2> Freiberger, Paul, and Swaine, Michael. "Fire In The Valley, Part II (Book Excerpt)", A+ Magazine, Jan 1985, p. 46,51. <3> Rubin, Charles. "The Life & Death & Life Of The Apple II", Personal Computing, Feb 1985, p. 72. <4> Williams, Gregg, and Moore, Rob. "The Apple Story, Part 2: More History And The Apple III", Byte, Jan 1985, pp. 177-178. <5> Tommervik, Al. "Apple IIe: The Difference", Softalk, Feb 1983, pp. 118-127, 142. <6> Williams, Gregg. "'C' Is For Crunch", Byte, Dec 1984, pp. A75-A78, A121. <7> Little, Gary. Inside The Apple //c, 1985, pp. 1-7. <8> Rose, Frank. West Of Eden: The End Of Innocence At Apple Computer, 1989, pp. 98-99. <9> Weishaar, Tom. "Ask Uncle DOS", Open-Apple, Dec 1986, p. 2.86. <10> Weishaar, Tom. "A Song Continued", Open-Apple, Mar 1985, pp. 1.20-1.21. <11> Weishaar, Tom. "Demoralized Apple II Division Announces Enhanced IIe...", Open-Apple, Apr 1985, pp. 1.25-1.27. <12> Weishaar, Tom. "Apple Introduces An Updated IIe", Open-Apple, Jan 1987, p. 3.1. <13> Doms, Dennis. "The Apple II as Mac peripheral", Open-Apple, Jul 1991, pp. 7.43-7.44. <14> This was an early version of the Lisa project. When the 68000 microprocessor became available from Motorola, it was decided to use that as a single processor for the Lisa. Also, after Steve Jobs paid a visit to the Xerox lab and saw the Xerox Star computer with its icon interface and mouse pointing device, he pushed strongly for the Lisa to work in that way. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 8 -- THE APPLE IIC) [v1.1 :: 12 May 92]PRELUDE: STEVE JOBS AND MACINTOSH Rewind back to 1982, before the Apple IIe was introduced, and adjustthe tuning on our Flux Capacitor-enhanced peripheral card. Before dealingspecifically with the smallest Apple II, the IIc, it would help to take anaside and look at some other events happening at Apple Computers, Inc. atthis time that affected its development. If you recall, the Lisa project was designated as the computer that wasconsidered to be the future of Apple. From a series of parallel processorsand a "bit slicing" architecture, to a focus on the Motorola 68000microprocessor as the controller of this advanced computer, the project hadbeen progressing very slowly. It was begun back in 1979 with the same focusas any other Apple product: "Both [Apple III and Lisa] had been conceived ofas nifty pieces of hardware rather than as products to appeal to a specificmarket: At Apple you designed a box and people bought it because it wasneat, not because any thought had been given to what it would do forthem."<1> However, a significant change occurred in 1979 when Xerox bought alarge chunk of Apple stock. In return for being allowed this stock purchase,Xerox allowed some of their research ideas to be used in designing an officecomputer. After Steve Jobs visited the Xerox Palo Alto Research Center in1979 and saw the user-interface on their Alto computer--icons, graphics-basedtext characters, overlapping windows, and a pointing device called a"mouse"--the Lisa took on a distinct personality that made it possible tobecome the ultra-computer Apple needed. This was important, since by 1981Apple executives were getting sweaty palms worrying about the future. TheApple III was clearly NOT taking the business world by storm. Unfortunately for Jobs, who was excited about using the Xeroxtechnology in designing a new computer, he was excluded from the Lisaproject. After the problems associated with the introduction of theApple III, a reorganization in 1980 moved the Apple II and III into onedivision, and the Lisa into another. Lisa was put under the control of JohnCouch, and Jobs was not allowed to participate. Since Lisa had been takenaway, Jobs in 1981 began to assemble a team to "out-Lisa the Lisa" bycreating a smaller, less expensive computer that would do the same thing. Jef Raskin, the engineer that helped design it, called it Macintosh. While the Macintosh developed as a pirate project with a smaller teamand less money than Lisa, the concept of an "appliance" computer alsoemerged. Instead of those messy slots and a lid that popped off (which madethe Apple II so popular with the hacker community), Jobs' team was sold onthe idea that all necessary features should simply be built-in and the casesealed. It would be something that you just plugged in, turned on, andstarted using. With the Xerox Alto mouse/icon/window interface it would notonly be easy to set up and turn on, but also easy to use.THE APPLE IIC: BEGINNINGS What was happening with the Apple II during this time? The efforts tomake it less expensive to build were progressing, and the Apple IIe was inthe formative stages. In the summer of 1981 someone proposed a portableApple II, a book-sized computer. It wasn't until Steve Jobs becameinterested in it as engineering challenge, well after Macintosh was underway, that anything came of the idea: "...one day late in '82, Paul Dali showed him [Jobs] a photograph of a Toshiba portable and they started fooling around with the idea of an Apple II that would look like the Toshiba but come with a built-in disk drive. They took out a IIe circuit board and a disk drive and a keyboard and played with them until they arrived at a promising configuration--keyboard in front, disk drive in back, circuit board in between. What got Jobs excited about this idea was the engineering difficulty of squeezing it all into a package not much bigger than a notebook. And a machine so small wouldn't have the expandability that characterized all the other II's. Like Macintosh, it could be taken out of the box, plugged in, and put to work--no extra parts to buy, no cables to figure out. It was the II reinvented as an appliance."<2> As with all Apple projects, the IIc went by various code names duringits development, for the sake of internal communications and to keepoutsiders from knowing what was going on. The various names used includedVLC (Very Low Cost), Yoda, ET, IIb (for "Book"), and Teddy (which stood for"Testing Every Day"). Also, following a long standing tradition at Apple,some of the code names assigned to the project at various times were names ofchildren of people at Apple: Chels, Jason, Lolly, Sherry, and Zelda. Thesenames persist in the source code for the firmware for the IIc as laterprinted in the technical reference manual; the serial port driver is called a"Lolly" driver.<3> During the time the IIc was under development, Apple was working on achange in the look of their products. They planned a more European styling,and a color scheme called "Snow White". The IIc would be the first productwith the new appearance and color.THE APPLE IIC: HARDWARE As mentioned earlier, the IIc had its origins while the IIe project wasgoing on. When Steve Jobs became involved, he felt they should continue withthe open IIe as they had planned, but do this other Apple II as a product"focused" to a specific group of customers, primarily new users. Originallyhe had planned a closed Apple II that had a built-in mouse port, one serialport, and some other features. What they ended up with at that point wasjust a computer and a keyboard. Walt Broedner, the engineer who pushed forthe Apple IIe to be produced, used some of their previous work with customIC's for the disk controller and combined both projects together to make theIIc.<4> Although he was told it was not be possible, Jobs strongly pushed forthe mouse in this closed Apple II to be compatible with the Macintoshmouse--and they managed to make it work.<2> Regarding the plans for a singleserial port, however, Apple's marketing people pointed out to Jobs that manypeople were going to want both a printer AND a modem, so they added a secondport to the original design. They decided to use serial ports on the IIcinstead of parallel ports for a couple of reasons. First, the socket for aserial port is smaller than a parallel port, and it would fit better onto asmall box like the IIc. Also, Apple's general direction at the time was toget consistency in its hardware, and they had decided to make everything theymade use a serial interface.<4> They began work on the Apple IIc in earnest right after the IIe wasfinished. Because they were trying to squeeze an Apple IIe with 128K, 80column routines, two serial cards, disk controller, and a mouse card into an11 by 12-inch case, the design challenges were greater than with the IIe(recall that this was what appealed to Steve Jobs). The size of the case wasdetermined by the decision to make it able to fit into a standard-sizedbriefcase.<4> Apple also had the international market in mind when they designed theIIc. A special chip containing the keyboard map could easily be changeddepending on the country where the computer would be sold, to make itconsistent with regional keyboard differences. The external pushbutton wouldswitch between the two different keyboards, between a UK and German layout,for example. In the U.S. version of the IIc it switched from a standardSholes keyboard (also known as "QWERTY") to a Dvorak keyboard (which allowsfaster touch typing). The decision for the foreign keyboards came first; theadded bonus for American versions of getting Dvorak came as an extra bonus,to save having two different cases (one for US and one for foreignversions).<4> One problem in creating such a compact computer was dealing with heatproduction. Apple engineers wanted it to be able to function inenvironmental temperatures up to 40 degrees Celsius (about 104 degreesFahrenheit). One article published at the time of its introduction mentionedjokingly that the designers wanted to make the IIc capable of doing a longdisk sort (sorting data in a disk file) while on the beach in Florida in thesummer! Their major obstacle was the heat generated by the internal 5.25disk drive. They tried some special low power drives (which would have beenmuch more expensive), but they didn't overcome the heat problem even withthem. Eventually they tried a complicated venting scheme that was designedby drilling holes into a case and putting it into an oven to let them measureinternal temperatures. The engineers were surprised when they found that thenormal power disk drive worked and generated less overall heat within thecase than the special low power drive did. The only explanation they couldcome up with was that the normal power drive generated enough heat to causeit to rise, which pulled cool air in through the vents by convection.<4>THE APPLE IIC: FIRMWARE Since they used the newer 65c02 chip, which ran cooler and had 27additional commands that could be used by assembly language programs, Apple'sprogrammers had some new power to use in firmware design. Such power wasneeded to squeeze in all the firmware code for the IIe, plus code for thedisk controller, serial cards, mouse card, and 80 column card into 16K of ROMspace. The firmware for the IIc was written by Ernie Beernink, Rich Williams,and James Huston. They designed it to look (to a software applicationprogram) exactly like a IIe with an Apple Super Serial Card in slots 1 and 2,an 80-column card in slot 3, a mouse in slot 4, and a Disk II in slot 6(though there were NO slots in hardware). Since these first IIc's hadnothing emulated in slot 5, the firmware authors immortalized themselves bymaking a "ghost" peripheral appear to be present in that slot. Entering thisApplesoft program:100 IN#5 : INPUT A$ : PRINT A$and running it would print the names of the authors. (They used a decodingscheme to extract the names, character by character, so a simple ASCII scanof the ROM would not show their little trick). This "feature" had to beremoved in later revisions of the IIc ROM, because an actual disk device wasadded then to slot 5.<4>,<5> What about the unassigned slot 7? Here they put a small piece of codeto allow booting from the external 5.25 drive by typing "PR#7" fromApplesoft. The programmers fixed some known bugs in the IIe ROMs, and added 32graphics characters they called MouseText. To make MouseText fit theyremoved the ability to use flashing characters (when in 80 column mode) andreplaced those characters with MouseText. Apple veteran Bruce Tognazzinidesigned the MouseText characters, which included a picture of a running man(perhaps to suggest "running" a program). He later sent a letter toCall-A.P.P.L.E. magazine to warn programmers that the Running Man characters(assigned to "F" and "G") had been determined to be unnecessary and wouldprobably be replaced eventually. (This did eventually happen, but not withthe IIc). Beernick, Williams, and Huston also made some minor changes to theApplesoft part of the ROM. They fixed things so Applesoft commands could beentered in lowercase (and translated into uppercase). They removed theApplesoft commands that were specific to the obsolete cassette interface(which was absent in the IIc) and made Applesoft more compatible with 80columns.<4>,<6> They did NOT go so far as to make any major changes inApplesoft to use the newer 65c02 commands and therefore fix known bugs or addfeatures to this seven year old language. Their reluctance stemmed from thefact that historically many BASIC programs had made use of undocumentedassembly language entry points in Applesoft, and any changes they would makehere made it more likely that older programs would crash unexpectedly.<4>THE APPLE IIC: PRODUCT INTRODUCTION Apple's introduction of the new IIc came at an "event" at the MosconeCenter in downtown San Francisco on April 24th, 1984. It was entitled"Apple II Forever", and was described as "part revival meeting, part sermon,part roundtable discussion, part pagan rite, and part county fair". Apple'sobjectives here were to introduce the Apple IIc, describe how it fit into thecompany's marketing strategy, show off new software that was made to workwith the new computer, and emphasize that Apple was still firmly behind theApple II line of computers. (Steve Jobs also took some of the time to reporton the sales of the Macintosh in its first 100 days).<7> One of the interesting things they did at the "Apple II Forever" eventwas the actual introduction of the IIc. Giant video screens were used toshow previews of Apple's TV commercials for the IIc, as well as slides andimages of the speakers, including Wozniak, Jobs, and Apple's new president,John Sculley. Sculley spoke of "sharing power", and then demonstrated thatin a unique way: "After holding up the tiny IIc for everyone to see andeliciting a response that they'd like to see it better, Sculley ordered thehouse lights on. As the light burst forth, nearly every fifth person in theaudience stood up, waving high a IIc. As startled dealers cheereduproariously, the Apple plants passed the IIcs to them. Within seconds ofits introduction, more than a thousand Apple dealers had a production-lineIIc in their hands."<7> When Jobs gave his report on the Mac, it revealed some interestingstatistics. He told them that the first industry standard was the Apple II,which sold fifty thousand machines in two and a half years. The secondstandard was the IBM PC, which sold the same amount in eight months. Macintosh had done sold its fifty thousand machines only 74 days after itsintroduction. Although sales would not be nearly as good, Apple took ordersthat day for fifty thousand Apple IIc's in just over seven HOURS. At the "Apple II Forever" event, they also had a general softwareexhibition and a setup called the Apple II Museum. This contained Applememorabilia, and included Woz's original Apple I, and a reproduction of SteveJobs' garage where it was built. Although not on the schedule, "Apple IIForever" included an early-afternoon earthquake centered south of San Josethat measured 6.2 on the Richter scale.THE APPLE IIC: SUCCESS? Their original goal had been to sell the IIc for $995. As productionscosts turned out, they found that they couldn't hit that price, so they cameup with $1,295, balancing the decision with the number of people who werepredicted to buy the optional Monitor IIc or an external Disk IIc drive. The only problem was that although the IIc was a technologicalbreakthrough in miniaturization, customers at that time didn't valuesmallness. They viewed something that was too small as also being cheap andlacking power. Although the Apple IIc was equivalent to a IIe loaded withextra memory, a disk drive, two serial cards, and a mouse card, mostcustomers seemed to want the more expandable IIe. Apple marketing went tomuch effort to make the IIc attractive, but it didn't sell as well as theIIe. Just as IBM overestimated the market when producing its PCjr (whicheventually failed and was discontinued), so did Apple when producing the IIc(and the original Macintosh).<7>THE APPLE IIC: OVERCOMING LIMITATIONS Although the IIc did not have any slots for plugging in peripheralcards that had traditionally been used in the Apple II, the ports that werebuilt-in had the capability to do much of what the slots had often been usedfor. The serial ports were compatible with any serial device; this includedcommon ones such as printers and modems, and uncommon ones like securitycontrollers, clocks, and speech synthesizers. Some third party companiesalso supplied serial-to-parallel converters for IIc owners who wanted to useparallel printers made by Epson, Okidata, and C. Itoh that were popularelsewhere in the computer world. There was, of course, the AppleMouse IIc sold by Apple. It pluggedinto the game port on the IIc. Also available were two types of touchtablets: The Power Pad (Chalkboard) and Koala Pad (Koala Technologies),though the latter sold best. The Koala pad would appear to a program to bethe same as a joystick, but could not emulate the mouse.<8> The disk port on the original IIc was only designed to control anexternal 5.25 disk drive. Apple sold the Disk IIc for $329, and othercompanies later sold similar drives for less. Despite this firmwarelimitation, Quark Engineering released a 10 MB Winchester hard drive calledthe QC10 that would work with this disk port, and was the first hard diskavailable for the IIc.<8> The video port worked with a standard monitor, but had access to allvideo signals. Included with the original IIc was an RF modulator thatallowed it to be connected to a standard television (for color games). AnRGB adapter box attached to the video port would allow a true RGB monitor tobe attached, giving color and sharp, readable 80 column text on the samemonitor. Apple also sold a flat-panel liquid crystal display for the IIcthat attached to this video port. It was capable of 80 columns by 24 lines,as well as double hi-res graphics. Apple's price was about $600, but itlooked somewhat "squashed" vertically, and did not sell well. Anothercompany marketed a better flat panel liquid crystal display called the C-Vue. With a battery attached to the 12V input, and a liquid crystal display,the IIc could be made into a truly portable computer.<8>THE APPLE IIC: ENHANCEMENTS The earliest change made available for the IIc was a motherboard swapthat fixed a hardware bug causing some non-Apple modems to fail if used at1200 baud. This modification was made only if the owner could show theyneeded the change (that is, they owned a 1200 baud modem that wouldn't work). The first significant upgrade available for Apple IIc owners was alsoavailable as a free upgrade for previous owners. Changes were made to thedisk port firmware to accommodate the new 800K UniDisk 3.5. Using Apple'sProtocol Converter scheme (later called "Smartport"), this new IIc couldhandle four 3.5 disk drives, or three 3.5 disk drives and one 5.25 drive. With the UniDisk 3.5 upgrade, the internal 16K ROM was increased insize to a 32K ROM that was bank-switched to make space for the extra codenecessary to implement the Smartport. Also added were additional serial portcommands to improve compatibility with the older Super Serial Card. TheMini-Assembler, absent from the Apple II ROMs since the days of the originalInteger BASIC Apple II, was added back in, with support for the extracommands provided by the newer 65c02 processor (the disassembler had alwayssupported those new commands). The STEP and TRACE Monitor commands made acomeback, having also been a casualty of the 1979 Autostart ROM for theApple II Plus. Rudimentary firmware was also included to allowing the IIcto be attached to an AppleTalk network (a message that said "AppleTalkOffline" would appear if you typed "PR#7" from BASIC), but it was nevercompleted, and did not appear in future revisions of the IIc ROMs. Lastly,the new IIc ROMs included a built-in diagnostic program to do limitedtesting of the computer for internal failures, and had improved handling ofinterrupts.<9> The next Apple IIc upgrade was known as the Memory Expansion Apple IIc. This came as a response to requests for the ability to add extra memory tothe IIc. Applied Engineering had already produced a Z-80 coprocessor for theIIc (to allow access to CP/M software), and an expanded memory card, up to1 MB, which would either act as a RAMdisk for ordinary ProDOS applications,or as extra memory for the AppleWorks desktop (through a special patchingprogram). Seeing the popularity of this, Apple released this third versionof the IIc ROMs and motherboard, this time with a RAM expansion slotincluded. The Apple IIc Memory Expansion Card could take up to 1 MB of RAM,in 256K increments. The firmware in the new ROMs made it work as a RAMdiskautomatically recognized by ProDOS and following the Smartport protocol thathad been designed for the UniDisk 3.5. Apple even included code in the newROM to patch DOS 3.3 so it could be used as a RAMdisk with that system (400Kmaximum size), and did the same with Pascal v1.3. Also, because thisfirmware was in the motherboard ROM, ANY company could make memory cards toattach to this version of the IIc. Other changes made in this version of the IIc ROM included moving themouse firmware from slot 4 to slot 7, and putting the RAMdisk firmware intoslot 4. Also fixed was a bug that caused a write-protected 3.5 disk to beincorrectly identified with early versions of the UniDisk 3.5.<9>,<10> Since code as complex as ROM firmware rarely makes it out the doorwithout at least one bug, Apple had to make one final improvement to the IIcROM. The Revised Memory Expansion Apple IIc (ROM version 4) included changeswhich made it easier to identify if no RAM chips had been installed on thememory card. A problem with keyboard buffering was also fixed. Lastly, thisversion of the ROM resolved an obscure bug in the slot 2 firmware that wassupposed to allow the IIc to function as a simple terminal (with a modemattached to that port). The previous version of the IIc ROM had beenassembled with a couple of wrong addresses in the code, and the terminal modeproduced garbage. Few people used this feature, so it was not noticeable tomost users, and the corrected ROM chip was therefore not as quickly availableas the original Memory Expansion upgrade. ++++++++++++++++++++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: Disk Evolution / The Apple IIc Plus++++++++++++++++++++++++++++++++++++++++++++++++++++++ NOTES <1> Rose, Frank. WEST OF EDEN: THE END OF INNOCENCE AT APPLE COMPUTER, 1989, p. 48. <2> Rose, Frank. ibid, pp. 110-112. <3> Hogan, Thom. "Apple: The First Ten Years", A+ MAGAZINE, Jan 1987, p. 45. <4> Williams, Gregg. "'C' Is For Crunch", BYTE, Dec 1984, pp. A75-A78, A121. <5> Little, Gary. INSIDE THE APPLE //C, 1985, pp. 1-7. <6> Weishaar, Tom. "Miscellanea", OPEN-APPLE, Aug 1985, pp. 1.61. <7> Durkee, David. "Marketalk Reviews", SOFTALK, Jun 1984, p. 120. <8> Baum, Peter. "Expanding The Unexpandable IIc", SOFTALK, Jun 1984, pp. 95-97. <9> -----. "Preface: The Apple IIc Family", APPLE IIC TECHNICAL REFERENCE MANUAL, 1984, 1986, pp. xxiii-xxv. <10> -----. APPLE IIC MEMORY EXPANSION CARD OWNER'S GUIDE, 1986, pp. 2-4. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 9 -- DISK EVOLUTION / THE APPLE IIC PLUS) [v1.2 :: 21 May 92]ADVANCES IN APPLE II DISK STORAGE Since Steve Wozniak's Disk II floppy drive changed the Apple II from ahobbyist toy to a serious home and business computer in the late 1970's, theprogress of disk storage has been slow for the Apple II series. In 1978, theyear the Disk II was released, Mike Scott (Apple's president) and RandyWigginton were asked at a user group meeting whether they were going to go tothe larger capacity eight-inch floppy drives (which had been around beforethe 5.25 floppy drives). They answered that no, the Apple II was not goingin that direction, but felt it might get a hard disk by 1979 or 1980, andpossibly earlier than that a double sided, double density 5.25 disk with 500Kper disk.<1> Of course, this never did happen; as we saw in part 7 of thishistorical overview, the Apple III project began to overtake the hearts andminds of Apple executives by 1979, and anything newer, bigger, or better wasreserved for that machine. As a result, DOS 3.2 and 3.3 was hard-coded towork specifically with the Disk II and its 143K of available storage, andnever enhanced to easily access larger capacity drives. (Later, when weexamine the evolution of Apple II DOS, we will see that it was possible fromthe beginning for DOS 3.2 and 3.3 to access up to 400K per disk in itscatalog structure; however, the low-level disk access routines built-in toDOS were ONLY for the Disk II). So what changes DID occur in Apple II disk storage? Between 1978, whenApple released their original Shugart 5.25 inch floppy drives, and 1984,nothing much changed. Third party company produced patches that modified DOS3.2 (and later DOS 3.3) to work with larger drives; from eight-inch floppydrives to hard disks (a whole 10 megabytes for only $5,350 from Corvus!<2>)to other various short-lived innovations, all made to try to end the "floppyshuffle". (One of the more interesting ones put five floppy disks into acartridge, and through software made them appear to the computer as one largedisk drive). Eventually Apple decided that the aging Disk II mechanismneeded a face lift, and they introduced in the DuoDisk in May of 1984. Thiswas essentially two Disk II drives in a single cabinet, with a specialcontroller card. The drive mechanism was improved to better read half-trackson disks (which some copy-protected software used), and at $795 was priced tobe less expensive than buying two of the older Disk II drives with acontroller card.<3> The most important advantage of this new design was anelimination of the "fried disk drive" problem that happened constantly withthe older design. The old Disk II controller had two connectors, one foreach Disk II drive that could be connected. The problem was the in thedesign of the connector; like the game paddle plugs for the original Apple IIand II Plus, the plugs for the Disk II drives were simply a series of pinsthat had to be properly aligned for the drive to function (similar to thedelicate pins on a computer chip). If you tried to attach the plug in such away as to accidentally shift the pins over by one, it would burn out themotor on the disk drive, requiring a trip for repairs to the local Appledealer. The new DuoDisk design made connection of the disk mechanism to thecontroller fool-proof. With the release of the Apple IIc in April 1984 came an externalDisk II drive that was designed to plug into the new disk port in the back ofthe IIc, and was the same color and design as the IIc case. The Disk IIc wasspecific to the Apple IIc and could not be used with any older versionApple II, since it used a new, unique connector. However, since it was moreexpensive than a used Disk II drive, many users found out how to make aconversion cable to connect the older drive to the disk port; some even wentthe other direction and found ways to connect the new drive to the olderDisk II controller cards for the II Plus and IIe. The next small evolutionary step in disk storage technology for theApple II was introduced in June 1985, with the release of the UniDisk 5.25. This drive was designed with the same appearance as the DuoDisk, but was asingle 5.25 drive. It was also designed to allow one drive to be"daisy-chained" to another (one disk could plug into the back of another,forming a "chain"), instead of the older method of connecting each driveseparately to the disk controller card. Its beige color was designed tomatch the original Apple IIe.<4>,<5> The last version of the Disk II was called the Apple 5.25 drive. Itwas identical to the UniDisk 5.25 drive, except for its case, which wasdesigned in the platinum color to match the Apple IIGS and the platinum IIe. The connector it used allowed it to also be connected in a daisy-chainfashion.<5>NOW A WORD FROM OUR SPONSOR: BASICS OF DISK STORAGE Let's diverge for a moment from discussing specific Apple disk productsand turn to a description on how the data are stored on a disk. There aretwo important concepts that you need to understand to see why some methods ofdata storage are "faster" than other methods. The first concept is thephysical data layout on the disk, and the second concept is the "logical"data layout. The physical layout of data on a disk is important to the hardware ofthe disk drive. If the computer tells the disk drive to retrieve data fromthe disk, it has to be able to tell the drive exactly WHERE on the disksurface that data are stored. Most disk drives in use today (and when SteveWozniak designed the original Disk II) store data on disks that are round,magnetically coated pieces of plastic that spin within a protective sleeve. The older 5.25 inch and 8 inch disks were "floppy" disks because they used aflexible protective sleeve (unlike the older yet but larger capacity "hard"or fixed disks, which usually could not be removed). The newer 3.5 inchdisks are also made of the same magnetically coated plastic, but theirprotective sleeve is a hard shell. Within its sleeve the thin plastic diskspins around rapidly while the disk drive motor is on. When a disk is formatted, certain addresses are written to the disksurface in a pattern that is known to the program (the disk operating system)used by the computer controlling the disk drive. Most computers divide thedisk surface up into concentric rings (called "tracks"), and each track isdivided up into segments called sectors or blocks. Each segment holds aspecific number of bytes of data; for the Apple II, this has been either 256bytes (sectors on 5.25 disks) or 512 bytes (blocks on newer disk devices). The number of sectors or blocks per track differs, depending on the device inquestion; what is important is that the disk operating system knows how toget to the right block when a request is made of it. The second concept, that of the "logical" layout of the disk, has to dowith the way in which the disk operating system organizes the physical blockson each track. Imagine a phonograph record on a turntable (some of you stillown those, don't you?) It physically resembles a floppy disk; it is justlarger in size and is not "floppy". Mentally take a white marking pen anddraw lines through the center of the record, across the entire surface fromside to side, making the record resemble a pizza that has been cut up intowedges.Now draw a series of concentric circles, from the outside of the record downto the center. Each ring will, of course, be smaller than the previous ring. The rings you have drawn represent "tracks" on our simulated floppy disk, andthe lines running through the center of the record represent the division ofeach track into blocks. Suppose we drew enough lines to divide the record upinto twelve "pieces" (of pizza). That means that each "track" has twelve"blocks". Now that you have your disk divided up (you just "formatted" it!),let's store some data on it. Numbering each "block" from one to twelve (likethe numbers on a clock), let's put a checker into each block on the first(outermost) "track" (yes, a checker. You know--from the game?) Repeat theprocess on the second track, then the third, and so on, as far as you can go. Eventually you won't be able to fit checkers into the blocks, because theywill get too small. (This points out one of the limits of floppy disks; atsome point the available space on the disk becomes so small it is unusable. A standard 5.25 disk for the Apple II can have anywhere from 35 to 40 tracks(Apple has always supported only 35 tracks), while the 3.5 disk has 80tracks. The checkers we have put in the "blocks" on this disk have also beenlabelled, but with the letters "A" through "L" for the first track, and "M"through "X" for the second track, and so on. Turn on the record player. If you hold your hand over one spot on thefirst track on the record, you can see the lettered checkers as they movepast. As it goes by, grab the "A" checker, then the "B" checker, and so on. Likely, after picking up checker "A" (on block 1), you had to wait for anentire rotation of the record before "B" comes by on block 2. The same goesfor "C", "D", and so on. In computer terms, the "interleave" on this disk is1 to 1 (written as 1:1). If you were EXTREMELY fast, you could pick up "A","B", "C", etc. as quickly as they went by, without having to wait for thenext revolution of the record. While few of us would be that fast, many ofus could pick up a checker after about four went by that we didn't need. "Reload" your data on this disk, this time putting checker "A" on block 1,then checker "B" on block 5, checker "C" on block 9, checker "D" on block 2,check "E" on block 6, and so on. Now, as the record spins, you might be ableto pick up "A", "B", "C", and so on without having to wait for the nextrevolution of the record. This would be (approximately) a 4:1 interleave. With this "logical" layout, you can pickup (load) checkers from the disk, andreplace (store) checkers on the disk more efficiently. If your hands arestill not fast enough, you may need to increase the interleave to 6:1 or even8:1. If your hands are faster, you could possibly use a 3:1 or 2:1interleave. This is roughly what happens with disk access. A disk device andoperating system that is extremely quick about processing the data it readsoff a disk can have a short interleave (1:1 or 2:1). A slower disk device oroperating system may need to use a 4:1 or higher interleave to work mostefficiently. One last note: Because a track on a disk contains a continuous streamof data bits, Apple drives were designed from the beginning to use"self-synchronization" to be able to tell one byte from the next. Thiscontinuous series of bits would be similar to having a paragraph of text withno spaces between words. If a sentence read "GODISNOWHERE", does it mean"GOD IS NOWHERE" or "GOD IS NOW HERE"? Some method is needed to let thecomputer doing the reading know where the "spaces" between bytes exists. Iwon't go into detail on exactly how this is carried out, but suffice it tosay that some bytes on the disk are reserved for this decoding process, andso the true data bytes are specially encoded to not be mistaken for theself-sync bytes. The process of decoding these "raw" data bytes is calledde-nibblization, and translates about 700 of the raw bytes read directly fromthe disk into 512 true data bytes. This is another part of the overheadnecessary when reading from or writing to the disk; it would be similar tohaving to draw something on each checker with a marker as it was removed fromthe spinning record described above.THE UNIDISK 3.5 AND APPLE 3.5 The first new disk drive that Apple released after the original Disk IIwas a 400K, single-sided 3.5 inch drive for the original Macintosh. Then, inSeptember 1985 Apple finally released a similar drive for the Apple IIseries, one that was not simply a cosmetic improvement of the originalDisk II drive. The UniDisk 3.5 drive was a double-sided version of the Macdrive, and could hold 800K of data. The only connection that this new drivehad with the original 5.25 drives was a chip used on its controller card;this IWM chip (for "Integrated Woz Machine") put the function of the originalDisk II controller onto a single chip, plus the enhancements needed tooperate this higher density drive.<4> Apple's design for the UniDisk 3.5 wasunique, in that it used a modification to Sony's design that varied the speedof disk rotation, depending on which concentric track was being accessed. This change made it possible for data to be packed compactly enough in thesmaller inner tracks to gain an extra 80K beyond the 720K that was originallypossible. The UniDisk was directly supported by the newer Apple IIc motherboards(as mentioned in the previous part of this History), but for the olderApple II's a special controller card was required. The UniDisk 3.5 wasdesigned as an "intelligent" drive, and had a self-contained 65c02 processorand memory to temporarily store ("buffer") data being read from or written tothe disk. This was necessary because of the slow 1 MHz speed of the 6502processors in the Apple II; they could not keep up with the faster datatransfer rates possible with the 3.5 disk mechanism, plus the overhead ofde-nibblization. This extra processing did cut down the speed in the UniDiskdata transfer rate, but compared to the older Disk II drives it seemed MUCHfaster. With the release of the Apple IIGS in September 1986 came a new versionof the 800K 3.5 drive called the Apple 3.5. This mechanism could be used oneither a Mac or Apple II, fitting into the trend at Apple at makingperipherals compatible between the two computers. The major differencebetween this drive and the original UniDisk 3.5 was that it had beenlobotomized to be a "dumb" drive. Gone was the internal 65c02 processor chipused in the UniDisk 3.5 (which made it an "intelligent" drive) and theability of the drive to buffer its own read and write operations. The newerApple 3.5 drive did away with the extra circuitry, leaving it to the computerto handle direct control of the drive. This could be done in the IIGSbecause of its faster 65816 microprocessor, which could keep up with thehigher rate of data transfer. Recall the above discussion of interleave? The original UniDisk 3.5 worked best with an interleave of 4:1, but theApple 3.5 used 2:1 interleave and could do disk reads and writes faster. Disks formatted with either drive were usable with the other one, but wouldbe slower on the "foreign" drive.<5> Overall, Apple released four versions of 3.5 drives between 1984 and1986. First was the 400K drive used on the original Macintosh, then the 800KUniDisk 3.5 (which wouldn't work on the Mac), then an 800K drive for the Mac(which wouldn't work on the Apple II), and finally the Apple 3.5 drive, whichworked on the Apple IIGS and the Mac, but not the IIe and original IIc.<5>THE APPLE IIC PLUS: HARDWARE Recalibrating our special time-travel card to focus on the final 8-bitversion of the Apple II, let's travel to mid-1987. It was at this time thatsomeone at Apple decided that the IIc needed to be upgraded. Shortly beforeJuly, three years after its original 1984 introduction, it was felt that theApple IIc would benefit from the larger capacity Apple 3.5 drive as itsinternal drive. The primary intent was to make only this change, whileleaving the rest of the IIc as it was. As with most other Apple projects,this went by various internal code names during its development, includinePizza, Raisin, and Adam Ant.<11> Trying to use the Apple 3.5 drive in the Apple IIc was certainly anengineering problem. As mentioned above, the 1 MHz 65c02 was simply notfast enough to take raw data off the Apple 3.5 drive, de-nibblize it intousable data, and pass it to the operating system. The "intelligent" 3.5drive was designed in the first place for that very reason. To solve theproblem, Apple contracted with an outside firm to design a special digitalgate array that made it possible for the 1 MHz 65c02 to just barely keep upwith the data transfer rate from the Apple 3.5 drive. In accomplishingthis, it needed an extra 2K of static RAM space to de-nibblize the raw datafrom the 3.5 drive. This extra memory had to be available OUTSIDE thestandard Apple IIe/IIc 128K RAM space, since there was simply not enoughfree memory available to spare even that little bit of space. The codeApple engineers wrote to use the drive was SO tight that there were EXACTLYenough clock cycles to properly time things while controlling the drive. (Each assembly language instruction takes a certain number of clock cycles;these cycles have to be taken into account for timing-sensitive operationssuch as disk and serial port drivers). To support older Apple II software that came only on 5.25 disks, thedisk port on the back was now changed to handle not only external 3.5 drives(either UniDisk 3.5 or Apple 3.5), but also up to TWO Apple 5.25 drives whichcould be chained together (the same drives used with the Apple IIGS). Thesecould be chained together as could the 3.5 drives. The IIc Plus, then, couldhave three additional drives attached, in any mixture of Apple 3.5,UniDisk 3.5, or Apple 5.25 drives.<6> The IIc Plus design was not thought out completely from start tofinish, however. After they did the work with the special gate array to makethe original IIc architecture work properly, someone decided that it was nota good idea to release a 1 MHz computer in 1987. People want speed, theyreasoned; look at the world of the IBM PC and its clones, where each yearfaster and faster models are released. They decided then to retrofit the newIIc with a faster 4 MHz version of the 65c02. That change, had it been donefrom the start, would have made engineering the internal 3.5 drive simpler;they could have just used the processor at 4 MHz for 3.5 drive access, andthen used the true system speed (as selected by the user) for all otherfunctions. The complicated gate array would not have been necessary. But,since the faster speed was added as an afterthought, and the project wasunder a tight schedule, the gate array design was not changed. To accomplish the faster processor speed for the IIc Plus, Apple wentto another outside firm, Zip Technologies. This company had already marketedan accelerator, the Zip Chip, that was popular as an add-on product forexisting Apple II computers. Users could simply remove the 6502 or 65c02chip in their computer, replace it with the special Zip Chip, and suddenlythey had a computer that ran up to four times as fast. Apple licensed thistechnology from Zip, but engineers balked at actually using the Zip Chipitself for the IIc Plus. Part of this was because of the size of the ZipChip. The chip was shaped like a standard integrated circuit, but wasthicker vertically than a basic 65c02. Inside the extra space was a fast65c02 processor, plus some caching RAM, all squeezed into a space that wouldfit even into the original Apple IIc (where space was at a premium). (TheZip Chip "cache" is a piece of RAM memory that is used to hold copies ofsystem memory that the processor is frequently accessing. For instance, if alot of graphics manipulation is being done by a program, the caching RAMwould hold a copy of part of the graphics RAM, and could access it muchfaster than the standard RAM. This is part of what makes an after-marketaccelerator work). Zip had wanted Apple to buy their Zip Chip and simply use that productin the IIc Plus. Obviously, this would have been to Zip's advantagefinancially. However, the thicker vertical size of the Chip made testing thecompleted computer more difficult, and it would be a problem to isolateproduct failures to the Zip Chip, instead of something else on themotherboard. By using a 4 MHz 65c02 and two 8K static RAM chips as separatecomponents in the IIc Plus, Apple engineers could ensure that it would workand be available in a large enough volume for production. When they weredesigning the IIc Plus, Zip Technologies could not guarantee they couldprovide reliable products in the volume Apple needed. The IIc Plus did not have the 12 VDC input on the back panel as did theearlier IIc's; instead, the power supply was built-in. This was not becauseit was necessarily a better design, as an internal power supply was actuallyless reliable ultimately than the external power supply. (It exposes theinternal components to higher levels of heat over the lifetime of theproduct). But because many people had criticized Apple about the IIcexternal power supply (called a "brick on a leash" at Apple), that they haddecided to make it internal on the IIc Plus as it was on all their otherproducts. This change apparently did not cause any significant problems, asfew people were actually trying to use the IIc as a "portable" computer (witha battery pack). The memory expansion slot on the IIc Plus was not compatible with thememory cards that Apple had produced for the older IIc. This was primarily atiming problem; it was not because the RAM chips in the memory card were notfast enough to keep up with the 4 MHz speed of the IIc Plus. (Older IIcusers can use an Apple Memory Expansion card with an 8 MHz Zip Chip with noproblems). The IIc Plus also had an additional connector at the opposite endof a memory card plugged into the expansion slot. Signals from port 2 weremade available at that end, so third party companies could make a card thatwas a combination RAM card and internal modem. However, this never did comeabout (see below). Other changes in the IIc Plus included a slightly redesigned keyboardand mini-DIN-8 connectors on the back panel for its serial ports (to be morecompatible with Apple's new Macintosh and IIGS keyboards). One interesting note: John Arkley, one of the engineers working on theproject and a long-time Apple employee, campaigned long and hard to takethings a step further. He wanted them to take an Apple IIGS motherboard,remove the slots, change the ROM to support only the internal "slots", andrelease a IIGS in a IIc case. He felt it would have made a great portable,non-expandable IIGS, but could not get anyone who could approve the plan toget interested in the idea.THE APPLE IIC PLUS: FIRMWARE The IIc Plus ROM was called revision 5 (the previous Revised MemoryExpansion IIc was labelled as revision 4). The main changes present were theones that supported the internal Apple 3.5 drive. Firmware on the new IIcwas not any larger than the 32K on the previous models, but it did use theentire space (the previous IIc didn't use the last 8K available in the ROM). One minor bug that slipped by in the IIc Plus firmware was an inabilityto deal with 400K (single-sided) 3.5 disks. There were few commercialsoftware packages that came on such disks, however.<7>,<8>THE APPLE IIC PLUS: INTRODUCTION In September 1988 the Apple IIc Plus was introduced to considerablyless fanfare than the original IIc was in April 1984. There were no promisesof "Apple II Forever" this time; instead, it warranted little more than apress release in various Apple II magazines of the time. Its selling pricewas $675 (or $1,099 with a color monitor). This was remarkable, consideringthat the original Apple IIc WITHOUT a monitor sold for nearly double theprice ($1,295) and had far less capacity and power than this new version. Some models of the IIc Plus were even shipped with 256K of extra memoryalready added. It was faster than any other Apple II ever produced(including the 2.8 MHz IIGS), and was probably the finest 8-bit computerApple ever produced.THE APPLE IIC PLUS: LESS THAN A SUCCESS Early on, the Apple IIc Plus was a big seller, and by January 1989 itwas above forecasted sales levels. However, the biggest hurdle that theIIc Plus had to overcome was not the external marketplace, but rather theinternal market opinions at Apple Computer, Inc. Since Macintosh-mania wasstill in full swing at Apple, and that younger brother of the Apple II wasgetting most of the attention from management, the IIc Plus (as well as theIIGS) suffered. It was not because of a lack of capability, but primarilyfrom failure to thrive due to inadequate home nutrition, so to speak. Also,the IIc Plus had the same problem as the original Apple IIc; customers seemedto want the IIe with its slots, or the greater power of the IIGS. There were some products that were designed by third-party developersfor both the IIc and IIc Plus that never made it to the market for variousreasons. Applied Ingenuity (later known as Ingenuity, Inc) had two productsthat would have markedly increased the portability of the IIc/IIc Plus. Onewas an internal hard disk they called "CDrive", which would have replaced theApple IIc or IIc Plus internal floppy disk drive (converting it into anexternal floppy drive). Even more unique was "CKeeper", which was amulti-function card with many features. It could hold up to 1.25 MB of extraRAM; it had a clock/calendar chip that was ProDOS compatible; it had firmwareroutines to support dumping text or graphics screens to the printer; it couldfunction as a built-in assembly language program debugger; and best of all, afeature called RAMSaver, which maintained power to the RAM chips during apower failure or if the power switch was turned off. Both of these productsnever saw the light of day, primarily because the company went out ofbusiness before they could be finished.<9> Chinook Technologies actually finished design on an internal modem forthe IIc Plus, but never released it. This card, 1.5 by 6 inches in size,would have mounted inside the disk drive shield. It connected to a small boxattached to the outside of the IIc case, where there were cut-outs providedby Apple for connection of an "anti-theft" cable. This external box hadphone jacks for the phone line and a telephone, just like most externalmodems. Undoubtably it never was released because of Apple's indifferencetowards the IIc Plus.<10> With inadequate support by Apple marketing, third-party hardware andsoftware developers had little motivation in designing any new products forthe IIc Plus. Therefore, no unique products ever emerged on the market totake advantage of its features. Finally, in September of 1990 the IIc Pluswas discontinued by Apple, leaving the platinum Apple IIe and the Apple IIGSas the remaining bearers of Wozniak's legacy.++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple IIGS++++++++++++++++++++++++++++++++++ NOTES <1> Thyng, Mike. "Apple Source", PEEKING AT CALL-A.P.P.L.E., VOL. 1, 1978, pp. 7-8. <2> -----. -----, APPLE ORCHARD, VOL. 1, NO. 1., Mar-Apr 1980, various. <3> -----. "Tomorrow's Apples Today", CALL-A.P.P.L.E., May 1984, p. 78. <4> -----. "The Marketplace", CALL-A.P.P.L.E., Jul 1985, p. 49. <5> Baum, Peter and Allen. "Speaking Of Hardware", CALL-A.P.P.L.E., Oct 1987, pp. 30-34, 51. <6> Weishaar, Tom. "Apple rediscovers the Apple II", OPEN-APPLE, Nov 198, p. 4.73. <7> Weishaar, Tom. "Ask Uncle DOS", OPEN-APPLE, Jan 1989, p. 4.91. <8> Weishaar, Tom. "Miscellanea", OPEN-APPLE, May 1989, p. 5.27. <9> -----. "Ingenuity News", II AT WORK, Vol. 2, No. 1, Spring 1990, p. 30. <10> Hoover, Tom. (personal mail), GEnie, E-MAIL, Nov 1991. <11> A+ Staff. "NewsPlus", A+ MAGAZINE, Oct 1989, p. 18. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 10 -- THE APPLE IIGS) [v1.0 :: 06 Dec 91]THE APPLE II EVOLVES While the capabilities of the Apple II slowly advanced as it changedfrom the II up through the IIc, the one thing that remained essentiallyunchanged was the 6502 microprocessor that controlled it. Even though the65c02 had more commands than the 6502, as an 8-bit processor it wasinherently limited to directly addressing no more than 64K of memory at onetime. (As an 8-bit processor, the 6502 could handle only 8 bits, or one byteat a time. However, its address bus was 16 bits wide, which made for amaximum address of 1111 1111 1111 1111 in binary, $FFFF in hexadecimal, or65535 in decimal. If you divide 65536 bytes by 1024 bytes per "K", you get64K as the largest memory size). When Wozniak designed it, 64K wasconsidered to be a massive amount of memory, even for some mainframecomputers. (For example, the old mainframe on which I learned programmingduring college back in 1975 was a ten-year-old IBM 1130 with 8K of memory;this was used for both the operating system AND user programs!) Most hackersof the time would not have known what to DO with four megabytes of memory,even if it had been possible (or affordable) to install that much. Consequently, programs of the day were compact, efficient, and primarilytext-based. The non-Apple II computer world had developed and advanced, and Applegrudgingly allowed the Apple II to make its small, incremental advances. Occasionally, efforts were made within Apple to make a more powerfulApple II, but the lure of "better" computers always turned the attention ofmanagement away from allowing such a project to actually make any progress. First the Apple III, then Lisa, and finally Macintosh swallowed the researchand development dollars that Apple's cash cow, the Apple II, continued toproduce. The latter two computers were based around the 16-bit Motorola68000 microprocessor, which had the capability to address far more than 64Kof memory. The Apple II could make use of more memory only throughcomplicated switching schemes (switching between separate 64K banks). Although "Mac-envy" hit many Apple II enthusiasts both inside and outside ofApple, causing them to move away from the II, there were still many otherswho continued to press for more power from the II. Eventually, a company called Western Design Center revealed plans toproduce a new microprocessor called the 65816. This chip would have all ofthe assembly language opcodes (commands) of the 65c02 through an "emulation"mode. However, it would be a true 16-bit processor, with the ability handle16 bits (two bytes) at a time and to address larger amounts of continuousmemory. The address bus was enlarged from 16 to 24 bits, making the 65816capable of addressing 256 times more memory, or 16 megabytes. The power tomake a better Apple II was finally available.THE RETURN OF WOZNIAK Back in early 1981, Steve Wozniak was involved with several projects atApple. He had helped write some fast math routines for a spreadsheet productthat Apple had planned to release in competition with Visicalc. Also, SteveJobs had managed to convince Wozniak to participate with his fledglingMacintosh project. Then, in early February, Wozniak's private plane crashed. He was injured with a concussion that temporarily made it impossible to formnew memories. He could not recall that he had an accident; he did notremember playing games with his computer in the hospital; he did not rememberwho visited him earlier in the day. When he finally did recover from theconcussion, he decided it was time to take a leave of absence from Apple. Wozniak married, and returned to college at Berkley under the name "RockyClark" (a combination of his dog's name and his wife's maiden name). Hedecided he wanted to finally graduate, and get his degree in electricalengineering and computer science. When he was done with that, he formed acorporation called "UNUSON" (which stood for "Unite Us In Song") to produceeducational computer materials, wanting to make computers easier for studentsto use. He also decided use UNUSON to sponsor a couple of rock music events,and called them the "US Festival".<1> Held on Labor Day weekend in 1982 and1983, these music and technology extravaganzas were invigorating for Wozniak,but he lost a bundle of money on both occasions. Though nowhere near dryingup the value of his Apple Computer stock, he decided that he was ready toreturn to work. In June of 1983, Wozniak entered the building on the Applecampus where the Apple II division was housed and asked for something to do.THE APPLE IIX When Wozniak returned, he discovered the latest of the Apple IImodernization projects, which was code-named "IIx". When he saw what the65816 could do, he became excited about the potential of the new Apple II andimmediately got involved. It was a tremendous boost in morale for thedivision to have their founder return to work. However, the IIx project wasplagued by several problems. Western Design Center was late in deliveringsamples of the 65816 processor. First promised for November 1983, theyfinally arrived in February 1984--and didn't work. The second set that camethree weeks later also failed. Other problems came out of the engineering mindset that still existedat Apple at the time. Recall that people there liked designing boxes thatwould do neat things, but there was not enough of a unified focus from aboveto pull things together. The marketing department wanted the IIx to have aco-processor slot to allow it to run different microprocessors. The codename of the project by this time was "Brooklyn" and "Golden Gate" (referringto the ability to make it a bridge between the Apple II and Macintosh). Theco-processor slot could allow the IIx to easily do what third party companieshad done for the original Apple II with their Z-80 boards (which allowed themto run CP/M software). Co-processor boards considered were ones for theMotorola 68000 (the chip used in the Macintosh), and the Intel 8088 (used inthe IBM PC). The IIx project got so bogged down in trying to become othercomputers, they forgot it was supposed to be an advanced Apple II. Politically it also had problems at Apple, because it was being aimed as ahigh-end business machine, which was where they wanted the Macintosh togo.<2>,<3> Wozniak lost interest as things ran slower and slower, andeventually the project was dropped.THE 16-BIT APPLE II RETURNS When the IIx project was cancelled in March 1983, some of the Apple IIengineers were assigned the task of reducing the cost of the Apple II. Engineers Dan Hillman and Jay Rickard managed to put almost the entireApple II circuitry onto a single chip they called the Mega II. Meanwhile,after the "Apple II Forever" event that introduced the IIc, interest in theApple II revived and sales were quite good. Management saw that sales of theopen IIe were better than the sales of the closed IIc, so they were agreeableto the idea of another try at the 16-bit Apple II, possibly utilizing theMega II chip. By late summer 1984 it was revived with the code name"Phoenix" (rising from the ashes of the IIx project).<3>THE APPLE IIGS: GOALS OF THE DEVELOPMENT TEAM The people involved in the Phoenix project were very knowledgeableabout the Apple II, from the days of the ][ through the //c. They knew whatTHEY wanted in a new computer. It should primarily be an Apple II, not justsomething NEW that tried to be all things to all people.<4> Dan Hillman, whohad also been involved as the engineering manager for the IIx project, statedin an interview, "Our mission was very simple. First we wanted to preservethe Apple II as it exists today. It had to work with Apple IIe software andApple IIc software. That was goal number 1. But we recognized that theApple II was an old computer. It had limitations. The new machine needed toaddress those limitations, break through those barriers--and the barrierswere very obvious: We needed to increase the memory size. We had to make itrun faster. We needed better graphics. And we had to have better sound. That was our mission." Since advanced graphics and sound were what wouldmake this new Apple really shine, the name eventually assigned to the finalproduct was "Apple IIGS".<3> Having learned from their experience in building the Apple IIe and IIc,they knew what would make the new 16-bit Apple II more powerful. TheApple IIc was easy to use because the most commonly needed peripherals werealready built-in. The Apple IIe, however, excelled in its ability to beeasily expanded (via the slots) to do things that were NOT commonly needed orbuilt-in. Harvey Lehtman, system software manager for the project, stated,"We ... wanted the Apple IIGS to be easy to set up, like the IIc, and easy toexpand, like the IIe."<3>THE APPLE IIGS: ARCHITECTURE Wozniak was quite involved in designing the general layout of the IIGS. Insisting on keeping it simple, he recommended AGAINST a built-inco-processor (as they tried to do with the IIx). He also wanted to keep the8-bit part of the machine separate from the 16-bit part. To accomplish this,he and the other engineers decided to design it so the memory in the lower128K of the machine was "slow RAM", which made it possible for it to functionjust as it did on the older Apple II's. This included the memory allocationfor the odd addressing schemes used in the text and graphics modes and (whichmade sense in 1976, but not in 1986). The rest of the available memory spacewould be fast, and could be expanded to as much as 16 megabytes. With afaster microprocessor, it would also be possible to run programs more quicklythan on the older Apple II's.<3>THE APPLE IIGS: GRAPHICS One area they decided to focus on was bringing the quality of graphicson the new Apple II up to modern standards. Rob Moore, the Phoenix projecthardware group manager, helped define the new graphics modes of the IIGS. Because a change that increased the vertical resolution from 200 dots to 400dots would make the computer too expensive (it would require a specialslow-phosphor monitor), they purposely decided not to go in that direction. Instead, they increased the horizontal resolution, and created two newgraphics modes (called "super hi-res"); one was 320 x 200 and the other was640 x 200. This decision also made it easier to keep compatibility witholder graphics modes.<3> As mentioned above, the text and graphics addressing on the oldApple II was odd, from a programming standpoint. When Wozniak originallydesigned the II, he made the memory allocation for text and graphics to be"non-linear", since this saved several hardware chips and made it lessexpensive to build. This meant that calculating the memory address of aspecific dot on the hi-res graphics screen or a character on the text screenwas not as simple as most programmers wanted. The hi-res screen began at$2000 in memory, and the first line on the hi-res screen (line 0) started atthat address. Each line on the hi-res screen was made up of 40 bytes of 8bits each, and seven bits of each byte represented a dot or pixel on thescreen, giving a possible 280 dots horizontally. Since 40 bytes is $28 inhex, line 0 then ran from $2000 to $2027 in memory. However, the second line(line 1) of the hi-res screen did NOT start at $2028 as one would expect, butat $2080. The hi-res screen line represented by memory locations $2028 to$204F was line 8, and $2050 to $2077 was line 16. The last eight bytes ofthis 128 byte section of memory was unused. The next 128 bytes wereallocated to screen lines 1, 9, and 17, and so on. Because this complicated things considerably for programmers, thedesign team for the IIGS wanted linear addressing, which would allow thememory addresses of line 0 to be followed by the addresses for line 1, and soon. Because the graphics resolution and range of available colors plannedwas much greater than either of the older graphics modes (hi-res or doublehi-res), they needed 32K of continuous memory to use. Because they plannedon a minimum memory configuration of 256K for the IIGS as it would beshipped, they could not come up with that much memory in one single block. Engineer Larry Thompson designed a special Video Graphics Controller (VGC) tosolve the problem. The chip combined two separate 16K blocks of memory andmake it appear as a single continuous 32K block of memory, as far as thegraphics programmer was concerned.<3> The new super hi-res graphics modes also gave far more color choicesthan either the old hi-res mode (which had six unique colors) or even thedouble hi-res mode (which had sixteen colors). In the 320 x 200 super hi-resmode, each line could have sixteen colors out of a possible 4,096, and in the640 x 200 mode, each line could have four colors out of 4,096. This gavegraphics power that was not even available on a Macintosh (which was stillblack and white at the time).THE APPLE IIGS: SOUND The second major area of focus for enhancements over the old Apple IIwas sound reproduction. The original sound chip that had been proposed forthe IIGS would have given it the sound quality of a typical arcade game. However, this was no better than what other computers in 1986 could do. RobMoore suggested using a sound chip made by Ensoniq, one that was used in theMirage music synthesizer. He had to push hard to get this included in thefinal design, but was able to convince management of its importance becausehe told them it would be "enabling technology" (borrowing a phrase from aMacintosh marketing book). He told them "it would enable people to do thingsthey'd never dreamed of doing."<3> The Ensoniq chip was capable of synthesizing FIFTEEN simultaneousmusical voices. To help it in doing such complex sound reproduction, theygave the chip a separate 64K block of RAM memory dedicated specifically forthat purpose.THE APPLE IIGS: MEMORY The 65816 is designed to address up to 16 MB of memory. The IIGS,however, was designed to support only 8 MB of RAM, and up to 1 MB of ROM (inhigh memory). With cards specially designed by third-party companies, up to12 MB of RAM could be added, but the memory manager in ROM was only aware ofthe first 8 MB. A special patch was needed to allow the system to use memorybeyond that point. Building on the traditional memory organization from 6502 days, memoryin the IIGS was usually referred to in banks, from $00 through $FF. Eachbank refers to a 64K chunk of memory. The lowest bank, $00, was identical tothe 64K memory space in the original Apple II. The next bank, $01, was thesame as the auxiliary memory bank used on the Apple IIe and IIc. (Additionally, the super hi-res graphics display was found in 32K of thememory in bank $00, from $2000 to $9FFF). The banks from $02-$7F were alsofor RAM storage, and covered things up to the 8 MB limit. Banks $80-$DFcould be used for another 4.25 MB of RAM, but as mentioned above they wereunusable (without a patch) because the memory manager didn't know how toaccess it. The memory expansion slot designed for the IIGS only had two lines todecode addresses. This allowed for direct access to each of four 256K RAMchips, or four 1 MB RAM chips. In order to make use of the next 4 MB of RAMsome special logic was needed to find and use it. RAM cards with more than 4MB were never directly supported by Apple.<5> Banks $E0 and $E1 were a special part of RAM that was used to duplicate("shadow") banks $00 and $01. This RAM was designed as "slow" RAM, and wouldbetter be able to run some of the older 8-bit Apple II software. Whenshadowing was active, anything a program did to addresses in banks $00 and$01 was duplicated in banks $E0 and $E1. Although it appeared to a programthat it was running in the lower two banks, it was really running in the slowRAM in banks $E0 and $E1.<6> Banks $E2-$EF were undefined. The last one MB from $F0-$FF wasallocated to ROM. The lower 512K (banks $F0-$F7) were set aside for aROMdisk. (A ROMdisk is just like a RAMdisk, except it will not lose itscontents when power is turned off). For a ROMdisk to be installed, a devicedriver for the disk had to be located at the beginning of bank $F0 (ataddress $F0/0000), and the driver had to start with the phrase "ROMDISK". The most common way this was used by third-party hardware providers was totake some of the GS memory, protect it with a battery (so its contents didn'tdisappear when the computer was turned off), and designate it properly to theIIGS as a ROMdisk (even though it was simply protected RAM, and not trueROM).<7> The rest of the space from $F8-$FF was reserved for system ROM. Theoriginal IIGS had ROM code only from $FE-$FF, while later versions expandedthis space to include $FC and $FD.++++++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: The Apple IIGS, cont.++++++++++++++++++++++++++++++++++++++++ NOTES <1> Miller, Jonathan. "The Life And Times Of Rocky Clark", SOFTALK, June 1982, pp. 141-144. <2> Pinella, Paul. "In The Beginning: An Interview With Harvey Lehtman", APPLE IIGS: GRAPHICS AND SOUND, Fall/Winter 1986, pp. 38-44. <3> Duprau, Jeanne, and Tyson, Molly. "The Making Of The Apple IIGS", A+ MAGAZINE, Nov 1986, pp. 57-74. <4> Hogan, Thom. "Apple: The First Ten Years", A+ MAGAZINE, Jan 1987, p. 45. <5> Regan, Joe. A2PRO ROUNDTABLE, Oct 1991, Category 16, Topic 2. <6> Williams, Gregg. "The Apple IIGS", BYTE, Oct 1986, pp. 84-98. <7> Nolan, Sean. "GS Memory Cards Compared", CALL-A.P.P.L.E., Aug 1987, pp. 10-17. This is the ENTIRE series of articles that make up the Apple IIHistory. They are readable in either AppleWorks 2.x or 3.0, but willrequire an expanded desktop for some segments. Please feel free to make comments (on GEnie's A2 Roundtable, Category2, 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 aboutit. I would like to have as accurate a history as possible. If you would like to print any of these files in a user groupnewsletter, 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 sendme a copy of any newsletter in which it is printed. My address is: Steven Weyhrich Zonker Software 2715 N. 112th St. Omaha, NE 68164-3666 (402) 498-0246 Enjoy! APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 11 -- THE APPLE IIGS, CONT.) [v1.0 :: 06 Dec 91]THE APPLE IIGS: MISCELLANEOUS HARDWARE Other features Apple engineers added to make the Apple IIGS a nextgeneration computer included a built-in clock, slot space for internalexpansion cards, and the electronic equivalents of seven more expansioncards.<1> Taking the cue from their experience with the Apple IIc, theyincluded as built-in features the peripherals that most users would want touse. They allocated serial ports to slots 1 and 2, the classic 80-columnfirmware to slot 3, the mouse controller to slot 4, a Smartport controllerto slot 5, a 5.25 inch disk controller to slot 6, and AppleTalk capabilityto slot 7. (AppleTalk was Apple's network protocol that had been designedoriginally for use with the Macintosh). Because the engineers wanted to make the IIGS capable of connectingto the AppleTalk network, the serial ports they planned were based on adifferent communications controller chip than was used in the older SuperSerial Card and the Apple IIc serial controller. Although the newcontroller chips were more capable than the older ones used on the 8-bitApple II's, telecommunications programs written for those older Apple'swouldn't work. This was because most terminal programs, for the sake ofspeed, were written to directly control the old Super Serial Card (ratherthan going through the slower, built-in firmware commands). Thecontrolling commands necessary to manage the newer chip were verydifferent, and so caused such software to "break".<2> The case and motherboard used in the Apple IIGS was made smaller thanthat found in the IIe, both in order to make a smaller "footprint" on adesktop, and also to make it easier to make an upgrade available for IIeowners. They had wanted to make it possible even for Apple II and II Plusowners to upgrade, but in the end it turned out to be just too expensiveand difficult to execute.<2> The Macintosh engineering group was at this time designing a protocolfor interfacing standard input devices, such as keyboards, mice, andgraphics tablets. This protocol, called the "Apple Desktop Bus", was firstimplemented on the Apple IIGS. It made possible the interchangability ofhardware devices between the Macintosh and Apple II lines, allowing Appleto sell a common set of peripherals that both computers could use.<2>THE APPLE IIGS: FIRMWARE Firmware, you may recall, is that layer of controlling programs inROM on a computer that sits between an application program and the hardwareit is trying to control. On the IIGS, the firmware was designed after thehardware was finalized. Unlike the older ROM that Wozniak included withthe original Apple II, the IIGS software engineers tried to make it morethan just a set of addresses to call to carry out a function (such asclearing the screen). Rather, they wanted to make a more comprehensivesystem (called a "toolbox") which could be more flexible for futureenhancements of the hardware and firmware. In particular, they didn't wantto have the addresses for carrying out certain functions to be fixed in asingle location as on the older Apples. This toolbox would have a singleaddress to call, and a specific command would be passed on through thataddress. Set up like this, it would allow Apple's firmware programmers tomodify the ROM in the future without having to take trouble to makemultiple addresses in the ROM "line up" properly. Additionally, they madeit easy to "patch" the toolbox code in the ROM using code loaded from disk,allowing programmers to fix errors that were later found without having toreplace the physical ROM chips. At first, they were given 64K of space for the ROM, over four timesas much as was available on the original Apple II. Later, they had to goback and ask for 128K of ROM, because of the many things that they neededand wanted to do. Of course, Applesoft had to be present in ROM in orderto maintain compatibility with the older Apple II software. Additionally,they also put all of the mouse-handling tools into the ROM (unlike the II,II Plus, and IIe, which had to have the mouse firmware on a card in aperipheral slot).<1> A boost to the firmware design of the IIGS came, unexpectedly, as aresult of the merger between the Apple II and Macintosh divisions. Thismerger came as part of the reorganization that coincided with the departureof Steve Jobs from Apple. Since the Macintosh team was now working in thesame place as the IIGS designers, they were available to offer help andideas. Bill Atkinson, the programming wizard who wrote MacPaint and manyof the mouse tools for the Macintosh, helped in the creation of the mousetools and QuickDraw II for the IIGS. (This was the name given to the ROMtools used to draw on the super hi-res screen, and was borrowed from theolder QuickDraw routines on the original Macintosh).<1> To allow the user to easily configure certain features of the IIGS totheir own tastes, a "control panel" was designed (another idea borrowedfrom the Macintosh). It was used to set the clock, the system speed(between a "normal" 1 MHz and a "fast" 2.8 MHz), change the standard textdisplay from 40 to 80 columns, set colors for the text screen, setsensitivity of the mouse and keyboard, and make the standard settings forthe printer and modem ports. These preferences were saved in a specialbattery-powered RAM that would survive even when the system power wasturned off.<1>THE APPLE IIGS: SYSTEM SOFTWARE ProDOS needed to be updated to better take advantage of theadditional memory on the IIGS, as well as the larger storage devices thatwere not very available when ProDOS was originally written. Back then,five megabytes was felt to be quite a large disk size. By the time theIIGS was designed, 40 megabytes was becoming a common standard. The newIIGS-specific version, called "ProDOS 16", would also be able to handle anynumber of open files at the same time (the older version of ProDOS waslimited to eight files open simultaneously).<1> The first version of ProDOS 16 was more limited than Apple'sdesigners wanted it to be, but they didn't want to hold up the new IIGSuntil a better version was ready. The version of ProDOS that would run8-bit Apple II software (on the IIGS or older Apple II's) was renamed"ProDOS 8". That version was modified to handle system interrupts better,which was important on the IIGS because of the control panel feature andthe way in which the Apple Desktop Bus worked. (An interrupt refers to aspecial signal that is sent to the microprocessor by a hardware device. This signal "interrupts" what the processor is doing, redirects it to dosomething else, and then returns the processor to what it was previouslydoing. The mouse on the IIc and the mouse card for the other Apple II'suse interrupts to handle movements of the mouse).<2> (Further details about ProDOS 16 and its later replacement system,GS/OS, will be found in an upcoming part of the Apple II History).IIGS PROJECT CODE NAMES AND TEAM MEMBERS The earliest name used internally at Apple for the IIGS project wasPhoenix (as mentioned earlier). It was also known as "Rambo" (when thedesign team was fighting for final approval from the executive staff),"Gumby" (from an impersonation done at Apple's Halloween-day parade), and"Cortland".<1>,<3> Some of the members of the design team not yet mentioned here includeNancy Stark (an early and energetic champion for the IIGS project); CurtisSasaki (IIGS product manager); Ed Colby (CPU product manager); JimJatczynski (Operating System group manager); Fern Bachman (who worked toensure compatibility with existing Apple II software); Gus Andrate (whodeveloped the sound tools and the unified drive firmware); and Peter Baum,Rich Williams, Eagle I. Berns, John Worthington, and Steven Glass, who eachdeveloped part of the IIGS system software and firmware.<4>THE APPLE IIGS: PRODUCT INTRODUCTION In September of 1986, Apple introduced the new Apple IIGS, bundledwith an Apple 3.5 drive, for $999 (not including a monitor). Applemanagement, somewhat surprised by the response that occurred in their"Apple II Forever" event two years earlier, made the decision to heavilypromote this new Apple II. Why they came to this change of heart wasunclear. Although they showed no slowing in their plans for the Macintosh(which was making steady progress in gaining acceptability in the businessworld), a multi-million dollar marketing and media blitz was arranged topromote the new IIGS as the ultimate home and recreational use computer. Even employees at Apple who had worked on the IIGS project were startled(but pleased) at the marketing intensity that was begun, and the order forthis came directly from the top. John Sculley himself had insisted thatthe Apple IIGS be given highest priority. (Apple's CEO since 1983, he hadjust a year earlier ousted founder Steve Jobs from day to dayresponsibilities at Apple). Rumors flew, but were never confirmed, about ashaken Sculley who had come to an executive staff meeting in July of 1986with stories of strange things he had experienced. He had supposedlyreceived a frightening nighttime visit from a yellow-garbed alien whocalled himself "Darth Vader" from the planet Vulcan. "He told me that hewould meld my brain if I didn't put all I could into marketing theApple IIGS! I have to do it!!", he was reported to have said, white-fistedand pale, at that meeting. Despite the obvious references toscience-fiction movies and television of the 1960's and late 1970's, theexecutive staff bowed to his requests (which were no less firm afterSculley had taken a Valium and had a couple of Diet Pepsi's. After all, heWAS the boss). Of course, the IIGS was received by the Apple II community withenthusiasm. After initial sales broke all previous records, includingthose for the Macintosh, Apple re-doubled its efforts to promote this asthe computer for nearly everyone. After all, it had ties into the past(compatible with Steve Wozniak's 4K Integer BASIC Apple II at its core),and ties into the future (with the 16-bit technology and expanded memory). Within a year it was outselling the Macintosh (which had also received aboost in sales, thought to be benefiting from the wave of IIGS sales). By 1988, a significantly enhanced Apple IIGS was released, with moreadvanced system software (which worked more like the easy-to-use Macintoshinterface) and higher density graphics (the cost of better color monitorshad come down considerably since the initial design of the IIGS back in1985). Apple even decided to take the unprecedented move of licensing theApple II technology to a couple of other companies, who worked on producingIIGS emulators for other computers, including IBM and its clones! Softwareand hardware sales hit a spiraling upward curve, which stimulated moresales of computers from Apple, which increased software and hardware salesfurther. Apple even produced a IIGS emulator of its own for the Macintoshand Macintosh II series of computers. Eventually... (Hold it. Something just doesn't seem right. I don't recall things going NEARLY that well for the IIGS. Computer! APPLE IIC: [ Tweedlesquirge ] State request, please. AUTHOR: Compare time events just outlined in previous section with known events in database notes. APPLE IIC: Working... [ Blinkitydinkitydinkityzeerp ] Events just described are from a parallel timeline, which diverged from our own timeline in July 1986. AUTHOR: Hmmm. Any way of moving into that timeline? APPLE IIC: Negative. Insufficient energy available in my power supply brick to actually make changes necessary to alter the events in our timeline to allow the above scenario to actually occur. AUTHOR: Then HOW did we come across that information in the first place? APPLE IIC: Flux capacitor was affected by a momentary surge in power lines due to a nearby thunderstorm. AUTHOR: Interesting. Well, maybe someday I'll have to beef up this power supply a bit and have a talk with Mr. Sculley if I can find my yellow radiation suit... So how do we get back to the correct information? APPLE IIC: You could effect a complete shutdown and memory purge, then reload correct data from protected archives. AUTHOR: Very well. Make it so. APPLE IIC: Working... [ Blinkitydinkitydinkityzeerpity... ] PROOFREADER: Your Apple TALKS??? AUTHOR: What? Yes, well I had a CPU conversion done in the early 24th century... APPLE IIC: Data reload completed. You may proceed when ready. AUTHOR: Now, let's see if we can get it right this time...)THE APPLE IIGS: PRODUCT INTRODUCTION (Take 2) In September of 1986, Apple introduced the new Apple IIGS, bundledwith an Apple 3.5 drive, for $999 (not including a monitor). The Apple IIcommunity was excited about the new computer, and inCider magazine featureda exuberant Steve Wozniak on the cover of its October 1986 issue with thecaption, "It's Amazing!" Apple, for its part, did do some advertising for the new computer inthe pages of current Apple II publications of the time. However, there wasno major push for the new computer, and again it seemed destined to bedwarfed by Apple's preoccupation with the Macintosh. Though announced in September, the IIGS was not widely availableuntil November. Early production models of the IIGS had some problems; oneof the new chips did not work properly, and necessary changes to fix themcaused a delay. The upgrade that would turn an Apple IIe into a IIGS wasalso delayed until early 1987.<5>THE APPLE IIGS: ENHANCEMENTS In September 1987 Apple made an incremental improvement to the IIGSwith the release of a new ROM. The ROM 01 revision made a few changes inthe original IIGS ROMs and included an improved video controller chip. Bugs in the ROM code were fixed, and a problem with a "pink fringe" effectwith certain graphics displays was fixed. The new ROMs were not compatiblewith any IIGS System Disks earlier than version 2.0. The new ROM wasidentified by a message at the bottom of the screen when booting the IIGSthat said "ROM Version 01". The original IIGS had no message in thislocation.<6> The next change came with the release of the ROM 03 version of theIIGS in August of 1989. This new IIGS computer came standard with 1 meg ofRAM on the motherboard, and twice as much ROM (256K versus 128K on theolder IIGS). This allowed more of the operating system to be in ROM,rather than having to be loaded from disk when booting. Additionally,fixes were made to known bugs in the ROM 01 firmware. (The latest versionof the IIGS system software made patches to ROM 01 to fix those bugs, butthese patches still had to be loaded from disk, which slowed startup time. Having the latest new tools and fixed new ones already in ROM made bootingthe version 03 IIGS a bit quicker). The new Apple IIGS also had thecapability of using both the internal slot firmware as well as using aperipheral card plugged into a slot. The ROM 01 IIGS could, of course, usecards plugged into the slots, but only at the expense of being unable touse the internal firmware for that slot. With so much useful systemfirmware built-in, a ROM 01 user who wanted, for example, to add acontroller card for a hard disk would have to give up either AppleTalk inslot 7 or use of 5.25 disks in slot 6. Almost everything else had to beset in the control panel to the internal firmware. The ROM 03 IIGS also included enhancements for disabled users. Afeature called "sticky keys" made it possible to do multiple keypresses. (To execute an "Option-Control-X" sequence, for example, required pressingthree keys at once. This was something that a paralyzed user with amouth-stick to press keys could not previously do). Also, more things thathad required a mouse now had keyboard equivalents (using the keypad). Thenew IIGS also had somewhat "cleaner" sound and graphics. However, becausethe improvements made were minimal compared to the cost of providingupgrades to previous owners, no upgrade program was announced by Apple. Inany case, many of the new features could be obtained on older IIGS's byupgrading the memory to at least one megabyte and using GS/OS SystemSoftware 5.0.2 or greater.<7> A feature that was added to the ROM 03 firmware that was entirelyfun, instead of functional, was accessed by a specific key-sequence. Ifthe computer was booted with no disk in the drive, a message that said"Check startup device" appeared, with an apple symbol sliding back andforth. At that point, if the user pressed the keys "Ctrl", "Open Apple","Option", and "N" simultaneously, the digitized voices of the Apple IIGSdesign team could be heard shouting "Apple II!" Also, the names of thosepeople would be displayed on the screen. If running GS/OS System 5.0 orgreater, the user would have to hold down the "Option" and "Shift" keys,then pull down the "About" menu in the Finder. It would then say "Aboutthe System". Using the mouse to click on that title would cause the namesto be displayed and the audio message to be heard.++++++++++++++++++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: Peripherals & the Apple II Abroad++++++++++++++++++++++++++++++++++++++++++++++++++++ NOTES <1> Duprau, Jeanne, and Tyson, Molly. "The Making Of The Apple IIGS", A+ MAGAZINE, Nov 1986, pp. 57-74. <2> Pinella, Paul. "In The Beginning: An Interview With Harvey Lehtman", APPLE IIGS: GRAPHICS AND SOUND, Fall/Winter 1986, pp. 38-44. <3> Hogan, Thom. "Apple: The First Ten Years", A+ MAGAZINE, Jan 1987, p. 45. <4> Szetela, David. "The New II", NIBBLE, Oct 1986, pp. 5-6. <5> Weishaar, Tom. "Miscellanea", OPEN-APPLE, Nov 1986, p. 2.74. <6> Platt, Robert, and Field, Bruce. "A.P.P.L.E. Doctor", CALL-A.P.P.L.E., Nov 1987, p. 58. <7> Doms, Dennis. "Apple upgrades IIGS hardware", OPEN-APPLE, Sep 1989, p. 5.57. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 12 -- PERIPHERALS & THE APPLE II ABROAD) [v1.1 :: 11 Jul 92]THE APPLE II ABROAD Early on, Apple got involved in selling the Apple II in Europe andthe Far East. To function in those parts of the world called for a changeto handle a different voltage (240V instead of the 120V we use in theU.S.). Also, the language differences had to be overcome. It was easiestin Europe where, for the most part, the standard Roman alphabet was used. The primary differences were in symbols used together with letters forcertain specific uses. Apple's Europlus ][ had a modified ROM, and certainESC key sequences could generate the German umlaut symbol to go withcertain vowels.<1> When the IIe was released there were some other differences. TheGerman version was built with a an external switch below the keyboard,allowing the user to change between a standard U.S. layout and a Germanlayout. (American versions of the IIe lacked the switch, but had a placeon the motherboard that could be modified to allow a Dvorak keyboard layoutto be switched in instead of the standard keyboard). The IIe auxiliaryslot, which was placed in line with the old slot 0 on American versions(but moved forward on the motherboard) was placed in front of slot 3 onGerman versions. This was because the European Apple IIe's also had addedcircuitry to follow the PAL protocol for video output used for televisionsand computer monitors in Europe (in the U.S. the NTSC protocol isfollowed). Because of the extra space needed on the IIe motherboard forthe PAL circuits, the auxiliary slot had to be moved to be in line withslot 3. Because the 80-column firmware was mapped to slot 3, if an80-column card was installed in the auxiliary slot it was not possible touse any other card in slot 3. Versions of the IIe made for other Europeancountries had similar modifications to account for regionaldifferences.<1>,<2> When the Apple IIc came along, it was designed from the start to takethe foreign market into account. If you recall, the U.S. version of theIIc had a standard layout when the keyboard switch was up, and a Dvoraklayout when the switch was down. European versions were similar to theAmerican layout with the switch up, and had regional versions that could beswapped in with the switch down. The British version only substituted theBritish pound sign for the American pound sign on the "3" key, but theFrench, German, Italian, and Spanish versions had several different symbolsavailable. A Canadian version of the IIc was the same as the American withthe switch up, and had some other special symbols with the switch down. This version was unique because each keycap had the symbols for bothswitched versions. For example, the "3" key had the "3" and "#" symbols,plus the British pound symbol, making it a bit more crowded than a typicalkeycap. The Apple IIGS continued the practice of making internationalversions available, but improved on the design by making the variouskeyboard layouts all built-in. On the IIGS it was selectable via thecontrol panel, as was the screen display of the special characters for eachtype of keyboard.APPLE II PERIPHERALS Moving on, we will now take a look at hardware items that extend thecapability of the Apple II. The ability to add an external hardware deviceto a computer has been there from the earliest days of the first Altair tothe present. In fact, the success of a computer has inevitably led tohackers designing something to make it do things it couldn't do before. The more popular the computer, the more variety you will find in hardwareadd-ons. The Apple II, designed by a hacker to be as expandable aspossible, was once a leader as a platform for launching new and uniquehardware gadgets. Today, in 1991, the Apple II unfortunately no longerholds the front position; it has been supplanted by the Macintosh and IBMcrowd. However, the Apple II still benefits from the "trickle-down" ofsome of the best new devices from other computers (SCSI disk devices andhand scanners, for example). This is due partly to emerging standards thatmake it easier to design a single hardware device that will work onmultiple computers, and in the case of the Macintosh, because of Apple'sdecision to make peripherals somewhat compatible between the two computerlines. Trying to sort out all the peripheral devices ever designed for theApple II series of computers into a sensible order is not easy. In thissegment of the Apple II History I'll try to give an overview of hardwaredevices that were either significant in the advancement of the II, orunique, one-of-a-kind devices. Obviously, this cannot be a comprehensivelist; I am limited to those peripherals about which I can find informationor have had personal experience.WHAT IS A PERIPHERAL? A basic definition of a peripheral would be, "Something attached to acomputer that makes it possible to do more than it could previously do." It is called a "peripheral" because it usually is connected to the computerafter it leaves the factory. An argument could be made that somethingbuilt-in is not a peripheral, but as things have changed over time thereare some devices still called "peripherals" from force of habit, thoughthey are now built-in (hard disks come to mind). Quite probably, in timemanydevices that were once considered optional accessories will become soessential that they will always be built-in. Recall that the earliest computers came with almost nothingbuilt-in. They had a microprocessor, a little memory, some means of datainput and display of results, the ability to access some or all of thesignals from the microprocessor, and that was all. For those computers,the first things that users added were keyboards and TV monitors to make iteasier to use them. Recognizing that the earliest hardware peripheralswere keyboards and monitors highlights one fact: Nearly everything thatis sold as a peripheral for a computer is either an input device, andoutput device, or an interface to make it possible to connect input andoutput devices. Exceptions are cards to add memory, co-processor cards toallow it to run software from another computer, and accelerators to makethe computer run faster.EARLY PERIPHERALS When we come to the release of the first Apple II, two important"peripherals" were built-in: A keyboard, and the circuitry to allow easyconnection of a TV monitor. It had, of course, the slots for insertingexpansion cards (none were available), a game port (for attaching the gamepaddles that were included), a pin that could be used to connect an RFmodulator (so a standard television could be used instead of a computermonitor), and a cassette interface. Since there were no cards available toplug into the slots, you would imagine that the Apple II couldn't make useof any other hardware. However, those early users who had a need usuallyfound a way around these limits. To get a printed copy of a program listing, for example, was notrivial matter. First, there were very few printers available. Those whocould, obtained old used teletypes salvaged from mainframe computers. These noisy, massive clunkers often had no lowercase letters (not a bigproblem, since the Apple II didn't have it either), and printed at theblazing speed of 10 cps (characters per second). To use these printerswhen there were yet no printer interface cards to make it easy to connect,hackers used a teletype driver written by Wozniak and distributed in theoriginal Apple II Reference Manual (the "red book"). This driver sentcharacters to the printer through a connection to the game paddle port. One part of being a hacker, you can see, is improvising with what youhave.<3> Another of the earliest devices designed for the Apple II came fromApple Pugetsound Program Library Exchange (A.P.P.L.E.). They were involvedin distributing Integer BASIC programs on cassette to members of the group. To make it easier to send those programs to the person responsible forduplicating the cassette, Darrell Aldrich designed a means of sending theprograms over the telephone lines. There were no modems available at thetime, so his "Apple Box" was attached to the phone line with alligatorclips and then plugged into the cassette port on the Apple II. To send aprogram, you first called up the person who was to receive it and got thecomputers on each end connected to the Apple Box. The sender then used theSAVE command in BASIC to tell the computer to save a program to tape. Inactuality, the program was being "saved" through the cassette "out" port tothe Apple Box, and onto the phone line connected. At the other end of thatphone line, the data went into the other Apple Box, which was connected tothe cassette "in" port on the other Apple II. That computer was executingthe LOAD command in BASIC to "load" the program from the Apple Box. A.P.P.L.E. sold about twenty of these Apple Boxes at $10 apiece.<3>INTERFACE CARDS One of the first interface cards made for the Apple II was released,naturally, by Apple. The Apple II Parallel Interface Card was released in1977 and sold for $180.<4> Wozniak wrote the firmware ROM, and managed tomake it fit entirely in only 256 bytes. As a parallel device, it usedeight wires to connect the computer with a printer, one line for each databit in a byte. Various parallel devices also used one or more extra wiresas control lines, including a "busy" line (so the receiving device couldtell the sending device to stop until it was ready for more), and a "ready"line (so the receiving device could tell the sending device to resumetransmission). Because each of the eight bits needed a separate wire, thecables for parallel devices looked like ribbons and were not very compact. Most of the early printers available required this type of interface.<5> Aproblem noticed with Apple's card, however, was an inability to properlyhandle these "busy" and "ready" signals (a process known as "handshaking"). One solution offered by a reader of Call-A.P.P.L.E. magazine in 1979 was toadd a couple of chips to the card. If that was not done, however, the onlyway to do printouts that were very long was to either buy a 2K print bufferthat could be used with some early printers, or use the "SPEED=" statementin Applesoft to slow down the speed at which data was sent to theprinter.<6>,<7> Apple released the Centronics parallel printer card in 1978. Sellingfor $225, it was specifically designed to work with Centronics brandprinters.<4> It was similar to the Parallel Printer Interface, but hadfewer control codes. The "Centronics standard" used seven data bits andthree handshaking bits.<8> It would automatically send certain controlcodes to the printer when a program sent the proper command (such as achange in line width). As such, it was limited to properly working onlywith a Centronics printer, but many companies made printers that used thesame control codes and would work with it.<5> In April 1978 the Apple II Communications Card came out, selling for$225.<4> It was intended for use with a modem, and worked for speeds from110 to 300 baud. The low speed (by today's standards) was for severalreasons. One was that most modems of the time were acoustic. With anacoustic modem you dialed up the number yourself, and when you made aconnection you put the handset (that's the part you talk and listen with,for you non-technical folks) into rubber sockets to seal out extraneoussound. A tiny speaker and microphone in the modem were then used to sendand receive signals. This leads to a second reason for the low speeds ofthe time, which was that greater than 300 baud communications was notconsidered possible. In fact, the Phone Company was quite certain thatspeeds over 300 baud were not possible with any modem, although they wouldbe glad to lease you a special data-quality phone line so you could get thebest possible connection at 300 baud. The Apple II Serial Interface Card ($195) appeared in August of1978.<4> Serial devices required fewer data transmission lines, and socould work with more compact cables. Instead of sending each byte as eightsimultaneous bits as was done in parallel devices, serial interfaces sendeach byte as a series of eight bits, which only took two wires; one to sendand one to receive data. Like the parallel cards, there were a couple ofother wires that went with the data lines to control handshaking. Also,serial cards needed a means of letting the sending and receiving devicesidentify when a byte began and ended, and the speed at which data was beingtransmitted. This meant that some additional information, such as "start"bits, "stop" bits, and "parity" bits, was needed. The original version of the Serial Interface Card had a ROM that wascalled the P8 ROM. It contained the on-card program that allowed a user toprint or otherwise communicate with the card without having to know much onthe hardware level. The P8 ROM didn't support handshaking that used twoASCII control characters named ETX (Control-C) and ACK (Control-F), so alater revision called the P8A ROM was released. (ASCII stands for AmericanStandard Code for Information Interchange). This worked better with someprinters, but unfortunately the P8A ROM was not compatible with some serialprinters that had worked with the earlier P8 ROM. The Apple Super Serial Card firmware was finished in January 1981. It was called "super" because it replaced both the older Serial InterfaceCard and the Communications Card. To change from one type of mode toanother, however, called for switching a block on the card from oneposition to another (from printer position to modem position). The SuperSerial Card was also able to emulate both the P8 and P8A Serial Cards,making it compatible with most older software written specifically forthose cards.<9>VIDEO CARDS After getting a printer interface card (and printer), the nextvariety of peripheral cards popular for the Apple II and II Plus were onesthat allowed display of 80 columns of text (which was rapidly becoming astandard outside the Apple II world). An early entry into this market wasthe Sup'R'Terminal card made by M&R Enterprises, the same company that madethe Sup'R'Mod RF modulator for the Apple II. One of the most popular ofthe 80-column cards was the Videx Videoterm. Videx even made a displaycard that would display 132 columns card for the Apple II, but it nevermade much headway in the computer world (being supplanted by bit-mappedgraphics displays, ala Macintosh).<3> Many other companies made 80-column cards, but for the most part theywere not very compatible with each other. One problem was deciding on amethod to place the characters on the 80-column screen. With the standardApple 40-column display, you could use either the standard routines in theMonitor, or directly "poke" characters to the screen. With these 80-columncards, they often used a standard from the non-Apple world, that of usingspecial character sequences to indicate a screen position or otherfunctions. For example, to put a character at row 12, column 2, a programneeded to send an ESC, followed by a letter, followed by 12 and 02. Similar ESC sequences were used to clear the screen, scroll it up or down,or do other things that Apple's built-in screen routines could do. When the Apple IIe was released, with its RAM-based method ofdisplaying 80 columns of text, nearly all the older 80-column cardsdisappeared from the market. As of 1991, only Applied Engineering stillmakes one for those remaining II and II Plus users that don't yet have an80-column display. One unique video product was made by Synetix, Inc. around 1983. Their SuperSprite board plugged into slot 7 (which had access to some videosignals not available on other slots), and was promoted as a graphicsenhancement system. It worked by overlaying the hi-res screen withanimated "sprite" graphics (programmable characters that movedindependently on any screen background). Since each sprite was on its own"plane" on the screen, they didn't interfere with each other. Also, itdidn't take extra effort bythe 6502 microprocessor to manipulate thesprites; once the programmer placed the sprite on the screen and started itmoving, it would continue until told to change. This was much easier thantrying to program a hi-res game using standard Apple graphics. Unfortunately, at the price of $395 it never took off. (It was hard fordevelopers to justify writing programs for only a few users that might havethis card). Another company later made a similar card called theStarSprite, but it suffered the same fate. Even Apple's own double hi-resgraphics, introduced on the IIe, had the same problem with a small supplyof supporting software until the IIc and IIGS market got large enough toguarantee that enough owners had the capability of displaying doublehi-res.<10>ROM/RAM EXPANSION CARDS All peripheral cards released for the Apple II up to the time of theApple II Plus were usable only in slots 1 through 7. Slot 0 was designeddifferently, and until the release of the Applesoft Firmware Card ($200) in1979 nothing had been built to make use of it. The Firmware Card containedROM that paralleled the upper 12K of Apple II memory. If you recall fromthe discussion in Part 3 of this History, Integer BASIC and the ROM versionof Applesoft covered the same space in memory, and so could not co-exist. When it was clear that a floating-point BASIC (Applesoft) was what manypeople wanted, the II Plus came out with Applesoft in ROM. To make surethat the previous Apple II owners were not left out, Apple released theApplesoft Firmware Card to plug into slot 0. It had a switch that allowedthe user to select which BASIC should be active. In one position, themotherboard ROM would be selected, and in the other position the Applesoftand Autostart ROM was selected. Because there were quite a few IntegerBASIC programs that Apple II Plus users wanted to run, the Firmware Cardalso came out in an Integer BASIC version with the old Monitor ROM, thatallowed II Plus users to simulate owning a standard II.<4> One of the benefits of the Integer BASIC ROM was the lack ofsomething known as a "RESET vector" in the Autostart ROM. The AutostartMonitor was called that because it would automatically try to boot theDisk II drive when the power was turned on, and jumped to a known memorylocation when the RESET key was pressed. This allowed the disk operatingsystem to reconnect itself, but more importantly made it possible to createcopy-protected software. Since the Autostart ROM made it possible for aprogrammer to do something on RESET that prevented a user from examininghis program, it was popular with companies producing programs that theydidn't want copied and freely given away. Usually, a RESET on a protectedprogram would restart the program, erase the program from memory, orre-boot the disk. The Integer BASIC and Old Monitor ROM lacked thisfeature; a RESET would just drop the user into the Monitor. This, ofcourse, was just what hackers and those who liked to break copy-protectionwanted. The users with non-Plus Apple II's or with the Integer BASICFirmware Card on a II Plus could prevent a RESET from restartinganything, allowing them to hack a program as much as they wanted. The next card Apple released for slot 0 was called the Language Card. It was released in 1979 with Pascal, and expanded a 48K Apple II into afull 64K memory computer. It did not remove the upper 16K of ROM, but thecard contained 16K of RAM that was electronically parallel to the ROM. Using "soft switches" (recall that these are memory locations that, whenread or written to, caused something internally to change) one could switchout the ROM and switch in RAM memory. This extra memory was used to loadthe Pascal disk system, and under DOS 3.2 and 3.3, to load into RAM theversion of BASIC that was not in the ROM. This was a more flexiblealternative to the Firmware Card, and opened the way to other languagesbeyond BASIC for Apple II users. Since the only way to get Apple's Language Card was to buy the entirePascal system ($495), it was too expensive for many users. Other companieseventually came out with similar cards that did not require purchasingPascal, and some of them designed the cards with more "banks" of memory,making 256K or more of extra memory available. Saturn Systems was oneearly suppliers of the large RAM cards. Typically, each 16K bank on thecard would be switched in to the same memory space occupied by the LanguageCard RAM through the use of a special softswitch.<11>CO-PROCESSORS Although it did not go into slot 0, another significant card for theApple II was the Microsoft Z-80 Softcard, which sold for around $300. Itwas a co-processor card, allowing the Apple II to run software written forthe Z-80 microprocessor. The most popular operating system for theZ-80/8080 processors was the CP/M (Control Program for Microcomputers)system. Although the Disk II use a different method of recording data thanwas used by Z-80 computers, Apple II users managed to get programs such asthe WordStar word processor transferred to the Apple CP/M system. Microsoft worked to make it compatible with the 80-column cards that werecoming out at the time, since most CP/M software expected a screen of thatsize.<3>,<12> After the arrival of the IBM Personal Computer and its wideacceptance by the business world, there was interest in a co-processor forthe Apple II that would run IBM software. A company called Rana, which hadbeen producing disk drives for the Apple II for several years, came outwith the Rana 8086/2 sometime in 1984. This was a system that plugged intoslots on a II Plus or IIe, and would allow the user to run programs writtenfor the IBM PC. It would also read disks formatted for that computer(which also used a completely different data recording system than the oneused by the Apple II). One Rana owner, John Russ, wrote to A2-Central(then called Open-Apple) to tell of his experience with it: "We alsohave one of the Rana 8086/2 boxes, with two [Rana] Elite II compatibledrives and a more-or-less (mostly less) IBM-PC compatible computer insideit. Nice idea. Terrible execution. The drives are half-high instead ofthe full height drives used in the normal Elite II, and are very unreliablefor reading or writing in either the Apple or IBM format ... And thisproduct again shows that Rana has no knowledgeable technical folks (or theylock them up very well). We have identified several fatalincompatibilities with IBM programs, such as the system crashing totally ifany attempt to generate any sound (even a beep) occurs in a program, or ifinverse characters are sent to the display ... The response from Rana hasbeen no response at all, except that we can return the system if we wantto. Curious attitude for a company, isn't it?"<13> By August 1985 Ranawas trying to reorganize under Chapter 11, and the product was neverupgraded or fixed. A co-processor called the ALF 8088 had limited distribution. Itworked with the CPM86 operating system (a predecessor to MS-DOS) was usedby some newer computers just before the release of the IBM PC.<14> Even the Motorola 68000 processor used in the Macintosh came as aco-processor for the Apple II. The Gnome Card worked on the II Plus andIIe, but like other 68000 cards for the II, it didn't make a major impact,with the exception of those who wanted to do cross development (createprograms for a computer using a microprocessor other than the one you areusing). The most successful device in this category was the PC Transporter,produced by Applied Engineering. It was originally designed by a companyin the San Jose area called The Engineering Department (TED). The founderwas Wendell Sanders, a hardware engineer who formerly had worked at Appleand was involved in the design of the Apple III and parts of the SWIM chip(Super Wozniak Integrated Machine) used in the IIc and IIGS. Around 1986Applied Engineering began discussions with TED about buying the PCTransporter to sell and market it. At that time, the board was about fourtimes the size it eventually became. AE's people were able to shrink a lotof the components down to just a few custom ASIC chips. The software thathelped manage the board originally came from TED also.<15> It was finallyreleased in November 1987, and included a card that plugged into any of themotherboard slots (except slot 3) and one or more IBM-style disk drives. The PC Transporter used an 8086 processor and ran about three times as fastas the original IBM PC. It used its own RAM memory, up to a maximum of768K, which could be used as a RAMdisk by ProDOS (when not in PC-mode). Itused some of the main Apple memory for the interface code that lets the PCTransporter communicate with the hardware. The PC Transporter has undergone some minor hardware changes andseveral sets of software changes (mostly bug fixes but a few new features). The major reasons for hardware changes came about because of theavailability of cheaper RAM (the original RAM was quite expensive anddifficult to obtain). Additionally, changes were made to make the onboard"ROM" software-based, which made it easier to distribute system upgradesthat enhanced hardware performance.<16>,<17>,<18> The major limitation forthis product has been a reluctance by Applied Engineering to match thechanges that have happened in the MS-DOS world and come out with a versionof the Transporter that used a more advanced microprocessor (80286, 386, or486). As of 1991 this is slowly beginning to become more of a limitationfor those who wish to use both MS-DOS and Apple II software on the sameApple II computer, since advanced software needing those more powerfulprocessors is beginning to be released for MS-DOS.ACCELERATORS The two things that all computer users eventually need (or at leastwant) are more storage and faster speed. The 1 MHz speed of the 6502 and65c02 chips is somewhat deceiving, when compared with computers that haveprocessors running at a speed of 20 to 40 MHz. To put things intoperspective: Since the 6502 does more than one thing with a single cycleof the clock on the microprocessor, a 1 MHz 6502 is equivalent to a 4 MHz8086 chip. Therefore, an Apple II with an accelerator board or chiprunning at 8 MHz is equivalent to an MS-DOS computer running at 32 MHz. One of the first accelerators for the Apple II was the SpeedDemon,made by MCT. This board used a faster 65c02 chip, with some high-speedinternal memory that was used to actually execute the programs (since theinternal Apple II memory chips were not fast enough). In essence, it put asecond Apple II inside the one you could see, using the original one forinput and output. Another speedup board was the Accelerator IIe by TitanTechnologies (formerly Saturn Systems; they had to change their namebecause it was already in use by someone else). This board worked in asimilar fashion to the SpeedDemon. Some users felt this product ran fasterthan the SpeedDemon, but it depended on the application being tested. Bothboards were attached to the computer by plugging them into a slot otherthan slot 0 on the motherboard. In 1986 Applied Engineering introduced the TransWarp acceleratorboard. This product has lasted in the marketplace longer than any of theother ones, possibly because AE did far more advertising than the companiesproducing the older boards. The TransWarp did the acceleration using adifferent method. Instead of trying to duplicate all of the Apple II RAMwithin the accelerator, they used a cache. (If you recall from the segmenton hard disk drives, a cache is a piece of memory holding frequentlyaccessed information). Because they used the cache, the TransWarp did notrequire any high-speed RAM on the motherboard. Instead, any memory accesswas also stored in the cache RAM, which was high-speed RAM. The nexttime a byte was requested from RAM, the accelerator looked first into thecache memory to see if it was there. If so, it took it (far more quickly)from there; if not, it got it from motherboard RAM and put it into thecache. Early TransWarp boards ran at 2.5 MHz; later versions pushed thisspeed to 7 MHz (this was the top speed used by the TransWarp GS, releasedin November 1988 for the Apple IIGS). The next step in accelerator technology was to put all the componentsof an accelerator board into a single chip. This happened when two rivals,the Zip Chip and the Rocket Chip, were released. The Zip Chip wasintroduced at AppleFest in May 1988, and the Rocket Chip soon after. Running at 4 MHz, the Zip Chip was a direct replacement for the 6502 or65c02 on the Apple II motherboard. It contained its caching RAM within thehousing for the processor, the difference being mostly in height (orthickness) of the integrated circuit. Installing it was a bit more trickythan simply putting a board into a slot; the 6502 had to be removed fromthe motherboard with a chip puller, and the Zip Chip installed (in thecorrect orientation) in its place. Software to control the speed of thechip was included, and allowed about ten different speeds, including thestandard 1 MHz speed (some games simply were too fast to play at 4 MHz, andsoftware that depended on timing loops to produce music had to be sloweddown to sound right). The controlling software also let the user determinewhich (if any) of the peripheral cards should be accelerated. Diskcontroller cards, since they used tight timing loops to read and writedata, usually could not be accelerated, where many serial and parallelprinter and modem cards would work at the faster speed. The Zip Chip evenallowed the user to decide whether to run all sound at standard speed or atthe fast speed. The Rocket Chip, made by Bits And Pieces Technologies, was almostexactly the same as the Zip Chip, with a few minor exceptions. It was soldwith the ability to run programs at 5 MHz, and could be slowed down belowthe 1 MHz speed (down to 0.05 MHz). Later, when Zip came out with an 8 MHzversion of their Zip chip, a 10 MHz Rocket Chip was introduced. The rivalry between Zip Technologies and Bits And Pieces Technologiescame from a mutual blaming of theft of technical information. The Bits &Pieces people insisted that they had done the original work on a singlechip accelerator with the Zip people, but had all the plans andspecifications taken away without their permission. Consequently, they hadto form their own company and start from scratch to design their own chip. Zip, on the other hand, insisted that Bits & Pieces had stolen thetechnology from them. The problem eventually came to court, and it wasdecided that Zip Technologies was the originator of the technique and theRocket Chip had to stop production.+++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: Peripherals, cont.+++++++++++++++++++++++++++++++++++++ NOTES <1> Huth, Udo. (personal mail), GEnie, E-mail, Mar 1991. <2> Spring, Michael. "Write-A.P.P.L.E.", Call-A.P.P.L.E., Apr 1984, pp. 49-50. <3> -----. "A.P.P.L.E. Co-op Celebrates A Decade of Service", Call-A.P.P.L.E., Feb 1988, pp. 12-27. <4> Peterson, Craig. The Computer Store, Santa Monica, CA, Store Information And Prices, Aug 10, 1979, p. 1. <5> Bernsten, Jeff. GEnie, A2 Roundtable, Apr 1991, Category 2, Topic 16. <6> Lewellen, Tom. "Integral Data/Parallel Card Fix", PEEKing At Call-A.P.P.L.E., Vol 2, 1979, p. 113. <7> Golding, Val J. "Integral Data IP 225 Printer - A Review", PEEKing At Call-A.P.P.L.E., Vol 2, 1979, p. 151. <8> Wright, Loren. "On Buying A Printer", Micro, Aug 1981, pp. 33-35. <9> Weishaar, Tom. "Control-I(nterface) S(tandards)", Open-Apple, Oct 1987, pp. 3.65. <10> -----. "Tomorrow's Apples Today", Call-A.P.P.L.E., Oct 1983, p. 71. <11> Weishaar, Tom. "A Concise Look At Apple II RAM", Open-Apple, Dec 1986, p. 2.81. <12> -----. (ads), Call-A.P.P.L.E. In Depth #1, 1981, p. 106. <13> Weishaar, Tom. "Ask Uncle DOS", Open-Apple, Apr 1985, p. 1.32. <14> Davidson, Keith. "The ALF 8088 Co-Processor", Call-A.P.P.L.E., Feb 1984, p. 54. <15> Holcomb, Jeff. GEnie, A2 Roundtable, Mar 1992, Category 11, Topic 7. <16> Utter, Gary. GEnie, A2 Roundtable, Dec 1991, Category 14, Topic 12. <17> McKay, Hugh. GEnie, A2 Roundtable, Dec 1991, Category 14, Topic 12. <18> Jones, Jay. GEnie, A2 Roundtable, Dec 1991, Category 14, Topic 12. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 13 -- PERIPHERALS, CONT.) [v1.0 :: 31 Dec 91]MODEMS A modem is a unique peripheral device, because itmakes use of two-way communication (both sending andreceiving data to and from the computer). After the AppleBox sold by A.P.P.L.E., one of the first commercial modemsavailable for the Apple II was the Micromodem II, made byD.C. Hayes in 1979. It sold for $379, and worked at thestandard transmission speeds of the day, 110 and 300 baud. The Micromodem was also available for the S-100 (Altair)series of computers. Hayes' product was so popular thattheir command set has become a standard for modems as theyhave advanced over the years. By the mid-1980's Apple released two modems with theirown name on them: The Apple Personal Modem 300 and PersonalModem 1200. Both were external modems, using a directconnection to the phone line (instead of the older acousticcoupler), but were more expensive than similar products ofthe time. By the later 1980's they were no longer inproduction.INPUT DEVICES The number one input device for the Apple II was, ofcourse, the keyboard. There were expanded keyboardsavailable for the II and II Plus, bypassing theuppercase-only limit. There was once even a keyboard thathad plug-in modules that would redefine specialized functionkeys to make them specific for different programs. Anothercompany sold pressure sensitive pads that were attached tothe Apple II keyboard above the top row and could beprogrammed to generate series of keypresses. The originalIIe had a socket for the addition of an external numerickeypad, and the IIGS and later versions of the IIe had thiskeypad built-in. Because of the detached keyboard in theIIGS it was possible to select between a couple of differentversions of keyboards offered by Apple |as well as from somethird party companies. The next most commonly used input device after thekeyboard was the set of game paddles included with every IIand II Plus. But some users needed more specialized ways toinput data to the computer. A large number of interestinginput devices were made available through the years; herefollows a brief description of some of them. Creating pictures on the hi-res graphics screen hasalways been a challenge, from 1977 until today. Using thegame paddles or a joystick is one method that could be used,but there is some difficulty in getting accurate lines andcurves. Apple addressed this problem when they released theApple Graphics Tablet in the late 1970's, which sold forabout $650. This was a large flat surface, about thirtyinches square, with a grid printed on the surface. Using astylus attached to a wire leading to the tablet, andappropriate software, this could be used to draw pictures onthe Apple II hi-res screen. There were two differentreleases of the Apple Graphics Tablet. The original one,which was released when the II Plus was the latest machine,was discontinued by FCC order because of RFI (radiofrequency interference) problems. The second version, tocorrect that problem, was released after the IIe was inproduction. It used two DB-9 connectors to install on thebackplate of the computer, leading to the peripheral cardplugged into a slot inside. (These DB-9 connectors are thesame type used on the back of the IIc and IIGS forconnection of a joystick). Currently the Apple GraphicsTablet is not in production.<1> Koala Technologies has made several input devices overthe years. Their first product was the Koala Pad. Releasedin 1983 and selling originally for $125, this was a smallgraphics pad (about 8x6 inches) that plugged into the gameI/O socket. It was compatible with any software that used ajoystick. Using a finger or the supplied stylus, a usercould draw on the pad and produce pictures on the hi-resscreen with the supplied software or with some othersoftware packages. In November 1984 Koala released Muppet Learning Keysfor $79.95. This was a device to aid preschoolers in usinga computer. It was intended to help children ages three andover to learn letters, numbers, and colors, using theMuppets from Sesame Street as a learning aid. The unit usedvarious contact surfaces to send user responses to thecomputer, and it attached to the Apple II via the game I/Oport.<2> The Gipson Light Pen System was also sold by KoalaTechnologies in 1985 for $350. Using a card in slot 7, thisdevice used a special pen that allowed drawing directly onthe computer's monitor screen. Other devices have been released to aid in graphicsmanipulation on the Apple II. The Computer Colorworksreleased the Digital Paintbrush System in 1984 for $299. Itworked on either the II Plus or IIe, and used a stylusattached by two thin dacron lines to potentiometers withinthe tablet, which tracked the position of the stylus. Movements of the stylus (tracing over a picture) weretranslated into drawings on the hi-res screen. The softwareincluded allowed creation of curves and lines, and usedFontrix fonts for lettering. (Fontrix was a program thatcould produce detailed hi-res graphics pictures, and hadmany characters styles, or fonts, available to label thosepictures). A unique feature of the Digital Paintbrush wasthe ability to connect two computers using the system via amodem and phone line and allow both users to draw picturesthat would appear on both computers simultaneously.<3> The input device that made the most inroads in theApple II world was the one that was so unique to theMacintosh: The AppleMouse II. It was released in May 1984with a program called MousePaint (similar to the MacPaintprogram that came with the original Macintosh). TheAppleMouse came with a peripheral card to plug into a sloton the IIe or II Plus; on the IIc it just plugged into thejoystick port and the built-in hardware and firmware couldhandle control of the mouse. MousePaint used the standardhi-res graphics screen and worked only under the ProDOSoperating system, but generallygave Apple II users thecapability of doing graphics in the same way as Macintoshusers had been enjoying, as well as making it possible todesign programs that used the mouse as a pointing and inputcontrol device. ComputerEyes was a video acquisition system that cameout in July 1984. It allowed use of a video camera tocapture images and store them on the hi-res graphics page. It was a slow-scan device that attached to the Apple gameI/O socket, and produced black-and-white images in aboutfive seconds. It worked on any Apple II with 48K,Applesoft, and DOS 3.3. Made by Digital Vision, Inc., itoriginally sold for $129.95 ($349.95 including the videocamera).<4>MUSIC AND VOICE SYNTHESIS Apple II's have been involved in sound from thebeginning, with the inclusion by Steve Wozniak of a speakerso he could make sounds for an Apple II version of"Breakout". As simple as it was, some enterprisingprogrammers have even managed to make this single-voicespeaker sound like two and even three different voices(tones) simultaneously ("Electronic Duet" comes to mind). But that was not enough for those who wanted to have betterquality music production, and so production of synthesizercards was in full swing by the early 1980's. Some of thosecards included the following: ALF Music Card (ALF Products, Inc.) was strictly amusic synthesizer, with some included software to aid inproducing the music. The Mountain Music System (MountainComputer, Inc.) was a more advanced sixteen oscillator(voice) digital synthesizer, also with software to controlit. Soundchaser System (Passport Designs, Inc.) was apackage that included the Mountain Music System (using slots4 and 5), plus the Soundchaser, which was a piano-stylekeyboard for music input, whose card went in slot 7. Itallowed four track recording and sound manipulation, usingthe Apple II primarily as a controller. This was probablythe most advanced music hardware system available in thedays before the release of the IIGS. The Drum-Key (made by PVI) was specifically apercussion synthesizer. It required an external amplifierand used included software to produce a wide variety of drumand other percussion sounds.<5> Beginning in the late 1970's there were several speechsynthesizers available for the Apple and other homecomputers. One brand was the TextTalker, and another (madeby Mountain Hardware for $279) was the Supertalker. In the1980's two other popular brands were the Echo II(slot-based) and Cricket (for the modem port on the IIc)synthesizers, made by Street Electronics. These latteralso included the ability to product other sound effects,and some games released at the time had enhanced soundoutput when the presence of those two devices was detected. For speech reproduction, these devices usually used a methodof accepting ASCII text from the computer in the form of"phonemes" to describe and produce voice through a built-inspeaker. The phonemes were needed because English wordshave a variety of pronunciation depending on the context inwhich they are used. Properly programmed, the voicesynthesizers could pronounce the word "root" to rhyme witheither "boot" or "foot". It wasn't until the IIGS came outwith the built-in capability of speech reproduction (via theEnsoniq chip) that software making use of that featurebecame available in any quantity.ROBOTS AND DEVICE CONTROL Although used primarily for education purposes, therewere at least two robotic devices made to work with theApple II. TOPO (made by Androbot, Inc.), and the TasmanTurtle ($1000, with a smaller version called the Tot for$300) were in use during the mid-1980's. Both used the Logolanguage to control movement of the robot on the floor. Logo has a graphics command set called "turtle" graphics tosimplify the concept for children. A small triangle on thehi-res screen was called a "turtle", and it could be givensoftware commands to move forward, turn, draw, or movewithout drawing. When TOPO or the Tasman Turtle wereconnected to an Apple II, the Logo language could beconfigured to send the same turtle graphics commands to thephysical "turtle" robot on the floor. This gave students aconcrete example of what their logo programs would do in"drawing" a graphics picture. Education is not the only place where robotics hasbeen used in an Apple II. Because of peripheral boardscalled "A/D Converters" (analog/digital converters), it ispossible to take information from (for example) a wind speedsensor and convert it into digital information. A computerprogram can then take this information and send a commandsignal back to another device (perhaps to activate a motorthat raises and lowers a cloth deck cover, depending on howwindy it is). Although not a "robot" in the sense thatpeople usually view robots, a computer-controlled device ofany kind is, strictly speaking, a robot. This is theconcept used in the popular X-10 system used in homecontrol. (The Introl/X-10 made by Mountain Hardware for$279 was one of the first available for the Apple II). Thisprotocol for controlling electric devices in a home has beenused for years, and programs exist for the Apple II series(including the IIc) that allow easier programming of theX-10 devices, ranging from security systems to light timersto lawn sprinkler systems.MISCELLANEOUS HARDWARE Here follows a short list of some other items thatcould be found for sale in a typical issue of an Applecomputer magazine in the early 1980's: Larger capacity disk drives were made by LoboDrives, including an 8 inch floppy drive and other varioushigher density floppy disks.<6> Hard disks, such as those made by Corvus Systems. You could get a massive 10 MB for only $5,350 (well, it wasmassive compared to the 143K DOS 3.3 floppy disks). Clocks, such as the Apple Clock made by MountainHardware, for $199. A clock made it possible to time anddate stamp files, and identify which version of a file wasthe most recent. RESET Key Protector, which prevented accidentalRESET on early Apple II's, was available for only $3.25 fromSpecial Systems Design. DoubleDOS Plus was a Disk II interface cardmodification that had a switch to allow the user to easilyswitch between DOS 3.2 and DOS 3.3. It sold for $39, byTymac.<6>,<7>PRINTERS By the late 1970's and early 1980's many printers wereavailable for use with home computers. However, the costwas often over $1,000, which limited the number of peoplewho could afford to buy one. Most printers offered 96characters in the standard ASCII set, including both upperand lowercase characters. The cheaper printers could onlyprint uppercase characters, while some of the more expensiveones were capable of accepting programmable characters orhad built-in graphics characters. There were two main types of printers available. Onetype operated like a typewriter by striking a piece of metaltype against a ribbon and onto the paper. This type ofprinter was often called an "impact" or "letter quality"printer. It used either a type ball like IBM's Selectrictypewriters, or a wheel with spokes that radiated out fromthe center, with the type characters at the end of thespokes. This latter type of letter quality printer was alsocalled a "daisy wheel" printer, because the changeable printwheels looked something like a daisy. These printers weremost commonly used by computers in businesses, as they oftencost more than $2,000 and were beyond the reach of theaverage home hobbyist. The other type of printer in common use was dotmatrix. These less expensive printers formed characterswith a series of pins in a vertical row that struck theribbon and produced dots on the paper. As the print headmoved across the paper, the dots were printed in patternsthat resembled (sometimes vaguely) letters and numbers. Thematrix used to form a character was usually referred to asthe number of horizontal dots by the number of verticaldots. A 5x7 matrix, for example, used up to five dotsacross and up to seven dots down. Some printers (like somecomputers of the time) did not use "descenders" on thelowercase letters that drop below the baseline ("g", "j","p", "q", and "y"). To print lowercase letters withdescenders often required nine or more vertical pins. The Centronics 730 may well have been the first"standard" printer for the Apple II (as well as for manyother microcomputers). It used a parallel cable whose pinlayout went on to also become a standard for use withpersonal computers. That pin layout on parallel cable plugsis still in use today in 1991.<8> Centronics also hadseveral other models, including the 737 and 739. A lessexpensive printer made by Centronics, the 779, used 5x7 dotmatrix characters, and could print in sizes from 10 to 16.5cpi (characters per inch), ranging from 60 cps (charactersper second) at 10 cpi to 100 cps at 16.5 cpi. It also had aone-line buffer (which held up to 132 characters), butprinted a limited 64 character ASCII set, all uppercase plussome special characters. As mentioned before, most personalcomputers of the time didn't have lowercase anyway, so thislimitation wasn't necessarily a drawback. The betterprinters made by Centronics had a larger matrix and couldproduce true descenders on lowercase characters.<9>,<10> A company named Trendcom made two printers that weresignificant in the history of the Apple II. They had twomodels, the 100 and the 200. Instead of using the mechanicssolenoids that drove pins in a print head, these werethermal printers that needed a special heat-sensitive paper. Their operation was very quiet, about as loud as slidingyour finger across a piece of paper. They were inexpensivecompared to other printers of the day (most of which costover $1,000), although the printing looked very much likethat produced by a dot-matrix printer. The Trendcom Model100 printed 40 characters per line on paper that was about 41/2 inches wide. The Model 200 could print 80 columns perline on paper 8 1/2 inches wide. Compared to the firstprinter offered by Radio Shack for their TRS-80 computer(which was also a thermal printer but used an ugly silverpaper), the Trendcom printers were very nice. The significance of the Trendcom printer was thatApple chose it as the first printer they released under theApple name. It could be programmed to control printing ofeach dot in a column, and so was ideal as an inexpensivemeans of printing Apple II hi-res graphics. Apple includeda special interface card and released the printer as the"Apple Silentype" in June 1979 for $599. It was identicalto Trendcom's Model 200 except for the Apple logo in thelower left corner of the front cover.<11> One legendsuggests that part of the popularity of this printer atApple stemmed from the fact that its small size allowed itto fit under the seat of Steve Wozniak's privateairplane.<7>,<12>,<13> Epson was another company that began early in thebusiness of supplying printers for personal computers, andis one of the few that survives to this day. It got itsstart in the printer business with the Epson MX-80, one ofthe first dot matrix printers that sold for less than$1,000. Popular with computer hobbyists of the time, it wascapable of printing Apple II hi-res graphics with theoptional Graphtrax ROMs. A later version of this printer,the Epson MX-100, became available in early 1982. TheMX-100 was a wide carriage model, and could print hi-resgraphics without the need to add any special hardware. Epson printers were unique because they had a specialfeature called a "double print" mode where a line wasprinted normally, then the paper was advanced 1/216 of aninch and the same line printed again. This filled in somegaps between dots on individual letters, and made printoutsmore pleasing to the eye. Another feature used in theseprinters was a "print enhancement" mode, in which the pinshit the ribbon harder and made it possible to make multiplecopies using carbons.<10>,<14> Integral Data Systems was also an early manufacturerof printers. Their IDS 125 and IDS 225 printers came out in1979 (the 225 sold for around $900).<15> These printersused a 7x7 matrix for creating characters. The IDS 125 useda pressure feed method (similar to the method used bytypewriters to hold paper in place), while the IDS 225 useda tractor feed mechanism. The IDS printers had theflexibility of being useable with either parallel or serialinterfaces (with serial speeds up to 1200 baud). It coulddo plotting of dot graphics, and also had an optionalgraphics character set built-in.<16> By the late 1970's Integral Data Systems upgradedtheir printers, giving them more capabilities and flashiernames. Their Paper Tiger line of printers (models 440 and460) had an attractive typeface, and used two vertical rowsof pins in the print head, slightly offset from each other. This produced overlapping dots to achieve a more solidappearance. Some models could print up to 160 cps, and ofcourse upper and lowercase characters were supported. Theywere also capable of reproducing Apple II hi-res graphics(with the appropriate software). IDS also sold a printercalled the Prism, which could print in color using a specialmulticolored ribbon.<17> Other early printers were made by Anadex, MPI, andMicrotek.APPLE'S PRINTERS After the Silentype printer was released in 1979,Apple looked for another printer that would produce better,more permanent output than could be achieved with a thermalprinter. One of the main problems with thermal paper wasthat with time the printing could fade, especially ifcellophane tape was used on the paper. The Apple Dot MatrixPrinter was released in October 1982 for $699. Made from amodified C. Itoh printer, it was one of the first fewdot-matrix printers that sold for under $1,000. Appleneeded it as a better quality printer than the Silentype tohelp promote the Apple III as a business computer. Moreimportantly, it was chosen by Apple because it was capableof doing heavy-duty graphics reproduction (such as outputfrom the Apple Lisa computer, still in development at thattime). Known also as the Apple DMP, it used a custom ROMprogrammed by Apple to control the printer's features.<18> Because Apple was looking for as many businesssolutions for its customers as it could find, they alsoannounced at the same time as the DMP a daisy wheel printercalled the Apple Letter Quality Printer. Costing a hefty$2,195, and made from a modified Qume brand printer, thisprinter could print at a blazing 40 cps, but did producevery good quality output. It was released with the Lisa andIIe in January 1983.<18>,<19> The Apple ImageWriter was released in December 1983 asthe successor to the Apple DMP. Also made by C. Itoh, ithad a faster print speed (120 cps), and could print in eightdifferent pitches (character widths). It was a veryreliable, sturdy printer, and sold originally for $675. Later, a wide carriage version whose abilities wereotherwise identical was made available. It was replaced bythe ImageWriter II in September 1985. The originalApple DMP and the ImageWriter I came in the same beige coloras the Apple II, II Plus, and IIe. The ImageWriter II wasthe same platinum color as the Apple IIGS and the newerMacintosh computers. Styled a little differently, theImageWriter II could do everything the original ImageWritercould do, plus it was capable of printing MouseTextcharacters and could print in color (using a specialmulticolored ribbon).<19>,<20> As part of its promotion of the Apple IIc, a newprinter was released. The Apple Scribe came in the same"Snow White" color as the IIc and was low in cost at $299. It was a thermal printer, but was a significant advancementover the old Silentype. It could print on regular paper(instead of special heat sensitive paper), and could printin four colors. It could do this using a uniqueheat-transfer method and a wax-impregnated ribbon. It couldprint in a "near letter quality" mode (with overlappingdots) at 50 cps, and a draft and graphics mode (80 cps). Its major limitation, however, was a print quality thatoverall was often not as good as some dot-matrix printers,and a ribbon that was expensive and needed to be replacedtoo often. The Scribe was eventually discontinued due tothese problems and low sales.<19> In 1984 Hewlett-Packard introduced the LaserJet laserprinter. This was a significant breakthrough in printerquality, and was capable of producing documents that lookedprofessionally typeset. Apple decided to develop its ownlaser printer, and in January of 1985 released theLaserWriter. Although not speedy printers (with best outputat four pages a minute by 1991), and very expensive (over$2,000), they were popular with those who wanted highquality printing. At Apple, the new LaserWriter wassupported only on the Macintosh, but since the printer didits work through a page description language called"PostScript", it was entirely possible for an Apple II toprint on a laser printer. It was only necessary to learnthe PostScript language, create a file that gave thenecessary commands, and send that file to the printerthrough a serial interface card. Don Lancaster, long-timeApple II supporter and hacker, wrote a series of articlescalled "Ask The Guru" in the magazine Computer Shopper,and he gave many examples of using a laser printer with anApple II. Unfortunately, to this day the perception still existsthat a laser printer will not work with an Apple II, even ifit is a IIGS. This is partly because there are few softwarepackages for the Apple II that will produce output asPostScript files that can be properly interpreted on a laserprinter. However, programs such as "Publish-It!" will printto a PostScript-capable laser printer even on an Apple IIc. All that needs to be done is to have the right cable toconnect the two devices. One of the newest types of print technology to come topersonal computers is known as the ink-jet printer. Thistype of printer works with a dot-matrix, but does not usepins impacting a ribbon. Rather, it uses a print head thatsprays ink through as many as 64 holes in patterns to formcharacters as moves across the paper. The advantage overdot-matrix impact printers is its ability to form more solidcharacters. In fact, the quality of printout with anink-jet printer can be almost as good as that obtained witha laser printer. The advantage over laser printers is cost. Where the best price for a laser printer in 1991 is stillwell over $1,500, the cost of ink-jet printers is getting aslow as $500, and for some brands down to $300. Thedisadvantage for Apple II users? Although it is easy to getthe printers to reproduce text, printing graphics to workmay be difficult until Apple II software packages directlysupport those printers. Fortunately, most of these printerswill emulate some brands of dot-matrix printers, and if thatbrand is supported by a software program, then graphicsreproduction may be possible. Apple entered the ink-jet printer market in May 1991when it released the Apple StyleWriter. A modification ofCanon's BubbleJet printer, this printer does excellentreproduction of text and graphics--on a Macintosh. Unfortunately, Apple didn't see fit to release drivers(programs to control hardware) to make it possible to usethis printer on the IIGS or IIe. It does make use of a newfont (typeface) technology called TrueType, which makes itpossible to have a single font that can be made any sizeunder software control (instead of having a separate fontfor each size that you might want to print). It was notuntil early 1992 when a program called Pointless was madeavailable for the IIGS (not from Apple) that TrueType couldbe used on that computer. Although not quite a printer, the Apple Color Plotterwas released in June of 1984. It had an advantage overprinters, in that it could draw smooth lines and curves. Using four colored pens in a rotating pen head, andselecting them at the computer's command, the Color Plotterworked by moving the paper up and down to draw verticallines, and the pen left and right to draw horizontal lines. Control of the plotter was accomplished by sending textcommands through a serial card, and consisted of two lettercommands (DA = Draw Absolute, DR = Draw Relative, etc.)followed by parameters. It could move the pen withoutdrawing, plot points, draw lines, arcs, and circles, andprint text at any location, tilt, rotation, or scale. Linescould be drawn as solid or as patterns of dots. Presumably this product did not take off because ofthe limited need for this type of graphics, and the price. Today, although the quality of screen and printer graphicsis greatly improved over what was available in 1984, aplotter can still be useful in some situations. Usually,however, the right software can reproduce drawings with adot matrix or laser printer in as good or better detail thana plotter can.<21>++++++++++++++++++++++NEXT INSTALLMENT: DOS++++++++++++++++++++++ NOTES <1> Weisman, Tyler. (personal mail), GEnie, E-mail, Aug 1991. <2> -----. "The Marketplace", Call-A.P.P.L.E., Nov 1984, p. 41. <3> Neibauer, Larry. "Reviews: Digital Paintbrush", Call-A.P.P.L.E., Nov 1984, p. 36. <4> -----. "The Marketplace", Call-A.P.P.L.E., Jul 1984, p. 61. <5> (various). "Reviews: Music Systems For The Apple II". Call-A.P.P.L.E., Jun 1984, pp. 17-31. <6> -----. -----, Apple Orchard, Vol. 1, No. 1., Mar-Apr 1980, various. <7> -----. (ads), Call-A.P.P.L.E. In Depth #1, 198, p. 106. <8> Zuchowski, Tom. GEnie, A2 Roundtable, Mar 1991, Category 2, Topic 16. <9> Ulm, Dennis. GEnie, A2 Roundtable, Apr 1991, Category 2, Topic 16. <10> Wright, Loren. "On Buying A Printer", Micro, Aug 1981, pp. 33-35. <11> Bernsten, Jeff. GEnie, A2 Roundtable, Apr 1991, Category 2, Topic 16 <12> -----. "A.P.P.L.E. Co-op Celebrates A Decade of Service". Call-A.P.P.L.E., Feb 1988, pp. 12-27. <13> Felty, Wes. GEnie, A2 Roundtable, Apr 1991, Category 2, Topic 16. <14> Kindall, Jerry. GEnie, A2 Roundtable, Mar 1991, Category 2, Topic 16. <15> Peterson, Craig. The Computer Store, Santa Monica, CA, Store Information And Prices, Aug 10, 1979, p. 1. <16> Golding, Val. "Integral Data IP 225 Printer - A Review", PEEKing At Call-A.P.P.L.E., Vol. 2, 1979, p. 151. <17> Vanderpool, Tom. GEnie, A2 Roundtable, Mar & Aug 1991, Category 2, Topic 16. <18> Williams, Gregg. "The Lisa Computer System", Byte, Feb 1983, p. 43. <19> Baum, Peter. "Expanding The Unexpandable IIc", Softalk, Jun 1984, pp. 95-97. <20> -----. "The Marketplace", Call-A.P.P.L.E., Nov 1985, p. 50. <21> Durkee, David. "Marketalk Reviews", Softalk, Jun 1984, p. 120. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 14 -- DOS) [v1.0 :: 12 Jan 92]APPLE DOS For a computer to be useful, it must have a means ofeasy storage and retrieval of data. That storage mediummust be both convenient and affordable. In the early daysof the Apple II computer, the best that they could achievewas "affordable". The built-in cassette port was thestate of the art for personal computers back in 1977; theApple I computer had a cassette interface available onlyas an add-on item. But, although a cassette storage systemmay be inexpensive, it is not very convenient. Thesimplistic cassette operating system on the Apple II (visualexamination of the mechanical index counter on the cassetterecorder to know the location of the next program) wasdownright frustrating to use for many early Apple II owners. Something better was desperately needed. As you may recall from Part 5 of the History, inDecember of 1977 Steve Wozniak began a crash effort todevelop a floppy disk drive for the Apple II computer. Toget it ready for the Consumer Electronics Show in January1978, Wozniak and Randy Wigginton made a very simple diskoperating system that would only load files from fixedlocations off the disk in response to one-letter commands. But it was not a true disk operating system (DOS); theirrudimentary control program would not be flexible enough forefficient and simple use of the disk drive.DISK SYSTEM BASICS To create an operating system that would be bothsimple to use and yet powerful enough for advanced filemanipulations, Apple had much work to do, building on thedevice driver that Wozniak had written. Among other things,it had to interface well with the BASICs in ROM on theApple II, and be no more complicated to use than thecassette system. Although Woz's driver routines wereefficient in writing and reading data to and from the disk,they could only be used from 6502 assembly language. Designing a disk operating system from scratch is notrivial matter. On one side is the RAM memory in theApple II, waiting patiently for a useful program to beloaded and executed. On the other side of an electronicbridge (interface card and connecting cable) is the floppydisk and disk drive hardware itself. The control programthe Woz wrote could be compared to a narrow rope bridgecrossing a chasm; it works, but you can't carry much withyou, and it is easy to slip and fall (lose data). Acomplete DOS is more like a concrete and steel bridge,capable of carrying autos and trucks in both directions overthe chasm. Woz's "rope bridge" was a foundation, but therewas much work yet to do. A disk drive consists of a recording head that ismechanically moved across the surface of the floppy disk,tracing the radius of the disk from the center to the edge. The disk itself is spinning under the head. This is similarto the stylus on a turntable that plays 33 RPM records(remember those?), but the head on a disk drive can be givena command to move to a different "track" on the spinningdisk. Also unlike the turntable, which is a "read-only"device, the head on the disk drive can either reads bits offor write bits onto the disk. To be able to find where datahas been stored on a disk, it is "formatted" into a knownconfiguration. A blank disk could be compared to empty landthat will be filled with new houses, but currently has nostreets, street signs, or house numbers. The initialformatting (called "hard" formatting) of a blank disk is,then, like building the streets and assigning lots forfuture building. The second part of disk formatting (called"soft" formatting), involves naming the streets, designatingaddresses, and building houses. In the case of Apple's Disk II, it was designed with35 concentric circles ("streets") called tracks. Each trackis subdivided into 16 segments ("houses") called sectors. Each sector can hold 256 bytes of information. In thehardware system that Wozniak designed, the timing hole nearthe center of the floppy disk was not used by the hardwareto keep track of which sector was passing the head at anyparticular time. Because of that, it was necessary for thesoftware to identify in a different way where one sectorended and the next sector began. A complicated method wasused of specially encoding each of the 256 bytes so theyhave a standard, recognizable appearance to a program thatis controlling the disk drive, plus some other specializedbytes that identify the start and end of a sector. Althoughit did decrease somewhat the storage capacity of the disk,the cost savings in less complicated hardware compensatedfor it.DOS 3.1 - STRUCTURE & FUNCTION WITH BASIC With this background, let's get back to tracing thegap between Woz's demo DOS and Apple's first officialrelease, DOS 3.1. Worth and Lechner in their book, "BeneathApple DOS", divided DOS up into four parts according tofunction and location in memory. When a computer needs anoperating system, it's because there is a need to insulatethe user from the complexity of trying to control thehardware. Consider the four parts of DOS as layers; as youget closer to the bottom layer, you are closer to thehardware (the raw data on the disk and direct control of thedisk drive), but you also increase greatly the difficulty ofmanaging it. The farther up you go, the easier it is tomanage things on the disk, but the less direct is thecontrol of the disk data and hardware.<1>,<2> When Wozniakwrote his disk controller (driver) routines, he worked atthe deepest layer, directly manipulating the disk hardwareand raw data. This involved some complex timing and errorchecking for reading and writing data to the disk. Thissection is also where the program lies that erases the diskand creates the sectors and their addresses. In memory,this layer of DOS started at $B800 on a 48K Apple II.<2>,<3> Randy Wigginton wrote a "front end" for Wozniak'scontroller routines. His part could be considered a thinlayer that is part of the lowest layer of disk routines. Together, the two layers made up what came to be known as"RWTS", or "Read/Write Track/Sector". It could do fourthings only: SEEK (to move the disk arm to the desiredtrack), READ (load a sector from disk into memory), WRITE(save a sector to disk from memory), and FORMAT (discussedabove). This layer of DOS, the Disk II driver, started at$B600.<2>,<3> Apple contracted with an outside consultant, BobShepardson, to write much of the rest of DOS (thoughmodifications were made Apple programmers Dick Huston andRick Auricchio).<4>,<5>,<6> Shepardson's group wrote thelayers (parts) of DOS that later became known as the "FileManager" and the "Main DOS routines". The File Manager wasthe next layer in memory above RWTS. It started at $AAC9 inmemory, and was responsible for twelve higher levelfunctions that dealt with files and the disk in general. These functions were OPEN, CLOSE, READ, WRITE, DELETE,CATALOG, LOCK, UNLOCK, RENAME, POSITION, INIT (format a diskand create an empty catalog track), and VERIFY. This set ofroutines, along with RWTS, would be similar to the filePRODOS in the current 8-bit disk operating system. Ithandled the disk at the file level, but knew nothing aboutBASIC.<2>,<3> The next layer of code above the File Managercontained the Main DOS Routines. These routines started at$9D00 in memory, and were responsible for interfacing BASICwith the disk. This layer would be similar to the filecalled BASIC.SYSTEM used today in the ProDOS system. Sinceneither Integer BASIC nor Applesoft were specificallymodified to handle disk commands, this part of DOS kept aconstant look at any output PRINTed by BASIC. When a BASICprogram was running, DOS looked to see if the characterCtrl-D (hex $04) was printed immediately after a Ctrl-M(carriage return). If that sequence was detected, DOSassumed that the next text printed was a command for it. Ifa BASIC program was not running, then DOS examined anythingtyped directly from the keyboard. If it decided that a DOScommand had been entered, it would execute that command. Ifthe user typed a command that DOS recognized (such as "RUNPROGRAM" or "SAVE PROGRAM") but which resulted in a diskerror, DOS 3.1 would generate an error message. On theother hand, if DOS did not recognize the command, it passedit on to the active BASIC for processing. The final, uppermost layer of DOS was not a programcode area but a set of memory areas called "buffers". Onebuffer was used by DOS for each open file. These buffersordinarily started at $9600 in memory. Here is an example of how the layers of DOSinteracted: When a user typed the command "LOAD PROGRAM" atthe keyboard, DOS intercepted the statement. The Main DOSRoutines determined that it was a legal DOS command. TheFile Manager was called to 1) OPEN a file named "PROGRAM",2) READ all the bytes associated with that file into memorystarting at a specific location, and then 3) CLOSE the file. The File Manager's OPEN command in turn instructed RWTSwhere to move the disk read/write head, and in what order toread the correct tracks and sectors to find the contents ofthe entire file, wherever it happened to be on the disk. Complicated, perhaps, but the only thing the user had toknow was how to type "LOAD PROGRAM". Finally, one piece of trivia: Why was the first DOSreleased for the Apple II called "DOS 3.1" rather than "DOS1.0"? According to Steve Wozniak, it was Bob Shepardson'sgroup that decided on calling it "DOS 3". It is unclear whyShepardson decided on "3"; possibly it referred to internalrevisions done by Shepardson, or perhaps it was amodification of some DOS routines done for another computerthat had used earlier version numbers.<2> (Note: DOS 3 wasnever actually released to the public; that versionapparently had a few bugs left to fix, so "DOS 3.1" camewith the first Disk II drives shipped by Apple to theirdealers).DOS 3.1 - MANUAL When originally introduced with the new Disk II drivein 1978, DOS 3.1 had very little documentation. Because thedemand for the disk drive was so great, the engineers atApple had worked feverishly to produce enough working drivesto begin shipping. They went out, although there was nottime to complete a real manual on how to use the diskoperating system. They did include a leaflet about some ofthe commands, but there were still, obviously, complaints. One letter to Apple president Mike Markkula made these bluntcomments: "You [expletive deleted]. I bought an Apple withfloppy and nobody, I mean nobody, in L.A. or San Diego knowshow to use the [thing] for random access files. I reallyfeel 'ripped off.' Everybody talks about this great manualin the sky that is coming out soon??? ... [more expletives]! I need this computer now in my business not next year. [Expletive]. I hope your dog dies."<7> It was not until the release of DOS 3.2 in February1979 that a true reference manual was made available. Itwas given the unwieldy title, "Disk II Floppy Disk SubsystemInstallation and Operating Manual", and subtitled "AppleIntelligent Subsystems (part #030-0011-00)". It was all of38 pages long, with weak jokes and typos, but not much elseof substance. Instruction on how to READ and WRITE textfiles was given in a mere ten lines, with no programmingexamples. The EXEC command was given a little moredescription, but was still unclear to many users. Themanual also talked about " *3D0G ". What it didn't saywas that this meant that the user was supposed to type"3D0G" from the Monitor prompt (to allow a return to theactive BASIC with DOS connected).<8>,<9>DOS 3.1 - FEATURES A catalog of the DOS 3.1 System Master disk wouldproduce this output: I 007 HELLO *I 043 APPLESOFT I 016 ANIMALS I 009 COLOR DEMOS *I 004 MASTER.CREATE *B 039 RAWDOS *I 007 COPY *B 007 COPY.OBJ "HELLO" was the startup file executed when the diskwas booted. It just displayed the following: DISK II MASTER DISKETTE VERSION 3.1 20-JUL-78 COPYRIGHT 1978 APPLE COMPUTER INC.>_stopping at the Integer BASIC prompt. "ANIMALS" was anInteger program that gave an example of the use of diskfiles, and "COLOR DEMOS" was a disk version of a programthat had earlier come on cassette. "MASTER CREATE" was aprogram that could be used to initialize a "master" disk. Using the binary file "RAWDOS", it executed the DOS "INIT"command, but put a version of DOS on the newly formatteddisk that was relocatable.<10> When DOS from a "master"disk was booted on an Apple II, it first determined what wassize of the memory, and then loaded itself into memory ashigh as possible. The INIT command properly formatted a newdisk, but created what Apple called a "slave" disk; that is,the DOS loaded from a slave disk was fixed in memory to thesame size as the computer on which DOS had been booted. Inmost cases this would not be a problem. However, theproblem would surface if someone whose Apple II had only 16Kof RAM shared a disk with a friend whose computer had, say,32K of memory. Booting that borrowed disk would make the32K computer appear to have only 16K of RAM (since it forcedDOS to load at the highest location available to a 16Kmachine). A "master" disk was more versatile, being"intelligent" enough to adapt itself to differing memorysizes. The Integer BASIC file "APPLESOFT" was interesting. It was a 43 sector file that appeared in a catalog as anInteger BASIC program (with the "I" filetype code). If youloaded the file and listed lines 10 through 80, there werelines that would produce the following text:***************************************** ** APPLESOFT ][ FLOATING POINT BASIC ** APRIL 1978 *****************************************COPYRIGHT 1978 APPLE COMPUTER, INC.COPYRIGHT 1976 BY MICROSOFTALL RIGHTS RESERVEDThere were also lines that poked some values into memory,and then jumped to a machine language routine that relocatedApplesoft into RAM starting at $800 (the same place whereCassette Applesoft loaded). If you tried to LIST the entireprogram in memory, the lines after line 80 appeared to be ajumble of Integer BASIC commands. This is because amajority of the file was actually a machine language programthat had been appended to the end of the short Integer BASICprogram that displayed the title above and did the memorypokes. This machine language code was the Applesoft BASICinterpreter. Now, if the file "APPLESOFT" was executed bytyping "RUN APPLESOFT", it would display the title and leavethe cursor next to the Applesoft bracket prompt. However,DOS was no longer connected; the result was much like usingCassette Applesoft. To properly use this file with DOS, youhad to type "FP" from the Integer BASIC prompt. DOS wouldthen load the "APPLESOFT" file and properly initialize theinterpreter, leaving DOS connected. Since this version ofApplesoft still had a few bugs in it, this method of usingApplesoft was obsoleted by the Applesoft Firmware card andthe Apple II Plus.<9> Interestingly, the error messages produced by DOS 3.1were made to look similar to those displayed by IntegerBASIC. For example, this is what happened if an attempt wasmade to load a type "B" (binary) file with the "LOAD"command:>LOAD COPY.OBJ***DISK: NOT BASIC PROGRAM>_Integer BASIC had error messages that looked like"*** SYNTAX ERR" (with a space following the asterisks). The possible error messages in this version of DOS that weredifferent from later versions were:SYS ERRORCMD SYNTAX ERRORNO FILE BUFFS AVAIL ERRORNOT BASIC PROGRAM ERRORNOT BINARY FILE ERRORDOS 3.1 - USER EXPERIENCES One problem encountered by early users of the Disk IIwas properly connecting the drive to the controller card, asdiscussed in Part 9 of this History. Some quirks in DOSthat plagued users at the time of the first releases ofDOS 3.1 included one in which LOCKing a file sometimesmysteriously caused the length of the first file in thecatalog to change. Apple told people not to worry aboutthat; in fact, they told people not to pay attention to thesector counts in the catalog at all, as there was a bug inthat part of the catalog routine. Another problem in earlyversions of DOS 3.1 was an inability to execute READ orWRITE statements in an Applesoft program if they occurred inprogram lines that were numbered higher than 256. It alsowouldn't allow more than one DOS command on the same line ofa program, so this was not possible:10 ON ERROR GOTO 100020 PRINT D$;"VERIFY FILE": PRINT D$;"OPEN FILE": PRINTD$;"READ FILE" Other bugs in early versions of DOS 3.1 included notbeing able to initialize disks with MASTER.CREATE unless thedisk controller was moved to slot 7. (Originally, slot 7was going to be the disk slot, but Apple decided to changeit to slot 6 and leave slot 7 for video cards. Why thevarious 80-column cards that were eventually released weremade to go into slot 3 instead of slot 7 is anybody'sguess). The A.P.P.L.E. user group had patches toMASTER.CREATE and RAWDOS to fix the slot 7 INIT bug, and the>255 line number bug in Applesoft.<11> Apple later releaseda modified version of DOS 3.1 that fixed these bugs (withoutchanging the version number).DOS 3.2 - ENHANCEMENTS As mentioned above, DOS 3 and 3.1 had a few problems. When the Apple II Plus with the Autostart ROM was released,DOS needed to be updated to handle the changes. DOS 3.2,released in February 1979, contained several modifications,but retained 90 percent of the basic structure of DOS 3.1. One interesting change made to plan for the future was adoubling of the number of possible filetypes. The originalDOS used "I" for Integer BASIC files, "A" for Applesoft, "B"for binary files, and "T" for text files. DOS 3.2 addedtypes "S", "R", another "A", and another "B". Of those fourtypes, only "R" was ever officially designated by Apple, andthat for relocatable assembler object files. DOS 3.2 included a program called "UPDATE 3.2", whichworked much like the earlier program "MASTER.CREATE" inchanging a "slave" DOS disk into a "master" disk. As timewent by, and more users had their Apple II's fully populatedwith 48K RAM, the need for such a utility became less andless important.<12>DOS 3.2 - FEATURES A catalog of the DOS 3.2 System Master disk wouldproduce this output: *I 002 HELLO *I 043 APPLESOFT *I 018 ANIMALS *B 009 UPDATE 3.2 *I 014 COPY *I 009 COLOR DEMO *B 003 CHAIN *A 009 COLOR DEMOSOFT *A 028 LITTLE BRICK OUT *A 003 MAKE TEXT *A 003 RETRIEVE TEXT *A 010 EXEC DEMO *A 010 RANDOM *T 003 APPLE PROMS *A 039 RENUMBER INSTRUCTIONS *A 014 RENUMBER The file "RAWDOS" that was on the DOS 3.1 disk was nolonger needed, as its function was included in the "UPDATE3.2" program.<10> As you can see, some of the files fromthe DOS 3.1 master disk were retained, but some others wereadded. There were now several Applesoft files, including aversion of the color demonstration ("COLOR DEMOSOFT"), asmaller version of the older Integer BASIC game "BRICK OUT"("LITTLE BRICK OUT"), a couple of files to show simple diskaccess ("MAKE TEXT" and "RETRIEVE TEXT"), and a program toexhibit the use of random-access disk files ("RANDOM", withthe file "APPLE PROMS"). There was finally a program ("EXECDEMO") that showed how to use the EXEC command in DOS. Alsofound on this disk were two utilities for Applesoft. Onemade it possible to renumber Applesoft programs, and theother ("CHAIN") allowed linking between multiple Applesoftprograms, retaining the value of any variables created bythe first program. There was a CHAIN command built intoDOS, but it worked properly only with Integer BASICprograms.DOS 3.2.1 In July 1979, DOS 3.2.1 was released. This was merelya minor upgrade to make some patches to RWTS and correct atiming problem that caused the utility "COPY" to fail whencopying disks with two disk drives. It also began a systemdisk version numbering system that persists to this day,that of adding a third digit to indicate a minor upgrade. (For example, GS/OS 5.0 changed to 5.0.1 with some bugfixes, rather than 5.1).<12> This disk contained the new COPY program, and aprogram called "UPDATE 3.2.1", which worked just as "UPDATE3.2" and "MASTER.CREATE" had previously. The update programwas used to modify existing DOS 3.2 disks to the 3.2.1version. As an bonus, Apple added some programs to thisMaster disk that were just for fun. All written in IntegerBASIC, the games and graphics demonstrations included"APPLE-TREK", "THE INFINITE NUMBER OF MONKEYS", "BRIAN'STHEME", and "BRICK OUT" (which was an Apple II version ofthe arcade game, "Breakout"). The "HELLO" program displayedthis when the disk was booted: MASTER DISKETTE VERSION 3.2.1 STANDARD 31-JULY-79 COPYRIGHT 1979 APPLE COMPUTER INC.++++++++++++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: DOS 3.3, ProDOS, & Beyond++++++++++++++++++++++++++++++++++++++++++++ NOTES <1> Deatherage, Matt. "The Operating System", The Apple II Guide, Fall 1990, pp. 117-125. <2> Wozniak, Stephen. (personal telephone call), Sep 5, 1991. <3> Worth, Don, and Lechner, Pieter. Quality Software, Beneath Apple DOS, Reseda, CA, 1981, pp. 5.1-5.3, 6.4-6.8, 8.1-8.42. <4> Little, Gary. Addison-Wesley Publishing Company, Inc, Exploring Apple GS/OS And ProDOS 8, Reading, MA, 1988, pp. 2-4. <5> Little, Gary. Brady Communications Co, Inside The Apple //c, Bowie, MD, 1985, pp. 1-7. <6> Auricchio, Rick. (personal telephone call), Sep 4, 1991. <7> Moritz, Michael. William Morrow and Company, Inc, The Little Kingdom, New York, 1984, p. 211. <8> Worth, Don, and Lechner, Pieter. p. 1.2. <9> Bragner, Bob. "Open Discussion", Softalk, Nov 1983, pp. 51-52. <10> Vanderpool, Tom. GEnie, A2 Roundtable, Mar & Aug 1991, Category 2, Topic 16. <11> Thyng, Mike. "Apple Source", PEEKing At Call-A.P.P.L.E., Vol. 1, 1978, pp. 7-8. <12> Worth, Don, and Lechner, Pieter. pp. 2.1-2.3. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 15 -- DOS 3.3, PRODOS & BEYOND) [v1.2 :: 30 Sep 92]DOS 3.3 In August of 1980, Apple released an upgrade for DOS,to version 3.3. This upgrade was an important one. Itconsisted of not only a new System Master disk, but ahardware upgrade chip as well. The original disk drive hadbeen designed with the ability to read and write 35 tracksof 13 sectors each on a 5.25 inch disk. At 256 bytespossible per sector, this made the disk capable of holding113.75K of information. Since it was designed to have DOSpresent on each disk in the first three tracks, and thecatalog took up another entire track, there was actuallyonly 100.75K available for data storage. Steve Wozniak, theauthor of the original DOS disk driver (RWTS), had found away to increase the storage capacity of Apple floppy disks. Changing slightly the method used for encoding data on thedisk made it possible to have 16 sectors per track, insteadof the original 13 sectors per track in DOS 3.1 and 3.2. This resulted in a disk that could now hold a maximum of140K of data (124K excluding DOS and the catalog track), a23 percent increase over the 13 sector disks. Theremarkable thing about this upgrade was that the disk drivesthemselves did not need to be changed to make this possible. Only the ROM program on the Disk II controller card neededto be changed to make the move to DOS 3.3. Those users whobought this upgrade to DOS 3.3 had to change the ROM chip onthe disk controller (or have their dealer do it for them). An updated and greatly expanded version of the DOS manualwas also included in the DOS 3.3 upgrade.<1>DOS 3.3 - FEATURES The DOS 3.3 System Master disk included many programsthat had previously been present on the DOS 3.2 Master, plusa few others. The "COPY" program (used to copy entiredisks) was translated to Applesoft as "COPYA" for those IIPlus users who didn't have access to Integer BASIC. Thenewer COPY programs also worked properly on single drivesystems (previously, you had to have two disk drives inorder to use this program to copy a disk). To allow usersto startup their older 13 sector DOS 3.2 disks, a binaryprogram called "BOOT13" was included. (Also, a separatedisk called "BASICS" was included that could be used in thesame way as a pre-boot for 13 sector disks).<1> Because of the changes in the ROM controller, it wasnot easy to read disks formatted under DOS 3.2 directly fromDOS 3.3. It could have been incorporated into DOS 3.3, butwould have called for a major effort in rewriting the trackand sector access routines, as well as making DOS largerthan the earlier versions. Instead, Apple supplied on theSystem Master disk a conversion program called "MUFFIN" toallow files to be moved from 13 sector to 16 sector disks. Enterprising hackers in the Apple II world mademodifications to MUFFIN and created DE-MUFFIN, a DOS 3.2utility to convert the files back to the 13 sectorformat.<1> Rich Williams at Apple wrote the MUFFIN program(which was supposed to stand for Move Utility ForFiles In NewDOS). The System Master disk also contained a new utilitycalled "FID" (which started at version "M"; just like DOS"3", nobody knows why the first public release didn't startwith "A"). FID, written entirely in assembly language,allowed easier copying of files, particularly Text andBinary files that couldn't simply be LOADed and SAVEd fromone disk to another, as could Applesoft and Integerprograms. The name "FID" was odd, however. The Applemanuals said it stood for FIle Developer, but RichWilliams (who also wrote this utility) said that theoriginal name of the program was FISHEAD (which had somesort of mnemonic meaning that he could no longer recall). Apple Marketing said he couldn't name a program FISHEAD, sohe changed it to FID, which they said was okay. It reallystood for Fishead In Disguise (or Fishead InDrag by some within Apple).<2>,<3>,<4> Some Apple II users didn't like to have to use utilityprograms to manage their collections of disks in both the 13and 16 sector formats. One method that was used to overcomethis inconvenience was to piggyback the old and the new diskcontroller ROMs and use a switch to toggle between systems. The most elegant solution I've found was a ROM chip thatplugged into a special card (the ROMPlus made by MountainHardware, or the ROMBoard made by Andromeda). A call to amemory location would switch between DOS 3.2 and 3.3, makingfile conversions quite easy. Soft Ctrl Systems, the companythat sold this Dual DOS ROM also sold ROMs that gave instantaccess to an Applesoft renumber and merge program, anApplesoft editor, and a specialized disk command menu anddisk map.<2> Another change found on the DOS 3.3 System Master wasin the method used to load the alternate BASIC. Since bythis time the Language Card was available (which, as youshould recall, was simply 16K more RAM to add in parallel tothe Apple II ROM), there were two groups of users to serviceon bootup. For Apple II Plus owners, there was a file named"INTBASIC", which would load Integer BASIC onto the LanguageCard. For the older Apple II (non-Plus) users, the file"FPBASIC" would be loaded onto the Language Card when theDOS 3.3 disk was booted, making Applesoft available. Thelast version of the DOS 3.3 Master disk, released with theApple IIe, used a new utility to load these files which wassignificantly faster than the standard DOS BLOAD command.DOS 3.3 - MISCELLANEOUS A rumor expressed in a letter to Call-A.P.P.L.E.magazine in January 1982 suggested that up until Christmasof 1980 there never had been an assembly language sourcelisting of DOS. The writer of the letter stated thatchanges made to DOS up until that time were done by patchingit with the mini-assembler in the Monitor. However, duringa phone interview in September 1991 with John Arkley atApple, he said there always was a source code listing forDOS, as far back as DOS 3. He believes the writer of theletter may have been referring to the problem with the lostAutostart ROM source code (see Part 6 of this History). Arkley stated that the earliest versions of DOS were writtenusing a cross-assembler on a Horizon microcomputer.<5>,<6> He also said that the only part of DOS 3.3 that wasassembled from scratch was the new RWTS. The rest wasmerely attached to RWTS and "conditionally" assembled (aprogrammer's term; sorry). They made a few patches to fixbugs in the File Manager and Main DOS routines, but did soonly in very specific places, to avoid moving undocumentedentry points that programmers had been using up to thatpoint.<3>,<4>,<7>,<8>DOS 3.3 - LIMITATIONS The major limit of DOS 3.3 was that it, like itspredecessors, was designed specifically to support the DiskII drive. Hard disks, RAM disks, and 3.5 disks (like thoseused in the Macintosh when it was released in 1984) couldnot be directly used with DOS 3.3.<9>PASCAL SYSTEM The Pascal system was released in 1979, prior to theDOS 3.3 upgrade. It used the same hardware upgrade to theDisk II controller as was included with DOS 3.3. The methodused by the Pascal disk system to store files was quitedifferent from that used by DOS, however. Instead of the256-byte "sectors" used with DOS 3.2 (and by 3.3), thePascal system used 512-byte "blocks", using two sectors perblock. Pascal used the larger 140K disks from thebeginning, and its method of file naming was somewhat morelimited. Instead of names that could be as long as 30characters and could contain any ASCII character (as was thecase with DOS 3.2 and 3.3), Pascal files could be only 15characters long, and could contain only letters, numbers, ora period. It was designed with a little more flexibility inthe types of files that could be created, however. Insteadof DOS 3.2's limit of eight different file types ("A", "I","B", "T", and the other four little used ones), Pascal wasdesigned to allow many more, and used a two-byte code todesignate file types. A Pascal file entry also had spacefor a date when the file was created or updated. DOS 3.2 or3.3 could not easily do this, even if a clock card wasinstalled.<7>,<10> Pascal disks differed also in being able to have aunique name to designate each disk. DOS 3.2 and 3.3 couldbe formatted to use up to 254 different volume "numbers",but this feature was seldom used and did not allow disks tobe very unique. The Pascal disk name could be up to 7characters in length, and had the same limits of characterchoice as did file names. Another feature of the Pascaldisks that differed from the older DOS disks was how spacewas allocated on a disk for a particular file. UnderDOS 3.2 and 3.3, space was used on the disk to identifywhich sectors were used and which were free. When a newfile was created or an existing file was enlarged, thistrack/sector list was consulted by DOS to find where freespace could be found, and the list was updated when a newsector was used. The advantage was that all space on thedisk could be used as it was needed, but the disadvantagewas that a file could be "fragmented", with the sectors thatmade up that file scattered throughout the disk. Pascal disks did not have any map of free blocks. Instead, a Pascal file used only consecutive blocks on adisk, and a new file would be started following the end ofthe last file on the disk. The advantage of this system wasfaster access to disk files, since they were all on onecontinuous piece of the disk. The disadvantage was that ifa file was deleted, the newly freed space could not be usedunless Pascal's "Krunch" utility was used to move all filesforward over the unused space. The Pascal system also included some other built-indisk utilities, an assembler, and a compiler. As part ofthis system one could also purchase from Apple a compilerfor FORTRAN programs and a few other computer languages.<10>CP/M With the release of the Microsoft CP/M Softcard, adisk system was needed to handle this foreign programmingenvironment. (Recall from Part 12 of the History that theCP/M system gave Apple II users a Z-80-based computer insidetheir 6502 computer and, therefore, access to programs andutilities that were previously unavailable). CP/M diskswere designed to use four 256-byte sectors as one "block"(twice as large as the Pascal "block"). Like DOS 3.2 and3.3, the first three tracks on the disk were used for theCP/M operating system which was loaded into memory whenbooting the disk. Like Pascal, the CP/M directory was foundat the start of the disk, instead of in the middle as DOSwas designed. Apple II CP/M disks followed the standard CP/M filenaming system. A file name consisted of 8 characters,followed by a period, and then a three character"extension". One interesting feature of CP/M files was thatif a file was longer than 16 CP/M blocks (64 DOS sectors), anew directory entry would be made with the same file name. This entry had an extra byte set to show that this was acontinuation of a previous file, instead of a new, separatefile.<10>SOS/PRODOS The operating system designed for the Apple IIIcomputer was called "SOS". This title arose from theApple III's code name, "Sara", which itself came from thename of engineer Disk Huston's daughter. Originally, then,SOS stood for "Sara's Operating System". The manualsreleased with the computer, however, used the moreprofessional-sounding name "Sophisticated Operating System." SOS was the first operating system for a microcomputer touse the concept of "device drivers", which were programstaken from the startup disk and made part of the operatingsystem. These drivers told the computer how to communicatewith the various devices that were attached to it, from avariety of disk drives to the keyboard and monitor. Thisgave flexibility to the Apple III to use new technology asit became available.<9> When Apple designed the Apple III, they were underconstraints of maintaining some compatibility with theApple II disk format. They used the same disk controllerand the same capacity disks as the Pascal/DOS 3.3 systems:35 tracks, of 16 sectors each. However, the engineers werefree to make any changes they wanted in the way in whichfiles were stored on the disk. They came up with somethingthat was a hybrid between the DOS 3.3 and Pascal methods offile storage. From Pascal they took the concept of using512-byte blocks as the basic unit of storage, a two-block"system loader" program at the start of the disk (thisloader would locate a larger system file elsewhere on thedisk to actually start the operating system), and afour-block main catalog (which they called a "directory"). From DOS 3.3 they used the concept of disk maps and blocklists for each file, allowing parts of files to be storedanywhere on the disk (and eliminating the need for thePascal "Krunch" function). The SOS filing system alsocontinued the use of a byte to identify different filetypes,space for a date (and time) of file storage, and the 15character file names using only letters, numbers, and aperiod. Because the Apple III was intended to be a businessmachine and had to be able to access larger disk devicesthan were allowed for the Apple II, they also added theability to create and use different levels of filedirectories. A single four-block directory had space onlyfor 51 files; even if it was enlarged to allow more files,on a large disk it would soon be difficult to find a file ina list that got longer than a couple of hundred names. The SOS disk file system also would allow files to beas large as 16 MB, and a single disk volume could be up to32 MB in size. In 1981, when the 5 MB Profile hard disk wasreleased by Apple for the III, this limit of 32 MB wasconsidered to be more than adequate. In 1984, when ProDOS was released for the Apple II asa "Professional Disk Operating System", the same filestructure was used. In fact, the disks were so designedthat a disk created by the Apple II ProDOS formatterinstalled an Apple III SOS loader segment in the secondblock on the disk. This made it possible to boot the samedisk on either an Apple II or an Apple III, if the necessarysystem files unique to each computer were present on thedisk. Also, files could be shared easily between the twocomputers. Even as late as 1992, when the Apple III hasbeen out of production for eight years, disk formatted byApple II System Utilities still have SOS boot informationlocated on block 1. What may be even more amazing is thatthis disk system for the Apple III, released in 1980 (andprobably designed in 1978 or 1979), is still flexible enoughto be useful for Apple II's in 1992.<10>PRODOS The original DOS for the Apple II was designedprimarily to support BASIC. If a programmer wanted to makeuse of the disk system for an assembly language program, hehad to make use of undocumented, low level calls to the DOSFile Manager, or possibly to some of the Main DOS Routines. This method was clumsy, and often made inefficient use ofmemory, as DOS expected that any calls made to it were doneon behalf of BASIC. Moreover, this tied the hands ofprogrammers at Apple in their ability to enhance DOS, sinceany changes they might make would most likely changeinternal addresses, and cause older software to malfunctionif used with the revised DOS. Another problem with DOS was speed. Since each byteread from the disk was copied between memory buffers threetimes, much of the disk access time was spent in movingthings around in memory. Consequently, as hackers took DOSapart and found better ways to do things, several variationsof DOS speed-up programs appeared by 1983, includingDiversi-DOS, ProntoDOS, and David-DOS. Each of theseprograms were mutually incompatible in terms of thelow-level calls they made, and had slightly different waysof speeding up DOS. DOS was also limited since it was device dependent. It was designed to work quite well with the Disk II drive,but to make use of a hard disk or RAM disk (a pseudo-disk"drive" that was actually RAM memory, had no moving parts,and was therefore quite fast), DOS had to be patched. Thisusually made it impossible to use different brands of harddisks together, or to use a hard disk and a RAM disksimultaneously. Other problems with DOS included poor support forinterrupt signals generated by various hardware devices,obstacles in designating memory areas as protected frombeing overwritten by DOS, and the difficulty in customizingDOS for special functions. With the introduction of ProDOS, all of theseweaknesses were addressed. ProDOS would run up to eighttimes faster than DOS in accessing 5.25 disks. It supporteda standardized protocol for hardware-based devices, allowingreads, writes, status calls, and formatting (erasing). Thisallowed a large variety of disk devices to be used on anApple II. Support was also included for a hardware clock,allowing date- and time-stamping of files. Hardwareinterrupts were supported, necessary system calls wereplaced in a standard location in memory (called a "globalpage"), and memory could be protected from being overwrittenby the actions of ProDOS. Because the functionality of this disk operatingsystem was enhanced so much, its size grew as well. Tospecifically support Applesoft BASIC, a separate "SYSTEM"program was included that worked nearly the same as theolder DOS 3.3 did. In addition, it included some furtherenhancements that had been requested for years by Applesoftprogrammers. The only disadvantage of the new ProDOS wasthat it did not support Apple's original Integer BASIC,since the ProDOS program loaded itself into high memorywhere Integer BASIC was loaded in an Apple II Plus. Sincevery little development of software had been done in IntegerBASIC since the introduction of Applesoft, this was felt tobe a reasonable trade-off. And if Integer BASIC was needed,it could still be run under DOS 3.3. At the time of thiswriting, there has been no release of a ProDOS systemprogram that would support Integer BASIC (with the exceptionof an Integer BASIC compiler distributed by ByteWorks inlate 1991 for instructional purposes).<1>PRODOS 16 When Apple released the IIGS, with its considerablygreater power compared to the older 8-bit Apple II's,changes were needed in the operating system to better managethat power. This had to be done with another goal, that ofmaintaining compatibility with older Apple II software. Thenew operating system was called ProDOS 16, and the operatingsystem intended for use with 8-bit software (both on theIIGS and on the older Apple II's) was renamed ProDOS 8. ButProDOS 16 version 1.0 was somewhat of a temporary fix to theproblem of disk access for 16-bit software. It was notwritten in 16-bit code, and it simply translated the newsystem calls defined for ProDOS 16 into ProDOS 8 calls toactually carry out disk activities. As such, it was slowand cumbersome.<9>GS/OS With the experience of SOS, ProDOS, and the MacintoshOperating System to draw from, Apple engineers andprogrammers devised a yet more powerful and flexible diskoperating system for the Apple IIGS. Written completely in16-bit code, GS/OS was released in September 1988. It wasmore than a disk operating system, but a trulycomprehensive operating system that also handled keyboardinput, monitor output (text and graphics), mouse input,printers, modems, and more. In these respects it was justas powerful as the older SOS written for the Apple III backin 1980. But they also added a new concept. Although GS/OS would allow an Apple IIGS tocommunicate with disk devices that had not been used on anApple II before, there would still be the limits of havingto know exactly how files were stored on that disk. ProDOS could only handle files stored in the specificallydefined ProDOS/SOS format; DOS 3.3 could only handle filesstored in that format; and so on. To make this new systemas broad-based as possible, Apple programmers built into itthe concept of a File System Translator (FST). With theappropriate FST teamed up with a suitable disk driver, GS/OScould theoretically be able to read any disk created byany computer. The FST simply translated the requests madeby GS/OS into the language "spoken" by the disk it wastrying to read. This task had never before been attemptedby a computer company in designing a disk operating system. Apple, recognizing that the computers used in the real worldwould never be 100 percent Apple, made it possible tosimplify transfer of data between different computers. Theconcept was first implemented in a limited fashion on theMacintosh, when the Apple File Exchange program was modifiedto be able to use MS-DOS disks. The Mac system is now alsoable to add its equivalent of an FST for the ProDOS andMS-DOS disk systems, but not as easily as has beenimplemented in GS/OS. GS/OS was also made more flexible by removing theolder Apple II method of identifying a disk by the slotwhere its disk controller was attached, and removing thelimitation of only two disk devices per slot. The limits ofmaximum file and disk size built into ProDOS 8 wereexpanded. A GS/OS file or disk volume can be as large as 4GB (gigabytes), or 4096 MB to be more specific. However,when GS/OS is dealing with ProDOS disk volumes, it still hasto stay within the limits of ProDOS (files no bigger than 16MB, and disk volumes no bigger than 32 MB).<9> System Software 5.0 for the IIGS was introduced in May1989. It added speed, speed, and more speed to manyfeatures of the IIGS, accomplishing this through moreefficient software coding. There were patches to the IIGSROM Toolbox to improve throughput in many of the built-incapabilities of the machine. A new feature called"Expressload" was added, making it possible for certainprogram files to load from disk up to eight times faster. GS/OS was modified to be capable of staying in memory duringa switch to ProDOS 8 applications, making the return toGS/OS significantly faster. The text-based control panelwas supplemented by a new graphics-based one that wasaccessible in the same way as other 16-bit desk accessories. Access to 3.5 disks was accelerated by implementing afeature called "scatter read", which could take an entiretrack (rather than just a single block) of data from thedisk at a time. An FST for AppleShare was added, allowing aIIGS attached to an AppleTalk network to access the fileserver as a disk. It also included an FST to allow accessto CD-ROM drives, new utilities for disk partitioning, andit had an intelligent "Installer" program to make it easierto install system or application files.<11>,<12> Because of further improvements in features, SystemSoftware 5.0.2 (an upgrade to 5.0) required a minimum of512K memory, and worked best with 768K or more. Versions5.0.3 and 5.0.4 needed a full megabyte of memory.<9> Animproved "standard file dialog" was included in the systemtools for 5.0.3, (making it possible to choose files moreeasily for loading into an application), as were improveddrivers for the ImageWriter II and ImageWriter LQ printers. System 5.0.4 was released six weeks after 5.0.3 to fix someremaining important bugs discovered too late.<12>GS/OS SYSTEM 6 Before System 5.0 was released, plans were already instore for further improvements to the system software. Apple IIGS "power" users were calling for the ability to useMacintosh HFS (Hierarchical Filing System) disks, as well asthe older Apple II DOS 3.3 and Pascal formats. Althoughthere were some simple third-party translation programsavailable that allowed transfer of files from Mac disks toProDOS disks, they did not provide the same ease of use asdid the direct access possible with ProDOS and CD-ROM files. Although it sounded to these users like a relativelystraightforward proposition, the increased complexity of theMac HFS directory structure complicated things. Not onlydid the Mac disks contain more information about each filethan did ProDOS disks, but the names of files on Mac disks(as on DOS 3.3 disks) could contain characters that were not"legal" for ProDOS file names. To help with this problem,the new FSTs were designed to watch for potentially illegalfilenames, and to make suggestions for alternate names thatwere legal. Apple software engineers had always made it clear toprogrammers clamoring for additional FSTs that such changeswere more than just dropping the new FST into the System/FSTfolder on a boot disk. Modifications were necessarythroughout GS/OS to accommodate these new features, and thetime needed to make these changes was becoming longer thanoriginally planned. To allow some improvements to be madeavailable without waiting for them all, the system softwareengineers divided tasks during 1990, putting the featuresthat could be programmed most quickly onto a fast track thatwould allow them to be released as Version 5.0.3 later thatyear. The other half of the team worked on the rest of theplanned enhancements for what would become System 6.0. When5.0.4 was completed, the entire team again came together tocontinue work on this upgrade. After fourteen months ofhard work, they were finally ready to release GS/OS System6.0 in March 1992. In addition to FSTs for the Mac HFSdisks, DOS 3.3, and Apple Pascal, device drivers werecreated to allow support of the Apple Scanner, theslot-based Apple II Memory Expansion card (which on the IIGSworks primarily as a RAM disk), and the Apple Tape Drive. The SCSI drivers were enhanced, and the Apple 5.25 diskdriver was made faster. A new printer driver was included,to support the Apple StyleWriter inkjet printer, and morelarge fonts were included to use with that and otherprinters. The Finder was re-designed almost from scratch byAndy Nicholas, the author of ShrinkIt and GS-ShrinkIt. Archiver (a disk backup utility) and Teach (aGS/OS-based text-editing program) were also included. Finally, ProDOS 8 v2.0.1 was released, allowing 8-bitprograms access to as many as fourteen disk devices on asingle slot. This made large, partitioned hard disks usableeven to Apple IIc and enhanced IIe users (this version ofProDOS 8 required the opcodes of the 65c02 chip, althoughProDOS 8 v1.9 was still available to run on the Apple IIPlus or unenhanced IIe).<12> At the 1992 KansasFest, Apple engineers announced thatv6.0.1 of GS/OS would be out later in 1992 or early in 1993. Along with specific support of the Apple II Ethernet card,this version is expected to include bug fixes found in 6.0,and an MS-DOS FST (at least read-only, with write capabilityto come later).++++++++++++++++++++++++++++NEXT INSTALLMENT: Languages++++++++++++++++++++++++++++ NOTES <1> Worth, Don, and Lechner, Pieter. Quality Software, Beneath Apple DOS, Reseda, CA, 1984, pp. 2.1-2.9. <2> -----. (ads), Call-A.P.P.L.E. In Depth #1, 1981, p. 106. <3> Auricchio, Rick. (personal telephone call), Sep 4, 1991. <4> Wozniak, Stephen. (personal telephone call), Sep 5, 1991. <5> Roberts, Henry. "A.P.P.L.E. Doctor", Call-A.P.P.L.E., Jan 1982, p. 63. <6> Arkley, John. (personal telephone call), Sep 9, 1991. <7> Little, Gary. Addison-Wesley Publishing Company, Inc, Exploring Apple GS/OS And ProDOS 8, Reading, MA, 1988, pp. 2-4. <8> Little, Gary. Brady Communications Co, Inside The Apple //c, Bowie, MD, 1985, pp. 1-7. <9> Deatherage, Matt. "The Operating System", The Apple II Guide, Fall 1990, pp. 117-125. <10> Hunter, Skillman. "Road Maps To Apple II Disks: DOS 3.3, CP/M, Pascal, and ProDOS", Call-A.P.P.L.E., Feb 1985, pp. 10-21. <11> Weishaar, Tom. "Breaking the incompatibility barrier:An introduction to Apple's GS/OS", Open-Apple, Nov 1988, pp. 4.75-4.78. <12> Deatherage, Matt. "The Operating System", The Apple II Guide, 1992, pp. 111-113. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 16 -- LANGUAGES) [v1.0 :: 22 Jan 92]PROGRAMS "R" US Nearly everyone reading this is already a programmer,on one level or another. Even if you don't know a "GOTO"from a "STA $C030", you already know how to programsomething. For the act of "programming" is nothing morethan giving instructions to a non-human device to have itcarry out what you want it to do. The device that most ofyou already know how to program is your automobile. The actof giving those instructions may not seem like programmingto you; nevertheless in its strictest sense, programmingit is. You want the car to go forward? Set thetransmission to "D". Go in reverse? Use "R". Of course,the programming needed to operate an automobile is quitesimple, and cannot be done in more than one step at a time. An example of a device that is more complicated to programbut does let you store up several instructions in advance isa VCR. On the VCR you instruct it to record a televisionbroadcast that starts at 7:00 pm and ends at 8:30 pm, onchannel 6. The more sophisticated VCR's can have severalprograms set up in advance. If you can operate a VCR inthis fashion (which is, admittedly, not always as easy as Ihave described), you are a programmer. When it comes to the microcomputer, the process ofprogramming (giving it instructions on how to carry out atask) is somewhat more complicated. This is primarilybecause the computer is far more flexible in its ability toaccept instructions and carry them out than is an automobileor VCR. Devices attached to a computer can be manipulatedby a program to do something useful (print a letter severaltimes, or perhaps read the outside temperature and sound analarm if it drops too low). This flexibility, plus thespeed at which a computer can execute its instructions,makes it a powerful tool for doing things that havepreviously taken much more effort and time. And as aproject becomes more sophisticated, so also must theprogramming acquire a similar level of sophistication. Therate at which computers, including the Apple II, haveincreased in capacity during the past fifteen years has madeit possible to design programs that can do things that werenot even dreamed possible back in the days of the 4K IntegerBASIC machine. An example of programming evolution on the Apple IIwas given during Kansasfest in July of 1991. To fullyappreciate this narrative, you need to know a little aboutan old Integer BASIC program, APPLEVISION. This was foundon the DOS 3.2.1 System Master disk, and was a fun littledisplay that showed off the use of hi-res graphics. Itbegan by creating a simple line drawing of a room, with apicture on the wall ("HOME SWEET HOME") and a televisionset. On the screen of the TV appeared a man who danced tothe tune of "Turkey In The Straw", which sounded on thebuilt-in speaker. It ran repeatedly, until the userinterrupted the program. It was fascinating at the time,since there was nothing in the program text that showed offexactly how the hi-res effects were accomplished. Butthings have gotten a bit more complex as time has gone by: "Roger Wagner's keynote address featured a history of hypermedia which Roger set into action and left to run as he wandered offstage. The history began with Bob Bishop's classic AppleVision, done in black and white on the original Apple II. Progressive screens enhanced the AppleVision image using subsequent incarnations of Apple II graphics (single hi-resolution, double hi-resolution, and the IIGS's Super Hi-Resolution modes). Finally, thanks to a laserdisc player under HyperStudio's control and a video overlay card, Roger's image appeared within the television's screen and spoke to the audience, completing the introduction before turning the presentation back to Roger (returning from offstage)."<1> To follow the programming progress that has made suchmagic possible, we will begin with the first two built-inhigh-level languages for the Apple II, Integer BASIC andApplesoft, and move on to a briefer discussion of some ofthe other languages that have been available over the years. Next will be a summary of various 6502 and 68816 assemblersthat Apple programmers have used over the years. Finally, Iwill present an introduction to "hyper-programming".FUNDAMENTALS OF PROGRAMMING A programming language has the standards to translate"what I want" into commands that the computer understands. To do so, it must take some human language and convert itinto the binary dialect of the computer on which it isexecuted. Computer languages usually come in one of twodifferent types: "interpreted" and "compiled". A languagethat functions as an interpreter takes the text of theprogram and translates it at the time of execution intocommands the computer can understand. A compiled program,on the other hand, has already had the program texttranslated into executable code before it is run, usuallyincluding some extra code needed to carry out necessaryfunctions of input, output, and calculations. As such, aninterpreted program usually runs more slowly, but has theadvantage of being easier to modify and re-run without thedelay of first re-compiling. A compiled program willordinarily run faster, but may use more memory than anequivalent interpreted program. Languages are also given the designation of being"high-level" or "low-level", depending on how close they areto the base language of the computer on which they run. Thelowest level of computer programming is at the level of thebytes understood as commands by the microprocessor. This"machine language" is typically not very understandable tohumans. A low-level language more often used by programmersis "assembly language". This uses commands somewhat moreunderstandable ("LDA $24" means "load the accumulator withthe contents of memory location $24") and are then assembled(actually compiled) it into machine-readable code. Assemblylanguage is very powerful, since it works on the byte levelof the computer. However, as a low-level language it can bevery complicated and requires an intimate understanding ofthe function of the computer. As a language becomes more "high-level", it is easierfor humans to read, but requires more effort from itsinterpreter or compiler to translate it into the nativelanguage of the computer.INTEGER BASIC This was the first language available for general useon the Apple II (aside from assembly, which will be dealtwith later). Most of the details concerning its developmenthave already been covered in Part 3 of this History. It wasa quick, compact language, and its creation was an exampleof programming directly in machine language (since SteveWozniak, the author, had no assembler available to use). Its disadvantage was the lack of easy access to floatingpoint operations, and it lacked some string handlingfunctions. Apple II users, especially those who wanted toproduce programs that could be used in businessapplications, wanted something more powerful to use. Despite its limitations, Integer BASIC was a languagethat had a fanatically loyal following. For those thousandswho purchased Apple II's from June 1977 to June 1979, thiswas the only programming language available, and it took ona status similar to that of a beloved first-born child. Games, utilities, and even some simple business-use programswere written using Wozniak's hand-assembled masterpiece, andthose who followed the pages of Call-A.P.P.L.E. magazinelearned much about the internals of the language. With thedisassembler built into the Monitor, people tore IntegerBASIC apart to learn how it worked, and to make it workbetter. Val Golding, the editor of Call-A.P.P.L.E., evenwrote a series of columns in 1979 entitled "So Who NeedsApplesoft?" These articles showed how to simulate some ofthe more advanced features of Applesoft in this older BASIC. A.P.P.L.E. even sold (under license agreement with AppleComputer) "Integer BASIC +", a relocatable RAM version ofthe original ROM BASIC. It had all the features of theoriginal language, plus a "USER" command, the ability toeasily do four direction scrolling on the text and lo-resscreens, easy printing of ASCII characters, and improvederror handling.<2> Apple never released a comprehensive reference manualfor Integer BASIC. The only manual available for it wasprimarily a tutorial (and a general introduction to using acomputer). The "Apple II BASIC Programming Manual" didn'teven call it "Integer BASIC", but referred to the languageas "Apple BASIC". It gave most of its programming examplesin the form of segments of a graphics and sound demo thatcreated a lo-res ball bouncing off the sides of thescreen.<3> With the many programs available that were written inInteger BASIC, it was almost a necessity for Apple to offera means for Apple II Plus users to be able to run the oldersoftware. The Integer Firmware card made this "backwardcompatibility" possible. This was especially important inthe early days of the II Plus, when there was little newsoftware available to use with Applesoft.APPLESOFT I Although Wozniak had written some floating pointroutines into the Integer Basic ROM, Apple II users needed aversion of Basic that would make floating point math easierto do, particularly for business use (where the number tothe right of the decimal point is as important as the one toleft). Apple decided to license a 6502 version of afloating point BASIC from Microsoft Corporation. Back in1977, Microsoft was producing BASIC interpreters for nearlyevery microcomputer that was produced. The version Applepurchased was almost identical to the MITS extended BASICthat Microsoft had previously written for the Altair8800.<4>,<5> This BASIC was named "Applesoft", and was released inNovember of 1977 on cassette. It was loaded as a 10Kprogram that looked to the computer just like an IntegerBASIC program, though only a small part of it really was. To make it easy to load and start from cassette, theApplesoft interpreter was attached to the end of a shortInteger BASIC program. When the Integer program was run, itpoked some values into memory and jumped to the start of themachine language section, which relocated the Applesoftinterpreter to the lower part of memory (at $800), justafter the memory that held the screen display. Using this version of Applesoft (which later becameknown as Applesoft I) could be frustrating. It took severalminutes to load from the cassette tape, and it was notdependable. If the wrong key was pressed while entering orrunning an Applesoft program, the program that was being runcould be wiped out, and the Applesoft interpreter itselfwould have to be reloaded from cassette. However, few usersknew how to make use of the floating point routines thatWozniak had written into the Integer ROM, so this unreliableApplesoft BASIC became the only practical means of doingfloating point math on the Apple II. Aside from the reliability issue, another difficultywith Applesoft involved hi-resolution graphics. Althoughthe Apple II was capable of displaying it, the Applesoftinterpreter extended up into the memory used by the hi-resscreen, and so prevented its use. Furthermore, this earlyversion had no built-in commands to manage hi-resgraphics.<5> Applesoft I came with a manual that was 8 1/2 inchesby 11 inches in size, and sported a blue cover with squareglued binding.<6> This came to be known as the "blue book"(recall that the reference book for the computer itself wasaffectionately known as the "red book"). When starting theinterpreter after loading it from the cassette, a screen wasdisplay announcing that Applesoft was copyright 1977 byApple and Microsoft. It then asked the user for the memorysize of his computer, and gave options of allowing eitherLET and REM statements or the use of lo-res graphics. Thenames of the lo-res graphics commands were very differentfrom those that existed in Integer BASIC (and in the laterversions of Applesoft). The commands were:PLTG = Go to lo-res graphics modeTEX = Go to text modePLTC N = Set color to N (0-15)PLTP X,Y = Plot square at X,YPLTH X1,X2,Y = Plot horizontal line from X1 to X2 at YPLTV Y1,Y2,X = Plot vertical line from Y1 to Y2 at X There was a note about these commands in the referencecard included with Applesoft I that warned about usinggraphics coordinates only between 0 and 39, or a programcould "self-destruct". Apparently it lacked the errorchecking that could prevent the plotting of lines fromspilling over into the text of the Applesoft programitself.<6>,<7> The A.P.P.L.E. user group published a patch in 1978that allowed programmers to avoid the question about usingLET and REM statements versus lo-res graphics, and use thegraphics only. The author of the patch pointed out that theLET statements were not necessary ("A = 3" worked just aswell as "LET A = 3"). The REMark statements could besimulated by putting them at the end of a GOTO line (wherethey were ignored by the interpreter), and the GOTO couldjust jump to the following line: 530 GOTO 540: REM LINE 540 SETS VARIABLE N. 540 N = 2 Additional patches were made available for some of theother bugs found in Applesoft I.<8>APPLESOFT II In spring 1978, Randy Wigginton and some others atApple made some needed revisions to Applesoft. Using across-assembler running on a North Star Horizon (Z-80)microcomputer, they fixed the known bugs and added othercommands to control features unique to the Apple II. Thesecommands included the ones needed to draw and manipulatehi-res graphics. Also, the lo-res graphics commands wererenamed to be more consistent with the equivalent commandsin Integer BASIC (GR, HLIN, VLIN, etc.) This version wascalled "Applesoft II", and eventually it was available infive forms: Cassette RAM and Diskette RAM (which loaded tothe same memory locations that interfered with hi-resgraphics as did Applesoft I), Firmware card ROM, Languagecard RAM, and finally main board ROM (in the Apple II Plus). When Applesoft II was started up from cassette ordiskette versions, the display screen now showed a copyrightdate of 1978 by Apple Computer, Inc., and 1976 by Microsoft(which may be either their copyright date for the originalMicrosoft BASIC, or possibly for Microsoft's first 6502version).<6> This RAM version of Applesoft II used memoryfrom $800-$2FFF, and the Applesoft BASIC program itself wasloaded beginning at $3000. When the versions that came onROM and for the Language Card RAM were released, the BASICprogram could load at $800, and much more memory wasavailable for it. Some of this extra space (in high memory)was reclaimed by DOS when the Disk II was released,however.<5> Applesoft in the original IIe was unchanged from theII Plus version. When the IIc was introduced in 1984,however, Apple programmers had cautiously made a few usefulchanges to the language: o Input processing was changed to allow lowercase entry of Applesoft commands (they were translated into uppercase) o Screen output commands (PRINT, TAB, HTAB, etc.) were modified to more properly handle the 80-column screen o Program lines (when LISTed) were changed to begin in column 2, making screen editing easier o All of the cassette tape routines (LOAD, SAVE, SHLOAD, STORE, and RECALL) were removed, since the hardware did not support cassette I/O. The keywords were still in the token table, but now pointed to the same memory vector as the ampersand ("&") command. o Patches were made to the lo-res graphics commands (GR, HLIN, VLIN, PLOT, and SCRN) to work with double lo-res graphics. However, a bug was introduced that allowed PLOTting vertically to areas outside of the double lo-res graphics screen, which would land right in the beginning of the $800 space where the Applesoft program text was located (similar to the "plot" bug in Applesoft I). When the Apple IIe Enhanced ROMs were made available,Applesoft in those ROMs had undergone some similarmodifications. All the above IIc changes were added, withthe exception that double lo-res graphics capability wasnot added (lack of ROM space), and the cassette I/Ocommands were not removed (since the cassette input andoutput port was still present). The version of Applesoft on the Apple IIGS closelyresembled the Apple IIc variant, the only exception being afix of the double lo-res PLOTting bug. However, a bug inthe SCRN function that applied to double lo-res mode wasnot fixed. No changes to Applesoft from the IIc versionappeared in the Apple IIc Plus.<9> The manuals written for Applesoft II were far morecomprehensive than either the older "Blue book" or theInteger BASIC manual. It gave not only programming examplesfor each of the commands, but included much more informationabout the various ways in which each Applesoft statementcould be used. It also mentioned some of the differencesbetween Applesoft and Integer (for those who wanted toconvert their older programs), and gave a little informationabout the internals of Applesoft to aid in creating machinelanguage additions to the language. Curiously, the manualsthat have been reprinted even as late as 1990 byAddison-Wesley have included an odd cautionary note toprogrammers. In a section in the index about "reservedwords" (words reserved as Applesoft commands), it advisesagainst using "XPLOT" as a variable name, stating that "itis a reserved word that does not correspond to a currentApplesoft statement." What is apparently meant by thiscomment is that at one time Apple intended to extend thelanguage and add another command "XPLOT" to it, probablyworking with HPLOT in the same way that XDRAW complementsDRAW in doing hi-res graphics. Examination of the commandtable within the Applesoft interpreter shows thereis noentry labeled "XPLOT", and a disassembly of the interpretershows no preliminary code to support the command. Somehowthis precaution persisted to the present day and has neverbeen removed, even though it is extremely unlikely thatApplesoft will ever be upgraded.<10> Particularly helpful for programmers was the foresightto include a simple extension called the "ampersand hook". If Applesoft came across the "&" symbol while interpreting aline, it jumped to a known location in memory and left it tothe programmer to insert the correct code to add a machinelanguage extension to the language. With the publication ofimportant information about the internals of Applesoft in1980, assembly language programmers could now add statementsto do things that could not be done with the language as itwas originally created. Music, extended graphics,IF-THEN-ELSE logic, and even the missing "XPLOT" commandcould be added to the language. The only limits were theauthor's imagination (and available memory). The importance of Applesoft as an influence toproductivity on the Apple II cannot be overstated. Sincethe release of the Apple II Plus in 1979, every variety ofApple II has contained Applesoft in virtually an unchangedform. This has made it possible for anybody to writeprograms that all other Apple II users will be able touse, since the language does not have to be purchased oradded. If there were thousands of Integer BASIC programsfrom the two years when Integer Apple II's were producedexclusively, there are hundreds of thousands of Applesoftprograms that appeared over that subsequent thirteen years. Even today, it is not uncommon for an applications programto include a configuration module written in Applesoft usingthe disk commands available with BASIC.SYSTEM in ProDOS. Itis often faster to write such a program in BASIC, and theauthor knows without a doubt that his customer will be ableto run it.APPLESOFT 3 (?) In 1979 there were rumors at the West Coast ComputerFaire about an enhancement to Applesoft II that was in theworks at Apple. It would possibly be called Applesoft 3,and would be as much of an enhancement over Applesoft II asthat version was to Applesoft I. Supposedly it was intendedto merge DOS and BASIC, and would include such powerfulfunctions as IF-THEN-ELSE, PRINT USING, WINDOW, and VIEWPORT. It was predicted to be a RAM version only, and wouldbe about 24K in size. Knowing the events that actuallyfollowed, this rumored BASIC was probably the "BusinessBasic" released with the Apple III, rather than anenhancement for the Apple II.<11>+++++++++++++++++++++++++++++++++++NEXT INSTALLMENT: Languages, cont.+++++++++++++++++++++++++++++++++++ NOTES <1> Doms, Dennis. "KansasFest 1991", A2-Central, Sep 1991, p. 7.57. <2> -----. (ad), PEEKing At Call-A.P.P.L.E., Vol 2, 1979, p. 62. <3> -----. Apple II BASIC Programming Manual, 1978, 1979, 1980, 1981. <4> Chien, Philip. "The First Ten Years: A Look Back", The Apple II Review, Fall/Winter 1986, p. 12. <5> Golding, Val J. "Applesoft From Bottom To Top", Call-A.P.P.L.E. In Depth #1, 1981, p. 8. <6> Bernsten, Jeff. GEnie, A2 Roundtable, Apr 1991, Category 2, Topic 16. <7> Arkley, John. (personal telephone call), Sep 9, 1991. <8> -----. "Apple Patches", PEEKing At Call-A.P.P.L.E., Vol 1, 1978, p. 40. <9> Weyhrich, Steven. "Applesoft Miscellaneous Information", Applesoft Concordance v1.0, Dec 1989. <10> Kamins, Scott. "Appendix D Reserved Words", Applesoft BASIC Programmer's Reference Manual, 1982, 1983. <11> Aldrich, Darrell. "The Computer Faire And The Apple", PEEKing At Call-A.P.P.L.E., Vol 2, 1979, p. 158. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1991, Zonker Software (PART 17 -- LANGUAGES, CONT.) [v1.0 :: 22 Jan 92]APPLE PASCAL Applesoft was easy to use because it was interactive. You entered a command, and could immediately try it out. The disadvantage was a lack of more powerful commands, andit could be difficult to create large and complex programs. Efforts were begun within Apple to develop a morecomprehensive language for the II, one that could be updatedand modified if necessary. Since Applesoft was in ROM, itwas more expensive and difficult for the end-user to installany upgrades to that language. In 1979 Apple Pascal and the Language System wasreleased. It sold for the steep price of $495, and came onfour 5.25 floppy disks (all in the format of the Pascal disksystem, of course). It also included the ROMs to change 13sector disk controllers into 16 sector controllers, and theLanguage Card to plug into slot 0. As discussed in previoussegments of this History, the Language Card was a 16K RAMcard that made an Apple II into a full 64K RAM computer. Because of the extra available RAM, the Pascal system couldload into memory without having to avoid the space used bythe Applesoft (or Integer BASIC) interpreter. And with somecomplicated bank switching, even routines in the Monitorcould be used if needed. Apple chose to use the Pascal standard defined by theUniversity of California at San Diego (UCSD). To makeportability between various different computers possible,UCSD Pascal programs were compiled into a specialized codecalled "P-code". This "P-code" program could then beexecuted on any computer that had a proper interpreter. AnApple Pascal program could, then, run a little faster thanan Applesoft program (since it was compiled), but not asfast as assembly language. The extra power it provided madeit an attractive choice for some programmers. The earliest version of Apple Pascal got complaintsfrom users because it would not support lowercase (for thosewho had modified their Apple to display lowercase), and itwas so large that it was quite awkward to use by those whoowned only one disk drive. Since the original UCSD Pascal language was designedto work with a full 80 columns of text, this was somewhat ofa problem for the 40-column Apple II. For those Apple II'sthat did not have an 80-column card, Apple Pascal woulddisplay half of the screen at a time. In the Pascal Editor,entry of a line longer than 40 columns would cause thescreen to scroll to the left. Using the arrow keys to moveback to the left would scroll the screen back the other way. If needed, you could jump directly to the other half of thescreen by pressing Ctrl-A.<1> The limitation of Apple Pascal came from the need fora user to own the Language Card (or one of the laterequivalent 16K RAM cards), and the fact that it wasincompatible with the large library of DOS 3.2 programs andfiles that were already available. Eventually, with theproliferation of the 64K Apple IIe and 128K Apple IIc, aplatform for Pascal applications was available. However, bythat time the primary disk system being promoted by Applefor the II was ProDOS, and Apple never officially released aversion of their original UCSD Pascal that would run underthat operating system. The Apple Pascal system has evolved up to version 1.3,which will support the more advanced features of theApple IIe and IIc, but does not work as well with the IIGSas some would like. Instead, IIGS programmers now haveversions of Pascal distributed by third party companies(like ORCA/Pascal from ByteWorks) created to take fulladvantage of that machine in 16-bit mode.INSTANT PASCAL This version of Pascal was written by ThinkTechnologies, and Apple later bought the rights to sell itas a program for teaching Pascal. It would run only on theApple IIc or on a 128K IIe because it used the double hi-resgraphics mode, functioning much like a Macintosh "desktop"with multiple resizable windows. It had a mouse-basededitor that checked program syntax as each line was entered(as did the older Integer BASIC) and automatically indentedlines and boldfaced Pascal reserved words. Since it wasintended for teaching, it also had a single-step tracefunction and the ability to modify the contents of variableswhile a program was running. Though good for learning thelanguage, it was quite slow because of the overhead neededto display everything in graphics, and because it was aninterpreted version of Pascal (instead of a compiledversion). Fans of the original Apple Pascal complained loudlyafter Apple introduced Instant Pascal. After this newPascal came out, Apple didn't seem motivated to make anyfurther upgrades to the older Pascal, which still used theoriginal Pascal disk system format (Instant Pascal was madeto run directly under ProDOS).<2>FORTRAN Released by Apple in 1980, Apple FORTRAN ran under thePascal operating system. It cost $200 (over and above the$495 needed to get the Language System). Programs writtenin FORTRAN for other computers could run with littlemodification under Apple FORTRAN (if a user needed thatability). As a compiled language, it ran faster thanApplesoft, and probably also faster than Pascal, sinceFORTRAN wasn't translated into an intermediate "P-code". Apple's FORTRAN had many bugs in it, though, and since itsintroduction in 1980 it was never upgraded. By September1986 it had disappeared from their product catalogs. Another way for an Apple II user to get FORTRAN was tobuy the Microsoft Z-80 Softcard for $345 and MicrosoftFORTRAN for $200. This version of FORTRAN was morefull-featured than Apple's, and offered some advantages inusability. It did not require changing to the 16 sectordisk controller ROMs (if you didn't want to). Also,standard Microsoft BASIC (which was more advanced thanApplesoft) was included in the Softcard package.<3> In June of 1987 Pecan Software released FORTRAN forthe IIGS. It ran under ProDOS 16 (GS/OS), but still usedthe UCSD format for its FORTRAN by creating a ProDOS filethat acted as a UCSD volume.<3>OTHER LANGUAGES PILOT: Designed primarily for creating tutorialmodules, this language allowed educators to designinteractive programs to instruct students and test them ontheir responses during the process. One early version waswritten in Applesoft and was text-based. Apple laterreleased their own version that ran under the Pascal systemfor $125.<4> FORTH: This was a interesting language described as"extensible". It had a number of built-in commands, and newones could be added as easily as typing its definition. These added commands could then be used in larger programs. Two versions sold in the late 1970's were "Apple Forth 1.6"(Cap'n Software) and "6502 Forth 1.2" (ProgrammaInternational). Apple Forth 1.6 was a good package, but itused a unique disk system that was not compatible with DOS3.2. Programma's Forth was more extensive, but also morecomplicated.<5>,<6> LOGO: Developed from LISP (LISt Processing) languageto be an aid for learning, Logo has been popular over theyears in the school environment. Apple's first version ofLogo (which operated under the Pascal system) could run onany 64K Apple II, while Apple Logo II (released in July 1984for $100) ran under ProDOS on Apple II's with 128Kmemory.<7> COBOL: This language has had limited availability forthe Apple II. The only version I am aware of was fromMicrosoft. It sold for $599 and ran under the CP/M systemwith the Microsoft Z-80 Softcard.<8> C: A language that is currently popular among "power"programmers. It has some of the structure of Pascal, butalso some of the low-level power of assembly language.ASSEMBLERS A large variety of Apple II assemblers have beenavailable over the years. The earliest one, of course, wasthe mini-assembler that came with every Integer BASICApple II. The one was only good for immediate entry ofassembly code; if changes were needed, much of the codewould likely have to be re-entered from the beginning. Someother assemblers available in the early days include: TED/ASM: Developed at Apple and smuggled out thedoors around May 1978, this assembler had memory conflictswith DOS, so they couldn't be used together. The texteditor module was written by Randy Wigginton, and theassembler was written by Gary Shannon. In the early days,it was the only assembler they had available that would runon an Apple II.<9> RANDY'S WEEKEND ASSEMBLER: Also written by RandyWigginton, this one slipped out of Apple in September 1978. The text editor was written mostly in SWEET-16 (Wozniak's16-bit emulator in the Integer BASIC ROM), and was thereforeslow. Unfortunately, it had its own set of bugs.<9> MICROPRODUCTS ASSEMBLER: The first commerciallyavailable assembler for the Apple II, this was a "fourcharacter assembler", meaning that labels (a designationidentifying a line or variable) could only be fourcharacters long. Later it was expanded to work with sixcharacter labels. Despite some annoying bugs, it wasinexpensive at only $39.95.<10> SC-ASSEMBLER II: Probably the second Apple IIassembler that was commercially distributed. Externally itwas similar to the Microproducts assembler, but was bettersupported and regularly upgraded. It was very compact, andachieved that goal by making heavy use of SWEET-16 code. Consequently, it was slow when assembling. The author, BobSander-Cederlof, later started a popular newsletter called"Apple Assembly Lines" to both support his product and to bean information center for 6502 assembly language tips andtechniques.<10> BIG MAC/MERLIN: Sold originally by A.P.P.L.E. as "BigMac", and later under the name "Merlin" by Southwestern DataSystems (later known as Roger Wagner Publishing). Thisassembler has been well supported over the years and hasbeen extensively upgraded. It is one of the few remainingassemblers that have moved on to the 65816 GS/OS world,while retaining full compatibility with the previous 8-bit6502 versions. Currently it is sold as Merlin 816(including an 8-bit version) and Merlin 16+. The author,Glen Bredon, has also done many other programs and utilitiesfor the Apple II. ORCA/M: Sold by the ByteWorks, the current versionwas chosen by Apple Computer as the official assembler ofthe APW (Apple Programmer's Workshop) programmingenvironment on the IIGS. ByteWorks has since expanded itsproduct line to include versions of Pascal, C, BASIC, andother IIGS languages. APPLE EDASM: This was Apple's original "official"assembler for the II Plus and later 8-bit Apple II's. Though no longer actively supported (ORCA/M havingsupplanted it in the APW environment), the early versionsfor DOS 3.3 were included on the Apple Toolkit disk, whichalso had a hi-res character generator that could beinterfaced into Applesoft programs. The early ProDOSversions of EDASM were sold with a 65c02 debugger calledBUGBYTER. UCSD PASCAL ASSEMBLER: Part of the Apple Pascalpackage, it was popular because it had macro capability,could do conditional assembly and create relocatable code,and had a good text editor. However, programs created withit could not be run on a standard (non-Language card) Apple,because there was no utility available early on to transferthe files to DOS 3.2. (Later, A.P.P.L.E. published transferutilities called "HUFFIN" and "PUFFIN" for movement to andfrom DOS 3.3, named affectionately after Apple's "MUFFIN"utility for DOS 3.2 to 3.3 file transfers). MISCELLANEOUS OTHER ASSEMBLERS: ASM/65, sold byProgramma; "EAT" (Edit and Assemble Text) sold by SoftwareConcepts, and written in Integer BASIC; and L.I.S.A., soldby Laser Systems.<10>MACROS VS. SCRIPTS With the increase in complexity of applicationsprograms has also come a secondary level of programming. This extension has been called a "macro", meaning that asingle step would accomplish several separate ones thatwould ordinarily take more effort. Early examples of thiswere available in some DOS 3.3 utilities, where pressingCtrl-C from the keyboard (for example) might cause the word"CATALOG" to appear on the command line. In this example, amacro was used to save keystrokes and speed up repetitiveactivities. Similar macros were available for BASICprogrammers, making a control key sequence print many of thecommon BASIC keywords, speeding program entry. (This typeof macro was different from macros used in some assemblers,such as Big Mac/Merlin and the Pascal assembler. Here a"macro" was a new command that was defined to representseveral standard assembly operation codes. This did notshorten the final resulting program, but made it possible tomore easily enter repeated sequences of assembly codes). Application programs began to take this concept andinclude a macro capability (either offered with the programor as a third-party add-on product). With time, some ofthese macro features have become so complex that they havebecome programming languages in their own right. In fact,many of them are being referred to as "scripting" languages,since they "direct" the function of a program, as a directoruses a script to film a movie. This has been most popularwith telecommunications programs, where the process oflogging on to a remote computer, downloading new messages,and uploading replies is automated with a script thatanalyzes the responses from the other computer and takes theappropriate action. It has also been popular in programslike Applewriter (WPL, Word Processing Language) andAppleWorks (UltraMacros), where each has had its own methodof automating repetitive tasks.A LEAP IN COMPLEXITY The environment for writing, compiling, and debuggingprograms has evolved along with the applications created bythose programs. Originally, the Apple II and othercomputers of the day were used in a "command-line interface"environment. This means that each command was typed one ata time, and sometimes "batched" together to simplify arepetitive process (as with EXEC files under Apple DOS). Anexample of this command-line interface can be found bystarting up Applesoft (or by using MS-DOS on an IBM). Anything that is to be done with this language has to bestarted by typing the proper command from the keyboard. Misspell the word "LOAD", and an error message is printedand it will stubbornly refuse to do what you wanted. Thesame command line is used for entering the lines of a BASICprogram, or RUNning the program. This method was usedbecause it was what programmers of the day were accustomedto. Nearly every computer prior to the microcomputerrevolution worked in the same way, even if it was done usingpunched cards instead of being typed at a keyboard. Minor differences were used from time to time indifferent computer languages, but none really took effectand changed the way in which people used computers until therelease of the Macintosh in 1984. Macintosh used aradically different method of operating a computer. Insteadof typing each command, the user would point to something onthe screen and "click" on it using the mouse pointingdevice. And Macintosh programmers extended this concept toevery application released with it. This differentenvironment has been called a "graphic user interface"(GUI), and uses the concept of objects rather than typedcommands. To delete a file, you don't type "DELETEPROGRAM", but point to the picture (icon) representing thefile and drag it onto a picture of a trash can. This"desktop" includes more complex commands chosen from menusthat appear in boxes called "windows" that pull down like awindow shade from command category names on a "menu bar". As the command line disappeared, so did traditionalmethods of handling program data. Words were still typedinto a document on a word processing program, but many ofthe features that set up margins, tabs, and page breaks weretranslated into graphic icons selected with the mouse. Eventually this progressed into the world of the programmer. The text of computer program was entered much like any wordprocessor text, and the command to compile it into anexecutable program was now selected from the menu bar at thetop of the screen. A step further along this path is the concept of"object-oriented programming" (OOP). In this method, thedetails of windows, menu bars, buttons, and other GUIstandards are used to create other programs that use aconsistent interface. Instead of having to laboriouslydefine at the byte level how to create a window box, thecomputer already knows how to do this; the programmer justhas to tell the computer how big it should be and where toplace it on the screen. OOP programming allows smallermodules (called "objects") to be used to build a morecomplex final product. A language that works in an OOPenvironment is finally available on an Apple II, but beforewe get to it, a little more introduction is necessary.HYPERTEXT "Hypertext" is a term created by Computer Libauthor Ted Nelson that refers to a method of allowing a userto move from one concept to another in a text by linking thetwo concepts together.<11> The first type of program thatused "hypertext" was a simple text based one. Certain wordsin the text of a document being viewed were marked toindicate that other information about that word wasavailable elsewhere. Moving a cursor to that word andpressing a key would jump to the additional facts. Forexample, in an article about the history of music, the word"sonata" might be highlighted. Selecting this word couldjump to another article that discusses sonatas in greaterdetail. When finished, the user could jump back over thislink to the place where he left off in the original article. "Tutor-Tech" was the first comprehensive hypertextsystem available for the Apple II series. It worked on8-bit Apple II's, and was designed primarily for use in aclassroom setting. Entirely graphics-based, it definedcertain parts of the screen as "buttons", and moving thepointer to that area could allow the program to move to adifferent screen or cause something else to happen. As withany graphic interface, icons that represented certainfunctions were used to designate commands (i.e., to exit theprogram, you point to a picture of door labelled "EXIT"). In 1986 a remarkable program became available on theMacintosh that was, for a time, included with each Mac sold. "HyperCard" was a comprehensive system that used the idea ofhypertext, plus added a programming language that consistedof words and phrases as close to English as anything elsepreviously available on a microcomputer. The HyperCardsystem took care of the details of how to draw boxes andbuttons, and left it to the user to define where to put themand how to label them. And because of the language (whichApple called "HyperTalk"), user actions could do more thanjust move to a different picture (called a "card" by theprogram). It was possible to design simple databases,games, and much more using this system. Because it called asingle part of an application a "card", a collection ofcards comprising an entire HyperCard application was calleda "stack". With the release of the IIGS, the power was finallyavailable in the Apple II world to create a similar product. But it didn't come first from Apple Computer; instead, RogerWagner Publishing introduced a product called "HyperStudio"in May of 1989. This program used the super hi-res graphicsmodes accessible on the IIGS to create its own type ofstacks. Like HyperCard on the Macintosh, HyperStudio usedbuttons and objects on the screen to direct movement througha stack application. It also included a hardware card thatmade it possible to easily digitize sounds to use in stacks. Though more extensive than Tutor-Tech, it was not quite asflexible as HyperCard, since it lacked a true programminglanguage. In January 1991, Apple released HyperCard IIGS, aconversion of the Macintosh product. This finally made afully programmable hypermedia environment possible on theIIGS. Later in the year Roger Wagner Publishing respondedwith an updated version of HyperStudio that also included aprogramming language similar to HyperText that afforded morecontrol over that stacks that were created. Althoughneither of these products gives the user power over detailsof the computer system itself (as does "C" or assembly), itdoes make it possible for a beginner to create programs thathave outstanding graphics and sound without having to knowexactly how the hardware produces these effects. This,along with the flexibility possible with these products, hasled Dennis Doms in an A2-Central feature article to suggestthat HyperCard IIGS (and now also possibly HyperStudio) willbecome the "Applesoft" of the 1990's; that is, an Apple IIGSuser with HyperCard IIGS can create programs as easily asthe Applesoft programmer of 1980 could do, but with far moreattractive results.<11>+++++++++++++++++++++++++++NEXT INSTALLMENT: Software+++++++++++++++++++++++++++ NOTES <1> Walls, Keith S. "The Fantastic New World Of Apple Pascal", PEEKing At Call-A.P.P.L.E., Vol 3, 1980, p. 237. <2> Howerton, Christopher, and Purvis, Lee. "The Apple IIGS Pascal Revue", Call-A.P.P.L.E., Apr 1988, pp. 12-17. <3> Winston, Alan B. "The Multi Lingual Apple", PEEKing At Call-A.P.P.L.E., Vol 3, 1980, pp. 222-224. <4> Vanderpool, Tom. GEnie, A2 Roundtable, Mar & Aug 1991, Category 2, Topic 16. <5> Winston, Alan B. "The Multi-Lingual Apple: Languages", PEEKing At Call-A.P.P.L.E., Vol 2, 1979, pp. 183-190. <6> Cap'n Software's version was written by John Draper, the legendary phone phreaker "Cap'n Crunch" who had worked at Apple in its early days. During his time at Apple he had designed one of the first peripheral cards for the Apple II: A telephone controlling device that also just happened to be capable of hacking into long distance telephone switching systems, and was therefore quite illegal. <7> -----. Apple Computer, Inc, Apple IIc Memory Expansion Card Owner's Guide, Singapore, 1986, pp. 2-4. <8> -----. (ads), Call-A.P.P.L.E. In Depth #1, 1981, p. 106. <9> Hertzfeld, Andy. "A Consumer's Guide To Apple II Assemblers", PEEKing At Call-A.P.P.L.E., Vol 2, 1979, pp. 164-166. <10> Hyde, Randall. "Assembler Maxi-Reviews", PEEKing At Call-A.P.P.L.E., Vol 3, 1980, pp. 240-246. <11> Doms, Dennis. "An Applesoft for the 1990's", A2-Central, Mar 1991, p. 7.09-7.13. APPLE II HISTORY ===== == ======= Compiled and written by Steven Weyhrich (C) Copyright 1992, Zonker Software (PART 18 -- SOFTWARE) [v1.1 :: 15 Sep 92]"WILL SOMEONE PLEASE TELL ME WHAT AN APPLE CAN DO?" One of the most important features to a customerconsidering any computer is, "What can I do with it?" Itmight be an attractive-looking box, with incredible featuresand potential, but if all it can do is run demonstrationprograms, it won't be very useful. In the early years ofthe microcomputer era, most users had to either write theirown software or use programs written by some other amateur. "Commercial" software written by "professionals" wasunavailable, except possibly from the company that producedthe computer. And unless the user knew assembly languageand the internals of the computer intimately (whichdepended on the willingness of the manufacturer to divulgethose secrets), the only application software available waslikely to be written in BASIC. Anyone who has used theversions of BASIC available at that time are well aware ofthe quirks and limits placed on the programmer by thatlanguage and by the small memory sizes available (seediscussion in Parts 16 and 17). As we have already seen, the Apple II came with fewintentional secrets; the primary limitation on informationdistributed with it was the time required for Apple toproduce a printed manual. When the first manual finally didarrive, it included a commented source code listing for theentire Monitor and all its supporting routines. Thisopenness had a lot to do with the early success of theApple II. Other manufacturers, such as Atari (with theirmodels 400 and 800, based on the same 6502 as the Apple II)and Texas Instruments (who made a 16-bit machine called theTI 99/4), kept everything very secret and thus tried tomaintain some control over distribution of software. Thismay have been done to ensure that only high qualityprograms were released, but more likely they were concernedabout controlling who received royalties on sales of thesoftware. Unfortunately for them, it choked the developmentof amateur software authors (who may have later becomeprofessional authors). As an example of this corporate secrecy, one earlyprogrammer named John Harris wanted to write games for theAtari, but could not get the company to release anyinformation on how certain effects were achieved in theircommercially released games. He was bright enough toeventually figure out the secrets himself, and became one ofthe wealthy software "stars" of the late 1970's and early1980's.<1> Computer producers of the time did not yet graspthe principal of the software/hardware loop: Availablesoftware stimulates sales of hardware (computers andperipherals), which further enlarges the software market,which sells more computers, and so on. The industry was toonew to know how to do much more than make and sell newcomputers.SOFTWARE ON THE APPLE II In the Apple II part of the computer world, the firstdistribution of software came from home authors. Thesepeople were usually first-time computer buyers who werecaptivated by the excitement of owning their own computer,and then had to sit down to actually find something usefulor fun to do with it. They often brought their firstprogramming efforts to show off at the computer store wherethey had bought their machine. Since the store owners hadvery little software to offer to their potential customers,some of these authors ended up with the opportunity ofhaving their programs duplicated and made available forsale. Ken and Roberta Williams started their company"On-Line Systems" (later Sierra On-Line) this way with agame called Mystery House, one of the first adventuregames featuring hi-res graphics pictures.<2> Other early software came from the first user groups. These usually developed out of the gatherings thatinevitably took place at the computer stores, as mentionedabove. Since the people who actually used these computersday in and day out at home had a better grasp of how theyworked and what could be done to work around problems, thestore owners often ended up referring their new customers tothese groups for the detailed help they needed. Not onlywere there the older groups (like the Homebrew ComputerClub), but many newer, more machine-specific groupsdeveloped. Names like A.P.P.L.E. (Apple PugetSound ProgramLibrary Exchange) and International Apple Core became knownwell beyond their local beginnings as they began todistribute their newsletters and magazines to a nationalaudience. Later, they became major sources of informationalarticles, utilities, and application programs that were asyet unavailable anywhere else. Many of the programs sold by A.P.P.L.E. were popularwith Apple II owners. A.P.P.L.E. was designed as a clubwith dues to pay for the collection of programs, allconsidered to be public domain, but sold to members at anominal price to cover the costs of duplication. A.P.P.L.E.'s programs were written by amateur home users whohad a unique idea, were able to make it work, and found thatthey had a product that was useful to others as well. Originally collected on cassettes, and later on disks, someof the programs were eventually made available as commercialproducts by authors that knew they had something unique thatwould be in demand by Apple owners hungry for something touse on their computer. A.P.P.L.E. sold many of these asGamePaks, which contained several games on the same tape.<3> Understanding that a large variety of availableprograms would help encourage more sales for the Apple II,Apple took some steps to help software authors get theirprograms on the market. In 1980 Apple employee Mike Kanesuggested that Apple help distribute programs that weregood, but whose authors couldn't get a publisher todistribute them or didn't have access to computer storesthat were willing to sell it for them. Kane formed adivision within Apple, called it "Special DeliverySoftware", and promoted both third-party and Apple-sponsoredprograms under that label. Between 1979 and 1981 a numberof different programs were sold through Special DeliverySoftware, sporting the Apple logo and displaying astandardized appearance (packages, manuals, etc.), alllisted in a catalog that could be used by dealers fororders. Apple Writer was originally distributed in thisfashion, as were other less well-known programs such as TaxPlanner, Plan 80, Script II (for Pascal), and MBA (aspreadsheet). Apple also established the Apple SoftwareBank and used it for special programs through 1980. It wasmore clearly a set of Apple-sponsored programs than werethose sold through Special Delivery Software, and some ofthem programs, such as Quick File and Apple Plot,achieved strong popularity and were moved more into themainstream of sales for Apple.<4>,<5>SOFTWARE EVOLUTION: THE COMMAND LINE INTERFACE Some of the earliest programs available for theApple II had a user interface that was quite similar to theones available for use with time-sharing terminals onmainframe computers: A command was typed on a line, and thecomputer would execute that command and return with a promptfor the next command. This method was the necessary way ofdoing things, because video displays were expensive and notin common use. This was particularly true for those whoused remote terminals, which usually consisted of apaper-based glorified typewriter connected by a phone lineto a mainframe. This device was physically limited toallowing commands to be entered one line at a time. Theconcept of displaying things on the screen in any orderdesired, not necessarily going from top to bottom (as wouldbe necessary if it was being typed on a piece of paper in anteletype) was difficult for many programmers of the time tograsp. Moreover, for design purposes, the software codebuilt-in to a computer (like the Apple II) that handled acommand line style of interface was much simpler (andshorter) than what would be needed for a more complexinterface. With memory at a premium price, simple wouldhave to do. Thus, the Apple II used the command lineinterface in both the Monitor and in Integer BASIC. Thesecould be used as building blocks to create more complicatedsoftware, once people figured out how to do it. The command line interface, though simple to implementin a program, had the disadvantage of requiring the user toknow (and correctly type) the names of the commands. Forexample, a word processing program might use the command"LOAD" to get a text file into memory, the command "EDIT" tobegin to make changes to that file, and then the command"SAVE" to put a copy of the completed work back onto tape ordisk. "SORT", with various pieces of modifying informationcalled "parameters", might be the necessary command toarrange the information in a database file into the desiredorder. Other commands might be needed to search for aspecific word, replace a word, and move lines around. Infact, early word processors were often quite similar towriting a program in BASIC: Each line had its own linenumber, and inserting new lines often meant having torenumber the lines to make a new line available between twoexisting ones. If extra text had to be added to a line inthe process of editing, making it too long, the end of thatline might have to be re-typed into the following line anddeleted from the current one. More sophisticated text editing programs eventuallybegan to appear that took advantage of the fact that theuser was not working with a typewriter and paper, but with avideo screen. These "full-screen editors" would allow useof the arrow keys (or the IJKM "diamond" on the keyboard) tomove the cursor around on the entire screen, and it madetext entry and later editing easier. As they were furtherrefined, these newer word processors even allowed what hadpreviously been impossible: Text could be typed in themiddle of a line, and the text to the right of the cursorwould be magically pushed to the right (even "wrappingaround" to the next line if needed) as things were typed. Deletions were just as easy. What was still cumbersome wasthe need to have specialized commands, often entered ascombinations of the Control key and another letter, to carryout some of the functions of search and replace, copy, andso on. Moreover, these command keys were often differentfrom one program to another, with Ctrl-F in one programbeing used to begin a "find" process, and in another programas a command to jump to the "first" line of the file. Asthe full-screen method of text editing became more standard,the command-line type of interface became less commonlyused.SOFTWARE EVOLUTION: MENUS As mentioned above, one of the problems with thecommand-line method was the requirement for the user to havea good memory for the names of the various commandsnecessary for the program to function. If the command namewas typed incorrectly, or if a specific parameter wasomitted or given in the wrong order, an error message wouldappear, causing great anxiety and hand-wringing to those whowere still trying to overcome their fear of using acomputer. As an alternative for certain functions in aprogram, the concept of "menus" became more popular (and wasactually used as early as the Apple Color Demo program thatcame on cassette with the first Apple II's). A menu wassimply a list of possible functions a program could carryout. It still often used a command style prompt ("Typechoice") to allow entry of the desired item on the menu, butgave a little more ease-of-use since a specific command namedid not have to be memorized. A further enhancement of thisstyle of program construction was called a "magic menu",after a sample program written in BASIC and distributed byApple. In this type of menu, the user had the option oftyping the number of the desired menu entry at the prompt,or he could use the arrow keys to move a large inverse barup and down the menu to that item. After selecting the itemwith the arrow key, it was executed by pressing the RETURNkey. This came to be known as the "point and shoot" methodof command selection. AppleWorks (which will be discussed in detail later)took the "magic menu" interface to its highest form, addingthe metaphor of "file cards". One menu appeared on thescreen enclosed in a box, with a "tab" on the top left ofthat box. This box resembled a 3x5 file card. When aselection was made from the menu, another file card wouldappear on top of the previous one, slightly down and to theright, leaving the tab on the lower box still visible. Thisallowed stacking of menus, with a clear path identifyingwhich menu led to the current menu. The ESC (escape) keywas used to "back up" one level, erasing the menu card ontop and re-drawing the menu card underneath it. Also,prompts were displayed on the top line of the screen thattold where ESC would take you, and what function wascurrently being executed. Part of the success ofAppleWorks stemmed from its ease of use in this respect. Not only were there no cryptic commands that had to beremembered and typed, but the use of special command keyswas reserved for advanced use of the program. And when suchspecial keys were needed, a standard "help" screen wasavailable for quick reference. It was possible to do quitea bit in AppleWorks without the need of even opening theinstruction manual.SOFTWARE EVOLUTION: GRAPHIC USER INTERFACES One thing necessary to make computers easier forpeople to use was to overcome both the fear problem and thefrustration problem. Those who were inexperienced in theuse of computers were often afraid that they would press abutton that would cause something terrible to happen. Ifthey overcame the fear problem, they still had to face thefrustration of trying to decipher cryptic error messages("*** TOO MANY PARENS" or "$27 Error"), or lack of successin getting the computer program to do what they wanted it todo. Adding familiar things to the screen, like the filecard menus in AppleWorks, made the fear factor diminish. Making the keys that controlled certain features of thatprogram work consistently from the word processor to thedatabase to the spreadsheet decreased the frustration factoreven further. But there were still barriers to overcome inmaking computers easier to use. When Lisa appeared on the scene in 1983, and Macintoshin 1984, computer users were exposed to a radically newconcept in computer software. These computers lacked theprevious standard of typed command input to controlprograms. Instead, they used a bit-mapped graphics screento represent a desktop, with pictures (called "icons") thatrepresented a program to run or a file to load. It took the"point and shoot" interface to the limit; you used the mouseto move a pointer on the screen onto an icon representingthat program, and then "click" on it to start the program! For more complex control, the Mac used a variation on the"magic menu" system: A "menu bar" at the top of the screengave a list of command words, arranged horizontally on thesame line. Pointing to one of the words and holding downthe mouse button would cause a menu to "pull down" like awindow shade, displaying several further options available. The desired choice on the menu could be highlighted bymoving the mouse to that item (such as "Delete") and thecommand would be executed. This approach made use of theLisa and Macintosh considerably easier for the novicecomputer user, although some commands were also givenkeyboard equivalents similar to the old "Ctrl" key commands,so a more experienced user could execute some of themwithout having to take his hands off the keyboard. IfAppleWorks could be considered easy enough to use withoutopening the reference book, this graphic user interface(GUI) was even more so. It also provided a standardenvironment that all programs written for the Mac could use,making it easier to learn how to use a new program. Although the 6502 processor did not have thehorsepower of the 68000 in the Mac, some programs began toappear for the Apple II that tried to make use of the sameconcept of overlapping windows, pull-down menus, and a mouse(or joystick) driven pointer. Quark released a programselector called Catalyst that used a similargraphics-based desktop, icons for files, and thepoint-and-click method of file execution. It was includedwith some of the early UniDisk 3.5 drives, and on Quark'shard drives. Another company, VersionSoft (from France) hada program called MouseDesk, which was distributed inAmerica by International Solutions. MouseDesk worked justa bit better than Catalyst, but did not do very well as astandalone product, especially with Catalyst being givenaway free with the new UniDisk. Eventually, InternationalSolutions made MouseDesk available for only ten dollarsvia mail-order, hoping to get it into general enough usethat their other graphic- and mouse-based products wouldsell better. Although that did not happen, InternationalSolutions did eventually sell the rights to distribution ofMouseDesk over to Apple Computer. Apple then modified theprogram and included it with as a rudimentary desktop(modeled after the Macintosh Finder) for their firstversions of ProDOS 16 System software for the Apple IIGS. With the release of the IIGS, it became possible forbetter GUI software to be produced for the Apple II. The65816 processor had a bit more power, and the IIGS provideda better quality graphics environment (via its super hi-resmode) and more available memory than was possible on theolder 8-bit Apple II's.SOFTWARE: APPLE'S GREATEST HITS It is beyond the scope of this writing to go into muchdetail about the many programs released over the years, asthe sheer volume of them since 1977 is enormous. Even abrief mention of them all could become a book in its ownright, but Appendix A contains a listing (in moderatedetail) of popular software released over the years. Inthis segment here I will address in a little more detailthree programs that have been particularly influential inthe Apple II world: VisiCalc, Apple Writer, andAppleWorks. By 1980, the Apple II software market had fairly wellestablished itself. This allowed users of the computer tono longer have to write their own programs, but instead moveon to simply being able to use them. Softalk magazine,which began in that year, had started nearly from thebeginning with an analysis of top selling software of theday. In their second issue (October 1980) their bestsellerlist first appeared, with the top thirty software programsranked based on actual sales information obtained by pollingretailers across the country. In that first list the topselling program was VisiCalc.SOFTWARE: VISICALC A major part of the answer to the question, "What canI do with this computer?" lies in whether or not thesoftware program in question is so important or useful thatit literally sells the computer. Robert X. Cringely, in hisbook "Accidental Empires", put it this way: "VisiCalc wasa compelling application -- an application so important thatit, alone justified the computer purchase. Such anapplication was the last element required to turn themicrocomputer from a hobbyist's toy into a business machine. No matter how powerful and brilliantly designed, no computercan be successful without a compelling application. To thepeople who bought them, mainframes were really inventorymachines or accounting machines, and minicomputers wereoffice automation machines. The Apple II was a VisiCalcmachine."<6> Visicalc was a way of using a computer that no onehad ever thought of before, especially at the time when mostcomputers were mainframes with limited access to the"average" user. VisiCalc was written by Dan Bricklin, aprogrammer that had decided to enter Harvard Business Schoolin the fall of 1977 and learn a second profession. Becauseof his programming background, he saw ways in which some ofhis class work could be simplified through the use ofcomputers. He wrote programs in BASIC on the collegetime-sharing system to do his financial calculations, butfound it tedious to have to re-write the program to dealwith each new type of problem. In a class that dealt with business production,Bricklin learned that some companies used long blackboards(sometimes stretching across several rooms) that weredivided into a matrix of rows and columns. Each row andcolumn had a specific definition, and calculations were madebased on the contents of each cell (the intersection of arow and a column). If the value of one cell changed, thevalues of any cell that made use of the first cell's valuealso had to be changed. Because this was all written on ablackboard, the results had to be checked and re-checked tomake sure that something hadn't been missed when changeswere made during a planning session. Bricklin conceived ofa computerized approach to this production and planningmatrix. Even though the computer could not display theentire matrix at once, the video screen could be used as awindow on a part of the matrix, and this window could bemoved at will to view any part of it. Best of all, thecomputer could keep track of all the calculations betweenthe various cells, making sure that a change made in oneplace would be properly reflected in the result of acalculation in another place. Over a single weekend he wrote a program in BASIC thatdemonstrated this concept. This demo program was ratherslow and could only display a single screen of cells, but itwas enough to illustrate the concept. Bricklin teamed upwith a friend from MIT, Bob Frankston, and together theylooked for a publisher for the program. They found DanFylstra, who had graduated from Harvard Business School acouple of years earlier and had started a small softwarecompany called Personal Software, which he ran out of hisapartment. Fylstra's primary product at the time was achess program for the Apple II, and he was preparing torelease the first commercial version of the adventure gameZork. After he heard what Bricklin and Frankston had inmind, he agreed to help them out. Fylstra loaned anApple II to them as a platform on which to develop a morefull-featured (and faster) machine language version ofBricklin's program. During 1978 and 1979 they workedtogether, as time permitted, with Bricklin doing the programdesign and Frankston writing the code. (One designcontribution made by Frankston was the idea of using"lookup" tables, which he wanted so he could use the programto calculate his taxes). They did most of their developmentwork on an Apple II emulator running on a minicomputer (muchas Apple itself had used a local time-sharing computer fordevelopment of the original Apple II Monitor program). Theynamed their program "VisiCalc", and by October 1979 it wasready for release. At first, VisiCalc was not a big hit. When mostcustomers at computer stores were shown what the programcould do, they didn't really grasp the concept behind itwell enough to appreciate its possibilities. When businesscustomers who had some computer knowledge came in and sawthe program, however, they immediately saw that it couldsimplify much of what they did. VisiCalc actually soldApple II's to many customers, and these businessmen managedto sneak the new computers onto their desks (despite companypolicies that discouraged use of anything but the company'smainframe). The combination of the Apple II's ability toexpand its memory up to 48K, and the new Disk II drive touse for quick and easy data storage and retrieval, madeVisiCalc an ideal program to sell potential users on thisnew computer. Although executives at Apple Computer had been shown apre-release version of VisiCalc, they also did not reallyunderstand the potential of the program. Trip Hawkins, anApple employee responsible for developing plans to help sellcomputers to small businesses, could see that this couldbecome a major selling point for getting Apple II's intothose businesses. He negotiated with Dan Fylstra about thepossibility of Apple purchasing from Personal Software allrights to VisiCalc (thus locking up the market in Apple'sfavor). However, Apple's president, Mike Markkula, feltthat the $1 million in Apple stock offered by Hawkins wastoo expensive and cancelled the deal. If his decision hadbeen otherwise, the future of the microcomputer industrymight have been quite different; however, Apple was headlongin their push to create their next product, the Apple III,and a million dollar investment in an untried program forthis "aging" Apple II was not in their agenda at the time. Bricklin and Frankston had themselves formed a companycalled Software Arts, and it was this company that hadcontracted with Fylstra's Personal Software. As part oftheir arrangement, they were obligated to create versions ofVisiCalc for many other microcomputers, from the TRS-80 tothe Commodore PET and eventually to the IBM PC. As sales ofVisiCalc grew by leaps and bounds, Personal Software (andSoftware Arts) became quite wealthy. To more closelyidentify his company with his flagship product, Fylstrachanged its name form Personal Software to VisiCorp. Healso hired other programmers to write companion software toextend the usefulness of VisiCalc. These includedVisiFile (a database system), VisiSchedule (capable ofcreating critical path PERT schedules), VisiCalc BusinessForecasting Model (a set of business templates forVisiCalc), and VisiTrend/VisiPlot (graphs, trendforecasting, and descriptive statistics). But despite these additional products, VisiCalccontinued to be VisiCorp's cash cow. This, ironically, ledto the company's biggest problem, centering around adisagreement about money. VisiCorp's contract with SoftwareArts guaranteed Bricklin and Frankston a hefty 37.5 percentroyalty on each copy of the program that VisiCorp sold. VisiCorp was responsible for marketing and distribution ofthe program, but it was Software Arts who owned the rightsto it, and they had no motivation to change their contractto decrease the royalty percent to a number that was moretypical for programmers. The problem escalated when VisiCorp filed a lawsuitseeking damages because Software Arts was supposedly late inproviding them upgrades to VisiCalc. Software Artscountersued, and demanded back the rights to distribute theproduct themselves. Further complicating matters was thefact that the name "VisiCalc" was a copyright of SoftwareArts, but a trademark of VisiCorp.<7> By early 1985, things had worn on to the point whereBricklin decided to end the battle by selling the rights toVisiCalc -- but not to VisiCorp. Instead, Mitch Kapor,who ran the Lotus Development Corporation, purchased theprogram. Kapor had previously worked for VisiCorp, and hadhelped write VisiTrend/VisiPlot. After he sold the rightsfor those programs to VisiCorp, he began design on aspreadsheet program that would run specifically on the IBMPC, with the additional features of limited word processingand the ability to create graphs. His program, Lotus1-2-3, worked as well on the IBM PC as the originalVisiCalc had on the Apple II (the ports of VisiCalc toother machines had never been quite as good as theoriginal), and Lotus eventually captured the spreadsheetmarket on the IBM. In fact, it became the "compellingapplication" that helped push that computer platform intoprominence. It had, however, made a significantcontribution to decreased sales of VisiCalc, and afterLotus succeeded in purchasing it from Software Arts,VisiCalc quietly disappeared from software store shelves.SOFTWARE: APPLE WRITER This was certainly not the first word processor forthe Apple II, but it was one of the most popular. Duringthe four years that Softalk magazine was in print, AppleWriter rarely (if ever) disappeared from their best sellingsoftware list. Even if it was not in the Top Thirty, itusually held some spot on their list of top Word Processors. The original version was released in 1979. AppleWriter 1.0 had to deal with the limitations of the Apple IIin the form of its uppercase-only keyboard and 40-columndisplay. Clearly, a document produced on a computer couldbe uppercase only, but it was more valuable if it could lookmore like that produced on a typewriter. To achieve entryof upper and lowercase characters, Apple Writer usedinverse text to display uppercase, and normal text todisplay lowercase. When entering text, an uppercase letterwas entered by pressing the ESC key once. This changed theusual cursor box to an inverse caret (^), and the nextletter entered would be uppercase (displayed in inverse). If the ESC key were pressed twice in a row, the cursorchanged into an inverse plus sign (+), and was now anediting cursor that could be moved through the text.<8> TheIJKM diamond on the keyboard was used to move the cursor,just as it was used for moving the cursor for editing linesof BASIC programs. Although the box cursor used in AppleWriter looked just like the flashing box also used in AppleBASIC, this cursor "floated" through the text instead ofsitting on top of a character. If you moved it through theword "AND", it would look like this as it went from left toright: *AND A*ND AN*D AND*. This original version of Apple Writer actuallyconsisted of two separate binary programs: TEDITOR andPRINTER. The first program was used to actually edit thetext, and the second one would print the files created bythe TEDITOR. In its first release, Apple Writer had twoproblems that bothered some early users of the program. Onewas that the files created by the program were Binary files(instead of Text files), apparently as a means to speedsaving and loading files under Apple DOS. Although itworked fine for Apple Writer, the files could not be usedby any other program. The other problem had to do with theway in which it used (or misused) the ASCII character set. The Apple II, you may recall, used the upper half ($80-$FF)of the ASCII set for its screen display of "normal"characters (much of the rest of the microcomputer worldtended to use the lower half), and used the lower half($00-$7F) for flashing and inverse characters. In the upperhalf, the characters from $80-$9F were designated as controlcharacters (generated by pressing the "Ctrl" key with aletter key), $A0-$BF were special characters and numbers,$C0-$DF contained the uppercase alphabet and a few morespecial characters, and $E0-$FF repeated the characters from$A0-$BF (this is where the lowercase letters should havebeen, according to the ASCII standards). Since thelowercase ASCII characters were unavailable, the Apple IIvideo routines translated any characters in the $E0-$FFrange into characters in the $C0-$DF range, making themdisplayable on the uppercase-only screen. Apple Writer,for some reason, used the $C0-$DF range internally fordisplay of uppercase letters (which was standard) and the$E0-$FF range for special characters and numbers (instead ofusing the $A0-$BF range). When some users began pluggingdifferent ROM characters chips (like the Paymar chip) intotheir Apple II Plus computer, they found that Apple Writerwouldn't display text properly. The number "3" appeared asa lowercase "s", and "%" as an "e". A special patch wassoon developed to intercept Apple Writer's text output tothe screen and make the correct translation to displaylowercase as lowercase, and numbers and special characterswhere they were supposed to be.<9> Apple Writer 1.0 ran from 13-sector DOS 3.2 disks,and the binary files it produced had names that began withthe prefix "TEXT." (a file named "LETTER" would appear ondisk as "TEXT.LETTER"). Apple Writer 1.1 was released in1980 when DOS 3.3 became available. It ran under the newer16 sector format, and contained some minor bug fixes. Thisversion also had available a companion spell checker calledGoodspell. The next version released was called Apple Writer][. This one came out in 1981, was copy-protected, andstill ran on an Apple II Plus under DOS 3.3, but nowproduced standard Text files instead of the older Binaryfiles, and could properly display 40-column lowercasecharacters when the character generator ROM was replaced. It also supported 80-column text if a Sup-R-Term card wasplugged into slot 3. In 40-column mode, words would now"wrap" to the next line if they were too long to display onthe current line (the older versions of Apple Writerappeared to split the word and continue it on the nextline). The ESC key was still used as a pseudo shift key(one press) and to enter editing mode (two presses,displayed as an inverse "@" instead of the "+" in previousversions), but the keyboard SHIFT key could be used to enteruppercase characters if the "shift key mod" was performed(recall that this connected the shift key to the input forbutton 3 on the game paddles). Other new features includeda glossary and the Word Processing Language (WPL). Inmodern terminology, WPL was a macro or scripting language,making it possible to automate nearly everything the programwas capable of. A WPL program could create templates likeform letters, or could be used for entry of repetitious text(such as your return name and address forcorrespondence).<8> Apple Writer //e, also copy-protected, came next in1983 with the Apple IIe. This took advantage of thefeatures of the new IIe (such as the built-in 80 columndisplay and full keyboard). It also included improvementsin tabbing (since a TAB key was now available on thekeyboard), could create larger text files (these could belarger than the size of memory, by loading just a segment ofthe file into memory at one time), could "print" text filesto the disk, could directly connect the keyboard to theprinter (to use like a typewriter), and had improvements inthe WPL language. When the Apple IIc came out, users ofthis version of Apple Writer had some problems, as theinverse status line at the top of the screen displayeduppercase characters as MouseText; however, patches quicklyappeared to remedy this situation.<10> The first version to run under the ProDOS operatingsystem was called Apple Writer 2.0. It came out inSeptember 1984, was not copy-protected, and it fixed theMouseText problem. It also allowed the user to set rightand left screen margins, giving a closer approximation ofthe final appearance of the printed text. This version alsohad the capability of connecting the keyboard directly tothe printer or to a modem, allowing it to be used as arudimentary terminal program. This version had someproblems with properly printing to certain third-partyparallel printer cards (such as the Grappler).<11> One annoying "feature" that was added to this version(and was also present in a couple of other Apple-distributedprograms, AppleWorks 1.3 and Instant Pascal) was that itdid not follow Apple's published protocols in properlyhandling slot 3 RAMdisks (or other disks). Since someprograms used all 128K memory that could be present in a IIeor IIc, Apple had given guidelines in one of their Technoteson how to properly "disconnect" the 64K RAMdisk (which wasdesignated as slot 3, drive 2) so all 128K would beavailable to the program. Apple Writer and the other twoprograms mentioned above had been written so that theydisconnected any slot 3 disk device, whether a RAMdisk,hard disk, or a genuine Apple disk. It is not clear as towhy this had been done, although it was suspected inpublications at the time that someone at Apple had done thisso memory cards not made by Apple would fail to work. Someof these memory cards had been made to also work in slot 3but to not interfere with the official 128K of programmemory. Their manufacturers had worked to follow Apple'spublished standards, and then had been bypassed by whatappeared to be programming arrogance. Patches to make theseprograms work properly appeared when the problem wasidentified.<12> Apple Writer 2.1 appeared in late 1985. Itcontained some minor bug fixes, including theabove-mentioned problem with some parallel printer cards. The 2.0 version had printed characters as low-ASCII (values$00-$7F), which caused a problem with some kinds ofinterface cards and printers. Version 2.1 changed this socharacters were printed as high-ASCII ($80-$FF), althoughfiles printed to a disk file were saved in the originallow-ASCII format.<13> This version also was notcopy-protected, making it possible to easily install on a3.5 disk or hard disk. When AppleWorks appeared on the scene, AppleWriter began to decrease in popularity; however, old timeusers did not like AppleWorks as well as Apple Writer,primarily because it put a layer of "protection" between theuser and the program. This made it easier for the computernovice to immediately put the program to use, and lesslikely to do something that would "mess up" his printer orinterface card internal settings. That same protection alsomade it harder to do specialized jobs. For example, whereApple Writer would allow entry of control characters(which allowed very specific control of printers and theirinterface cards), AppleWorks was much more restrictive inthis sense, handling more of the details of printer controlinternally. Apple Writer's power made it possible to evencreate documents on Postscript laser printers (asdemonstrated by Don Lancaster in his Computer Shoppercolumn, "Ask The Guru"), something that all the computerexperts claimed was not possible on an Apple II. WhereApple Writer allowed an experienced user to use allfeatures on a printer and interface card to the maximum,AppleWorks was more dependent on the printer and cardalready knowing how to be cooperative with it. The samething that gave Apple Writer its power also made it harderto user for less skilled users, who probably foundintimidating its nearly-blank screen with no prompts orinstructions visible. For several years, from around 1988 through 1992,Apple Writer was not very available except as a usedprogram. The exact reason for this is not clear. Onereason probably had to do with the better-sellingAppleWorks, which had the additional features of aspreadsheet and database. But with its Word ProcessingLanguage, Apple Writer was still more suitable for certainjobs than was AppleWorks; and yet, Apple simply stoppedupgrading, distributing, and supporting it. But in thesummer of 1992, one of the Sysops on GEnie's Apple (A2)Roundtable, Tim Tobin, was successful in contacting PaulLutus. Tobin was coordinating a project that A2 had startedto try to locate and revive the availability of "LostClassics", programs that had ceased publication (oftenbecause their distributor had gone out of business), andrecovering Apple Writer was high on his list. Lutusagreed to make his program available on a "freeware" basis: It could be copied freely and given away, but could not besold for a profit. (This arrangement was quite similar toan earlier program Lutus had written, FreeWriter. He hadreleased this program as freeware in 1984. FreeWriter wasvery much like Apple Writer, except it did not have abuilt-in ability to print the documents it created, and itdid not have WPL). This new, free distribution was possiblebecause although Apple Computer held the copyright on theApple Writer documentation, Lutus had retained thecopyright on the program itself (Apple had held thecopyright on versions 1.0 and 1.1 of the program). Althoughthe program is based on older technology, and does not takeadvantage of the larger memory sizes frequently available inthe Apple II's of today, it still is powerful and is awelcome addition to any software library.+++++++++++++++++++++++++++++NEXT INSTALLMENT: AppleWorks+++++++++++++++++++++++++++++ NOTES <1> Levy, Steven. Dell Publishing Co., Inc, Hackers: Heroes Of The Computer Revolution, New York, 1984, pp. 314-319. <2> Levy, Steven. Dell Publishing Co., Inc, Hackers: Heroes Of The Computer Revolution, New York, 1984, pp. 298-300. <3> -----. "A.P.P.L.E. Co-op Celebrates A Decade of Service", Call-A.P.P.L.E., Feb 1988, pp. 12-27. <4> Espinosa, Chris. (personal telephone call), Feb 4, 1992. <5> Pohlman, Taylor. (personal telephone call), Feb 14, 1992. <6> Cringely, Robert X.. Addison-Wesley, Accidental Empires, Reading, Massachusetts, 1992, p. 64. <7> Tommervik, Al. "The Double Hi-Res VisiSuit", Softalk, Apr 1984, pp. 28-29. <8> Dubnoff, Jerry. (personal mail), GEnie, E-mail, Aug 1992. <9> Widnall, Sheila. "Lower Case For Apple Writer Using The Paymar Chip", PEEKing At Call-A.P.P.L.E., Vol 3, 1980, pp. 264-266. <10> Lancaster, Don. Howard W. Sams & Co, Apple Writer Cookbook, 1986, pp. 29-30. <11> Lancaster, Don. pp. 102-103, 111-112. <12> Weishaar, Tom. "Ask Uncle DOS", Open-Apple, May 1987, p. 3.30. <13> Weishaar, Tom. "Does Your Mother Love You?", Open-Apple, Jan 86, p. 1.97.