Fixed CGA graphics modes on VGA cards

This commit is contained in:
Jeff Parsons 2016-03-12 13:33:21 -08:00
commit 0eddbd05a3
60 changed files with 6775 additions and 404 deletions

View file

@ -8,8 +8,8 @@ machines:
- type: pc
id: deskpro386
debugger: true
config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml
uncompiled: true
config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/debugger/machine.xml
---
I finally dumped the [COMPAQ DeskPro 386/16 ROMs](/devices/pc/bios/compaq/deskpro386/) from the motherboard I bought
@ -20,7 +20,7 @@ to find COMPAQ Maintenance and Service guides online, but their Technical Refere
they were expensive ($149) and not many were sold. Anyway, I'm hoping to either borrow or buy a copy, and then scan and
post it.
A [COMPAQ DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/) test configuration is displayed below.
A [COMPAQ DeskPro 386](/devices/pc/machine/compaq/deskpro386/ega/2048kb/debugger/) test configuration is displayed below.
The configuration doesn't run, and the debugger can't disassemble 80386-specific code yet, but this is what I will be
using to test and debug my changes over the next few months.

View file

@ -8,8 +8,8 @@ machines:
- type: pc
id: deskpro386
debugger: true
config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/machine.xml
uncompiled: true
config: /devices/pc/machine/compaq/deskpro386/ega/2048kb/debugger/machine.xml
---
PCjs can now boot the [COMPAQ DeskPro 386/16 ROM BIOS](/devices/pc/bios/compaq/deskpro386/).
@ -143,10 +143,10 @@ to match that of the 1st megabyte whenever A20 is disabled. I could probably ge
only the first 64Kb of the 2nd megabyte, but until I'm actually able to run some tests on a real
DeskPro 386, I'm going to assume COMPAQ's A20 implementation affected the entire 2nd megabyte.
Here's my [COMPAQ DeskPro 386/16](/devices/pc/machine/compaq/deskpro386/ega/2048kb/) test configuration.
Set a breakpoint at F000:F498 ("bp f000:f498") in the Debugger panel to see the above code in action.
When the machine is operating in real-mode, you can use the "rp" command to dump all the registers,
including the current base and limit values loaded into the segment registers.
Here's my [COMPAQ DeskPro 386/16](/devices/pc/machine/compaq/deskpro386/ega/2048kb/debugger/) test
configuration. Set a breakpoint at F000:F498 ("bp f000:f498") in the Debugger panel to see the above
code in action. When the machine is operating in real-mode, you can use the "rp" command to dump all
the registers, including the current base and limit values loaded into the segment registers.
{% include machine.html id="deskpro386" %}

View file

@ -24,7 +24,7 @@ the source code for its ROMs, so I've created some assemblable source code from
[here](/devices/pc/video/ibm/vga/).
I've finally started debugging a machine configuration that uses the IBM VGA ROM. Since the VGA and the 80386 are
contemporaries, I'm using an [80386 machine configuration](/devices/pc/machine/compaq/deskpro386/vga/2048kb/machine.xml).
contemporaries, I'm using an [80386 machine configuration](/devices/pc/machine/compaq/deskpro386/vga/2048kb/debugger/).
However, I don't expect the IBM VGA ROM to require any 80386 support or PS/2-specific features.
The first problem I ran into was here:

View file

@ -9,7 +9,7 @@ machines:
id: deskpro386
debugger: true
state: /disks/pc/windows/win95/4.00.950/deskpro386.json
config: /devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml
config: /devices/pc/machine/compaq/deskpro386/vga/4096kb/debugger/machine.xml
drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]'
autoMount: ''
---

View file

@ -7,7 +7,6 @@ permalink: /blog/2015/09/21/
machines:
- type: pc
id: deskpro386
debugger: true
state: /disks/pc/windows/win95/4.00.950/deskpro386.json
config: /devices/pc/machine/compaq/deskpro386/vga/4096kb/machine.xml
drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pc/fixed/68mb/win95.json"}]'

View file

@ -95,7 +95,7 @@ FDC `autoMount` setting, making it easy to reuse the same machine XML file with
autoMount:
A:
path: /disks/pc/os2/misc/football/FOOTBALL-76817.json
config: /devices/pc/machine/compaq/deskpro386/ega/4096kb/machine.xml
config: /devices/pc/machine/compaq/deskpro386/ega/4096kb/debugger/machine.xml
Other settings that can currently be overridden include:

View file

@ -12,9 +12,9 @@ and blank screens.
A hard-error popup would occur when FOOTBALL tried to initialize a non-existent PRN device. To resolve that, PCjs
now provides basic parallel port emulation, in the form of a [ParallelPort](/docs/pcjs/parallel/) component that you
include in a machine XML file with the <parallel> element, in much the same way you include the
[SerialPort](/docs/pcjs/serial/) component with the <serial> element. The Compaq DeskPro 386
[Test Machine](/devices/pc/machine/compaq/deskpro386/ega/4096kb/) used to run FOOTBALL has now been updated to include
one parallel port.
[SerialPort](/docs/pcjs/serial/) component with the <serial> element. This [Compaq DeskPro 386]
(/devices/pc/machine/compaq/deskpro386/ega/4096kb/debugger/) machine used to run FOOTBALL has now been updated to
include one parallel port.
The other problem was that switching between sessions with the **SysReq** key would often result in a blank screen;
the new session was active, but you couldn't see it. This was a side-effect of how FOOTBALL reprograms the video