From b6b86b40135b448c91177984a8d25518a66d7cdc Mon Sep 17 00:00:00 2001
From: Ian C
Date: Mon, 16 May 2016 11:59:26 +0100
Subject: SPC700 additions.
* First completed version of SPC700. Very untested.
* Fixed an oddity in the parser regarding quoted values not ending with a
separator. These values now appear unquoted with the additional text included
in the same argument.
---
doc/casm.html | 70 +++++-
src/parse.c | 29 ++-
src/spc700.c | 702 +++++++++++++++++++++++++++++++++++++++++++++++++++------
src/test/cpm.1 | 3 +-
src/util.c | 21 ++
src/util.h | 9 +
6 files changed, 767 insertions(+), 67 deletions(-)
diff --git a/doc/casm.html b/doc/casm.html
index bbef8ea..2e95ccc 100644
--- a/doc/casm.html
+++ b/doc/casm.html
@@ -157,6 +157,10 @@ http://www.gnu.org/licenses/gpl-3.0.html)
65c816 - 65c816 processor support, as used in the SNES.
+
+SPC700 - SPC700 processor support, as used in the SNES
+sound co-processor.
+
CASM
@@ -1557,7 +1561,7 @@ Controls the assumptions made regarding Zero Page address. Defaults to
off
-The default; all addresses are assumed to be not on the Zero Page, regardless
+All addresses are assumed to be not on the Zero Page, regardless
of the value used.
|
@@ -1835,6 +1839,70 @@ section.
+SPC700 CPU
+
+Using the SPC700
+
+The SPC700 processor can be selected by passing spc700 to the processor
+directive, i.e.
+
+
+ processor spc700
+
+
+Opcodes
+
+I could find no official documentation on The SPC700, so the assembler uses what
+seems to be the accepted opcode format.
+
+
+Options
+
+The SPC700 assembler has the following options.
+
+
+
+SPC700 Option |
+Description |
+
+
+option direct-page, <on|off|auto>
+ |
+
+Controls the assumptions made regarding Direct Page address. Defaults to
+auto, and can be the following values:
+
+
+
+off
+ |
+
+All addresses are assumed to be not on the Direct Page, regardless of the value
+used.
+ |
+
+
+on
+ |
+
+Assumes all addresses are in the Direct Page, raising an error if any address is
+not in the Direct Page.
+ |
+
+
+auto
+ |
+
+Treats addresses less than 256 as being in the Direct Page automatically. This
+mode also makes the assembler perform an extra pass to guard against the
+possibility of the calculation being fooled.
+ |
+
+
+ |
+
+
+