\r
1 CONSTANT char-size\r
2 CONSTANT cell-size\r
+cell-size 8 * CONSTANT cell-size-in-bits\r
\r
16 BASE !\r
0FF CONSTANT max-char\r
\r
: IF POSTPONE 0branch xhere 0 code,\r
1 bal+ ; \ orig type is 1\r
+ COMPILE-ONLY IMMEDIATE\r
\r
\ $COLON NameIFF,IFF\r
\ DW DoLIT,ZBranch,COMPILEComma,XHere,DoLIT,0,CodeComma\r
NEGATE cell-size-in-bits 0\r
DO >R DUP um+ >R >R DUP um+ R> + DUP\r
R> R@ SWAP >R um+ R> OR\r
- IF >R DROP 1+ R> THEN\r
+ IF >R DROP 1+ R>\r
ELSE DROP THEN\r
R>\r
LOOP DROP SWAP EXIT\r
\ control stack.\r
\r
: BEGIN xhere 0 bal+ \ dest type is 0\r
- ; COMPILE-ONLY IMMDEDIATE\r
+ ; COMPILE-ONLY IMMEDIATE\r
\r
\ $COLON NameBEGIN,BEGIN\r
\ DW XHere,DoLIT,0,BalPlus,EXIT\r
\ on control-flow stack, which will be resolved by LOOP or +LOOP.\r
\r
: DO 0 rakeVar ! 0 \ ?DO-orig is 0 for DO\r
-\ POSTPONE doDO xhere bal+ \ DO-dest\r
+ POSTPONE doDO xhere bal+ ; \ DO-dest\r
+ COMPILE-ONLY IMMEDIATE\r
\r
\ $COLON NameDO,DO\r
\ DW DoLIT,0,RakeVar,Store,DoLIT,0\r
\ Put the location of new unresolved forward reference orig2\r
\ onto control-flow stack.\r
\r
-: ELSE POSTPONE AHEAD 2SWAP POSTPONE THEN ; COMPILE-ONLY IMMDEDIATE\r
+: ELSE POSTPONE AHEAD 2SWAP POSTPONE THEN ; COMPILE-ONLY IMMEDIATE\r
\r
\ $COLON NameELSEE,ELSEE\r
\ DW AHEAD,TwoSWAP,THENN,EXIT\r
\ Terminate a BEGIN-WHILE-REPEAT indefinite loop. Resolve\r
\ backward reference dest and forward reference orig.\r
\r
-: REPEAT AGAIN THEN ; COMPILE-ONLY IMMEDIATE\r
+: REPEAT POSTPONE AGAIN POSTPONE THEN ; COMPILE-ONLY IMMEDIATE\r
\r
\ $COLON NameREPEAT,REPEATT\r
\ DW AGAIN,THENN,EXIT\r
\ SPACES ( n -- ) \ CORE\r
\ Send n spaces to the output device if n is greater than zero.\r
\r
-: SPACES DUP 0 > IF 0 DO SPACE LOOP EXIT THEN DROP;\r
+: SPACES DUP 0 > IF 0 DO SPACE LOOP EXIT THEN DROP ;\r
\r
\ $COLON 6,'SPACES',SPACES,_FLINK\r
\ DW DUPP,Zero,GreaterThan,ZBranch,SPACES1\r