pcjs/tests/pc/vga
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2016-05-16 20:55:32 -07:00
..
L23-1.ASM Generic write mode 0 function was missing set/reset capability 2015-06-27 10:31:26 -07:00
L24-1.ASM Generic write mode 0 function was missing set/reset capability 2015-06-27 10:31:26 -07:00
L25-1.ASM Whitespace 2015-06-27 12:13:32 -07:00
L25-2.ASM Fixed character conversions 2015-06-26 10:27:05 -07:00
L25-3.ASM Remove INT 3 added during testing 2015-06-27 12:09:06 -07:00
L25-4.ASM Fixed character conversions 2015-06-26 10:27:05 -07:00
L26-1.ASM Typo 2015-06-27 12:17:32 -07:00
L26-2.ASM More VGA tests 2015-06-27 12:05:33 -07:00
L27-1.ASM More VGA tests 2015-06-27 18:34:55 -07:00
L27-2.ASM More VGA tests 2015-06-27 18:34:55 -07:00
L27-3.ASM More VGA tests 2015-06-27 18:34:55 -07:00
L28-1.ASM More VGA tests 2015-06-29 09:42:44 -07:00
L28-2.ASM More VGA tests 2015-06-29 09:42:44 -07:00
L28-3.ASM More VGA tests 2015-06-29 09:42:44 -07:00
L29-1.ASM More VGA tests 2015-06-29 11:09:09 -07:00
L29-2.ASM More VGA tests 2015-06-29 11:09:09 -07:00
L29-3.ASM More VGA tests 2015-06-29 11:09:09 -07:00
L29-4.ASM More VGA tests 2015-06-29 11:09:09 -07:00
L30-1.ASM More VGA tests 2015-06-29 15:42:43 -07:00
L30-2.ASM More VGA tests 2015-06-29 15:42:43 -07:00
L31-1.ASM More DAC support 2015-07-05 10:24:32 -07:00
L31-2.ASM More VGA tests 2015-07-02 11:10:34 -07:00
L32-1.ASM More DAC support 2015-07-05 10:24:32 -07:00
L32-2.C More DAC support 2015-07-05 10:24:32 -07:00
L33-1.ASM More VGA tests 2015-07-05 11:38:30 -07:00
L34-1.ASM More VGA tests (sprinkled with some Borland/Microsoft compatibility dust) 2015-07-05 13:35:07 -07:00
L35-1.C More VGA tests (sprinkled with some Borland/Microsoft compatibility dust) 2015-07-05 13:35:07 -07:00
L35-2.C More VGA tests (sprinkled with some Borland/Microsoft compatibility dust) 2015-07-05 13:35:07 -07:00
L35-3.ASM More VGA tests (sprinkled with some Borland/Microsoft compatibility dust) 2015-07-05 13:35:07 -07:00
L42-1.C Scaffolding for VGA CHAIN4 support 2015-06-30 20:29:51 -07:00
L42-2.C Scaffolding for VGA CHAIN4 support 2015-06-30 20:29:51 -07:00
L42-3.C Scaffolding for VGA CHAIN4 support 2015-06-30 20:29:51 -07:00
L42-4.C Scaffolding for VGA CHAIN4 support 2015-06-30 20:29:51 -07:00
L42-5.C Scaffolding for VGA CHAIN4 support 2015-06-30 20:29:51 -07:00
L42-6.ASM Whitespace 2015-07-01 15:49:33 -07:00
L47-1.ASM Mode X test 2015-07-06 16:18:27 -07:00
L47-2.ASM Mode X test 2015-07-06 16:18:27 -07:00
L47-3.ASM Mode X test 2015-07-06 16:18:27 -07:00
L47-4.ASM Mode X test 2015-07-06 16:18:27 -07:00
L47-5.ASM Fix MASM errors (Width became a reserved symbol at some point) 2015-07-07 12:50:40 -07:00
L47-6.ASM Mode X test 2015-07-06 16:18:27 -07:00
L47-7.C Mode X test 2015-07-06 16:18:27 -07:00
L48-1.C Typo 2015-07-07 13:36:07 -07:00
L48-2.ASM More VGA tests 2015-07-07 13:22:24 -07:00
L48-3.ASM More VGA tests 2015-07-07 13:22:24 -07:00
L48-4.ASM More VGA tests 2015-07-07 13:22:24 -07:00
MAKEFILE Typo 2015-07-07 13:36:07 -07:00
README.md Starting work on disambiguating PCjs the emulator from PCjs the project/website; the emulator will become PCx86 2016-05-16 20:55:32 -07:00
REGS.H More VGA tests (sprinkled with some Borland/Microsoft compatibility dust) 2015-07-05 13:35:07 -07:00
VGABIN.json Added disk image of VGA tests/samples 2015-07-09 12:33:01 -07:00

layout title permalink machines
page VGA "Black Book" Tests /tests/pc/vga/
type id debugger config autoMount
pcx86 deskpro386 true /devices/pcx86/machine/compaq/deskpro386/vga/2048kb/debugger/machine.xml
A B
path
/disks/pcx86/dos/compaq/3.31/COMPAQ-DOS331-DISK2.json
path
/tests/pc/vga/VGABIN.json

VGA "Black Book" Tests

To aid in the development of PCjs VGA support, I've added some VGA tests to the project. For now, the only "tests" are samples taken directly from Michael Abrash's Graphics Programming Black Book, which you can run in the VGA "Black Book" Test Machine below.

Abrash's book is available on many sites, but I'm partial to the Markdown version that James Gregory has made available on GitHub, because (a) it's a brilliant way to render and 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 are 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 folder contains just the book's text, I've added a /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 is Listing 23.1 from Chapter 23).

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 everything here to to run properly yet.


List of VGA Samples from Michael Abrash's Graphics Programming Black Book:


Also, I've updated the PCjs Library disk collection to include a disk containing executables built from the sources in this directory:

<disk path="/tests/pc/vga/VGABIN.json">VGA Tests (Black Book)</disk>

The "VGA Tests (Black Book)" disk image (VGABIN) was built with this command:

diskdump --dir=bin --format=json --output=VGABIN.json

Alternatively, if path refers to a directory (ending with a slash) instead of a disk image, the PCjs client will ask the PCjs web 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) every time that disk is requested. Since this puts an added burden on the server, it's best to do this only when running PCjs from a local PCjs web server.

<disk path="/tests/pc/vga/">VGA Tests (Black Book)</disk>

One advantage of using DiskDump is that it automatically converts linefeeds in known text files (including ASM files) into DOS-compatible CR/LF sequences.

VGA "Black Book" Test Machine

The Compaq DeskPro 386 machine below loads the "VGA Tests (Black Book)" disk from the PCjs Library disk collection into Drive B. Click the "Run" button to start the machine.

{% include machine.html id="deskpro386" %}