ISK$,-1%) 420 IF DISK$ = "" THEN GOTO 900 430 IF LEFT(DISK$,2%) = "DR" & THEN DISK% = VAL(MID(DISK$,3%,1%)) & ELSE DISK% = VAL(DISK$) 440 DEVICE$ = "DR" + NUM1$(DISK%) + ":" 450 PRINT #2% \ & PRINT #2%, " for ";DEVICE$ \ & PRINT #2 500 ! & !Go through accounts & ! 510 INDEX% = 0% 520 Z$ = SYS( CHR$(6%) + CHR$(25%) + & CHR$(INDEX%) + CHR$(SWAP%(INDEX%)) + & CHR$(255%) + CHR$(255%) + & STRING$(16%,0%) + & "DR" + CHR$(DISK%) + CHR$(255%) ) 530 PROJ% = ASCII(MID(Z$,6%,1%)) \ & PROG% = ASCII(MID(Z$,5%,1%)) 535 PRINT " Working on "; "["; \ & PRINT USING "###", PROJ%; \ & PRINT ","; \ & PRINT USING "###", PROG%; \ & PRINT "]" 540 IF PROJ% = 1% AND PROG% = 1% THEN GOTO 560 & !Skip [1,1] because it has the MFD 550 GOSUB 3000 !Go through UFD for this account 560 INDEX% = INDEX% + 1% 570 GOTO 520 600 ! & !another disk & ! 610 GOTO 400 900 ! & !done & ! 910 CLOSE #2% 990 GOTO 32767 1000 ! & ! & ! SUBROUTINE: Initialize & ! & ! 1100 ! & !constants & ! 1110 BELL$ = CHR$(26%) 1120 TRUE% = -1% \ & FALSE% = 0% 1990 RETURN 2000 ! & ! & ! SUBROUTINE: Description & ! & ! 2010 PRINT \ & PRINT "This program will provide a list of all files with privileged protection codes." \ & PRINT 2990 RETURN 3000 ! & ! & ! SUBROUTINE: Go thorugh UFD for one account & ! & ! 3100 ! & !open the UFD, dimension it and get cluster size & ! 3110 OPEN DEVICE$ + "[" + NUM1$(PROJ%) + "," + NUM1$(PROG%) + "]" AS FILE #1% 3120 DIM #1%, U%(3538%,7%) 3130 CLU% = U%(31%,0%) 3200 ! & !loop through name blockettes & ! 3210 PTR% = FNLINK%(U%(0%,0%)) 3220 IF PTR% = 0% THEN RETURN 3230 GOSUB 4000 !Do this file 3240 PTR% = FNLINK%( U%(PTR%,0%) ) 3250 GOTO 3220 3990 RETURN 4000 ! & ! & ! SUBROUTINE: Do one file & ! & ! 4100 ! & !quit if "wrong" protection code & ! 4110 PROT% = SWAP%( U%(PTR%,4%) ) AND 255% 4120 IF PROT% < 128% THEN RETURN 4200 ! & !print data & ! 4210 PRINT #2%, "["; \ & PRINT #2%, USING "###", PROJ%; \ & PRINT #2%, ","; \ & PRINT #2%, USING "###", PROG%; \ & PRINT #2%, "] "; 4220 PRINT #2%, RAD$( U%(PTR%,1%) ); & RAD$( U%(PTR%,2%) ); "."; & RAD$( U%(PTR%,3%) ); & !name of file 4230 PRINT #2%, USING " ###", PROT%; & !Protection 4240 AB% = FNLINK%(U%(PTR%,6%)) \ & PRINT #2%, " ";DATE$(U%(AB%,3%)) & !date of creation 4990 RETURN 8000 ! & ! & ! FUNCTIONS & ! & ! 8100 ! & !Convert a link word to a blockette number & ! 8110 DEF FNLINK%(L%) = ((( L% AND 3584%) / 512% ) * CLU% & + ( SWAP%( L% AND -4096% ) / 16% )) * 32% & + (( L% AND 496%) / 16%) 9000 ! & ! & ! Error Routine & ! & ! 9100 ! & !^C error: not caught seperately & ! 9200 ! & !Expected errors (by line number) & ! 9210 IF ERL = 520 THEN RESUME 400 & !assume an error means no more files on this disk 9600 ! & !Expected errors (with no specific line number) & ! 9900 ! & !Unexpected errors & ! 9910 Z$ = SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)) 9920 ERROR$ = RIGHT(Z$,3%) 9930 CLOSE 1% 9940 PRINT #2% \ & PRINT #2% \ & PRINT #2%, "Program ended with an error before all files were processed." \ & PRINT #2%, " "; ERROR$; " at line";ERL 9950 CLOSE #2% 32767 END PRIV BAS[.050020]PRIV .BAS[.050020]   X1혀4¿|HÞï þÿÿ[ú«4ÿ;ßïöëÿÿÝûÿIßkûÿ(Ÿ«ûÿ&ûÿ'( «á«ôÑk ß«Hûÿ&ú«PïŠú«`ï‚ßï®ëÿÿŸ« ûÿüÐ\žËàïR™rP P2PPzPP{PPP÷PP2P~ûÿ®ñÿÿÿÿ\ÐÿŸ«ûÿªŸ«$ûÿ ûÿÐ\Ã\T‘D«á 0D«áó \ìÎ~ûÿŠŸ« ûÿhûÿi) «ô«á+Ô\ ^( «án ^( ïëÿÿn°«pÀ\Ð^«tú«xÿYÀ\^úË€ÿÐ\ßïÎêÿÿÝûÿ!ßkûÿŸ«ûÿþûÿÿÐVÕk<Ý\ÝûÿñžFË×ï˰<Ë´ßˬûÿÇûÿÌÖ\ÀVÑVkÆ”úˤÿ—1`þ@ÐïlüÿÿP ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789<@<¼SЬTЬ UÔQÕS><„PÑPÿùÐå¹P×S'{@PRPB¯ …×S{(PRPB¯’…×S@¯‰…¾@@Œ˜ ("@$$Ø#0$è#$8$%˜$%(%è$! @"FORRTLLIBRTL7-./% <=2&?'@O{[lP}M]\Nk`Kaðñòóôõö÷øùz^L~no|ÁÂÃÄÅÆÇÈÉÑÒÓÔÕÖרÙâãäåæçèéJàZ_my‚ƒ„…†‡ˆ‰‘’“”•–—˜™¢£¤¥¦§¨©ÀjС???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ÿ\ \\\\ \\\\\\\\\\ \\\\\\\\\\\\\\\\ \\\\\\\\\[.<(+!&\\\\\\\\\]$*);^-/\\\\\\\\|,%_>?\\\\\\\\\`:#@'="\abcdefghi\\\\\\\jklmnopqr\\\\\\\~stuvwxyz\\\\\\\\\\\\\\\\\\\\\\{ABCDEFGHI\\\\\\}JKLMNOPQR\\\\\\\\STUVWXYZ\\\\\\0123456789\\\\\ÿ