1  COM C0$[11],C0,C1$[11],C1
2  COM C4,C5,F3,D1$[255],G1,G2,D0,D4,D5,D6,D7,D8,D9,A6,A7,A9,N8,N9,L2
3  COM U[20],V[60],F1$[16],C[25],C,B1,L0,L1,K4,K9,B$[255],L$[100]
4  COM H[3,11],G[3,22],H0$[4],H6,K$[11],D0$[255],G$[66]
5  COM P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,L4,Q$[5],R$[6],S$[12],S0$[7],S1$[6],Q3
7  CHAIN "$FCOPY"
8  REM (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1975
15  FILES *,*,*,*
20  DIM A$[128],B0$[11]
30  DIM E$[255],E0$[132],E1$[132]
40  DIM F$[11],F0$[6],H$[72],H1$[72]
50  DIM M$[40],M0$[9]
70  DIM M1$[3],K[3,3]
80  DIM I1$[3],K0$[255]
90  DIM N$[255],X$[20],X0$[20],X1$[20],Y$[72]
92  DIM P$[128],P0$[128]
100  REM
200  K$[1,6]="FCOPYM"
202  ASSIGN K$,4,H9
204  IF H9<3 THEN 210
206  PRINT "'FCOPYM' IS MISSING"
208  STOP 
210  REM
1002  IF K9=P8 THEN 1008
1004  K4=P2
1006  GOTO 1020
1008  K4=A2=P1
1010  A=(120+L4)*10+P1
1012  GOSUB 4000
1014  P$=A$
1016  GOSUB 4000
1018  P0$=A$
1020  REM ** copy **
1070  K0=H8=P1
1075  M8=P3
1080  GOSUB 7100
1090  GOTO K1 OF 1100,1130
1100  M7=P3
1105  GOSUB 7500
1110  K0=P2
1120  GOTO 1080
1130  GOSUB 4900
1150  GOTO 3500
3500  IF G2=P2 THEN 9200
3502  A1=K9+125
3510  B1=P0
3520  GOSUB 4700
3525  GOSUB 9200
4000  REM
4010  GOTO A2 OF 4020,4160
4020  A2=P2
4025  FOR A4=P2 TO 128
4030  GOTO SGN(V[A4])+P2 OF 4060,4070,4040
4040  GOTO SGN(V[A4]-A)+P2 OF 4050,4080,4070
4050  A5=A4
4060  NEXT A4
4065  GOTO 9998
4070  A4=A5
4080  READ #P4,A4
4090  GOTO TYP(P4) OF 4100,4120,4140
4100  READ #P4;A5
4110  IF A5=A THEN 4160
4115  GOTO 4090
4120  READ #P4;A$
4130  GOTO 4090
4140  B6=P2
4150  RETURN 
4160  B6=P1
4165  IF TYP(P4)#P2 THEN 4200
4170  READ #P4;A$
4180  A3=P1
4190  RETURN 
4200  A3=P2
4210  RETURN 
4300  REM
4301  IF D9=P1 THEN 4307
4302  FOR E5=P1 TO LEN(E$)
4303  E7=NUM(E$[E5])
4304  IF E7>31 AND E7<127 THEN 4306
4305  E$[E5,E5]="@"
4306  NEXT E5
4307  IF A6=P2 AND D9=P1 THEN 4572
4310  GOTO A7 OF 4580,4320
4320  IF B3#P0 THEN 4470
4330  GOTO A6 OF 4340,4360
4340  A9=58
4350  GOTO 4380
4360  A9=1.E+25
4380  GOSUB 8000
4390  A0=P0
4400  E1$=""
4402  IF H[H8,P3]#P8 THEN 4410
4404  E1$[1,E0]="Terminal"
4406  GOTO 4430
4410  E1$[1,E0]="File "
4420  E1$[P6,16]=G$[12,22]
4430  B0=INT((E0-LEN(M$))/P2)
4440  E1$[B0,B0+LEN(M$)-P1]=M$
4450  E1$[E0-8,E0-5]="Page"
4460  GOTO 4480
4470  IF B3 >= A9 THEN 4480
4472  IF H[M8,P3]=P8 THEN 4560
4474  GOTO 4524
4480  A0=A0+P1
4490  CONVERT A0 TO M0$
4500  E1$[E0-P3,E0-P3+LEN(M0$)]=M0$
4510  IF H[M8,P3]=P8 THEN 4540
4512  IF A0=P1 THEN 4518
4514  PRINT #P3;CTL(P1),CTL(P3),E1$,CTL(P3),CTL(P3)
4516  GOTO 4522
4518  PRINT #P3;CTL(P3),E1$,CTL(P3),CTL(P3)
4522  B3=P3
4524  PRINT #P3;E$
4526  B3=B3+P1
4528  RETURN 
4540  PRINT LIN(P4),"-----",LIN(P4),E1$,LIN(P1)
4550  B3=P3
4560  PRINT E$
4565  B3=B3+P1
4570  RETURN 
4572  PRINT E$
4574  RETURN 
4580  IF B3=P0 THEN 4630
4590  IF B3<20 THEN 4640
4600  Q4=P1
4602  GOSUB 7700
4610  GOTO M1 OF 4630,9200
4630  B3=P0
4640  PRINT E$
4650  B3=B3+P1
4660  RETURN 
4700  REM
4702  A=A1*10+P1
4704  A2=P1
4706  GOSUB 4000
4708  IF B6=P2 THEN 4754
4710  B4=P0
4712  X9=POS(A$,"@")
4714  IF X9=P0 THEN 4741
4716  Y$=A$
4718  IF X$="" THEN 4726
4720  A$[X9]=X$
4722  X$=""
4724  GOTO 4736
4726  IF X0$="" THEN 4734
4728  A$[X9]=X0$
4730  X0$=""
4732  GOTO 4736
4734  A$[X9]=X1$
4736  IF A$[LEN(A$)]#" " THEN 4739
4737  A$=A$[P1,LEN(A$)-P1]
4738  GOTO 4736
4739  A$[LEN(A$)+P1]=Y$[X9+P1]
4740  GOTO 4712
4741  PRINT TAB(B1);A$
4742  B4=B4+P1
4744  GOSUB 4000
4746  IF A3=P2 THEN 4754
4748  IF B4<20 THEN 4710
4750  Q4=P1
4751  GOSUB 7700
4752  GOTO M1 OF 4710,4754
4754  F5=P1
4756  RETURN 
4900  REM
4902  IF H[M7,P3] <= P6 THEN 4972
4903  IF K9=P1 THEN 4940
4904  IF LEN(E$)=P0 OR D8=P2 OR K9=P2 OR K9=P3 OR K9 >= P7 THEN 4910
4906  GOSUB 4300
4910  IF A6=P2 OR H[M7,P3]#P8 THEN 4930
4920  PRINT LIN(62-B3);"-----"LIN(P3)
4930  RETURN 
4940  FOR H=P1 TO 20
4950  PRINT CHR$(P0);
4960  NEXT H
4970  RETURN 
4972  IF H[M7,P3]#P1 OR H[H8,P3]#P1 THEN 4986
4974  IF REC(M7)=K[M7,P2] THEN 4986
4976  CONVERT K[P1,P2] TO X$
4978  X0$=G$[12,22]
4980  X1$=G$[56,66]
4982  G9=80
4983  Q4=P1
4984  GOSUB 7050
4986  RETURN 
5000  REM
5056  GOTO D8 OF 5060,5296
5060  REM - Compress
5061  IF M6#P1 THEN 5064
5062  CONVERT K2 TO K0$
5064  GOTO H[H8,P2] OF 5068,5084,5084
5068  IF N6#P1 THEN 5088
5072  IF LEN(E$)=P0 THEN 5144
5076  GOSUB 4300
5080  GOTO 5144
5084  IF LEN(E$)=P0 THEN 5176
5088  IF LEN(E$)+LEN(K0$)+M6+P1>E0 AND M6#P4 THEN 5136
5092  GOTO M6 OF 5096,5112,5128,5132
5096  E$[LEN(E$)+P1]="  "
5100  E$[LEN(E$)+P1]=K0$
5104  RETURN 
5108  REM
5112  E$[LEN(E$)+P1]=" <"
5116  E$[LEN(E$)+P1]=K0$
5120  E$[LEN(E$)+P1]=">"
5124  RETURN 
5128  E$[LEN(E$)+P1]="  EOF"
5132  RETURN 
5136  GOSUB 4300
5140  REM
5144  GOTO H[H8,P2] OF 5148,5176,5176
5148  IF N6#P1 THEN 5156
5152  GOSUB 6500
5156  IF M6=P4 THEN 5177
5158  CONVERT N6 TO E0$
5160  E$="   "
5164  E$[P4-LEN(E0$),P3]=E0$
5168  E$[P4]=": "
5172  GOTO 5196
5176  IF M6#P4 THEN 5179
5177  E$=""
5178  RETURN 
5179  CONVERT K[H8,P2] TO E0$
5180  E$="     "
5184  E$[P6-LEN(E0$),P5]=E0$
5188  E$[P6]=": "
5192  REM - PUT AS MUCH AS CAN IN LINE
5196  GOTO M6 OF 5200,5208,5284
5200  E$[LEN(E$)+P1]=K0$
5204  RETURN 
5208  E$[LEN(E$)+P1]="<"
5212  E2=P0
5216  E1=E2+P1
5220  IF LEN(K0$)-E2+LEN(E$)+P1 <= E0 THEN 5232
5224  E2=E0-LEN(E$)+E1-P2
5228  GOTO 5236
5232  E2=LEN(K0$)
5236  E$[LEN(E$)+P1]=K0$[E1,E2]
5240  IF E2#LEN(K0$) THEN 5252
5244  E$[LEN(E$)+P1]=">"
5248  RETURN 
5252  GOSUB 4300
5256  IF E2=LEN(K0$) THEN 5280
5260  GOTO H[H8,P2] OF 5264,5272
5264  E$="     "
5268  GOTO 5216
5272  E$="       "
5276  GOTO 5216
5280  RETURN 
5284  E$[LEN(E$)+P1]="EOF"
5288  RETURN 
5292  REM - NOT COMPRESS
5296  GOTO D9 OF 5300,5312
5300  E$=""
5308  GOTO M6 OF 5360,5363,5366,5332
5312  IF H[H8,P2]#P1 OR N6#P1 THEN 5320
5316  GOSUB 6500
5320  GOTO M6 OF 5336,5336,5324,5332
5324  E$="EOF"
5328  GOSUB 4300
5332  RETURN 
5336  GOTO H[H8,P2] OF 5340,5380,5380
5340  E$="    "
5344  CONVERT N6 TO E0$
5348  E$[P4-LEN(E0$),P3]=E0$
5352  GOTO M6 OF 5356,5372
5356  E$[LEN(E$)+P1]="N: "
5360  CONVERT K2 TO E$[LEN(E$)+P1]
5362  GOTO 5364
5363  E$=K0$
5364  GOSUB 4300
5365  RETURN 
5366  FOR E5=P1 TO 20
5367  PRINT CHR$(0);
5368  NEXT E5
5369  RETURN 
5372  E$[LEN(E$)+P1]="S"
5376  GOTO 5392
5380  E$="     "
5384  CONVERT K[H8,P2] TO E0$
5388  E$[P6-LEN(E0$),P5]=E0$
5392  IF D5<P3 THEN 5400
5394  IF LEN(K0$)=P0 THEN 5412
5396  IF K0$[LEN(K0$)]=" " THEN 5412
5400  E4=P1
5404  E$[LEN(E$)+P1]=": "
5408  GOTO 5420
5412  E4=P2
5416  E$[LEN(E$)+P1]="* "
5420  E7=E3 MIN LEN(K0$)
5422  GOTO D4 OF 5424,5448
5424  E8=LEN(E$)+P1
5428  E7=E3 MIN LEN(K0$)
5432  E$[E8]=K0$[P1,E7]
5436  E9=LEN(E$)
5440  IF E4=P1 OR LEN(K0$)>E3 OR D5<P3 OR D9=P1 THEN 5448
5444  E$[LEN(E$)+P1]='92
5448  GOTO D5 OF 5452,5500,5544
5452  IF D4=P2 THEN 5460
5456  E$[E9+P1,E3+P8]=""
5460  FOR E5=P1 TO E7 STEP P2
5464  IF E5=E7 THEN 5476
5468  E0$=K0$[E5,E5+P1]
5472  GOTO 5480
5476  E0$[P1,P2]=K0$[E5,E5]
5480  GOSUB 6700
5484  E$[LEN(E$)+P1]=" "
5488  E$[LEN(E$)+P1]=F0$
5492  NEXT E5
5496  GOTO 5600
5500  IF D4=P2 THEN 5503
5502  E$[E9+P1,E3+P8]=""
5503  FOR E5=P1 TO E7 STEP P2
5504  E0$=K0$[E5,E5]
5508  GOSUB 6800
5512  E$[LEN(E$)+P1]=" "
5516  E$[LEN(E$)+P1]=F0$
5520  IF E5=E7 THEN 5536
5524  E0$=K0$[E5+P1,E5+P1]
5528  GOSUB 6800
5532  E$[LEN(E$)+P1]=F0$
5536  NEXT E5
5540  GOTO 5600
5544  IF D6=P2 AND D7=P2 THEN 5600
5548  E0$=""
5552  E0$[P1,E9]=""
5554  E6=P0
5556  FOR E5=E8 TO E9
5560  E7=NUM(E$[E5])
5564  IF D6=P2 OR E7<97 OR E7>122 THEN 5576
5568  E0$[E5,E5]="-"
5570  E$[E5,E5]=UOS$(E$[E5])
5572  GOTO 5588
5576  IF D7=P2 OR E7>31 THEN 5590
5580  E0$[E5,E5]="C"
5584  E$[E5,E5]=CHR$(E7+64)
5588  E6=E5
5590  NEXT E5
5591  GOSUB 4300
5592  IF E6=P0 THEN 5604
5593  E$=E0$[P1,E6]
5600  GOSUB 4300
5604  IF LEN(K0$) <= E3 THEN 5632
5608  K0$=K0$[E3+P1]
5612  GOTO D9 OF 5616,5624
5616  E$=""
5620  GOTO 5420
5624  E$="       "
5628  GOTO 5420
5632  RETURN 
6500  REM
6502  E$=""
6504  GOSUB 4300
6510  E$="RECORD "
6520  CONVERT K[H8,P2] TO E$[P8]
6540  GOSUB 4300
6550  RETURN 
6600  REM
6605  I5=E5
6610  E6=INT(I5/64)
6620  I5=I5-E6*64
6630  E7=INT(I5/P8)
6640  I5=I5-E7*P8
6650  CONVERT E6*100+E7*10+I5 TO I1$
6660  E1$="000"
6670  E1$[P4-LEN(I1$),P3]=I1$
6680  RETURN 
6700  REM
6710  I5=NUM(E0$)*256+NUM(E0$[P2])
6760  F0$=""
6762  FOR E7=P5 TO P0 STEP -P1
6764  E6=INT(I5/P8^E7)
6766  F0$[LEN(F0$)+P1]=CHR$(E6+48)
6768  I5=I5-E6*8^E7
6770  NEXT E7
6780  RETURN 
6800  REM
6805  F0$=""
6810  E6=INT(NUM(E0$)/16)
6820  F0$=F1$[E6+P1,E6+P1]
6830  E6=NUM(E0$)-E6*16
6840  F0$[LEN(F0$)+P1]=F1$[E6+P1,E6+P1]
6850  RETURN 
7000  REM
7002  GOTO F3 OF 7004,7004,7028
7004  A1=G9
7006  PRINT CHR$(P7)
7008  GOSUB 4700
7010  IF F3=P1 THEN 7018
7012  A1=98
7014  GOSUB 4700
7016  GOTO 9200
7018  IF LEN(D1$)=P0 THEN 7028
7020  A1=101
7022  GOSUB 4700
7024  PRINT TAB(B1);D1$
7026  D1$=""
7028  C1=G9
7030  GOTO 9200
7050  REM
7052  GOTO G2 OF 7054,7062
7054  PRINT CHR$(P7)
7056  A1=G9
7058  GOSUB 4700
7060  GOSUB 7700
7062  RETURN 
7100  REM
7102  K1=P1
7103  GOTO K0 OF 7104,7128
7104  M9=P1
7106  M7=H8
7108  N6=P0
7110  GOSUB 9500
7112  IF H[H8,P3]=P8 THEN 7226
7113  IF H[H8,P3]=P9 THEN 7116
7114  IF  END #H8 THEN 7246
7116  GOTO H[H8,P3] OF 7148,7118,7118,7118,9998,7118,9998,7226,7262
7118  FOR H=P1 TO G[H8,P1]-P1
7120  LINPUT #H8;A$[P1,P1]
7122  NEXT H
7124  IF  END #H8 THEN 7244
7126  GOTO 7202
7128  Q7=K[H8,P2]
7130  GOTO H[H8,P3] OF 7132,7180,7180,7180,9998,7180,9998,7224,7280
7132  GOTO K[H8,P3] OF 7156,7134
7134  H0=K[H8,P1]
7136  IF K[H8,P2]<G[H8,H0+P1] OR G[H8,H0+P1]=-P1 THEN 7146
7138  IF G[H8,H0+P2]=P0 THEN 7258
7140  IF  END #H8 THEN 7246
7142  K[H8,P1]=H0+P2
7144  K[H8,P2]=G[H8,H0+P2]-P1
7146  K[H8,P2]=K[H8,P2]+P1
7148  READ #H8,K[H8,P2]
7150  IF  END #H8 THEN 7244
7152  N6=P1
7154  GOTO 7158
7156  N6=N6+P1
7158  M6=TYP(-H8)
7160  GOTO M6 OF 7162,7168,7176,7176
7162  READ #H8;K2
7164  K[H8,P3]=P1
7166  RETURN 
7168  READ #H8;K0$
7170  GOSUB 7870
7172  K[H8,P3]=P1
7173  IF G1=P2 THEN 7214
7174  RETURN 
7176  K[H8,P3]=P2
7178  RETURN 
7180  H0=K[H8,P1]
7182  IF K[H8,P2]<G[H8,H0+P1] OR G[H8,H0+P1]=-P1 THEN 7200
7184  IF G[H8,H0+P2]=P0 THEN 7258
7186  IF  END #H8 THEN 7246
7188  FOR H=G[H8,H0+P1]+P1 TO G[H8,H0+P2]-P1
7190  LINPUT #H8;A$[P1,P1]
7192  NEXT H
7194  IF  END #H8 THEN 7244
7196  K[H8,P1]=H0+P2
7198  K[H8,P2]=G[H8,H0+P2]-P1
7200  K[H8,P2]=K[H8,P2]+P1
7202  N6=P1
7203  GOTO G1 OF 7204,7210
7204  LINPUT #H8;K0$[1,255]
7206  GOSUB 7870
7208  RETURN 
7210  LINPUT #H8;K0$[P1,255]
7212  GOSUB 7870
7214  FOR H=255 TO P1 STEP -P1
7216  IF K0$[H,H]#" " THEN 7220
7218  NEXT H
7220  K0$=K0$[P1,H]
7222  RETURN 
7224  IF M6=P3 THEN 7258
7226  SYSTEM H,"ECHO-ON"
7227  PRINT "? ";
7228  LINPUT K0$
7229  SYSTEM H,"ECHO-OFF"
7230  N6=N6+P1
7232  IF K0$[P1,P2]#"::" THEN 7238
7234  M6=P3
7235  K[H8,P2]=P0
7236  RETURN 
7238  K[H8,P2]=N6
7240  GOSUB 7870
7242  RETURN 
7244  IF G[H8,K[H8,P1]+P1]=-P1 THEN 7252
7246  G9=73
7248  X$=G$[12,22]
7250  GOSUB 7000
7252  IF M6=P3 OR H[H8,P3]=P1 THEN 7258
7254  M6=P3
7256  RETURN 
7258  K1=P2
7260  RETURN 
7262  IF G[H8,P1]=P1 THEN 7307
7264  CONVERT H[H8,P9] TO S$[P4,P4]
7266  CONVERT G[H8,P1]-P1 TO S$[P7,P9]
7270  PRINT S$;LIN(P0);
7272  LINPUT H$
7273  PRINT '27"A"'27"A"
7274  GOSUB 8900
7275  IF H=INT(H/P2)*P2 THEN 7307
7276  X$=G$[12,22]
7277  G9=73
7278  GOSUB 7000
7280  H0=K[H8,P1]
7281  IF M6=P3 THEN 7244
7282  IF K[H8,P2]<G[H8,H0+P1] OR G[H8,H0+P1]=-P1 THEN 7304
7284  IF G[H8,H0+P2]=P0 THEN 7258
7288  FOR H1=G[H8,H0+P1]+P1 TO G[H8,H0+P2]-P1
7290  PRINT S0$;LIN(P0);
7292  LINPUT K0$
7293  PRINT '27"A"'27"A"
7294  IF K0$=CHR$(30) THEN 7330
7296  NEXT H1
7300  K[H8,P1]=H0+P2
7302  K[H8,P2]=G[H8,H0+P2]-P1
7304  K[H8,P2]=K[H8,P2]+P1
7307  PRINT S0$;LIN(P0);
7308  GOTO G1 OF 7310,7314
7310  LINPUT K0$
7312  GOTO 7324
7314  LINPUT K0$[P1,255]
7316  FOR H=255 TO P1 STEP -P1
7318  IF K0$[H,H]#" " THEN 7322
7320  NEXT H
7322  K0$=K0$[P1,H]
7324  PRINT '27"A"'27"A"
7325  IF K0$=CHR$(30) THEN 7330
7326  GOSUB 7870
7328  RETURN 
7330  M6=P3
7332  RETURN 
7500  REM
7502  GOTO K0 OF 7504,7556
7504  M9=P2
7506  Q8=P1
7507  M7=M8
7508  GOSUB 9500
7510  IF H[M8,P3]=P5 OR H[M8,P3] >= P7 THEN 7514
7512  IF  END #M8 THEN 7696
7514  GOTO H[M8,P3] OF 7516,7520,7520,9998,7608,9998,7622,7530,7540
7516  K[M8,P2]=G[M8,P1]
7518  GOTO 7580
7520  FOR H=P1 TO G[M8,P1]-P1
7522  LINPUT #M8;A$[P1,P1]
7524  NEXT H
7526  IF H[M8,P3]=P2 THEN 7586
7528  GOTO 7602
7530  IF K9>P2 AND D9=P2 THEN 7622
7532  FOR H=P1 TO 20
7534  PRINT CHR$(P0);
7536  NEXT H
7538  GOTO 7622
7540  IF G[M8,P1]=P1 THEN 7556
7542  S$[P5]="s0R"
7544  FOR H1=P1 TO G[M8,P1]-P1
7546  PRINT S$;LIN(P0);
7548  LINPUT H$
7549  PRINT '27"A"'27"A"
7550  IF H$#CHR$(30) THEN 7553
7551  X$=G$[56,66]
7552  GOTO 7277
7553  NEXT H1
7556  GOTO H[M8,P3] OF 7558,7586,7602,9998,7608,9998,7626,7624,7650
7558  IF N6#P1 OR H[H8,P3]#P1 THEN 7608
7560  Q8=P1
7562  IF REC(M8)=K[M8,P2] THEN 7576
7564  CONVERT Q7 TO X$
7566  G9=80
7568  X0$=G$[12,22]
7570  X1$=G$[56,66]
7571  Q4=P1
7572  GOSUB 7050
7574  Q8=P2
7576  K[M8,P2]=K[M8,P2]+P1
7578  IF  END #M8 THEN 7696
7580  PRINT #M8,K[M8,P2]
7582  IF  END #M8 THEN 7687
7584  GOTO 7608
7586  GOTO M6 OF 7610,7614,7587,7606
7587  IF H[H8,P3]#P1 THEN 7598
7588  CONVERT K[H8,P2] TO X$
7590  X0$=G$[12,22]
7592  X1$=G$[56,66]
7594  G9=92
7595  Q4=P1
7596  GOSUB 7050
7597  RETURN 
7598  PRINT #M8; END 
7600  RETURN 
7602  GOTO M6 OF 7610,7614,7604,7606
7604  PRINT #M8;CTL(21)
7606  RETURN 
7608  GOTO M6 OF 7610,7614,7618,7620
7610  PRINT #M8;K2
7612  RETURN 
7614  PRINT #M8;K0$
7616  RETURN 
7618  PRINT #M8; END 
7620  RETURN 
7622  B3=0
7624  IF K9=P1 AND H[M8,P3]=P8 THEN 7630
7626  GOSUB 5000
7628  RETURN 
7630  GOTO M6 OF 7632,7636,7640,7646
7632  PRINT K2
7634  RETURN 
7636  PRINT K0$
7638  RETURN 
7640  FOR H=P1 TO 10
7642  PRINT CHR$(P0);
7644  NEXT H
7646  RETURN 
7650  GOTO M6 OF 7652,7654,7680,7676
7652  CONVERT K2 TO K0$
7654  IF LEN(K0$)>50 THEN 7657
7655  PRINT S1$;K0$
7656  GOTO 7666
7657  CONVERT LEN(S1$) TO R$[P3,P5]
7658  PRINT  USING R$;S1$
7659  CONVERT LEN(K0$) MAX P1 TO R$[P3,P5]
7660  PRINT  USING R$;K0$
7661  PRINT 
7666  GOSUB 8900
7668  H=NUM(H$[P5])
7670  IF H=INT(H/P4)*P4 THEN 7676
7672  G9=321
7674  GOSUB 7000
7676  RETURN 
7680  CONVERT H[M8,P9] TO S$[P4,P4]
7681  S$[P6]="5C"
7683  PRINT S$
7684  LINPUT H$
7685  PRINT '27"A"'27"A"'27"A"
7686  RETURN 
7687  Q8=P2
7688  RETURN 
7696  G9=73
7697  X$=G$[56,66]
7698  GOSUB 7000
7700  REM
7710  PRINT 
7712  GOTO Q4 OF 7720,7724
7720  PRINT "Continue? ";
7722  GOTO 7726
7724  PRINT "Will you wait? ";
7726  SYSTEM H,"ECHO-ON"
7730  LINPUT M1$[P1,P3]
7740  FOR M1=P1 TO LEN(M1$)
7750  IF M1$[M1,M1]#" " THEN 7770
7760  NEXT M1
7770  M1$=M1$[M1,LEN(M1$)]
7780  IF M1$="" THEN 7840
7790  M1$=UOS$(M1$)
7800  IF M1$[P1,P1]="Y" THEN 7840
7810  IF M1$[P1,P1]="N" THEN 7850
7820  PRINT "** TYPE 'YES' (OR JUST A CARRIAGE RETURN) OR 'NO' **"
7830  GOTO 7712
7840  PRINT 
7842  SYSTEM H,"ECHO-OFF"
7844  GOTO Q4 OF 7848,7846
7846  PRINT "Waiting..."
7848  RETURN 
7850  K$[1,6]="FCOPY"
7860  CHAIN K$,100
7870  GOTO K4 OF 7880,7950
7880  FOR E5=P1 TO LEN(K0$)
7890  E7=NUM(K0$[E5])
7900  IF E7>127 THEN 7930
7910  K0$[E5,E5]=P$[E7+P1,E7+P1]
7920  GOTO 7940
7930  K0$[E5,E5]=P0$[E7-127,E7-127]
7940  NEXT E5
7950  RETURN 
8000  REM
8010  X0=TIM(P0)
8020  X1=TIM(P1)
8030  X2=TIM(P2)
8040  X3=TIM(P3)
8050  IF X0#TIM(P0) THEN 8000
8060  IF X1 >= 12 THEN 8090
8070  X6=P1
8080  GOTO 8100
8090  X6=P2
8100  IF X1>12 THEN 8160
8110  IF X1#P0 THEN 8140
8120  X5=12
8130  GOTO 8170
8140  X5=X1
8150  GOTO 8170
8160  X5=X1-12
8170  CONVERT X5 TO M$
8180  M$[LEN(M$)+P1]=":"
8190  CONVERT X0 TO M0$
8200  IF LEN(M0$)=P2 THEN 8220
8210  M$[LEN(M$)+P1]="0"
8220  M$[LEN(M$)+P1]=M0$
8230  GOTO X6 OF 8240,8260
8240  M$[LEN(M$)+P1]=" A.M. "
8250  GOTO 8270
8260  M$[LEN(M$)+P1]=" P.M. "
8270  X5=X2
8280  FOR X6=75 TO X3-P1
8290  X5=X5+365
8300  IF INT(X6/P4)*P4#X6 THEN 8320
8310  X5=X5+P1
8320  NEXT X6
8330  RESTORE 8570
8340  FOR X6=P1 TO X5-INT((X5+P2)/P7)*P7+P3
8350  READ M0$
8360  NEXT X6
8370  M$[LEN(M$)+P1]=M0$
8380  M$[LEN(M$)+P1]=", "
8390  RESTORE 8590
8400  X7=P0
8410  FOR X6=P1 TO 12
8420  READ X5
8430  IF X6#P2 OR INT(X3/P4)*P4#X3 THEN 8450
8440  X5=X5+P1
8450  IF X5+X7 >= X2 THEN 8480
8460  X7=X7+X5
8470  NEXT X6
8480  RESTORE 8600
8490  FOR X5=P1 TO X6
8500  READ M0$
8510  NEXT X5
8520  M$[LEN(M$)+P1]=M0$
8530  M$[LEN(M$)+P1]=" "
8540  CONVERT X2-X7 TO M$[LEN(M$)+P1]
8550  M$[LEN(M$)+P1]=", 19"
8560  CONVERT X3 TO M$[LEN(M$)+P1]
8570  DATA "Sunday","Monday","Tuesday","Wednesday"
8580  DATA "Thursday","Friday","Saturday"
8590  DATA 31,28,31,30,31,30,31,31,30,31,30,31
8600  DATA "January","February","March","April","May","June","July"
8610  DATA "August","September","October","November","December"
8620  RETURN 
8700  REM
8710  A2=P1
8720  A=A1*10+P1
8730  F5=2
8740  GOSUB 4000
8750  IF A3=P2 THEN 8840
8760  F5=F5+P1
8770  G7=POS(A$,"@")
8800  IF N$[1,G7-1]#A$[1,G7-1] THEN 8740
8801  A$[G7]=A$[G7+1,LEN(A$)]
8802  G7=POS(N$,"-")
8804  IF G7#0 THEN 8810
8806  G7=LEN(N$)+1
8810  IF N$[1,G7-1]=A$[1,G7-1] THEN 8870
8830  GOTO 8740
8840  GOSUB 7000
8860  F5=1
8870  RETURN 
8900  REM *STATUS*
8905  S$[P5]="^"
8920  PRINT S$;LIN(P0);
8930  LINPUT H$
8932  PRINT '27"A"'27"A"
8935  IF LEN(H$)#P7 THEN 8920
8940  H=NUM(H$[LEN(H$)])
8950  IF H#INT(H/P2)*P2 THEN 8980
8960  G9=308
8970  GOSUB 7000
8980  S$[P5]="u+   p1C"
8985  H=INT(H/P2)
8990  RETURN 
9200  REM
9360  K$[1,6]="FCOPY"
9370  CHAIN K$,100
9500  REM 
9502  Q5=P1
9520  B0$=G$[M7*22-21,M7*22-11]
9572  IF H[M7,P3]=P8 THEN 9800
9574  IF H[M7,P3]=P9 THEN 9962
9576  GOTO H[M7,10] OF 9590,9610
9590  ASSIGN B0$,M7,H9, PR 
9600  GOTO 9620
9610  ASSIGN B0$,M7,H9,B$, PR 
9620  GOTO M9 OF 9630,9650
9630  IF H9>2 THEN 9924
9631  IF Q5=P1 OR G2=P2 THEN 9635
9632  PRINT "File now available."
9635  H[M7,1]=2
9640  GOTO 9670
9650  IF H9#0 AND H9#8 THEN 9924
9651  IF Q5=P1 OR G2=P2 THEN 9653
9652  PRINT "File now available."
9653  H[M7,P1]=P2
9660  IF H[M7,3]=5 THEN 9780
9665  IF H[M7,3]=7 THEN 9840
9670  IF  END #M7 THEN 9770
9680  FOR H=1 TO H[M7,8]-1
9690  GOTO H[M7,3] OF 9700,9998,9730,9750,9998,9750,9998,9998
9700  ADVANCE #M7;32768.,H9
9702  IF  END #M7 THEN 9722
9710  READ #M7,REC(M7)+1
9720  GOTO 9770
9722  G9=73
9724  GOTO 9942
9730  PRINT #M7;CTL(21)
9740  GOTO 9770
9750  IF  END #M7 THEN 9760
9752  LINPUT #M7;A$[P1,P1]
9754  GOTO 9752
9760  ASSIGN B0$,M7,H9
9770  NEXT H
9780  K[M7,1]=1
9790  K[M7,2]=G[M7,1]
9800  GOTO M9 OF 9810,9830
9810  E$=""
9812  M6=2
9814  K[M7,3]=1
9820  RETURN 
9830  GOTO K9 OF 9835,9910,9910,9835,9835,9835,9910,9835,9910,9910,9910
9835  IF H[M7,P3] <= P6 OR H[M7,P3]=P8 AND K9=P1 OR H[M7,P3]=P9 THEN 9910
9840  E4=2
9850  GOTO D0 OF 9860,9880
9860  E0=72
9870  GOTO 9890
9880  E0=132
9890  IF D5=3 THEN 9920
9900  E3=D0*(D4+1)*(D5+2)*2
9910  RETURN 
9920  E3=E0-1-(D9-1)*7
9922  RETURN 
9924  IF H9=P3 THEN 9941
9926  IF H9=P2 THEN 9939
9928  IF H9#P5 THEN 9934
9930  PRINT "FCOPY cannot access files with record size >256 words."
9932  GOTO 9200
9934  GOTO Q5 OF 9935,9954
9935  GOTO H[M7,11] OF 9936,9944,9946
9936  G9=74
9937  X$=B0$
9938  GOTO 9948
9939  G9=12
9940  GOTO 9942
9941  G9=75
9942  X$=B0$
9943  GOSUB 7000
9944  G9=H[M7,P3]+312
9945  GOTO 9948
9946  G9=H[M7,P3]+307
9948  Q4=P2
9950  GOSUB 7050
9952  Q5=P2
9954  ENTER 10,H,H$
9955  IF H<P0 THEN 9520
9956  G9=83
9958  GOSUB 7000
9962  S$='27"&p u   p2C"
9964  CONVERT H[M7,P9] TO S$[P4,P4]
9965  CONVERT H[M7,8] TO S$[P6,P8]
9967  SYSTEM H,"ECHO-OFF"
9968  PRINT S$;LIN(P0);
9970  LINPUT H$
9971  PRINT '27"A"'27"A"
9972  GOSUB 8900
9974  IF H#INT(H/P2)*P2 THEN 9996
9976  GOTO M9 OF 9977,9979
9977  CONVERT H[M7,P9] TO S0$[P4,P4]
9978  GOTO 9780
9979  CONVERT H[M7,P9] TO S1$[P4,P4]
9980  H=INT(NUM(H$[P6])/P4)
9981  IF H=INT(H/P2)*P2 THEN 9780
9982  G9=320
9983  GOSUB 7000
9984  B0$=G$[M7*22-11,M7*22]
9985  G9=73
9987  GOSUB 7000
9988  G9=308
9990  GOSUB 7000
9992  G9=309
9994  GOSUB 7000
9996  G9=321
9997  GOSUB 7000
9998  PRINT "**ERROR**"
9999  END 
