MacBasic: Lost Legacy of Early Mac Programming

When the Apple II was first introduced in April 1977, it couldn’t do very much because there were few applications written for it. It was important to include some kind of programming language, so users, who were mostly hobbyists, could write their own programs. BASIC, designed for teaching introductory programming by two Dartmouth professors in the 1960s, became the language of choice for early microcomputers because it was interactive, simple, and easy to use. The Apple II included a BASIC interpreter known as Integer BASIC, written from scratch by Steve Wozniak—almost as idiosyncratically brilliant as his hardware design—stored in 5K bytes of ROM on the motherboard. It also came with Microsoft’s BASIC interpreter, dubbed Applesoft BASIC, on cassette tape. Applesoft eventually displaced Integer BASIC in ROM in the Apple II Plus because it had the floating-point math routines Woz never finished.

Donn Denman started at Apple in summer 1979, working with Randy Wiggington to port Applesoft BASIC to the Apple III. They rewrote parts to handle the Apple III’s segmented memory addressing and ported it to SOS, the new operating system. Progress was easy to track—he sat in the cubicle across from mine after we moved to Bandley III in spring 1980.

By summer 1981, the Macintosh project gained momentum. We planned launch applications to showcase its unique capabilities: a word processor, drawing program, and BASIC interpreter for user programs. We chose to write it ourselves to ensure BASIC leveraged the Macintosh UI—third parties wouldn’t “get it” enough.

Lunching with Apple II group friends, I convinced Donn to join the Mac team for BASIC implementation. Initially reluctant (Mac was risky), he joined in September 1981 after finishing Apple III BASIC, eager to improve it.

A BASIC interpreter requires:

  • A text editor for inputting programs
  • A parser translating code to bytecodes
  • An interpreter executing bytecodes

Donn built the interpreter first, testing with hand-coded bytecodes and early graphics primitives. Within months, he demoed recursive tree-drawing across multiple windows, showcasing threading capabilities.

By spring 1982, help was needed for a January 1983 launch. We hired Bryan Stearns (18, from Apple II team), whom Donn trusted. However, BASIC struggled with the rapidly evolving system. After six months, Bryan quit to join Chuck Mauro’s startup (creator of an 80-column Apple II card I’d assisted). I failed to dissuade him.

By spring 1983, BASIC clearly wouldn’t be ready. Software manager Jerome Coonen reassigned Donn to ROM and system work: desk accessories (alarm clock, notepad), and the calculator’s math core (Desk Ornaments).