The 5170 AT hard disk controller is limping along now, so I'm getting ready for a 1.15.4 release
Some other interesting bugs were fixed along the way: the Video component incorrectly assumed that masking a negative number with 0x80000000 would yield 0x80000000 (it actually yields -0x80000000, thank you JavaScript); the ChipSet component provides a new addCMOSMemory() interface that RAM objects can use to bump the CMOS total to match the actual total; the CPU properly implements INSW and OUTSW instructions now (kind of important for the AT hard disk controller)
This commit is contained in:
parent
4ff357669d
commit
0f06c3f039
115 changed files with 2803 additions and 1902 deletions
|
|
@ -1258,7 +1258,7 @@ var X86OpXX = {
|
|||
}
|
||||
if (nReps--) {
|
||||
var addrFrom = this.regEIP - nDelta - 1;
|
||||
var w = this.bus.checkPortInputNotify(this.regDX, addrFrom) | (this.bus.checkPortInputNotify((this.regDX + 1) & 0xffff, addrFrom) << 8);
|
||||
var w = this.bus.checkPortInputNotify(this.regDX, addrFrom) | (this.bus.checkPortInputNotify(this.regDX, addrFrom) << 8);
|
||||
this.setSOWord(this.segES, this.regDI, w);
|
||||
this.regDI = (this.regDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & 0xffff;
|
||||
this.nStepCycles -= nCycles;
|
||||
|
|
@ -1350,7 +1350,7 @@ var X86OpXX = {
|
|||
this.regCX -= nDelta;
|
||||
var addrFrom = this.regEIP - nDelta - 1;
|
||||
this.bus.checkPortOutputNotify(this.regDX, w & 0xff, addrFrom);
|
||||
this.bus.checkPortOutputNotify((this.regDX + 1) & 0xffff, w >> 8, addrFrom);
|
||||
this.bus.checkPortOutputNotify(this.regDX, w >> 8, addrFrom);
|
||||
if (nReps) {
|
||||
/*
|
||||
* We have to back up to the prefix byte(s), not just to the string instruction,
|
||||
|
|
@ -2728,7 +2728,7 @@ var X86OpXX = {
|
|||
/**
|
||||
* @this {X86CPU}
|
||||
*
|
||||
* Here's the pseudo-code from /pubs/pc/programming/80286_and_80287_Programmers_Reference_Manual_1987.pdf, p.B-40 (p.250):
|
||||
* Here's the pseudo-code from http://www.pcjs.org/pubs/pc/reference/intel/80286/progref, p.B-40 (p.250):
|
||||
*
|
||||
* LEVEL := LEVEL MOD 32
|
||||
* Push BP
|
||||
|
|
|
|||
Loading…
Reference in a new issue