Difference between revisions of "83Plus:Ports:01"
From WikiTI
(→Synopsis: Tried to clarify a little bit. ("control")) |
(→Comments: -- converted to table) |
||
Line 16: | Line 16: | ||
The key map is laid out as follows: | The key map is laid out as follows: | ||
− | + | {| | |
− | + | | | |
− | Key Bit (Mask) | + | ! Group Bit |
− | 0 (FE) | + | | 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 |
− | 1 (FD) | + | |- |
− | 2 (FB) | + | | |
− | 3 (F7) | + | ! Group Mask |
− | 4 (EF) | + | | FE || FD || FB || F7 || EF || DF || BF || 7F |
− | 5 (DF) | + | |- |
− | 6 (BF) | + | ! Key Bit !! (Mask) |
− | 7 (7F) | + | |- |
+ | ! 0 !! (FE) | ||
+ | | DOWN||ENTER|| (-) || . || 0 || ||GRAPH|| || | ||
+ | |- | ||
+ | ! 1 !! (FD) | ||
+ | | LEFT|| + || 3 || 2 || 1 || STO ||TRACE|| || | ||
+ | |- | ||
+ | ! 2 !! (FB) | ||
+ | |RIGHT|| - || 6 || 5 || 4 || LN ||ZOOM || || | ||
+ | |- | ||
+ | ! 3 !! (F7) | ||
+ | | UP || * || 9 || 8 || 7 || LOG ||WIND || || | ||
+ | |- | ||
+ | ! 4 !! (EF) | ||
+ | | || / || ) || ( || , || x<sup>2</sup> || Y= || || | ||
+ | |- | ||
+ | ! 5 !! (DF) | ||
+ | | || ^ || TAN || COS || SIN ||x<sup>-1</sup> || 2nd || || | ||
+ | |- | ||
+ | ! 6 !! (BF) | ||
+ | | ||CLEAR||VARS ||PRGM ||APPS ||MATH ||MODE || || | ||
+ | |- | ||
+ | ! 7 !! (7F) | ||
+ | | || || ||STAT ||X,T,θ,''n''||ALPHA|| DEL || || | ||
+ | |} | ||
* '''Note:''' Group FB Key FE is NEGATE, not to be confused with SUBTRACT. | * '''Note:''' Group FB Key FE is NEGATE, not to be confused with SUBTRACT. |
Revision as of 19:57, 27 March 2005
Synopsis
Port Number: 01h
Function: Keyboard Port
This port reads key presses from the keypad. The keypad is divided into a series of groups.
Read Values
- Bits are set according whether corresponding keys from selected groups are pressed. Groups are selected through writing to the port. A pressed key reads a 0 bit. An unpressed key reads a 1 bit. The port reads FF after a reset (write FF).
Write Values
- $FF : Reset the keypad. This unselects all groups and resets the keypad state.
- Anything else : Any 0 bit adds the corresponding group to the list of monitored groups. When a key in a monitored group is pressed, the corresponding key bit reads 1.
Comments
The key map is laid out as follows:
Group Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
---|---|---|---|---|---|---|---|---|---|---|
Group Mask | FE | FD | FB | F7 | EF | DF | BF | 7F | ||
Key Bit | (Mask) | |||||||||
0 | (FE) | DOWN | ENTER | (-) | . | 0 | GRAPH | |||
1 | (FD) | LEFT | + | 3 | 2 | 1 | STO | TRACE | ||
2 | (FB) | RIGHT | - | 6 | 5 | 4 | LN | ZOOM | ||
3 | (F7) | UP | * | 9 | 8 | 7 | LOG | WIND | ||
4 | (EF) | / | ) | ( | , | x2 | Y= | |||
5 | (DF) | ^ | TAN | COS | SIN | x-1 | 2nd | |||
6 | (BF) | CLEAR | VARS | PRGM | APPS | MATH | MODE | |||
7 | (7F) | STAT | X,T,θ,n | ALPHA | DEL |
- Note: Group FB Key FE is NEGATE, not to be confused with SUBTRACT.
- Note: Group DF Key FE could be ON, but the ON key is tested elsewhere (a "special case" key - after all, it is the ON key).
- Note: Group EF Key BF (APPS) is called MATRIX on the TI-83.
Example
ld a, 0FFh ;Reset the keypad. out (1), a ld a, 0FEh ;Select group 0. out (1), a in a, (1) ;Test for keys. and 0FDh ;Test for Left Arrow key by making A 0 if left was pressed. call z, LeftArrowPressed ;If 0 then left was pressed. ld a, 0FFh ;Reset the keypad. out (1), a