aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2023-04-14 00:47:59 +0200
committerkdx <kikoodx@paranoici.org>2023-04-14 00:47:59 +0200
commit774b224bcabe0f80c01f3ef45713860a39b78d6a (patch)
treeca0dd102b4ca81c12c308a64bfb03e250cc803c5
parent3d71582dfc45baf2f3b9ba805f8a1c65a4943bf9 (diff)
downloadorga-774b224bcabe0f80c01f3ef45713860a39b78d6a.tar.gz
screen and input spec
-rw-r--r--samples/input.orgaasm4
-rw-r--r--spec.md6
-rw-r--r--src/orgaasm.c4
3 files changed, 14 insertions, 0 deletions
diff --git a/samples/input.orgaasm b/samples/input.orgaasm
new file mode 100644
index 0000000..a97f70c
--- /dev/null
+++ b/samples/input.orgaasm
@@ -0,0 +1,4 @@
+ SLP
+@loop
+ LIT ,Input LDA DBG POP
+ JMP ,loop
diff --git a/spec.md b/spec.md
index 19678d4..9559004 100644
--- a/spec.md
+++ b/spec.md
@@ -3,6 +3,12 @@
16^2 sized stack
16^2 sized return stack
+input data is a single short at __0xbffe__
+
+screen data is 8-bit indexed on two layers
+(one short is two pixels, one for each layer), and located
+__from 0xbfff to 0xffff__
+
# OPS
NOP ( -- ) sit back and do nothing
LIT x ( -- x ) push x to top of the stack
diff --git a/src/orgaasm.c b/src/orgaasm.c
index 3e8477d..18a0e54 100644
--- a/src/orgaasm.c
+++ b/src/orgaasm.c
@@ -233,6 +233,10 @@ main(int argc, char **argv)
}
strcpy(data_dup, data);
+ /* Manually register standard addresses. */
+ register_label("Input", 0xbffe);
+ register_label("Screen", 0xbfff);
+
/* First pass, find labels. */
first_pass(data);