Difference between revisions of "83Plus:Ports:01"
From WikiTI
		
		
		
m (→Comments:  TI-83 note)  | 
				 (Fixed table for 800x600)  | 
				||
| Line 16: | Line 16: | ||
The key map is laid out as follows:  | The key map is laid out as follows:  | ||
| − |   <nowiki>   | + |   <nowiki>         Group Bit ->     0     1     2     3     4     5     6     7  | 
| − | + |          Group Mask ->   FE    FD    FB    F7    EF    DF    BF    7F  | |
Key Bit (Mask)  | Key Bit (Mask)  | ||
| − | 0 (FE)   | + | 0 (FE)               | DOWN|ENTER| (-) |  .  |  0  |     |GRAPH|     |  | 
| − | 1 (FD)   | + | 1 (FD)               | LEFT|  +  |  3  |  2  |  1  | STO |TRACE|     |  | 
| − | 2 (FB)   | + | 2 (FB)               |RIGHT|  -  |  6  |  5  |  4  | LN  |ZOOM |     |  | 
| − | 3 (F7)   | + | 3 (F7)               | UP  |  *  |  9  |  8  |  7  | LOG |WIND |     |  | 
| − | 4 (EF)   | + | 4 (EF)               |     |  /  |  )  |  (  |  ,  | x^2 | Y=  |     |  | 
| − | 5 (DF)   | + | 5 (DF)               |     |  ^  | TAN | COS | SIN |x^-1 | 2nd |     |  | 
| − | 6 (BF)   | + | 6 (BF)               |     |CLEAR|VARS |PRGM |APPS |MATH |MODE |     |  | 
| − | 7 (7F)   | + | 7 (7F)               |     |     |     |STAT |X,T..|ALPHA| DEL |     |</nowiki>  | 
| − | + | * '''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 ==  | == Example ==  | ||
Revision as of 09:52, 27 March 2005
Synopsis
Port Number: 01h
Function: Keyboard Port
This port controls the on-calc 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)               |     |  /  |  )  |  (  |  ,  | x^2 | Y=  |     |
5 (DF)               |     |  ^  | TAN | COS | SIN |x^-1 | 2nd |     |
6 (BF)               |     |CLEAR|VARS |PRGM |APPS |MATH |MODE |     |
7 (7F)               |     |     |     |STAT |X,T..|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