06a4674317
There's a bug where the first char after a-lock isn't a-modded. I have troubles figuring it out for now. It feels like deja vu. I think I had the same problem with asm.
13 lines
361 B
Plaintext
13 lines
361 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 )
|
|
_wait ;
|
|
: KBD$ 0 [ KBD_MEM LITN ] C! ;
|