9 Commits
Author SHA1 Message Date
marketideas 5216f7cdaa alias.sh changes 2026-10-23 09:55:14 -07:00
Shawn Quick dfcaae62dd Add qlink, the disk tools, and a bootable ProDOS 8 image.
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.
2026-10-16 14:41:55 -07:00
Shawn Quick d034a1570a Document multi-syntax pcode assembly and point the qasm alias here.
The README describes the Linux build, the common pcode stream, and the move of the original repository to qasm-legacy. The qasm alias opens this repo.
2026-10-15 17:36:38 -07:00
Shawn Quick a20c6edc89 Name the assembler QuickAsm (qasm).
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.
2026-10-15 16:51:41 -07:00
Shawn Quick f6145d3bab added alias.sh 2026-10-15 16:34:18 -07:00
Shawn Quick 84f94cf7e7 Assemble one coverage program in each 65816 syntax.
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/.
2026-10-15 16:30:43 -07:00
Shawn Quick 28805f9490 Assemble several 65816 dialects through one pcode stream.
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.
2026-10-12 20:03:37 -07:00
Shawn Quick ef62d29f94 started fixing opcode issues 2026-08-31 11:20:44 -07:00
Shawn Quick 6a163bdb9c Initial Merlin 16+ compatible cross-assembler.
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).
2026-08-31 08:31:18 -07:00