void KEYBOARD::reset()
{
- boot_seq = false;
reset_device();
}
reset_device();
special_boot_num = num;
boot_seq = true;
-// kbstat |= 1;
static const uint8_t bootcode_debug[] = {0x20, 0x13, 0x2E, 0x17, 0x22};
static const uint8_t bootcode_cd[] = {0x2C, 0x20};
break;;
}
if((num >= 0) && (num < 12)) {
- register_key_interrupt(true); // NEXT BYTE
+ kbstat |= 1;
+// register_key_interrupt(true); // NEXT BYTE
}
// register_event(this, EVENT_BOOT_TIMEOUT, 30.0e6, false, &event_key_reset);
}
kbtmp = get_key_code();
kbint &= ~1;
write_signals(&output_intr_line, 0);
- if((key_buf->empty()) && !(boot_seq)) {
- kbstat &= ~1;
- } else {
- register_key_interrupt(false); // NEXT BYTE
+ if(!(boot_seq)) {
+ if(key_buf->empty()) {
+ kbstat &= ~1;
+ } else {
+ register_key_interrupt(false); // NEXT BYTE
+ }
}
out_debug_log(_T("READ I/O ADDR=%04X VAL=%02X"), addr, kbdata);
return kbtmp;
{
if(boot_seq) {
if((boot_code_ptr & 1) == 0) {
- kbdata = ((boot_code_ptr >> 1) < 6) ? 0xA0 : 0xF0;
+ int xlimit = 6;
+// if(special_boot_num < 10) {
+// xlimit = 3;
+// }
+ kbdata = ((boot_code_ptr >> 1) < xlimit) ? 0xA0 : 0xF0;
} else {
if((boot_code_ptr >> 1) == 0) {
kbdata = 0x7F;
case EVENT_BOOT_TIMEOUT:
event_key_reset = -1;
boot_seq = false;
+ kbstat &= ~0x1;
break;
}
}
if(((data & mask) != 0) && (boot_seq)) {
out_debug_log(_T("SIG_KEYBOARD_BOOTSEQ_END"));
boot_seq = false;
+ kbstat &= ~0x1;
}
break;
}