Lazer's Interactive Symbolic Assembler
# Lazer's Interactive Symbolic Assembler

Lazer's Interactive Symbolic Assembler (Lisa) is an interactive 6502 assembler for Apple II computers written by Randall Hyde in the late 1970s.

The latest version of Lisa for 8-bit code is V3.2. Lisa includes an integrated editor with syntax checking. Lisa can assemble up to 30,000 lines of code in a minute on a 1 MHz computer, a speed achieved due to the editor's pre-parsing of the source code.

Lisa, before v.3, was able to assemble SWEET16 codes, a virtual 16-bit processor implemented as part of the Integer BASIC. However, the Apple II's Integer BASIC ROMs were replaced by Applesoft BASIC ROMs since the Apple II+, and the latter didn't contain the SWEET16 interpreter code.

The assembler also features "Randy's Hi-res Routines", a set of 2D computer graphics commands. Apple II's hi-res display pages (Hi-Res 1: 280 × 160 and Hi-Res 2: 280 × 192) were implemented by Steve Wozniak using two TTL chips. Therefore, a software programmer has to deal with the discontinuous addressing of screen pixels (a full screen is split into three parts horizontally) and each pixel's coloring properties (each pixel uses 1-bit, its color is determined by its place in a byte and its neighboring pixel). These ready-made subroutines were created to help programmers.

Lisa has a built-in disassembler.

An enhanced version of Lisa, called Lisa 8/16, was developed for the Apple IIgs It has a mouse-based UI and support for the 65816 CPU.

All versions of LISA use a custom interface editor that stores source code in a tokenized form, which makes the source files smaller on disk and in memory.

