Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ FORTRAN graphics on the PDP15Simple complete FORTRAN program using FOGFOG subroutinesFOG errorsInput routines for use with graphics programsLoading and overlaying FOG □ Appendices □ A: Summary of FOG subroutinesB: VT15 instruction setC: 7-bit ASCII character codesD: Display orders generated by FOG routinesE: The structure of FOG display filesF: The VTA handler
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsFOG
ACLLiteratureICL 1906A manualsFOG
ACL ACD C&A INF CCD CISD Archives
Further reading

FORTRAN graphics on the PDP15
Simple complete FORTRAN program using FOG
FOG subroutines
FOG errors
Input routines for use with graphics programs
Loading and overlaying FOG
Appendices
A: Summary of FOG subroutines
B: VT15 instruction set
C: 7-bit ASCII character codes
D: Display orders generated by FOG routines
E: The structure of FOG display files
F: The VTA handler

APPENDIX A: SUMMARY OF FOG SUBROUTINES

Routine and function arguments are represented in Appendix A as follows:

I,J,K      -  integers, not altered by FOG subroutines
IPT1,IPT2  -  integers, used to indicate position and type of a 
              display item (overwritten by FOG subroutines)
IARRAY     -  an integer array name
L          -  a logical variable., not altered by the FOG subroutine
T          -  represents the first location of a FORTRAN HOLLERITH 
              STRING (can be a real variable, a real array element, 
              a double integer variable or array element)

[ ] indicate optional arguments.

( ) gives the Subroutine Code Number before the subroutine name.

A.1 Display file selection

(a)  (101)  INTEGER FUNCTION DCHOOS (IARRAY,I)
       or         SUBROUTINE DCHOOS (IARRAY,I)
     The display file whose first element is IARRAY (I) is selected.  
     Subsequent append-type subroutines use this file. The result is 
     the number of available locations.
(b)  (102)  SUBROUTINE DINIT (IARRAY,I)
     Execution of the display file, whose first element is IARRAY (I) 
     is initiated.
(c)  (103)  SUBROUTINE DCLOSE
     The VT15 processor is halted.

A.2 Append-type subroutines

(a)  (11)   SUBROUTINE BLINK (I[,IPT1,IPT2])
     I = 0 no blinking, I = 1 blinking on
(b)  (12)   SUBROUTINE BRITE (I[,IPT1, IPT2])
     I is brightness level for subsequent display orders (0-7)
(c)  (13)   SUBROUTINE DASH (I[,IPT1,IPT2)
     I is code for broken lines = 0 unbroken
                                = 1 6 units on / 2 off
                                = 2 3 units on / 1 off
                                = 3 1 unit  on / 1 off
(d)  (4)   SUBROUTINE DRAW (I,IARRAY(J)[,IPT1,IPT2])
     I = 0 no SAVE/RESTORE    I = 1 SAVE/RESTORE
     A subpicture call, referencing the display file whose first element 
     is IARRAY (J) is added, to the currently selected file.
(e)  (0)   SUBROUTINE LINE (I,J,K[,IPT1 ,IPT2])
     I = x-displacement 
     J = y-displacement 
     K = 0 no visible trace  K = 1 visible line
(f)  (14)  SUBROUTINE LPVIS (I[,IPT1,IPT2])
     I = 0/1 lightpen sensitivity off/on
(g)  (15)  SUBROUTINE NAME (I[,IPT1,IPT2])
     I is value put in name register of VT15 (0-127)
(h)  (16)  SUBROUTINE OFEST (I[,IPT1,IPT2])
     I = 0/1 offset region unset/set
(i)  (17)  SUBROUTINE ROT (I[,IPT1,IPT2])
     I=0/1 no rotation / 90 degrees anti-clockwise rotation,
(j)  (20)  SUBROUTINE SCALE (I[,IPT1,IPT2])
     I represents the repetition (or scale) factor for subsequent 
     lines and text (0-15).  The actual factor is I+1.
(k)  (3)   SUBROUTINE SETPT (I,J,K[,IPT1,IPT2])
     I is x-coordinate of the new beam position - if I < 0, no x-change
     J is y-coordinate of the new beam position - if J < 0, no y-change
     K = 0/1 no spot/visible spot
(l)  (10)  SUBROUTINE SYMB (I[,IPT1,IPT2])
     I is the 7-bit ASCII code of the character to be displayed
(m)  (1)   SUBROUTINE TEXT (T,I[,IPT1,IPT2])
     T is the first word of a string of text
     J = 0 if string to be unaltered
     J > 0 if altmode to be inserted in character position (J+1)

A.3 Insert-type functions and DELETE

Each of the append-type subroutines has a counterpart insert-type routine in which the display orders are inserted into the currently selected display file at the position indicated by IPT1,IPT2. The code number for each insert routine is the code number of the equivalent append-type subroutine + 408.

For all logical functions in this section the result is the truth value of the statement, The display code required has been successfully inserted.

(a)  (51)   LOGICAL FUNCTION IBLINK (I,IPT1,IPT2) 
       or        SUBROUTINE  IBLINK (I,IPT1,IPT2)
     I=0/1 no blinking/blinking
(b)  (52)   LOGICAL FUNCTION IBRITE (I,IPT1,IPT2) 
       or         SUBROUTINE IBRITE (I,IPT1,IPT2)
     I is brightness level for subsequent display orders (0-7).
(c)  (53)   LOGICAL FUNCTION IDASH (I,IPT1,IPT2) 
       or         SUBROUTINE IDASH (I,IPT1,IPT2)
     I is code for broken lines = 0 unbroken
                                = 1 6 units on / 2 off 
                                = 2 3 units on / 1 off 
                                = 3 1 unit on  / 1 off
(d)         LOGICAL FUNCTION DELETE (IPT1,IPT2) 
      or          SUBROUTINE DELETE (IPT1,IPT2)
     Replaces the specified display code by DNOP's
(e)  (44)   LOGICAL FUNCTION IDRAW (I,IARRAY(J),IPT1,IPT2) 
       or         SUBROUTINE IDRAW (I,IARRAY(J),IPT1,IPT2)
     I = 0 no SAVE/RESTORE   I = 1 SAVE/RESTORE
     A subpicture call, referencing the display file whose 
     first element is IARRAY(J), is inserted.
(f)  (40)   LOGICAL FUNCTION ILINE (I,J,K,IPT1,IPT2) 
      or          SUBROUTINE ILINE (I,J,K,IPT1,IPT2)
     I = x-displacement 
     J = y-displacement 
     K = 0 no visible trace, K = 1 visible line
(g)  (54)   LOGICAL FUNCTION ILPVIS (I,IPT1,IPT2) 
      or          SUBROUTINE ILPVIS (I,IPT1,IPT2)
     I = 0/1 lightpen sensitivity off/on
(h)  (55)   LOGICAL FUNCTION INAME (I,IPT1,IPT2)  
      or          SUBROUTINE INAME (I,IPT1,IPT2)
      I is value put in name register of VT15 (0-127)
(i)  (56)   LOGICAL FUNCTION IOFFST (I,IPT1,IPT2) 
      or          SUBROUTINE IOFFST (I,IPT1,IPT2)
     I = 0/1 offset region unset/set
     
(j)  (57)   LOGICAL FUNCTION IROT (I,IPT1,IPT2) 
      or          SUBROUTINE IROT (I,IPT1,IPT2)
     I = 0/1 no rotation / 90 degrees anti-clockwise rotation
(k)  (60)   LOGICAL FUNCTION ISCALE (I,IPT1,IPT2) 
      or          SUBROUTINE ISCALE (I,IPT2,IPT2)
     I represents the repetition (or scale) factor for subsequent 
     lines and text (0-15)
(l)  (43)   LOGICAL FUNCTION ISETPT (I,J,K,IPT1,IPT2) 
      or          SUBROUTINE ISETPT (I,J,K,IPT1,IPT2)
     I is x-coordinate of new beam position 
     J is y-coordinate of new beam position 
     K = 0/1 no spot/visible spot
     
(m)  (50)   LOGICAL FUNCTION ISYMB (I,IPT1,IPT2) 
      or          SUBROUTINE ISYMB (I,IPT1,IPT2)
     I is the 7-bit ASCII code of the character to be displayed
     
(n)  (41)   LOGICAL FUNCTION ITEXT (T,I,IPT1,IPT2) 
      or          SUBROUTINE ITEXT (T,I,IPT1,IPT2)
     T is the first word of a string of text
     I = 0 if string to be unaltered
     I > 0 if altmode to be inserted in character position (J+1)

A.4 Save/recover routines

A pointer to a display file is saved in or recovered from a FOG save area. Cells are numbered 1 to 16.

(a)  (110)  SUBROUTINE SCHOOS (I)
     Reference to currently "DCHOOS'd" file: cell number I
(b)  (111)  SUBROUTINE SINIT (I)
     Reference to currently "DINIT'd" file: cell number I
(c)  (112)  INTEGER FUNCTION RCHOOS (I) 
      or          SUBROUTINE RCHOOS (I)
     Retrieve display file reference from cell I and DCHOOS 
     the file referred to
(d)  (113)  SUBROUTINE RINIT (I)
     Retrieve display file reference from cell I and 
     DINIT the file referred to

A.5 Other routines

(a)         SUBROUTINE SYNCOF
     The sync instruction in the standard main file is removed
(b)         SUBROUTINE SYNCON
     The sync instruction is restored in the standard main file
(c)  (130)  SUBROUTINE BLANK (IARRAY(I))
     IARRAY (I) identifies a display file to be blanked
(d)  (131)  SUBROUTINE UNBLNK (IARRAY(1))
     IARRAY(I) identifies a display file to be unblanked
(e)         SUBROUTINE ALLARB (L)
     L = .TRUE.  arbitrary vectors only
     L = .FALSE. lines displayed with smallest number of display orders
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site