Irving-Irving
Software
GSX-86 Library README File
Introduction
GSX-86 (Graphics System eXtension) for MS-DOS was created by Digital
Resarch to provide a unified graphics API across a range of hardware.
Digital Equipment Corporation provided GSX-86 drivers for its Rainbow
100
personal computer under both MS-DOS and CP/M-86/80. Drivers also exist
for
multiple graphics cards on IBM PCs and compatible systems.
GSX-86 is normally accessed using assembly language calls. While this
method is effective, it can significantly increase development time.
DEC
shipped a GSX-86 C library with its GSX for CP/M-86/80 distribution.
This
C library was designed for use with the Mark Williams C compiler. A
later
MS-DOS distribution also included a test port of this C library to the
Computer Innovations C compiler for MS-DOS, a rather odd-ball (by
today's
standards) compiler available at the time. Interestingly, DEC also
included full source code for this library.
Originally this port was modified to support the Microsoft C optimizing
compiler, version 5 specifically. MSC is relatively modern, and copies
can still be found for sale or floating around for download on the
Internet
(do not ask where, they are pirated and, therefore, illegal). However,
using the Microsoft compiler still leaves a relatively substantial
barrier
for anyone wishing to develop for GSX-86 as it is still not free.
This distribution of the GSX-86 library consists of a port of the
original Computer Innovations C version to both the Microsoft C (5.1)
and
OpenWatcom C (1.6) compilers. The Microsoft C version requires three
separate copies of GIOS.ASM, each specifying the memory model size. The
OpenWatcom version requires only one version of GIOS.ASM, which
contains only minor changes from the Microsoft C versions. The memory
model for the OpenWatcom version can be specified in the Assembler
Switches during compilation. All the functionality is identical to the
Computer Innovations and Mark Williams versions.
OpenWatcom
Compiler
The OpenWatcom compiler is simply the new name of the Watcom compiler
suite, and includes C, C++, and Fortran compilers. The Watcom compiler
was released as open source after version 11, and was subsequently
renamed
OpenWatcom. At the time of this writing, the compiler version is 1.6.
The compiler and associated tools are available at the following
address:
http://www.openwatcom.org/
The compiler can be hosted on a variety of platforms, but any target
can be compiled for on any of the platforms. Therefore, an OpenWatcom
installation on an MS Windows system, for example, makes a wonderful
and
relatively modern 16-bit DOS developer environment.
Compiling the Microsoft Library
Before compiling the library, please note that a version compiled with
Microsoft C 5.1 has already been included. This version has been
compiled
for the 8086 processor (so any of the x86 should run it, including
8088)
for small, medium, and large memory models. The libraries are named
"gsx?.lib" where the ? is replaced with a s, m, or l based on which
memory model was used. The Microsoft C libraries are located in the
'msc'
folder. If you wish to continue, the directions are below:
A simple DOS batch file has been included for building the library
using all three memory models. After making sure that "CL.EXE",
"LIB.EXE",
and "MASM.EXE" are all on the system path, run "build.bat". The three
libaries should be built automatically. This process can be suprisingly
time-consuming on an 8088 processor.
Compiling the OpenWatcom Library
Before compiling
the library, please note that versions compiledunder OpenWatcom 1.6
have been included. This version has been compiled
for the 8086 processor (so any of the x86 should run it, including
8088)
for small, medium, and large memory models. The libraries are named
"gsx?.lib" where the ? is replaced with a s, m, or l based on which
memory model was used. The OpenWatcom versions are located in the
'watcom' directory. If you wish to continue, the directions are below:
Create a new project in the OpenWatcom IDE. The IDE runs on Windows,
OS/2, and Linux (under WINE). Select a library (.lib) and specify a
16-bit DOS target. Once the project window pops up, right-click and
select "New Source." Select both the C and ASM files by clicking "Add"
when each is selected, then click Close. Make sure both the C and
assembler routines are configured for the proper memory model by
selecting
"C Compiler Switches..." and "Assembler Switches..." from the Options
menu and proceeding to the "Memory Model and Processor Switches"
section.
Finally, simply select "Make" in the Sources menu to build the library.
This process can be performed from the command-line as well, but there
is really no need since the IDE is actually quite functional. Note that,
although the OpenWatcom compiler provides a DOS-hosted compiler, it
requires a 386 or higher. It is advisable to compile the GSX-86 library
and any programs that will use the library on a modern host and copy the
resulting program to the target DOS system/emulator.
All done! Now you just have to link this library to any GSX-86
programs.
Documentation
All documentation on how to use the library is contained in
GSX86MWC.DOC. This document shipped with the original DEC MWC
CP/M-86/80
edition of GSX-86. Although all functionality should be the smae, it
might
not be.
Sample source code can be found at this distribution's home page.
Bugs
None are known at this time. If you find any problems, please forward
them along to Jeff, who can be reached at
jba@_NOSPAM_member.fsf.org.
More Information
The current psuedo-official support site for this distribution is:
http://jba.freeshell.org/
Browse to the GSX page under Products. News, documentation, and sample
source code are/will be available there. Otherwise, you can also
contact
Jeff Armstrong, the current maintainer, at
jba@_NOSPAM_member.fsf.org.
Authors
Most original source code is complements of some former DEC employees
who have probably forgotten all about GSX-86 at this point. A minimal
amount of source code has been written by
Jeff Armstrong (jba@_NOSPAM_member.fsf.org).
-
Jeff Armstrong (jba@_NOSPAM_member.fsf.org)
March 18, 2007
Copyright 2006 Jeffrey
Armstrong <exhale@_NOSPAM_member.fsf.org>