Back To Home - The Story - Timeline - Gallery - PC Week Excerpts - My Tutorial - Their Tutorial - Their Marketing Copy - GSX and GSS*CGI - Archive.org uploads
Background
The Graphical System eXtension, or GSX, was an implementation of the Graphical Kernel System (or GKS) for IBM PCs and compatibles. It never gained widespread adoptance, though eventually GEM was built out of the base of GSX. GEM would go on to join the pantheon of pre-Windows (or really, pre-Windows 3.0) windowing environments on the PC, with others like Visi-On being equally poorly remembered today. GSX itself had more prevalance on CP/M-86 than on DOS, but CP/M-86 was never as popular as DOS. GSX also, however, led to the Computer Graphics Interface (CGI) by Graphics Software Systems (GSS), stylized as GSS*CGI or GSS-CGI. As far as I can tell GSS*CGI is the correct brand.
Why am I listing all these dead-end technologies? Because they're what DO-IT and FrontPage used, and GSS*CGI especially I find fascinating because very little else used it. I want to document what little I know about these, because there's not much else out there about either.
The idea behind these technologies is straightforward enough: you, the software developer, receive a library that handles each of input, display, and hardcopy output in a relatively device-independent way. Digital Research (for GSX) or Graphical Software Systems (for GSS*CGI) will provide drivers for new hardware as it is developed, or you could develop your own for GSX. There's a reference to an SDK for GSS*CGI but I have no idea where I would possibly find such a thing.
GSX
GSX requires an ASSIGN.SYS file that tells GSX.EXE which drivers to load. These drivers are loaded to a numeric ID, so that a client application can assume that ID 1 is "the display" regardless of which display driver is loaded. Most commonly 1 was a "console" driver that handled both display and input.
Studio Software's GSX drivers were, as far as I can tell, authored entirely in-house. I have (and archived) the source for:
Name | Type | Description |
---|---|---|
HERMSM.SYS | Console | Hercules/MDA, Mouse Systems Mouse |
HIDMP29.SYS | Hardcopy | Houston Instruments HIPLOT DMP-29 plotter |
HIDMP40.SYS | Hardcopy | Houston Instruments HIPLOT DMP-40 plotter |
HP7470A.SYS | Hardcopy | HP 7470A plotter |
IBMMSMD.SYS | Console | MDA/CGA with Mouse Systems Mouse |
STROBE.SYS | Hardcopy | Strobe 200/260 plotter |
The Mouse Systems Mouse drivers also include support for the SummaGraphics mouse.
The following exist in compiled form, but I did not receive the source for them and as such I'm not certain what most of them are for. I've included the "first" place I found them, though most are on several disks.
Name | Type | Found In | Comments |
---|---|---|---|
IBMMSM.SYS | Console | DO-IT Beta 1.2, Proof disk | Note the lack of the "D", probably an earlier revision |
OKM92.SYS | Hardcopy? | DO-IT Beta 1.2, Proof disk | ? |
FX80HR.SYS | Hardcopy? | DO-IT Beta 1.2, Proof disk | ? |
HER.SYS | Console | DO-IT 1.03, Master Disk | Hercules/MDA, no mouse? |
IBM.SYS | Console | DO-IT 1.03, Master Disk | CGA, no mouse? |
IBMSGD.SYS | Console | DRAW | Likely CGA with some kind of plotter; from the name I suspect "SummaGraphics Device" or SummaGraphics Drawing" |
Despite the MSM(D) drivers claiming support for Mouse Systems mice I cannot get that to work in DO-IT. I have no idea if I'm just doing something wrong or if these are just badly written.
GSS*CGI
GSS*CGI was developed to provide developers a migration path off of GSX, as by the mid 80s Digital Research wasn't spending much R&D effort on GSX. It provided all the same graphics calls, though with some additional infrastructure, and GSS provided drivers for most common hardware. Instead of of ASSIGN.SYS, you would need to actually load these in CONFIG.SYS like real device drivers, along with a GSSCGI.SYS meta-driver that would dispatch to the others. It also includes a DRIVERS.EXE, but I'm not sure what that actually does.
Most GSS*CGI drivers include a description inside their data segments, which I've included for completeness. They also include several versions. I have numbered these in the order they occur in the .SYS file. "Version 1" appears at the top of the file usually around offset 0x50 and sometimes around 0x300, and "Version 2" and "Version 3" appear back to back in the same place as the description, usually around offset 0x7000-0x8000. I believe "Version 1" is the driver version, "Version 2" is the GSS package version, and "Version 3" is the build date and possibly build tools version.
As no commercial packaged installer for FrontPage 1.1 or 1.2 survived, I don't know which drivers FrontPage actually shipped with. The FrontPage demo had the following. Note the lack of any input drivers, since this was a non-interactive demo.
Name | Type | Version 1 | Version 2 | Version 3 | Description | Notes |
---|---|---|---|---|---|---|
FONTDRV.SYS | Fonts | 1.9 | - | 1.24 1/24/86 13:14:53 | Fonts Driver | Unclear what this is for, possibly for loading certain nonstandard fonts |
GSSCGI.SYS | Meta | - | 1.10 | 1.24 6/27/86 17:25:11 | GSS Computer Graphics Interface Controller | GSS*CGI meta-driver |
GSSVDI.SYS | Meta | - | 1.10 | 1.24 10/10/85 20:16:35 | VDI Controller | Unclear what this is for. The version shipped with the demo has "PROTOTYPE ONLY". I believe that VDI was an earlier term for what became GSS*CGI, but I have nothing to back this up except that it fits the facts. |
HERCBW.SYS | Display | 1.11 | 2.00 | 1.24 3/1/86 21:12:38 | Hercules 720x348 2-Color Graphics Driver | |
IBMBW.SYS | Display | 1.7 | 1.10 | 1.24 10/15/85 17:44:57 | IBM PC 640x200 2-Color Graphics Driver | |
IBMEGA.SYS | Display | 1.7 | 1.10 | 1.24 10/15/85 17:43:12 | IBM Enhanced Graphics Adapter / Multi-Mode Enhanced Color Display Driver |
The installer developer's PC had the following. It seems likely that not all of these would have been shipped with FrontPage, as things like IBMGIJOY and IS30 both have nothing to really do with how FrontPage works (sadly, it does not seem possible to have IBMGIJOY present a cursor device) so most likely this was just a set of drivers they acquired from a GSS SDK.
Name | Type | Version 1 | Version 2 | Version 3 | Description | Notes |
---|---|---|---|---|---|---|
DIAB150.SYS | Printer | 1.11 | 2.00 | 1.24 3/6/86 14:12:18 | Diab150 Printer Driver | |
EPSON80.SYS | Printer | 1.11 | 2.00 | 1.24 2/14/86 14:13:44 | Epson MX80 Printer Driver | |
EPSON100.SYS | Printer | 1.11 | 2.00 | 1.24 2/14/86 14:14:05 | Epson MX100 Printer Driver | |
FONTDRV.SYS | Fonts | 1.9 | - | 1.24 1/24/86 13:14:53 | Fonts Driver | |
GSSCGI.SYS | Meta | - | 1.10 | 1.24 6/27/86 17:25:11 | GSS Computer Graphics Interface Controller | |
HERBW.SYS | Display | 1.11 | 2.00 | 1.24 3/1/86 21:12:38 | Hercules 720x348 2-Color Graphics Driver | |
HPPLOT.SYS | Plotter | 1.11 | 2.02 | 1.24 6/27/86 12:31:39 | HP 7470/7475 Plotter Driver | |
IBMBW.SYS | Display | 1.9 | 2.00 | 1.24 1/21/86 12:26:31 | IBM PC 640x200 2-Color Graphics Driver | |
IBMCO.SYS | Display | 1.9 | 2.00 | 1.24 1/21/86 12:27:58 | IBM PC 320x200 4-Color Graphics Driver | |
IBMEGA.SYS | Display | 1.9 | 2.00 | 1.24 1/21/86 12:23:59 | IBM Enhanced Graphics Adapter / Multi-Mode Enhanced Color Display Driver | |
IBMGIJOY.SYS | Input | 1.9 | 2.00 | 1.24 1/21/86 12:50:29 | IBM Game Adapter Input Driver | |
IBMGPR.SYS | Printer | 1.9 | 2.00 | 1.24 1/21/86 12:48:32 | IBM Graphics Printer | Lack of "Driver" is original |
IBMPRCOL.SYS | Printer | 1.9 | 2.00 | 1.24 1/24/86 19:28:31 | IBM Color Printer Graphics Driver | |
IS30.SYS | Scanner | 1.11 | - | 1.24 3/17/86 16:48:08 | Ricoh IS30 Scanner Driver | |
LASERJET.SYS | Printer | 1.11 | 2.00 | 1.24 5/27/86 16:41:00 | HP Laserjet Printer Driver | |
META.SYS | Metafile | 1.11 | 2.01 | 1.24 6/5/86 18:10:55 | Virtual Device Metafile Driver | Used to render the other major component of CGI, Computer Graphics Metafile (CGM), which is not used by FrontPage |
MOUSESYS.SYS | Mouse | 1.9 | 2.00 | 1.24 1/21/86 13:02:45 | Mouse Systems Mouse Driver | |
MSPARALL.SYS | Mouse | 1.9 | 2.00 | 1.24 1/21/86 13:27:46 | Microsoft Parallel Mouse Driver | |
MSSERIAL.SYS | Mouse | 1.9 | 2.00 | 1.24 1/21/86 13:03:49 | Microsoft Serial Mouse Driver | |
SUMMATB.SYS | Digitizer | 1.11 | 2.00 | 1.24 6/27/86 16:12:04 | Mouse Systems Mouse Driver | This is clearly not the correct description |
TEK4695.SYS | Printer | 1.11 | 2.00 | 1.24 2/25/86 02:19:51 | Tek4695 Printer Driver | |
THINKJET.SYS | Printer | 1.9 | 2.00 | 1.24 1/21/86 12:50:04 | HP Thinkjet Printer Driver | |
TOSHIBA.SYS | Printer | 1.11 | 2.00 | 1.24 6/19/86 23:40:51 | Toshiba Printers Driver | |
VISMOUSE.SYS | Mouse | 1.9 | 2.00 | 1.24 1/21/86 13:04:55 | VisiOn Mouse Driver |
Notably and very sadly missing is WY700.SYS, which would have provided support for the Wyse and Amdek 1280x800 monochrome monitors and their proprietary video card. The 1.1 installer makes a reference to this, but I only have the installer source for 1.1, the drivers are from a backup of the aborted GSS*CGI version of FrontPage 1.0 and WY700.SYS must have been from a later relase.
I searched for other software using GSS*CGI and only found a few results that are still available. There are others that were released, but they're mostly either academic or industrial software and thus very difficult to obtain. In particular Siemens Simatic APT 1.9 should have this, but even having some connections to the wonderful world of industrial software I was not able to produce a copy of this. What I did find was two programs that used GSS*CGI just for printer support. Those are listed here.
SuperCalc 5:
Name | Type | Version 1 | Version 2 | Version 3 | Description | Notes |
---|---|---|---|---|---|---|
GSSCGI.SYS | Meta | - | 1.13 | 1.26 4/26/88 20:32:00 | - | |
IBMAFH.SYS | Display | 1.16 | 2.13 | 1.26 4/27/88 12:57:05 | IBM Advanced Function Graphics Adapter / 1024x768 Color Display Driver | |
LL.SYS | Printer | 1.10 | 1.10 | 1.24 2/11/86 11:28:35 | Lasergraphics Language Driver | "This driver derived from GSS*CGI Device Driver Programmers Kit, Copyright (C) 1985, 1986 GSS, Inc" |
META.SYS | Metafile | 1.16 | 2.13 | 1.26 2/1/88 13:25:02 | Virtual Device Metafile Driver | |
MTXSCODL.SYS | Camera | 420.2 | 1.00 | 420.13 8/5/85 08:37:02 | MATRIX SCODL System Device Driver | Yes, a bunch of these have their version as the weed number--I honestly wonder if somebody was having a laugh about this, I think 85 is late enough that that was a thing by then |
PALETTE.SYS | Camera | 420.2 | 1.01 | 420.13 6/12/85 08:25:47 | Polaroid Palette Camera Device Driver | |
PSCRIPT.SYS | Printer | 1.15 | 1.00 | 1.26 4/2/87 11:51:04 | Postscript System Device Driver | |
QMS.SYS | Printer | 420.2 | 1.00 | 420.13 7/8/85 10:39:35 | QMS LASERGRAFIX Graphics Driver | |
SUPERIMG.SYS | Metafile | 1 | 1.00 | 420.13 9/5/85 12:06:29 | ISSCO Metafile Driver | I'm not sure what format this is actually for |
VENTURA.SYS | Metafile | 1.0 | 1.00 | 420.13 9/5/85 12:06:29 | Ventura Metafile Driver | Nor this one |
VIDEOSHO.SYS | ? | 1.15 | 1.00 | 1.26 4/2/87 11:51:04 | VIDEOSHOW CGI device driver | The official type is "other" and I can't easily determine "VIDEOSHOW" from this context |
Harvard Graphics:
Name | Type | Version 1 | Version 2 | Version 3 | Description | Notes |
---|---|---|---|---|---|---|
BELLHOWL.SYS | Display | 420.2 | 1.05 | 420.13 5/7/87 09:49:17 | Quintar Color Display Graphics Driver | This is a very rare and unusual graphics card from the XT era |
CLRMSTR.SYS | Printer | 1.15 | 1.10 | 1.26 4/2/87 11:51:04 | Calcomp Colormaster Device Driver | |
GSSCGI.SYS | Meta | - | 1.10 | 1.24 6/27/86 17:25:11 | GSS Computer Graphics Interface Controller | |
LL.SYS | Printer | 1.11 | 1.11 | Version 1.24 2/11/86 11:28:35 | Lasergraphics Language Driver | "This driver derived from GSS*CGI Device Driver Programmers Kit" |
META.SYS | Metafile | 1.11 | 2.01 | 1.24 6/5/86 18:10:55 | Virtual Device Metafile Driver | |
MTXSCODL.SYS | Camera | 420.2 | 1.00 | 420.13 8/5/85 08:37:02 | MATRIX SCODL System Device Driver |