Start debugging HDC failure on DeskPro 386 configuration
This commit is contained in:
parent
20dc32f09d
commit
c29b1061dc
3 changed files with 13 additions and 6 deletions
|
|
@ -14,15 +14,16 @@ For example, when I ran this code:
|
|||
0CE0:0106
|
||||
-g
|
||||
|
||||
the following "text" appeared at the top of the screen, in 640x200 16-color graphics mode 0x0E:
|
||||
the following "text" correctly appeared at the top of the screen, in 640x200 16-color graphics mode 0x0E:
|
||||
|
||||
AX=0B01 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
|
||||
DS=0CE0 ES=0CE0 SS=0CE0 CS=0CE0 IP=0105 NV UP EI PL NZ NA PO NC
|
||||
0CE0:0105 CC INT 3
|
||||
-
|
||||
|
||||
When I typed "q", then "cls" and finally "dir", the screen filled with DOS directory contents. But as
|
||||
soon as the screen started to scroll, the screen contents became garbled. Other EGA graphics modes,
|
||||
And when I typed "q", then "cls" and finally "dir", the screen filled with DOS directory contents.
|
||||
|
||||
But as soon as the screen started to scroll, the screen contents became garbled. Other EGA graphics modes,
|
||||
like 640x350 16-color mode 0x10, didn't have this problem.
|
||||
|
||||
To investigate, I set a breakpoint in the IBM EGA ROM where the scrolling starts, at 0xC000:12EA (see p.130 of the
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<debugger id="debugger" messages="fault|port" commands=""/>
|
||||
<panel ref="/devices/pc/panel/btpanel.xml"/>
|
||||
<fdc ref="/disks/pc/library.xml" width="340px" automount='{A: {name: "PC-DOS 3.00 (Disk 1)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK1.json"}, B: {name: "PC-DOS 3.00 (Disk 2)", path: "/disks/pc/dos/ibm/3.00/PCDOS300-DISK2.json"}}'/>
|
||||
<hdcFoo id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
|
||||
<hdc id="hdcAT" type="at" drives='[{name:"20Mb Hard Disk",type:2}]'/>
|
||||
<chipset id="chipset" model="deskpro386" floppies="[1200,1200]" monitor="vga"/>
|
||||
<serial id="com1" adapter="1"/>
|
||||
<serial id="com2" adapter="2" binding="print"/>
|
||||
|
|
|
|||
|
|
@ -2320,7 +2320,10 @@ Card.prototype.setMemoryAccess = function(nAccess)
|
|||
var nReadAccess = nAccess & Card.ACCESS.READ.MASK;
|
||||
var fnReadByte = Card.ACCESS.afn[nReadAccess];
|
||||
if (!fnReadByte) {
|
||||
if (DEBUG && this.dbg) this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing readByte handler");
|
||||
if (DEBUG && this.dbg) {
|
||||
this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing readByte handler");
|
||||
this.dbg.stopCPU(); // let's take a look
|
||||
}
|
||||
if (nReadAccess & Card.ACCESS.READ.EVENODD) {
|
||||
fnReadByte = Card.ACCESS.afn[Card.ACCESS.READ.EVENODD];
|
||||
}
|
||||
|
|
@ -2328,7 +2331,10 @@ Card.prototype.setMemoryAccess = function(nAccess)
|
|||
var nWriteAccess = nAccess & Card.ACCESS.WRITE.MASK;
|
||||
var fnWriteByte = Card.ACCESS.afn[nWriteAccess];
|
||||
if (!fnWriteByte) {
|
||||
if (DEBUG && this.dbg) this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing writeByte handler");
|
||||
if (DEBUG && this.dbg) {
|
||||
this.dbg.message("Card.setMemoryAccess(" + str.toHexWord(nAccess) + "): missing writeByte handler");
|
||||
this.dbg.stopCPU(); // let's take a look
|
||||
}
|
||||
if (nWriteAccess & Card.ACCESS.WRITE.EVENODD) {
|
||||
fnWriteByte = Card.ACCESS.afn[Card.ACCESS.WRITE.EVENODD];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue