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 D: DISPLAY ORDERS GENERATED BY FOG ROUTINES

The VT15 hardware orders generated by FOG append-type are described here. The subroutines are listed in Appendix A; the same argument identifiers are used here. The display orders are described in terms of symbolic names which are defined first. The numbers are octal.

Symbolic names

PY    = 140000     / POSITION, Y DIRECTION
PX    = 144000     / POSITION, X DIRECTION
SVY   = 100000     / STROKE VECTOR, Y DIRECTION
SVX   = 104000     / STROKE VECTOR, X DIRECTION
DJMS  = 640000     / display JMS
DJMP  = 600000     / display jump
CHAR  = 0          / single character instruction
SC    = 20         / scale enable
INT   = 2000       / intensity enable
LP    = 10         / lightpen enable
BK    = 1000       / BLINK enable
DSH   = 4          / dash enable
OFST  = 2          / offset enable
ROTAT = 40         / rotate enable
LODN  = 400        / load name register enable
PRM1  = 200000     / parameter word 1 op code
PRM2  = 210000     / parameter word 2 op code
PRM3  = 220000     / parameter word 3 op code
SKP2  = 234000     / SKIP2 op code
SYNC  = 236000     / SYNC order
SAVE  = 240000     / SAVE instruction
RSTR  = 260000     / RESTORE instruction

D.1 Picture parameter routines

One display order is generated for each routine

BLINK (I)    PRM2 + BK + (400 + I) 
BRITE (I)    PRM1 + INT + (200 * I) 
DASH  (I)    PRM3 + DSH + I 
LPVIS (I)    PRM2 + LP + (4 * I) 
OFFST (I)    SKP2 + lodn + i 
NAME  (I)    PRM2 + OFST + I 
ROT   (I)    PRM2 + ROTAT + (20 * I) 
SCALE (I)    PRM2 + SC + I

D.2 Image-creating routines

(a) DRAW (I,IARRAY(I))

if I=0 (occupies 3 words)

DJMP  .+2
S
DJMS+ .-1

if I=1 (occupies 6 words)

DJMP .+3 
S
Save/restore word 
SAVE .-1 
DJMS* .-3 
RSTR .-3

where S Is the address of the subpicture, ie, the address of the array element IARRAY (I+1).

(b) LINE (I,J,K)

The orders generated depend on the size and direction of (I,J) and also on the flag QLLARB (which can be set with the routine ALLARB) which determines whether only arbitrary vectors are to be used (if so QLLARB is .TRUE.)

  1. if I = J = 0: no display orders are produced
  2. if (I = 0 or J = 0 or IABS(I) = IABS(J)) and (QLLARB = .FALSE.): then 1 basic vector is used
  3. if not (i) or (ii) and (IABS(I)< 3210 ) and (IABS(J)<3210 ): then 1 arbitrary short vector is used
  4. if not (i) or (ii) or (iii) then 2 long arbitrary vector orders.

(c) SETPT (I,J,K)

  1. if I < 0 and J < 0: no display orders
  2. if I < 0 ≤ J: one display order ie PY + (20000 * K)+J
  3. if J < 0 ≤ I: one display order ie PX + (20000 * K)+I
  4. if 0 ≤I and 0 ≤ J: two display order PX +I, PY + (20000 * K)+J

(d) SYMB (I)

One display order: CHAR + I

(e) TEXT (T,J)

Three locations are required:

DJMP .+2 
address of T 
CHARS* .-1
⇑ 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