Added VGA tests directory

This commit is contained in:
Jeff Parsons 2015-06-10 16:30:09 -07:00
commit 4d98db494d
5 changed files with 61 additions and 3 deletions

View file

@ -143,5 +143,8 @@ graphics modes >= 0x0D are misdetected as BIOSMODE 0x12.
All these issues are under investigation.
In addition, I've created a [VGA Tests](/tests/pc/vga/) directory to hold VGA test and sample code that I want PCjs
to run successfully. See that directory for more details.
*[@jeffpar](http://twitter.com/jeffpar)*
*June 1, 2015*
*June 1, 2015 (Updated June 10, 2015)*

View file

@ -12,7 +12,7 @@
<keyboard ref="/devices/pc/keyboard/keyboard-minimal-functions.xml"/>
<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"}}'/>
<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: "VGA Tests (Black Book)", path: "/tests/pc/vga/"}}'/>
<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"/>

View file

@ -50,6 +50,7 @@
<manifest ref="/apps/pc/1985/rogue/manifest.xml" disk="disk01"/>
<manifest ref="/apps/pc/1987/thinktank/manifest.xml" disk="disk01"/>
<manifest ref="/apps/pc/1992/moria/manifest.xml" disk="disk01"/>
<disk path="/tests/pc/vga/">VGA Tests (Black Book)</disk>
</control>
<control type="button" binding="loadDrive" padright="8px">Load</control>
<control type="description" binding="descDisk" padright="8px"/>

View file

@ -1162,7 +1162,7 @@ DiskDump.prototype.addManifestInfo = function(fileInfo)
this.aManifestInfo.push(fileInfo);
};
DiskDump.asTextFileExts = [".MD", ".ME", ".BAS", ".TXT", ".XML"];
DiskDump.asTextFileExts = [".MD", ".ME", ".ASM", ".BAS", ".TXT", ".XML"];
/**
* isTextFile(sFileName)

54
tests/pc/vga/README.md Normal file
View file

@ -0,0 +1,54 @@
VGA Tests
---
To aid in the development of PCjs VGA support, I've started adding some VGA tests to the project. For now, the
only "tests" are samples taken directly from [Michael Abrash's Graphics Programming Black Book](https://github.com/jeffpar/abrash-black-book).
Abrash's book is available on many sites, but I'm partial to the Markdown version that [James Gregory](https://github.com/jagregory)
has made available on GitHub, because (a) it's a brilliant way to share the text, and (b) it apparently has Abrash's blessing, so
I feel more comfortable forking it, using it, and resharing it.
The main reasons for my [fork](https://github.com/jeffpar/abrash-black-book): to make the book's
images display properly on GitHub, and to extract and add assorted source code listings as I need them. Since that
project's [/src](https://github.com/jeffpar/abrash-black-book/tree/master/src) folder contains just the book's text,
I've added a [/code](https://github.com/jeffpar/abrash-black-book/tree/master/code) folder for the source code listings.
The name of each source code file matches the name displayed in the text (eg, [L23-1.ASM](L23-1.ASM) is Listing 23.1
from [Chapter 23](https://github.com/jeffpar/abrash-black-book/blob/master/src/chapter-23.md)).
I assume something similar was done on the CD-ROM that accompanied the Black Book, but since I don't have the original
book or its CD-ROM, I'm extracting the source code directly from the Markdown text, and then "tabifying" it with 8-column
tab stops.
Development of PCjs VGA support has just begun (June 2015), so don't expect *anything* here to to run properly yet.
---
List of VGA Samples from [Michael Abrash's Graphics Programming Black Book](https://github.com/jeffpar/abrash-black-book):
* [Chapter 23](https://github.com/jeffpar/abrash-black-book/blob/master/src/chapter-23.md)
* [L23-1.ASM](https://github.com/jeffpar/abrash-black-book/blob/master/code/L23-1.ASM)
---
Also, I've updated the PCjs [Library](/disks/pc/library.xml) disk collection to include the following disk image:
<disk path="/tests/pc/vga/">VGA Tests (Black Book)</disk>
But wait, you say, that *path* refers to a directory, not a disk image. And that's true; normally the *path* for a disk
entry will refer to either an IMG file *or* a JSON-encoded IMG file. However, if the *path* ends with a slash, then it's
assumed to be a directory, and so PCjs will ask the server to enumerate the contents of that directory and send back a
JSON-encoded disk image containing all the files in that directory (including any subdirectories).
Since the contents of this directory will probably be in flux for a while, I've opted for this approach. Once
things settle down, I'll generate a JSON-encoded disk image containing a snapshot of this directory.
I've updated a [Compaq DeskPro 386 Machine](/devices/pc/machine/compaq/deskpro386/vga/2048kb/) to use the
[Library](/disks/pc/library.xml) disk collection and automatically load the above disk:
<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: "VGA Tests (Black Book)",
path: "/tests/pc/vga/"}
}' />