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
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
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).
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.)
One display order: CHAR + I
Three locations are required:
DJMP .+2 address of T CHARS* .-1