1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-09-05 15:38:44 +10:00
collapseos/blk/671
Virgil Dupras 7a41c5c6f9 avra: add IF, .. THEN,
I decided to keep SKIP, .. TO, (renamed from AT,) around and limit
IF, .. THEN, to the simple BRNE case.
2020-05-19 10:26:57 -04:00

16 lines
507 B
Plaintext

( L1 LBL! .. L1 ' RJMP LBL, )
: LBL! ( l -- ) PC SWAP ! ;
: LBL, ( l op -- ) SWAP @ 1- SWAP EXECUTE A,, ;
: SKIP, PC 0 A,, ;
: 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 @ TO, ;
: BEGIN, PC ;
: AGAIN, ( op ) SWAP 1- SWAP EXECUTE A,, ;
: IF, ['] BREQ SKIP, ; : THEN, TO, ;