SWEET16 is an interpreted byte-code instruction set invented by Steve Wozniak and implemented as part of the Integer BASIC ROM in the Apple II computers. It was created because Wozniak needed to manipulate 16-bit pointer data, and the Apple II was an 8-bit computer.
SWEET16 was not used by the core BASIC code, but was later used to implement several utilities. Notable among these was the line renumbering routine, which was included in the Programmer's Aid #1 ROM, added to later Apple II models and available for user installation on earlier examples.
SWEET16 code is executed as if it were running on a 16-bit processor with sixteen internal 16-bit little-endian registers, named through . Some registers have well-defined functions:
– accumulator – subroutine stack pointer – stores the result of all comparison operations for branch testing – status register – program counter
The 16 virtual registers, 32 bytes in total, are located in the zero page of the Apple II's real, physical memory map (at –), with values stored as low byte followed by high byte. The SWEET16 interpreter itself is located from to in the Integer BASIC ROM.
According to Wozniak, the SWEET16 implementation is a model of frugal coding, taking up only about 300 bytes in memory. SWEET16 runs at about one-tenth the speed of the equivalent native 6502 code; however it shaved around 20% off the size of Integer BASIC.
Operations Register Ops Nonregister Ops00Return to 6502 mode1nConstant set01Branch always2nLoad02Branch if No Carry3nStore03Branch if Carry4nLoad indirect04Branch if Plus5nStore indirect05Branch if Minus6nLoad double-byte indirect06Branch if Zero7nStore double-byte indirect07Branch if NonZero8nPop indirect08Branch if Minus 19nStore Pop indirect09Branch if Not Minus 1AnAdd0ABreakBnSubtract0BReturn from SubroutineCnPop double-byte indirect0CBranch to SubroutineDnCompare0Dcolspan=2 EnIncrement0Ecolspan=2 FnDecrement0Fcolspan=2
References
External links Call-A.P.P.L.E. Wozpak II — 1979 Call-A.P.P.L.E. booklet that includes "SWEET 16 Introduction" by Dick Sedgewick and a version of "SWEET 16: The 6502 Dream Machine" by Steve Wozniak with longer descriptions of each opcode.
Randall Hyde's 1981 book "How to Program the Apple II - Using 6502 Assembly Language" states in the title byline that it comes "With an Introduction to Sweet-16".