15 lines
421 B
Plaintext
15 lines
421 B
Plaintext
: _tbl^ ( swap input tbl )
|
|
_atbl = IF _dtbl ELSE _atbl THEN ;
|
|
: (key)
|
|
0 _2nd! 0 ( lastchr ) BEGIN
|
|
_alock@ IF _atbl ELSE _dtbl THEN
|
|
OVER 0x80 ( alpha ) =
|
|
IF _tbl^ _2nd@ IF _alock^ THEN THEN
|
|
SWAP 0x81 = _2nd!
|
|
_gti + C@
|
|
DUP 0 0x80 >< UNTIL ( loop if not in range )
|
|
( lowercase? )
|
|
_2nd@ IF DUP 'A' 'Z' =><= IF 0x20 OR THEN THEN
|
|
;
|
|
: KBD$ 0 [ KBD_MEM LITN ] C! ;
|