( RAMEDIT NEEDS MYFORTH COMPILED INTO THE DICTIONARY PRIOR TO LOADING. ) FORGET TASK : TASK ; : BIP " BEEP 4000,.05" BASICX ; DECIMAL VARIABLE ADDRESS 22 STRING PR$ " FFFFF: FFFF-FF-FFFF F" PR$ S! : N-S OVER N@ N-B OVER C! 2+ SWAP 1+ SWAP ; : SHOWLINE ( -- ) ADDRESS @ DUP ADDR$ PR$ DROP SWAP CMOVE 2- 2- PR$ DROP 14 + N-S N-S N-S N-S 2+ N-S N-S 2+ N-S N-S N-S N-S 2+ SWAP 5- 1- C@ DUP 20 127 WITHIN IF SWAP C! ELSE DROP BL SWAP C! THEN CR PR$ TYPE ; : NEDIT ( -- ) CR ." Edit " ADDRESS @ DUP ADDR$ TYPE ." : " DUP N@ N. KEY DUP [ " 0" ASC ] LITERAL [ " 9" ASC ] LITERAL WITHIN IF [ " 0" ASC ] LITERAL - SWAP N! ELSE DUP [ " A" ASC ] LITERAL [ " F" ASC ] LITERAL WITHIN IF [ " A" ASC 10 - ] LITERAL - SWAP N! ELSE DUP 13 <> SWAP 14 <> AND IF BIP THEN DROP THEN THEN ; : DOKEY ( -- F ) KEY CASE 8 OF -1 ADDRESS +! FALSE ENDOF 9 OF 1 ADDRESS +! FALSE ENDOF 18 OF -2 ADDRESS +! FALSE ENDOF 19 OF 2 ADDRESS +! FALSE ENDOF 20 OF -5 ADDRESS +! FALSE ENDOF 21 OF 5 ADDRESS +! FALSE ENDOF 13 OF NEDIT FALSE ENDOF [ " A" ASC ] LITERAL OF CR ." Address " ADDRESS @ DUP ADDR$ TYPE ." : " @ ADDR$ TYPE KEY DUP [ " J" ASC ] LITERAL = IF ADDRESS DUP @ @ SWAP ! DROP ELSE DUP 14 <> SWAP 13 <> AND IF BIP THEN THEN FALSE ENDOF 14 OF CR TRUE ENDOF BIP FALSE SWAP ENDCASE ; : RE ( ADDR -- ) ATTN DISABLE ADDRESS ! BEGIN SHOWLINE DOKEY UNTIL ATTN ENABLE ;