FINGS: Fortran Interactive Noddy Graphics System
This is the specification for FINGS, the minimal graphics for use on the ICF multi-user minis.
Many routines come in two forms. One takes real floating point arguments and the other integer coordinates.
For simplicity they have been listed together. The description usually relates to the floating point form.
- CALL MOVT02 (X, Y)
- CALL JMOVTO (IX,IY)
- X,Y:
the co-ordinates of the end point, specified in the current drawing units and relative to the
current axes.
- MOVT02 is used to make a non-drawing movement from the current drawing position to a
specified end point.
- CALL MOVBY2(DX,DY)
- CALL JMOVBY(IDX,IDY)
- DX,DY:
incremental co-ordinate distances (in the current units) from the current drawing position
to the end point.
- MOVBY2 is used to make a non-drawing movement from the current drawing position to a
specified end point.
- CALL LINT02(X,Y)
- CALL JLINTO(IX,IY)
- X,Y:
the co-ordinates (relative to the axes and in the current units) of point.
current the end
LINT02 is used to draw a straight line from the current drawing position to a specified end point.
- CALL LINBY2(DX,DY)
- CALL JLINBY(IDX,IDY)
- DX,DY: incremental co-ordinate distances (in the current units) from the current drawing position to the end point.
- LINBY2 draws a straight line from the current drawing
position to a specified end point.
- CALL VEX(X1,Y1,X2,Y2)
- CALL JVEC(IX1,IY1,IX2,IY2)
- (X1,Y1): starting point, (X2,y2) end point
- Draws a straight line from (X1,Y1) to (X2,Y2)
- CALL CHAHOL(IHOL)
- IHOL:
A Holerith string.
- CHAHOL outputs a character string consisting of any combination of characters
in the FORTRAN set, plus lower case letters and any special characters permitted by the
system. The length of the string should not exceed 140 characters.
- The character string as specified by the argument IHOL is output on a single line.
The bottom left-hand corner of the first character will be at the current drawing point.
The end point is the bottom right-hand corner of the last character. This allows another string
to be added without re-positioning.
However, the current drawing position after character drawing is undefined for all line drawing
facilities and must be re-established by means of an invisible absolute drawing movement.
If windowing is on, the string will only be displayed if the start of the string is within the users
window.
If concatenating the visibility of the previous string will apply.
All strings must be terminated by *. which is not drawn.
*L means shift into lower case,
*U means shift into upper case,
** means * .
The escape character * may be set to any other character by the CHAESC routine (q.v.).
Chracters not available on this device will be output as I.
- CALL CHAESC (1H+)
- +,-: a Hollerith character.
- CHAESC sets the escape character for use with CHAHOL, CHAARR, CURDEF, and RDCHST.
The default escape character is *. The escape character may be set to any character in the
FORTRAN set except full stop.
The following characters may follow the escape character: . string terminator, U change to upper case,
L change to lower case.
- CALL CHAASC(NCHAR)
- NCHAR: an integer that represents the ASCII code of a character.
- CHAASC outputs a character whose ASCII code is NCHAR. Placement rules as for CHAHOL.
- CALL CHAINT(INT,NWIDTH)
- INT: Integer variable. NWIDTH:
Field width, that will be large enough to accommodate all digits of INT, including its sign if
a negative number.
- CHAINT outputs the value of an integer variable.
The integer value is output as a decimal number. It is preceded by a minus sign for negative
values or a space for positive values and is right-justified in the specified field width.
Where the number does not fill the specified field width, it is filled out to the left by spaces.
Where the field width (NWIDTH) is negative, the integer value is output with all leading spaces
suppressed.
The start point of the number is the current drawing position and will be the bottom left-hand
corner of the first character. The end point is the bottom right-hand corner of the string. This
allows concatenation of successive character strings. However, the current drawing position after a
character string
is undefined for all line drawing facilities and must be re-established by means of an invisible
absolute drawing movement.
Windowing is defined as in CHAHOL.
- CALL CHAFIX(REAL,NIDTH,MPLACE)
- REAL: real number; NWIDTH: field width, large enough to accommodate all digits of REAL,
sign and decimal point;
NPLACE: required number of places after the decimal point (less than or equal to 6).
- CHAFIX outputs the value of a real number variable in fixed point format (the FORTRAN F format).
The variable is output as a real number and preceded by a minus sign for negative numbers or a space
for positive numbers.
Where the number to be output does not fill the field, it is right-justified and filled out to the left by
spaces. Rest as for CHAINT.
- CALL CHAFLO(REAL,NWIDTH)
- REAL: real number variable; NWIDTH: field width large enough to accommodate all
digits of REAL including its sign, decimal point and exponent.
- CHAFLO outputs the value of a real number variable in
floating point format. Restrictions as for CHARINT.
- CALL CHAARR(IARRAY,NWORDS,NFORM)
- IARRAY:
an integer array that holds characters to be output; NWORDS
length of array IARRAY;
NFORM:
the number of characters per array element of array IARRAY.
- CHARR outputs a string of characters from array IARRAY. Characters in IARRAY must be in A(NFORM)
format. For example, if NFORM = I, characters in IARRAY are in Al format.
- CALL SYMBOL(N)
- N:
the number of the symbol to be output.
- SYMBOL draws one of the eight available symbols centred at the current drawing position.
The pen is left where it was at the start of the symbol.
If windowing is on, the symbol will only be drawn if its centre is within the users window.
Note:
SYMBOL SIZE is not affected by CHASIZ.
Symbols cannot be concatenated.
- CALL CLICTL(I)
- I=0 or 1
- I=0, clipping is disabled (default); I=1: clipping is enabled.
Clipping is performed with respect to the boundary defined by a call to WINDOL.
If the user has not specified a window the default values used will result in clipping to the
maximum visible square area.
- CALL WINDOL(XMIN,XMAX,YMIN,YMAX)
- Defines in user co-ordinates the limits of the window.
The coordinate system defined by WINDOL maps onto the physical screen area defined by a
call to VUPORT.
Thus:
If clipping is enabled the picture will be clipped at the limits set by WINDOL.
The default window will be (XMIND, XMAXD, YMIND, YMAXD) where the parameters are the
device co-ordinates corresponding to the default viewport (see VUPORT).
- CALL VUPORT(XUMIN,XUMAX,YUMIN,YUMAX)
- Arguments:
Normalised device co-ordinates.
A viewport is a rectangular area onto which the users window is mapped. The default viewport is
the unit square with lower left-hand corner at (0.0, 0.0) and top right-hand corner at (1.0, 1.0).
- CALL BROKEN (I)
- I=0:Solid line; I=1: Dotted; I=2: Dot-dashed;I=3: Short dashed; I=4: Long dashed.
- Broken selects the line drawing format. in hardware where possible.
Default is solid lines. No control over length of dots/dashes.
- CALL WRTHRU(I)
- =0 Normal mode; I=1 Write-through mode
- WRTHRU selects write-through mode on the. Tektronix 4014. It has no effect for other devices.
- CALL CHASIZ(Y)
- Y: character size.
- CHASIZ selects the nearest hardware character size to give a character Y units high in
users co-ordinates.
Where only one character size is available, eg Tektronix 4010, this routine has no effect.
This routine has no effect on symbol size.
- CALL ACCUR(I)
- I=0 1K raster (normal); I=1 4K raster (accurate)
- Switches raster size for Tektronix 4014. No effect
on other devices. Default 0.
- CALL RDCHST(IARRAY,NWORDS,NFORM,NCHARS)
- IARRAY:
an array into which a character string will be read;
NWORDS: length of array IARRAY;
NFORM:
number of characters per array element of array IARRAY;
NCHARS: number of characters read (excluding trailing spaces).
- Reads a character string from the currently selected graphical output
device (if the device supports keyboard input) or the device connected to a channel selected by
CHNRD if this has been called. Trailing spaces will be removed from the string and the
terminator *. (or the currently selected escape character, see CHAESC, followed by.) will be
appended unless the bounds of IARRAY would be thereby exceeded. NCHARS will contain the number of
characters read excluding trailing spaces and the terminator.
- CALL CHNRD (NUM)
- NUM an integer specifying the channel number to be associated with RDCHST
- In some applications it may not be convenient to associate the Tektronix keyboard with
graphical input from the Tektronix (see RDCHST). CHNRD allows the user to associate another
keyboard with the graphical device such that all calls of RDCHST will expect input from the
nominated keyboard instead of from the physical graphical output device.
The precise specification of NUM and indeed the availability of this facility will depend
on the operating system in use. Note: this routine does not allow a keyboard to be associated
with a device which does not otherwise support graphical input, eg a pen plotter.
If CHNRD is called with an argument of zero the current graphical output device will be
associated with RDCHST.
- CALL SETGP(X,Y)
- X,Y: user coordinates of garbage position for text echoing.
- Text input via a Tektronix terminal will echo the text at the current position of the
alpha cursor. This may be inconvenient and overwrite graphical output. This routine specifies
a position to which the cursor will be moved by RDCHST before text input is requested.
Note: since this routine moves the alpha cursor, text may no~ be concatenated by alternate
calls of RDCHST and CHAARR.
- CALL CHNERR (NUM)
- NUM an integer specifying the channel number to which error messages are to be sent by the
graphics package.
- By default, error messages will be sent to the users terminal from which the program was loaded.
If this is inconvenient, messages may be directed to another device by an appropriate call of this
routine.
The precise specification of NUM and the availability of this feature will depend on the
operating system being used.
- CALL T4010
- Initialises a Tektronix 4010 as an output device. The maximum visible viewport
is (0.0,1.3,0.0,1.0).
The 4010 is device number 1.
- CALL T4010A
- Initialises 2 Tektronix 4010's as output devices.
The devices are numbers 1 and 2.
- CALL T4014
- Initialises a Tektronix 4014 as an output device.
The maximum visible viewport is
(0.0,1.3,0.0,1.0).
The device is number 3.
- CALL T4014A
- Initialises 2 Tektronix 4014's as output devices.
The devices are numbers 3 and 4.
- CALL FR80(I)
- I= 1 ,8
- Initialises camera I of the FR80 as the output device.
Only one camera may be used in any run. The default viewport will correspond to the left hand square
in cine mode, available cameras are:
16mm colour film (1);
16mm Black & white film (2);
35mm colour film (3);
35mm Black & White film (4);
16mm Black & White film, precision camera (5);
105mm Microfiche film (6);
12in by 12in full-frame hardcopy (7);
Many-up with 2 by 2 sub-frames (8).
- The FR80, whichever camera is being used, is device number 5.
- CALL PENPLT
- Initialises a pen plotter as an output device.
The pen plotter is device number 6.
- CALL SELDEV(I)
- I= 1 ,6
- Selects device number I to be the output device for all subsequent graphical output until
another call.
The current point is undefined after a call to SELDEV.
Every program must contain at least one call to SELDEV.
- CALL PICCLE
- Clears screen, and where appropriate advances the frame, on the currently selected output device.
The current point is undefined after a call to PICCLE.
- CALL DEVEND
- Terminates output to all devices which have been initialised.
- CALL CURDEF(IHOL)
- IHOL:A Hollerith string.
- CURDEF defines characters to be used as functions with the cursor. The string must be terminated
by *. which is not included as a function.
*L means shift into lower case. *U means shift into upper case.
** means *.
The escape character * may be set to any other character by the CHAESC routine (q.v.).
- CALL CURSOR(ICOM,XY)
- ICOM: the number of the function. X,Y: the co-ordinates of the cursor.
- CURSOR turns the cursor on and reads the function character entered and the co-ordinates of
the cursor.
The co-ordinates are returned in user co-ordinates;
ICOM is set equal to the position in the Hollerith string given in the most recent call to CURDEF
of the character typed.
If the cursor is misread, the bell is rung if possible; several attempts are made to re-read
the cursor. If a character is typed that does not correspond with any character in the string
given in a call to CURDEF or if any other errors occur, a suitable message is output and ICOM
is set to one larger than the highest number command.
The routine CURDEF must be called before this routine.
The cursor co-ordinates will be read from the currently selected output device.