These primitives are the lowest level routines needed to perform super VGA graphics on a PC. A sample main program is included that exercises the primitives.
Both Lahey and Microsoft FORTRAN's have graphics libraries. However, the libraries do not support 256 color graphics at resolutions greater than 320x200. The primitives bypass these libraries while still conforming to standard usage of BIOS. The supported graphics modes depend upon the PC graphics card and its memory. Super VGA resolutions of 640x480 and 800x600 have been tested on an ATI VGA Wonder card with 512K memory and on several 80486 PC's (unknown manufacturers) at retail stores.

The primitives were developed for 256 color VGA applications. It is known, for instance, that some CGA and 16 color VGA video modes will not operate correctly using these primitives. Potential users should try the test program on their PC/video card combination to determine applicability.

Running times depend upon the high level application using the primitives. The test program distributed with the primitives generates 18 full screens to show color maps. This test problem requires about a minute on a 20 MHz 80386 in the Microsoft version and about 5 minutes in the Lahey version (one of the rare times when the Lahey version is slower than the Microsoft version).

PSR-0311/01

Run time for the complete test on a 66-MHz PC/80486 was 2 minutes 15 seconds.

Use of the Microsoft primitives requires the following hardware: any PC (including 8086 and 80286), a VGA graphics card, and a monitor.
The Lahey primitives require: an 80386/387 or 80486 PC, a VGA graphics card, and a monitor.

Utilization of the primitives in a high level application requires a Microsoft or Lahey FORTRAN compiler. The Microsoft primitives have been used with compilers from 3.30 through 5.1. The Lahey primitives have been used with the F77L-EM/32 compilers 4.0 through 4.01 (3.0 had some problems).
NOTE: The assembly language routines for the Microsoft primitives were compiled using the Microsoft Macro Assembler 5.1. Compatibility between other FORTRAN/Assembler combinations requires careful examination of their interface requirements. For instance, Lahey and Microsoft pass FORTRAN arguments in opposite order, and Lahey FORTRAN pops arguments off the stack after a call while Microsoft requires that the assembly language routine remove the arguments from the stack.

PSR-0311/01

NEA-DB ran the test cases under MS-DOS 6.0 with the Lahey F77L-EM/32 FORTRAN-77 compiler version 5.11.

The
primitives were developed to implement super VGA graphics in FORTRAN on personal computers under DOS.
The Lahey F77L-EM/32 primitives are written in FORTRAN and use the INTRUP routine for accessing the PC BIOS. This compiler requires an 80486 or an 80386/387 personal computer.
The Microsoft primitives are written in FORTRAN and Assembler (Microsoft macro Assembler 5.1 used). Object code is included for the assembly language routines.