Est. 1983 Beginner

Apple IIe BASIC

Applesoft BASIC as it shipped in the ROM of the Apple IIe: Microsoft's floating-point 6502 BASIC, adapted by Apple, running on the 1983 machine that brought lowercase, 80-column text and arrow-key editing to the Apple II line.

Created by Microsoft (Marc McDonald, Ric Weiland) and Apple Computer (Applesoft II adaptation; IIe firmware by Rich Auricchio)

Paradigm Procedural (line-numbered, unstructured BASIC)
Typing Dynamic, weak; 5-byte floating-point reals (about 9 digits), % integers (-32767 to 32767) and $ strings (0-255 characters)
First Appeared 1983
Latest Version Enhanced Apple IIe ROM (March 1985); the ROM code was unchanged on the Platinum IIe (January 1987 to November 1993)

Apple IIe BASIC is the BASIC built into the Apple IIe, the third and longest-produced model of the Apple II line. It is not a separate language but Applesoft BASIC, the floating-point Microsoft BASIC that Apple had licensed in 1977 and put into ROM on the Apple II Plus in 1979, running on the machine that replaced the II Plus in January 1983. What made the IIe version different was the machine around it: a full uppercase-and-lowercase keyboard, arrow keys, an optional 80-column display and 64K of memory as standard. The interpreter was not always ready for these changes. Apple’s own 1982 manual admitted that “Applesoft doesn’t know about the 80-column display,” and the fixes had to wait for the Enhanced IIe ROMs of March 1985.

The IIe stayed in production for almost eleven years, until November 1993, and schools were still heavily invested in Apple II computers and software in the early 1990s. For a long stretch of the Apple II’s history, this was the version of Applesoft that people sat down in front of.

A Note on the Year

The metadata year of 1983 refers to this platform-specific version, not to the language. Applesoft itself dates to 1977, and Applesoft II, the version the IIe runs, was released in 1978. What is new in 1983 is the Apple IIe and the ROM firmware around its BASIC. Apple’s IIe edition of the reference manual carries a 1982 copyright date because it was written before the computer went on sale in January 1983.

History & Origins

From Microsoft BASIC to Applesoft

Steve Wozniak’s Integer BASIC, the original Apple II’s ROM language, had no floating-point numbers, and customers complained. Wozniak was busy with the Disk II and DOS, so Apple turned to Microsoft, which already had a BASIC for the 6502. Microsoft’s Marc McDonald and Ric Weiland are credited as its authors, and Apple staff, including Randy Wigginton, adapted it. Andy Hertzfeld writes that Apple’s license from Microsoft ran for eight years.

The first Applesoft came on cassette in 1977. Applesoft II followed in 1978 with high-resolution graphics commands, and it became the ROM BASIC of the Apple II Plus in 1979. By the time the IIe was designed, Applesoft was the Apple II’s standard language. Integer BASIC had become a file loaded from disk, selected with the DOS command INT, while FP (for “floating point”) switched back to Applesoft.

The Apple IIe firmware

The Apple IIe project, code-named “Diana” and later “Super II,” set out to cut the Apple II’s chip count and add features the market wanted, especially lowercase and 80-column text. Compatibility with existing Apple II software shaped the design, and the Applesoft language the IIe manual documents is the same Applesoft II statement set; most of the new work went into the firmware around it.

According to Apple II History, design manager Peter Quinn “had to beg” for someone to revise the Monitor and Applesoft firmware, and eventually got Rich Auricchio, an Apple II hacker from the early days. Quinn said of him: “He added in all the 80-column and Escape-key stuff.” Bryan Stearns worked on the new Monitor. The IIe added a bank-switched ROM area, largely used to make the 80-column display in the auxiliary slot work, and Auricchio extended the screen-editing escape routines so that all four arrow keys could move the cursor.

Documentation

Apple rewrote the Applesoft manual for the new machine. The Applesoft BASIC Programmer’s Reference Manual, marked “For //e Only,” came in two volumes, was copyrighted in 1982 and was written for Apple by Scot Kamins of Technology Translated in San Francisco. It assumes readers already know the Apple IIe Owner’s Manual and suggests the Apple IIe Applesoft Tutorial for beginners. Its appendices include a table of differences between the 40- and 80-column displays and a comparison with Integer BASIC.

Programming on the Apple IIe

Keyboard and editing

The IIe’s keyboard changed how people typed programs. Its manual gives a notable piece of advice:

Applesoft understands only uppercase letters. Most programmers therefore keep the CAPS LOCK key down while typing programs.

On an original (unenhanced) IIe, typing print in lowercase gave a syntax error. Lowercase was allowed only inside string constants such as "George Bernard Shaw".

Editing was done on screen:

KeyEffect in Applesoft on the IIe
LEFT-ARROWBackspace: removes the last typed character from the line being entered
RIGHT-ARROW“Recopies” the character under the cursor, as if it had been typed
DOWN-ARROWMoves the cursor down a line without erasing or copying
UP-ARROWNo effect in Applesoft (outside escape mode)
ESC, then I/J/K/M or arrowsPure cursor moves that stay in escape mode until SPACE is pressed
ESC, then E / F / @Clears to end of line / to end of text window / the whole window
CONTROL-XCancels the line being typed

The usual way to fix a line was to list it, move the cursor onto it in escape mode, and recopy it with RIGHT-ARROW while typing over the mistakes. The OPEN-APPLE and SOLID-APPLE keys were wired like the buttons on game controllers 0 and 1, and Applesoft programs read them with PEEK.

The 80-column problem

Before the 1985 ROMs, the 80-column card and Applesoft did not cooperate well. The 1982 manual warns that a PRINT of exactly 40 characters produces an unintended blank line “even if you have the Apple IIe 80-Column Text Card installed and running in ‘active 80’ mode; Applesoft doesn’t know about the 80-column display and will still break each output line after 40 characters.” Its Appendix K lists commands that behaved differently, or were not available for the second 40 columns, when the card was active.

Numbers, strings and variables

Applesoft on the IIe offers three kinds of variables:

TypeSuffixRange per the IIe manual
RealnoneAbout ±9.99999999E+37, stored in 32 bits of precision, “about 9 digits”
Integer%-32767 to 32767
String$0 to 255 characters

A variable name can be up to 239 characters long, but only the first two characters count. The manual warns that SUM and SUNSTROKE are the same variable. Names also must not contain reserved words, so a name like SCORE fails because it contains OR. Strings are whole values rather than character arrays, and they are handled with LEFT$, MID$, RIGHT$, LEN, STR$, VAL, CHR$ and ASC. Arrays can have more than one dimension and are set to zero or the empty string by RUN or CLEAR.

What the language included

AreaStatements and functions
Program controlGOTO, GOSUB/RETURN, ON...GOTO, ON...GOSUB, IF...THEN, FOR...NEXT, POP, STOP, END
DataDIM, LET, READ/DATA/RESTORE, DEF FN (one-line functions)
Input and outputINPUT, GET, PRINT, HOME, HTAB, VTAB, TAB(, SPC(, INVERSE, FLASH, NORMAL, SPEED=, PR#, IN#
GraphicsLow-res GR, COLOR=, PLOT, HLIN, VLIN, SCRN(; high-res HGR, HGR2, HCOLOR=, HPLOT, DRAW, XDRAW, ROT=, SCALE=, SHLOAD
Errors and debuggingONERR GOTO, RESUME, TRACE, NOTRACE
Machine accessPEEK, POKE, CALL, USR, &, WAIT, HIMEM:, LOMEM:
CassetteLOAD, SAVE, STORE, RECALL, SHLOAD

Without a disk operating system, SAVE and LOAD use the cassette port (the IIe manual covers this in Appendix M, “If You Have a Cassette Recorder”). On disk systems, DOS 3.3, or from 1984 ProDOS’s BASIC.SYSTEM, makes SAVE and LOAD work with named disk files and lets programs issue disk commands by printing a CONTROL-D followed by the command. Double hi-res graphics, possible on IIe machines with 128K and a suitable motherboard, have no Applesoft commands.

A short IIe-era program, in the uppercase that the original ROM required:

1
2
3
4
5
6
7
10 HOME
20 INPUT "WHAT IS YOUR NAME? ";N$
30 FOR I = 1 TO 3
40 HTAB I * 2: PRINT "HELLO, ";N$
50 NEXT I
60 PRINT CHR$(7): REM RING THE BELL
70 END

CHR$(7) is the bell character; the IIe manual says it sends a 1,000 Hz tone to the speaker for a tenth of a second.

Error handling

ONERR GOTO replaces the normal error stop with a routine in the program, which can read the error code from memory location 222 and continue with RESUME. The IIe manual documents a trap here: if the handler does not end with RESUME, the system stack is not reset, which can crash the program.

Evolution

The Enhanced IIe (March 1985)

The only significant change to Apple IIe BASIC came in March 1985 with the Enhanced IIe. Existing owners could buy a four-chip upgrade: a 65C02 processor, two new ROMs holding revised Applesoft and Monitor code, and a character ROM that added MouseText. According to Apple II History, the new ROMs:

  • made it possible to enter Applesoft and Monitor commands in lowercase, which were converted to uppercase;
  • fixed most known problems with the IIe’s 80-column firmware, including routines that were too slow and disabled interrupts for too long;
  • let GET, HTAB, TAB, SPC and comma tabbing work properly in 80-column mode.

The same history notes that Apple’s engineers deliberately avoided larger changes to Applesoft when they built the closely related Apple IIc ROM, because many BASIC programs depended on undocumented machine-language entry points in the interpreter. That caution explains why Applesoft stayed almost unchanged through the life of the IIe.

Licensing

Hertzfeld writes that Apple’s eight-year Applesoft license with Microsoft was due to expire in September 1985. Apple still depended on the Apple II for most of its revenue and could not easily replace the language without splitting its software base. In his account, Microsoft made renewal conditional on Apple abandoning MacBASIC, and also used the renewal to obtain a perpetual license to the Macintosh user interface, in a deal Hertzfeld says John Sculley executed in November 1985.

Platinum IIe and the end of the line

The Platinum IIe of January 1987 changed the case color and keyboard and included the Extended 80-Column Card, but it had no firmware changes, so its BASIC is the Enhanced IIe version. Apple dropped the IIe from its price lists in November 1993, according to Apple II History. The Apple IIe Card, sold from March 1991 to May 1995, kept the IIe environment running in Macintosh LC-family computers.

Current Relevance

Apple IIe BASIC is historical. Apple no longer supports it and there is no official container image. The interpreter still runs in emulators of the Apple IIe, such as AppleWin, which is still being developed (release 1.32.0.0 appeared in May 2026), and in reimplementations such as Joshua Bell’s Applesoft BASIC in JavaScript. The two-volume IIe reference manual and the Applesoft tutorials are preserved as scans at the Internet Archive, and many vintage-computing hobbyists still keep working IIe machines.

Why It Matters

  • It was the BASIC of the Apple II’s longest-lived model. The IIe ran from January 1983 to November 1993, longer than any other Apple II, and Applesoft was the language waiting at its ] prompt the whole time.
  • It shows the cost of compatibility. Apple kept Applesoft almost unchanged so that existing programs would run, even though the interpreter could not handle the IIe’s own 80-column display properly until 1985.
  • It shows the weight of a licensed language. Because so much depended on Applesoft, Apple needed Microsoft’s renewal in 1985, and that dependence cost Apple its own MacBASIC.
  • It connected hardware and language. The IIe’s arrow keys, escape-mode editing, Apple keys and lowercase keyboard shaped how programs were typed and edited, even though the BASIC underneath was the 1978 Applesoft II.

Timeline

1978
Applesoft II, Apple's adaptation of Microsoft's 6502 floating-point BASIC with high-resolution graphics commands, is released on cassette and disk. It moves into ROM with the Apple II Plus in 1979, replacing Integer BASIC
1982
Apple publishes the two-volume Applesoft BASIC Programmer's Reference Manual "For //e Only" (copyright 1982, written by Scot Kamins, product A2L2005), alongside the Apple IIe Applesoft Tutorial
1983
The Apple IIe is released in January 1983. It is the first Apple II with lowercase, 80-column support and 64K RAM as standard, and its ROM keeps Applesoft BASIC while Rich Auricchio's new firmware adds the 80-column and arrow-key escape editing routines
1984
ProDOS arrives. Under it, Applesoft stays in ROM, but disk commands are handled by a separate program, BASIC.SYSTEM, rather than by DOS 3.3
1985
The Enhanced IIe replaces the original in March 1985. New ROMs let Applesoft commands be typed in lowercase and make GET, HTAB, TAB, SPC and comma tabbing work properly in 80-column mode; an upgrade kit of four chips is sold to existing owners
1985
Apple's original eight-year Applesoft license from Microsoft is due to expire in September 1985. According to Andy Hertzfeld, Microsoft makes the renewal conditional on Apple abandoning MacBASIC
1987
The Platinum IIe (January 1987) adds a numeric keypad and a factory-installed Extended 80-Column Card, with no firmware changes, so its Applesoft is the Enhanced IIe version
1991
The Apple IIe Card for Macintosh LC computers is released in March 1991, letting schools run Apple IIe software, including Applesoft programs, on Macs
1993
Apple quietly drops the Apple IIe from its price lists in November 1993, ending the Apple II line; the IIe Card remains on sale until May 1995

Notable Uses & Legacy

Learning to program

Apple positioned the Apple IIe Applesoft Tutorial as "an excellent guide for beginning programmers", and the IIe Programmer's Reference Manual ends with a chapter that plans and writes a complete menu-driven postage-rates program, printed in full in Appendix N

Ampersand and USR extensions

Applesoft's & statement and USR function jump to machine-language routines, and numerous third-party commercial packages used them to add commands to the language, since Apple itself changed the ROM interpreter very little

Apple IIe Card for Macintosh

Apple's March 1991 compatibility card let Macintosh LC-family computers run Apple II software, including the Applesoft BASIC environment, easing schools' move from Apple IIs to Macs

Modern emulation

Applesoft programs still run today in Apple IIe emulators such as AppleWin (release 1.32.0.0, May 2026), and a reimplementation, Joshua Bell's Applesoft BASIC in JavaScript, runs them in a web browser

Language Influence

Influenced By

Applesoft BASIC Microsoft BASIC Integer BASIC

Running Today

Run examples using the official Docker image:

docker pull
Last updated: