EXTERNALROUTINE SETS(STRING (255)S)
!
!
EXTERNALROUTINESPEC PROMPT(STRING (255)S)
EXTERNALROUTINESPEC RDINT(INTEGERNAME I)
EXTERNALROUTINESPEC RSTRG(STRINGNAME S)
EXTERNALROUTINESPEC GETAVFSYS(INTEGERNAME N,INTEGERARRAYNAME A)
EXTERNALINTEGERFNSPEC GETUSNAMES(INTEGERNAME N,INTEGER ADR,FSYS)
EXTERNALINTEGERFNSPEC DSFI(STRING (6)U,INTEGER F,T,S,A)
!
!
INTEGER M, I, W
INTEGER TYPE, NSYS, F, ADR, NU, J, K, C0, C1, N
STRING (15)WHAT, MODE, U0
INTEGERARRAY A(0:99)
INTEGERARRAY P(1:100)
INTEGERARRAY ITYPE(1:100)
INTEGERARRAY FLD(0:15)
STRINGNAME U1
STRING (6)ARRAY GU(1:100)
STRING (31)ARRAY STYPE(1:100)
BYTEINTEGERARRAY UNAMES(0:2400)
!
INTEGERFN LOOK UP(STRING (31)WHAT,STRINGNAME MODE)
CONSTSTRING (15)ARRAY TYPES(0:38) = C
"SBASEFILE",
"SDELIVERY",
"",
"SADDRTELE",
"",
"",
"ILASTLOGON",
"IACR",
"IDIRVSN",
"",
"ISTKKB",
"IMAXKB",
"IMAXFILE",
"",
"",
"",
"IDIRMON",
"ISIGMON",
"SSURNAME",
"SLOGFILE",
"","","","","","","","","","","","",
"IISESSM","IINUTS","",
"SSPECIALSS",
"SBATCHSS",
"SGPHOLDR",
"ITRYING"
INTEGER I
!
CYCLE I = 0, 1, 38
IF TYPES(I) -> MODE.(WHAT) THEN RESULT = I
REPEAT
RESULT = -1
END ; ! OF LOOK UP
!
PROMPT("WHAT: ")
RSTRG(WHAT)
TYPE = LOOK UP(WHAT, MODE)
!
IF TYPE < 0 C
THEN PRINTSTRING("NOT KNOWN
") C
ELSE START
PROMPT("NEW VALUE: ")
IF MODE = "I" C
THEN RDINT(FLD(0)) C
ELSE RSTRG(STRING(ADDR(FLD(0))))
PROMPT("USERS: ")
RSTRG(U0)
!
N = 0; ! GOOD NAMES
ADR = ADDR(UNAMES(0))
GET AV FSYS(NSYS, A)
!
CYCLE F = 0, 1, NSYS-1
J = GETUSNAMES(NU, ADR, A(F))
IF NU > 0 START
CYCLE J = 0, 7, (NU-1)*7
U1 == STRING(ADR+J)
CYCLE K = 1, 1, 6
C0 = BYTEINTEGER(ADDR(U0)+K)
C1 = BYTEINTEGER(ADDR(U1)+K)
UNLESS C0=M'?' OR C0=C1 C
THEN -> NO GO
REPEAT
!
K = DSFI(U1, A(F), TYPE, 1, ADDR(FLD(0)))
NO GO:
REPEAT
FINISH
REPEAT
FINISH
END ; ! OF SETS
ENDOFFILE