diff --git a/blk/058 b/blk/058 index e9718b2..a323f57 100644 --- a/blk/058 +++ b/blk/058 @@ -5,9 +5,6 @@ LIT -- Write a LIT entry. You're expected to write LIT< x -- Read following word and write to HERE as a string literal. S= a1 a2 -- f Returns whether string a1 == a2. -SCPY a -- Copy string at addr a into HERE, without - NULL termination. - diff --git a/blk/367 b/blk/367 deleted file mode 100644 index 978f27c..0000000 --- a/blk/367 +++ /dev/null @@ -1,6 +0,0 @@ -: SCPY - BEGIN ( a ) - C@+ ( a+1 c ) - ?DUP NOT IF DROP EXIT THEN - C, ( a c ) - AGAIN ; diff --git a/blk/368 b/blk/368 index d851922..6121c98 100644 --- a/blk/368 +++ b/blk/368 @@ -1,5 +1,7 @@ +: +! TUCK @ + SWAP ! ; : [entry] ( w -- ) - H@ SWAP SCPY ( h ) + H@ SWAP + BEGIN C@+ ( w+1 c ) ?DUP IF C, 0 ELSE 1 THEN UNTIL DROP H@ SWAP - ( sz ) ( write prev value ) H@ CURRENT @ - , diff --git a/blk/369 b/blk/369 index 70e7d75..35f6b3f 100644 --- a/blk/369 +++ b/blk/369 @@ -1,11 +1,7 @@ -( Words here until the end of the low part, unlike words - preceeding them, aren't immediately needed for boot. But its - better to have as many words as possible in the xcomp part. ) : IMMEDIATE CURRENT @ 1- DUP C@ 128 OR SWAP C! ; : IMMED? 1- C@ 0x80 AND ; -: +! TUCK @ + SWAP ! ; : -^ SWAP - ; : / /MOD NIP ; : MOD /MOD DROP ; diff --git a/blk/399 b/blk/399 index e0befb6..f299bbe 100644 --- a/blk/399 +++ b/blk/399 @@ -1,9 +1,9 @@ +: LIT< WORD 34 , BEGIN C@+ DUP C, NOT UNTIL DROP ; IMMEDIATE : BEGIN H@ ; IMMEDIATE : AGAIN COMPILE (br) H@ - _bchk , ; IMMEDIATE : UNTIL COMPILE (?br) H@ - _bchk , ; IMMEDIATE : [ INTERPRET ; IMMEDIATE : ] R> DROP ; -: LIT< WORD 34 , SCPY 0 C, ; IMMEDIATE : LITA 36 , , ; : COMPILE ' LITA ['] , , ; IMMEDIATE : [COMPILE] ' , ; IMMEDIATE diff --git a/emul/forth.bin b/emul/forth.bin index 221c9e2..ba8aebf 100644 Binary files a/emul/forth.bin and b/emul/forth.bin differ