diff --git a/blk/671 b/blk/671 index 4dfafb4..b266d8a 100644 --- a/blk/671 +++ b/blk/671 @@ -2,13 +2,14 @@ : LBL! ( l -- ) PC SWAP ! ; : LBL, ( l op -- ) SWAP @ 1- SWAP EXECUTE A,, ; : SKIP, PC 0 A,, ; -: AT, ( opw pc ) +: TO, ( opw pc ) ( 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 ) HERE ! ; ( L1 FLBL, .. L1 ' RJMP FLBL! ) : FLBL, ( l -- ) LBL! 0 A,, ; -: FLBL! ( l opw -- ) SWAP @ AT, ; +: FLBL! ( l opw -- ) SWAP @ TO, ; : BEGIN, PC ; : AGAIN, ( op ) SWAP 1- SWAP EXECUTE A,, ; +: IF, ['] BREQ SKIP, ; : THEN, TO, ; diff --git a/recipes/sms/kbd/ps2ctl.fs b/recipes/sms/kbd/ps2ctl.fs index a256a47..3a535df 100644 --- a/recipes/sms/kbd/ps2ctl.fs +++ b/recipes/sms/kbd/ps2ctl.fs @@ -297,7 +297,7 @@ RET, L8 ' RCALL FLBL! ( checkBoundsY ) ( Check that Y is within bounds, reset to SRAM_START if not. ) 28 ( YL ) TST, -' BREQ SKIP, RET, ( not zero, nothing to do ) AT, +IF, RET, ( not zero, nothing to do ) THEN, ( YL is zero. Reset Z ) 29 ( YH ) CLR, 28 ( YL ) SRAM_START 0xff AND LDI, @@ -306,7 +306,7 @@ RET, L3 ' RCALL FLBL! ( checkBoundsZ ) ( Check that Z is within bounds, reset to SRAM_START if not. ) 30 ( ZL ) TST, -' BREQ SKIP, RET, ( not zero, nothing to do ) AT, +IF, RET, ( not zero, nothing to do ) THEN, ( ZL is zero. Reset Z ) 31 ( ZH ) CLR, 30 ( ZL ) SRAM_START 0xff AND LDI, @@ -318,7 +318,7 @@ L5 ' RCALL FLBL! L6 ' RCALL FLBL! ( checkParity ) 16 1 LDI, BEGIN, 19 LSR, - ' BRCC SKIP, 16 INC, ( carry set? we had a 1 ) AT, + ' BRCC SKIP, 16 INC, ( carry set? we had a 1 ) TO, 19 TST, ( is r19 zero yet? ) ' BRNE AGAIN, ( no? loop ) 16 0x1 ANDI,