095 ! PROGRAM USERSVIRG.SYS 100 ! PROGRAM TO DELETE ALL USER FROM PDSUPF DATA FILE 110 DIM #4,DD%(255,31) 120 DIM PS$[6],PX%(2),UC$[9],U1$[3]V,U2$[3]V 130 DIM NA%(4),PW%(2),DV$[4],NB%(4),NM$[12]V,LN$[72]V 140 ! FORMAT OF PDSUPF RECORD (LENGTH=64 BYTES) 150 ! NAME (8 BYTES) 160 ! UIC (2 BYTES) 170 ! PASSW (4 BYTES, COMPLEMENT OF RAD50) 180 ! BLANK (2 BYTES) 190 ! PRIV (2 BYTES) 200 ! BLANK (22. BYTES) ACCOUNTING INFORMATION WE DON'T USE 210 ! DEVICE (4 BYTES) IN ASCII XXN: 220 ! BLANK (20. BYTES) BATCH PRI,BATCH PW # TASKS, ETC 230 B=0 : CALL "SPAWNB"("PIP PDSUPF.VIR=PDSUPF.DAT",B) 280 OPEN #4,"[1,100]PDSUPF.VIR/FX/BN/LN:64/RN/RO" 290 RE=1 300 INPUT #4@RE,FU%,LU% 310 NU=LU%-FU%+1 320 RE=FU% 330 CLOSE 400 OPEN #4,"[1,100]PDSUPF.VIR/BL/UP" 420 FOR NK=1 TO NU 430 NM$="" 440 FOR X=1 TO 4 : NM$=NM$+R5A$(DD%(RE-1,X-1)) : NEXT X 450 IF POS(NM$,"SYSTEM")=1 THEN 580 460 IF POS(NM$,"SCITERMINAL")=1 THEN 580 470 ! ZERO FIRST WORD OF ACTUAL UPF RECORD 480 DD%(RE-1,0)=0 : DD%(RE-1,1)=0 : DD%(RE-1,2)=0 : DD%(RE-1,3)=0 490 ! ZERO PASSWORD 500 DD%(RE-1,5)=0 : DD%(RE-1,6)=0 510 ! COMPUTE AND ZERO 4 WORDS OF NAME TABLE 520 RN%=2+(RE-FU%)/8 530 DF=RE-FU% 540 RO%=4*8*(DF/8-INT(DF/8)) 550 FOR I=1 TO 4 560 DD%(RN%-1,RO%+I-1)=0 570 NEXT I 580 RE=RE+1 590 NEXT NK 600 CLOSE 610 EXIT