9000  DIM A$[72],B$[14],D$[72],E$[72],F$[72],G$[72],H$[72],M$[72]
9001  DIM T$[72],Z$[40]
9002  B$="0123456789+-E."
9003  GOTO 9136
9004  READ #F1,1
9005  PRINT #F2,1
9006  J=I1=S=1
9007  L=0
9008  T9=TYP(-F1)
9009  GOTO T9 OF 9010,9019,9018,9012
9010  READ #F1;D1
9011  GOTO 9020
9012  I1=1
9013  J=J+1
9014  L=0
9015  PRINT #F2,J
9016  T9=TYP(F1)
9017  GOTO T9 OF 9010,9019,9018
9018  RETURN 
9019  READ #F1;D$
9020  IF R=J AND I1=D OR D=S AND R=0 THEN 9018
9021  I1=I1+1
9022  S=S+1
9023  GOTO T9 OF 9024,9027
9024  PRINT #F2;D1
9025  L=L+2
9026  GOTO 9029
9027  PRINT #F2;D$
9028  L=L+1+INT((LEN(D$)+1)/2)
9029  IF L<65 THEN 9008
9030  J=J+1
9031  L=0
9032  GOTO 9008
9033  R=-1
9034  IF  END #F2 THEN 9041
9035  GOSUB 9008
9036  PRINT #F2; END 
9037  D=F1
9038  F1=F2
9039  F2=D
9040  RETURN 
9041  PRINT "FILE OVERFLOW, TERMINAL ERROR"
9042  STOP 
9043  IF T9#T8 THEN 9046
9044  IF T8=2 THEN 9050
9045  IF D1=T7 THEN 9048
9046  F3=0
9047  RETURN 
9048  F3=1
9049  RETURN 
9050  FOR F4=1 TO LEN(D$)-LEN(T$)+1
9051  IF T$=D$[F4,F4+LEN(T$)-1] THEN 9048
9052  NEXT F4
9053  GOTO 9046
9054  IF A$#"^" THEN 9057
9055  GOSUB 9115
9056  RETURN 
9057  LET A1=A2=A3=A4=A5=0
9058  FOR I=1 TO LEN(A$)
9059  IF A$[I,I]=" " THEN 9077
9060  LET A4=A4+1
9061  FOR K=1 TO 14
9062  IF A$[I,I]=B$[K,K] THEN 9065
9063  NEXT K
9064  GOTO 9089
9065  IF K>10 THEN 9069
9066  LET A1=A1*10^(1-SGN(A2))+(K-1)*10^(SGN(A2)*(A2-A4))
9067  LET A5=1
9068  GOTO 9077
9069  IF K#14 THEN 9073
9070  IF A2#0 THEN 9089
9071  LET A2=A4
9072  GOTO 9077
9073  IF K<13 THEN 9076
9074  LET I=I+1
9075  GOTO 9098
9076  IF I#1 THEN 9089
9077  NEXT I
9078  IF A$[1,1]#"-" THEN 9080
9079  LET A1=-A1
9080  LET A1=A1*10^A3
9081  IF A5#1 THEN 9089
9082  IF F9 THEN 9088
9083  L=L+2
9084  IF L<65 THEN 9087
9085  GOSUB 9115
9086  L=2
9087  PRINT #F2;A1
9088  RETURN 
9089  IF F9 THEN 9097
9090  L=L+1+INT((LEN(A$)+1)/2)
9091  IF L<65 THEN 9094
9092  GOSUB 9115
9093  L=1+INT((LEN(A$)+1)/2)
9094  IF A$[1,1]#'1 THEN 9096
9095  A$=A$[2]
9096  PRINT #F2;A$
9097  RETURN 
9098  IF A$[I,I]#"+" THEN 9101
9099  LET I=I+1
9100  GOTO 9103
9101  IF A$[I,I]#"-" THEN 9103
9102  LET I=I+1
9103  FOR I1=I TO LEN(A$)
9104  IF A$[I1,I1]=" " THEN 9110
9105  FOR K=1 TO 10
9106  IF A$[I1,I1]=B$[K,K] THEN 9109
9107  NEXT K
9108  GOTO 9089
9109  LET A3=A3+(K-1)*10^(LEN(A$)-I1)
9110  NEXT I1
9111  IF A$[I-1,I-1]#"-" THEN 9113
9112  LET A3=-A3
9113  IF ABS(A3)>37 THEN 9089
9114  GOTO 9078
9115  LET J=J+1
9116  LET L=0
9117  READ #F2,J
9118  RETURN 
9119  P=0
9120  IF A$#"" THEN 9123
9121  PRINT "INPUT REQUIRED PARAMETER";
9122  INPUT A$
9123  IF A$[1,1]#" " THEN 9127
9124  A$=A$[2]
9125  IF A$="" THEN 9134
9126  GOTO 9123
9127  FOR I9=0 TO 9
9128  IF A$[1,1]=B$[I9+1,I9+1] THEN 9131
9129  NEXT I9
9130  RETURN 
9131  P=10*P+I9
9132  A$=A$[2]
9133  GOTO 9127
9134  P=-1
9135  RETURN 
9136  PRINT "OLD OR NEW FILE";
9137  INPUT A$
9138  IF A$#"NEW" THEN 9151
9139  IF  END #1 THEN 9147
9140  F9=L=0
9141  J=F2=1
9142  PRINT "-";
9143  INPUT A$
9144  IF A$='26 THEN 9149
9145  GOSUB 9054
9146  GOTO 9142
9147  PRINT "EOF, FILE CLOSED"
9148  J=J-1
9149  PRINT J"=LAST WRITTEN RECORD"
9150  PRINT #F2; END 
9151  F1=C4=1
9152  F2=L1=2
9153  M9=F9=M=T=0
9154  D=C4
9155  R=0
9156  GOSUB 9004
9157  IF T9#3 THEN 9166
9158  M9=0
9159  PRINT "HOF"
9160  R=0
9161  D=1
9162  GOSUB 9004
9163  IF T9#3 THEN 9166
9164  PRINT "NULL FILE"
9165  STOP 
9166  IF M9 THEN 9170
9167  PRINT ">";
9168  INPUT M$
9169  M9=1
9170  FOR I9=1 TO LEN(M$)
9171  IF M$[I9,I9]='26 THEN 9174
9172  NEXT I9
9173  IF M$="" THEN 9167
9174  A$=M$[1,I9-1]
9175  IF I9 >= LEN(M$) THEN 9178
9176  M$=M$[I9+1]
9177  GOTO 9179
9178  M$=""
9179  IF A$[1,1]#"'" THEN 9182
9180  PRINT A$[2]
9181  GOTO 9166
9182  IF A$[1,1]="S" THEN 9197
9183  I9=1
9184  IF A$[I9,I9]#" " THEN 9186
9185  A$[I9]=A$[I9+1]
9186  I9=I9+1
9187  IF I9 <= LEN(A$) THEN 9184
9188  IF A$#".M." THEN 9194
9189  PRINT "NEXT MACRO";
9190  INPUT A$
9191  IF A$[1,1]="Q" THEN 9167
9192  GOSUB 9119
9193  GOTO 9598
9194  IF A$#".T." THEN 9197
9195  T= NOT T
9196  GOTO 9166
9197  C4=S
9198  IF  NOT T OR  NOT M9 THEN 9200
9199  PRINT "**-"A$
9200  IF A$#"I" THEN 9212
9201  GOSUB 9305
9202  C4=C4+1
9203  IF  END #F2 THEN 9041
9204  PRINT "-";
9205  INPUT A$
9206  IF A$='26 THEN 9210
9207  C4=C4+1
9208  GOSUB 9054
9209  GOTO 9204
9210  GOSUB 9033
9211  GOTO 9154
9212  IF A$#"R" THEN 9214
9213  GOTO 9203
9214  IF A$#"D" THEN 9234
9215  GOTO 9210
9216  IF  NOT P9 THEN 9218
9217  PRINT C4;
9218  IF T9-1 THEN 9221
9219  PRINT TAB(M);"N ";D1;
9220  GOTO 9229
9221  IF P9#0 OR LEN(D$)<5 THEN 9228
9222  IF D$[1,5]#"$PAGE" THEN 9225
9223  PRINT '10'10'10'10'10'10
9224  RETURN 
9225  IF D$[1,5]#"$LINE" THEN 9228
9226  PRINT 
9227  RETURN 
9228  PRINT TAB(M);D$;
9229  IF P9=2 THEN 9232
9230  PRINT 
9231  RETURN 
9232  PRINT "    R=";J
9233  RETURN 
9234  IF A$#"C" THEN 9238
9235  P9=L1
9236  GOSUB 9216
9237  GOTO 9166
9238  IF A$[1,2]#"C$" THEN 9246
9239  IF A$[3]="E" THEN 9242
9240  C4=1
9241  GOTO 9154
9242  R=-1
9243  GOSUB 9004
9244  C4=S-1
9245  GOTO 9154
9246  IF A$[1,2]#"C+" THEN 9251
9247  A$=A$[3]
9248  GOSUB 9119
9249  D=C4+P
9250  GOTO 9155
9251  IF A$[1,2]#"C-" THEN 9256
9252  A$=A$[3]
9253  GOSUB 9119
9254  D=C4-P
9255  GOTO 9155
9256  IF A$[1,2]#"CR" THEN 9268
9257  A$=A$[3]
9258  GOSUB 9119
9259  R=P
9260  IF A$[1,1]="," THEN 9264
9261  D=P
9262  R=0
9263  GOTO 9156
9264  A$=A$[2]
9265  GOSUB 9119
9266  D=P
9267  GOTO 9156
9268  IF A$[1,2]#"MG" THEN 9273
9269  A$=A$[3]
9270  GOSUB 9119
9271  M=P
9272  GOTO 9166
9273  IF A$[1,1]#"L" THEN 9312
9274  IF A$[2,2]#"M" THEN 9285
9275  A$=A$[3]
9276  GOSUB 9119
9277  GOTO P OF 9279,9281,9283
9278  GOTO 9465
9279  PRINT E$
9280  GOTO 9166
9281  PRINT F$
9282  GOTO 9166
9283  PRINT G$
9284  GOTO 9166
9285  C9=C4
9286  A$=A$[2]
9287  P=1.E+09
9288  IF A$[1,2]="$E" THEN 9290
9289  GOSUB 9119
9290  R=P9=0
9291  IF A$="" THEN 9296
9292  IF A$[LEN(A$)]#"S" THEN 9294
9293  P9=1
9294  IF A$[LEN(A$)]#"R" THEN 9296
9295  P9=2
9296  FOR I9=1 TO P
9297  GOSUB 9216
9298  C4=C4+1
9299  D=S
9300  GOSUB 9008
9301  IF T9=3 THEN 9303
9302  NEXT I9
9303  C4=C9
9304  GOTO 9154
9305  IF T9=2 THEN 9309
9306  A1=D1
9307  GOSUB 9082
9308  RETURN 
9309  A$=D$
9310  GOSUB 9089
9311  RETURN 
9312  IF A$[1,2]#"NF" THEN 9319
9313  F9=1
9314  A$=A$[3]
9315  GOSUB 9057
9316  T8=1
9317  T7=A1
9318  GOTO 9323
9319  IF A$[1,2]#"SF" THEN 9336
9320  IF LEN(A$)<3 THEN 9465
9321  T$=A$[3]
9322  T8=2
9323  R=0
9324  GOSUB 9043
9325  IF F3 THEN 9331
9326  D=S
9327  C4=C4+1
9328  GOSUB 9008
9329  IF T9=3 THEN 9333
9330  GOTO 9324
9331  F9=0
9332  GOTO 9154
9333  C4=1
9334  M9=P9=F9=0
9335  GOTO 9154
9336  IF A$[1,2]#"PS" THEN 9360
9337  IF  END #F2 THEN 9570
9338  READ #F1,1
9339  PRINT #F2,1
9340  GOSUB 9347
9341  IF T9=3 THEN 9344
9342  GOSUB 9355
9343  GOTO 9340
9344  GOSUB 9036
9345  C4=1
9346  GOTO 9154
9347  T9=TYP(F1)
9348  GOTO T9 OF 9349,9352,9354
9349  READ #F1;D1
9350  L=L+2
9351  RETURN 
9352  READ #F1;D$
9353  L=L+1+INT((LEN(D$)+1)/2)
9354  RETURN 
9355  GOTO T9 OF 9356,9358
9356  PRINT #F2;D1
9357  RETURN 
9358  PRINT #F2;D$
9359  RETURN 
9360  IF A$[1,2]#"PR" THEN 9378
9361  A$=A$[3]
9362  GOSUB 9119
9363  IF P <= 0 THEN 9465
9364  IF  END #F2 THEN 9570
9365  READ #F1,1
9366  J=0
9367  J=J+1
9368  IF TYP(F1)=3 THEN 9344
9369  READ #F2,J
9370  L=0
9371  FOR I9=1 TO P
9372  GOSUB 9347
9373  IF T9=3 THEN 9344
9374  GOSUB 9355
9375  IF L>64 THEN 9570
9376  NEXT I9
9377  GOTO 9367
9378  IF A$#"A" THEN 9450
9379  I9=0
9380  IF T9=2 THEN 9383
9381  PRINT "ONLY STRINGS MAY BE ALTERED"
9382  GOTO 9166
9383  PRINT D$
9384  PRINT "*";
9385  INPUT A$
9386  IF I9 <= LEN(D$) THEN 9388
9387  I9=0
9388  IF A$[1,1]#"S" THEN 9397
9389  FOR I9=I9+1 TO LEN(D$)
9390  IF D$[I9,I9]=A$[2,2] THEN 9395
9391  NEXT I9
9392  PRINT A$[2,2]"  NOT FOUND IN STRING"
9393  I9=0
9394  GOTO 9384
9395  PRINT TAB(I9-1)"^"
9396  GOTO 9384
9397  IF A$#"C" THEN 9400
9398  PRINT D$
9399  GOTO 9384
9400  IF A$#"E" THEN 9405
9401  GOSUB 9305
9402  GOSUB 9033
9403  C4=C4+1
9404  GOTO 9154
9405  IF I9#0 THEN 9409
9406  IF A$[1,1]="P" THEN 9429
9407  PRINT " 'S','C','P', OR 'E' COMMAND EXPECTED"
9408  GOTO 9384
9409  IF A$#"D" THEN 9412
9410  D$[I9]=D$[I9+1]
9411  GOTO 9384
9412  IF A$[1,1]#"R" THEN 9417
9413  D$[I9]=D$[I9+1]
9414  I9=I9-1
9415  H$=""
9416  GOTO 9418
9417  IF A$[1,1]#"I" THEN 9429
9418  IF I9=0 THEN 9420
9419  H$=D$[1,I9]
9420  T$=D$[I9+1]
9421  IF LEN(H$)+LEN(T$)+LEN(A$)<74 THEN 9424
9422  PRINT "RESULTANT STRING OVER 72 CHARACTERS"
9423  GOTO 9384
9424  H$[LEN(H$)+1]=A$[2]
9425  H$[LEN(H$)+1]=T$
9426  D$=H$
9427  I9=0
9428  GOTO 9384
9429  IF A$[1,1]#"P" THEN 9448
9430  T$=A$[2,2]
9431  IF LEN(A$) <= 2 THEN 9448
9432  A$=A$[3]
9433  GOSUB 9119
9434  FOR I9=1 TO LEN(D$)
9435  IF T$=D$[I9,I9] THEN 9438
9436  NEXT I9
9437  GOTO 9448
9438  IF I9>P THEN 9445
9439  T$="                                                               "
9440  IF P-I9+LEN(D$)>72 THEN 9422
9441  T$[P-I9+1]=D$
9442  D$=T$
9443  I9=0
9444  GOTO 9384
9445  D$=D$[I9-P+1]
9446  I9=0
9447  GOTO 9384
9448  PRINT "COMMAND ERROR"
9449  GOTO 9384
9450  IF A$[1,1]#"E" THEN 9456
9451  IF F1=1 THEN 9455
9452  R=D=-1
9453  GOSUB 9004
9454  PRINT #1; END 
9455  STOP 
9456  IF A$[1,2]#"PF" THEN 9468
9457  IF A$[LEN(A$)]#"S" THEN 9460
9458  L1=1
9459  GOTO 9166
9460  IF A$[LEN(A$)]#"R" THEN 9463
9461  L1=2
9462  GOTO 9166
9463  L1=0
9464  GOTO 9166
9465  PRINT "COMMAND ERROR"
9466  M9=0
9467  GOTO 9154
9468  IF A$[1,4]#"NSUB" THEN 9492
9469  GOSUB 9574
9470  Z$=A$[I9+1]
9471  A$=A$[1,I9-1]
9472  F9=1
9473  GOSUB 9057
9474  T6=A1
9475  A$=Z$
9476  GOSUB 9057
9477  T7=A1
9478  T8=1
9479  F9=0
9480  R=0
9481  GOSUB 9043
9482  IF  NOT F3 THEN 9486
9483  D1=T6
9484  GOSUB 9305
9485  GOTO 9521
9486  GOSUB 9305
9487  C4=C4+1
9488  D=S
9489  GOSUB 9008
9490  IF T9=3 THEN 9333
9491  GOTO 9481
9492  IF A$[1,4]#"SSUB" THEN 9524
9493  GOSUB 9574
9494  Z$=A$[1,I9-1]
9495  T$=A$[I9+1]
9496  T8=2
9497  P9=R=0
9498  GOSUB 9043
9499  IF  NOT F3 THEN 9514
9500  H$=D$[F4+LEN(T$)]
9501  IF F4=1 THEN 9504
9502  D$=D$[1,F4-1]
9503  GOTO 9505
9504  D$=""
9505  IF LEN(Z$)+LEN(H$)+LEN(D$)<73 THEN 9510
9506  PRINT "STRING OVERFLOW";C4
9507  D$[LEN(D$)+1]=T$
9508  D$[LEN(D$)+1]=H$
9509  GOTO 9514
9510  D$[LEN(D$)+1]=Z$
9511  D$[LEN(D$)+1]=H$
9512  P9=1
9513  GOTO 9498
9514  GOSUB 9305
9515  IF P9 THEN 9521
9516  C4=C4+1
9517  D=S
9518  GOSUB 9008
9519  IF T9=3 THEN 9333
9520  GOTO 9498
9521  GOSUB 9033
9522  P9=0
9523  GOTO 9154
9524  IF A$[1,1]#"J" THEN 9583
9525  IF  END #F2 THEN 9570
9526  READ #F1,1
9527  PRINT #F2,1
9528  H$=""
9529  A$=A$[2]
9530  GOSUB 9119
9531  GOSUB 9347
9532  IF T9#2 THEN 9562
9533  IF D$#"$PAGE" THEN 9535
9534  GOTO 9537
9535  IF D$#"$LINE" THEN 9541
9536  IF H$="" THEN 9538
9537  PRINT #F2;H$
9538  PRINT #F2;D$
9539  H$=""
9540  GOTO 9531
9541  FOR I9=1 TO LEN(D$)
9542  IF D$[I9,I9]#" " THEN 9545
9543  NEXT I9
9544  GOTO 9549
9545  FOR I9=I9 TO LEN(D$)
9546  IF D$[I9,I9]=" " THEN 9549
9547  NEXT I9
9548  D$[I9]=" "
9549  T$=D$[1,I9]
9550  IF I9<LEN(D$) THEN 9553
9551  D$=""
9552  GOTO 9554
9553  D$=D$[I9+1]
9554  IF LEN(H$)+LEN(T$)>P THEN 9559
9555  H$[LEN(H$)+1]=T$
9556  T$=""
9557  IF D$="" THEN 9531
9558  GOTO 9541
9559  PRINT #F2;H$
9560  H$=T$
9561  GOTO 9556
9562  C4=1
9563  IF T9=3 THEN 9566
9564  PRINT "ERROR,NUMERIC INFORMATION ON FILE"
9565  GOTO 9571
9566  IF H$="" THEN 9568
9567  PRINT #F2;H$
9568  GOSUB 9036
9569  GOTO 9154
9570  PRINT "EOR OR EOF ON ";F2;R"BEFORE COMPLETION"
9571  C4=1
9572  P9=M9=0
9573  GOTO 9154
9574  I9=1
9575  IF LEN(A$)<5 THEN 9465
9576  A$=A$[5]
9577  IF A$[I9,I9]='92 THEN 9581
9578  I9=I9+1
9579  IF I9>LEN(A$) THEN 9465
9580  GOTO 9577
9581  IF I9=1 OR I9=LEN(A$) THEN 9465
9582  RETURN 
9583  IF A$[1,3]#"DEF" THEN 9595
9584  A$=A$[4]
9585  GOSUB 9119
9586  PRINT "$";
9587  GOTO P OF 9589,9591,9593
9588  GOTO 9465
9589  INPUT E$
9590  GOTO 9166
9591  INPUT F$
9592  GOTO 9166
9593  INPUT G$
9594  GOTO 9166
9595  IF A$[1,3]#"MAC" THEN 9465
9596  A$=A$[4]
9597  GOSUB 9119
9598  GOTO P OF 9600,9602,9604
9599  GOTO 9465
9600  M$=E$
9601  GOTO 9605
9602  M$=F$
9603  GOTO 9605
9604  M$=G$
9605  M9=1
9606  GOTO 9166
9999  END 
