diff --git a/blk/420 b/blk/420 index 1cc934d..171c335 100644 --- a/blk/420 +++ b/blk/420 @@ -1 +1 @@ -1 19 LOADR+ ( xcomp core high ) +1 20 LOADR+ ( xcomp core high ) diff --git a/blk/439 b/blk/439 index 1296f6f..0f2a5e5 100644 --- a/blk/439 +++ b/blk/439 @@ -1,10 +1,9 @@ -( ';' can't have its name right away because, when created, it - is not an IMMEDIATE yet and will not be treated properly by - xcomp. ) -: _ - ['] EXIT , - R> DROP ( exit : ) -; IMMEDIATE -';' XCURRENT @ 4 - C! -':' X' _ 4 - C! ( give : its name ) -'(' X' _ 4 - C! +: BEGIN H@ ; IMMEDIATE +: AGAIN COMPILE (br) H@ - , ; IMMEDIATE +: UNTIL COMPILE (?br) H@ - , ; IMMEDIATE +: [ INTERPRET ; IMMEDIATE +: ] R> DROP ; +: LIT< WORD 34 , SCPY 0 C, ; IMMEDIATE +: LITA 36 , , ; +: COMPILE ' LITA ['] , , ; IMMEDIATE +: [COMPILE] ' , ; IMMEDIATE diff --git a/blk/440 b/blk/440 index 8fea4c3..8a6db82 100644 --- a/blk/440 +++ b/blk/440 @@ -1,10 +1,11 @@ -: [ INTERPRET ; IMMEDIATE -: ] R> DROP ; -: LIT< WORD 34 , SCPY 0 C, ; IMMEDIATE -: LITA 36 , , ; +( ';' can't have its name right away because, when created, it + is not an IMMEDIATE yet and will not be treated properly by + xcomp. ) +: _ + ['] EXIT , + R> DROP ( exit : ) +; IMMEDIATE : ['] ' LITA ; IMMEDIATE -: COMPILE ' LITA ['] , , ; IMMEDIATE -: [COMPILE] ' , ; IMMEDIATE -: BEGIN H@ ; IMMEDIATE -: AGAIN COMPILE (br) H@ - , ; IMMEDIATE -: UNTIL COMPILE (?br) H@ - , ; IMMEDIATE +';' X' _ 4 - C! ( give ; its name ) +':' X' _ 4 - C! ( give : its name ) +'(' X' _ 4 - C! diff --git a/emul/forth.bin b/emul/forth.bin index 167c0ff..1003b0d 100644 Binary files a/emul/forth.bin and b/emul/forth.bin differ diff --git a/emul/xcomp.fs b/emul/xcomp.fs index 9a2f5b7..400a9cc 100644 --- a/emul/xcomp.fs +++ b/emul/xcomp.fs @@ -14,7 +14,6 @@ ( Update LATEST ) PC ORG @ 8 + ! ," CURRENT @ HERE ! " -440 444 XPACKR ," ' (key) 12 RAM+ ! " ORG @ 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC! diff --git a/recipes/rc2014/xcomp.fs b/recipes/rc2014/xcomp.fs index 0e18143..a3b648c 100644 --- a/recipes/rc2014/xcomp.fs +++ b/recipes/rc2014/xcomp.fs @@ -18,8 +18,6 @@ RAMSTART 0x70 + CONSTANT ACIA_MEM (entry) _ ( Update LATEST ) PC ORG @ 8 + ! -440 444 XPACKR ( core ) -123 132 XPACKR ( linker ) ," : _ ACIA$ RDLN$ (ok) ; _ " ORG @ 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC! diff --git a/recipes/ti84/xcomp.fs b/recipes/ti84/xcomp.fs index b133a31..c73a2a2 100644 --- a/recipes/ti84/xcomp.fs +++ b/recipes/ti84/xcomp.fs @@ -68,7 +68,6 @@ CREATE ~FNT CPFNT3x5 (entry) _ ( Update LATEST ) PC ORG @ 8 + ! -440 444 XPACKR ( core ) ," : _ LCD$ KBD$ (ok) RDLN$ ; _ " ORG @ 0x100 - 256 /MOD 2 PC! 2 PC! H@ 256 /MOD 2 PC! 2 PC! diff --git a/recipes/trs80/xcomp.fs b/recipes/trs80/xcomp.fs index 338b405..4abc0ab 100644 --- a/recipes/trs80/xcomp.fs +++ b/recipes/trs80/xcomp.fs @@ -14,7 +14,6 @@ RS_ADDR 0x80 - CONSTANT RAMSTART ( Update LATEST ) PC ORG @ 8 + ! ," CURRENT @ HERE ! " -440 444 XPACKR ( core ) 499 500 XPACKR ( trs80.fs ) ( 0x0a == NLPTR. TRS-80 wants CR-only newlines ) ," : _ ['] CR 0x0a RAM+ ! BLK$ FD$ (ok) RDLN$ ; _ "