5 COM D0,D1,S0 10 REM*** BAEDP TIMESHARE BILLING. 20 REM*** THIS PROGRAM COMBINES INDIVIDUAL SYSTEM USAGE FILES 30 REM*** INTO FILE USFILM. EACH ENTRY IS IN THE FORMAT 40 REM*** NUMERIC ID/SYSTEM(10001 TO 269999), NUMERIC MONTHLY 50 REM*** TIME (MINUTES), AND NUMERIC AVERAGE DISK SPACE (BLOCKS). 60 REM*** 70 PRINT "COMBINING SYSTEM USAGE FILES TO 'USFILM'" 80 FILES *,*,*,*,*,*,*,*,*,* 90 DIM I$[6] 95 DIM N$[10] 96 N$="0123456789" 100 DIM A[9],B[9],C[9] 110 REM*** CHECK COMPLETION OF USAGE FILES. 120 I$="USFIL" 150 FOR I=1 TO S0 160 I$[6,6]=N$[I+1,I+1] 170 ASSIGN I$,I,R8 180 IF R8<3 THEN 200 190 PRINT "FILE ";I$;" STATUS= ";R8 195 STOP 200 IF END #I THEN 220 210 GOTO 240 220 PRINT "FILE ";I$;" IS INCOMPLETE" 230 STOP 240 READ #I;A1,B1,C1 250 IF A1#26999 THEN 240 255 READ #I,1 260 NEXT I 270 REM*** A(I)=I.D. FORM USFIL I. 280 REM*** B(I)=TIME FROM USFIL I. 290 REM*** C(I)=DISK FROM USFIL I. 300 REM*** 310 REM*** CONVERT I.D.'S TO I.D./SYS. PUT DATA IN USFILM. 320 I$[6,6]="M" 330 ASSIGN I$,10,R8 340 IF R8=0 THEN 370 350 PRINT "FILE ";I$;" STATUS= ";R8 360 STOP 370 REM*** INITIALIZE 375 PRINT #10,1; END 380 MAT A=ZER 390 MAT B=ZER 400 MAT C=ZER 410 FOR I=1 TO S0 420 READ #I;A[I],B[I],C[I] 430 NEXT I 440 REM*** COMPUTE MIN A(I) AND I 450 I1=1 460 M1=999999. 470 FOR I=1 TO S0 480 IF A[I] >= M1 THEN 510 490 M1=A[I] 500 I1=I 510 NEXT I 520 REM*** IF M1=999999, USFILM IS COMPLETE. 530 IF M1#999999. THEN 550 540 CHAIN "CHECK" 550 M1=M1*10+I1 560 IF END #10 THEN 580 570 GOTO 610 580 PRINT "USFILM IS TOO SMALL. KIL AND RE-OPEN USFILM" 590 PRINT "TO A LARGER SIZE, AND RUN DRIVER(OPTION 3)." 600 STOP 610 IF B[I1]=0 AND C[I1]=0 THEN 630 620 PRINT #10;M1,B[I1],C[I1], END 630 IF END #I1 THEN 660 640 READ #I1;A[I1],B[I1],C[I1] 650 GOTO 440 660 A[I1]=999999. 670 GOTO 440 9999 END