Difference between revisions of "83Plus:Ports:01"
From WikiTI
m (Added categories) |
m (Added 83 categories) |
||
Line 1: | Line 1: | ||
[[Category:83Plus:Ports:By_Address|01 - Keyboard]] | [[Category:83Plus:Ports:By_Address|01 - Keyboard]] | ||
[[Category:83Plus:Ports:By_Name|Keyboard]] | [[Category:83Plus:Ports:By_Name|Keyboard]] | ||
+ | [[Category:83:Ports:By_Address|01 - Keyboard]] | ||
+ | [[Category:83:Ports:By_Name|Keyboard]] | ||
== Synopsis == | == Synopsis == | ||
'''Port Number:''' 01h | '''Port Number:''' 01h |
Revision as of 10:37, 28 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