From 244776a7ebac4c3df5e6616f067d10d1c6b63db7 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 9 May 2020 20:54:47 -0400 Subject: [PATCH] ti84: enable alpha key --- blk/564 | 2 +- blk/567 | 2 +- blk/568 | 10 +++++----- blk/569 | 5 ++--- blk/570 | 6 ++++++ recipes/ti84/xcomp.fs | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 blk/570 diff --git a/blk/564 b/blk/564 index 23db044..3b419cb 100644 --- a/blk/564 +++ b/blk/564 @@ -1,6 +1,6 @@ Keyboard driver -Low layer range: 566-569 +Low layer range: 566-570 Implement a (key) word that interpret keystrokes from the builtin keyboard. The word waits for a digit to be pressed and diff --git a/blk/567 b/blk/567 index 3de9cc1..1353dc0 100644 --- a/blk/567 +++ b/blk/567 @@ -4,7 +4,7 @@ 0xff. ) : _wait 64 BEGIN 0 _get 0xff = NOT IF DROP 64 THEN 1- DUP NOT UNTIL DROP ; -( digits table. seach row represents a group. 0 means +( digits table. each row represents a group. 0 means unsupported. no group 7 because it has no key. ) CREATE _dtbl 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, diff --git a/blk/568 b/blk/568 index 919b672..4db2b0c 100644 --- a/blk/568 +++ b/blk/568 @@ -1,9 +1,9 @@ ( alpha table. same as _dtbl, for when we're in alpha mode. ) CREATE _atbl 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, - 0xd C, '"' C, 'w' C, 'r' C, 'm' C, 'h' C, 0 C, 0 C, - '?' C, 0 C, 'v' C, 'q' C, 'l' C, 'g' C, 0 C, 0 C, - ':' C, 'z' C, 'u' C, 'p' C, 'k' C, 'f' C, 'c' C, 0 C, - 0x20 C, 'y' C, 't' C, 'o' C, 'j' C, 'e' C, 'b' C, 0 C, - 0 C, 'x' C, 's' C, 'n' C, 'i' C, 'd' C, 'a' C, 0x80 C, + 0xd C, '"' C, 'W' C, 'R' C, 'M' C, 'H' C, 0 C, 0 C, + '?' C, 0 C, 'V' C, 'Q' C, 'L' C, 'G' C, 0 C, 0 C, + ':' C, 'Z' C, 'U' C, 'P' C, 'K' C, 'F' C, 'C' C, 0 C, + 0x20 C, 'Y' C, 'T' C, 'O' C, 'J' C, 'E' C, 'B' C, 0 C, + 0 C, 'X' C, 'S' C, 'N' C, 'I' C, 'D' C, 'A' C, 0x80 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0x81 ( 2nd ) C, 0 C, 0x7f C, diff --git a/blk/569 b/blk/569 index a572a9e..5cc514f 100644 --- a/blk/569 +++ b/blk/569 @@ -1,4 +1,4 @@ -: _ +: _gti ( -- tindex, that it, index in _dtbl or _atbl ) 0 ( gid ) 0 ( dummy ) BEGIN ( loop until a digit is pressed ) DROP @@ -9,5 +9,4 @@ 0xff XOR ( dpos ) 0 ( dindex ) BEGIN 1+ 2DUP RSHIFT NOT UNTIL 1- ( gid dpos dindex ) SWAP DROP - ( gid dindex ) SWAP 8 * + _dtbl + C@ _wait ; -: (key) 0 ( dummy ) BEGIN DROP _ DUP UNTIL ; + ( gid dindex ) SWAP 8 * + ; diff --git a/blk/570 b/blk/570 new file mode 100644 index 0000000..63da689 --- /dev/null +++ b/blk/570 @@ -0,0 +1,6 @@ +: (key) + _dtbl 0 ( dummy ) BEGIN ( tbl 0 ) + DROP DUP ( tbl ) _gti + C@ + DUP 0x80 = IF ( alpha ) 2DROP _atbl 0 THEN + DUP UNTIL ( tbl c -- loop if null ) SWAP DROP + _wait ; diff --git a/recipes/ti84/xcomp.fs b/recipes/ti84/xcomp.fs index aeb5a70..fc14eb1 100644 --- a/recipes/ti84/xcomp.fs +++ b/recipes/ti84/xcomp.fs @@ -16,7 +16,7 @@ CURRENT @ XCURRENT ! 282 LOAD ( boot.z80 ) 393 LOAD ( icore low ) 555 557 LOADR ( LCD low ) -566 569 LOADR ( KBD low ) +566 570 LOADR ( KBD low ) 415 LOAD ( icore high ) (entry) ~FNT CPFNT3x5 (entry) _