199 lines
3.4 KiB
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;
|
|
}
|