ATAPI CD-ROM no longer lowers IRQ at the wrong time, fixes booting of some CD's;
Fixed DMA emulation, fixes Olivetti M24; (S)VGA emulation for PS/1 and PS/2 machines now uses the old, less accurate sense switches, fixes display error on POST; Bit 2 of the AT keyboard input port is now always held active, fixes PS/2 mouse on PS/1 and PS/2 machines; Fixed mouse type selection on non-AT boards; Fixed RAM type selection; The entire palette is now overwritten when a monochrome monitor type is selected, fixes graphics mode on Hercules; Applied updated SCAT emulation patch from PCem forum; Nvidia Riva and S3 Virge IRQ is now configurable; Properly applied the mainline PCem commit that fixed the Bahamas64 on the Intel AMI BIOS boards; Commented out the Diamond Stealth 64 and the Miro Crystal S3 Vision 964 due to their non-working state; Changed version to 1.06.
This commit is contained in:
@@ -642,9 +642,7 @@ bad_command:
|
||||
break;
|
||||
|
||||
case 0xc0: /*Read input port*/
|
||||
keyboard_at_adddata((keyboard_at.input_port & 0xf0) | 0x80);
|
||||
// keyboard_at_adddata(keyboard_at.input_port | 4);
|
||||
// keyboard_at.input_port = ((keyboard_at.input_port + 1) & 3) | (keyboard_at.input_port & 0xfc);
|
||||
keyboard_at_adddata((keyboard_at.input_port & 0xfc) | 0x84);
|
||||
break;
|
||||
|
||||
case 0xc1: /*Copy bits 0 to 3 of input port to status bits 4 to 7*/
|
||||
@@ -726,13 +724,16 @@ uint8_t keyboard_at_read(uint16_t port, void *priv)
|
||||
case 0x60:
|
||||
temp = keyboard_at.out;
|
||||
keyboard_at.status &= ~(STAT_OFULL/* | STAT_MFULL*/);
|
||||
picintc(keyboard_at.last_irq);
|
||||
if (PCI)
|
||||
{
|
||||
/* The PIIX/PIIX3 datasheet mandates that both of these interrupts are cleared on any read of port 0x60. */
|
||||
picintc(1 << 1);
|
||||
picintc(1 << 12);
|
||||
}
|
||||
else
|
||||
{
|
||||
picintc(keyboard_at.last_irq);
|
||||
}
|
||||
keyboard_at.last_irq = 0;
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user