Fixed save/restore (hopefully) when A20 is off, as well as when HDC I/O is in progress (although the latter needs more testing)

This commit is contained in:
Jeff Parsons 2015-08-29 15:22:36 -07:00
commit 63121a1768
6 changed files with 99 additions and 57 deletions

View file

@ -4299,6 +4299,7 @@ ChipSet.prototype.out8042InBuffData = function(port, bOut, addrFrom)
this.printMessageIO(port, bOut, addrFrom, "8042_INBUF.DATA", null, Messages.C8042);
if (this.b8042Status & ChipSet.KBC.STATUS.CMD_FLAG) {
switch (this.b8042InBuff) {
case ChipSet.KBC.CMD.WRITE_CMD:
@ -4653,6 +4654,10 @@ ChipSet.prototype.set8042OutBuff = function(b, fNoDelay)
/**
* set8042OutPort(b)
*
* When ChipSet.KBC.CMD.WRITE_OUTPORT (0xD1) is written to port 0x64, the next byte written to port 0x60 comes here,
* to the KBC's OUTPORT. One of the most important bits in the OUTPORT is the A20_ON bit (0x02): set it to turn A20 on,
* clear it to turn A20 off.
*
* @this {ChipSet}
* @param {number} b
*/