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 late 1978 of an improved version. It was needed by those wanting to write and use applications that needed the capability of floating-point math. Because of this, Apple engineers had begun working in 1978 on the AppleII Plus, a modest enhancement to the AppleII. The main attraction of this newer Apple would be Applesoft in ROM, available immediately without having to load it from cassette or disk. Also, having it in ROM would move it out of the part of memory where RAM Applesoft conflicted with hi-res graphics (after all, Applesoft had commands specifically written into it for manipulating those graphics, something that Integer BASIC could only do via special CALLs to the routines in the Programmer's Aid #1 chip). With the decision made to upgrade the AppleII, other changes were made to make it more attractive to new computer buyers. The cost of RAM chips had dropped considerably, so most new IIPlus systems came standard with a full 48K of RAM. Since the disk operating system consumed about 10K of memory, having the full complement of available RAM made it easier to use the Disk II with either version of BASIC. Since users would not need to add the smaller 4K memory chips, the strapping blocks that had made it possible to use either 4K or 16K RAM chips on the original AppleII were removed. Small changes had already been made to the product since it first began distribution. Most of these changes were made primarily to simplify it and decrease costs of manufacturing. First of all, the original AppleII motherboard, designated as "Revision0", was changed to make it possible to display two more colors in hi-res graphics. The Revision0 board had only four colors (green, violet, black, white), but Wozniak had learned that by making a simple alteration he could get two more colors (blue and orange) and two more varieties of black and white. The Revision1 and later boards were capable of displaying all eight colors. The means of making this modification to Revision0 Apples was described by Wozniak in his reply to an article by Allen WatsonIII about hi-res graphics (in the June 1979 issue of Byte magazine). With that change, people who were not afraid of doing a little electrical work on their computers had some of the benefits of an updated AppleII. Hardware bugs that Apple engineers fixed included one that caused text characters to be displayed with green and violet fringing, whether in graphics mode or text mode. The "color killer" circuit they added fixed things so that non-graphics text would display in black and white only. Another problem involved RAM configurations of either 20K or 24K (a 16K RAM chip plus one or two 4K RAM chips). In those systems a hardware bug caused the 8K of memory from $4000 to $5FFF to be duplicated in the next 8K of memory, from $6000 to $7FFF, whether there was RAM present at those locations or not. This made a 20K Apple appear to have 24K, and a 24K Apple appear to have 36K. The Revision1 motherboard fixed this problem as well.<1> Revision1 boards also modified the cassette input circuit to respond with more accuracy to a weak input signal, making it easier to load data and programs from cassette. Also, one "feature" of the original AppleII was that any sound generated by the internal speaker also appeared as a signal on the cassette output connector; this was fixed in the new motherboards. Lastly, the RESET cycle was made part of the power-up circuitry, eliminating the requirement that the RESET key be pressed after turning on the computer.<2>,<3> THE APPLE II PLUS: FIRMWARE More important than the minor hardware changes, however, were the changes in the ROM code. The new ROM replaced the original Monitor with one that, among other things, better supported the new Disk II drive. Since RESET was now automatically activated when the power was turned on, the new ROM code had the computer automatically do a few things. It cleared the screen (displaying "APPLE ][" at the top), and began a scan down the slots, starting at slot 7 down to slot 1. It examined the first few bytes of code in each card's ROM for a specific sequence that identified it as a Disk II controller card. If one was found, control was passed to that card, causing the disk drive to startup and begin loading the disk operating system into memory. If no disk controller was found, the ROM code jumped instead to the start of BASIC (instead of leaving the user in the Monitor, as in the old ROM). This "Autostart ROM", as it was called, made it possible to have a system that started up a program on the disk with little action needed by the user. The RESET code was more intelligent in the Autostart ROM than in the Old Monitor ROM. There was now a "Cold Start" RESET (which functioned as described above), and a "Warm Start" RESET. A Warm Start RESET could occur without re-booting the Disk II (if it was present); in fact, it ensured that the disk operating system remained "connected" after RESET was pressed. This feature was implemented by setting three bytes at the end of page $03 in memory. Two of the bytes were the address of the place in memory to which the Apple should jump if RESET was pressed. The third byte was a specially coded byte created from half of the address byte. When RESET was pressed, this special "power-up" byte was checked with the address byte. If they didn't properly match, the Monitor assumed that the power had just been turned on, and it executed a Cold Start RESET. This feature was extensively used by writers of copy protected software, so users could not modify or copy the code in memory simply by pressing the RESET key. The other major change, mentioned earlier, was the BASIC that was supplied in ROM. Gone was Steve Wozniak's hand-assembled Integer BASIC, in favor of the newer Applesoft. Since these ROM versions of BASIC used the same memory locations, they could not be used simultaneously. With the introduction of the IIPlus, Apple also released the Applesoft Firmware card. This card, which plugged into slot 0, made it possible for previous AppleII owners to have some of the benefits of the IIPlus without having to buy an entirely new computer. Even with that card, however, you could not use features of one BASIC while the other was active, and switching from one BASIC to the other erased any program that was being used at the time. The two BASICs could be told apart by the prompt they used; Integer BASIC used the ">" character, but Applesoft used the "]" character. Another change made to the Monitor ROM made screen editing easier. The original AppleII's procedure for editing a line typed in BASIC or in the Monitor was tedious at best. To change a line of text in BASIC, you had to list the line, move the cursor up to the start of the line, and then use the right-arrow key to "copy" text from the screen into the input buffer. If you wanted to skip part of the line, you had to move the cursor past the text that you wanted to eliminate WITHOUT using the arrow keys. If you wanted to INSERT something into the line, you had to move the cursor off the line (above it or below it), type the additional text, and then move the cursor back into the line to finish copying the original part of the line. For example, suppose you had typed this line in Applesoft and displayed it on the 40-column screen: ]LIST 100 100 FOR I = 1 TO 100: PRINT "I LIKE MY APPLE": NEXT : END To change that line so the PRINT statement read "I REALLY LIKE MY APPLE" meant either retyping the entire line, or using the edit feature. (If the line was particularly long, it was preferable to edit rather than retype the entire line). To edit this line, you would have to move the cursor up to the "1" of "100" and begin pressing the right arrow key. When you got to the "L" of "LIKE" you would have to move the cursor above or below the line, type the word "REALLY" followed by a space, then move the cursor back to the "L" of "LIKE", and continue copying with the right arrow key. After editing a line, the screen might look like this: 100 FOR I = 1 TO 100: PRINT "I LIKE MY APPLE": NEXT : END 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't make any mistakes it would read like this: ]LIST 100 100 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 spaces inserted in front of the word "LIKE" by the Applesoft LIST command, it could appear this way: 100 FOR I = 1 TO 100: PRINT "I REALLY LIKE MY APPLE" : NEXT : END The big problem with these cursor moves for editing under the Old Monitor was that each move required two keypresses. To move the cursor up, you had to press "ESC" and then "D" EACH TIME you wanted to move the cursor up. "ESC A" moved right, "ESC B" moved left, and "ESC C" moved the cursor down. With a long line that needed much editing, this would get old real fast. Not only was it cumbersome, but the layout of the keyboard made it difficult to remember the correct letters used for cursor movement; although "D" (up) was above "C" (down), it seemed that "D" should stand for "Down". Also confusing was that "A" was to the left of "B", but their functions were the opposite of their position! The new Autostart ROM improved this screen editing process just a bit. Now, pressing "ESC" turned on a special editing mode. Repeated presses of "I" (up), "J" (left), "K" (right), and "M" (down) continued to move the cursor until a key other than ESC was pressed. On the keyboard these letters were arranged in a sort of "directional keypad" or diamond, which made remembering the moves a little easier. The previous ESC editing codes were still supported, but still with their previous limitations. Unfortunately, however, you still couldn't tell whether you were in the regular text entry mode or in the ESC editing mode, and often attempts at changing a line took several tries to get it right.<4>,<5> Other features added in the new Autostart ROM included the ability to pause a listing by pressing Ctrl-S (VERY helpful when trying to scan through a long program!) As mentioned above, pressing RESET would return control through the soft-entry vectors on memory page $03. This would allow a user to exit from a runaway BASIC program by pressing RESET, and still keep program and variables intact in memory (which could not be guaranteed with the old Monitor ROM).<5> John Arkley at Apple wrote the changes to the original Monitor ROM and created the Autostart ROM in November 1978 (he's the "John A" mentioned in the source code listing found in the 1981 edition of the APPLE II REFERENCE MANUAL). After he had done the work and the ROMs had been created, Apple wanted to publish a new version of the Reference Manual to cover the AppleII Plus. The older Reference Manual (affectionately known as the "Red Book") had included an assembly language source code listing of the Monitor ROM. They wanted to include the source for BOTH versions of the Monitor, but a problem came up. While developing the Monitor, Apple had used a local mainframe computer dial-up service known as "Call Computer." They used a cross-assembler on that computer, assembled the code, and then used the resulting object code to create the ROM. (A cross-assembler is an assembler that creates object code for a processor other than the one the cross-assembler runs on. For example, if you can write 8080 machine code with an assembler running on a 6502-based computer, you are using a cross-assembler). Unfortunately, Call Computer had accidentally done a system backup with the source and destination disks reversed, erasing all the files containing the source code for the AppleII Monitors. There were no disk or cassette copies of the source code for the Autostart ROM back at Apple. Working from the source listing in the Red Book, John recreated the source file for the original Monitor, and then disassembled his own modifications for the IIPlus and re-created his Autostart ROM source file. Those reconstructed listings are what appeared in the 1981 edition of the AppleII Reference Manual.<6> Not everyone was pleased with the modifications made in the Autostart ROMs, however. Some of the authors of the magazine CALL-A.P.P.L.E. liked to refer to the new computer as the "AppleII Minus", since Arkley had to remove some of their beloved routines from the ROMs to make room for the new features. Missing from the AppleII Plus ROMs were Integer BASIC, the miniassembler, and Woz's SWEET16 interpreter (that entire space now being used by Applesoft). Missing from the Monitor were the assembly language STEP and TRACE features, and a set of sixteen-bit multiply and divide routines.<5> THE APPLE II PLUS: COST The new AppleII Plus, at $1,195, sold for over $100 less than the original AppleII, although it came with more memory and had Applesoft (previously an added expense item) in ROM. THE APPLE II PLUS: BELL & HOWELL Apple made a deal early on with Bell & Howell to let them sell the AppleII Plus with a Bell & Howell name plate on it for use in schools. These Apples were black colored (instead of the standard beige), and had screws on the back to keep the lids on (apparently to keep students' hands out). These Apples (sometimes called "Darth Vader" Apples) also had the "shift-key mod" (see below) applied. Since Bell & Howell was a major supplier of school equipment, this was a means for Apple to get a foothold in the school environment.<7>,<8> Bell & Howell also had electronics correspondence courses, and used the black AppleII Plus for one of their courses. They offered a one year warranty, instead of the ninety-day warranty offered by Apple.<9>,<10>,<11> THE APPLE II PLUS: EARLY USER EXPERIENCES An AppleII veteran on GEnie, Dennis Ulm, kindly provided me with the following reproduction of his ORIGINAL AppleII Plus packing list. It gives a little picture of what early non-disk users had to work with: APPLE II PLUS PACKING LIST This 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's Integer BASIC Breakout game (the reason he designed the AppleII in the first place). BRIAN'S THEME was a hi-res graphics program that drew lines on the screen in various patterns. HOPALONG CASSIDY was a "guess who" program that also used the hi-res screen).<12>,<13> Also included in Dennis' IIPlus box was this photocopied instruction sheet: TAPE LOADING INSTRUCTIONS If problems are encountered in LOADing tape programs, it may be necessary to "queue" (sic) the tape before LOADing. To queue a tape, use the following procedure: 1. Rewind the tape. 2. Disconnect the cable from the tape recorder (so you can hear what's on the tape). 3. Start the tape recorder in PLAY mode. 4. When a steady tone is heard, STOP the tape recorder. 5. Connect the cable to the tape recorder and adjust the volume and tone controls on the tape recorder to the recommended levels. 6. Make sure your computer is in BASIC. 7. Type LOAD. 8. START the tape playing. 9. Press RETURN. The program should LOAD properly. If an error message occurs, repeat the procedure, but try readjusting the tone and volume controls on the tape recorder. Dennis says that in his experience it took at least five to ten tries to get anything to load properly from tape! THE APPLE II PLUS: MORE HARDWARE ADD-ONS Lower-case was still not supported on the new AppleII Plus, though it was a popular user-modification. The thriving industry for AppleII peripherals made up for this shortcoming, with various vendors supplying small plug-in circuit boards that fit under the keyboard, allowing display of lower-case on the screen (and sometimes direct entry of lower-case from the keyboard). By 1981, when the Revision 7 motherboard was released for the AppleII Plus, a different method of character generation was used, which reduced radio-frequency interference that was generated. For Revision 7 boards, lower-case characters could be displayed with the addition of only a single chip. However, unless a user changed the keyboard encoder with a third-party product, only upper-case characters could be typed.<14> The keyboard itself underwent some changes, both by users and by Apple. The original RESET key was in the upper right-hand corner of the keyboard. The problem with that key was that it had the same feel as the keys around it, making it possible to accidentally hit RESET and lose the entire program that was being so carefully entered. One user modification was to pop off the RESET keycap and put a rubber washer under it, making it necessary to apply more pressure than usual to do a RESET. Apple fixed this twice, once by replacing the spring under the keycap with a stiffer one, and finally by making it necessary to press the CTRL key and the RESET together to make a RESET cycle happen. The keyboards that had the CTRL-RESET feature made it user selectable via a small slide switch just inside the case (some people didn't want to have to press the CTRL key to do a RESET). Another keyboard limitation was addressed through a modification that became known as the "shift-key mod". This was such a widely used trick that Apple ended up supporting it in hardware when they designed the AppleIIe. Since the II and IIPlus keyboards could not directly generate lower-case characters, early word processing programs had to find some way to make up for that deficiency. Apple's own Apple Writer program used the ESC key as a shift and shift-lock key, displaying upper-case characters in inverse video and lower-case in regular video. Other programs suggested installing the shift-key mod to allow more natural entry of upper-case, using the SHIFT key already present on the keyboard. The user had to attach a wire to the contact under the SHIFT key, and run it to the game port where the input for push-button 2 was found. (This push-button PB2, $C063 in memory, was for one of an optional second pair of game paddles that third-party hardware companies supplied for the AppleII). The program would assume that all letters being typed were in lower-case, unless the SHIFT key (attached now to paddle button PB2) was also being pressed; in that case the letter would be entered as upper-case. Since the PB2 button was not often used for a second pair of game paddles, it was unlikely that this modification would be accidentally triggered by pressing one of the game paddle buttons. This modification did NOT use buttons PB0 or PB1, which were on the first pair of game paddles. (PB0 and PB1 now correspond to the Open-Apple and Solid-Apple/Option keys on modern AppleII computers). ++++++++++++++++++++++++++++++++ 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.