diff --git a/blk.fs b/blk.fs index d32fba5..103ae3b 100644 --- a/blk.fs +++ b/blk.fs @@ -315,7 +315,7 @@ CREATE lblnext 0 , ( stable ABI until set in B300 ) -^ 1- ( l off ) ( warning: l is a PC offset, not a mem addr! ) SWAP ORG @ + BIN( @ - ( off addr ) - C! ; + A! ; ( ----- 027 ) : FWR BSET 0 A, ; : FSET @ THEN, ; @@ -457,14 +457,11 @@ VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4 -^ 1- ( l off ) ( warning: l is a PC offset, not a mem addr! ) SWAP ORG @ + BIN( @ - ( off addr ) - C! ; + A! ; ( ----- 042 ) : FWRs BSET 0 A, ; : FSET @ THEN, ; -( : BREAK, FJR, 0x8000 OR ; -: BREAK?, DUP 0x8000 AND IF - 0x7fff AND 1 ALLOT THEN, -1 ALLOT - THEN ; ) +( TODO: add BREAK, ) : RPCs, PC - 1- DUP 128 + 0xff > IF ABORT" PC ovfl" THEN A, ; : RPCn, PC - 2- A,, ; : AGAIN, ( BREAK?, ) RPCs, ; @@ -597,7 +594,7 @@ VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4 : LBL! ( l -- ) PC SWAP ! ; : LBL, ( l op -- ) SWAP @ 1- SWAP EXECUTE A,, ; : SKIP, PC 0 A,, ; -: TO, ( opw pc ) +: TO, ( opw pc ) ( TODO: use A! instead of ! ) ( warning: pc is a PC offset, not a mem addr! ) 2 * ORG @ + PC 1- H@ ( opw addr tgt hbkp ) ROT HERE ! ( opw tgt hbkp ) SWAP ROT EXECUTE H@ ! ( hbkp )