RETRONICS.net - Apple History - Apple ][
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 Apple II Plus, a modest enhancement to the Apple II. 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 Apple II, other changes were made to make it more attractive to new computer buyers. The cost of RAM chips had dropped considerably, so most new II Plus 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 Apple II 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 Apple II motherboard, designated as "Revision 0", was changed to make it possible to display two more colors in hi-res graphics. The Revision 0 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 Revision 1 and later boards were capable of displaying all eight colors. The means of making this modification to Revision 0 Apples was described by Wozniak in his reply to an article by Allen Watson III 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 Apple II.
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 Revision 1 motherboard fixed this problem as well.
Revision 1 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 Apple II was that any sound generated by the internal speaker also appeared as a signal on the cassette output connector; this was fixed in the new motherboards. Lastly, the RESET cycle was made part of the power-up circuitry, eliminating the requirement that the RESET key be pressed after turning on the computer.,
The 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 II Plus, Apple also released the Applesoft Firmware card. This card, which plugged into slot 0, made it possible for previous Apple II owners to have some of the benefits of the II Plus 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 Apple II's procedure for editing a
line typed in BASIC or in the Monitor was tedious at best. To change a line of
text in BASIC, you had to list the line, move the cursor up to the start of the
line, and then use the right-arrow key to "copy" text from the screen
into the input buffer. If you wanted to skip part of the line, you had to move
the cursor past the text that you wanted to eliminate without using the
arrow keys. If you wanted to INSERT something into the line, you had to move the
cursor off the line (above it or below it), type the additional text, and then
move the cursor back into the line to finish copying the original part of the
line. For example, suppose you had typed this line in Applesoft and displayed it
on the 40-column screen:
100 FOR I = 1 TO 100: PRINT "I
LIKE MY APPLE": NEXT : END
To change that line so the PRINT
statement read "I REALLY LIKE MY APPLE" meant either retyping the
entire line, or using the edit feature. (If the line was particularly long, it
was preferable to edit rather than retype the entire line). To edit this line,
you would have to move the cursor up to the "1" of "100" and
begin pressing the right arrow key. When you got to the "L" of
"LIKE" you would have to move the cursor above or below the line, type
the word "REALLY" followed by a space, then move the cursor back to
the "L" of "LIKE", and continue copying with the right arrow
key. After editing a line, the screen might look like this:
|100 FOR I = 1 TO 100: PRINT "I
LIKE MY APPLE": NEXT : END
(In this example, I moved the
cursor down one line, typed "REALLY", and then moved it back to the
start of the word "LIKE"). If you didn't make any mistakes it would
read like this:
100 FOR I = 1 TO 100: PRINT "I
REALLY LIKE MY APPLE" : NEXT
However, if you didn't take care to
skip over the extra spaces inserted in front of the word "LIKE" by the
Applesoft LIST command, it could appear this way:
|100 FOR I = 1 TO 100: PRINT "I
REALLY LIKE MY APPLE"
: NEXT : END
The big problem with these cursor moves for editing under the Old Monitor was that each move required two keypresses. To move the cursor up, you had to press "ESC" and then "D" each time you wanted to move the cursor up. "ESC A" moved right, "ESC B" moved left, and "ESC C" moved the cursor down. With a long line that needed much editing, this would get old real fast. Not only was it cumbersome, but the layout of the keyboard made it difficult to remember the correct letters used for cursor movement; although "D" (up) was above "C" (down), it seemed that "D" should stand for "Down". Also confusing was that "A" was to the left of "B", but their functions were the opposite of their position!
The new Autostart ROM improved this screen editing process just a bit. Now, pressing "ESC" turned on a special editing mode. Repeated presses of "I" (up), "J" (left), "K" (right), and "M" (down) continued to move the cursor until a key other than ESC was pressed. On the keyboard these letters were arranged in a sort of "directional keypad" or diamond, which made remembering the moves a little easier. The previous ESC editing codes were still supported, but still with their previous limitations. Unfortunately, however, you still couldn't tell whether you were in the regular text entry mode or in the ESC editing mode, and often attempts at changing a line took several tries to get it right.,
Other features added in the new Autostart ROM included the ability to pause a listing by pressing Ctrl-S (very helpful when trying to scan through a long program!) As mentioned above, pressing RESET would return control through the soft-entry vectors on memory page $03. This would allow a user to exit from a runaway BASIC program by pressing RESET, and still keep program and variables intact in memory (which could not be guaranteed with the old Monitor ROM).
John Arkley at Apple wrote the changes to the original Monitor ROM and created the Autostart ROM in November 1978 (he's the "John A" mentioned in the source code listing found in the 1981 edition of the Apple II Reference Manual). After he had done the work and the ROMs had been created, Apple wanted to publish a new version of the Reference Manual to cover the Apple II 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 Apple II 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 II Plus and re-created his Autostart ROM source file. Those reconstructed listings are what appeared in the 1981 edition of the Apple II Reference Manual.
Not everyone was pleased with the modifications made in the Autostart ROMs, however. Some of the authors of the magazine Call-A.P.P.L.E. liked to refer to the new computer as the "Apple II Minus", since Arkley had to remove some of their beloved routines from the ROMs to make room for the new features. Missing from the Apple II Plus ROMs were Integer BASIC, the miniassembler, and Woz's SWEET 16 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.
Bell & Howell also had electronics correspondence courses, and used the black Apple II Plus for one of their courses. They offered a one year warranty, instead of the ninety-day warranty offered by Apple.,,
APPLE II PLUS
This package should contain the following items:
|1||1||600-2023||cassette tape: LITTLE BRICKOUT, COLOR DEMOSOFT|
|2||1||600-2024||cassette tape: RENUMBER/APPEND, ALIGNMENT TEST TONE|
|3||1||600-2025||cassette tape: FINANCE I, PENNY ARCADE|
|4||1||600-2026||cassette tape: LEMONADE, HOPALONG CASSIDY|
|5||1||600-2027||cassette tape: BRIAN'S THEME, PHONE LIST|
|6||1||030-2057||manual: Introductory Programs for the Apple II Plus|
|7||1||030-0044||manual: The Applesoft Tutorial|
|8||1||030-0013||manual: Applesoft II BASIC Programming Reference Manual|
|9||1||030-0004||manual: Apple II Reference Manual|
|10||1||030-0035||publication: Apple Magazine|
|11||1||600-0033||1 pair of game controls|
|12||1||590-0002||cable: to hook up a cassette recorder|
|13||1||590-0003||cable: power cord for the Apple II Plus|
|14||1||030-0001||Apple Warranty Card|
|15||1||600-0816||Apple II Plus System 16K|
|600-8032||Apple II Plus System 32K|
|600-0848||Apple II Plus System 48K|
(LITTLE BRICKOUT was an abbreviated Applesoft version of Woz's Integer BASIC Breakout game (the reason he designed the Apple II in the first place). BRIAN'S THEME was a hi-res graphics program that drew lines on the screen in various patterns. HOPALONG CASSIDY was a "guess who" program that also used the hi-res screen).,
Also included in Dennis' II Plus box was this photocopied instruction sheet:
TAPE LOADING INSTRUCTIONS
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 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 Apple IIe. Since the II and II Plus 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 Apple II). 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 Apple II computers).
courtesy of: Steven Weyhrich © 1994