diff options
-rw-r--r-- | jonesforth.S | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/jonesforth.S b/jonesforth.S index 4af6701..53c1b7a 100644 --- a/jonesforth.S +++ b/jonesforth.S @@ -26,7 +26,8 @@ #define E x17 // End pointer #define OUTB x11 // Output buffer pointer -#define n x10 // Count register +#define n x9 // Count register +#define m x10 // Count register // Stack macros .macro push s,x; str \x,[\s,-8]!; .endm // e.g. push D,x0 pushes x0 to data stack @@ -116,6 +117,10 @@ def "n"; push D,n; NEXT; def "n!"; pop D,n; NEXT def "n+"; add n,n,1; NEXT; def "n-"; sub n,n,1; NEXT def "n0"; mov n,0; NEXT +def "m"; push D,m; NEXT; def "m!"; pop D,m; NEXT +def "m+"; add m,m,1; NEXT; def "m-"; sub m,m,1; NEXT +def "m0"; mov m,0; NEXT + def KEY; bl key; push D,x0; NEXT; key: cmp K,E; b.ge fill; ldrb w0,[K],1; ret // Fill buffer if exhausted and read next character |