From 8a90b8fec8ce27e563b12dae3ff5315270bb5e2c Mon Sep 17 00:00:00 2001 From: Philip Smart Date: Mon, 1 Sep 2025 19:30:06 +0100 Subject: [PATCH] Added NoriQs enhancements for the MZ65xx machines --- main/MZ5665.cpp | 557 +++++++++++++++++++++-------------- main/PS2KeyAdvanced.cpp | 4 + main/SharpKey.cpp | 13 +- main/include/MZ5665.h | 627 +++++++++++++++++++++------------------- sdkconfig | 134 ++++----- version.txt | 2 +- 6 files changed, 750 insertions(+), 587 deletions(-) diff --git a/main/MZ5665.cpp b/main/MZ5665.cpp index f1677b3..28a6471 100644 --- a/main/MZ5665.cpp +++ b/main/MZ5665.cpp @@ -22,6 +22,7 @@ // History: Apr 2022 - Initial framework, waiting on arrival of real machine to progress further. // v1.01 Jun 2022 - Updates to reflect changes realised in other modules due to addition of // bluetooth and suspend logic due to NVS issues using both cores. +// v1.02 Feb 2024 - Updated to actually work by NoriQ. // // Notes: See Makefile to enable/disable conditional components // @@ -73,7 +74,24 @@ static QueueHandle_t xmitQueue; // MZ-5600/MZ-6500 Protocol // ------------------------ // - +// The MZ-5600 uses 4-wire serial communication. +// +// Protocol: +// signal name : +// /DC : CPU -> KB send data +// /STC : CPU -> KB strobe +// /DK : KB -> CPU send data +// /SRK : KB -> CPU request to receive(CPU) +// /DK and /SRK are open collector outputs. +// +// KEYBOARD -> CPU +// Set /SRK to LOW to start interrupt. +// A strobe signal is output to /STC. +// Output Extension +// Output key data Bit[7:0] to /DK. +// Outputs parity bit to /DK. +// +// // Function to push a keycode onto the key queue ready for transmission. // @@ -91,6 +109,36 @@ void MZ5665::pushKeyToQueue(uint32_t key) return; } + +bool MZ5665::waitSignal(uint32_t mask, bool val, uint64_t timeout) +{ +// ESP_LOGW(MAINTAG, "waitSignal:%08x", mask); + bool result = false; + uint64_t curTime = 0LL; + + ESP_ERROR_CHECK(timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0)); + timer_start(TIMER_GROUP_0, TIMER_0); + + for(;;) + { + timer_get_counter_value(TIMER_GROUP_0, TIMER_0, &curTime); + // time out + if(curTime >= timeout) + { + break; + } + // match + if(((REG_READ(GPIO_IN_REG) & mask) != 0 ? true : false) == val) + { + result = true; + break; + } + } + + timer_pause(TIMER_GROUP_0, TIMER_0); + return result; +} + // Method to realise the MZ-5600/MZ-6500 4 wire serial protocol in order to transmit key presses to the // MZ-5600/MZ-6500. // This method uses Core 1 and it will hold it in a spinlock as necessary to ensure accurate timing. @@ -98,23 +146,31 @@ void MZ5665::pushKeyToQueue(uint32_t key) IRAM_ATTR void MZ5665::mzInterface( void * pvParameters ) { // Locals. - //t_xmitQueueMessage rcvMsg; + t_xmitQueueMessage rcvMsg; // Mask values declared as variables, let the optimiser decide wether they are constants or placed in-memory. -// uint32_t X1DATA_MASK = (1 << CONFIG_HOST_KDO0); - //uint64_t delayTimer = 0LL; - //uint64_t curTime = 0LL; - //bool bitStart = true; - //uint32_t bitCount = 0; - //enum XMITSTATE { - // FSM_IDLE = 0, - // FSM_STARTXMIT = 1, - // FSM_HEADER = 2, - // FSM_START = 3, - // FSM_DATA = 4, - // FSM_STOP = 5, - // FSM_ENDXMIT = 6 - //} state = FSM_IDLE; + uint32_t MZ56DC_MASK = (1 << CONFIG_HOST_KDB2); + uint32_t MZ56STC_MASK = (1 << CONFIG_HOST_KDB1); + uint32_t MZ56DK_MASK = (1 << CONFIG_HOST_KDB0); + uint32_t MZ56SRK_MASK = (1 << CONFIG_HOST_KDB3); + uint64_t delayTimer = 0LL; + uint64_t curTime = 0LL; + bool bitPulse = true; + uint32_t bitCount = 0; + bool bitParity = false; + enum SYNSTATE { + SYN_BOOTINIT, + SYN_IDLE, + SYN_STARTXMIT, + SYN_SENDKEY, + SYN_SENDEB, + SYN_SENDBIT, + SYN_SENDPB, + SYN_ENDXMIT, + SYN_ERRCHK, + SYN_RCVCOM, + SYN_RESET + } state = SYN_BOOTINIT; // Retrieve pointer to object in order to access data. MZ5665* pThis = (MZ5665*)pvParameters; @@ -128,175 +184,260 @@ IRAM_ATTR void MZ5665::mzInterface( void * pvParameters ) // Sign on. ESP_LOGW(MAINTAG, "Starting MZ-6500 thread."); -// // X1 data out default state is high. -// GPIO.out_w1ts = X1DATA_MASK; -// -// // Configure a timer to be used for X1 protocol spacing with 1uS resolution. The default clock source is the APB running at 80MHz. -// timer_config_t timerConfig = { -// .alarm_en = TIMER_ALARM_DIS, // No alarm, were not using interrupts as we are in a dedicated thread. -// .counter_en = TIMER_PAUSE, // Timer paused until required. -// .intr_type = TIMER_INTR_LEVEL, // No interrupts used. -// .counter_dir = TIMER_COUNT_UP, // Timing a fixed period. -// .auto_reload = TIMER_AUTORELOAD_DIS, // No need for auto reload, fixed time period. -// .divider = 80 // 1Mhz operation giving 1uS resolution. -// }; -// ESP_ERROR_CHECK(timer_init(TIMER_GROUP_0, TIMER_0, &timerConfig)); -// ESP_ERROR_CHECK(timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0)); -// -// // Permanent loop, wait for an incoming message on the key to send queue, read it then transmit to the X1, repeat! -// for(;;) -// { -// // Get the current timer value, only run the FSM when the timer is idle. -// timer_get_counter_value(TIMER_GROUP_0, TIMER_0, &curTime); -// if(curTime >= delayTimer) -// { -// // Ensure the timer is stopped. -// timer_pause(TIMER_GROUP_0, TIMER_0); -// delayTimer = 0LL; -// -// // Finite state machine to retrieve a key for transmission then serialise it according to the X1 protocol. -// switch(state) -// { -// case FSM_IDLE: -// // Yield if the suspend flag is set. -// pThis->yield(0); -// -// // Check stack space, report if it is getting low. -// if(uxTaskGetStackHighWaterMark(NULL) < 1024) -// { -// ESP_LOGW(MAINTAG, "THREAD STACK SPACE(%d)\n",uxTaskGetStackHighWaterMark(NULL)); -// } -// -// // If a new message arrives, start the serialiser to send it to the X1. -// if(xQueueReceive(xmitQueue, (void *)&rcvMsg, 0) == pdTRUE) -// { -// ESP_LOGW(MAINTAG, "Received:%08x, %d", rcvMsg.keyCode, rcvMsg.modeB); -// state = FSM_STARTXMIT; -// -// // Create, initialise and hold a spinlock so the current core is bound to this one method. -// portENTER_CRITICAL(&pThis->mzMutex); -// } -// break; -// -// case FSM_STARTXMIT: -// // Ensure all variables and states correct before entering serialisation. -// bitStart = true; -// GPIO.out_w1ts = X1DATA_MASK; -// state = FSM_HEADER; -// if(rcvMsg.modeB) -// bitCount = 24; -// else -// bitCount = 16; -// break; -// -// case FSM_HEADER: -// if(bitStart) -// { -// // Send out the header by bringing X1DATA low for 1000us then high for 700uS. -// GPIO.out_w1tc = X1DATA_MASK; -// delayTimer = pThis->mzCtrl.modeB ? 400LL : 1000LL; -// } else -// { -// // Bring high for 700us. -// GPIO.out_w1ts = X1DATA_MASK; -// delayTimer = pThis->mzCtrl.modeB ? 200LL : 700LL; -// state = FSM_DATA; // Jump past the Start Bit, I think the header is the actual start bit as there is an error in the X1 Center specs. -// } -// bitStart = !bitStart; -// break; -// -// // The original X1 Center specification shows a start bit but this doesnt seem necessary, in fact it is interpreted as a data bit, hence the -// // FSM jumps this state. -// case FSM_START: -// if(bitStart) -// { -// // Send out the start bit by bringing X1DATA low for 250us then high for 750uS. -// GPIO.out_w1tc = X1DATA_MASK; -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 250LL; -// } else -// { -// // Bring high for 750us. -// GPIO.out_w1ts = X1DATA_MASK; -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 750LL; -// state = FSM_DATA; -// } -// bitStart = !bitStart; -// break; -// -// case FSM_DATA: -// if(bitCount > 0) -// { -// if(bitStart) -// { -// // Send out the data bit by bringing X1DATA low for 250us then high for 1750uS when bit = 1 else 750uS when bit = 0. -// GPIO.out_w1tc = X1DATA_MASK; -// delayTimer = 250LL; -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 250LL; -// } else -// { -// // Bring X1DATA high... -// GPIO.out_w1ts = X1DATA_MASK; -// -// // ... Mode A 1750us as bit = 1, mode B 750uS. -// if((rcvMsg.modeB && rcvMsg.keyCode & 0x800000) || (!rcvMsg.modeB && rcvMsg.keyCode & 0x8000)) -// { -// delayTimer = pThis->mzCtrl.modeB ? 750LL : 1750LL; -// } else -// // ... Mode A 750us as bit = 0, mode B 250uS. -// { -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 750LL; -// } -// rcvMsg.keyCode = (rcvMsg.keyCode << 1); -// bitCount--; -// } -// bitStart = !bitStart; -// } else -// { -// state = FSM_STOP; -// } -// break; -// -// case FSM_STOP: -// if(bitStart) -// { -// // Send out the stop bit, same in Mode A and B, by bringing X1DATA low for 250us then high for 250uS. -// GPIO.out_w1tc = X1DATA_MASK; -// delayTimer = 250LL; -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 250LL; -// } else -// { -// // Bring high for 250us. -// GPIO.out_w1ts = X1DATA_MASK; -// delayTimer = pThis->mzCtrl.modeB ? 250LL : 250LL; -// state = FSM_ENDXMIT; -// } -// bitStart = !bitStart; -// break; -// -// case FSM_ENDXMIT: -// // End of critical timing loop, release the core. -// portEXIT_CRITICAL(&pThis->mzMutex); -// state = FSM_IDLE; -// break; -// -// } -// -// // If a new delay is requested, set the value into the timer and start. -// if(delayTimer > 0LL) -// { -// timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0LL); -// timer_start(TIMER_GROUP_0, TIMER_0); -// } -// } -// -// // Logic to feed the watchdog if needed. Watchdog disabled in menuconfig but if enabled this will need to be used. -// //TIMERG0.wdt_wprotect=TIMG_WDT_WKEY_VALUE; // write enable -// //TIMERG0.wdt_feed=1; // feed dog -// //TIMERG0.wdt_wprotect=0; // write protect -// //TIMERG1.wdt_wprotect=TIMG_WDT_WKEY_VALUE; // write enable -// //TIMERG1.wdt_feed=1; // feed dog -// //TIMERG1.wdt_wprotect=0; // write protect -// } + + // init gpio + gpio_config_t ioConf; + ioConf.intr_type = GPIO_INTR_DISABLE; + ioConf.mode = GPIO_MODE_INPUT; + ioConf.pull_down_en = GPIO_PULLDOWN_DISABLE; + ioConf.pull_up_en = GPIO_PULLUP_ENABLE; + ioConf.pin_bit_mask = (1ULL<= delayTimer) + { + // Ensure the timer is stopped. + timer_pause(TIMER_GROUP_0, TIMER_0); + delayTimer = 0LL; + + // Finite state machine to retrieve a key for transmission then serialise it according to the MZ5665 protocol. + switch(state) + { + // boot initialize + case SYN_BOOTINIT: + if((REG_READ(GPIO_IN_REG) & MZ56DC_MASK) != 0 && + (REG_READ(GPIO_IN_REG) & MZ56STC_MASK) != 0) + { + ESP_LOGW(MAINTAG, "SYN_BOOTINIT"); + state = SYN_IDLE; + } + break; + + // Waiting for key input + // DK Serach cycle. 6ms period pulse. + case SYN_IDLE: + // Yield if the suspend flag is set. + pThis->yield(0); + + // Check stack space, report if it is getting low. + if(uxTaskGetStackHighWaterMark(NULL) < 1024) + { + ESP_LOGW(MAINTAG, "THREAD STACK SPACE(%d)\n",uxTaskGetStackHighWaterMark(NULL)); + } + + // If a new message arrives, start the serialiser to send it to the X1. + if(xQueueReceive(xmitQueue, (void *)&rcvMsg, 0) == pdTRUE) + { + ESP_LOGW(MAINTAG, "Received:%08x", rcvMsg.keyCode); + if(!(rcvMsg.keyCode & 0xff000000)) + state = SYN_STARTXMIT; + + // Create, initialise and hold a spinlock so the current core is bound to this one method. + portENTER_CRITICAL(&pThis->mzMutex); + } + // pulse + else + { + if((REG_READ(GPIO_IN_REG) & MZ56DC_MASK)) { + bitPulse = !bitPulse; + if(bitPulse) { + GPIO.out_w1ts = (MZ56DK_MASK); + delayTimer = 3000LL; + } + else { + GPIO.out_w1tc = (MZ56DK_MASK); + delayTimer = 2500LL; + } + } + } + break; + + case SYN_STARTXMIT: + bitParity = false; + state = SYN_SENDKEY; + break; + + case SYN_SENDKEY: + //ESP_LOGW(MAINTAG, "SYN_SENDKEY"); + GPIO.out_w1tc = (MZ56DK_MASK); + if(pThis->waitSignal(MZ56DC_MASK, true, 500LL)) { + GPIO.out_w1tc = (MZ56SRK_MASK); + if(pThis->waitSignal(MZ56STC_MASK, false, 500LL)) { + state = SYN_SENDEB; + } + else { + // time out + GPIO.out_w1ts = (MZ56SRK_MASK); + state = SYN_RESET; + } + } + else { + // time out + state = SYN_RESET; + } + break; + + case SYN_SENDEB: + // extension bit set + //ESP_LOGW(MAINTAG, "SYN_EB"); + if(rcvMsg.keyCode & 0x100) { + GPIO.out_w1tc = MZ56DK_MASK; + } + else { + GPIO.out_w1ts = MZ56DK_MASK; + bitParity = !bitParity; + } + for(volatile uint32_t delay=0; delay < 20; delay++); + GPIO.out_w1ts = MZ56SRK_MASK; + bitCount = 8; + state = SYN_SENDBIT; + break; + + case SYN_SENDBIT: + //ESP_LOGW(MAINTAG, "SYN_SENDBIT"); + if(bitCount > 0) { + if(pThis->waitSignal(MZ56STC_MASK, true, 500LL)) { + for(volatile uint32_t delay=0; delay < 80; delay++); + // send bit + if(rcvMsg.keyCode & 0x80) { + GPIO.out_w1tc = MZ56DK_MASK; + } + else { + GPIO.out_w1ts = MZ56DK_MASK; + bitParity = !bitParity; + } + rcvMsg.keyCode = (rcvMsg.keyCode << 1); + + if(pThis->waitSignal(MZ56STC_MASK, false, 500LL)) { + bitCount--; + } + else { + // time out + state = SYN_RESET; + } + } + else { + // time out + state = SYN_RESET; + } + } + else { + // count end + state = SYN_SENDPB; + } + break; + + case SYN_SENDPB: + if(pThis->waitSignal(MZ56STC_MASK, true, 500LL)) { + for(volatile uint32_t delay=0; delay < 80; delay++); + // send parity + if(bitParity) { + GPIO.out_w1ts = MZ56DK_MASK; + } + else { + GPIO.out_w1tc = MZ56DK_MASK; + } + + if(pThis->waitSignal(MZ56STC_MASK, false, 500LL)) { + state = SYN_ENDXMIT; + } + else { + // time out + state = SYN_RESET; + } + } + else { + // time out + state = SYN_RESET; + } + break; + + case SYN_ENDXMIT: + if(pThis->waitSignal(MZ56STC_MASK, true, 500LL)) { + for(volatile uint32_t delay=0; delay < 80; delay++); + GPIO.out_w1tc = MZ56DK_MASK; + state = SYN_ERRCHK; + } + else { + // time out + state = SYN_RESET; + } + break; + + case SYN_ERRCHK: + if(pThis->waitSignal(MZ56STC_MASK, false, 500LL)) { + // DC read error check + if(pThis->waitSignal(MZ56STC_MASK, true, 500LL)) { + GPIO.out_w1ts = MZ56DK_MASK; + } + else { + // time out + state = SYN_RESET; + } + } + else { + // time out + state = SYN_RESET; + } + state = SYN_RESET; + break; + + case SYN_RCVCOM: + break; + + case SYN_RESET: + ESP_LOGW(MAINTAG, "SYN_RESET"); + GPIO.out_w1tc = (MZ56DK_MASK); + GPIO.out_w1ts = (MZ56SRK_MASK); + delayTimer = 0LL; + // End of critical timing loop, release the core. + portEXIT_CRITICAL(&pThis->mzMutex); + state = SYN_IDLE; + break; + } + + // If a new delay is requested, set the value into the timer and start. + if(delayTimer > 0LL) + { + timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0LL); + timer_start(TIMER_GROUP_0, TIMER_0); + } + } + } + } // Method to select keyboard configuration options. When a key sequence is pressed, ie. SHIFT+CTRL+ESC then the fourth simultaneous key is the required option and given to this @@ -411,8 +552,8 @@ uint32_t MZ5665::mapKey(uint16_t scanCode) // if(scanCode & PS2_BREAK) { - // if((keyCode == PS2_KEY_L_SHIFT || keyCode == PS2_KEY_R_SHIFT) && (scanCode & PS2_SHIFT) == 0) { mapped=true; this->mzCtrl.keyCtrl |= X1_CTRL_SHIFT; } - // if((keyCode == PS2_KEY_L_CTRL || keyCode == PS2_KEY_R_CTRL) && (scanCode & PS2_CTRL) == 0) { mapped=true; this->mzCtrl.keyCtrl |= X1_CTRL_CTRL; } + if((keyCode == PS2_KEY_L_SHIFT || keyCode == PS2_KEY_R_SHIFT) && (scanCode & PS2_SHIFT) == 0) { mapped=true; this->mzCtrl.keyCtrl |= MZ5665_CTRL_SHIFT; } + if((keyCode == PS2_KEY_L_CTRL || keyCode == PS2_KEY_R_CTRL) && (scanCode & PS2_CTRL) == 0) { mapped=true; this->mzCtrl.keyCtrl |= MZ5665_CTRL_CTRL; } // Any break key clears the option select flag. this->mzCtrl.optionSelect = false; @@ -421,11 +562,11 @@ uint32_t MZ5665::mapKey(uint16_t scanCode) led->setLEDMode(LED::LED_MODE_OFF, LED::LED_DUTY_CYCLE_OFF, 0, 0L, 0L); } else { - // if((keyCode == PS2_KEY_L_SHIFT || keyCode == PS2_KEY_R_SHIFT) && (scanCode & PS2_SHIFT)) { mapped=true; this->mzCtrl.keyCtrl &= ~X1_CTRL_SHIFT; } - // if((keyCode == PS2_KEY_L_CTRL || keyCode == PS2_KEY_R_CTRL) && (scanCode & PS2_CTRL)) { mapped=true; this->mzCtrl.keyCtrl &= ~X1_CTRL_CTRL; } - // if(keyCode == PS2_KEY_L_ALT) { mapped = true; this->mzCtrl.keyCtrl ^= X1_CTRL_KANA; } - // if(keyCode == PS2_KEY_R_ALT) { mapped = true; this->mzCtrl.keyCtrl ^= X1_CTRL_GRAPH; } - // if(keyCode == PS2_KEY_CAPS) { mapped = true; this->mzCtrl.keyCtrl ^= X1_CTRL_CAPS; } + if((keyCode == PS2_KEY_L_SHIFT || keyCode == PS2_KEY_R_SHIFT) && (scanCode & PS2_SHIFT)) { mapped=true; this->mzCtrl.keyCtrl &= ~MZ5665_CTRL_SHIFT; } + if((keyCode == PS2_KEY_L_CTRL || keyCode == PS2_KEY_R_CTRL) && (scanCode & PS2_CTRL)) { mapped=true; this->mzCtrl.keyCtrl &= ~MZ5665_CTRL_CTRL; } + if(keyCode == PS2_KEY_L_ALT) { mapped = true; this->mzCtrl.keyCtrl ^= MZ5665_CTRL_KANA; } + if(keyCode == PS2_KEY_R_ALT) { mapped = true; this->mzCtrl.keyCtrl ^= MZ5665_CTRL_GRAPH; } + if(keyCode == PS2_KEY_CAPS) { mapped = true; this->mzCtrl.keyCtrl ^= MZ5665_CTRL_CAPS; } // Special mapping to allow selection of keyboard options. If the user presses CTRL+SHIFT+ESC then a flag becomes active and should a fourth key be pressed before a BREAK then the fourth key is taken as an option key and processed accordingly. if(this->mzCtrl.optionSelect == true) { mapped = true; this->mzCtrl.optionSelect = false; selectOption(keyCode); } if(keyCode == PS2_KEY_ESC && (scanCode & PS2_CTRL) && (scanCode & PS2_SHIFT)) { mapped = true; this->mzCtrl.optionSelect = true; } @@ -469,8 +610,8 @@ uint32_t MZ5665::mapKey(uint16_t scanCode) if( (((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_SHIFT) == 0) && ((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_CTRL) == 0) && ((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) == 0) && ((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) == 0) && ((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GUI) == 0) && ((mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_FUNC) == 0)) || ((scanCode & PS2_SHIFT) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_SHIFT) != 0) || ((scanCode & PS2_CTRL) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_CTRL) != 0) || - // ((this->mzCtrl.keyCtrl & X1_CTRL_KANA) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) != 0) || - // ((this->mzCtrl.keyCtrl & X1_CTRL_GRAPH) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) != 0) || + ((this->mzCtrl.keyCtrl & MZ5665_CTRL_KANA) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) != 0) || + ((this->mzCtrl.keyCtrl & MZ5665_CTRL_GRAPH) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) != 0) || ((scanCode & PS2_GUI) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GUI) != 0) || ((scanCode & PS2_FUNCTION) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_FUNC) != 0) ) { @@ -478,8 +619,8 @@ uint32_t MZ5665::mapKey(uint16_t scanCode) // Exact entry match, data + control key? On an exact match we only process the first key. On a data only match we fall through to include additional data and control key matches to allow for un-mapped key combinations, ie. Japanese characters. matchExact = (((scanCode & PS2_SHIFT) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_SHIFT) != 0) || ((scanCode & PS2_SHIFT) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_SHIFT) == 0)) && (((scanCode & PS2_CTRL) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_CTRL) != 0) || ((scanCode & PS2_CTRL) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_CTRL) == 0)) && - // (((this->mzCtrl.keyCtrl & X1_CTRL_KANA) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) != 0) || ((this->mzCtrl.keyCtrl & X1_CTRL_KANA) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) == 0)) && - // (((this->mzCtrl.keyCtrl & X1_CTRL_GRAPH) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) != 0) || ((this->mzCtrl.keyCtrl & X1_CTRL_GRAPH) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) == 0)) && + (((this->mzCtrl.keyCtrl & MZ5665_CTRL_KANA) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) != 0) || ((this->mzCtrl.keyCtrl & MZ5665_CTRL_KANA) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_KANA) == 0)) && + (((this->mzCtrl.keyCtrl & MZ5665_CTRL_GRAPH) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) != 0) || ((this->mzCtrl.keyCtrl & MZ5665_CTRL_GRAPH) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GRAPH) == 0)) && (((scanCode & PS2_GUI) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GUI) != 0) || ((scanCode & PS2_GUI) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_GUI) == 0)) && (((scanCode & PS2_FUNCTION) && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_FUNC) != 0) || ((scanCode & PS2_FUNCTION) == 0 && (mzCtrl.kme[idx].ps2Ctrl & PS2CTRL_FUNC) == 0)) ? true : false; @@ -496,26 +637,13 @@ uint32_t MZ5665::mapKey(uint16_t scanCode) vTaskDelay(100); } - // Mode A sends a release with 0x00. - // if(this->mzCtrl.modeB == false) - // { - // mappedKey = (0xFF << 8) | 0x00; - // mapped = true; - // // vTaskDelay(300); - // } else - // if(this->mzCtrl.modeB == true) - // { - // Clear only the bits relevant to the released key. - // mappedKey &= ((mzCtrl.kme[idx].x1Ctrl << 16) | (mzCtrl.kme[idx].x1Key2 << 8) | mzCtrl.kme[idx].x1Key); - // } + mappedKey = 0xff000000 | (mzCtrl.kme[idx].mzCtrl << 16) | (mzCtrl.kme[idx].mzExt << 8) | (mzCtrl.kme[idx].mzKey); + mapped = true; + } else { - // Mode A return the key in the table, mode B OR the key to build up a final map. - // if(this->mzCtrl.modeB == false) - // mappedKey = ((mzCtrl.kme[idx].x1Ctrl & this->mzCtrl.keyCtrl) << 8) | mzCtrl.kme[idx].x1Key; - // else - // mappedKey |= ((mzCtrl.kme[idx].x1Ctrl << 16) | (mzCtrl.kme[idx].x1Key2 << 8) | mzCtrl.kme[idx].x1Key); - // mapped = true; + mappedKey = (mzCtrl.kme[idx].mzCtrl << 16) | (mzCtrl.kme[idx].mzExt << 8) | (mzCtrl.kme[idx].mzKey); + mapped = true; } } } @@ -575,6 +703,7 @@ IRAM_ATTR void MZ5665::hidInterface( void * pvParameters ) // Map the PS/2 key to an MZ5665 CTRL + KEY mzKey = pThis->mapKey(scanCode); if(mzKey != 0L) { pThis->pushKeyToQueue(mzKey); } + ESP_LOGW(MAPKEYTAG, "MZCODE:%04x",mzKey); // Toggle LED to indicate data flow. if((scanCode & PS2_BREAK) == 0) diff --git a/main/PS2KeyAdvanced.cpp b/main/PS2KeyAdvanced.cpp index a220349..45eb548 100644 --- a/main/PS2KeyAdvanced.cpp +++ b/main/PS2KeyAdvanced.cpp @@ -222,7 +222,11 @@ if( digitalRead( PS2_IrqPin ) ) return; #endif if( _ps2mode & _TX_MODE ) +{ + // Added by NoriQ + //delayMicroseconds(10); send_bit( ); +} else { static uint32_t prev_ms = 0; diff --git a/main/SharpKey.cpp b/main/SharpKey.cpp index cae1539..281fb55 100644 --- a/main/SharpKey.cpp +++ b/main/SharpKey.cpp @@ -51,6 +51,7 @@ // This is necessary due to shared antenna in the ESP32 and also clashes // in the IDF library stack. // v1.05 May 2023 - Fine tune the PC-9801/X68000 detection algorithm. +// v1.06 Feb 2024 - MZ-5500/5600/6500 updates by NoriQ. // // Notes: See Makefile to enable/disable conditional components // @@ -618,11 +619,19 @@ uint32_t getHostType(bool eFuseInvalid, t_EFUSE sharpkeyEfuses) // gpioIN, tMPXI, tRTSNI, tKDB0, tKDB1, tKDB2, tKDB3, tKDI4, cntCtrl); // Check for PC-9801 - KD4 = low, MPX = low, RTSN = high - if(tKDI4 == 0 && tMPXI == 0 && tRTSNI == 1 && tKDB0 == 1 && tKDB3 == 1 && - eFuseInvalid == false && (sharpkeyEfuses.disableRestrictions == true || sharpkeyEfuses.enableMouse == true)) + // KDB0 = low, KDB3 = high, KDB2 = high + if(tKDI4 == 0 && tMPXI == 0 && tRTSNI == 1 && tKDB0 == 1 && tKDB3 == 1 && tKDB2 == 1 && + eFuseInvalid == false && (sharpkeyEfuses.disableRestrictions == true || sharpkeyEfuses.enablePC9801 == true)) { ifMode = 9801; } + // Check for MZ-5500/6500 - KD4 = low, MPX = low, RTSN = high + // KDB0 = low, KDB3 = high, KDB2 = low + if(tKDI4 == 0 && tMPXI == 0 && tRTSNI == 1 && tKDB0 == 1 && tKDB3 == 1 && tKDB2 == 0 && + eFuseInvalid == false && (sharpkeyEfuses.disableRestrictions == true || sharpkeyEfuses.enableMZ5665 == true)) + { + ifMode = 5600; + } // Check for X68000 - KD4 = low, MPX = low, RTSN = high else if(cntCtrl <= 1 && tMPXI == 0 && tRTSNI == 1 && eFuseInvalid == false && (sharpkeyEfuses.disableRestrictions == true || sharpkeyEfuses.enableX68000 == true)) diff --git a/main/include/MZ5665.h b/main/include/MZ5665.h index 1fa6bb9..f180a26 100644 --- a/main/include/MZ5665.h +++ b/main/include/MZ5665.h @@ -11,6 +11,7 @@ // History: Apr 2022 - Initial write. // v1.01 Jun 2022 - Updates to reflect changes realised in other modules due to addition of // bluetooth and suspend logic due to NVS issues using both cores. +// v1.02 Feb 2024 - Updated to actually work by NoriQ. // // Notes: See Makefile to enable/disable conditional components // @@ -49,7 +50,7 @@ class MZ5665 : public KeyInterface { #define NUMELEM(a) (sizeof(a)/sizeof(a[0])) // Constants. - #define MZ5665IF_VERSION 1.01 + #define MZ5665IF_VERSION 1.02 #define MZ5665IF_KEYMAP_FILE "MZ5665_KeyMap.BIN" #define MAX_MZ5665_XMIT_KEY_BUF 16 #define PS2TBL_MZ5665_MAXROWS 349 @@ -62,14 +63,18 @@ class MZ5665 : public KeyInterface { #define MZ5665_CTRL_CTRL ((unsigned char) (1 << 0)) // Special key definition. - #define MZ5665_KEY_UP 0x1E // ↑ - #define MZ5665_KEY_DOWN 0x1F // ↓ - #define MZ5665_KEY_LEFT 0x1D // ← - #define MZ5665_KEY_RIGHT 0x1C // → → - #define MZ5665_KEY_INS 0x12 // INS - #define MZ5665_KEY_DEL 0x08 // DEL - #define MZ5665_KEY_CLR 0x0C // CLR - #define MZ5665_KEY_HOME 0x0B // HOME + #define MZ5665_KEY_UP 0x1C // ↑ + #define MZ5665_KEY_DOWN 0x1D // ↓ + #define MZ5665_KEY_LEFT 0x1F // ← + #define MZ5665_KEY_RIGHT 0x1E // → + #define MZ5665_KEY_INS 0x0B // INS + #define MZ5665_KEY_DEL 0x7F // DEL + #define MZ5665_KEY_CLR 0x18 // CLR + #define MZ5665_KEY_HOME 0x8F // HOME + #define MZ5665_KEY_ARGO 0x14 // ARGO + #define MZ5665_KEY_KANA 0x17 // KANA + #define MZ5665_KEY_GRAPH 0x16 // GRAPH + #define MZ5665_KEY_BREAK 0x06 // Break // PS2 Flag definitions. #define PS2CTRL_NONE 0x00 // No keys active = 0 @@ -187,6 +192,7 @@ class MZ5665 : public KeyInterface { bool saveKeyMap(void); void init(uint32_t ifMode, NVS *hdlNVS, LED *hdlLED, HID *hdlHID); void init(NVS *hdlNVS, HID *hdlHID); + bool waitSignal(uint32_t mask, bool val, uint64_t timeout); // // Overload the base yield method to include suspension of the PS/2 Keyboard interface. This interface uses interrupts which are not mutex protected and clash with the // // WiFi API methods. @@ -218,6 +224,7 @@ class MZ5665 : public KeyInterface { uint8_t keyboardModel; uint8_t machine; uint8_t mzKey; + uint8_t mzExt; uint8_t mzCtrl; } t_keyMapEntry; @@ -270,304 +277,328 @@ class MZ5665 : public KeyInterface { { // HELP // COPY - ////PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). - //{ PS2_KEY_F1, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'v', 0x00, }, // SHIFT+F1 - //{ PS2_KEY_F2, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'w', 0x00, }, // SHIFT+F2 - //{ PS2_KEY_F3, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'x', 0x00, }, // SHIFT+F3 - //{ PS2_KEY_F4, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'y', 0x00, }, // SHIFT+F4 - //{ PS2_KEY_F5, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'z', 0x00, }, // SHIFT+F5 - //{ PS2_KEY_F1, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'q', 0x00, }, // F1 - //{ PS2_KEY_F2, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'r', 0x00, }, // F2 - //{ PS2_KEY_F3, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 's', 0x00, }, // F3 - //{ PS2_KEY_F4, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 't', 0x00, }, // F4 - //{ PS2_KEY_F5, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'u', 0x00, }, // F5 - //{ PS2_KEY_F6, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xEC, 0x00, }, // F6 - //{ PS2_KEY_F7, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xEB, 0x00, }, // F7 - //{ PS2_KEY_F8, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xE2, 0x00, }, // F8 - //{ PS2_KEY_F9, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xE1, 0x00, }, // F9 - //{ PS2_KEY_F10, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // XFER - //{ PS2_KEY_F11, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xFE, 0x00, }, // HELP - //{ PS2_KEY_F12, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // COPY - //{ PS2_KEY_TAB, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x09, 0x00, }, // TAB + ////PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). + //{ PS2_KEY_F1, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'v', 0x00, 0x00, }, // SHIFT+F1 + //{ PS2_KEY_F2, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'w', 0x00, 0x00, }, // SHIFT+F2 + //{ PS2_KEY_F3, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'x', 0x00, 0x00, }, // SHIFT+F3 + //{ PS2_KEY_F4, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'y', 0x00, 0x00, }, // SHIFT+F4 + //{ PS2_KEY_F5, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 'z', 0x00, 0x00, }, // SHIFT+F5 + //{ PS2_KEY_F1, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'q', 0x00, 0x00, }, // F1 + //{ PS2_KEY_F2, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'r', 0x00, 0x00, }, // F2 + //{ PS2_KEY_F3, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 's', 0x00, 0x00, }, // F3 + //{ PS2_KEY_F4, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 't', 0x00, 0x00, }, // F4 + //{ PS2_KEY_F5, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 'u', 0x00, 0x00, }, // F5 + //{ PS2_KEY_F6, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xEC, 0x00, 0x00, }, // F6 + //{ PS2_KEY_F7, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xEB, 0x00, 0x00, }, // F7 + //{ PS2_KEY_F8, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xE2, 0x00, 0x00, }, // F8 + //{ PS2_KEY_F9, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xE1, 0x00, 0x00, }, // F9 + //{ PS2_KEY_F10, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // XFER + //{ PS2_KEY_F11, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0xFE, 0x00, 0x00, }, // HELP + //{ PS2_KEY_F12, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // COPY + //{ PS2_KEY_TAB, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x09, 0x00, 0x00, }, // TAB // Numeric keys. - { PS2_KEY_0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '0', 0x00, }, // 0 - { PS2_KEY_1, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '1', 0x00, }, // 1 - { PS2_KEY_2, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '2', 0x00, }, // 2 - { PS2_KEY_3, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '3', 0x00, }, // 3 - { PS2_KEY_4, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '4', 0x00, }, // 4 - { PS2_KEY_5, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '5', 0x00, }, // 5 - { PS2_KEY_6, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '6', 0x00, }, // 6 - { PS2_KEY_7, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '7', 0x00, }, // 7 - { PS2_KEY_8, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '8', 0x00, }, // 8 - { PS2_KEY_9, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '9', 0x00, }, // 9 + { PS2_KEY_0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '0', 0x00, 0x00, }, // 0 + { PS2_KEY_1, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '1', 0x00, 0x00, }, // 1 + { PS2_KEY_2, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '2', 0x00, 0x00, }, // 2 + { PS2_KEY_3, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '3', 0x00, 0x00, }, // 3 + { PS2_KEY_4, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '4', 0x00, 0x00, }, // 4 + { PS2_KEY_5, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '5', 0x00, 0x00, }, // 5 + { PS2_KEY_6, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '6', 0x00, 0x00, }, // 6 + { PS2_KEY_7, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '7', 0x00, 0x00, }, // 7 + { PS2_KEY_8, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '8', 0x00, 0x00, }, // 8 + { PS2_KEY_9, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '9', 0x00, 0x00, }, // 9 // Punctuation keys. - { PS2_KEY_0, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, ')', 0x00, }, // Close Right Bracket ) - { PS2_KEY_1, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '!', 0x00, }, // Exclamation - { PS2_KEY_2, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '"', 0x00, }, // Double quote. - { PS2_KEY_3, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0x23, 0x00, }, // Pound Sign -> Hash - { PS2_KEY_4, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '$', 0x00, }, // Dollar - { PS2_KEY_5, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '%', 0x00, }, // Percent - { PS2_KEY_6, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '^', 0x00, }, // Kappa - { PS2_KEY_7, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '&', 0x00, }, // Ampersand - { PS2_KEY_8, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '*', 0x00, }, // Star - { PS2_KEY_9, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '(', 0x00, }, // Open Left Bracket ( + { PS2_KEY_0, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, ')', 0x00, 0x00, }, // Close Right Bracket ) + { PS2_KEY_1, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '!', 0x00, 0x00, }, // Exclamation + { PS2_KEY_2, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '"', 0x00, 0x00, }, // Double quote. + { PS2_KEY_3, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0x23, 0x00, 0x00, }, // Pound Sign -> Hash + { PS2_KEY_4, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '$', 0x00, 0x00, }, // Dollar + { PS2_KEY_5, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '%', 0x00, 0x00, }, // Percent + { PS2_KEY_6, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '^', 0x00, 0x00, }, // Kappa + { PS2_KEY_7, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '&', 0x00, 0x00, }, // Ampersand + { PS2_KEY_8, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '*', 0x00, 0x00, }, // Star + { PS2_KEY_9, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '(', 0x00, 0x00, }, // Open Left Bracket ( // ALPHA keys, lower and uppercase. - //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). - { PS2_KEY_A, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'a', 0x00, }, // a - { PS2_KEY_A, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'A', 0x00, }, // A - { PS2_KEY_B, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'b', 0x00, }, // b - { PS2_KEY_B, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'B', 0x00, }, // B - { PS2_KEY_C, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'c', 0x00, }, // c - { PS2_KEY_C, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'C', 0x00, }, // C - { PS2_KEY_D, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'd', 0x00, }, // d - { PS2_KEY_D, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'D', 0x00, }, // D - { PS2_KEY_E, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'e', 0x00, }, // e - { PS2_KEY_E, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'E', 0x00, }, // E - { PS2_KEY_F, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'f', 0x00, }, // f - { PS2_KEY_F, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'F', 0x00, }, // F - { PS2_KEY_G, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'g', 0x00, }, // g - { PS2_KEY_G, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'G', 0x00, }, // G - { PS2_KEY_H, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'h', 0x00, }, // h - { PS2_KEY_H, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'H', 0x00, }, // H - { PS2_KEY_I, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'i', 0x00, }, // i - { PS2_KEY_I, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'I', 0x00, }, // I - { PS2_KEY_J, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'j', 0x00, }, // j - { PS2_KEY_J, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'J', 0x00, }, // J - { PS2_KEY_K, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'k', 0x00, }, // k - { PS2_KEY_K, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'K', 0x00, }, // K - { PS2_KEY_L, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'l', 0x00, }, // l - { PS2_KEY_L, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'L', 0x00, }, // L - { PS2_KEY_M, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'm', 0x00, }, // m - { PS2_KEY_M, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'M', 0x00, }, // M - { PS2_KEY_N, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'n', 0x00, }, // n - { PS2_KEY_N, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'N', 0x00, }, // N - { PS2_KEY_O, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'o', 0x00, }, // o - { PS2_KEY_O, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'O', 0x00, }, // O - { PS2_KEY_P, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'p', 0x00, }, // p - { PS2_KEY_P, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'P', 0x00, }, // P - { PS2_KEY_Q, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'q', 0x00, }, // q - { PS2_KEY_Q, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Q', 0x00, }, // Q - { PS2_KEY_R, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'r', 0x00, }, // r - { PS2_KEY_R, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'R', 0x00, }, // R - { PS2_KEY_S, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 's', 0x00, }, // s - { PS2_KEY_S, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'S', 0x00, }, // S - { PS2_KEY_T, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 't', 0x00, }, // t - { PS2_KEY_T, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'T', 0x00, }, // T - { PS2_KEY_U, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'u', 0x00, }, // u - { PS2_KEY_U, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'U', 0x00, }, // U - { PS2_KEY_V, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'v', 0x00, }, // v - { PS2_KEY_V, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'V', 0x00, }, // V - { PS2_KEY_W, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'w', 0x00, }, // w - { PS2_KEY_W, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'W', 0x00, }, // W - { PS2_KEY_X, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'x', 0x00, }, // x - { PS2_KEY_X, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'X', 0x00, }, // X - { PS2_KEY_Y, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'y', 0x00, }, // y - { PS2_KEY_Y, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Y', 0x00, }, // Y - { PS2_KEY_Z, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'z', 0x00, }, // z - { PS2_KEY_Z, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Z', 0x00, }, // Z + //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). + { PS2_KEY_A, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'a', 0x00, 0x00, }, // a + { PS2_KEY_A, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'A', 0x00, 0x00, }, // A + { PS2_KEY_B, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'b', 0x00, 0x00, }, // b + { PS2_KEY_B, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'B', 0x00, 0x00, }, // B + { PS2_KEY_C, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'c', 0x00, 0x00, }, // c + { PS2_KEY_C, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'C', 0x00, 0x00, }, // C + { PS2_KEY_D, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'd', 0x00, 0x00, }, // d + { PS2_KEY_D, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'D', 0x00, 0x00, }, // D + { PS2_KEY_E, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'e', 0x00, 0x00, }, // e + { PS2_KEY_E, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'E', 0x00, 0x00, }, // E + { PS2_KEY_F, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'f', 0x00, 0x00, }, // f + { PS2_KEY_F, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'F', 0x00, 0x00, }, // F + { PS2_KEY_G, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'g', 0x00, 0x00, }, // g + { PS2_KEY_G, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'G', 0x00, 0x00, }, // G + { PS2_KEY_H, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'h', 0x00, 0x00, }, // h + { PS2_KEY_H, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'H', 0x00, 0x00, }, // H + { PS2_KEY_I, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'i', 0x00, 0x00, }, // i + { PS2_KEY_I, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'I', 0x00, 0x00, }, // I + { PS2_KEY_J, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'j', 0x00, 0x00, }, // j + { PS2_KEY_J, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'J', 0x00, 0x00, }, // J + { PS2_KEY_K, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'k', 0x00, 0x00, }, // k + { PS2_KEY_K, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'K', 0x00, 0x00, }, // K + { PS2_KEY_L, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'l', 0x00, 0x00, }, // l + { PS2_KEY_L, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'L', 0x00, 0x00, }, // L + { PS2_KEY_M, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'm', 0x00, 0x00, }, // m + { PS2_KEY_M, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'M', 0x00, 0x00, }, // M + { PS2_KEY_N, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'n', 0x00, 0x00, }, // n + { PS2_KEY_N, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'N', 0x00, 0x00, }, // N + { PS2_KEY_O, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'o', 0x00, 0x00, }, // o + { PS2_KEY_O, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'O', 0x00, 0x00, }, // O + { PS2_KEY_P, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'p', 0x00, 0x00, }, // p + { PS2_KEY_P, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'P', 0x00, 0x00, }, // P + { PS2_KEY_Q, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'q', 0x00, 0x00, }, // q + { PS2_KEY_Q, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Q', 0x00, 0x00, }, // Q + { PS2_KEY_R, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'r', 0x00, 0x00, }, // r + { PS2_KEY_R, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'R', 0x00, 0x00, }, // R + { PS2_KEY_S, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 's', 0x00, 0x00, }, // s + { PS2_KEY_S, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'S', 0x00, 0x00, }, // S + { PS2_KEY_T, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 't', 0x00, 0x00, }, // t + { PS2_KEY_T, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'T', 0x00, 0x00, }, // T + { PS2_KEY_U, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'u', 0x00, 0x00, }, // u + { PS2_KEY_U, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'U', 0x00, 0x00, }, // U + { PS2_KEY_V, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'v', 0x00, 0x00, }, // v + { PS2_KEY_V, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'V', 0x00, 0x00, }, // V + { PS2_KEY_W, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'w', 0x00, 0x00, }, // w + { PS2_KEY_W, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'W', 0x00, 0x00, }, // W + { PS2_KEY_X, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'x', 0x00, 0x00, }, // x + { PS2_KEY_X, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'X', 0x00, 0x00, }, // X + { PS2_KEY_Y, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'y', 0x00, 0x00, }, // y + { PS2_KEY_Y, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Y', 0x00, 0x00, }, // Y + { PS2_KEY_Z, PS2CTRL_SHIFT | PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'z', 0x00, 0x00, }, // z + { PS2_KEY_Z, PS2CTRL_CAPS, KEYMAP_STANDARD, MZ5665_ALL, 'Z', 0x00, 0x00, }, // Z - //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). - { PS2_KEY_SPACE, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, }, // Space - { PS2_KEY_COMMA, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '<', 0x00, }, // Less Than < - { PS2_KEY_COMMA, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ',', 0x00, }, // Comma , - { PS2_KEY_SEMI, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, ':', 0x00, }, // Colon : - { PS2_KEY_SEMI, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ';', 0x00, }, // Semi-Colon ; - { PS2_KEY_DOT, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '>', 0x00, }, // Greater Than > - { PS2_KEY_DOT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '.', 0x00, }, // Full stop . - { PS2_KEY_DIV, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '?', 0x00, }, // Question ? - { PS2_KEY_DIV, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '/', 0x00, }, // Divide / - { PS2_KEY_MINUS, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '_', 0x00, }, // Underscore - { PS2_KEY_MINUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '-', 0x00, }, - { PS2_KEY_APOS, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '@', 0x00, }, // At @ - { PS2_KEY_APOS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '\'', 0x00, }, // Single quote ' - { PS2_KEY_OPEN_SQ, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '{', 0x00, }, // Open Left Brace { - { PS2_KEY_OPEN_SQ, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '[', 0x00, }, // Open Left Square Bracket [ - { PS2_KEY_EQUAL, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '+', 0x00, }, // Plus + - { PS2_KEY_EQUAL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '=', 0x00, }, // Equal = - { PS2_KEY_CAPS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, }, // LOCK - { PS2_KEY_ENTER, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x0D, 0x00, }, // ENTER/RETURN - { PS2_KEY_CLOSE_SQ, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '}', 0x00, }, // Close Right Brace } - { PS2_KEY_CLOSE_SQ, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ']', 0x00, }, // Close Right Square Bracket ] - { PS2_KEY_BACK, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '|', 0x00, }, // - { PS2_KEY_BACK, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '\\', 0x00, }, // Back slash maps to Yen - { PS2_KEY_BTICK, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '`', 0x00, }, // Pipe - { PS2_KEY_BTICK, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '|', 0x00, }, // Back tick ` - { PS2_KEY_HASH, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '~', 0x00, }, // Tilde has no mapping. - { PS2_KEY_HASH, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '#', 0x00, }, // Hash - { PS2_KEY_BS, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x08, 0x00, }, // Backspace - { PS2_KEY_ESC, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x1B, 0x00, }, // ESCape - { PS2_KEY_SCROLL, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, }, // Not assigned. - { PS2_KEY_INSERT, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_INS, 0x00, }, // INSERT - { PS2_KEY_HOME, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_CLR, 0x00, }, // CLR - { PS2_KEY_HOME, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_HOME, 0x00, }, // HOME - { PS2_KEY_DELETE, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_DEL, 0x00, }, // DELETE - { PS2_KEY_END, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x11, 0x00, }, // END - { PS2_KEY_PGUP, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x0E, 0x00, }, // Roll Up. - { PS2_KEY_PGDN, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x0F, 0x00, }, // Roll Down - { PS2_KEY_UP_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_UP, 0x00, }, // Up Arrow - { PS2_KEY_L_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_LEFT, 0x00, }, // Left Arrow - { PS2_KEY_DN_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_DOWN, 0x00, }, // Down Arrow - { PS2_KEY_R_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_RIGHT, 0x00, }, // Right Arrow - { PS2_KEY_NUM, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // Not assigned. + //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). + { PS2_KEY_SPACE, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, 0x00, }, // Space + { PS2_KEY_COMMA, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '<', 0x00, 0x00, }, // Less Than < + { PS2_KEY_COMMA, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ',', 0x00, 0x00, }, // Comma , + { PS2_KEY_SEMI, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, ':', 0x00, 0x00, }, // Colon : + { PS2_KEY_SEMI, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ';', 0x00, 0x00, }, // Semi-Colon ; + { PS2_KEY_DOT, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '>', 0x00, 0x00, }, // Greater Than > + { PS2_KEY_DOT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '.', 0x00, 0x00, }, // Full stop . + { PS2_KEY_DIV, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '?', 0x00, 0x00, }, // Question ? + { PS2_KEY_DIV, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '/', 0x00, 0x00, }, // Divide / + { PS2_KEY_MINUS, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '_', 0x00, 0x00, }, // Underscore + { PS2_KEY_MINUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '-', 0x00, 0x00, }, + { PS2_KEY_APOS, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '@', 0x00, 0x00, }, // At @ + { PS2_KEY_APOS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '\'', 0x00, 0x00, }, // Single quote 'x00 + { PS2_KEY_OPEN_SQ, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '{', 0x00, 0x00, }, // Open Left Brace { + { PS2_KEY_OPEN_SQ, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '[', 0x00, 0x00, }, // Open Left Square Bracket [ + { PS2_KEY_EQUAL, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '+', 0x00, 0x00, }, // Plus + + { PS2_KEY_EQUAL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '=', 0x00, 0x00, }, // Equal = + { PS2_KEY_CAPS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, 0x00, }, // LOCK + { PS2_KEY_ENTER, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x0D, 0x00, 0x00, }, // ENTER/RETURN + { PS2_KEY_CLOSE_SQ, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '}', 0x00, 0x00, }, // Close Right Brace } + { PS2_KEY_CLOSE_SQ, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ']', 0x00, 0x00, }, // Close Right Square Bracket ] + { PS2_KEY_BACK, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '|', 0x00, 0x00, }, // + { PS2_KEY_BACK, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '\\', 0x00, 0x00, }, // Back slash maps to Yen + { PS2_KEY_BTICK, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '`', 0x00, 0x00, }, // Pipe + { PS2_KEY_BTICK, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '|', 0x00, 0x00, }, // Back tick ` + { PS2_KEY_HASH, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, '~', 0x00, 0x00, }, // Tilde has no mapping. + { PS2_KEY_HASH, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '#', 0x00, 0x00, }, // Hash + { PS2_KEY_BS, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x08, 0x00, 0x00, }, // Backspace + { PS2_KEY_ESC, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x1B, 0x00, 0x00, }, // ESCape + { PS2_KEY_SCROLL, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, ' ', 0x00, 0x00, }, // Not assigned. + { PS2_KEY_INSERT, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_INS,0x00, 0x00, }, // INSERT + { PS2_KEY_HOME, PS2CTRL_FUNC | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_CLR,0x00, 0x00, }, // CLR + { PS2_KEY_HOME, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_HOME,0x00, 0x00, }, // HOME + { PS2_KEY_DELETE, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_DEL,0x00, 0x00, }, // DELETE + { PS2_KEY_END, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x18, 0x00, 0x00, }, // END + { PS2_KEY_PGUP, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x80, 0x00, 0x00, }, // Roll Up. + { PS2_KEY_PGDN, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x90, 0x00, 0x00, }, // Roll Down + { PS2_KEY_UP_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_UP, 0x00, 0x00, }, // Up Arrow + { PS2_KEY_L_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_LEFT,0x00, 0x00, }, // Left Arrow + { PS2_KEY_DN_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_DOWN,0x00, 0x00, }, // Down Arrow + { PS2_KEY_R_ARROW, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, MZ5665_KEY_RIGHT,0x00, 0x00, }, // Right Arrow + { PS2_KEY_NUM, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // Not assigned. // GRPH (Alt Gr) - //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). - { PS2_KEY_0, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xFA, 0x00, }, // GRPH+0 - { PS2_KEY_1, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF1, 0x00, }, // GRPH+1 - { PS2_KEY_2, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF2, 0x00, }, // GRPH+2 - { PS2_KEY_3, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF3, 0x00, }, // GRPH+3 - { PS2_KEY_4, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF4, 0x00, }, // GRPH+4 - { PS2_KEY_5, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF5, 0x00, }, // GRPH+5 - { PS2_KEY_6, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF6, 0x00, }, // GRPH+6 - { PS2_KEY_7, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF7, 0x00, }, // GRPH+7 - { PS2_KEY_8, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF8, 0x00, }, // GRPH+8 - { PS2_KEY_9, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF9, 0x00, }, // GRPH+9 - { PS2_KEY_A, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x7F, 0x00, }, // GRPH+A - { PS2_KEY_B, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x84, 0x00, }, // GRPH+B - { PS2_KEY_C, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x82, 0x00, }, // GRPH+C - { PS2_KEY_D, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xEA, 0x00, }, // GRPH+D - { PS2_KEY_E, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE2, 0x00, }, // GRPH+E - { PS2_KEY_F, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xEB, 0x00, }, // GRPH+F - { PS2_KEY_G, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xEC, 0x00, }, // GRPH+G - { PS2_KEY_H, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xED, 0x00, }, // GRPH+H - { PS2_KEY_I, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE7, 0x00, }, // GRPH+I - { PS2_KEY_J, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xEE, 0x00, }, // GRPH+J - { PS2_KEY_K, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xEF, 0x00, }, // GRPH+K - { PS2_KEY_L, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8E, 0x00, }, // GRPH+L - { PS2_KEY_M, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x86, 0x00, }, // GRPH+M - { PS2_KEY_N, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x85, 0x00, }, // GRPH+N - { PS2_KEY_O, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF0, 0x00, }, // GRPH+O - { PS2_KEY_P, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8D, 0x00, }, // GRPH+P - { PS2_KEY_Q, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE0, 0x00, }, // GRPH+Q - { PS2_KEY_R, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE3, 0x00, }, // GRPH+R - { PS2_KEY_S, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE9, 0x00, }, // GRPH+S - { PS2_KEY_T, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE4, 0x00, }, // GRPH+T - { PS2_KEY_U, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE6, 0x00, }, // GRPH+U - { PS2_KEY_V, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x83, 0x00, }, // GRPH+V - { PS2_KEY_W, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE1, 0x00, }, // GRPH+W - { PS2_KEY_X, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x81, 0x00, }, // GRPH+X - { PS2_KEY_Y, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE5, 0x00, }, // GRPH+Y - { PS2_KEY_Z, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x80, 0x00, }, // GRPH+Z - { PS2_KEY_COMMA, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x87, 0x00, }, // GRPH+, - { PS2_KEY_SEMI, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x89, 0x00, }, // GRPH+; - { PS2_KEY_DOT, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x88, 0x00, }, // GRPH+. - { PS2_KEY_DIV, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xFE, 0x00, }, // GRPH+/ - { PS2_KEY_MINUS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8C, 0x00, }, // GRPH+- - { PS2_KEY_APOS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8A, 0x00, }, // GRPH+' - { PS2_KEY_OPEN_SQ, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xFC, 0x00, }, // GRPH+[ - { PS2_KEY_CLOSE_SQ, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xE8, 0x00, }, // GRPH+] - { PS2_KEY_BACK, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x90, 0x00, }, // GRPH+Backslash - { PS2_KEY_KP0, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8F, 0x00, }, // GRPH+Keypad 0 - { PS2_KEY_KP1, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x99, 0x00, }, // GRPH+Keypad 1 - { PS2_KEY_KP2, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x92, 0x00, }, // GRPH+Keypad 2 - { PS2_KEY_KP3, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x98, 0x00, }, // GRPH+Keypad 3 - { PS2_KEY_KP4, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x95, 0x00, }, // GRPH+Keypad 4 - { PS2_KEY_KP5, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x96, 0x00, }, // GRPH+Keypad 5 - { PS2_KEY_KP6, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x94, 0x00, }, // GRPH+Keypad 6 - { PS2_KEY_KP7, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9A, 0x00, }, // GRPH+Keypad 7 - { PS2_KEY_KP8, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x93, 0x00, }, // GRPH+Keypad 8 - { PS2_KEY_KP9, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x97, 0x00, }, // GRPH+Keypad 9 - { PS2_KEY_KP_DOT, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x91, 0x00, }, // GRPH+Keypad Full stop . - { PS2_KEY_KP_PLUS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9D, 0x00, }, // GRPH+Keypad Plus + - { PS2_KEY_KP_MINUS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9C, 0x00, }, // GRPH+Keypad Minus - - { PS2_KEY_KP_TIMES, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9B, 0x00, }, // GRPH+Keypad Times * - { PS2_KEY_KP_DIV, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9E, 0x00, }, // GRPH+Keypad Divide / - { PS2_KEY_KP_ENTER, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x90, 0x00, }, // GRPH+Keypad Ebter / + //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). + //{ PS2_KEY_0, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xFA, 0x00, 0x00, }, // GRPH+0 + //{ PS2_KEY_1, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF1, 0x00, 0x00, }, // GRPH+1 + //{ PS2_KEY_2, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF2, 0x00, 0x00, }, // GRPH+2 + //{ PS2_KEY_3, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF3, 0x00, 0x00, }, // GRPH+3 + //{ PS2_KEY_4, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF4, 0x00, 0x00, }, // GRPH+4 + //{ PS2_KEY_5, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF5, 0x00, 0x00, }, // GRPH+5 + //{ PS2_KEY_6, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF6, 0x00, 0x00, }, // GRPH+6 + //{ PS2_KEY_7, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF7, 0x00, 0x00, }, // GRPH+7 + //{ PS2_KEY_8, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF8, 0x00, 0x00, }, // GRPH+8 + //{ PS2_KEY_9, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0xF9, 0x00, 0x00, }, // GRPH+9 + { PS2_KEY_A, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x81, 0x01, 0x00, }, // GRPH+A + { PS2_KEY_B, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x82, 0x01, 0x00, }, // GRPH+B + { PS2_KEY_C, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x83, 0x01, 0x00, }, // GRPH+C + { PS2_KEY_D, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x84, 0x01, 0x00, }, // GRPH+D + { PS2_KEY_E, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x85, 0x01, 0x00, }, // GRPH+E + { PS2_KEY_F, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x86, 0x01, 0x00, }, // GRPH+F + { PS2_KEY_G, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x87, 0x01, 0x00, }, // GRPH+G + { PS2_KEY_H, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x88, 0x01, 0x00, }, // GRPH+H + { PS2_KEY_I, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x89, 0x01, 0x00, }, // GRPH+I + { PS2_KEY_J, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8A, 0x01, 0x00, }, // GRPH+J + { PS2_KEY_K, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8B, 0x01, 0x00, }, // GRPH+K + { PS2_KEY_L, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8C, 0x01, 0x00, }, // GRPH+L + { PS2_KEY_M, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8D, 0x01, 0x00, }, // GRPH+M + { PS2_KEY_N, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8E, 0x01, 0x00, }, // GRPH+N + { PS2_KEY_O, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x8F, 0x01, 0x00, }, // GRPH+O + { PS2_KEY_P, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x90, 0x01, 0x00, }, // GRPH+P + { PS2_KEY_Q, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x91, 0x01, 0x00, }, // GRPH+Q + { PS2_KEY_R, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x92, 0x01, 0x00, }, // GRPH+R + { PS2_KEY_S, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x93, 0x01, 0x00, }, // GRPH+S + { PS2_KEY_T, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x94, 0x01, 0x00, }, // GRPH+T + { PS2_KEY_U, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x95, 0x01, 0x00, }, // GRPH+U + { PS2_KEY_V, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x96, 0x01, 0x00, }, // GRPH+V + { PS2_KEY_W, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x97, 0x01, 0x00, }, // GRPH+W + { PS2_KEY_X, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x98, 0x01, 0x00, }, // GRPH+X + { PS2_KEY_Y, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x99, 0x01, 0x00, }, // GRPH+Y + { PS2_KEY_Z, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9A, 0x01, 0x00, }, // GRPH+Z + { PS2_KEY_DIV, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9F, 0x01, 0x00, }, // GRPH+/ + { PS2_KEY_APOS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9D, 0x01, 0x00, }, // GRPH+' + { PS2_KEY_OPEN_SQ, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x80, 0x01, 0x00, }, // GRPH+[ + { PS2_KEY_CLOSE_SQ, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9B, 0x01, 0x00, }, // GRPH+] + { PS2_KEY_EQUAL, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9E, 0x01, 0x00, }, // GRPH+= + { PS2_KEY_MINUS, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x9C, 0x01, 0x00, }, // GRPH+- + //{ PS2_KEY_COMMA, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x87, 0x00, 0x00, }, // GRPH+, + //{ PS2_KEY_SEMI, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x89, 0x00, 0x00, }, // GRPH+; + //{ PS2_KEY_DOT, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x88, 0x00, 0x00, }, // GRPH+. + //{ PS2_KEY_BACK, PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x90, 0x00, 0x00, }, // GRPH+Backslash + + //{ PS2_KEY_0, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xFA, 0x00, 0x00, }, // GRPH+SHIFT+0 + //{ PS2_KEY_1, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF1, 0x00, 0x00, }, // GRPH+SHIFT+1 + //{ PS2_KEY_2, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF2, 0x00, 0x00, }, // GRPH+SHIFT+2 + //{ PS2_KEY_3, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF3, 0x00, 0x00, }, // GRPH+SHIFT+3 + //{ PS2_KEY_4, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF4, 0x00, 0x00, }, // GRPH+SHIFT+4 + //{ PS2_KEY_5, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF5, 0x00, 0x00, }, // GRPH+SHIFT+5 + //{ PS2_KEY_6, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF6, 0x00, 0x00, }, // GRPH+SHIFT+6 + //{ PS2_KEY_7, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF7, 0x00, 0x00, }, // GRPH+SHIFT+7 + //{ PS2_KEY_8, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF8, 0x00, 0x00, }, // GRPH+SHIFT+8 + //{ PS2_KEY_9, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF9, 0x00, 0x00, }, // GRPH+SHIFT+9 + { PS2_KEY_A, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE1, 0x01, 0x00, }, // GRPH+SHIFT+A + { PS2_KEY_B, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE2, 0x01, 0x00, }, // GRPH+SHIFT+B + { PS2_KEY_C, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE3, 0x01, 0x00, }, // GRPH+SHIFT+C + { PS2_KEY_D, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE4, 0x01, 0x00, }, // GRPH+SHIFT+D + { PS2_KEY_E, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE5, 0x01, 0x00, }, // GRPH+SHIFT+E + { PS2_KEY_F, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE6, 0x01, 0x00, }, // GRPH+SHIFT+F + { PS2_KEY_G, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE7, 0x01, 0x00, }, // GRPH+SHIFT+G + { PS2_KEY_H, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE8, 0x01, 0x00, }, // GRPH+SHIFT+H + { PS2_KEY_I, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xE9, 0x01, 0x00, }, // GRPH+SHIFT+I + { PS2_KEY_J, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xEA, 0x01, 0x00, }, // GRPH+SHIFT+J + { PS2_KEY_K, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xEB, 0x01, 0x00, }, // GRPH+SHIFT+K + { PS2_KEY_L, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xEC, 0x01, 0x00, }, // GRPH+SHIFT+L + { PS2_KEY_M, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xED, 0x01, 0x00, }, // GRPH+SHIFT+M + { PS2_KEY_N, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xEE, 0x01, 0x00, }, // GRPH+SHIFT+N + { PS2_KEY_O, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xEF, 0x01, 0x00, }, // GRPH+SHIFT+O + { PS2_KEY_P, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF0, 0x01, 0x00, }, // GRPH+SHIFT+P + { PS2_KEY_Q, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF1, 0x01, 0x00, }, // GRPH+SHIFT+Q + { PS2_KEY_R, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF2, 0x01, 0x00, }, // GRPH+SHIFT+R + { PS2_KEY_S, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF3, 0x01, 0x00, }, // GRPH+SHIFT+S + { PS2_KEY_T, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF4, 0x01, 0x00, }, // GRPH+SHIFT+T + { PS2_KEY_U, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF5, 0x01, 0x00, }, // GRPH+SHIFT+U + { PS2_KEY_V, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF6, 0x01, 0x00, }, // GRPH+SHIFT+V + { PS2_KEY_W, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF7, 0x01, 0x00, }, // GRPH+SHIFT+W + { PS2_KEY_X, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF8, 0x01, 0x00, }, // GRPH+SHIFT+X + { PS2_KEY_Y, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xF9, 0x01, 0x00, }, // GRPH+SHIFT+Y + { PS2_KEY_Z, PS2CTRL_GRAPH | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xFA, 0x01, 0x00, }, // GRPH+SHIFT+Z + // KANA (Alt) - //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). - { PS2_KEY_0, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA6, 0x00, }, // KANA+SHIFT+0 - { PS2_KEY_0, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDC, 0x00, }, // KANA+0 - { PS2_KEY_1, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC7, 0x00, }, // KANA+1 - { PS2_KEY_2, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCC, 0x00, }, // KANA+2 - { PS2_KEY_3, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA7, 0x00, }, // KANA+SHIFT+3 - { PS2_KEY_3, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB1, 0x00, }, // KANA+3 - { PS2_KEY_4, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA9, 0x00, }, // KANA+SHIFT+4 - { PS2_KEY_4, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB3, 0x00, }, // KANA+4 - { PS2_KEY_5, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAA, 0x00, }, // KANA+SHIFT+5 - { PS2_KEY_5, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB4, 0x00, }, // KANA+5 - { PS2_KEY_6, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAB, 0x00, }, // KANA+SHIFT+6 - { PS2_KEY_6, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB5, 0x00, }, // KANA+6 - { PS2_KEY_7, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAC, 0x00, }, // KANA+SHIFT+7 - { PS2_KEY_7, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD4, 0x00, }, // KANA+7 - { PS2_KEY_8, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAD, 0x00, }, // KANA+SHIFT+8 - { PS2_KEY_8, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD5, 0x00, }, // KANA+8 - { PS2_KEY_9, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAE, 0x00, }, // KANA+SHIFT+9 - { PS2_KEY_9, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD6, 0x00, }, // KANA+9 - { PS2_KEY_A, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC1, 0x00, }, // KANA+A - { PS2_KEY_B, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBA, 0x00, }, // KANA+B - { PS2_KEY_C, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBF, 0x00, }, // KANA+C - { PS2_KEY_D, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBC, 0x00, }, // KANA+D - { PS2_KEY_E, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA8, 0x00, }, // KANA+SHIFT+E - { PS2_KEY_E, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB2, 0x00, }, // KANA+E - { PS2_KEY_F, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCA, 0x00, }, // KANA+F - { PS2_KEY_G, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB7, 0x00, }, // KANA+G - { PS2_KEY_H, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB8, 0x00, }, // KANA+H - { PS2_KEY_I, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC6, 0x00, }, // KANA+I - { PS2_KEY_J, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCF, 0x00, }, // KANA+J - { PS2_KEY_K, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC9, 0x00, }, // KANA+K - { PS2_KEY_L, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD8, 0x00, }, // KANA+L - { PS2_KEY_M, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD3, 0x00, }, // KANA+M - { PS2_KEY_N, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD0, 0x00, }, // KANA+N - { PS2_KEY_O, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD7, 0x00, }, // KANA+O - { PS2_KEY_P, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBE, 0x00, }, // KANA+P - { PS2_KEY_Q, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC0, 0x00, }, // KANA+Q - { PS2_KEY_R, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBD, 0x00, }, // KANA+R - { PS2_KEY_S, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC4, 0x00, }, // KANA+S - { PS2_KEY_T, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB6, 0x00, }, // KANA+T - { PS2_KEY_U, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC5, 0x00, }, // KANA+U - { PS2_KEY_V, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCB, 0x00, }, // KANA+V - { PS2_KEY_W, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC3, 0x00, }, // KANA+W - { PS2_KEY_X, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBB, 0x00, }, // KANA+X - { PS2_KEY_Y, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDD, 0x00, }, // KANA+Y - { PS2_KEY_Z, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAF, 0x00, }, // KANA+SHIFT+Z - { PS2_KEY_Z, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC2, 0x00, }, // KANA+Z - { PS2_KEY_COMMA, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA4, 0x00, }, // KANA+SHIFT+, - { PS2_KEY_COMMA, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC8, 0x00, }, // KANA+, - { PS2_KEY_SEMI, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDA, 0x00, }, // KANA+; - { PS2_KEY_DOT, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA1, 0x00, }, // KANA+SHIFT+. - { PS2_KEY_DOT, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD9, 0x00, }, // KANA+. - { PS2_KEY_DIV, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA5, 0x00, }, // KANA+SHIFT+/ - { PS2_KEY_DIV, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD2, 0x00, }, // KANA+/ - { PS2_KEY_MINUS, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCE, 0x00, }, // KANA+- - { PS2_KEY_APOS, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDE, 0x00, }, // KANA+' - { PS2_KEY_OPEN_SQ, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA2, 0x00, }, // KANA+SHIFT+[ - { PS2_KEY_OPEN_SQ, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDF, 0x00, }, // KANA+[ - { PS2_KEY_CLOSE_SQ, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA3, 0x00, }, // KANA+SHIFT+] - { PS2_KEY_CLOSE_SQ, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD1, 0x00, }, // KANA+] - { PS2_KEY_BACK, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDB, 0x00, }, // KANA+Backslash - { PS2_KEY_BS, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0x12, 0x00, }, // KANA+SHIFT+Backspace + //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). + { PS2_KEY_0, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA6, 0x00, 0x00, }, // KANA+SHIFT+0 + { PS2_KEY_0, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDC, 0x00, 0x00, }, // KANA+0 + { PS2_KEY_1, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC7, 0x00, 0x00, }, // KANA+1 + { PS2_KEY_2, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCC, 0x00, 0x00, }, // KANA+2 + { PS2_KEY_3, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA7, 0x00, 0x00, }, // KANA+SHIFT+3 + { PS2_KEY_3, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB1, 0x00, 0x00, }, // KANA+3 + { PS2_KEY_4, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA9, 0x00, 0x00, }, // KANA+SHIFT+4 + { PS2_KEY_4, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB3, 0x00, 0x00, }, // KANA+4 + { PS2_KEY_5, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAA, 0x00, 0x00, }, // KANA+SHIFT+5 + { PS2_KEY_5, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB4, 0x00, 0x00, }, // KANA+5 + { PS2_KEY_6, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAB, 0x00, 0x00, }, // KANA+SHIFT+6 + { PS2_KEY_6, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB5, 0x00, 0x00, }, // KANA+6 + { PS2_KEY_7, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAC, 0x00, 0x00, }, // KANA+SHIFT+7 + { PS2_KEY_7, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD4, 0x00, 0x00, }, // KANA+7 + { PS2_KEY_8, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAD, 0x00, 0x00, }, // KANA+SHIFT+8 + { PS2_KEY_8, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD5, 0x00, 0x00, }, // KANA+8 + { PS2_KEY_9, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAE, 0x00, 0x00, }, // KANA+SHIFT+9 + { PS2_KEY_9, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD6, 0x00, 0x00, }, // KANA+9 + { PS2_KEY_A, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC1, 0x00, 0x00, }, // KANA+A + { PS2_KEY_B, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBA, 0x00, 0x00, }, // KANA+B + { PS2_KEY_C, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBF, 0x00, 0x00, }, // KANA+C + { PS2_KEY_D, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBC, 0x00, 0x00, }, // KANA+D + { PS2_KEY_E, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA8, 0x00, 0x00, }, // KANA+SHIFT+E + { PS2_KEY_E, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB2, 0x00, 0x00, }, // KANA+E + { PS2_KEY_F, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCA, 0x00, 0x00, }, // KANA+F + { PS2_KEY_G, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB7, 0x00, 0x00, }, // KANA+G + { PS2_KEY_H, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB8, 0x00, 0x00, }, // KANA+H + { PS2_KEY_I, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC6, 0x00, 0x00, }, // KANA+I + { PS2_KEY_J, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCF, 0x00, 0x00, }, // KANA+J + { PS2_KEY_K, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC9, 0x00, 0x00, }, // KANA+K + { PS2_KEY_L, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD8, 0x00, 0x00, }, // KANA+L + { PS2_KEY_M, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD3, 0x00, 0x00, }, // KANA+M + { PS2_KEY_N, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD0, 0x00, 0x00, }, // KANA+N + { PS2_KEY_O, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD7, 0x00, 0x00, }, // KANA+O + { PS2_KEY_P, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBE, 0x00, 0x00, }, // KANA+P + { PS2_KEY_Q, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC0, 0x00, 0x00, }, // KANA+Q + { PS2_KEY_R, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBD, 0x00, 0x00, }, // KANA+R + { PS2_KEY_S, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC4, 0x00, 0x00, }, // KANA+S + { PS2_KEY_T, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xB6, 0x00, 0x00, }, // KANA+T + { PS2_KEY_U, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC5, 0x00, 0x00, }, // KANA+U + { PS2_KEY_V, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCB, 0x00, 0x00, }, // KANA+V + { PS2_KEY_W, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC3, 0x00, 0x00, }, // KANA+W + { PS2_KEY_X, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xBB, 0x00, 0x00, }, // KANA+X + { PS2_KEY_Y, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDD, 0x00, 0x00, }, // KANA+Y + { PS2_KEY_Z, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xAF, 0x00, 0x00, }, // KANA+SHIFT+Z + { PS2_KEY_Z, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC2, 0x00, 0x00, }, // KANA+Z + { PS2_KEY_COMMA, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA4, 0x00, 0x00, }, // KANA+SHIFT+, + { PS2_KEY_COMMA, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xC8, 0x00, 0x00, }, // KANA+, + { PS2_KEY_SEMI, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDA, 0x00, 0x00, }, // KANA+; + { PS2_KEY_DOT, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA1, 0x00, 0x00, }, // KANA+SHIFT+. + { PS2_KEY_DOT, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD9, 0x00, 0x00, }, // KANA+. + { PS2_KEY_DIV, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA5, 0x00, 0x00, }, // KANA+SHIFT+/ + { PS2_KEY_DIV, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD2, 0x00, 0x00, }, // KANA+/ + { PS2_KEY_MINUS, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xCE, 0x00, 0x00, }, // KANA+- + { PS2_KEY_APOS, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDE, 0x00, 0x00, }, // KANA+' + { PS2_KEY_OPEN_SQ, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA2, 0x00, 0x00, }, // KANA+SHIFT+[ + { PS2_KEY_OPEN_SQ, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDF, 0x00, 0x00, }, // KANA+[ + { PS2_KEY_CLOSE_SQ, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0xA3, 0x00, 0x00, }, // KANA+SHIFT+] + { PS2_KEY_CLOSE_SQ, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xD1, 0x00, 0x00, }, // KANA+] + { PS2_KEY_BACK, PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0xDB, 0x00, 0x00, }, // KANA+Backslash + { PS2_KEY_BS, PS2CTRL_KANA | PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0x12, 0x00, 0x00, }, // KANA+SHIFT+Backspace // Keypad. - { PS2_KEY_KP0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '0', 0x00, }, // Keypad 0 - { PS2_KEY_KP1, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '1', 0x00, }, // Keypad 1 - { PS2_KEY_KP2, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '2', 0x00, }, // Keypad 2 - { PS2_KEY_KP3, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '3', 0x00, }, // Keypad 3 - { PS2_KEY_KP4, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '4', 0x00, }, // Keypad 4 - { PS2_KEY_KP5, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '5', 0x00, }, // Keypad 5 - { PS2_KEY_KP6, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '6', 0x00, }, // Keypad 6 - { PS2_KEY_KP7, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '7', 0x00, }, // Keypad 7 - { PS2_KEY_KP8, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '8', 0x00, }, // Keypad 8 - { PS2_KEY_KP9, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '9', 0x00, }, // Keypad 9 - { PS2_KEY_KP_COMMA, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ',', 0x00, }, // Keypad Comma , - { PS2_KEY_KP_DOT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '.', 0x00, }, // Keypad Full stop . - { PS2_KEY_KP_PLUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '+', 0x00, }, // Keypad Plus + - { PS2_KEY_KP_MINUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '-', 0x00, }, // Keypad Minus - - { PS2_KEY_KP_TIMES, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '*', 0x00, }, // Keypad Times * - { PS2_KEY_KP_DIV, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '/', 0x00, }, // Keypad Divide / - { PS2_KEY_KP_ENTER, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x0D, 0x00, }, // Keypad Ebter / - //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ctrl (Flags to Set). + { PS2_KEY_KP0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '0', 0x00, 0x00, }, // Keypad 0 + { PS2_KEY_KP1, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '1', 0x00, 0x00, }, // Keypad 1 + { PS2_KEY_KP2, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '2', 0x00, 0x00, }, // Keypad 2 + { PS2_KEY_KP3, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '3', 0x00, 0x00, }, // Keypad 3 + { PS2_KEY_KP4, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '4', 0x00, 0x00, }, // Keypad 4 + { PS2_KEY_KP5, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '5', 0x00, 0x00, }, // Keypad 5 + { PS2_KEY_KP6, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '6', 0x00, 0x00, }, // Keypad 6 + { PS2_KEY_KP7, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '7', 0x00, 0x00, }, // Keypad 7 + { PS2_KEY_KP8, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '8', 0x00, 0x00, }, // Keypad 8 + { PS2_KEY_KP9, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '9', 0x00, 0x00, }, // Keypad 9 + { PS2_KEY_KP_COMMA, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, ',', 0x00, 0x00, }, // Keypad Comma , + { PS2_KEY_KP_DOT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '.', 0x00, 0x00, }, // Keypad Full stop . + { PS2_KEY_KP_PLUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '+', 0x00, 0x00, }, // Keypad Plus + + { PS2_KEY_KP_MINUS, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '-', 0x00, 0x00, }, // Keypad Minus - + { PS2_KEY_KP_TIMES, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '*', 0x00, 0x00, }, // Keypad Times * + { PS2_KEY_KP_DIV, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, '/', 0x00, 0x00, }, // Keypad Divide / + { PS2_KEY_KP_ENTER, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x0D, 0x00, 0x00, }, // Keypad Enter / + //PS2 Code PS2 Ctrl (Flags to Match) Keyboard Model Machine MZ5665 Data MZ5665 Ext MZ5665 Ctrl (Flags to Set). // Special keys. - { PS2_KEY_PRTSCR, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // ARGO KEY - { PS2_KEY_PAUSE, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x03, 0x00, }, // BREAK KEY - { PS2_KEY_L_GUI, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // GRAPH KEY - //{ PS2_KEY_L_ALT, PS2CTRL_FUNC | PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // KJ1 Sentence - //{ PS2_KEY_R_ALT, PS2CTRL_FUNC | PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // KJ2 Transform - { PS2_KEY_R_GUI, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // KANA KEY - { PS2_KEY_MENU, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // Not assigned. + { PS2_KEY_PRTSCR, PS2CTRL_FUNC, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // ARGO KEY + { PS2_KEY_PAUSE, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x06, 0x00, 0x00, }, // BREAK KEY + { PS2_KEY_PAUSE, PS2CTRL_SHIFT, KEYMAP_STANDARD, MZ5665_ALL, 0x07, 0x00, 0x00, }, // SHIFT BREAK KEY + { PS2_KEY_L_GUI, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // + //{ PS2_KEY_L_ALT, PS2CTRL_FUNC | PS2CTRL_KANA, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // KJ1 Sentence + //{ PS2_KEY_R_ALT, PS2CTRL_FUNC | PS2CTRL_GRAPH, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // KJ2 Transform + { PS2_KEY_R_GUI, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // + { PS2_KEY_MENU, PS2CTRL_FUNC | PS2CTRL_GUI, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // Not assigned. // Modifiers are last, only being selected if an earlier match isnt made. - { PS2_KEY_L_SHIFT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, - { PS2_KEY_R_SHIFT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, - { PS2_KEY_L_CTRL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, - { PS2_KEY_R_CTRL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, // Map to Control - { 0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, }, + { PS2_KEY_L_SHIFT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, + { PS2_KEY_R_SHIFT, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, + { PS2_KEY_L_CTRL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, + { PS2_KEY_R_CTRL, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, // Map to Control + { 0, PS2CTRL_NONE, KEYMAP_STANDARD, MZ5665_ALL, 0x00, 0x00, 0x00, }, }}; }; diff --git a/sdkconfig b/sdkconfig index 5896973..97213f8 100644 --- a/sdkconfig +++ b/sdkconfig @@ -35,78 +35,6 @@ CONFIG_APP_COMPILE_TIME_DATE=y CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 # end of Application manager -# -# Arduino Configuration -# -CONFIG_ENABLE_ARDUINO_DEPENDS=y -# CONFIG_AUTOSTART_ARDUINO is not set -# CONFIG_ARDUINO_RUN_CORE0 is not set -# CONFIG_ARDUINO_RUN_CORE1 is not set -CONFIG_ARDUINO_RUN_NO_AFFINITY=y -CONFIG_ARDUINO_RUNNING_CORE=-1 -CONFIG_ARDUINO_LOOP_STACK_SIZE=8192 -CONFIG_ARDUINO_EVENT_RUN_CORE0=y -# CONFIG_ARDUINO_EVENT_RUN_CORE1 is not set -# CONFIG_ARDUINO_EVENT_RUN_NO_AFFINITY is not set -CONFIG_ARDUINO_EVENT_RUNNING_CORE=0 -CONFIG_ARDUINO_UDP_RUN_CORE0=y -# CONFIG_ARDUINO_UDP_RUN_CORE1 is not set -# CONFIG_ARDUINO_UDP_RUN_NO_AFFINITY is not set -CONFIG_ARDUINO_UDP_TASK_PRIORITY=3 -CONFIG_ARDUINO_UDP_RUNNING_CORE=0 -CONFIG_ARDUINO_ISR_IRAM=y -CONFIG_DISABLE_HAL_LOCKS=y - -# -# Debug Log Configuration -# -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1 -# CONFIG_ARDUHAL_LOG_COLORS is not set -# CONFIG_ARDUHAL_ESP_LOG is not set -# end of Debug Log Configuration - -CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y -# CONFIG_ARDUHAL_PARTITION_SCHEME_MINIMAL is not set -# CONFIG_ARDUHAL_PARTITION_SCHEME_NO_OTA is not set -# CONFIG_ARDUHAL_PARTITION_SCHEME_HUGE_APP is not set -# CONFIG_ARDUHAL_PARTITION_SCHEME_MIN_SPIFFS is not set -CONFIG_ARDUHAL_PARTITION_SCHEME="default" -CONFIG_ARDUINO_SELECTIVE_COMPILATION=y -CONFIG_ARDUINO_SELECTIVE_ArduinoOTA=y -# CONFIG_ARDUINO_SELECTIVE_AsyncUDP is not set -# CONFIG_ARDUINO_SELECTIVE_AzureIoT is not set -# CONFIG_ARDUINO_SELECTIVE_BLE is not set -# CONFIG_ARDUINO_SELECTIVE_BluetoothSerial is not set -# CONFIG_ARDUINO_SELECTIVE_DNSServer is not set -# CONFIG_ARDUINO_SELECTIVE_EEPROM is not set -CONFIG_ARDUINO_SELECTIVE_ESP32=y -CONFIG_ARDUINO_SELECTIVE_ESPmDNS=y -# CONFIG_ARDUINO_SELECTIVE_FFat is not set -CONFIG_ARDUINO_SELECTIVE_FS=y -CONFIG_ARDUINO_SELECTIVE_HTTPClient=y -CONFIG_ARDUINO_SELECTIVE_LITTLEFS=y -# CONFIG_ARDUINO_SELECTIVE_NetBIOS is not set -CONFIG_ARDUINO_SELECTIVE_Preferences=y -# CONFIG_ARDUINO_SELECTIVE_SD is not set -# CONFIG_ARDUINO_SELECTIVE_SD_MMC is not set -# CONFIG_ARDUINO_SELECTIVE_SimpleBLE is not set -# CONFIG_ARDUINO_SELECTIVE_SPI is not set -# CONFIG_ARDUINO_SELECTIVE_SPIFFS is not set -# CONFIG_ARDUINO_SELECTIVE_Ticker is not set -# CONFIG_ARDUINO_SELECTIVE_Update is not set -CONFIG_ARDUINO_SELECTIVE_WebServer=y -CONFIG_ARDUINO_SELECTIVE_WiFi=y -CONFIG_ARDUINO_SELECTIVE_WiFiClientSecure=y -# CONFIG_ARDUINO_SELECTIVE_WiFiProv is not set -# CONFIG_ARDUINO_SELECTIVE_Wire is not set -# end of Arduino Configuration - # # Bootloader config # @@ -279,17 +207,79 @@ CONFIG_PWRLED=2 # # Arduino Configuration # +CONFIG_ENABLE_ARDUINO_DEPENDS=y +# CONFIG_AUTOSTART_ARDUINO is not set +# CONFIG_ARDUINO_RUN_CORE0 is not set +# CONFIG_ARDUINO_RUN_CORE1 is not set +CONFIG_ARDUINO_RUN_NO_AFFINITY=y +CONFIG_ARDUINO_RUNNING_CORE=-1 +CONFIG_ARDUINO_LOOP_STACK_SIZE=8192 +CONFIG_ARDUINO_EVENT_RUN_CORE0=y +# CONFIG_ARDUINO_EVENT_RUN_CORE1 is not set +# CONFIG_ARDUINO_EVENT_RUN_NO_AFFINITY is not set +CONFIG_ARDUINO_EVENT_RUNNING_CORE=0 # CONFIG_ARDUINO_SERIAL_EVENT_RUN_CORE0 is not set # CONFIG_ARDUINO_SERIAL_EVENT_RUN_CORE1 is not set CONFIG_ARDUINO_SERIAL_EVENT_RUN_NO_AFFINITY=y CONFIG_ARDUINO_SERIAL_EVENT_TASK_RUNNING_CORE=-1 CONFIG_ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE=2048 CONFIG_ARDUINO_SERIAL_EVENT_TASK_PRIORITY=24 +CONFIG_ARDUINO_UDP_RUN_CORE0=y +# CONFIG_ARDUINO_UDP_RUN_CORE1 is not set +# CONFIG_ARDUINO_UDP_RUN_NO_AFFINITY is not set +CONFIG_ARDUINO_UDP_RUNNING_CORE=0 +CONFIG_ARDUINO_UDP_TASK_PRIORITY=3 +CONFIG_ARDUINO_ISR_IRAM=y +CONFIG_DISABLE_HAL_LOCKS=y # # Debug Log Configuration # +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set +CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR=y +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO is not set +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set +# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set +CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=1 +# CONFIG_ARDUHAL_LOG_COLORS is not set +# CONFIG_ARDUHAL_ESP_LOG is not set # end of Debug Log Configuration + +CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y +# CONFIG_ARDUHAL_PARTITION_SCHEME_MINIMAL is not set +# CONFIG_ARDUHAL_PARTITION_SCHEME_NO_OTA is not set +# CONFIG_ARDUHAL_PARTITION_SCHEME_HUGE_APP is not set +# CONFIG_ARDUHAL_PARTITION_SCHEME_MIN_SPIFFS is not set +CONFIG_ARDUHAL_PARTITION_SCHEME="default" +CONFIG_ARDUINO_SELECTIVE_COMPILATION=y +CONFIG_ARDUINO_SELECTIVE_ArduinoOTA=y +# CONFIG_ARDUINO_SELECTIVE_AsyncUDP is not set +# CONFIG_ARDUINO_SELECTIVE_AzureIoT is not set +# CONFIG_ARDUINO_SELECTIVE_BLE is not set +# CONFIG_ARDUINO_SELECTIVE_BluetoothSerial is not set +# CONFIG_ARDUINO_SELECTIVE_DNSServer is not set +# CONFIG_ARDUINO_SELECTIVE_EEPROM is not set +CONFIG_ARDUINO_SELECTIVE_ESP32=y +CONFIG_ARDUINO_SELECTIVE_ESPmDNS=y +# CONFIG_ARDUINO_SELECTIVE_FFat is not set +CONFIG_ARDUINO_SELECTIVE_FS=y +CONFIG_ARDUINO_SELECTIVE_HTTPClient=y +CONFIG_ARDUINO_SELECTIVE_LITTLEFS=y +# CONFIG_ARDUINO_SELECTIVE_NetBIOS is not set +CONFIG_ARDUINO_SELECTIVE_Preferences=y +# CONFIG_ARDUINO_SELECTIVE_SD is not set +# CONFIG_ARDUINO_SELECTIVE_SD_MMC is not set +# CONFIG_ARDUINO_SELECTIVE_SimpleBLE is not set +# CONFIG_ARDUINO_SELECTIVE_SPI is not set +# CONFIG_ARDUINO_SELECTIVE_SPIFFS is not set +# CONFIG_ARDUINO_SELECTIVE_Ticker is not set +# CONFIG_ARDUINO_SELECTIVE_Update is not set +CONFIG_ARDUINO_SELECTIVE_WebServer=y +CONFIG_ARDUINO_SELECTIVE_WiFi=y +CONFIG_ARDUINO_SELECTIVE_WiFiClientSecure=y +# CONFIG_ARDUINO_SELECTIVE_WiFiProv is not set +# CONFIG_ARDUINO_SELECTIVE_Wire is not set # end of Arduino Configuration # diff --git a/version.txt b/version.txt index fafe2ff..993f095 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.041 +1.05