Changeset 50599 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Feb 26, 2014 10:44:38 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/keyboard.c
r50166 r50599 475 475 default: 476 476 if (scancode & 0x80) { 477 BX_INFO("KBD: int09: release(?): %02X\n", scancode); 478 /* Set ack/resend flags if appropriate. */ 479 if (scancode == 0xFA) { 480 flag = read_byte(0x0040, 0x97) | 0x10; 481 write_byte(0x0040, 0x97, flag); 482 } else if (scancode == 0xFE) { 483 flag = read_byte(0x0040, 0x97) | 0x20; 484 write_byte(0x0040, 0x97, flag); 485 } 477 486 break; /* toss key releases ... */ 478 487 } … … 586 595 if ((((shift_flags >> 4) & 0x07) ^ (led_flags & 0x07)) != 0) { 587 596 int_disable(); //@todo: interrupts should be disabled already?? 597 BX_INFO("KBD: int16: Setting LEDs\n"); 588 598 outb(0x60, 0xed); 589 599 while ((inb(0x64) & 0x01) == 0) outb(0x80, 0x21); 590 600 if ((inb(0x60) == 0xfa)) { 591 led_flags &= 0x f8;601 led_flags &= 0xc8; 592 602 led_flags |= ((shift_flags >> 4) & 0x07); 593 603 outb(0x60, led_flags & 0x07); … … 596 606 inb(0x60); 597 607 write_byte(0x0040, 0x97, led_flags); 608 BX_INFO("KBD: int16: LEDs set\n"); 598 609 } 599 610 int_enable();
Note:
See TracChangeset
for help on using the changeset viewer.