The title data structure is supported by a system link not directly accessible to the user. To get access to this structure as such, not to a particular bank, one can use this routine.
CALL TZINQ (IXSTOR, IXTITL*, !L*, IFLAG)
Suppose for a particular program one has a considerable volume of titles, such that one spends too much time in TZINIT for every individual execution of this program. One could have a separate job to translate most of the text titles into a binary FZ file whenever they have been updated. The job which needs these titles reads them from the FZ file and appends them to any titles which it has already read with TZINIT.
PROGRAM TTXTFZ
CHARACTER NAME*(*)
PARAMETER (NAME = 'cba1990')
CHARACTER FIN*(*), FOUT*(*)
PARAMETER (FIN = NAME // '.ttx', FOUT = NAME // '.tfz')
PARAMETER (LIM2Q=60000, NNQ=80000)
DIMENSION LQ(NNQ), IQ(NNQ), Q(NNQ)
EQUIVALENCE (Q(1),IQ(1),LQ(9))
COMMON // FENCE(4), LQ, LASTQ
PRINT 9001, FIN, FOUT
9001 FORMAT (/' TTX to TFZ executing'
F/' with input file = ',A /' output file = ',A)
CALL MZEBRA (-1)
CALL MZVERS
CALL MZSTOR (IXST,'/DYN/','.',FENCE,LQ,LQ,LQ,LQ(LIM2Q),LASTQ)
OPEN (11, FILE=FIN, FORM='FORMATTED', STATUS='OLD')
CALL TZINIT (11, 1) { read into forward division 1
CLOSE (11)
OPEN (11, FILE=FOUT, FORM='UNFORMATTED', STATUS='UNKNOWN')
CALL FZFILE (11, 0, 'O')
CALL TZINQ (0, IXTITL, LGO, 1)
CALL FZOUT (11, 1, LGO, 0, 'LDI', 0,0,0)
CALL FZENDO (0, 'T')
CALL MZEND
END
CHARACTER FIN*(*)
PARAMETER (FIN = 'cba1990.tfz')
C-- first read the variable titles from the 'card reader'
IXTITL = set the title division
CALL TZINIT (0,IXTITL)
C-- then append the binary titles
OPEN (49, FILE=FIN, FORM='UNFORMATTED',STATUS='OLD')
CALL FZFILE (49, 0, '.')
CALL TZINQ (IXSTOR, IXTT, LTT, 0)
IF (LTT.EQ.0) THEN
L = 0
JBIAS = 1
ELSE
L = LTT
JBIAS = 0
ENDIF
CALL FZIN (49, IXTITL,L,JBIAS, '.', 0,0)
IF (IQUEST(1).NE.0) GO TO trouble
IF (LTT.EQ.0) CALL TZSHUN (IXTITL,L,0)
CALL FZENDI (49, 'TXQ')