\ Load Screen 06DEC84MCSFLUSH EMPTY DECIMAL 1 5 +THRU EXIT \ 06DEC84MCSHEX C000 CONSTANT DISP 4000 CONSTANT LEN 2000 CONSTANT ODD : CLR DISP LEN ERASE ; : DFILL DISP LEN ROT FILL ; : ALL DISP 2000 + 2000 BOUNDS DO FF I C! 10 MS KEY? ?LEAVE LOOP ; : slowline disp 50 bounds do ff i c! 100 ms loop ; \ 06DEC84MCShex : nline ( n -- ) 50 * disp + 50 bounds do ff i c! loop ; : px! ( x y -- ) 50 * + DISP + FF SWAP C! ; : xline ( row -- ) 50 0 DO I . I OVER PX! KEY? ?LEAVE 100 MS LOOP DROP ; : Yline ( row -- ) 50 0 DO I . I OVER PX! KEY? ?LEAVE 100 MS LOOP DROP ; \ 06DEC84MCShex : d! ( d x y -- ) 50 * + disp + c! ; : fd! ( x y -- ) ff -rot d! ; : 0d! ( x y -- ) 0 -rot d! ; : fline ( n -- ) 50 0 DO I . I OVER FD! KEY? ?LEAVE 100 MS LOOP DROP ; : 0line ( n -- ) 50 0 do i . i over 0d! key? ?leave 100 ms loop drop ; \ 06DEC84MCShex : addr ( x y -- a ) 2 /mod 50 * swap if odd + then + disp + ; : d! ( c x y -- ) addr c! ; : row ( n -- ) 50 0 do i over ff -rot d! loop ; decimal : allrow ( -- ) 200 0 do i row key? ?leave loop ; hex