16 lines
397 B
Plaintext
16 lines
397 B
Plaintext
: C<? 0x06 RAM+ @ ;
|
|
: C<
|
|
0x08 RAM+ @ ( 08 == C<* override )
|
|
?DUP NOT IF 0x0c RAM+ @ THEN ( 0c == C<* )
|
|
EXECUTE
|
|
;
|
|
: , H@ ! H@ 2+ HERE ! ;
|
|
: C, H@ C! H@ 1+ HERE ! ;
|
|
: BIT@ ( bit addr -- f ) C@ SWAP RSHIFT 0x01 AND ;
|
|
: BIT! ( f bit addr -- )
|
|
SWAP 0x01 SWAP LSHIFT ROT ( addr mask f )
|
|
IF OVER C@ OR
|
|
ELSE 0xff XOR OVER C@ AND THEN ( addr flg )
|
|
SWAP C! ;
|
|
: NIP SWAP DROP ;
|