1  COM A[25],V[2,10]
2  COM A$[255],A1$[255],B0$[5],D0$[255],F0$[1],F1$[11],S0$[6]
3  COM H0$[94],H1$[94],J0$[3],J1$[3],K1$[15],P0$[184],P1$[4]
4  COM N0$[1],U0$[11],U1$[11],V0$[10],V1$[10],W$[102],W0$[8],W1$[255],Z$[255]
5  COM C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,D0
6  COM D,D1,D2,F9,G,G0,G8,L,S0,V0,V1,V2,V3,V5,V7
7  COM W0,W1,W3,W5,W8,W9
10  COM L[5],M[64,2],N[64,2],P[2]
11  COM B$[94],L$[94],M$[94],N$[94],O$[94],P$[94]
12  COM L1,L2,L3,L4,L7,M1,M2,M3,M4,M5,M7,M8,M9,N1,N2,N3,N4
15  REM (C) COPYRIGHT  HEWLETT-PACKARD CO. 1976
16  REM ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,
17  REM REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE
18  REM PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD CO.
50  FILES *,*
99  CHAIN "$EDITOR"
100  REM *ENTRY*
110  IF  ERROR  THEN 9998
120  ASSIGN U0$,C1,J, PR 
130  IF J THEN 9998
140  U0=V6=C0
145  D1=D
150  U1=C2
160  GOSUB 1000
165  W1=C0
170  A1$="EDIT00"
175  A1$[C7]=B0$
180  CHAIN J,A1$,100
190  GOTO 9998
1000  REMP >>REPLACE FROM<<
1005  IF M5 THEN 1200
1010  PRINT "No lines in WORK file."
1015  GOTO 1190
1020  PRINT "Missing or illegal range list"
1025  GOTO 1190
1030  PRINT "No lines in range"
1035  GOTO 1190
1040  PRINT "Rangelist not permitted with numbered lines"
1190  GOSUB 9700
1195  RETURN 
1200  REM2 *REPL*
1205  FILES *
1210  DIM T$[255]
1215  F8=C0
1220  W$="FROM"
1225  GOSUB 1800
1230  T$=A$[C1,I-C1]
1235  A1$=A$[I+C4,LEN(A$)]
1240  W$=""
1245  GOSUB 3400
1250  IF E THEN 1280
1255  IF H1=C2 THEN 1300
1260  IF  NOT LEN(T$) THEN 1020
1265  H4=C1
1270  A$=T$
1275  GOTO 1400
1280  RETURN 
1300  REM2 *REPL BY #*
1303  IF LEN(T$) THEN 1040
1306  H4=C1
1309  V0=C2
1312  GOSUB 4200
1315  IF V5=C1 THEN 1369
1318  X1=L
1321  X2=C0
1324  GOSUB 7200
1327  IF E THEN 1345
1330  X7=L
1333  GOSUB V7 OF 2000
1336  GOSUB 1640
1339  IF E THEN 1369
1342  GOTO 1372
1345  X7=L
1348  GOSUB 9900
1351  A$=V1$
1354  GOSUB 9670
1357  GOSUB 9650
1360  PRINT "Line "A$" not found."
1363  IF SYS(C3) THEN 1369
1366  IF V5=C3 THEN 1372
1369  RETURN 
1372  P2=A[C3]+C1
1375  GOSUB 3700
1378  IF V5=C2 THEN 1369
1381  GOTO 1309
1400  REM2 *NR*
1405  F4=C2
1410  F2=C1
1415  GOSUB 4400
1420  T$=A$
1425  IF  NOT E THEN 1500
1430  IF E=100 THEN 1465
1435  A$=T$
1440  IF  NOT LEN(A$) THEN 1460
1445  IF A$[C1,C1]#"," THEN 1020
1450  A$=A$[C2]
1455  GOTO 1415
1460  IF  NOT F8 THEN 1030
1465  GOSUB  NOT V7 OF 1900
1470  RETURN 
1500  REM2 *DR*
1505  GOSUB 7600
1510  GOSUB 5300
1515  F8=F8+C1
1520  GOSUB 1600
1525  IF V5=C1 THEN 1575
1530  P2=A[C3]+C1
1535  GOSUB 3700
1540  IF V5=C2 THEN 1575
1545  IF SYS(C3) THEN 1585
1550  IF L1=E[C1] THEN 1435
1555  GOSUB 7400
1560  IF E THEN 9998
1565  GOTO 1505
1570  RETURN 
1575  IF L1=E[C1] AND  NOT LEN(T$) THEN 1585
1580  PRINT "Full range not replaced."
1585  GOSUB  NOT V7 OF 1900
1590  GOSUB L1#E[C1] OF 9700
1595  RETURN 
1600  REM2 <PR LI>
1605  E=C0
1610  P0$=""
1615  X7=L1
1620  GOSUB V7 OF 2000
1625  V0=C3
1630  GOSUB 4200
1635  IF V0=C1 OR V5=C1 THEN 1700
1640  IF LEN(A$) <= G8 THEN 1685
1645  PRINT "Warning: Text beyond RBOUND discarded in line ";
1650  W$=A$[C1,G8]
1655  X7=L1
1660  GOSUB 9900
1665  A$=V1$
1670  GOSUB 9650
1675  PRINT A$
1680  GOTO 1690
1685  W$=A$
1690  GOSUB 5360
1695  GOSUB 6800
1700  RETURN 
1800  REM2 <FIND KEY>
1805  I=B0=C0
1810  J=C1
1815  I=POS(A$[J],W$)+J-C1
1820  IF I-J+C1=C0 OR I=LEN(A$) THEN 1840
1825  J=(POS(A$[I+C1],'34) MAX POS(A$[I+C1],"@"))+I
1830  IF J-I THEN 1815
1835  B0=C1
1840  RETURN 
1900  REM2 <L LI>
1905  X7=L1
1910  GOSUB 9900
1915  A$=V1$
1920  GOSUB 9650
1925  GOSUB 9670
1930  PRINT "Line "A$" was the last line replaced."
1935  RETURN 
2000  REM2 <DIS LI>
2005  GOSUB 9900
2010  P0$=V1$
2015  P0$[LEN(P0$)+C1]=" "
2020  W6=LEN(P0$)
2025  P0$[W6+C1]=W$
2030  GOSUB 6400
2035  RETURN 
3300  REM <YES/NO>
3305  J=SYS(C3)
3310  PRINT P0$;
3315  LINPUT A$
3320  IF SYS(C3) THEN 3370
3322  IF  NOT LEN(A$) THEN 3380
3325  IF LEN(A$)<C4 THEN 3340
3330  PRINT "Response limited to YES (or return) or NO (or break)."
3335  GOTO 3310
3340  A1$=UOS$(A$)
3345  RESTORE 3350
3350  DATA 2,1,"YES",1,"NO"
3355  GOSUB 9300
3360  IF  NOT K2 THEN 3330
3365  RETURN 
3370  K2=C2
3375  RETURN 
3380  K2=C1
3385  RETURN 
3400  REM <FR PAR/CART>
3402  H1=C2
3404  H2=C1
3406  H3=1.E+06
3408  H=U3=C0
3410  A$=A1$
3412  J1=POS(A$,"(")
3414  IF J1 THEN 3418
3416  J1=LEN(A$)+C1
3418  J2=POS(A$,",")
3420  J6=C2
3422  IF J2 THEN 3428
3424  J2=LEN(A$)+C1
3426  J6=C1
3428  J3=J1 MIN J2
3430  IF J3 >= C2 AND J3 <= 12 THEN 3436
3432  PRINT "Missing or illegal file name."
3434  GOTO 3520
3436  F1$=A$[C1,J3-C1]
3438  IF F1$[C1,C1]#"#" THEN 3454
3440  IF V3#C2 THEN 3432
3442  IF F1$#"#TCL" THEN 3448
3444  U3=C1
3446  GOTO 3460
3448  IF F1$#"#TCR" THEN 3432
3450  U3=C2
3452  GOTO 3460
3454  IF F1$#U0$ THEN 3460
3456  PRINT "You can't use your Work file here."
3458  GOTO 3520
3460  IF V2=C1 THEN 3468
3462  IF F1$#U1$ THEN 3468
3464  PRINT "You can't use your USE file here."
3466  GOTO 3520
3468  GOTO SGN(J1-J2)+C2 OF 3470,3526,3508
3470  J4=POS(A$,":") MAX POS(A$,"/")
3472  J5=POS(A$,")")
3474  IF J1>J5 OR J5>J2 THEN 3518
3476  IF  NOT J4 THEN 3500
3478  IF J1>J4 OR J4>J5 THEN 3518
3480  A1$=A$[J1+C1,J4-C1]
3482  GOSUB J6 OF 6000,5900
3484  IF  NOT F1 THEN 3518
3486  H2=F1
3488  A1$=A$[J4+C1,J5-C1]
3490  GOSUB J6 OF 6000,5900
3492  IF  NOT F1 THEN 3518
3494  H3=F1
3496  IF H2>H3 THEN 3518
3498  GOTO 3508
3500  A1$=A$[J1+C1,J5-C1]
3502  GOSUB J6 OF 6000,5900
3504  IF  NOT F1 THEN 3518
3506  H2=H3=F1
3508  IF J6=C1 THEN 3526
3510  A1$=A$[J2+C1,LEN(A$)]
3512  IF  NOT LEN(A1$) THEN 3518
3514  A$="UNNUMBERED"
3516  IF A1$=A$[C1,LEN(A1$)] THEN 3524
3518  PRINT "Illegal format in specifying the FROM file."
3520  GOSUB 9700
3522  RETURN 
3524  H1=C3
3526  E=C0
3527  H=C1
3528  RETURN 
3700  REM <PTR>
3705  P[C1]=L1
3710  P2=(P2+A[C2]-C1) MAX A[C2]
3715  IF P2 <= A[C3] THEN 3755
3720  GOSUB 6300
3725  IF  NOT X9 THEN 3745
3730  P[C1]=X9
3735  P[C2]=A[C2]
3740  RETURN 
3745  P[C2]=A[C3]
3750  RETURN 
3755  P[C2]=P2
3760  RETURN 
4000  REM <RE E>
4005  X1=E[C1]
4010  X2=E[C2]
4015  IF X1=-C1 AND  NOT X2 THEN 4025
4020  F7=C0
4025  GOSUB 7200
4030  E[C2]=C0
4035  IF  NOT E THEN 4055
4040  IF  NOT L[L2] THEN 4065
4045  E[C2]=C1
4050  E=C0
4055  E[C1]=L[L2]
4060  RETURN 
4065  E=C1
4070  RETURN 
4100  REM <RE B>
4105  X1=B[C1]
4110  X2=B[C2]
4115  IF X1=-C2 AND  NOT X2 THEN 4125
4120  F7=C0
4125  GOSUB 7200
4130  B[C2]=C0
4135  IF  NOT E THEN 4155
4140  GOSUB 7400
4145  IF E THEN 4160
4150  B[C2]=C1
4155  B[C1]=L1
4160  RETURN 
4200  REM <FR F/CART>
4201  IF H4=C2 THEN 4242
4202  J5=H2-C1
4203  IF  NOT U3 THEN 4223
4204  X6=U2=C0
4205  SYSTEM J,"ECHO-OFF"
4206  CONVERT U3 TO I$
4207  P0$='27"&p u0C"
4208  P0$[C4,C4]=I$
4209  PRINT P0$
4210  ENTER 255,J,A$
4211  IF A$[C1,C1]="S" THEN 4214
4212  PRINT "No tape in "F1$
4213  GOTO 4315
4214  IF V0=C2 THEN 4242
4215  FOR I=C1 TO J5
4216  GOSUB 4350
4217  IF V5=C0 THEN 4314
4218  IF V5=C1 THEN 4298
4219  IF SYS(C3) THEN 4315
4220  NEXT I
4221  X6=J5
4222  GOTO 4242
4223  A1$=F1$
4224  J3=C3
4225  J4=C1
4226  GOSUB 9500
4227  IF E THEN 4315
4228  X6=C0
4229  IF V0=C2 THEN 4241
4230  IF U2 THEN 4238
4231  IF  END #C3 THEN 4298
4232  IF  ERROR  THEN 4307
4233  FOR I=C1 TO J5
4234  LINPUT #C3;A$
4235  NEXT I
4236  IF  ERROR  THEN 9998
4237  GOTO 4240
4238  ADVANCE #C3;J5,J
4239  IF J THEN 4298
4240  X6=J5
4241  IF  END #C3 THEN 4298
4242  IF  NOT U3 THEN 4247
4243  GOSUB 4350
4244  IF  NOT V5 THEN 4314
4245  IF V5=C1 THEN 4316
4246  GOTO 4257
4247  IF U2 THEN 4253
4248  IF  ERROR  THEN 4307
4249  LINPUT #C3;A$
4250  J5=J5+C1
4251  IF  ERROR  THEN 9998
4252  GOTO 4257
4253  IF TYP(C3)#C1 THEN 4256
4254  READ #C3;I
4255  GOTO 4253
4256  READ #C3;A$
4257  IF SYS(C3) THEN 4316
4258  IF V0=C2 THEN 4262
4259  X6=X6+C1
4260  IF H4=C2 THEN 4295
4261  W1$=A$
4262  GOSUB 9650
4263  FOR J=C1 TO LEN(A$)
4264  J1=NUM(A$[J,J])
4265  IF J1<48 AND J1#46 OR J1>57 THEN 4267
4266  NEXT J
4267  A1$=A$[C1,J-C1]
4268  GOSUB 6000
4269  IF F1 THEN 4274
4270  IF V0=C3 THEN 4289
4271  IF H4=C1 AND  NOT U2 AND ((J5=C1 AND LEN(A$)<C7) OR (J5=C2 AND  NOT LEN(A$))) THEN 4248
4272  PRINT "Missing or illegal line number encountered in file "F1$"."
4273  GOTO 4315
4274  IF V0=C3 THEN 4281
4275  IF A[C1]=C3 THEN 4291
4276  IF J1=32 OR J1=58 THEN 4279
4277  A$=A$[J]
4278  GOTO 4291
4279  A$=A$[J+C1]
4280  GOTO 4291
4281  IF V2=C2 AND  NOT W1 THEN 4295
4282  PRINT "File "F1$" seems to have numbered lines."
4283  SYSTEM J,"ECHO-ON"
4284  P0$="Do you want to continue? "
4285  GOSUB 3300
4286  IF  NOT U3 THEN 4288
4287  SYSTEM J,"ECHO-OFF"
4288  GOTO K2 OF 4289,4316
4289  A$=W1$
4290  GOTO 4295
4291  IF F1>X6 THEN 4294
4292  PRINT "Line numbers out of sequence in file "F1$"."
4293  GOTO 4315
4294  L=X6=F1
4295  IF H4=C2 THEN 4304
4296  IF X6<H2 THEN 4242
4297  IF X6 <= H3 THEN 4300
4298  PRINT "No lines in range."
4299  GOTO 4315
4300  H4=C2
4301  IF U3 THEN 4305
4302  IF  END #C3 THEN 4316
4303  GOTO 4305
4304  IF X6>H3 THEN 4316
4305  GOSUB 9670
4306  IF LEN(A$) <= 94 THEN 4309
4307  PRINT "Warning: Input line truncated to 94 characters."
4308  A$=A$[C1,94]
4309  IF X6=H3 THEN 4312
4310  V5=C3
4311  RETURN 
4312  V5=C2
4313  GOTO 4317
4314  PRINT "Transmission error on file "F1$
4315  GOSUB 9700
4316  V5=C1
4317  SYSTEM J,"ECHO-ON"
4318  RETURN 
4350  REM2 <READ CART>
4352  V5=C3
4354  P0$='27"&p s0R"
4356  P0$[C4,C4]=I$
4358  PRINT P0$;
4360  ENTER 40,J,A$
4362  IF A$[C1,C1]#'30 THEN 4376
4364  PRINT '27"^"
4366  ENTER 12,J,A$
4368  IF NUM(A$[C5,C5])#48 THEN 4374
4370  V5=C1
4372  GOTO 4376
4374  V5=C0
4376  RETURN 
4400  REM <RNG>
4401  F7=C1
4402  G6=P[C1]
4403  G7=P[C2]
4404  IF A$[C1,C1]#"A" THEN 4426
4405  GOSUB 5100
4406  RESTORE 4407
4407  DATA 1,1,"ALL"
4408  GOSUB 9300
4409  IF K2 THEN 4414
4410  PRINT "Illegal range"
4411  GOSUB 9700
4412  E=100
4413  GOTO 4494
4414  B[C1]=-C2
4416  E[C1]=-C1
4418  B[C2]=E[C2]=C0
4420  B[C3]=A[C2]
4422  E[C3]=A[C3]
4424  GOTO 4454
4426  GOSUB 4500
4427  IF E THEN 4498
4428  MAT B=Q
4429  I=NUM(A$)
4430  IF I#47 AND I#58 THEN 4474
4431  GOSUB 4100
4432  IF  NOT E THEN 4440
4433  I=POS(A$,",")
4434  IF I THEN 4437
4435  A$=""
4436  RETURN 
4437  A$=A$[I]
4438  RETURN 
4440  A$=A$[C2]
4441  I=NUM(A$)
4442  IF I#34 AND I#64 THEN 4446
4443  P[C1]=L1
4444  P[C2]=Q[C3]
4446  GOSUB 4500
4448  IF E THEN 4494
4450  MAT E=Q
4452  E[C3]=F5
4454  GOSUB 4000
4456  IF E THEN 4494
4458  X1=B[C1]
4460  X2=C0
4462  GOSUB 7200
4464  IF E THEN 4494
4466  B[C1]=L1
4468  IF B[C1]>E[C1] OR ((B[C1]=E[C1]) AND (B[C3]>E[C3])) THEN 4490
4470  IF E[C3]>A[C3] THEN 4410
4472  GOTO 4494
4474  F7=C0
4476  X1=B[C1]
4478  X2=B[C2]
4480  GOSUB 7200
4482  IF E THEN 4498
4484  B[C1]=E[C1]=L1
4486  E[C3]=F5
4488  GOTO 4470
4490  IF  NOT B[C2] OR  NOT E[C2] THEN 4410
4492  E=C1
4494  P[C1]=G6
4496  P[C2]=G7
4498  RETURN 
4500  REM <LPOS>
4502  MAT Q=ZER
4504  I=NUM(A$)
4506  IF I=34 OR I=64 THEN 4622
4508  GOSUB 4800
4514  IF E THEN 4594
4516  I=NUM(A$)
4518  IF I#43 AND I#45 THEN 4526
4520  GOSUB 4700
4522  IF E THEN 4594
4523  Q[C2]=F1
4524  Q[C3]=A[C2]
4525  F5=A[C3]
4526  IF A$[C1,C1]#"(" THEN 4636
4530  E=C6
4594  GOTO E OF 4634,4596,4600,4604,4608,4612,4604,4622,4604,4622,4622
4596  PRINT "Missing parameter in a position specification."
4598  GOTO 4632
4600  PRINT "Illegal line specification"
4602  GOTO 4632
4604  PRINT "Illegal relative specification"
4606  GOTO 4632
4608  PRINT "Position not found"
4610  GOTO 4632
4612  PRINT "Column specification not permitted here."
4614  GOTO 4632
4622  PRINT "String position not permitted here."
4632  GOSUB 9700
4634  E=100
4636  RETURN 
4700  REM
4704  E=C0
4708  J1=C1
4712  IF A$[C1,C1]="+" THEN 4728
4716  IF Q[C1]=-C2 THEN 4768
4720  J1=-C1
4724  GOTO 4732
4728  IF Q[C1]=-C1 THEN 4768
4732  A$=A$[C2]
4736  GOSUB 5100
4740  IF J=43 OR J=45 THEN 4764
4744  IF  NOT LEN(A1$) THEN 4776
4748  IF POS(A1$,".") THEN 4768
4752  CONVERT A1$ TO F1,6869
4756  F1=F1*J1
4760  RETURN 
4764  A1$=A$[C1,C2]
4768  E=C4
4772  RETURN 
4776  E=C2
4780  RETURN 
4800  REM
4805  E=C0
4810  GOSUB 5100
4815  IF J=41 THEN 4885
4820  IF  NOT LEN(A1$) THEN 4875
4825  I=NUM(A1$)
4830  IF I>47 AND I<58 OR I=46 THEN 4845
4835  GOSUB 5000
4840  RETURN 
4845  GOSUB 6000
4850  IF  NOT F1 THEN 4885
4855  Q[C1]=F1
4860  Q[C3]=A[C2]
4865  F5=A[C3]
4870  RETURN 
4875  E=C2
4880  RETURN 
4885  E=C3
4890  RETURN 
5000  REM
5005  RESTORE 5010
5010  DATA 3,1,"*",1,"LAST",1,"FIRST"
5015  GOSUB 9300
5020  IF  NOT K2 THEN 5070
5025  Q[C2]=C0
5030  Q[C3]=A[C2]
5035  F5=A[C3]
5040  GOTO K2 OF 5045,5060,5060
5045  Q[C1]=P[C1]
5047  IF D#C7 AND D#C8 THEN 5055
5050  Q[C3]=F5=P[C2]
5055  RETURN 
5060  Q[C1]=-K2+C1
5065  RETURN 
5070  E=C4
5075  RETURN 
5100  REM
5110  FOR I=C1 TO LEN(A$)
5120  J=NUM(A$[I,I])
5130  IF J=40 OR J=41 OR (J>42 AND J<46) OR J=47 OR J=58 THEN 5150
5140  NEXT I
5150  A1$=A$[C1,I-C1]
5160  A$=A$[I]
5170  RETURN 
5300  REM
5310  IF  NOT LEN(B$) OR LEN(B$)<A[C2] THEN 5340
5315  W$=B$[A[C2],A[C3] MIN LEN(B$)]
5325  FOR I=LEN(W$) TO C1 STEP -C1
5330  IF W$[I,I]#" " THEN 5350
5335  NEXT I
5340  W$=""
5345  RETURN 
5350  W$=W$[C1,I]
5355  RETURN 
5360  REM
5365  IF LEN(B$)>A[C3] THEN 5385
5370  GOSUB 5325
5375  B$=B$[C1,A[C2]-C1]
5380  GOTO 5390
5385  W$[LEN(W$)+C1,G8]=""
5390  B$[A[C2],A[C2]+LEN(W$)-C1]=W$
5395  RETURN 
5900  REM
5910  FOR J7=C1 TO LEN(A1$)
5920  J8=NUM(A1$[J7,J7])
5930  IF J8<48 OR J8>57 THEN 5970
5940  NEXT J7
5950  CONVERT A1$ TO F1,7359
5960  RETURN 
5970  F1=C0
5980  RETURN 
6000  REM <L#>
6005  F1=POS(A1$,".")
6010  IF (A[C1]=C2 OR (A[C1]=C3 AND H)) AND F1 THEN 6050
6015  IF  NOT F1 THEN 6025
6020  IF LEN(A1$[F1])>C3+(A[C1]=C3) THEN 6050
6025  CONVERT A1$ TO F1,7485
6030  IF A[C1]=C3 AND H THEN 6040
6035  F1=INT(F1*100*(((A[C1]=C3)*D0) MAX C1)+.5)
6040  IF (A[C1]=C2 AND F1>999900.) OR F1>999999. OR F1 <= C0 THEN 6050
6045  RETURN 
6050  F1=C0
6055  RETURN 
6300  REM <NXT LI>
6305  IF L2=L7 THEN 6320
6310  X9=L[L2+C1]
6315  RETURN 
6320  IF N1=N2 THEN 6335
6325  X9=N[N1+C1,C1]
6330  RETURN 
6335  IF M1=M2 THEN 6350
6340  X9=M[M1+C1,C1]
6345  RETURN 
6350  X9=C0
6355  RETURN 
6400  REM
6410  I=C1
6420  J=A[C9] MIN LEN(P0$)
6430  PRINT P0$[I,J]
6440  I=J+C1
6450  IF  NOT LEN(P0$[I]) THEN 6490
6460  J=(I+A[C9]-W6-C1) MIN LEN(P0$)
6470  PRINT TAB(W6);P0$[I,J]
6480  GOTO 6440
6490  RETURN 
6800  REM
6805  GOTO L2 OF 6810,6820,6830,6840,6850
6810  L$=B$
6815  GOTO 6855
6820  M$=B$
6825  GOTO 6855
6830  N$=B$
6835  GOTO 6855
6840  O$=B$
6845  GOTO 6855
6850  P$=B$
6855  GOSUB 7800
6860  RETURN 
7200  REM
7202  IF  NOT M5 THEN 7212
7204  GOTO X1+C3 OF 7216,7224,7238
7206  X=X1
7208  GOSUB 7500
7210  IF L4 THEN 7242
7212  E=C1
7214  RETURN 
7216  X=C0
7218  GOSUB 7500
7220  GOSUB 7400
7222  GOTO 7242
7224  X=M[M2,C1]
7226  GOSUB 7500
7228  X=N[N2,C1]
7230  GOSUB 7500
7232  X=L[L7]
7234  GOSUB 7500
7236  GOTO 7242
7238  X=P[C1]
7240  GOSUB 7500
7242  FOR J5=C1 TO ABS(X2)
7244  GOSUB (X2>C0)+C1 OF 7300,7400
7246  IF E THEN 7254
7248  NEXT J5
7250  GOSUB 7600
7252  E=C0
7254  RETURN 
7300  REM
7304  IF L2=C1 THEN 7328
7308  IF  NOT L[L2-C1] THEN 7376
7312  L2=L2-C1
7316  L1=L[L2]
7320  E=C0
7324  RETURN 
7328  IF N1=C1 THEN 7340
7332  X=N[N1-C1,C1]
7336  GOTO 7356
7340  IF M1=C1 THEN 7376
7344  X=M[M1-C1,C1]
7348  GOSUB 7500
7352  X=N[N2,C1]
7356  GOSUB 7500
7360  L1=L[L7]
7364  L2=L7
7368  E=C0
7372  RETURN 
7376  E=C1
7380  RETURN 
7400  REM
7405  IF L2=L7 THEN 7430
7410  L2=L2+C1
7415  L1=L[L2]
7420  E=C0
7425  RETURN 
7430  IF N1=N2 THEN 7445
7435  X=N[N1+C1,C1]
7440  GOTO 7455
7445  IF M1=M2 THEN 7470
7450  X=M[M1+C1,C1]
7455  GOSUB 7500
7460  E=C0
7465  RETURN 
7470  E=C1
7475  RETURN 
7500  REM
7502  IF X >= L[C1] AND X <= L[L7] THEN 7554
7504  IF X >= N[C1,C1] AND X <= N[N2,C1] THEN 7532
7506  I1=C1
7508  I2=M2+C1
7510  M1=INT((I1+I2)/C2)
7512  GOTO SGN(X-M[M1,C1])+C2 OF 7514,7524,7518
7514  I2=M1
7516  GOTO 7510
7518  IF I2-M1=C1 THEN 7524
7520  I1=M1
7522  GOTO 7510
7524  IF M[M1,C2]=N3 THEN 7532
7526  N3=M[M1,C2]
7528  MAT  READ #C1,N3;N[64,C2]
7530  N2=N[64,C1]
7532  I1=C1
7534  I2=N2+C1
7536  N1=INT((I1+I2)/C2)
7538  GOTO SGN(X-N[N1,C1])+C2 OF 7540,7550,7544
7540  I2=N1
7542  GOTO 7536
7544  IF I2-N1=C1 THEN 7550
7546  I1=N1
7548  GOTO 7536
7550  L3=N[N1,C2]
7552  GOSUB 7700
7554  L1=X
7556  FOR L2=C1 TO L7
7558  GOTO SGN(X-L[L2])+C2 OF 7562,7568,7560
7560  NEXT L2
7562  L2=L2-C1
7564  L4=C0
7566  RETURN 
7568  L4=C1
7570  RETURN 
7600  REM
7605  GOTO L2 OF 7610,7620,7630,7640,7650
7610  B$=L$
7615  RETURN 
7620  B$=M$
7625  RETURN 
7630  B$=N$
7635  RETURN 
7640  B$=O$
7645  RETURN 
7650  B$=P$
7655  RETURN 
7700  REM
7710  READ #1,L3;L7,L[C1],L$,L[C2],M$,L[C3],N$,L[C4],O$,L[C5],P$
7720  RETURN 
7800  REM
7810  PRINT #1,L3;L7,L[C1],L$,L[C2],M$,L[C3],N$,L[C4],O$,L[C5],P$
7820  RETURN 
9300  REM
9310  READ J
9320  FOR K2=C1 TO J
9330  READ J1,K1$
9340  IF LEN(A1$)<J1 THEN 9360
9350  IF A1$=K1$[C1,LEN(A1$)] THEN 9380
9360  NEXT K2
9370  K2=C0
9380  RETURN 
9500  REM
9504  ASSIGN A1$,J3,J, PR 
9508  GOTO J+C1 OF 9564,9512,9512,9524,9998,9998,9532,9532,9540
9512  IF J4=C1 THEN 9564
9516  PRINT "File "A1$" is not available for writing."
9520  GOTO 9548
9524  PRINT "File "A1$" does not exist, or is not accessible."
9528  GOTO 9548
9532  PRINT "File "A1$" is in use by someone else."
9536  GOTO 9548
9540  IF J4=C2 THEN 9564
9544  PRINT "File "A1$" is not available for reading."
9548  GOSUB 9700
9552  RETURN 
9564  IF  ERROR  THEN 9584
9568  READ #J3,C1
9572  IF  ERROR  THEN 9998
9576  U2=C1
9580  GOTO 9592
9584  IF  ERROR  THEN 9998
9588  U2=C0
9592  E=C0
9596  RETURN 
9650  REM
9652  FOR J=C1 TO LEN(A$)
9654  IF A$[J,J]#" " THEN 9658
9656  NEXT J
9658  A$=A$[J,LEN(A$)]
9660  RETURN 
9670  REM
9672  FOR J=LEN(A$) TO C1 STEP -C1
9674  IF A$[J,J]#" " THEN 9678
9676  NEXT J
9678  A$=A$[C1,J]
9680  RETURN 
9700  REM
9710  E=C1
9720  Z$=""
9730  IF V2#C2 OR W1 THEN 9760
9740  PRINT "USE file abandoned."
9750  V0=V2=W3=C1
9760  RETURN 
9800  REM <GET NEXT STR>
9805  V0$=A$[C1,C1]
9810  IF V0$='34 THEN 9835
9815  IF V0$="@" THEN 9840
9820  PRINT "Missing or illegal string."
9825  GOSUB 9700
9830  RETURN 
9835  V4=C1
9840  J1=C2
9845  J2=POS(A$[J1],V0$)+J1-C1
9850  IF J2=J1-C1 THEN 9820
9855  IF A$[J2+C1,J2+C1]#V0$ THEN 9875
9860  A$[J2]=A$[J2+C1]
9865  J1=J2+C1
9870  GOTO 9845
9875  A1$=A$[C2,J2-C1]
9880  A$=A$[J2+C1,LEN(A$)]
9885  E=C0
9890  RETURN 
9900  REM
9903  V1$="    "
9906  IF A[C1]=C3 THEN 9933
9909  J1=INT(X7/100)
9912  IF  NOT J1 THEN 9924
9915  CONVERT J1 TO V0$
9918  V1$[C5-LEN(V0$)]=V0$
9921  IF A[C1]=C2 THEN 9972
9924  V1$[C5]=".0"
9927  CONVERT X7-J1*100 TO V0$
9930  GOTO 9951
9933  J1=INT(X7/1000)
9936  IF  NOT J1 THEN 9945
9939  CONVERT J1 TO V0$
9942  V1$[C4-LEN(V0$)]=V0$
9945  V1$[C4]=".00"
9948  CONVERT X7-J1*1000 TO V0$
9951  V1$[C8-LEN(V0$)]=V0$
9954  FOR J1=C7 TO C1 STEP -C1
9957  IF V1$[J1,J1]#"0" THEN 9963
9960  NEXT J1
9963  IF V1$[J1,J1]#"." THEN 9969
9966  J1=J1-C1
9969  V1$[J1+C1,C7]=""
9972  RETURN 
9990  REM
9991  M4=SYS(C0)
9992  N4=SYS(C1)
9993  A1$="EDIT31"
9994  A1$[C7]=B0$
9995  CHAIN J,A1$,100
9996  PRINT A1$" is missing.  ERROR"
9997  STOP 
9998  GOTO 9991
9999  END 
