10  COM C0$[11],C0,C1$[11],C1
20  COM C4,C5,F3,D1$[255],G1,G2,D0,D4,D5,D6,D7,D8,D9,A6,A7,A9,N8,N9,L2
30  COM U[20],V[60],F1$[16],C[25],C,B1,L0,L1,K4,K9,B$[255],L$[100]
40  COM H[3,11],G[3,22],H0$[4],H6,K$[7],D0$[255],G$[66]
50  COM P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,L4,Q$[5],R$[6],S$[12],S0$[7],S1$[6],Q3
60  REM (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975
70  REM
80  REM ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,
90  REM REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE
100  REM PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.
110  FILES *,*,*,$FCOPYC,$FCOPYM
120  DIM A$[80],E$[80],M1$[3],I$[10],I0$[80],H$[72],H1$[80]
130  DIM N$[255],X$[20],X0$[20],X1$[20],Y$[72]
140  Q$="FCP"
150  ENTER #Q
160  IF Q >= 10 THEN 180
170  Q$[4]="0"
180  CONVERT Q TO Q$[LEN(Q$)+1]
190  R$="#,   A"
200  G$[1,66]=""
210  S0$='27"&p s0R"
220  S1$='27"&p dW"
230  D1$=""
240  F1$="0123456789ABCDEF"
250  IF C0$="" THEN 310
260  F3=3
270  G2=2
280  N8=C1
290  N9=C1=0
300  GOTO 320
310  F3=G2=D9=1
320  G1=1
330  K$="$"
340  C=2
350  MAT H=ZER
360  DATA 0,1,2,3,4,5,6,7,8,9
370  READ P0,P1,P2,P3,P4,P5,P6,P7,P8,P9
380  MAT  READ #P4,P1;U
390  MAT  READ #P5,P1;V
400  SYSTEM H0$[P1,P4],"TIM"
410  DATA "Version 2."
420  A=1041
430  A2=P1
440  B1=P0
450  GOSUB 3260
460  READ E$
470  IF A$=E$ THEN 510
480  A1=15
490  GOSUB 3520
500  STOP 
510  IF F3=P3 THEN 530
520  PRINT A$
530  REM - External entry point
540  SYSTEM H,"ECHO-ON"
550  C6=30
560  H9=BRK(P1)
570  C7=-P1
580  I7=.5
590  IF F3=P1 THEN 720
600  ASSIGN C1$,P3,H9
610  IF H9 <= P2 THEN 650
620  G9=13
630  GOSUB 4780
640  STOP 
650  IF  END #P3 THEN 690
660  READ #P3,N8
670  ADVANCE #P3;N9,H9
680  GOTO 740
690  G9=16
700  GOSUB 4780
710  GOTO 740
720  REM
730  IF I7=-C6 THEN 900
740  C7=C6
750  FOR I6=P1 TO 128
760  GOTO SGN(U[I6])+P2 OF 800,790,770
770  GOTO SGN(U[I6]-C6)+P2 OF 780,810,800
780  I7=I6
790  NEXT I6
800  I6=I7
810  READ #P4,I6
820  GOTO TYP(P4) OF 850,880,830
830  PRINT "** MODULE"C6"IS MISSING **"
840  STOP 
850  READ #P4;I7
860  IF I7#-C6 THEN 820
870  GOTO 900
880  READ #P4;A$
890  GOTO 820
900  READ #P4;C8,C9
910  MAT  READ #P4;C[C9]
920  READ #P4;I7
930  GOSUB C8 OF 5330,9670,5370,5410,6040,6160,6440,6620
940  GOSUB C8-P8 OF 6800,6970,7010,7090
950  C6=C[F5]
960  IF  END #P4 THEN 990
970  READ #P4;A$,I7
980  GOTO 720
990  I7=P0
1000  GOTO 720
1010  REM
1020  F9=P0
1030  A1=F2
1040  IF LEN(D1$)>P0 THEN 1320
1050  GOTO F3 OF 1060,1090,1090
1060  GOSUB 3150
1070  LINPUT D0$
1080  GOTO 1230
1090  IF TYP(P3)=P2 THEN 1220
1100  IF F3=P3 THEN 1130
1110  F3=P1
1120  GOTO 1030
1130  CHAIN F4,C0$,C0
1140  IF F4#P1 THEN 1180
1150  A1=99
1160  GOSUB 3520
1170  STOP 
1180  A1=P2
1190  X$=C0$
1200  GOSUB 3520
1210  STOP 
1220  READ #P3;D0$
1230  IF LEN(D0$)+LEN(D1$) <= 255 THEN 1270
1240  G9=P3
1250  GOSUB 4780
1260  GOTO 1030
1270  D1$[LEN(D1$)+1]=D0$
1280  IF D1$[LEN(D1$) MAX P1]#"&" THEN 1320
1290  D1$=D1$[P1,LEN(D1$)-P1]
1300  A1=201
1310  GOTO 1050
1320  F4=POS(D1$,";")
1330  IF F4=P0 THEN 1370
1340  D0$=D1$[P1,F4-P1]
1350  D1$=D1$[F4+P1,LEN(D1$)]
1360  GOTO 1390
1370  D0$=D1$
1380  D1$=""
1390  GOSUB 3850
1400  IF LEN(D0$)>P0 THEN 1430
1410  F5=P2
1420  RETURN 
1430  F4=P2
1440  IF F4>LEN(D0$) THEN 1540
1450  IF D0$[F4,F4]=" " THEN 1480
1460  F4=F4+P1
1470  GOTO 1440
1480  F6=F4+P1
1490  IF D0$[F6,F6]#" " THEN 1520
1500  F6=F6+P1
1510  GOTO 1490
1520  D0$[F4+P1]=D0$[F6,LEN(D0$)]
1530  GOTO 1460
1540  FOR F4=P1 TO LEN(D0$)
1550  IF NUM(D0$[F4]) >= 32 THEN 1590
1560  G9=P6
1570  GOSUB 4780
1580  GOTO 1030
1590  NEXT F4
1600  D0$=UOS$(D0$)
1610  IF D0$[P1,P2]="//" THEN 1700
1620  GOTO F7 OF 1630,1650
1630  F5=P3
1640  RETURN 
1650  A1=F8
1660  G9=F0
1670  GOSUB 7140
1680  IF F5=P1 THEN 1030
1690  RETURN 
1700  A1=103
1710  G9=P7
1720  GOSUB 7140
1730  GOTO F5 OF 1030,9670,1760,1850,1880,1910,1930,1970
1740  GOTO F5-P8 OF 1990,2010,2030,2070,2100
1750  GOTO 2480
1760  F9=F9+P1
1770  A=(F2+P1)*10+F9
1780  PRINT 
1790  GOSUB 3540
1800  GOTO B6 OF 1830,1810
1810  A1=P8
1820  GOSUB 5070
1830  PRINT 
1840  GOTO 1030
1850  H7=P0
1860  GOSUB 6640
1870  STOP 
1880  H7=P0
1890  GOSUB 6640
1900  SYSTEM F6,"BYE"
1910  F5=P1
1920  RETURN 
1930  H7=P0
1940  GOSUB 6640
1950  K$[C]="FCOPY"
1960  CHAIN K$,100
1970  G1=P1
1980  GOTO 2040
1990  G1=P2
2000  GOTO 2040
2010  G2=P1
2020  GOTO 2040
2030  G2=P2
2040  A1=F5+134
2050  GOSUB 5070
2060  GOTO 1030
2070  A1=105
2080  GOSUB 3520
2090  GOTO 1030
2100  IF G7#P0 THEN 2130
2110  G9=P4
2120  GOTO 2460
2130  G3=POS(D0$,",")
2140  IF G3#P0 THEN 2180
2150  G3=LEN(D0$)+P1
2160  F4=P1
2170  GOTO 2240
2180  CONVERT D0$[G3+P1,LEN(D0$)] TO F4,3801
2190  IF F4<P1 OR F4#INT(F4) THEN 2450
2200  IF G3-G7<20 THEN 2230
2210  G9=57
2220  GOTO 2460
2230  I=P1
2240  A$=D0$[G7+P1,G3-P1]
2250  H$="CAT-"
2260  H$[P5]=A$
2270  SYSTEM H1$,H$
2280  X$=A$
2290  IF H$[P5,10]=H1$[P1,P6] THEN 2320
2300  G9=84
2310  GOTO 2460
2320  IF H1$[P8,P8]#"A" THEN 2350
2330  G9=78
2340  GOTO 2460
2350  ASSIGN A$,P3,H9, PR 
2360  IF H9 <= 2 THEN 2390
2370  G9=13
2380  GOTO 2460
2390  IF  END #P3 THEN 2450
2400  C1$=A$
2410  G2=P2
2420  READ #P3,F4
2430  F3=P2
2440  GOTO 1030
2450  G9=16
2460  GOSUB 4780
2470  GOTO 1030
2480  D0$=D0$[P3]
2490  L=F5-13
2500  GOSUB 2520
2510  GOTO 1030
2520  REM *COMMAND*
2530  GOTO L OF 2550,2550,2550,2550,2550,2550
2540  GOTO L-P6 OF 2550,2790,3050,2620,2620,2620
2550  SYSTEM F1,D0$
2560  IF F1=P0 THEN 3120
2570  IF L#P1 THEN 2600
2580  G9=68
2590  GOTO 3100
2600  G9=57
2610  GOTO 3100
2620  A1=115
2630  GOSUB 3520
2640  B4=P1
2650  SYSTEM E$,D0$
2660  IF E$="" THEN 3140
2670  IF B4<20 THEN 2720
2680  Q4=P1
2690  GOSUB 5110
2700  B4=P0
2710  GOTO M1 OF 2720,3140
2720  PRINT E$
2730  IF LEN(E$)<50 THEN 3140
2740  B4=B4+P1
2750  D0$[P4]="-"
2760  D0$[P5]=E$[49,54]
2770  D0$[10]=CHR$(NUM(D0$[10])+P1)
2780  GOTO 2650
2790  K6=POS(D0$,",")
2800  IF K6#P0 THEN 2830
2810  G9=58
2820  GOTO 3100
2830  K7=POS(D0$[K6+P1],",")
2840  IF K7#P0 THEN 2880
2850  K7=LEN(D0$)+P1
2860  K8=256
2870  GOTO 2940
2880  K7=K6+K7
2890  IF LEN(D0$)-K7-P1>10 THEN 2920
2900  CONVERT D0$[K7+P1,LEN(D0$)] TO K8,4126
2910  IF K8 >= 64 AND K8 <= 256 AND K8=INT(K8) THEN 2940
2920  G9=59
2930  GOTO 3100
2940  IF K7-K6>10 THEN 2970
2950  CONVERT D0$[K6+P1,K7-P1] TO K7,4171
2960  IF K7 >= P1 AND K7 <= 32767 AND K7=INT(K7) THEN 2990
2970  G9=60
2980  GOTO 3100
2990  K=POS(D0$,"-")
3000  IF K=P0 OR K>K6 THEN 2810
3010  CREATE H9,D0$[K+P1,K6-P1],K7,K8
3015  PRINT H9;D0$[K+P1,K6-P1],K7,K8
3020  IF H9=P0 THEN 3120
3030  G9=H9+60
3040  GOTO 3100
3050  K=POS(D0$,"-")
3060  IF K=P0 THEN 2810
3070  PURGE H9,D0$[K+P1,LEN(D0$)]
3080  IF H9=P0 THEN 3120
3090  G9=H9+64
3100  GOSUB 4780
3110  RETURN 
3120  A1=L+105
3130  GOSUB 5070
3140  RETURN 
3150  REM
3160  A=A1*10+P1
3170  A2=P1
3180  GOSUB 3260
3190  PRINT TAB(B1);A$;
3200  GOSUB 3260
3210  GOTO A3 OF 3220,3240
3220  PRINT 
3230  GOTO 3190
3240  PRINT " ";
3250  RETURN 
3260  REM
3270  GOTO A2 OF 3280,3450
3280  A2=P2
3290  FOR A4=P2 TO 128
3300  GOTO SGN(V[A4])+P2 OF 3330,3350,3310
3310  GOTO SGN(V[A4]-A)+P2 OF 3320,3360,3350
3320  A5=A4
3330  NEXT A4
3340  GOTO 3430
3350  A4=A5
3360  READ #P5,A4
3370  GOTO TYP(-P5) OF 3380,3410,3430,3430
3380  READ #P5;A5
3390  IF A5=A THEN 3450
3400  GOTO 3370
3410  READ #P5;A$
3420  GOTO 3370
3430  B6=P2
3440  RETURN 
3450  B6=P1
3460  IF TYP(P5)#P2 THEN 3500
3470  READ #P5;A$
3480  A3=P1
3490  RETURN 
3500  A3=P2
3510  RETURN 
3520  REM
3530  A=A1*10+P1
3540  A2=P1
3550  GOSUB 3260
3560  IF B6=P2 THEN 3830
3570  B4=P0
3580  X9=POS(A$,"@")
3590  IF X9=P0 THEN 3750
3600  Y$=A$
3610  IF X$="" THEN 3650
3620  A$[X9]=X$
3630  X$=""
3640  GOTO 3700
3650  IF X0$="" THEN 3690
3660  A$[X9]=X0$
3670  X0$=""
3680  GOTO 3700
3690  A$[X9]=X1$
3700  IF A$[LEN(A$)]#" " THEN 3730
3710  A$=A$[P1,LEN(A$)-P1]
3720  GOTO 3700
3730  A$[LEN(A$)+P1]=Y$[X9+P1]
3740  GOTO 3580
3750  PRINT TAB(B1);A$
3760  B4=B4+P1
3770  GOSUB 3260
3780  IF A3=P2 THEN 3830
3790  IF B4<20 THEN 3580
3800  Q4=P1
3810  GOSUB 5110
3820  GOTO M1 OF 3570,3830
3830  F5=P1
3840  RETURN 
3850  REM *D0$*
3860  FOR N=P1 TO LEN(D0$)
3870  IF D0$[N,N]#" " THEN 3890
3880  NEXT N
3890  D0$=D0$[N,LEN(D0$)]
3900  FOR N=LEN(D0$) TO P1 STEP -P1
3910  IF D0$[N,N]#" " THEN 3930
3920  NEXT N
3930  D0$=D0$[P1,N]
3940  RETURN 
3950  REM *OPTIONS*
3960  N2=P0
3970  IF H[H8,P3]=P8 THEN 4010
3980  A6=P1
3990  A7=D0=P2
4000  GOTO 4100
4010  A6=P2
4020  D0=P1
4030  GOTO K9 OF 4040,9670,9670,9670,4070,4090,9670,4090
4040  A7=P2
4050  D9=P1
4060  GOTO 4110
4070  A7=P2
4080  GOTO 4100
4090  A7=P1
4100  D9=P2
4110  D4=D6=D7=D8=P2
4120  D5=P3
4130  IF LEN(D0$)=P0 THEN 4750
4140  N$=D0$
4150  N0=POS(N$,",")
4160  IF N0#P0 THEN 4180
4170  N0=LEN(N$)+P1
4180  D0$=N$[P1,N0-P1]
4190  GOSUB 3850
4200  IF LEN(D0$)>P0 THEN 4230
4210  G9=19
4220  GOTO 4400
4230  A1=116
4240  G9=20
4250  X$=D0$
4260  GOSUB 7140
4270  IF F5=P1 THEN 4410
4280  IF N2=P0 THEN 4420
4290  RESTORE 4470
4300  G9=20
4310  FOR N3=P1 TO 14
4320  READ N4,N5
4330  G9=G9+P1
4340  FOR N1=P1 TO N2
4350  IF N4=N[N1] MIN (F5-P2) AND N5=N[N1] MAX (F5-P2) THEN 4400
4360  NEXT N1
4370  NEXT N3
4380  IF N2<10 THEN 4420
4390  G9=40
4400  GOSUB 4780
4410  RETURN 
4420  N2=N2+P1
4430  N[N2]=F5-P2
4440  IF N0=LEN(N$)+P1 THEN 4480
4450  N$=N$[N0+P1]
4460  GOTO 4150
4470  DATA 1,2,1,3,1,4,1,5,2,3,2,4,2,5,3,5,3,8,4,5,4,8,6,7,6,12,9,10
4480  FOR N3=P1 TO N2
4490  GOTO N[N3] OF 4500,4520,4540,4560,4580,4600,4620,4640,4660,4680,4700,4720
4500  D5=P2
4510  GOTO 4730
4520  D5=P1
4530  GOTO 4730
4540  D7=P1
4550  GOTO 4730
4560  D6=P1
4570  GOTO 4730
4580  D8=P1
4590  GOTO 4730
4600  A6=P1
4610  GOTO 4730
4620  A6=P2
4630  GOTO 4730
4640  D9=P1
4650  GOTO 4730
4660  D0=P1
4670  GOTO 4730
4680  D0=P2
4690  GOTO 4730
4700  D4=P1
4710  GOTO 4730
4720  A7=P1
4730  NEXT N3
4740  IF D5#P3 THEN 4760
4750  D4=P1
4760  G9=P0
4770  RETURN 
4780  REM
4790  G2=P1
4800  GOTO F3 OF 4810,4810,4970
4810  A1=G9
4820  PRINT CHR$(7)
4830  GOSUB 3520
4840  IF F3=P1 THEN 4900
4850  A1=98
4860  GOSUB 3520
4870  F3=P1
4880  K$[C]="FCOPY"
4890  CHAIN K$,100
4900  IF LEN(D1$)=P0 THEN 4950
4910  A1=101
4920  GOSUB 3520
4930  PRINT TAB(B1);D1$
4940  D1$=""
4950  PRINT 
4960  RETURN 
4970  C1=G9
4980  CHAIN F4,C0$,C0
4990  IF F4#P1 THEN 5030
5000  A1=99
5010  GOSUB 3520
5020  STOP 
5030  A1=2
5040  X$=C0$
5050  GOSUB 3520
5060  STOP 
5070  REM *NEWS*
5080  IF G2=P2 THEN 5100
5090  GOSUB 3520
5100  RETURN 
5110  REM *CONT*
5120  PRINT 
5130  GOTO Q4 OF 5140,5160
5140  PRINT "CONTINUE? ";
5150  GOTO 5170
5160  PRINT "WILL YOU WAIT? ";
5170  LINPUT M1$[P1,P3]
5180  FOR M1=P1 TO LEN(M1$)
5190  IF M1$[M1,M1]#" " THEN 5210
5200  NEXT M1
5210  M1$=M1$[M1,LEN(M1$)]
5220  IF M1$="" THEN 5280
5230  M1$=UOS$(M1$)
5240  IF M1$[P1,P1]="Y" THEN 5280
5250  IF M1$[P1,P1]="N" THEN 5300
5260  PRINT "** TYPE 'YES' (OR JUST A CARRIAGE RETURN) OR 'NO' **"
5270  GOTO 5140
5280  M1=P1
5290  GOTO 5310
5300  M1=P2
5310  PRINT 
5320  RETURN 
5330  REM #1
5340  READ #P4;F2,B1,F7,F8,F0
5350  GOSUB 1010
5360  RETURN 
5370  REM #3
5380  READ #P4;I,H8,I9
5390  GOSUB 7350
5400  RETURN 
5410  REM #4
5420  READ #P4;H8
5430  FOR J6=P1 TO 22
5440  G[H8,J6]=P0
5450  NEXT J6
5460  F5=P2
5470  IF H[H8,P3]=P8 THEN 5520
5480  F2=209
5490  B1=P4
5500  F7=P1
5510  GOSUB 1010
5520  GOTO F5 OF 5560,5530,5570
5530  G[H8,P1]=P1
5540  G[H8,P2]=-P1
5550  G[H8,P3]=P0
5560  RETURN 
5570  I6=P1
5580  J8=P0
5590  F5=P2
5600  IF D0$[P1,P1]#" " THEN 5640
5610  IF LEN(D0$)=P0 THEN 5640
5620  D0$=D0$[P2]
5630  GOTO 5600
5640  J6=POS(D0$,",")
5650  J7=POS(D0$,":")
5660  GOTO SGN(J6)*P2+SGN(J7)+P1 OF 5740,5700,5680,5670
5670  GOTO SGN(J6-J7)+P2 OF 5680,9670,5700
5680  I7=P2
5690  GOTO 5760
5700  IF I6=P3 THEN 5980
5710  I7=P3
5720  J6=J7
5730  GOTO 5760
5740  J6=LEN(D0$)+P1
5750  I7=P4
5760  CONVERT D0$[P1,J6-P1] TO I8,5902
5770  IF I8 >= P1 AND I8=INT(I8) THEN 5820
5780  GOTO 5980
5790  IF D0$#"LAST" THEN 5980
5800  IF J8=INT(J8/P2)*P2 THEN 5980
5810  I8=-P1
5820  IF I6=P3 OR I7=P3 THEN 5850
5830  J8=J8+P1
5840  G[H8,J8]=I8
5850  J8=J8+P1
5860  G[H8,J8]=I8
5870  IF J6#LEN(D0$)+P1 THEN 5950
5880  FOR I8=P1 TO J8-P1 STEP P2
5890  IF G[H8,I8]>G[H8,I8+P1] AND G[H8,I8+P1]#-P1 THEN 5910
5900  IF G[H8,I8+P1]<G[H8,I8+P2] OR G[H8,I8+P2] <= P0 THEN 5930
5910  G9=70
5920  GOTO 5990
5930  NEXT I8
5940  GOTO 5560
5950  IF J8 <= 18 THEN 6010
5960  G9=69
5970  GOTO 5990
5980  G9=54
5990  GOSUB 4780
6000  GOTO 5480
6010  D0$=D0$[J6+P1,LEN(D0$)]
6020  I6=I7
6030  GOTO 5600
6040  REM #5
6050  READ #P4;H4,H5
6060  IF H[H4,P2]=P1 AND H[H5,P2]=P1 AND K9#9 THEN 6100
6070  H$=G$[(H4-P1)*22+12,(H4-P1)*22+22]
6080  H1$=G$[(H5-P1)*22+12,(H5-P1)*22+22]
6090  IF H$=H1$ THEN 6120
6100  F5=P2
6110  RETURN 
6120  G9=79
6130  GOSUB 4780
6140  F5=P1
6150  RETURN 
6160  REM #6
6170  READ #P4;H8
6180  B1=P4
6190  IF H[H8,P3]=P5 THEN 6260
6200  IF H[H8,P3]=P8 AND K9=P1 THEN 6410
6210  IF H[H8,P3]=P7 OR H[H8,P3]=P8 THEN 6330
6220  F2=213
6230  F7=P1
6240  GOSUB 1010
6250  GOTO F5 OF 6400,6260,6280
6260  G[H8,P1]=P1
6270  GOTO 6390
6280  CONVERT D0$ TO G[H8,P1],6302
6290  IF G[H8,P1] >= 1 AND G[H8,P1]=INT(G[H8,P1]) THEN 6390
6300  G9=43
6310  GOSUB 4780
6320  GOTO 6220
6330  F2=215
6340  F7=P1
6350  GOSUB 1010
6360  GOTO F5 OF 6400,6370,6370
6370  GOSUB 3950
6380  IF G9#P0 THEN 6330
6390  F5=P2
6400  RETURN 
6410  D9=P1
6420  F5=P2
6430  RETURN 
6440  REM #7
6450  GOTO K9 OF 6530,6550,6550,6460,6530,6530,6550,6530,6550,6550,6550
6460  I=P2
6470  A$=""
6480  H8=3
6490  I9=P2
6500  GOSUB 7350
6510  IF F5=P2 THEN 6530
6520  RETURN 
6530  K$[C]="FCOPY1"
6540  GOTO 6560
6550  K$[C]="FCOPY2"
6560  IF F3=P1 THEN 6590
6570  N8=REC(P3)
6580  N9=ITM(P3)
6590  CHAIN K$,100
6600  PRINT "** PROGRAM "K$" IS MISSING **"
6610  STOP 
6620  REM #8
6630  READ #P4;H7
6640  IF H7#P0 THEN 6730
6650  H1$="CAT-FCP"
6660  SYSTEM H$,H1$
6670  IF H$[P1,P3]#"FCP" THEN 6710
6680  CONVERT H$[P4,P5] TO H9,6548
6690  PURGE H9,H$[P1,P6]
6700  GOTO 6660
6710  MAT H=CON
6720  GOTO 6780
6730  ASSIGN *,H7
6740  H[H7,P1]=P1
6750  IF H[H7,P7]#P2 THEN 6780
6760  PURGE H9,G$[(H7-P1)*22+P1,(H7-P1)*22+11]
6770  H[H7,P7]=P1
6780  F5=P1
6790  RETURN 
6800  REM #9
6810  F5=P2
6820  READ #P4;M3
6830  GOTO M3 OF 6840,6910
6840  IF D0$#"" THEN 6870
6850  L0=0
6860  GOTO 6960
6870  CONVERT D0$ TO L0,6667
6880  IF L0 >= P0 AND L0=INT(L0) THEN 6960
6890  G9=71
6900  GOTO 6940
6910  CONVERT D0$ TO L1,6694
6920  IF L1 >= P1 AND L1=INT(L1) THEN 6960
6930  G9=72
6940  GOSUB 4780
6950  F5=P1
6960  RETURN 
6970  REM #10
6980  READ #P4;L2
6990  F5=P1
7000  RETURN 
7010  REM #11
7020  READ #P4;L3,L4
7030  GOTO L3 OF 7040,7070,7060
7040  H[P3,P3]=L4
7050  GOTO 7070
7060  L$=D0$
7070  F5=P1
7080  RETURN 
7090  REM #12
7100  L=F5-13
7110  GOSUB 2520
7120  F5=P1
7130  RETURN 
7140  REM *MATCH*
7150  A2=P1
7160  A=A1*10+P1
7170  F5=P2
7180  GOSUB 3260
7190  IF A3=P2 THEN 7290
7200  F5=F5+P1
7210  G6=POS(A$,"@")
7220  IF D0$[P1,G6-P1]#A$[P1,G6-P1] THEN 7180
7230  A$[G6]=A$[G6+P1,LEN(A$)]
7240  G7=POS(D0$,"-")
7250  IF G7#P0 THEN 7270
7260  G7=LEN(D0$)+P1
7270  IF D0$[P1,G7-P1]=A$[P1,G7-P1] THEN 7320
7280  GOTO 7180
7290  GOSUB 4780
7300  F5=P1
7310  RETURN 
7320  IF A1#118 THEN 7340
7330  K9=F5-P2
7340  RETURN 
7350  REM *FILE*
7360  FOR I6=P1 TO 11
7370  H[H8,I6]=1
7380  NEXT I6
7390  I0=I1=I3=P0
7400  I6=I8=P1
7410  GOTO I9 OF 7420,7440,7460,7460,7450
7420  A$=D0$[1,LEN(D0$) MIN 80]
7430  GOTO 7450
7440  A$="#LP"
7450  IF A$#"" THEN 7520
7460  H[H8,P2]=P3
7470  H[H8,P3]=P8
7480  H[H8,P6]=P2
7490  I3=P0
7500  I1=P1
7510  GOTO 8910
7520  FOR I7=P1 TO LEN(A$)+P1
7530  I8=P1
7540  IF I7=P1 AND (NUM(A$)=35 OR NUM(A$)=36 OR NUM(A$)=42) THEN 7680
7550  IF I7=LEN(A$)+P1 THEN 7640
7560  K=NUM(A$[I7])
7570  IF K=32 AND I6#P5 THEN 7970
7580  IF K=32 AND I6=P5 THEN 7680
7590  IF (K >= 48 AND K <= 57) OR (K >= 65 AND K <= 90) THEN 7680
7600  IF K=46 THEN 7670
7610  IF K=44 THEN 7660
7620  IF K=34 THEN 7650
7630  GOTO 7950
7640  I8=I8+P1
7650  I8=I8+P1
7660  I8=I8+P1
7670  I8=I8+P1
7680  GOTO I6 OF 7690,7720,7760,7800,7840,7880
7690  GOTO I8 OF 7700,7950,7950,7950,9670
7700  I6=P2
7710  GOTO 7970
7720  GOTO I8 OF 7970,7730,7770,7950,7970
7730  I0=I7
7740  I6=P3
7750  GOTO 7970
7760  GOTO I8 OF 7970,7950,7770,7950,7970
7770  I1=I7
7780  I6=P4
7790  GOTO 7970
7800  GOTO I8 OF 7910,7950,7950,7810,7950
7810  I3=I7
7820  I6=P5
7830  GOTO 7970
7840  GOTO I8 OF 7970,7850,7970,7850,7950
7850  I4=I7
7860  I6=P6
7870  GOTO 7970
7880  GOTO I8 OF 7950,7950,7890,7950,7970
7890  CONVERT A$[I7+1,LEN(A$)] TO H[H8,8],7386
7900  GOTO 7920
7910  CONVERT A$[I7,LEN(A$)] TO H[H8,8],7386
7920  IF H[H8,8] >= P1 AND H[H8,8]=INT(H[H8,8]) THEN 7980
7930  G9=10
7940  GOTO 9580
7950  G9=P9
7960  GOTO 9580
7970  NEXT I7
7980  IF I1#P0 THEN 8000
7990  I1=LEN(A$)+P1
8000  IF A$[P1,P1]="#" THEN 8580
8010  IF NUM(A$)=36 OR NUM(A$)=42 OR I0#0 THEN 8420
8020  H$="CAT-"
8030  H$[P5]=A$[P1,I1-P1]
8040  SYSTEM H1$,H$
8050  IF H$[P5,10]=H1$[P1,P6] THEN 8080
8060  G9=13
8070  GOTO 9580
8080  IF H1$[P8,P8]="A" THEN 8270
8090  IF H1$[P8,P8]="F" THEN 8140
8100  IF H1$[P8,P8]="M" THEN 8140
8110  G9=85
8120  X$=H$[P5]
8130  GOTO 9580
8140  IF H1$[P9,P9]#"P" THEN 8170
8150  H[H8,P9]=P2
8160  GOTO 8220
8170  IF H1$[P9,P9]#"L" THEN 8200
8180  H[H8,P9]=P3
8190  GOTO 8220
8200  IF H1$[P9,P9]#" " THEN 8220
8210  H[H8,P9]=P4
8220  CONVERT H1$[11,15] TO H[H8,P4],8680
8230  CONVERT H1$[19,21] TO H[H8,P5],7646
8240  GOTO 8910
8250  H[H8,P5]=256
8260  GOTO 8910
8270  REM - ASCII
8280  H[H8,P2]=P2
8290  CONVERT H1$[14,15] TO H,7697
8300  H[H8,P3]=P2
8310  GOTO 8910
8320  RESTORE 8330
8330  DATA "MT","PR","PP","CR","LP","TC"
8340  FOR H3=P3 TO P7
8350  READ H$
8360  IF H1$[13,14]=H$ THEN 8400
8370  NEXT H3
8380  G9=P9
8390  GOTO 9580
8400  H[H8,P3]=H3
8410  GOTO 8910
8420  REM - NOT IN CAT
8430  H[H8,P6]=P2
8440  ASSIGN A$[P1,I1-P1],P1,H9
8450  IF H9 <= P2 THEN 8510
8460  GOTO H9-P2 OF 8470,9670,9670,8490,9670,9670
8470  G9=13
8480  GOTO 9580
8490  G9=14
8500  GOTO 9580
8510  ASSIGN A$[P1,I1-P1],P2,H9
8520  IF H9>P2 THEN 8560
8530  ASSIGN *,1
8540  ASSIGN *,2
8550  GOTO 8910
8560  H[H8,P2]=H[H8,P3]=P2
8570  GOTO 8910
8580  REM - #
8590  H[H8,P2]=H[H8,P6]=H[H8,P7]=P2
8600  RESTORE 8330
8610  FOR H3=P3 TO P8
8620  READ H$
8630  IF A$[P2,P3]=H$ THEN 8670
8640  NEXT H3
8650  G9=P9
8660  GOTO 9580
8670  IF H3#P8 THEN 8900
8680  H[H8,P2]=P3
8690  H[H8,P6]=P2
8700  H[H8,P7]=P1
8710  IF NUM(A$[P4])#76 THEN 8740
8720  H[H8,P9]=P1
8730  GOTO 8780
8740  IF NUM(A$[P4])=82 THEN 8770
8750  G9=301
8760  GOTO 9580
8770  H[H8,P9]=P2
8780  H3=P9
8790  S$='27"^"
8800  SYSTEM H,"ECHO-OFF"
8810  PRINT S$;
8820  ENTER P1,H,H$
8830  SYSTEM H1,"ECHO-ON"
8840  IF H >= P0 AND LEN(H$) >= P8 THEN 8870
8850  G9=309
8860  GOTO 9580
8870  IF H[H8,P8] <= 255 THEN 8900
8880  G9=300
8890  GOTO 9580
8900  H[H8,P3]=H3
8910  REM - CHECK READ/WRITE
8920  H3=H[H8,P3]
8930  GOTO I OF 8940,8970,9000,9030,9060,9090,9120
8940  IF H3#P5 AND H3#P7 THEN 9150
8950  G9=11
8960  GOTO 9580
8970  IF H3#P4 AND H3#P6 THEN 9150
8980  G9=12
8990  GOTO 9580
9000  IF H3 <= P3 OR H3=P9 THEN 9150
9010  G9=52
9020  GOTO 9580
9030  IF H3=7 OR H3=8 THEN 9150
9040  G9=51
9050  GOTO 9580
9060  IF H3=P1 THEN 9150
9070  G9=17
9080  GOTO 9580
9090  IF H3=P3 OR H3=P5 OR H3 >= P8 THEN 9150
9100  G9=87
9110  GOTO 9580
9120  IF H3=P3 OR H3=P4 OR H3 >= P8 THEN 9150
9130  G9=90
9140  GOTO 9580
9150  REM - CHECK SUBFILE
9160  IF H[H8,P8]=P1 OR H3=P1 OR H3=P3 OR H3=P4 OR H3=P6 OR H3=P9 THEN 9190
9170  G9=10
9180  GOTO 9580
9190  REM - CHECK MASK
9200  IF H[H8,P2]#P1 THEN 9250
9210  IF I3=P0 THEN 9280
9220  H[H8,10]=P2
9230  B$=A$[I3+P1,I4-P1]
9240  GOTO 9280
9250  IF I3=P0 THEN 9280
9260  G9=88
9270  GOTO 9580
9280  IF H[H8,P7]=P2 THEN 9310
9290  A$=A$[P1,I1-P1]
9300  GOTO 9610
9310  REM - CREATE FILE
9320  H$=A$[P2,I1-P1]
9330  IF H$[LEN(H$)]#" " THEN 9360
9340  H$=H$[P1,LEN(H$)-P1]
9350  GOTO 9330
9360  IF LEN(H$)=P2 THEN 9420
9370  IF LEN(H$)#P3 THEN 9400
9380  CONVERT H$[P3,P3] TO H1,8455
9390  GOTO 9420
9400  G9=P9
9410  GOTO 9580
9420  H1$="FILE-"
9430  H1$[P6]=Q$
9440  H1$[11]=CHR$(H8+64)
9450  H1$[12]=","
9460  H1$[13]=H$
9470  SYSTEM H1,H1$
9480  IF H1#P0 THEN 9540
9490  H[H8,P7]=P2
9500  G$[H8*22-10,H8*22]=A$[P1,I1-P1]
9510  A$=H1$[P6,11]
9520  H[H8,11]=I1-P2
9530  GOTO 9620
9540  IF I1=P5 THEN 9570
9550  G9=90+H[H8,P3]
9560  GOTO 9580
9570  G9=299+H[H8,P3]
9580  GOSUB 4780
9590  F5=P1
9600  RETURN 
9610  G$[(H8-P1)*22+12,(H8-P1)*22+22]=A$
9620  G$[(H8-P1)*22+P1,(H8-P1)*22+11]=A$
9630  G[H8,P1]=P1
9640  G[H8,P2]=-P1
9650  F5=P2
9660  RETURN 
9670  PRINT "** ERROR **"
9680  END 
