Move the assembler to src/qasm. qlink links OMF 1.0 and 2.0 from a script. makeBin flattens a load file, qomf dumps OMF, and qpro builds ProDOS volumes. APW and MPW assemble through the ORCA front end. Relocatable modules emit OMF objects. Listings stay off unless -l is set.
make boot assembles the GS/OS 6.0.1 ProDOS 8 kernel and BASIC.SYSTEM into an 800K volume. BASIC.SYSTEM accepts ls and pfx, and its splash reports PRODOS BASIC 2.0, copyright 1983-2026. IIGS.601.SRC is the source and the BASIC.SYSTEM oracle that image is built from.
The executable, library, C++ namespace, headers, and tests are qasm.
Merlin 16+ and Merlin 32 stay dialect names, including --syntax merlin
and merlin32. The README is the QuickAsm front page: build, usage, the
five matching coverage objects, and where the dialect docs live.
Merlin, Merlin 32, ORCA/M, LISA, and ca65 fixtures emit the same
absolute object. make test and make fixtures assemble them and compare
the five binaries.
ORCA/M ~name is a local label scoped between globals. A tilde before a
number or parenthesis stays bitwise NOT. LISA accepts MX and XC so the
16-bit immediate tail matches the other syntaxes.
The Makefile drives CMake. Binaries land in build/.
Identify Merlin, Merlin 32, ORCA/M, LISA, or ca65, lower the source to
a common pcode, and run that through the existing two-pass encoder.
Merlin expressions stay left to right. ca65 and ORCA/M expressions are
rewritten into fully parenthesized Merlin form. The object stays
absolute BIN.
= and # compare in expressions. REL still assembles, with unknown
labels treated as zero. --syntax selects a dialect and --dump-pcode
writes the lowered stream. doc/SYNTAX.md records the pseudo-op mapping
and the limits.
Host-side 6502/65C02/65816 assembler using Merlin 16+ as the primary
dialect, with Merlin 8/16 compatibility and native high-ASCII source
support ($A0 column tabs, $8D line endings).