095 ! PROGRAM USERSUPD.SYS 100 ! PROGRAM TO LOOK AT AND MODIFY PDSUPF DATA FILE 109 ! CURRENTLY SET AT 64 USERS BY FOLLOWING DIM STATEMENT 110 DIM #4,DD%(144,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],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 PRINT "USER NAME "; 240 INPUT NM$ 250 FOR I=1 TO 4 260 NB%(I)=AR5(SBS$(NM$,3*I-2,3)) 270 NEXT I 280 OPEN #4,"[1,100]PDSUPF.DAT/FX/BN/LN:64/RN/RO" 290 RE=1 300 INPUT #4@RE,FU%,LU% 310 NU=LU%-FU%+1 320 RE=FU% 330 FOR NK=1 TO NU 340 INPUT #4@RE,NA%(1),NA%(2),NA%(3),NA%(4),UI%,PW%(1),PW%(2),X%,PR%,A%,B%,C%,D%,E%,F%,G%,H%,I%,J%,K%,DV$ 350 FOR IK=1 TO 4 360 IF NA%(IK)<>NB%(IK) GOTO 390 370 NEXT IK 380 GOTO 410 390 RE=RE+1 400 NEXT NK 401 PRINT "USER NOT FOUND" 402 RUN "USERSMENU.SYS" 410 PRINT CHR$(12);"USER NAME U I C PWD PRIV. DEVICE" 420 PRINT R5A$(NA%(1));R5A$(NA%(2));R5A$(NA%(3));R5A$(NA%(4)); 430 PRINT TAB(14);" "; 440 U=UI% 450 GC=INT(U/256) 460 PC=INT(U-256*GC) 470 IF GC<0 THEN GC=GC-OCT("177400") 480 UC$="["+OCT$(GC)+","+OCT$(PC)+"]" 490 PRINT UC$;" "; 500 PX%(1)=-1-PW%(1) 510 PX%(2)=-1-PW%(2) 520 PRINT R5A$(PX%(1));R5A$(PX%(2));TAB(32); 530 PRINT OCT$(PR%);TAB(40);DV$ 540 OPEN #3,"LB:[11,13]PRICHK.DAT/RO" 550 PRINT 560 FOR I=1 TO 2 570 INPUT LINE #3,LN$: PRINT LN$ 575 NEXT I 580 IT=PR% 581 FOR I=1 TO 16 582 IU=IT-2*INT(IT/2) : IT=INT(IT/2) : IF IT<0 THEN IT=INT(32767+IT+1) 583 IF IU=1 THEN PRINT "* "; ELSE PRINT " "; 584 INPUT LINE #3,LN$: PRINT LN$ 585 NEXT I 590 CLOSE 3 : CLOSE 4 600 PRINT 610 PRINT "CHANGE UIC(1),PASSWORD(2),PRIV(3), DEV(4) OR STOP(5) " 620 INPUT AN 630 ON AN GOTO 640,720,820,880,940 640 INPUT "NEW UIC (NO BRACKETS) ";U1$,U2$ 650 U=OCT(U1$)*256+OCT(U2$) 660 IF U>32767 THEN U=U-65536 670 UI%=U 680 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP" 690 DD%(RE-1,4)=UI% 700 CLOSE 4 710 GOTO 280 720 PRINT "ENTER NEW PASSWORD "; 730 PS$=" " 740 INPUT PS$ 750 PW%(1)=-1-AR5(SBS$(PS$,1,3)) 760 PW%(2)=-1-AR5(SBS$(PS$,4,3)) 770 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP" 780 DD%(RE-1,5)=PW%(1) 790 DD%(RE-1,6)=PW%(2) 800 CLOSE 4 810 GOTO 280 820 INPUT "NEW PRIVILEGE WORD (OCTAL) ";UC$ 830 PR%=OCT(UC$) 840 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP" 850 DD%(RE-1,8)=PR% 860 CLOSE 4 870 GOTO 280 880 INPUT "NEW DEVICE (ASCII 'DDN:') "; DV$ 890 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP" 900 DD%(RE-1,20)=ASC(SBS$(DV$,2,1))*256+ASC(SBS$(DV$,1,1)) 910 DD%(RE-1,21)=ASC(SBS$(DV$,4,1))*256+ASC(SBS$(DV$,3,1)) 920 CLOSE 4 930 GOTO 280 940 OPEN #4,"[1,100]PDSUPF.DAT/BL/UP" 950 DD%(RE-1,17)=0 : ! CLEAR POSSIBLE BATCH TIME LIMIT FLAG 960 CLOSE 4 970 RUN "USERSMENU.SYS"