GSS Graphics with APL*PLUS/PC
Vector 7:4, page 76
The text of this article is not yet online. No complete scan of this issue has been found. The only copy found, on vector.org.uk, is damaged: its page images are lost, but the text machine-read from them survives, shown below (help find a scan).
Unedited OCR text, machine-read from a scan now lost: it contains errors, and its APL is wrong. Shown for searching.
VECTOR Vol.7 No.4
The Trials and Tribulations of using GSS
Graphics with APL*PLUS/PC
talk by George MacLeod November 1990, notes by Jonathan Barman
George MacLeod gave us a heartfelt commentary on the problems in getting decent graphs out of GSS graphics with APL*PLUS/PC.
First George explained why high quality charts are needed. APL Impetus Ltd develop and market a financial planning package Impetus which is a descendant of the Boeing’s TABAPL. Impetus is often used high up in companies and as a result the quality of the output is important, and high quality output must include high quality graphics.
The initial prototypes for Impetus used the 0G graphics available with the APL*PLUS/PC interpreter. The functions mirror those available in ROM BASIC, and the facilities provided are quite simple, for example only one font is provided which is increased in size by pixel replication. Sizes increase by squaring the number of pixels, so big characters look very crude. 0G graphics can be used with a relatively limited range of graphics boards and printers, but there are now a huge array of graphics devices. It has become impossible for STSC to support all the devices on the market.
GSS*CGI was introduced by STSC to solve these problems. GSS is a American company, Graphics Software Systems Inc, who concentrate on providing graphics drivers for every device on the market. CGI stands for Common Graphics Interface which is set of standardised graphics calls for programming languages such as C and FORTRAN. STSC have provided a set of functions in a workspace which reproduce each of the calls provided by GSS*CGI. Using these functions forces the use of extensive looping, as the GSS functions are really designed for compiled languages which can only manipulate scalars.
The first essential before using GSS*CGI is to buy the GSS Programmers Guide costing £50. The APL*PLUS/PC manual gives a simple list of functions and their titles, but not the details of the arguments and values required. For example, the function V_OPEN_WKST takes an eleven element numeric right argument which specifies default values for the device named in the left argument. The exact numbers to are only given in the GSS Guide.
George showed a sample chart using GSS*CGI as supplied. The fonts are only marginally better than the [1G fonts, and the quality is quite low. To get better
76
VECTOR Vol.7 No.4
fonts you need the GSS Completer Kit at £70, which contains lots of device drivers, FONTDRIV.SYS, but no fonts! Bitstream supply fonts at £140. What you actually get is sets of bezier curves defining the characters, together with a font maker. To actually use the Bitstream fonts you have to buy the GSS Font Maker which is part of the GSS Developers Toolkit costing £400. An apparently simple addition turns out to be quite expensive!
Now you have everything the problems really start. Whilst screen display works well the major problem is printing in high resolution. George showed sample charts which took many hours each to produce, and some of them were plainly wrong with headings missing! The problems are almost certainly to do with the way GSS manages memory, and GSS own up to having a problem with bitmaps. Whatever memory is given to GSS it always seems to need more. The memory has to be below the 640K boundary, and any memory allocated to GSS cannot be used by APL.
At this point George & Co. gave up and tried to use the Metafile Interpreter supplied by GSS at £225. The Metafile Interpreter consists of five diskettes full of subroutines, and you have to write a program in C or FORTRAN to produce what you want, So they had to buy a MicroSoft C compiler at £250.
Basically this is as far as George has got with high resolution graphics using APL*PLUS/PC and GSS*CGI. Other alternatives are being looked at such as APL*PLUS II and DYALOG APL. Both these versions of APL can run above 1 Meg and can let GSS run below 640K. APL*PLUS II and APL*PLUS/PC have essentially the same interface with about 120 APL functions matching each of the GSS commands. Dyadic have done rather better in that you can pass many GSS commands to the Auxiliary Processor in one nested array. Also, Dyadic have made some functions ambivalent so that settings can be passed as an optional left argument.
George summarised the situation as follows:
The GSS Graphics system is unsatisfactory when used with APL*PLUS PC.
Very limited experience suggests GSS will work satisfactorily with APL*PLUS ILand DYALOG APL.
Other PC products that offer graphics use GSS and they seem to work well. Perhaps most of the problems are due to poor cohabitation of APL*PLUS/PC and GSS.
GSS is probably the best PC Graphics System available.