CONSTSTRING (13) VSN="23 FEB 79 3" EXTERNALINTEGERFNSPEC DFINFO(STRING (6) USER, STRING (15) FILE, C INTEGER FSYS,ADR) EXTERNALSTRINGFNSPEC DERRS(INTEGER N) EXTERNALINTEGERFNSPEC DPERMISSION(STRING (6) OWNER,USER, C STRING (8) DATE,STRING (15) FILE, INTEGER FSYS,TYPE,ADRPRM) EXTERNALINTEGERFNSPEC DCONNECT(STRING (6) USER, C STRING (15) FILE,INTEGER FSYS,MODE,APF,INTEGERNAME SEG,GAP) EXTERNALINTEGERFNSPEC DDISCONNECT(STRING (6) USER, C STRING (15) FILE,INTEGER FSYS,DSTRY) EXTERNALROUTINESPEC RDINT(INTEGERNAME I) EXTERNALINTEGERFNSPEC DGETDA(STRING (6) USER,STRING (15) FILE, C INTEGER FSYS,ADR) EXTERNALINTEGERFNSPEC DFILENAMES(STRING (6) USER,RECORDARRAYNAME C INF,INTEGERNAME FILENO,MAXREC,NFILES,INTEGER FSYS,TYPE) EXTERNALROUTINESPEC GET AV FSYS(INTEGERNAME N,INTEGERARRAYNAME A) EXTERNALINTEGERFNSPEC GET USNAMES(INTEGERNAME N, C INTEGER ADR,FSYS) EXTERNALROUTINESPEC PROMPT(STRING (15) S) EXTERNALROUTINESPEC RSTRG(STRINGNAME S) RECORDFORMAT OINFF(STRING (11) NAME,INTEGER SP12,NKB, C BYTEINTEGER ARCH,CODES, C CCT,OWNP,EEP,USE,CODES2,SSBYTE,FLAGS,SP29,SP30,SP31) ROUTINE UDERRS(INTEGER N) PRINTSTRING("FLAG =") PRINTSTRING(DERRS(N)) NEWLINE END ; ! UDERRS EXTERNALROUTINE WHAT FILE(STRING (255) S) INTEGER FROMREC,NGIVEN INTEGER FSYS,J,I,N,UX,SX,DA,PGNO,LEN,NFILES,FX,USERS STRING (31) FILE,USER INTEGERARRAY A(0:99) STRING (6)ARRAY U(0:399) RECORDARRAY FLIS(0:255)(OINFF) ! RECORDFORMAT DAF(INTEGER SECTSI,NSECTS,LASTSECT,SP, C INTEGERARRAY DA(0:255)) RECORD DAAREA(DAF) ! PROMPT("FSYS (OR -1): ") RDINT(FSYS) PROMPT("PGNO: ") RDINT(PGNO) GET AV FSYS(N,A) IF FSYS>=0 START CYCLE J=0,1,N-1 IF A(J)=FSYS START A(0)=FSYS N=1 -> OK FINISH REPEAT PRINTSTRING("FSYS N/A ") RETURN FINISH OK: CYCLE J=0,1,N-1 FSYS=A(J) PRINTSTRING("FSYS") WRITE(FSYS,1) NEWLINE PGNO=PGNO<<8>>8 ! FSYS<<24 I=GET USNAMES(USERS,ADDR(U(0)),FSYS) MONITOR IF I#0 UX=0 WHILE UX<USERS CYCLE USER=U(UX) FROMREC=0; NGIVEN=256; ! SET TO MAX PREPARED TO RECIEVE I=DFILENAMES(USER,FLIS,FROMREC,NGIVEN,NFILES,FSYS,0) MONITOR IF I#0 FX=0 WHILE FX<NFILES CYCLE FILE=FLIS(FX)_NAME I=DGETDA(USER,FILE,FSYS,ADDR(DA AREA)) MONITOR IF I#0 SX=0 WHILE SX<DA AREA_NSECTS CYCLE DA=DA AREA_DA(SX) SX=SX+1 LEN=DA AREA_SECTSI IF SX=DA AREA_NSECTS THEN LEN=DA AREA_LASTSECT IF DA<=PGNO<DA + LEN START SPACES(4) PRINTSTRING(USER.".".FILE) NEWLINE FINISH REPEAT ; ! UP THE SECTIONS OF THE FILE FX=FX + 1 REPEAT ; ! UP THE FILES OF THE USER UX=UX + 1 REPEAT ; ! UP THE USERS OF THE FSYS REPEAT ; ! UP THE FSYS'S END ; ! WHAT FILE CONSTINTEGER ZERO=0 INTEGERFN PHYSICAL SIZE KB(STRING (11) USER,FILE,INTEGER FSYS) INTEGER J RECORDFORMAT DFINFRECF(INTEGER NKB,RUP,EEP,APF,USE,ARCH,FSYS, C CONSEG,CCT,CODES,CODES2,SSBYTE, STRING (6) OFFER) RECORD X(DFINFRECF) J=DFINFO(USER,FILE,FSYS,ADDR(X)) IF J#0 START PRINTSTRING("DFINFO ") UDERRS(J) RESULT =0 FINISH RESULT =X_NKB END ; ! PHYSICAL SIZE KB INTEGERFN PAGE(INTEGER AD) ! RESULT IS ZERO IF PAGE IS ZERO INTEGER I CYCLE I=AD,4,AD+4092 IF INTEGER(I)#0 THEN RESULT =1 REPEAT RESULT =ZERO END ; ! PAGE EXTERNALROUTINE DO ALL FILES(STRING (255) S) INTEGER FSX,SEG,GAP,DATA LEN,AD,NGIVEN,FROMREC INTEGER FSYS,J,I,N,UX,SX,DA,LEN,NFILES,FX,USERS STRING (31) FILE,USER,REST INTEGERARRAY A(0:99) STRING (6)ARRAY U(0:399) RECORDARRAY FLIS(0:255)(OINFF) ! RECORDFORMAT DAF(INTEGER SECTSI,NSECTS,LASTSECT,SP, C INTEGERARRAY DA(0:255)) RECORD DAAREA(DAF) ! PROMPT("FSYS (OR -1): ") RDINT(FSYS) GET AV FSYS(N,A) IF FSYS>=0 START CYCLE J=0,1,N-1 IF A(J)=FSYS START A(0)=FSYS N=1 -> OK FINISH REPEAT PRINTSTRING("FSYS N/A ") RETURN FINISH OK: CYCLE FSX=0,1,N-1 FSYS=A(FSX) PRINTSTRING("FSYS") WRITE(FSYS,1) NEWLINE I=GET USNAMES(USERS,ADDR(U(0)),FSYS) MONITOR IF I#0 UX=0 WHILE UX<USERS CYCLE USER=U(UX) PRINTSTRING(USER); NEWLINE !********: J=DPERMISSION(USER,"ERCCXX","","",FSYS,6,1) IF J#0 THEN PRINTSTRING("DPRM1 ") AND UDERRS(J) !***********: FROMREC=0; NGIVEN=256; ! SET TO MAX PREPARED TO RECIEVE I=DFILENAMES(USER,FLIS,FROMREC,NGIVEN,NFILES,FSYS,0) MONITOR IF I#0 FX=0 WHILE FX<NFILES CYCLE FILE=FLIS(FX)_NAME SEG=0; GAP=0 J=DCONNECT(USER,FILE,FSYS,1,0,SEG,GAP) IF J#0 AND J#33 AND J#34 THEN PRINTSTRING("DCONN ") C AND UDERRS(J) IF FILE->("#DGLA").REST OR C FILE->("#LC").REST C START ; FINISH ELSE START IF J=0 START AD=SEG<<18 DATA LEN=PHYSICAL SIZE KB(USER,FILE,FSYS)<<10 I=AD WHILE I<AD + DATA LEN CYCLE IF PAGE(I)=ZERO START PRINTSTRING(USER.".".FILE." HAS ZEROES") NEWLINE FINISH I=I+X'10000'; ! SECTION SIZE REPEAT J=DDISCONNECT(USER,FILE,FSYS,0) IF J#0 THEN PRINTSTRING("DDISCO ") AND UDERRS(J) FINISH ; ! SUCCESSFUL CONNECT FINISH ; ! NOT DGLA !***********************************************************: FX=FX + 1 REPEAT ; ! UP THE FILES OF THE USER J=DPERMISSION(USER,"ERCCXX","","",FSYS,7,0) IF J#0 THEN PRINTSTRING("DPRM2 ") AND UDERRS(J) UX=UX + 1 REPEAT ; ! UP THE USERS OF THE FSYS REPEAT ; ! UP THE FSYS'S END ; ! DO ALL FILES ENDOFFILE