Fixed scan code translation skip checking (fixes missing break code on Alt+Print Screen / SysRq) and actually committed the Acer V10 fix.
This commit is contained in:
@@ -66,6 +66,7 @@ static uint8_t
|
|||||||
fake_shift_needed(uint16_t scan)
|
fake_shift_needed(uint16_t scan)
|
||||||
{
|
{
|
||||||
switch (scan) {
|
switch (scan) {
|
||||||
|
case 0x137: /* Yes, Print Screen requires the fake shifts. */
|
||||||
case 0x147:
|
case 0x147:
|
||||||
case 0x148:
|
case 0x148:
|
||||||
case 0x149:
|
case 0x149:
|
||||||
|
@@ -735,7 +735,7 @@ add_to_kbc_queue_front(atkbd_t *dev, uint8_t val, uint8_t channel, uint8_t stat_
|
|||||||
else
|
else
|
||||||
stat_hi |= 0x10;
|
stat_hi |= 0x10;
|
||||||
|
|
||||||
kbd_log("ATkbc: Adding %02X to front...\n", val);
|
kbd_log("ATkbc: Adding %02X to front on channel %i...\n", val, channel);
|
||||||
dev->status = (dev->status & ~0xf0) | STAT_OFULL | stat_hi;
|
dev->status = (dev->status & ~0xf0) | STAT_OFULL | stat_hi;
|
||||||
|
|
||||||
/* WARNING: On PS/2, all IRQ's are level-triggered, but the IBM PS/2 KBC firmware is explicitly
|
/* WARNING: On PS/2, all IRQ's are level-triggered, but the IBM PS/2 KBC firmware is explicitly
|
||||||
@@ -806,6 +806,9 @@ add_data_kbd_front(atkbd_t *dev, uint8_t val)
|
|||||||
static void
|
static void
|
||||||
add_data_kbd_raw(atkbd_t *dev, uint8_t val)
|
add_data_kbd_raw(atkbd_t *dev, uint8_t val)
|
||||||
{
|
{
|
||||||
|
if (dev->reset_delay)
|
||||||
|
return;
|
||||||
|
|
||||||
add_data_kbd_cmd_queue(dev, val);
|
add_data_kbd_cmd_queue(dev, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1342,7 +1345,7 @@ add_data_kbd(uint16_t val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Skip break code if translated make code has bit 7 set. */
|
/* Skip break code if translated make code has bit 7 set. */
|
||||||
if (translate && (sc_or == 0x80) && (val & 0x80)) {
|
if (translate && (sc_or == 0x80) && (nont_to_t[val] & 0x80)) {
|
||||||
kbd_log("ATkbd: translate is on, skipping scan code: %02X (original: F0 %02X)\n", nont_to_t[val], val);
|
kbd_log("ATkbd: translate is on, skipping scan code: %02X (original: F0 %02X)\n", nont_to_t[val], val);
|
||||||
sc_or = 0;
|
sc_or = 0;
|
||||||
return;
|
return;
|
||||||
|
@@ -404,7 +404,7 @@ machine_at_acerv10_init(const machine_t *model)
|
|||||||
machine_at_common_init(model);
|
machine_at_common_init(model);
|
||||||
|
|
||||||
device_add(&sis_85c461_device);
|
device_add(&sis_85c461_device);
|
||||||
device_add(&keyboard_ps2_ami_pci_device);
|
device_add(&keyboard_ps2_acer_pci_device);
|
||||||
device_add(&ide_isa_2ch_device);
|
device_add(&ide_isa_2ch_device);
|
||||||
|
|
||||||
if (fdc_type == FDC_INTERNAL)
|
if (fdc_type == FDC_INTERNAL)
|
||||||
|
Reference in New Issue
Block a user