[X9D] Some work on navigation with the 6 keys (+ - Enter Menu Page Exit)

This commit is contained in:
bsongis
2012-11-13 20:46:41 +00:00
parent 4c22ea18fd
commit 395d0d6b39
9 changed files with 223 additions and 152 deletions
+25 -22
View File
@@ -240,45 +240,48 @@ long Open9xSim::onTimeout(FXObject*,FXSelector,void*)
if(hasFocus()) {
#ifdef REVB
#define ERSKY9X_MENU_MASK (0x20)
#define ERSKY9X_EXIT_MASK (0x01000000)
#define ERSKY9X_EXIT_PIO PIOC
#define ERSKY9X_UP_MASK (0x04 >> 1)
#define ERSKY9X_RIGHT_MASK (0x20 >> 1)
#define ERSKY9X_DOWN_MASK (0x40 >> 1)
#define ERSKY9X_LEFT_MASK (0x10 >> 1)
#define ERSKY9X_RETURN_MASK (0x20)
#define ERSKY9X_EXIT_MASK (0x01000000)
#define ERSKY9X_EXIT_PIO PIOC
#define ERSKY9X_UP_MASK (0x04 >> 1)
#define ERSKY9X_RIGHT_MASK (0x20 >> 1)
#define ERSKY9X_DOWN_MASK (0x40 >> 1)
#define ERSKY9X_LEFT_MASK (0x10 >> 1)
#define ERSKY9X_MENU_MASK (0x04 >> 1)
#define ERSKY9X_PAGE_MASK (0x40 >> 1)
#else
#define ERSKY9X_MENU_MASK (0x40)
#define ERSKY9X_EXIT_MASK (0x80000000)
#define ERSKY9X_EXIT_PIO PIOA
#define ERSKY9X_UP_MASK (0x08 >> 1)
#define ERSKY9X_RIGHT_MASK (0x20 >> 1)
#define ERSKY9X_DOWN_MASK (0x10 >> 1)
#define ERSKY9X_LEFT_MASK (0x40 >> 1)
#define ERSKY9X_RETURN_MASK (0x40)
#define ERSKY9X_EXIT_MASK (0x80000000)
#define ERSKY9X_EXIT_PIO PIOA
#define ERSKY9X_UP_MASK (0x08 >> 1)
#define ERSKY9X_RIGHT_MASK (0x20 >> 1)
#define ERSKY9X_DOWN_MASK (0x10 >> 1)
#define ERSKY9X_LEFT_MASK (0x40 >> 1)
#endif
static uint64_t keys1[]={
KEY_Return, INP_B_KEY_MEN, INP_L_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK,
KEY_Page_Up, INP_B_KEY_MEN, INP_L_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK,
KEY_KP_1, INP_B_KEY_MEN, INP_L_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK,
KEY_Page_Down, INP_B_KEY_EXT, INP_L_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK,
KEY_Return, INP_B_KEY_MEN, INP_L_KEY_MEN, (uint64_t)PIOB, ERSKY9X_RETURN_MASK,
KEY_BackSpace, INP_B_KEY_EXT, INP_L_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK,
KEY_KP_0, INP_B_KEY_EXT, INP_L_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK,
KEY_Down, INP_B_KEY_DWN, INP_L_KEY_DWN, (uint64_t)PIOC, ERSKY9X_DOWN_MASK,
KEY_Up, INP_B_KEY_UP, INP_L_KEY_UP, (uint64_t)PIOC, ERSKY9X_UP_MASK,
KEY_Right, INP_B_KEY_RGT, INP_L_KEY_RGT, (uint64_t)PIOC, ERSKY9X_RIGHT_MASK,
KEY_Left, INP_B_KEY_LFT, INP_L_KEY_LFT, (uint64_t)PIOC, ERSKY9X_LEFT_MASK,
#if defined(PCBX9D)
KEY_Page_Up, INP_B_KEY_MEN, INP_L_KEY_MEN, (uint64_t)PIOC, ERSKY9X_MENU_MASK,
KEY_Page_Down, INP_B_KEY_EXT, INP_L_KEY_EXT, (uint64_t)PIOC, ERSKY9X_PAGE_MASK,
#else
KEY_Up, INP_B_KEY_UP, INP_L_KEY_UP, (uint64_t)PIOC, ERSKY9X_UP_MASK,
KEY_Down, INP_B_KEY_DWN, INP_L_KEY_DWN, (uint64_t)PIOC, ERSKY9X_DOWN_MASK,
#endif
};
#if defined(PCBSKY9X)
PIOC->PIO_PDSR |= ERSKY9X_DOWN_MASK | ERSKY9X_UP_MASK | ERSKY9X_RIGHT_MASK | ERSKY9X_LEFT_MASK ;
ERSKY9X_EXIT_PIO->PIO_PDSR |= ERSKY9X_EXIT_MASK;
PIOB->PIO_PDSR |= ERSKY9X_MENU_MASK;
PIOB->PIO_PDSR |= ERSKY9X_RETURN_MASK;
// PIOA->PIO_PDSR = 0xFFFFFFFF;
temperature = 31;
Coproc_temp = 23;
Coproc_maxtemp = 28;
maxTemperature = 42;
#elif defined(PCBGRUVIN9X)
uint8_t pin = (pinl & ~0x3f);
#else