asz80: Well actually as-several-things
authorAlan Cox <alan@linux.intel.com>
Fri, 29 Jun 2018 21:29:53 +0000 (22:29 +0100)
committerAlan Cox <alan@linux.intel.com>
Fri, 29 Jun 2018 21:29:53 +0000 (22:29 +0100)
Some documentation for folks who want to work on finishing it up

Applications/MWC/cmd/asz80/README.6502 [new file with mode: 0644]
Applications/MWC/cmd/asz80/README.Z80 [new file with mode: 0644]
Applications/MWC/cmd/asz80/README.nova [new file with mode: 0644]

diff --git a/Applications/MWC/cmd/asz80/README.6502 b/Applications/MWC/cmd/asz80/README.6502
new file mode 100644 (file)
index 0000000..5c304b1
--- /dev/null
@@ -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 (file)
index 0000000..cee1430
--- /dev/null
@@ -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 (file)
index 0000000..bc9c37b
--- /dev/null
@@ -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)
+