IBMPC 0.1.3 added XT key translation

This commit is contained in:
dekunukem
2022-01-30 15:21:11 +00:00
parent 4ae55a072c
commit 3d6de0839b
19 changed files with 200 additions and 176 deletions

View File

@@ -67,7 +67,7 @@ UART_HandleTypeDef huart3;
const uint8_t board_id = 1;
const uint8_t version_major = 0;
const uint8_t version_minor = 1;
const uint8_t version_patch = 2;
const uint8_t version_patch = 3;
uint8_t hw_revision;
uint8_t spi_transmit_buf[SPI_BUF_SIZE];

View File

@@ -116,9 +116,55 @@ void xtkb_check_for_softreset(void)
}
}
#define KEY_UP 103
#define KEY_PAGEUP 104
#define KEY_LEFT 105
#define KEY_RIGHT 106
#define KEY_END 107
#define KEY_DOWN 108
#define KEY_PAGEDOWN 109
#define KEY_HOME 102
#define KEY_INSERT 110
#define KEY_DELETE 111
// status 1 pressed 0 released
uint8_t xtkb_press_key(uint8_t code, uint8_t status)
{
// on XT keyboard those keys are on numpads, so need to translate over
switch(code)
{
case KEY_UP:
code = 72;
break;
case KEY_PAGEUP:
code = 74;
break;
case KEY_LEFT:
code = 75;
break;
case KEY_RIGHT:
code = 78;
break;
case KEY_END:
code = 79;
break;
case KEY_DOWN:
code = 80;
break;
case KEY_PAGEDOWN:
code = 81;
break;
case KEY_HOME:
code = 71;
break;
case KEY_INSERT:
code = 82;
break;
case KEY_DELETE:
code = 83;
break;
}
if(code > 83) // not on XT keyboard
return 0;
if(status == 2) // typematic