diff --git a/blk/048 b/blk/048 index 880a530..e9505ac 100644 --- a/blk/048 +++ b/blk/048 @@ -1,7 +1,9 @@ Return Stack >R n -- R:n Pops PS and push to RS +2>R x y -- R:x y Equivalent to SWAP >R >R R> R:n -- n Pops RS and push to PS +2R> R:x y -- x y Equivalent to R> R> SWAP I -- n Copy RS TOS to PS I' -- n Copy RS second item to PS J -- n Copy RS third item to PS diff --git a/blk/326 b/blk/326 index 25e6c85..180c820 100644 --- a/blk/326 +++ b/blk/326 @@ -1,13 +1,17 @@ CODE >R - HL POPqq, - chkPS, - ( 17 == pushRS ) - 17 BCALL, + HL POPqq, chkPS, + 17 BCALL, ( 17 == pushRS ) +;CODE +CODE 2>R + DE POPqq, HL POPqq, chkPS, + 17 BCALL, ( 17 == pushRS ) EXDEHL, 17 BCALL, ;CODE - CODE R> - ( 20 == popRS ) - 20 BCALL, + 20 BCALL, ( 20 == popRS ) HL PUSHqq, ;CODE +CODE 2R> + 20 BCALL, ( 20 == popRS ) EXDEHL, 20 BCALL, + HL PUSHqq, DE PUSHqq, +;CODE diff --git a/blk/431 b/blk/431 index 1640707..a82bbc6 100644 --- a/blk/431 +++ b/blk/431 @@ -3,11 +3,8 @@ : / /MOD SWAP DROP ; : MOD /MOD DROP ; -( In addition to pushing H@ this compiles 2 >R so that loop +( In addition to pushing H@ this compiles 2>R so that loop variables are sent to PS at runtime ) -: DO - COMPILE SWAP COMPILE >R COMPILE >R - H@ -; IMMEDIATE +: DO COMPILE 2>R H@ ; IMMEDIATE diff --git a/blk/432 b/blk/432 index 3a4cfe5..d058dc3 100644 --- a/blk/432 +++ b/blk/432 @@ -12,5 +12,5 @@ : LOOP COMPILE _ COMPILE (?br) H@ - , - COMPILE R> COMPILE DROP COMPILE R> COMPILE DROP + COMPILE 2R> COMPILE 2DROP ; IMMEDIATE diff --git a/emul/forth.bin b/emul/forth.bin index cdd42bb..6c565b3 100644 Binary files a/emul/forth.bin and b/emul/forth.bin differ