INCLUDE "CONLIB.VVP_VVPSPECS" INCLUDE "CONLIB.VVP_VVPFORMATS" EXTERNALROUTINE TTYPES(STRING (255)S) ! CONSTINTEGER ACR = 7 CONSTINTEGER TRY = 38 ! SYSTEMSTRINGFNSPEC ITOS(INTEGER I) SYSTEMROUTINESPEC PHEX(INTEGER I) EXTERNALROUTINESPEC GETAVFSYS(INTEGERNAME N,INTEGERARRAYNAME A) EXTERNALINTEGERFNSPEC GETUSNAMES(INTEGERNAME N,INTEGER ADR,FSYS) EXTERNALINTEGERFNSPEC DSFI(STRING (6)U,INTEGER F,T,S,A) EXTERNALINTEGERFNSPEC DPERMISSION(STRING (6)OWN,USER, C STRING (8)DATE, STRING (11)FILE, INTEGER FSYS, TYPE, ADR) ! ! INTEGER NSYS, FSYS, F, ADR, NU, J, K, N, C0, C1 INTEGER U, AP, PN, I RECORDFORMAT F1(STRING (6)U, BYTEINTEGER PRM) RECORDFORMAT F2(INTEGER N, O, E, X, RECORD (F1)ARRAY IP(0:15)) RECORD (F2)P RECORD (F1)NAME IP INTEGERARRAY A(0:99) INTEGER SEG, GAP, FLAG INTEGERARRAY FLD(0:15) STRINGNAME U1 BYTEINTEGERARRAY UNAMES(0:2400) ! EXTERNALINTEGERFNSPEC DCONNECT(STRING (6)USER, STRING (11)FILE, INTEGER FSYS, MODE, APF, INTEGERNAME SEG, GAP) EXTERNALINTEGERFNSPEC DDISCONNECT(STRING (6)USER, STRING (11)FILE, INTEGER FSYS, DESTROY) EXTERNALINTEGERFNSPEC DFSYS(STRING (6)USER, INTEGERNAME FSYS) EXTERNALSTRINGFNSPEC UINFS(INTEGER N) CONSTINTEGER KSHIFT = 10 CONSTINTEGER MAXVKEY = 17 CONSTINTEGER MAXKEY = 14 CONSTSTRING (8) TEMPOPTIONS = "T#OPTION" CONSTINTEGER MAXSEARCHDIRCOUNT = 16 CONSTSTRING (13) ARRAY VKEY(1 : MAXVKEY) = C "INITSTACKSIZE","AUXSTACKSIZE","USERSTACKSIZE", "ITWIDTH","FSTARTFILE","BSTARTFILE", "PRELOADFILE","ACTIVEDIR","REMOVEDIR","SEARCHDIR","ARRAYDIAG",C "INITWORKSIZE","NULL","ITINSIZE","ITOUTSIZE","CFAULTS","TERMINAL" CONSTSTRING (12) ARRAY KEY(1 : MAXKEY) = C "BRACKETS","NOBRACKETS","NORECALL","TEMPRECALL","PERMRECALL", "NOFSTARTFILE","?","NOBLANKLINES","BLANKLINES","NOBSTARTFILE", "INITPARMS","NOECHO","PARTECHO","FULLECHO" ! ! ! ROUTINE OUTI(STRING (255) S, INTEGER N) S = S . " " WHILE LENGTH(S) < 31 PRINTSTRING(S." :") WRITE(N,1) NEWLINE END ; !OF OUTI ! ! ! ROUTINE OUTS(STRING (255) S, T) PRINTSTRING(S." : ".T) NEWLINE END ; !OF OUTS ! ! ! CONST STRING (9) ARRAY C PARMS (0:63) = C "","I8","L8","R8",""(4),"MAXDICT",""(5),"MINSTACK",""(17), "QUOTES", "NOLIST", "NODIAG", "STACK", "NOCHECK", "NOARRAY", "NOTRACE", "PROFILE", "IMPS", "INHIBIOF", "ZERO", "XREF", "LABELS", "LET", "CODE", "ATTR", "OPT", "MAP", "DEBUG", "FREE", "DYNAMIC","","EBCDIC","NOLINE", ""(2),"PARMZ","PARMY", "PARMX","MISMATCH",""(2) ROUTINE PRINTPARMS(LONGINTEGER P) INTEGER I, FOUND FOUND = 0 FOR I=0,1,63 CYCLE IF P&1 = 1 START IF PARMS(I) # "" START ; !IGNORE BLANK PARMS IF FOUND = 0 THEN FOUND = 1 ELSE PRINTSYMBOL(',') PRINTSTRING(PARMS(I)) FINISH FINISH P = P>>1 REPEAT IF FOUND = 0 THEN PRINTSTRING("DEFAULTS") END ; !OF PRINTPARMS ! ! ! RECORD FORMAT C CONTF (INTEGER DATAEND,DATASTART,PSIZE,FILETYPE, C SUM,DATETIME,SPARE1,SPARE2,MARK, NULL1, UGLA, ASTK, USTK, C NULL2, ITWIDTH, LDELIM, RDELIM, JOURNAL, SEARCHDIRCOUNT, C ARRAYDIAG,INITWORKSIZE,SPARE,ITINSIZE,ITOUTSIZE, C NOBL, ISTK, LONGINTEGER INITPARMS, INTEGER DATAECHO, C TERMINAL, I23, I24, I25, I26, I27, I28, I29, I30, I31, I32, C STRING (31) FSTARTFILE, BSTARTFILE, PRELOADFILE, MODDIR, C CFAULTS, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, C S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, C S28, S29, S30, S31, S32, C STRING (31) ARRAY SEARCHDIR(1:16));!1/2/79 RECORDFORMAT C TERMF(BYTEINTEGER TYPE, STRING (31)NAME, STRING (222)SPARE) RECORD (TERMF)ARRAYFORMAT C TERMSF(1 : 31) RECORD (TERMF)ARRAYNAME TERMS ! ! ! INTEGERARRAY TARRAY(0 : 30) INTEGERARRAY SCREENLINE(0 : 30) INTEGER NEXTSCREEN ! ROUTINE OPT(INTEGER FSYS, STRING (6)USER) INTEGER J, SEG, GAP, T, P, AD RECORDFORMAT DHF(INTEGER END, START, SIZE, TYPE, SUM, DT, PSTART) RECORD (DHF)NAME DH STRINGNAME F INTEGER FLAG STRING (11)FILE RECORD (CONTF)NAME C STRING (63) VALUE, KEYWORD, PARAM INTEGER I, CONAD, IVALUE, MODE, OLDFLAG SWITCH SW(1 : MAXKEY) SWITCH VSW(1 : MAXVKEY) FILE = "SS#OPT" ! SEG = 0 GAP = 0 FLAG = DCONNECT(USER, FILE, FSYS, 1, 0, SEG, GAP) RETURN IF FLAG # 0 ! C == RECORD(SEG << 18) ! ! SEG = 0 ! GAP = 0 ! FLAG = DCONNECT(USER, C_MODDIR, FSYS, 1, 0, SEG, GAP) ! %IF FLAG = 0 %START ! AD = SEG << 18 ! DH == RECORD(AD) ! AD = AD + DH_PSTART ! P = 4 ! %CYCLE ! F == STRING(AD+P) ! %EXIT %IF F = "" ! %IF F = "KNTLIB.SCREED75" %START T = C_TERMINAL T = 0 IF T < 0 IF SCREENLINE(T) < 0 START SCREENLINE(T) = NEXTSCREEN VVGOTO(10, NEXTSCREEN) IF T = 0 C THEN VVPRINTSTRING("Unspecified") C ELSE VVPRINTSTRING(TERMS(T)_NAME) NEXTSCREEN = NEXTSCREEN + 1 FINISH TARRAY(T) = TARRAY(T) + 1 VVGOTO(40, SCREENLINE(T)) VVPRINTSTRING(ITOS(TARRAY(T))) VVUPDATESCREEN ! %EXIT ! %FINISH ! P = P + LENGTH(F) + 1 ! %REPEAT ! FLAG = DDISCONNECT(USER, C_MODDIR, FSYS, 0) ! %FINISH ! FLAG = DDISCONNECT(USER, FILE, FSYS, 0) END ! ! ! VVINIT(J) SEG = 0 GAP = 0 FLAG = DCONNECT("SUBSYS", "TERMINALCHS", -1, 1, 0, SEG, GAP) RETURN UNLESS FLAG = 0 OR FLAG = 34 TERMS == ARRAY(SEG<<18+32, TERMSF) ! NEXTSCREEN = 0 CYCLE J = 0, 1, 30 TARRAY(J) = 0 SCREENLINE(J) = -1 REPEAT ! VVDEFINETRIGGERS(3, 0, 0) VVGOTO(0, 0) VVPRINTSTRING("Fsys") AP = ADDR(P) ADR = ADDR(UNAMES(0)) GET AV FSYS(NSYS, A) ! CYCLE F = 0, 1, NSYS-1 FSYS = A(F) VVGOTO(2, F+2) VVPRINTSTRING(ITOS(FSYS)) VV UPDATE SCREEN J = GETUSNAMES(NU, ADR, FSYS) IF NU > 0 START CYCLE U = 0, 7, (NU-1)*7 U1 == STRING(ADR+U) IF LENGTH(S) = 6 START CYCLE K = 1, 1, 6 C0 = BYTEINTEGER(ADDR(S)+K) C1 = BYTEINTEGER(ADDR(U1)+K) -> NEXT UNLESS C0 = '?' OR C0 = C1 REPEAT FINISH OPT(FSYS, U1) NEXT: REPEAT FINISH REPEAT ! FLAG = DDISCONNECT("SUBSYS", "TERMINALCHS", -1, 0) IF FLAG = 0 VVDEFINETRIGGERS(-2, 0, 0) ! OUTI("Unspecified", TARRAY(0)) CYCLE J = 1, 1, 30 OUTI(TERMS(J)_NAME, TARRAY(J)) IF TARRAY(J) > 0 REPEAT END ENDOFFILE