summaryrefslogtreecommitdiff
path: root/jefs.fs
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-02-16 22:55:40 +1100
committerkitty <nepeta@canaglie.net>2026-02-16 22:55:40 +1100
commit9085321aa274b63a30fc6a1edf75820ab6875437 (patch)
treef89b5ee9c61e1bb158cb88eb78c13d752ddb6fbb /jefs.fs
parent660a99ca247cea4f9de3e5b6744728dd385a9494 (diff)
CREATE asm word
i Probably should change : to use this. and while i'm at it make a word for setting/unsetting the smudge bit.
Diffstat (limited to 'jefs.fs')
-rw-r--r--jefs.fs14
1 files changed, 9 insertions, 5 deletions
diff --git a/jefs.fs b/jefs.fs
index b4e2624..8e56fd2 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -1,3 +1,9 @@
+: cell+ 8 + ;
+: syswrite ( u c-addr fd -- n ) 1 syscall3 ;
+: say ( c-addr u -- ) swap 1 syswrite drop ;
+: emit ( chr -- ) sp cell+ 1 swap 1 syswrite 2drop ;
+: cr 10 emit ;
+
: decimal 10 base ! ;
: hex 16 base ! ;
@@ -6,18 +12,16 @@
: [compile] parse find drop >cfa compile, ; immediate
: ' parse find drop >cfa [compile] lit ; immediate \ note: no error handling (yet)
+: constant create [compile] lit 195 ( ret ) c, ;
+65 constant TESTING
: begin here @ ; immediate
: again branch here @ 4 + - d, ; immediate \ add 4 to get to beginning of the next instruction
+: until 0branch here @ 4 + - d, ;
: if 0branch here @ 0 d, ; immediate ( I: -- a )
: then dup here @ swap - 4 - swap d! ; immediate
-: cell+ 8 + ;
: / /mod swap drop ;
: mod /mod drop ;
-: syswrite ( u c-addr fd -- n ) 1 syscall3 ;
-: say ( c-addr u -- ) swap 1 syswrite drop ;
-: emit ( chr -- ) sp cell+ 1 swap 1 syswrite 2drop ;
-: cr 10 emit ;
TESTSTR say cr bye