705d68deec
With KEY and EMIT being switch words, most of the high layer can be defined before drivers. In addition to this change, I've compacted core blocks which were becoming quite sparse.
15 lines
427 B
Plaintext
15 lines
427 B
Plaintext
: MOVE ( a1 a2 u -- )
|
|
?DUP IF ( u ) 0 DO ( a1 a2 )
|
|
SWAP C@+ ( a2 a1+1 x )
|
|
ROT C!+ ( a1+1 a2+1 )
|
|
LOOP THEN 2DROP ;
|
|
: MOVE- ( a1 a2 u -- )
|
|
?DUP IF TUCK + 1- ( a1 u a2+u-1 )
|
|
ROT 2 PICK + 1- ( u a2+u-1 a1+u-1 )
|
|
ROT ( u ) 0 DO ( a2 a1 )
|
|
C@- ( a2 a1-1 x )
|
|
ROT C!- ( a1-1 a2-1 ) SWAP ( a2 a1 )
|
|
LOOP THEN 2DROP ;
|
|
: MOVE, ( a u -- ) H@ OVER ALLOT SWAP MOVE ;
|
|
: PREV 3 - DUP @ - ;
|