1  COM F$[7],B$[7],L9,L8
2  COM A$[72],A6,A7,A8,A9
3  COM W,W$[64],W0,Y
4  COM M[500],M,M0,M9,Y[150]
5  COM P[25,2],A[200]
6  REM COBOL, HP 36845B, 6/74
20  DIM C$[72],M$[72],V$[72],X$[72]
22  DIM D$[11],Y$[4]
24  DIM G$[25],G[5]
30  DIM S[141,2]
90  LET P9=P0=1
92  MAT P=ZER
100  FILES *,*
110  ASSIGN F$,1,A5
112  READ #1,1
118  IF  END #1 THEN 9090
119  LET A7=E7=E1=0
120  LET A=0
122  MAT A=ZER
140  ASSIGN "$COSC4",2,A5
150  READ #2;C$,D$,G$,G[1],G[2],G[3],G[4],G[5]
152  READ #2,20;S0
153  FOR I=1 TO S0
154  READ #2;S1,S2,S3,S4,S5
155  LET S[I,1]=S1+(S5+2)*125+(S2+24)*3125
156  LET S[I,2]=(S3+1)*200+S4+1
157  NEXT I
160  ASSIGN "COSCR",2,A5
162  PRINT #2,10; END 
170  FOR I=1 TO L8-2
180  READ #1;N,A$
190  NEXT I
200  GOSUB 9000
210  LET S=0
220  GOTO 2008
300  IF E7=1 THEN 500
302  LET L8=1
410  FOR I=2 TO P0
412  LET P[I,2]=0
413  IF P[I,1]=0 THEN 420
414  NEXT I
416  CHAIN "$COMON",8000
420  READ #2,10
422  READ #2;V$,V0
424  IF V0 <> I THEN 422
425  PRINT "*'";V$;"'--";
426  LET E9=25
430  GOSUB 4000
500  CHAIN B$,L9
1000  GOSUB 5000
1002  LET Q=0
1020  IF S8=0 THEN 1100
1022  LET S0=INT(S[S,1]/3125)-24
1030  IF S0>0 THEN 1082
1032  IF S0=0 THEN 1040
1034  LET A2=-S0
1035  GOSUB 9600
1038  GOTO 1050
1040  LET A2=S9
1041  GOSUB 9600
1050  LET S=INT(S[S,2]/200)-1
1060  IF S <> -1 THEN 1000
1080  GOTO 2000
1082  IF S0 <> 2 THEN 1050
1083  LET A2=52
1084  LET V0=Y[V0+2]
1085  GOSUB 9650
1086  IF INT(V0/8) <= W0 THEN 1050
1087  LET E9=28
1088  GOSUB 4000
1089  GOTO 1050
1100  LET E9=INT(S[S,1]/125)
1102  LET E9=E9-INT(E9/25)*25-2
1104  IF E9 <= 0 THEN 1130
1110  GOSUB 4000
1120  GOTO 1140
1130  GOTO -E9+1 OF 1060,1140,1140
1140  LET S=S[S,2]-INT(S[S,2]/200)*200-1
1150  GOTO 1060
2000  LET A2=59
2002  GOSUB 9600
2003  LET A2=INT(N/22500)
2004  GOSUB 9600
2005  LET A2=INT((N-A2*22500)/150)
2006  LET V0=N-INT(N/150)*150
2007  GOSUB 9650
2008  IF A3=2 THEN 2600
2010  IF A$[A1,A1] >= "A" THEN 2200
2020  IF A$[A1,A1+1]=". " THEN 2090
2060  LET E9=4
2070  GOSUB 4000
2080  GOTO 2008
2090  LET A2=62
2100  GOSUB 9600
2120  LET A1=A1+2
2130  GOSUB 9100
2140  GOTO 2008
2150  GOSUB 9100
2160  GOTO 1000
2200  RESTORE 
2210  READ S
2220  IF S=71 THEN 2300
2230  GOSUB 5000
2240  IF S8=0 THEN 2210
2241  LET A=A+1
2242  IF P[P9,2]>0 THEN 1022
2243  LET E9=24
2244  IF P[P9,2] >= 0 OR P[P9,2]=-2 THEN 2246
2245  GOSUB 4000
2246  LET P[P9,2]=S
2250  GOTO 1022
2260  DATA 56,49,125,108,17,91,96,129,1,135,79,64,67
2270  DATA 83,130,20,11,29,48,61,105,72,74
2280  DATA 71
2300  GOSUB 5000
2302  IF S8 <> 0 THEN 2900
2304  LET E9=4
2310  GOSUB 4000
2320  GOTO 2150
2600  REM START NEW PARAGRAPH
2602  LET A3=0
2610  GOSUB 9200
2612  IF X$="END" THEN 2790
2620  GOSUB 9400
2630  IF V0 <> -1 THEN 2660
2640  LET V0=P0=P0+1
2650  PRINT #2;X$,V0, END 
2660  LET P[P9,2]=A
2670  LET A2=63
2672  GOSUB 9650
2690  LET P9=V0
2700  LET P[P9,2]=-P[P9,2]
2710  LET P[P9,1]=A
2720  IF A$[A1,A1+7] <> "SECTION " THEN 2750
2722  LET E9=26
2724  GOSUB 4000
2730  LET A1=A1+8
2740  GOSUB 9100
2750  IF A$[A1,A1+1]=". " THEN 2120
2760  LET E9=20
2770  GOSUB 4000
2780  GOTO 2008
2790  IF A$ <> " END OF PROGRAM . " THEN 2620
2791  LET A2=63
2792  GOSUB 9600
2793  LET A2=1
2794  GOSUB 9600
2796  LET A2=0
2797  GOSUB 9600
2798  LET A2=16
2799  GOSUB 9600
2800  LET A2=45
2802  GOSUB 9600
2804  LET A2=59
2806  GOSUB 9600
2808  GOTO 300
2900  REM NOTE
2902  LET V0=1
2904  IF P[P9,2] <> 0 THEN 2920
2910  LET V0=2
2920  GOSUB 9200
2930  GOSUB 9100
2940  IF X$ <> "." THEN 2920
2950  IF A3=2 OR V0=1 THEN 2008
2960  GOTO 2920
4000  ASSIGN "$COSC4",2,A5
4020  READ #2,2
4030  FOR E8=1 TO E9
4040  READ #2;M$
4050  NEXT E8
4060  PRINT "*";M$[2];" AT LINE";N;"  CHR";A1
4502  ASSIGN "COSCR",2,A5
4510  LET E7=1
4520  IF M$[1,1]="P" THEN 4540
4522  IF M$[1,1]="I" THEN 4550
4530  RETURN 
4540  GOSUB 9200
4541  GOSUB 9100
4542  IF X$ <> "." THEN 4540
4544  RETURN 
4550  GOSUB 9200
4551  GOSUB 9100
4552  RETURN 
5000  LET S9=S[S,1]-INT(S[S,1]/125)*125
5020  GOTO INT((S9-1)/10)+1 OF 5030,5032,5034,5036,5038,5040,5042,5044,5046,5048,5050
5030  GOTO S9 OF 5100,5110,5120,5130,5140,5150,5160,5170,5180,5190
5032  GOTO S9-10 OF 5200,5210,5220,5230,5240,5250,5260,5270,5280,5290
5034  GOTO S9-20 OF 5300,5310,5320,5330,5340,5350,5360,5370,5380,5390
5036  GOTO S9-30 OF 5400,5410,5420,5430,5440,5450,5460,5470,5480,5490
5038  GOTO S9-40 OF 5500,5510,5520,5530,5540,5550,5560,5570
5040  GOTO 5640
5042  GOTO S9-63 OF 5730,5740,5750,5760,5770,5780,5790
5044  GOTO S9-70 OF 5800,5810,5820,5830,5840,5850,5860,5870,5880,5890
5046  GOTO S9-80 OF 5900,5910,5920,5930,5940,5950,5960
5048  GOTO S9-90 OF 6000,6010,6020,6030,6040,6050,6060,6070,6080
5050  RETURN 
5052  LET A1=A9
5060  LET S8=0
5070  RETURN 
5100  IF A$[A1,A1+6]="ACCEPT " THEN 6260
5102  GOTO 5060
5110  LET A9=A1
5111  IF A$[A1,A1]<"A" THEN 5060
5112  GOSUB 9200
5113  GOSUB 9300
5114  IF V0<W0*8 AND S9=2 THEN 5052
5115  IF V0<W0*8 THEN 6490
5116  GOSUB 9500
5118  GOTO 6400
5120  IF A$[A1,A1+3]="ADD " THEN 6230
5122  GOTO 5060
5130  IF A$[A1,A1]="'" THEN 6000
5131  IF A$[A1,A1]=C$[3,3] THEN 6000
5132  IF A$[A1,A1]<"A" THEN 6070
5134  GOTO 5110
5140  IF A$[A1,A1+2]="TO " THEN 6220
5142  GOTO 5060
5150  IF A$[A1,A1+7]="ROUNDED " THEN 6270
5152  GOTO 5060
5160  IF A$[A1,A1+2]="ON " THEN 6220
5162  GOTO 5060
5170  IF A$[A1,A1+4]="SIZE " THEN 6240
5172  GOTO 5060
5180  IF A$[A1,A1+5]="ERROR " THEN 6250
5182  GOTO 5060
5190  IF A$[A1,A1+6]="GIVING " THEN 6260
5192  GOTO 5060
5200  IF A$[A1,A1+5]="ALTER " THEN 6250
5202  GOTO 5060
5210  IF A$[A1,A1+7]="PROCEED " THEN 6270
5212  GOTO 5060
5220  IF A$[A1,A1]<"A" THEN 5060
5221  GOSUB 9200
5222  GOSUB 9400
5223  IF V0 <> -1 THEN 5227
5224  LET V0=P0=P0+1
5225  PRINT #2;X$,V0, END 
5227  LET A2=51
5228  GOSUB 9650
5229  GOTO 6400
5230  IF A$[A1,A1+7]="DISPLAY " THEN 6270
5232  GOTO 5060
5240  IF A$[A1,A1+6]="DIVIDE " THEN 6260
5242  GOTO 5060
5250  IF A$[A1,A1+4]="INTO " THEN 6240
5252  GOTO 5060
5260  IF A$[A1,A1+2]="BY " THEN 6220
5262  GOTO 5060
5270  IF A$[A1,A1+5]="ENTER " THEN 6250
5272  GOTO 5060
5280  IF A$[A1,A1+7]="EXAMINE " THEN 6270
5282  GOTO 5060
5290  IF A$[A1,A1+8]="TALLYING " THEN 6280
5292  GOTO 5060
5300  IF A$[A1,A1+5]="UNTIL " THEN 6250
5302  GOTO 5060
5310  IF A$[A1,A1+5]="FIRST " THEN 6250
5312  GOTO 5060
5320  IF A$[A1,A1+3]="ALL " THEN 6230
5322  GOTO 5060
5330  IF A$[A1,A1+7]="LEADING " THEN 6270
5332  GOTO 5060
5340  IF A$[A1,A1+9]="REPLACING " THEN 6290
5342  GOTO 5060
5350  IF A$[A1,A1+4]="EXIT " THEN 6240
5352  GOTO 5060
5360  IF A$[A1,A1+2]="GO " THEN 6220
5362  GOTO 5060
5370  IF A$[A1,A1+9]="DEPENDING " THEN 6290
5372  GOTO 5060
5380  IF A$[A1,A1+2]="IF " THEN 6220
5382  GOTO 5060
5390  IF A$[A1,A1+4]="NEXT " THEN 6240
5392  GOTO 5060
5400  IF A$[A1,A1+8]="SENTENCE " THEN 6280
5402  GOTO 5060
5410  IF A$[A1,A1+4]="ELSE " THEN 6240
5412  GOTO 5060
5420  IF A$[A1,A1+4]="MOVE " THEN 6240
5422  GOTO 5060
5430  IF A$[A1,A1+8]="MULTIPLY " THEN 6280
5432  GOTO 5060
5440  IF A$[A1,A1+4]="NOTE " THEN 6240
5442  GOTO 5060
5450  IF A$[A1,A1+1]=". " THEN 5060
5452  GOSUB 9200
5454  GOTO 6400
5460  IF A$[A1,A1+7]="PERFORM " THEN 6270
5462  GOTO 5060
5470  IF A$[A1,A1+4]="THRU " THEN 6240
5472  GOTO 5060
5480  IF A$[A1,A1+5]="TIMES " THEN 6250
5482  GOTO 5060
5490  IF A$[A1,A1+7]="VARYING " THEN 6270
5492  GOTO 5060
5500  IF A$[A1,A1+5]="AFTER " THEN 6250
5502  GOTO 5060
5510  IF A$[A1,A1+7]="COMPUTE " THEN 6270
5512  GOTO 5060
5520  IF A$[A1,A1+4]="FROM " THEN 6240
5522  GOTO 5060
5530  IF A$[A1,A1+4]="STOP " THEN 6240
5532  GOTO 5060
5540  IF A$[A1,A1+3]="RUN " THEN 6230
5542  GOTO 5060
5550  IF A$[A1,A1+8]="SUBTRACT " THEN 6280
5552  GOTO 5060
5560  IF A$[A1,A1+2]="IS " THEN 6220
5562  IF A$[A1,A1+3]="ARE " THEN 6230
5564  GOTO 5060
5570  IF A$[A1,A1+3]="NOT " THEN 6230
5572  GOTO 5060
5640  IF A$[A1,A1+1]="= " THEN 6210
5642  GOTO 5060
5730  IF A$[A1,A1+5]="CLOSE " THEN 6250
5732  GOTO 5060
5740  LET A9=A1
5741  GOSUB 9200
5742  GOSUB 9300
5744  IF V0<0 THEN 5052
5745  IF V0>W0*8 THEN 5052
5746  LET A2=52
5747  GOSUB 9650
5749  GOTO 6400
5750  IF A$[A1,A1+4]="REEL " THEN 6240
5752  GOTO 5060
5760  IF A$[A1,A1+4]="UNIT " THEN 6240
5762  GOTO 5060
5770  IF A$[A1,A1+4]="OPEN " THEN 6240
5772  GOTO 5060
5780  IF A$[A1,A1+5]="INPUT " THEN 6250
5782  GOTO 5060
5790  IF A$[A1,A1+6]="OUTPUT " THEN 6260
5792  GOTO 5060
5800  IF A$[A1,A1+3]="I-O " THEN 6230
5802  GOTO 5060
5810  IF A$[A1,A1+4]="READ " THEN 6240
5812  GOTO 5060
5820  IF A$[A1,A1+6]="RECORD " THEN 6260
5822  GOTO 5060
5830  IF A$[A1,A1+5]="WRITE " THEN 6250
5832  GOTO 5060
5840  IF A$[A1,A1+6]="BEFORE " THEN 6260
5842  GOTO 5060
5850  IF A$[A1,A1+5]="AFTER " THEN 6250
5852  GOTO 5060
5860  IF A$[A1,A1+9]="ADVANCING " THEN 6290
5862  GOTO 5060
5870  GOSUB 8300
5871  IF V0=0 THEN 5060
5872  IF V5 <> 0 THEN 5060
5873  IF V4>6 THEN 5060
5874  GOTO 6200
5880  IF A$[A1,A1+5]="LINES " THEN 6250
5881  IF A$[A1,A1+4]="LINE " THEN 6240
5882  GOTO 5060
5890  IF A$[A1,A1+7]="INVALID " THEN 6270
5892  GOTO 5060
5900  IF A$[A1,A1+3]="KEY " THEN 6230
5902  GOTO 5060
5910  IF A$[A1,A1+2]="AT " THEN 6220
5912  GOTO 5060
5920  IF A$[A1,A1+3]="END " THEN 6230
5922  GOTO 5060
5930  IF A$[A1,A1+4]="SEEK " THEN 6240
5932  GOTO 5060
5940  IF A$[A1,A1+4]="WITH " THEN 6240
5942  GOTO 5060
5950  IF A$[A1,A1+2]="NO " THEN 6220
5952  GOTO 5060
5960  IF A$[A1,A1+6]="REWIND " THEN 6260
5962  GOTO 5060
6000  IF A$[A1,A1]="'" THEN 6002
6001  IF A$[A1,A1] <> C$[3,3] THEN 6500
6002  GOSUB 8250
6003  LET A2=50
6004  LET V0=Y
6005  GOSUB 9650
6006  LET Y[Y+1]=M*3+M0
6007  GOSUB 8100
6008  LET Y[Y]=20000+(A1-I0-1)*10
6009  GOTO 6390
6010  IF A$[A1,A1+5]="READY " THEN 6250
6012  GOTO 5060
6020  IF A$[A1,A1+5]="RESET " THEN 6250
6022  GOTO 5060
6030  IF A$[A1,A1+5]="TRACE " THEN 6250
6032  GOTO 5060
6040  GOTO 7000
6050  GOTO 7050
6060  IF A$[A1,A1+5]="UNTIL " THEN 6250
6062  GOTO 5060
6070  IF A$[A1,A1]<"0" THEN 6072
6071  IF A$[A1,A1] <= "9" THEN 6077
6072  IF A$[A1,A1]="+" THEN 6075
6073  IF A$[A1,A1]="-" THEN 6075
6074  IF A$[A1,A1] <> "." THEN 5060
6075  IF A$[A1+1,A1+1]=" " THEN 5060
6077  GOSUB 8300
6078  IF V0=0 THEN 5060
6079  GOTO 6200
6080  IF A$[A1,A1]="'" THEN 6082
6081  IF A$[A1,A1] <> C$[3,3] THEN 6530
6082  GOSUB 8250
6083  LET V0=M
6084  GOSUB 8100
6085  LET A2=INT(M[V0]/4096)
6086  GOSUB 9600
6087  GOTO 6210
6200  LET A1=A1+1
6202  GOTO 6400
6210  LET A1=A1+2
6212  GOTO 6400
6220  LET A1=A1+3
6222  GOTO 6400
6230  LET A1=A1+4
6232  GOTO 6400
6240  LET A1=A1+5
6242  GOTO 6400
6250  LET A1=A1+6
6252  GOTO 6400
6260  LET A1=A1+7
6262  GOTO 6400
6270  LET A1=A1+8
6272  GOTO 6400
6280  LET A1=A1+9
6282  GOTO 6400
6290  LET A1=A1+10
6292  GOTO 6400
6300  LET A1=A1+11
6302  GOTO 6400
6390  LET Y[Y+1]=Y[Y+1]+(A1-I0-1)*2000
6392  LET Y=Y+2
6394  GOTO 6210
6400  GOSUB 9100
6410  LET S8=1
6420  RETURN 
6490  LET A1=A9
6500  LET V0=1
6520  GOTO 6540
6530  LET V0=2
6540  FOR I=1 TO 5
6550  IF A$[A1,A1+3]=G$[I*4-3,I*4] THEN 6580
6560  NEXT I
6570  GOTO V0 OF 5060,5060,7900
6580  LET A2=50
6583  GOSUB 9600
6584  LET A2=Y
6585  GOSUB 9600
6590  LET Y[Y]=620000.
6592  LET Y[Y+1]=G[I]
6593  LET Y=Y+2
6594  GOSUB 9200
6596  GOTO V0 OF 6400,6400,7270
7000  LET E1=1
7040  GOTO 7100
7050  LET E1=0
7100  LET Q=1
7110  LET E2=Q[Q]=V5=0
7112  IF A$[A1,A1+3] <> "NOT " THEN 7120
7114  IF E1=0 THEN 7800
7116  LET Q=Q+1
7118  LET Q[Q]=1
7120  IF A$[A1,A1]<"A" THEN 7590
7122  IF A$[A1,A1+4] <> "THEN " THEN 7130
7124  LET A1=A1+5
7126  GOSUB 9100
7128  GOTO 7122
7130  IF E2=0 THEN 7230
7140  GOTO E1+1 OF 7800,7150,7694
7150  IF A$[A1,A1+2]="IS " THEN 7290
7160  GOSUB 7850
7162  IF A$[A1,A1+3]="NOT " THEN 7320
7170  IF A$[A1,A1+7]="GREATER " THEN 7360
7180  IF A$[A1,A1+4]="LESS " THEN 7450
7190  IF A$[A1,A1+5]="EQUAL " THEN 7480
7200  IF A$[A1,A1+7]="NUMERIC " THEN 7510
7210  IF A$[A1,A1+10]="ALPHABETIC " THEN 7560
7220  GOTO 7800
7230  GOSUB 9200
7232  GOSUB 9100
7240  GOSUB 9300
7250  IF V0=-1 THEN 7870
7260  GOSUB 9500
7270  LET E2=1
7280  GOTO 7120
7290  LET A1=A1+3
7300  GOSUB 9100
7310  GOTO 7160
7320  LET Q=Q+1
7330  LET Q[Q]=1
7340  LET A1=A1+4
7350  GOTO 7170
7360  LET A1=A1+8
7370  LET Q[Q+1]=4
7380  LET Q=Q+1
7390  LET E2=E1=0
7400  GOSUB 9100
7410  IF A$[A1,A1+4] <> "THAN " THEN 7440
7420  LET A1=A1+5
7430  GOSUB 9100
7440  IF A$[A1,A1+2] <> "TO " THEN 7120
7442  LET A1=A1+3
7444  GOSUB 9100
7446  GOTO 7120
7450  LET A1=A1+5
7460  LET Q[Q+1]=2
7470  GOTO 7380
7480  LET A1=A1+6
7490  LET Q[Q+1]=3
7500  GOTO 7380
7510  LET A1=A1+8
7520  LET Q[Q+1]=5
7530  LET Q=Q+1
7540  GOSUB 9100
7550  GOTO 7800
7560  LET A1=A1+11
7570  LET Q[Q+1]=6
7580  GOTO 7530
7590  IF E2=0 THEN 7652
7592  LET Y$=A$[A1,A1+1]
7600  IF Y$="+ " THEN 7664
7610  IF Y$="- " THEN 7670
7620  IF Y$="* " THEN 7680
7630  IF Y$="/ " THEN 7690
7640  IF A$[A1,A1+2]="** " THEN 7700
7642  IF Y$=") " THEN 7750
7644  IF Y$=". " THEN 7800
7646  IF E1=2 THEN 7694
7650  GOTO 7910
7652  IF A$[A1,A1+1]="( " THEN 7740
7653  IF A$[A1,A1]="'" THEN 7770
7654  IF A$[A1,A1] <> "." THEN 7656
7655  IF A$[A1+1,A1+1] <> " " THEN 7782
7656  IF A$[A1,A1]<"0" THEN 7658
7657  IF A$[A1,A1] <= "9" THEN 7782
7658  IF A$[A1,A1]="+" THEN 7660
7659  IF A$[A1,A1] <> "-" THEN 7662
7660  IF A$[A1+1,A1+1] <> " " THEN 7782
7662  IF A$[A1,A1]=C$[3,3] THEN 7770
7663  GOTO 7910
7664  LET E3=56
7666  GOTO 7710
7670  LET E3=57
7672  GOTO 7710
7680  LET E3=58
7682  GOTO 7710
7690  LET E3=59
7692  GOTO 7710
7694  LET E3=55
7696  LET A1=A1-2
7698  GOTO 7710
7700  LET E3=60
7702  LET A1=A1+1
7710  IF Q[Q]<E3 THEN 7720
7712  GOSUB 7950
7718  GOTO 7710
7720  LET Q=Q+1
7722  LET Q[Q]=E3
7724  LET E2=0
7726  LET A1=A1+2
7728  GOSUB 9100
7730  GOTO 7120
7740  LET Q=Q+1
7742  LET Q[Q]=10
7744  GOTO 7724
7750  IF Q[Q] <= 10 THEN 7760
7752  GOSUB 7950
7758  GOTO 7750
7760  IF Q[Q] <> 10 THEN 7920
7762  LET Q=Q-1
7763  LET A1=A1+2
7764  GOSUB 9100
7765  IF E1=2 THEN 7800
7766  GOTO 7120
7770  LET Y[Y+1]=M*3+M0
7771  LET V0=Y
7772  LET A2=50
7773  GOSUB 9650
7774  GOSUB 8100
7775  LET Y[Y]=20000+(A1-I0-1)*10
7776  LET Y[Y+1]=Y[Y+1]+(A1-I0-1)*2000
7777  LET Y=Y+2
7778  LET A1=A1+2
7779  GOSUB 9100
7780  LET E2=1
7781  GOTO 7120
7782  GOSUB 8300
7784  LET A1=A1+1
7786  GOTO 7779
7800  GOSUB 7850
7810  LET A2=53
7820  GOSUB 9600
7821  IF E1=2 THEN 6400
7822  LET E1=1.5
7824  GOSUB 7850
7830  GOTO 6400
7850  IF Q <= 1 THEN 7860
7851  IF Q[Q]=10 THEN 7910
7852  IF Q[Q]<10 AND E1 <> 1.5 THEN 7860
7854  GOSUB 7950
7858  GOTO 7850
7860  RETURN 
7870  IF V5<2 OR V5>4 THEN 7880
7872  IF X$ <> "ZERO" THEN 7880
7874  LET A1=A1-1
7876  LET A$[A1,A1]="0"
7878  GOTO 7782
7880  LET A1=I0
7882  LET V0=3
7884  GOTO 6540
7900  LET E9=21
7902  GOSUB 4000
7904  GOTO 5060
7910  LET E9=22
7920  GOTO 7902
7930  LET E9=23
7940  GOTO 7902
7950  REM SAVE OPERATOR
7960  IF Q[Q]<10 THEN 7970
7962  LET Q[Q]=61-Q[Q]
7970  LET A2=Q[Q]
7972  GOSUB 9600
7974  IF A2 <> 6 OR E1=1.5 THEN 7980
7976  LET A2=G[G3]
7978  LET G3=G3-1
7979  GOSUB 9600
7980  LET Q=Q-1
7984  RETURN 
8000  LET Y$=A$[A1,A1]
8010  FOR M2=1 TO 64
8020  IF C$[M2,M2]=Y$ THEN 8040
8030  NEXT M2
8040  RETURN 
8100  LET I0=A1
8110  LET A1=A1+1
8111  IF A1 <= A4 THEN 8114
8112  LET E9=27
8113  GOTO 4000
8114  IF A$[A1,A1] <> A$[I0,I0] THEN 8120
8116  RETURN 
8120  GOSUB 8000
8130  GOTO M0 OF 8140,8170,8200
8140  LET M[M]=M2*4096-4096
8150  LET M0=2
8160  GOTO 8110
8170  LET M[M]=M[M]+M2*64-64
8180  LET M0=3
8190  GOTO 8110
8200  LET M[M]=M[M]+M2-1
8210  LET M=M+1
8220  LET M0=1
8230  GOTO 8110
8250  IF M0=1 THEN 8290
8270  LET M0=1
8280  LET M=M+1
8290  RETURN 
8300  LET V8=0
8310  LET V0=V2=V3=V4=V5=V7=0
8312  LET V1=1
8320  IF A$[A1,A1]="+" THEN 8350
8330  IF A$[A1,A1] <> "-" THEN 8360
8340  LET V1=-1
8350  LET A1=A1+1
8360  FOR V6=1 TO 10
8370  IF A$[A1,A1]=D$[V6,V6] THEN 8460
8380  NEXT V6
8390  IF A$[A1,A1] <> "." THEN 8450
8400  LET V7=1
8410  LET A1=A1+1
8420  IF A$[A1,A1] <> " " THEN 8360
8422  LET M9=M9-1
8424  IF V4 <= 6 THEN 8430
8426  LET M9=M9-1
8430  IF V8=1 THEN 8442
8432  LET V0=Y
8433  LET A2=50
8434  GOSUB 9650
8435  LET Y[Y]=300000.+(V5+20)*1000+V4*10
8436  LET Y[Y+1]=V4*2000+M9*3+1
8440  LET Y=Y+2
8442  LET V0=1
8443  LET M[M9]=V2*V1
8444  IF V4 <= 6 THEN 8450
8446  LET M[M9]=V3*V1
8448  LET M[M9+1]=V2*V1
8450  RETURN 
8460  LET V2=V2*10+V6-1
8470  LET V3=V3*10+INT(V2/1.E+06)
8472  LET V2=V2-INT(V2/1.E+06)*1.E+06
8474  LET V4=V4+1
8480  LET V5=V5+V7
8490  GOTO 8410
9000  IF A7 <> 0 THEN 9070
9010  READ #1;N,A$
9020  LET L8=L8+1
9030  LET A3=A1=2
9040  LET A4=LEN(A$)
9042  IF A$[2,2] <> " " THEN 9050
9044  LET A3=A1=5
9050  RETURN 
9070  LET A$=" END OF PROGRAM . "
9072  LET A7=A7+1
9074  IF A7<5 THEN 9020
9076  PRINT "*UNEXPECTED END OF FILE AFTER LINE";N
9078  GOTO 500
9090  LET A7=1
9092  GOTO 9000
9100  IF A1 >= A4 THEN 9160
9120  IF A$[A1,A1+1]=", " THEN 9140
9130  RETURN 
9140  LET A1=A1+2
9150  GOTO 9100
9160  GOSUB 9000
9170  GOTO 9100
9200  REM GET WORD
9210  LET I0=A1
9212  LET A1=A1+1
9220  IF A$[A1,A1] <> " " THEN 9212
9230  LET X$=A$[I0,A1-1]
9232  LET A1=A1+1
9250  RETURN 
9300  READ #2,1
9320  IF  END #2 THEN 9360
9330  READ #2;V$,V0
9340  IF V$ <> X$ THEN 9330
9350  RETURN 
9360  LET V0=-1
9370  RETURN 
9400  READ #2,10
9420  GOTO 9320
9500  IF Y[V0]<0 THEN 9592
9510  LET A2=50
9520  GOTO 9650
9550  LET A2=50
9552  GOSUB 9600
9554  LET A2=0
9556  GOSUB 9600
9558  LET A2=V0+1
9560  GOSUB 9600
9561  LET G4=E1
9562  LET E1=2
9563  LET E2=V5=0
9564  LET G3=INT(G[1]/100)
9565  LET G[1]=G[1]-G3*100
9566  GOSUB 7112
9570  LET E1=G4
9572  RETURN 
9592  LET G[1]=INT(-Y[V0]/10000)
9593  LET G[2]=INT((-Y[V0]-G[1]*10000)/100)
9594  LET G[3]=-Y[V0]-INT(-Y[V0]/100)*100
9595  GOTO 9550
9600  LET A0=INT(A/3)+1
9620  LET A[A0]=A[A0]+A2*150^(A0*3-A-1)
9630  LET A=A+1
9632  IF A<600 THEN 9640
9634  LET E9=29
9636  GOSUB 4000
9638  GOTO 500
9640  RETURN 
9650  GOSUB 9600
9670  LET A2=V0
9680  GOTO 9600
9999  END 
