Casio_asm/CASIO_fxlib/local/getkey.c

199 lines
3.4 KiB
C

#include "fxlib.h"
#include "keybios.h"
int getKey() {
//sleep until we get a key
unsigned int key=0;
while(!key) GetKey(&key);
//iterate all known keys
switch(key) {
//1st row
case KEY_CTRL_F1:
return 79;
case KEY_CTRL_F2:
return 69;
case KEY_CTRL_F3:
return 59;
case KEY_CTRL_F4:
return 49;
case KEY_CTRL_F5:
return 39;
case KEY_CTRL_F6:
return 29;
//2nd row
case KEY_CTRL_SHIFT:
return 78;
case KEY_CTRL_OPTN:
return 68;
case KEY_CTRL_VARS:
case KEY_CTRL_PRGM:
return 58;
case KEY_CTRL_MENU:
case KEY_CTRL_SETUP:
return 48;
//arrow keys
case KEY_CTRL_UP:
case KEY_CTRL_PAGEUP:
return 28;
case KEY_CTRL_DOWN:
case KEY_CTRL_PAGEDOWN:
return 37;
case KEY_CTRL_LEFT:
return 38;
case KEY_CTRL_RIGHT:
return 27;
//3rd row
case KEY_CTRL_ALPHA:
return 77;
case KEY_CHAR_SQUARE:
case KEY_CHAR_ROOT:
case KEY_CHAR_VALR:
return 67;
case KEY_CHAR_POW:
case KEY_CHAR_POWROOT:
case KEY_CHAR_THETA:
return 57;
case KEY_CTRL_EXIT:
case KEY_CTRL_QUIT:
return 47;
//4th row
case KEY_CTRL_XTT:
case KEY_CHAR_ANGLE:
case KEY_CHAR_A:
return 76;
case KEY_CHAR_LOG:
case KEY_CHAR_EXPN10:
case KEY_CHAR_B:
return 66;
case KEY_CHAR_LN:
case KEY_CHAR_EXPN:
case KEY_CHAR_C:
return 56;
case KEY_CHAR_SIN:
case KEY_CHAR_ASIN:
case KEY_CHAR_D:
return 46;
case KEY_CHAR_COS:
case KEY_CHAR_ACOS:
case KEY_CHAR_E:
return 36;
case KEY_CHAR_TAN:
case KEY_CHAR_ATAN:
case KEY_CHAR_F:
return 26;
//5th row
case KEY_CHAR_FRAC:
case KEY_CTRL_MIXEDFRAC:
case KEY_CHAR_G:
return 75;
case KEY_CTRL_FD:
case KEY_CTRL_FRACCNVRT:
case KEY_CHAR_H:
return 65;
case KEY_CHAR_LPAR:
case KEY_CHAR_CUBEROOT:
case KEY_CHAR_I:
return 55;
case KEY_CHAR_RPAR:
case KEY_CHAR_RECIP:
case KEY_CHAR_J:
return 45;
case KEY_CHAR_COMMA:
case KEY_CHAR_K:
return 35;
case KEY_CHAR_STORE:
case KEY_CHAR_L:
return 25;
//6th row
case KEY_CHAR_7:
case KEY_CTRL_CAPTURE:
case KEY_CHAR_M:
return 74;
case KEY_CHAR_8:
case KEY_CTRL_CLIP:
case KEY_CHAR_N:
return 64;
case KEY_CHAR_9:
case KEY_CTRL_PASTE:
case KEY_CHAR_O:
return 54;
case KEY_CTRL_DEL:
case KEY_CTRL_INS:
case 30045: //UNDO
return 44;
case KEY_CTRL_AC:
return 34;
case KEY_CHAR_4:
case KEY_CTRL_CATALOG:
case KEY_CHAR_P:
//7th row
return 73;
case KEY_CHAR_5:
case KEY_CHAR_Q:
return 63;
case KEY_CHAR_6:
case KEY_CHAR_R:
return 53;
case KEY_CHAR_MULT:
case KEY_CHAR_LBRACE:
case KEY_CHAR_S:
return 43;
case KEY_CHAR_DIV:
case KEY_CHAR_RBRACE:
case KEY_CHAR_T:
return 33;
//8th row
case KEY_CHAR_1:
case KEY_CHAR_LIST:
case KEY_CHAR_U:
return 72;
case KEY_CHAR_2:
case KEY_CHAR_MAT:
case KEY_CHAR_V:
return 62;
case KEY_CHAR_3:
case KEY_CHAR_W:
return 52;
case KEY_CHAR_PLUS:
case KEY_CHAR_LBRCKT:
case KEY_CHAR_X:
return 42;
case KEY_CHAR_MINUS:
case KEY_CHAR_RBRCKT:
case KEY_CHAR_Y:
return 32;
//9th row
case KEY_CHAR_0:
case KEY_CHAR_IMGNRY:
case KEY_CHAR_Z:
return 71;
case KEY_CHAR_DP:
case KEY_CHAR_EQUAL:
case KEY_CHAR_SPACE:
return 61;
case KEY_CHAR_EXP:
case KEY_CHAR_PI:
case KEY_CHAR_DQUATE:
return 51;
case KEY_CHAR_PMINUS:
case KEY_CHAR_ANS:
return 41;
case KEY_CTRL_EXE:
case KEY_CHAR_CR:
return 31;
}
//unknown code
return 0;
}