From 38e0cc6c72bafdc8e5c0e81cf1bed61800e6ca88 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Fri, 29 Jun 2018 22:29:53 +0100 Subject: [PATCH] asz80: Well actually as-several-things Some documentation for folks who want to work on finishing it up --- Applications/MWC/cmd/asz80/README.6502 | 46 ++++++++++++++++++++++++++ Applications/MWC/cmd/asz80/README.Z80 | 12 +++++++ Applications/MWC/cmd/asz80/README.nova | 33 ++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 Applications/MWC/cmd/asz80/README.6502 create mode 100644 Applications/MWC/cmd/asz80/README.Z80 create mode 100644 Applications/MWC/cmd/asz80/README.nova diff --git a/Applications/MWC/cmd/asz80/README.6502 b/Applications/MWC/cmd/asz80/README.6502 new file mode 100644 index 00000000..5c304b10 --- /dev/null +++ b/Applications/MWC/cmd/asz80/README.6502 @@ -0,0 +1,46 @@ +6502 support + +Minimally tested at this point as 6502 Fuzix is really only base level. + +Suports the full 6502 instruction set. The syntax is fairly conventional but +might benefit from a few synonyms. + +Addresses are assumed to be zp relative when a constant whose value is < 256 +and the instruction has a zp form, otherwise absolute. + +A symbol can be forced to be a type by defining it within that segment thus + + .ZP +fred .equ 32 + +creates a ZP based definition + + .ABSOLUTE +fred .equ 32 + +creates an absolute constant (non-relocating) + + .CODE + +fred .equ 32 + +creates a 16bit relocatable symbol relative to code space. + +All the magic conversions assume ZP is 0. + +To Add +====== + +2A03 +65C02 +65CE02 + +maybe 65C816 + +The ability to specify where ZP is (and we need somewhere to tag that in the +object file format and linker!) + +The ability to refuse to do ZP co-oercions for 65c816 + +Syntax for high byte/low byte of ( <$xx >$xx ) + diff --git a/Applications/MWC/cmd/asz80/README.Z80 b/Applications/MWC/cmd/asz80/README.Z80 new file mode 100644 index 00000000..cee14305 --- /dev/null +++ b/Applications/MWC/cmd/asz80/README.Z80 @@ -0,0 +1,12 @@ +Z80 Support + +Official instruction set including the Z180 instructions + +An additional .Z180 command to specify Z180 instructions are allowed + +To Add +====== + +The ability to specify high or low byte of a symbol with < and > or some +other related syntax. This needs a new relocation type for high bytes. + diff --git a/Applications/MWC/cmd/asz80/README.nova b/Applications/MWC/cmd/asz80/README.nova new file mode 100644 index 00000000..bc9c37bb --- /dev/null +++ b/Applications/MWC/cmd/asz80/README.nova @@ -0,0 +1,33 @@ +DG Nova Support + +Very experimental support for the full NOVA4 instruction set. + +This is a word oriented machine. There is no .byte, and .ascii will pad to +the next machine word. + +Differences: +- Instead of an octal radix conventional syntax is used +- Case doesn't matter +- All the non instruction forms look like a modern assembler +- You can write @addr in .word and similar places to generate an address + with indirect + + +To Do + +Check CPU type and macros for specifying it + +Add .local for inserting constants and hiding them in the flow with ,skp so +that you can write things like + + lda 2, #12345 + + (ditto with @#) + +and have the assembler generate + + lda someoffset,1 + someinstrutions + something,skp + .word 12345 (@# makes this .word @12345) + -- 2.34.1