|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 18304 (0x4780)
Types: TextFile
Names: »GSX.DOC«
└─⟦c96461903⟧ Bits:30002787 SW1602 COMPAS Pascal Version 3.07 Release 1.1
└─⟦this⟧ »GSX.DOC«
COMPAS-86 SUPPLEMENTARY DOCUMENTATION
GSX Interface Routines
Copyright (C) 1984 by
Poly-Data microcenter ApS
This file contains documentation for the GSX interface routines
contained in the GSX.PAS include file. If your computer is not
equipped with high-res graphics, or if the GSX Graphics Operating
System is not available for your computer system, the GSX.PAS and
GSX.DOC files are of no interest to you.
The GSX.PAS include file will allow you to write graphics appli-
cation programs which interface graphics devices via the GSX
Graphics Operating System. The GSX Programmer's Reference Manual
describes in detail all of the functions supported by GSX. The
GSX.PAS library allows you to call any GSX function without
resorting to an assembly language program. Also, the input and
output parameters passing scheme is designed to take full
advantage of the COMPAS Pascal language.
1. Using the GSX interface routines
-----------------------------------
To include the GSX interface routines in the compilation of a
program, insert the following include file directive at the very
beginning of the program:
(*$I GSX*) or (*$I d:GSX*)
where "d:" is the drive containing the GSX.PAS file.
The GSX.PAS file contains the following CONST and TYPE declara-
tions:
CONST
MAXINTIN = 80;
MAXPTSIN = 4;
MAXINTOUT = 80;
MAXPTSOUT = 2;
TYPE
COOR = RECORD
X,Y: INTEGER;
END;
STRINGIN = STRINGÆMAXINTINÅ;
STRINGOUT = STRINGÆMAXINTOUTÅ;
The four constants define the maximum number of input and output
integers and points. MAXPTSIN and MAXPTSOUT need never be chan-
ged. MAXINTIN and MAXINTOUT may however require modification as
they define the maximum lengths of strings that can be input and
output. MAXINTIN and MAXINTOUT should never be less than 10. The
COOR type is used for storing coordinates. Many routines require
an ARRAYÆ1..NÅ OF COOR as a parameter, so you will frequently use
this type. STRINGIN and STRINGOUT define the type of strings that
can be input and output. Strings of smaller maximum lengths may
of course be used as well.
In addition, the GSX.PAS file declares the following variables:
VAR
CONTRL : ARRAYÆ1..9Å OF INTEGER;
INTIN : ARRAYÆ1..MAXINTINÅ OF INTEGER;
PTSIN : ARRAYÆ1..MAXPTSINÅ OF COOR;
INTOUT : ARRAYÆ1..MAXINTOUTÅ OF INTEGER;
PTSOUT : ARRAYÆ1..MAXPTSOUTÅ OF COOR;
WSINTOUT : ARRAYÆ1..45Å OF INTEGER;
WSPTSOUT : ARRAYÆ1..6Å OF INTEGER;
ACTUAL : INTEGER;
Don't modify any of the declarations. CONTRL, INTIN, PTSIN,
INTOUT and PTSOUT are used internally by the GSX interface rou-
tines to pass parameters to GSX. WSINTOUT and WSPTSOUT always
contain the values returned by the last "Open Workstation" call.
Refer to the GSX documentation for a complete description of
these arrays. ACTUAL is used by many routines to return the
actual value realized when a request is made to change a device
parameter.
Some of the routines require an ARRAYÆ1..NÅ OF INTEGER/COOR as a
variable parameter. Such parameters are declared as "untyped"
parameters by all routines, to allow arrays of variable length to
be passed. The drawback of this method is that the compiler's
type checks are disabled, thereby leaving all type checks up to
you!
In addition to the identifiers described above and the identifi-
ers of the GSX interface routines, the following identifiers are
used in GSX.PAS: GSX, GSXC, GSXP, GSXI, GSXX, GSXY, ESCP and
ESCN. Don't use these identifiers in your application programs,
or you will get a "Duplicate identifier" error message.
2. Workstation functions
------------------------
Function: Open Workstation with default parameters.
Header: PROCEDURE OPENWS(ID: INTEGER);
Remarks: ID is the workstation ID number. All input parame-
ters, i.e. INTINÆ2..10Å, default to 1. To explicitly
specify the input parameters use the INITWS proce-
dure. WSINTOUT and WSPTSOUT contain the returned
values. These may be examined to determine the cha-
racteristics of the driver.
Function: Open Workstation specifying parameters.
Header: PROCEDURE INITWS(VAR WSINTIN);
Remarks: The type of WSINTIN is ARRAYÆ1..10Å OF INTEGER. Note
that the first element must contain the workstation
ID number. WSINTOUT and WSPTSOUT contain the returned
values. These may be examined to determine the cha-
racteristics of the
driver.
Function: Close Workstation.
Header: PROCEDURE CLOSEWS;
Function: Clear Workstation.
Header: PROCEDURE CLEARWS;
Function: Update Workstation.
Header: PROCEDURE UPDATEWS;
3. Line drawing functions
-------------------------
Function: Polyline.
Header: PROCEDURE POLYLINE(NPTS: INTEGER; VAR PTSIN);
Remarks: NPTS is the number of points in PTSIN. The type of
PTSIN is ARRAYÆ1..NPTSÅ OF COOR.
Function: Set Polyline Line Type.
Header: PROCEDURE LINETYPE(TYP: INTEGER);
Remarks: TYP is the requested line type. ACTUAL returns the
actual line type.
Function: Set Polyline Line Width.
Header: PROCEDURE LINEWIDTH(WIDTH: INTEGER);
Remarks: WIDTH is the requested line width in NDC units.
ACTUAL returns the actual line width.
4. Point marking functions
--------------------------
Function: Polymarker.
Header: PROCEDURE POLYMARK(NPTS: INTEGER; VAR PTSIN);
Remarks: NPTS is the number of points in PTSIN. The type of
PTSIN is ARRAYÆ1..NPTSÅ OF COOR.
Function: Set Polymarker Type.
Header: PROCEDURE MARKTYPE(TYP: INTEGER);
Remarks: TYP is the requested polymarker type. ACTUAL returns
the actual polymarker type.
Function: Set Polymarker Scale.
Header: PROCEDURE MARKSCALE(SCALE: INTEGER);
Remarks: SCALE is the requested polymarker height in NDC
units. ACTUAL returns the actual height.
5. Generalized drawing primitives
---------------------------------
Function: Bar.
Header: PROCEDURE BAR(X1,Y1,X2,Y2: INTEGER);
Remarks: X1 and Y1 are the coordinates of the lower left
corner. X2 and Y2 are the coordinates of the upper
right corner.
Function: Arc.
Header: PROCEDURE ARC(STARTANG,ENDANG,XCTR,YCTR,XSTART,YSTART,
XEND,YEND,RADIUS: INTEGER);
Remarks: STARTANG is the start angle in tenths of degrees (0-
3600). ENDANG is the end angle in tenths of degrees
(0-3600). XCTR and YCTR are the coordinates of the
center. XSTART and YSTART are the coordinates of the
start point of the circumfence. XEND and YEND are the
coordinates of the end point of the circumfence.
RADUIS is the radius in NDC units.
Function: Pie Slice.
Header: PROCEDURE PIE(STARTANG,ENDANG,XCTR,YCTR,XSTART,YSTART,
XEND,YEND,RADIUS: INTEGER);
Remarks: See description of ARC.
Function: Circle.
Header: PROCEDURE CIRCLE(XCTR,YCTR,RADIUS: INTEGER);
Remarks: XCTR and YCTR are the coordinates of the center.
RADIUS is the radius in NDC units.
6. Filled area functions
------------------------
Function: Filled Area.
Header: PROCEDURE POLYFILL(NPTS: INTEGER; VAR PTSIN);
Remarks: NPTS is the number of points in PTSIN. The type of
PTSIN is ARRAYÆ1..NPTSÅ OF COOR.
Function: Cell Array.
Header: PROCEDURE CELLARRAY(ROWLEN,WIDTH,HEIGHT,MODE: INTEGER;
X1,Y1,X2,Y2: INTEGER; VAR COLORINDEX);
Remarks: ROWLEN is the length of each row in the color index
array. WIDTH is the number of elements in each row of
the cell array. HEIGHT is the number of rows in the
cell array. MODE is the pixel operation to be perfor-
med (1-4). X1 and Y1 are the coordinates of the lower
left corner. X2 and Y2 are the coordinates of the
upper right corner. COLORINDEX is the color index
array. The type of COLORINDEX is ARRAYÆ1..(HEIGHT-
1)*ROWLEN+WIDTHÅ OF INTEGER.
Function: Set Fill Interior Style.
Header: PROCEDURE FILLTYPE(TYP: INTEGER);
Remarks: TYP is the requested fill style. ACTUAL returns the
actual fill style.
Function: Set Fill Style Index.
Header: PROCEDURE FILLSTYLE(INDEX: INTEGER);
Remarks: INDEX is the requested fill style index. ACTUAL re-
turns the actual fill style index.
7. Text functions
-----------------
Function: Text.
Header: PROCEDURE GTEXT(X,Y: INTEGER; S: STRINGIN);
Remarks: X and Y are the coordinates of the lower left corner
of the first character. S is the character string.
The characters in S are converted to words and stored
in INTIN before the call. The maximum length there-
fore depends on the MAXINTIN constant.
Function: Set Character Height.
Header: PROCEDURE CHARHEIGHT(HEIGHT: INTEGER;
VAR CHARW,CHARH,CELLW,CELLH: INTEGER);
Remarks: HEIGHT is the requested character height in NDC
units. CHARW, CHARH, CELLW and CELLH return the ac-
tual character width and height and cell width and
height.
Function: Set Character Up Vector.
Header: PROCEDURE CHARUPVEC(ANGLE: INTEGER);
Remarks: ANGLE is the requested rotation angle of the baseline
in tenths of degrees (0-3600). The run and the rise
of the baseline are automatically calculated. ACTUAL
returns the actual rotation angle.
Function: Set Text Font.
Header: PROCEDURE TEXTFONT(FONT: INTEGER);
Remarks: FONT is the requested text font number. ACTUAL re-
turns the actual text font number.
8. Color functions
------------------
Function: Set Color Representation.
Header: PROCEDURE SETCOLOR(INDEX,RED,GREEN,BLUE: INTEGER);
Remarks: INDEX is the requested color index. RED, GREEN and
BLUE are the requested color intensities in tenths of
a percent (0-1000). The actual color intensities
selected may be examined using the INQCOLOR proce-
dure.
Function: Set Polyline Color Index.
Header: PROCEDURE LINECOLOR(INDEX: INTEGER);
Remarks: INDEX is the requested color index. ACTUAL returns
the actual color index.
Function: Set Polymarker Color Index.
Header: PROCEDURE MARKCOLOR(INDEX: INTEGER);
Remarks: INDEX is the requested color index. ACTUAL returns
the actual color index.
Function: Set Text Color Index.
Header: PROCEDURE TEXTCOLOR(INDEX: INTEGER);
Remarks: INDEX is the requested color index. ACTUAL returns
the actual color index.
Function: Set Fill Color Index.
Header: PROCEDURE FILLCOLOR(INDEX: INTEGER);
Remarks: INDEX is the requested color index. ACTUAL returns
the actual color index.
9. Mode control functions
-------------------------
Function: Set Writing Mode.
Header: PROCEDURE WRITEMODE(MODE: INTEGER);
Remarks: MODE is the requested writing mode. ACTUAL returns
the actual writing mode.
10. Input functions
-------------------
Function: Set Input Mode.
Header: PROCEDURE INPUTMODE(DEVICE,MODE: INTEGER);
Remarks: DEVICE is the requested logical device. MODE is the
requested input mode. Usually this procedure is not
used since the the input procedures select the proper
input mode automatically.
Function: Input Locator, Request Mode.
Header: PROCEDURE RQLOCATOR(DEVICE,XIN,YIN: INTEGER;
VAR STATUS,TERM,XOUT,YOUT: INTEGER);
Remarks: DEVICE is the requested locator device. XIN and YIN
are the initial coordinates of the locator in NDC
units. STATUS=0 means unsuccessful request, STATUS>0
means successful. TERM returns the terminator value.
XOUT and YOUT return the final coordinates of the
locator in NDC units.
Function: Input Locator, Sample Mode.
Header: PROCEDURE SMLOCATOR(DEVICE: INTEGER;
VAR STATUS,XOUT,YOUT: INTEGER);
Remarks: DEVICE is the requested locator device. STATUS=0
means unsuccessful sample, STATUS>0 means successful.
XOUT and YOUT return the final coordinates of the
locator in NDC units.
Function: Input Valuator, Request Mode.
Header: PROCEDURE RQVALUATOR(DEVICE,VIN: INTEGER;
VAR STATUS,VOUT: INTEGER);
Remarks: DEVICE is the requested valuator device. VIN is the
initial value (0-32767). STATUS=0 means unsuccessful
request, STATUS>0 means successful. VOUT is the out-
put value.
Function: Input Valuator, Sample Mode.
Header: PROCEDURE SMVALUATOR(DEVICE: INTEGER;
VAR STATUS,VOUT: INTEGER);
Remarks: DEVICE is the requested valuator device. STATUS=0
means unsuccessful sample, STATUS>0 means successful.
VOUT is the output value.
Function: Input Choice, Request Mode.
Header: PROCEDURE RQCHOICE(DEVICE,CIN: INTEGER;
VAR STATUS,COUT: INTEGER);
Remarks: DEVICE is the requested choice device. CIN is the
initial choice requested. STATUS=0 means unsuccessful
request, STATUS>0 means successful. COUT returns the
choice number.
Function: Input Choice, Sample Mode.
Header: PROCEDURE SMCHOICE(DEVICE: INTEGER;
VAR STATUS,COUT: INTEGER);
Remarks: DEVICE is the requested choice device. STATUS=0 means
unsuccessful sample, STATUS>0 means successful. COUT
returns the choice number.
Function: Input String, Request Mode.
Header: PROCEDURE RQSTRING(DEVICE,MAXLEN,MODE: INTEGER;
VAR S: STRINGOUT);
Remarks: DEVICE is the requested string device. MAXLEN is the
maximum string length requested. MODE=0 means no
echo, MODE=1 means echo input on screen. S returns
the string. If the length of S is zero, the request
was unsuccessful. If the string variable passed to
RQSTRING is not of type STRINGOUT, use the (*$V-*)
compiler directive to disable "strict" string type
checking.
11. Status inquiry functions
----------------------------
Function: Inquire Color Representation.
Header: PROCEDURE INQCOLOR(RINDEX,FLAG: INTEGER;
VAR SINDEX,RED,GREEN,BLUE: INTEGER);
Remarks: RINDEX is the requested color index. FLAG=0 means
specified color values, FLAG=1 means actual color
values. SINDEX returns the selected color index. RED,
GREEN and BLUE return the color intensities in tenths
of a percent (0-1000).
12. Escape functions
--------------------
Function: Inquire Addressable Character Cells.
Header: PROCEDURE INQCELLS(VAR ROW,COL: INTEGER);
Remarks: ROW returns the number of rows on the device. COL
returns the number of columns on the device.
Function: Enter Graphics Mode.
Header: PROCEDURE ENTERGRAF;
Function: Exit Graphics Mode.
Header: PROCEDURE EXITGRAF;
Function: Alpha Cursor Up.
Header: PROCEDURE CURSORUP;
Function: Alpha Cursor Down.
Header: PROCEDURE CURSORDOWN;
Function: Alpha Cursor Right.
Header: PROCEDURE CURSORRIGHT;
Function: Alpha Cursor Left.
Header: PROCEDURE CURSORLEFT;
Function: Alpha Cursor Home.
Header: PROCEDURE CURSORHOME;
Function: Alpha Erase To End Of Screen.
Header: PROCEDURE ERAEOS;
Function: Alpha Erase To End Of Line.
Header: PROCEDURE ERAEOL;
Function: Direct Cursor Address.
Header: PROCEDURE CURSOR(ROW,COL: INTEGER);
Remarks: ROW is the requested row number. COL is the requested
column number.
Function: Output Cursor Addressable Text.
Header: PROCEDURE CTEXT(S: STRINGIN);
Remarks: S is the character string. The characters in S are
converted to words and stored in INTIN before the
call. The maximum length therefore depends on the
MAXINTIN constant.
Function: Reverse Video On.
Header: PROCEDURE REVERSEON;
Function: Reverse Video Off.
Header: PROCEDURE REVERSEOFF;
Function: Inquire Current Cursor Address.
Header: PROCEDURE INQCURSOR(VAR ROW,COL: INTEGER);
Remarks: ROW returns the row number. COL returns the column
number.
Function: Inquire Tablet Status.
Header: PROCEDURE INQTABLET(VAR STATUS: INTEGER);
Remarks: STATUS returns 0 if a graphics tablet is not availab-
le or 1 if a graphics tablet is available.
Function: Hardcopy.
Header: PROCEDURE HARDCOPY;
Function: Place Graphics Cursor At Location.
Header: PROCEDURE GCURSOR(X,Y: INTEGER);
Remarks: X and Y are the requested coordinates for the grap-
hics cursor.
Function: Remove Last Graphics Cursor.
Header: PROCEDURE REMGCUR;
«eof»