10  FILES STRNG1,STRNG2,STRNG3
20  DIM A$[22],B$[4],C$[72],D$[72],E$[72],F$[72],G$[72],H$[72]
30  DIM M$[7],N$[4],O$[10]
40  DIM Y$[72],T[40],N[40]
50  DIM Q[100],Z$[10],L$[72]
60  C$="A194A284B000C000D000D273D274D275E197E721H112H113H624H720I276I280I281"
70  D$="I347L271L272L273N011N012N199O006O013O196O274O275O277O621O622O623O624"
80  E$="R014P016R278S279S280T283T284T834U191U192U193K000M000N000P000R000F000"
90  F$="G000H000I000E000Q000I123T000O000U000V000X000Z000W000S000J000L000Y000"
100  G$="A000I282Y001H625H626O625B001O014A001U194A999U333B111O015L274C013L275"
110  H$="O6200000000000000000000000000000000000000000000000000000000000000000"
120  O$="0123456789"
130  B1=I1=0
140  FOR I=1 TO 128
150  PRINT #1,I;B1
160  PRINT #2,I;B1
170  NEXT I
180  READ #1,1
190  READ #2,1
200  INPUT A$
210  IF A$="*" THEN 540
220  Q=0
230  M$=A$[7,13]
240  N$=A$[15,18]
250  GOSUB 410
260  IF Q=99 THEN 340
270  PRINT #1;M$, END 
280  IF  END #1 THEN 320
290  PRINT #2;Q, END 
300  IF  END #2 THEN 320
310  GOTO 200
320  PRINT "LOG FILE IS FULL OF DATA. NO MORE DATA ACCEPTED!"
330  GOTO 540
340  PRINT '7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7'7
350  PRINT "RE-INPUT THE LAST DATA ITEM!IT WAS RECEIVED INCORRECTLY!!"
360  PRINT "DURING THE FOLLOWING TIME DELAY, DEACTIVATE THE TAPE READER UNTIL"
370  PRINT "THE DATA HAS BEEN INPUTED CORRECTLY!!"
380  FOR I1=1 TO 10000
390  NEXT I1
400  GOTO 200
410  FOR I=1 TO 4
420  C=I-1
430  N0=5+(-1*I)
440  X=0
450  IF N$[N0,N0]=O$[X+1,X+1] THEN 490
460  X=X+1
470  IF X>9 THEN 520
480  GOTO 450
490  Q=X*10^C+Q
500  NEXT I
510  GOTO 530
520  Q=99
530  RETURN 
540  READ #1,1
550  READ #2,1
560  IF I1=0 THEN 610
570  PRINT "IF THE INPUT ERRORS DETECTED WERE NOT RE-INPUTED CORRECTLY"
580  PRINT "THE USAGE COUNT WILL BE OFF BY 1 OR MORE USERS DEPENDING"
590  PRINT "UPON HOW MANY INPUT ERRORS WERE NOT CORRECTED."
600  PRINT '13'10'10
610  FOR J=1 TO 40
620  N[J]=T[J]=0
630  NEXT J
640  READ #1,1
650  READ #2,1
660  T=F=N=Q=0
670  B=1600
680  X=22
690  READ #1;A$
700  IF  END #1 THEN 1100
710  READ #2;A
720  IF A >= 0 AND A<600 THEN 690
730  IF A >= B AND A<B+30 THEN 860
740  GOSUB 900
750  X=X+1
760  IF A >= B+30 AND A<B+100 THEN 880
770  GOSUB 900
780  X=X+1
790  B=B+100
800  IF B=2400 THEN 820
810  GOTO 730
820  B=600
830  X=2
840  T=0
850  GOTO 720
860  GOSUB 980
870  GOTO 730
880  GOSUB 980
890  GOTO 760
900  M1=T
910  T=T+N-F
920  IF T >= 0 THEN 940
930  T=0
940  N[X]=N[X]+T
950  T[X]=M1+N+T[X]
960  N=F=0
970  RETURN 
980  IF A$[1,1]="N" THEN 1040
990  IF A$[1,1]="F" THEN 1020
1000  PRINT A$"NEITHER LOGON OR LOGOFF"
1010  GOTO 1050
1020  F=F+1
1030  GOTO 1050
1040  N=N+1
1050  READ #1;A$
1060  IF  END #1 THEN 1090
1070  READ #2;A
1080  RETURN 
1090  GOSUB 900
1100  PRINT "INPUT THE DATE OF THE LOG TAPE."
1110  INPUT Z$
1120  PRINT "TYPE A 0 FOR BOTH TABLES,A 1 FOR ACC. TABLE,A 2 FOR TIME TABLE."
1130  INPUT A
1140  IF A=0 THEN 1270
1150  IF A=2 THEN 1880
1160  Q=98
1170  GOTO 1270
1180  PRINT "      ****************************************************************"
1190  PRINT TAB(7)"1"TAB(9)"2"TAB(11)"3"TAB(13)"4"TAB(15)"5";
1200  PRINT TAB(17)"6"TAB(19)"7"TAB(21)"8"TAB(23)"9"TAB(25)"10";
1210  PRINT TAB(27)"11"TAB(29)"12"TAB(31)"13"TAB(33)"14"TAB(35)"15";
1220  PRINT TAB(37)"16"TAB(39)"17"TAB(41)"18"TAB(43)"19"TAB(45)"20";
1230  PRINT TAB(47)"21"TAB(49)"22"TAB(51)"23"TAB(53)"24"TAB(55)"25";
1240  PRINT TAB(57)"26"TAB(59)"27"TAB(61)"28"TAB(63)"29"TAB(65)"30";
1250  PRINT TAB(67)"31"TAB(69)"32"
1260  GOTO 1790
1270  GOSUB 2500
1280  B=630
1290  PRINT 
1300  PRINT 
1310  X=2
1320  Z=700
1330  FOR I=1 TO 4
1340  PRINT TAB(1),B'13TAB(5)"-*";
1350  IF T[X]=0 THEN 1410
1360  IF 2*T[X]+5<69 THEN 1390
1370  GOSUB 2400
1380  GOTO 1420
1390  GOSUB 2450
1400  GOTO 1420
1410  PRINT 
1420  IF B=930 THEN 1550
1430  X=X+1
1440  B=B+100
1450  PRINT TAB(1),Z'13TAB(5)"-*";
1460  IF T[X]=0 THEN 1520
1470  IF 2*T[X]+5<69 THEN 1500
1480  GOSUB 2400
1490  GOTO 1530
1500  GOSUB 2450
1510  GOTO 1530
1520  PRINT 
1530  X=X+1
1540  Z=Z+100
1550  NEXT I
1560  FOR J=1 TO 14
1570  B=B+100
1580  X=X+1
1590  PRINT Z'13TAB(5)"-*";
1600  IF T[X]=0 THEN 1660
1610  IF 2*T[X]+5<69 THEN 1640
1620  GOSUB 2400
1630  GOTO 1670
1640  GOSUB 2450
1650  GOTO 1670
1660  PRINT 
1670  X=X+1
1680  Z=Z+100
1690  PRINT B'13TAB(5)"-*";
1700  IF T[X]=0 THEN 1760
1710  IF 2*T[X]+5<69 THEN 1740
1720  GOSUB 2400
1730  GOTO 1770
1740  GOSUB 2450
1750  GOTO 1770
1760  PRINT 
1770  NEXT J
1780  GOTO 1180
1790  PRINT 
1800  IF Q=99 THEN 1940
1810  PRINT "THIS IS MATRIX T "
1820  FOR I=1 TO 40
1830  PRINT T[I];
1840  NEXT I
1850  PRINT 
1860  IF Q=98 THEN 1940
1870  IF Q=99 THEN 1940
1880  FOR J=1 TO 40
1890  T[J]=N[J]
1900  NEXT J
1910  Q=99
1920  PRINT 
1930  GOTO 1270
1940  PRINT 
1950  PRINT 
1960  FOR I=1 TO 100
1970  Q[I]=0
1980  NEXT I
1990  READ #1,1
2000  READ #2,1
2010  X=I=1
2020  Z=0
2030  Y$=C$
2040  READ #1;A$
2050  READ #2;A
2060  IF  END #1 THEN 2390
2070  IF A$[4,7]=Y$[I,I+3] THEN 2270
2080  X=X+1
2090  I=I+4
2100  IF I >= 69 THEN 2120
2110  GOTO 2070
2120  Z=Z+1
2130  IF Z>4 THEN 2370
2140  GOSUB Z OF 2170,2190,2210,2230,2250
2150  I=1
2160  GOTO 2070
2170  Y$=D$
2180  RETURN 
2190  Y$=E$
2200  RETURN 
2210  Y$=F$
2220  RETURN 
2230  Y$=G$
2240  RETURN 
2250  Y$=H$
2260  RETURN 
2270  IF A$[1,1]="N" THEN 2330
2280  IF A$[1,1]="F" THEN 2310
2290  PRINT "NEITHER LOGON OR LOGOFF"
2300  GOTO 2010
2310  IF Q[X] <= 1 THEN 2313
2311  Q[X]=Q[X]-1
2312  GOTO 2010
2313  Q[X]=0
2314  GOTO 2010
2320  GOTO 2010
2330  IF Q[X]=0 THEN 2350
2331  READ #3;L$,X6
2332  IF  END #3 THEN 2340
2333  IF L$#A$[4,7] THEN 2331
2334  Q[X]=Q[X]+1
2335  IF Q[X]>X6 THEN 2340
2336  READ #3,1
2337  GOTO 2010
2340  PRINT "MORE THAN ONE USER ON ID "A$[4,7]" TIME"A
2350  Q[X]=1
2360  GOTO 2010
2370  PRINT "ID "A$[4,7]"  WAS NOT FOUND IN THE ID STRING!"
2380  GOTO 2010
2390  STOP 
2400  FOR M=1 TO 63
2410  PRINT "X";
2420  NEXT M
2430  PRINT 
2440  RETURN 
2450  FOR N=1 TO 2*T[X]-1
2460  PRINT "X";
2470  NEXT N
2480  PRINT 
2490  RETURN 
2500  PRINT 
2510  PRINT 
2520  PRINT 
2530  PRINT TAB(33),Z$
2540  RETURN 
2550  END 
