1  COM F$[7],B$[7],L9,F8
2  COM M$[72],A6,A7,N,E9
3  COM W,W$[64],W0,Y
4  COM M[500],M,M0,M9,Y[150]
5  COM P[25,2],A[200]
6  COM C$[72],D$[11]
7  COM S,S[40],R,V8,V9,E0,M5
8  COM P8,J[3,11]
9  REM COBOL, HP 36845B, 6/74
10  LET E9=0
12  GOSUB 1500
20  DIM Y$[4]
30  DIM Q[6,3],V[30]
60  MAT J=ZER
62  LET P8=2
114  LET F8=F8+1
120  FILES *,*,COSCR
140  LET R=V8=V9=E0=M5=0
150  FOR I=1 TO W0
160  ASSIGN W$[I*16-15,I*16-9],I,A5
170  NEXT I
600  GOTO 1000
900  DEF FNA()=-INT(/64)*64
910  DEF FNB()=-INT(/4096)*4096
920  DEF FNC()=INT(-INT(/10)*10)
930  DEF FND()=-INT(/1000)*1000
940  DEF FNE()=-INT(/200)*200
950  DEF FNF()=-INT((-1)/3)*3
960  DEF FNM()=FNA(INT(M[INT((-1)/3)]/64^(3-FNF())))
962  DEF FNG()=-INT(/150)*150
964  DEF FNH()=FNG(INT(A[INT((-1)/3)+1]/150^(3-FNF())))
990  GOSUB 1600
1000  LET Q=E0=0
1010  LET P0=FNH(F8)
1012  LET F8=F8+1
1020  IF P0=0 THEN 1150
1030  IF P0=62 THEN 1010
1040  IF P0=63 THEN 1080
1050  LET P0=FNH(F8)
1052  LET F8=F8+1
1054  IF P0=0 AND FNH(F8)=23 THEN 990
1060  IF P0 <> 62 AND P0 <> 63 THEN 1050
1070  GOTO 1030
1080  IF P[P8,2]<0 THEN 1100
1090  LET P8=FNH(F8)
1091  LET F8=F8+1
1092  GOTO 1240
1100  LET J=-P[P8,2]
1110  LET F8=FND(J[J,11])
1112  LET P8=INT(J[J,11]/1000)
1130  GOSUB 1600
1140  GOTO 4320
1150  LET P0=FNH(F8)
1152  LET F8=F8+1
1154  GOSUB 1600
1158  GOTO INT((P0-1)/10)+1 OF 1160,1170,1180
1160  GOTO P0 OF 2000,2100,2400,2800,2450,2360,1010,3650,1010,2550
1170  GOTO P0-10 OF 2900,3100,2330,1010,3900,2700,2300,3400,1010,4700
1180  GOTO P0-20 OF 4800,1010,1050
1182  LET E9=P0-25
1184  GOTO 1000
1200  LET F8=P[P9,1]+1
1230  LET P8=P9
1240  IF P[P8,2] <= 0 THEN 1400
1250  LET P9=P[P8,2]
1260  GOTO 1200
1400  IF E9 <> -1 THEN 1000
1410  READ #3,10
1420  READ #3;M$,M
1430  IF M <> P8 THEN 1420
1440  PRINT "*";M$
1450  GOTO 1000
1500  CHAIN "$CODBG"
1600  LET S=1
1604  LET F7=F8
1610  FOR S9=1 TO 50
1620  LET S[S9]=FNH(F8)
1630  LET F8=F8+1
1632  IF S[S9]=59 THEN 1642
1634  IF S[S9] <> 50 THEN 1640
1635  LET S[S9+1]=FNH(F8)
1636  LET S9=S9+1
1637  LET F8=F8+1
1640  NEXT S9
1642  LET N=FNH(F8)*22500+FNH(F8+1)*150+FNH(F8+2)
1644  LET F8=F8+3
1646  RETURN 
2000  INPUT M$
2040  GOSUB 9500
2050  IF V[1]>3 THEN 2080
2060  LET M8=V[3]
2070  LET M=V[2]
2072  GOSUB 8200
2074  GOTO 1000
2080  LET E9=2
2082  GOTO 1500
2100  LET S1=1
2108  LET S2=R=0
2110  IF S[S] <> 50 THEN 2180
2120  GOSUB 5950
2140  IF S2=0 THEN 2160
2150  GOSUB S1 OF 7700,7700,7900,8000
2160  LET S2=S2+1
2170  GOTO 2110
2180  IF S[S]=10 THEN 2230
2182  IF S1 <> 4 OR S[S] <> 17 THEN 2190
2184  LET S1=5
2190  LET S=S+1
2192  GOSUB 5950
2210  GOSUB S1 OF 7700,7850,7900,8000,8010
2220  IF S[S] <> 10 THEN 2250
2230  LET S=S+1
2240  GOSUB 9500
2250  GOSUB 9600
2260  GOSUB 7400
2270  IF E0=1 THEN 1000
2280  IF S[S] <> 8 THEN 1000
2290  GOTO 1050
2300  LET S1=2
2320  GOTO 2108
2330  LET S1=3
2350  GOTO 2108
2360  LET S1=4
2380  GOTO 2108
2400  REM ALTER
2410  LET P[S[2],2]=S[5]
2420  GOTO 1000
2450  IF S[S] <> 50 THEN 2520
2470  GOSUB 9500
2480  IF V[1]=3 OR V[1]=4 THEN 2510
2490  LET M8=V[3]
2492  LET M=V[2]
2494  GOSUB 8350
2496  PRINT M$;
2500  GOTO 2450
2510  GOSUB 6000
2516  PRINT (Q[Q,1]*1.E+06+Q[Q,2])/10^Q[Q,3];
2518  GOTO 2450
2520  PRINT 
2530  GOTO 1000
2550  IF S9>3 THEN 2590
2570  LET P9=S[2]
2580  GOTO 1200
2590  FOR I=1 TO S9
2600  IF S[I]=50 THEN 2620
2610  NEXT I
2620  GOSUB 5950
2640  LET M5=0
2650  GOSUB 6600
2660  IF 2*V9<0 OR 2*V9>I THEN 1000
2680  LET P9=S[2*V9]
2690  GOTO 1200
2700  IF S[1] <> 45 THEN 2740
2720  PRINT "***NORMAL TERMINATION"
2730  CHAIN "$COMON",5
2740  GOSUB 9500
2750  LET M=V[2]
2760  LET M8=V[3]
2770  GOSUB 8350
2780  PRINT M$;
2782  ENTER 255,A5,Y$
2783  PRINT 
2784  IF A5=-256 THEN 2780
2786  GOTO 1000
2800  GOSUB 9500
2812  GOSUB 9600
2820  LET S=S+1
2830  GOSUB 8400
2840  LET S=1
2850  GOSUB 9500
2860  GOSUB 7400
2870  GOTO 2270
2900  GOSUB 5000
2920  GOTO V9+1 OF 1050,1000
3100  GOSUB 9500
3111  LET S=S+1
3112  LET A4=V[1]
3113  LET M=A3=V[2]
3114  GOSUB 9000
3116  LET M7=V[3]
3120  LET E0=Q=0
3130  LET S1=S
3132  GOSUB 9500
3142  LET M=A3
3150  GOTO A4+1 OF 3160,3170,3180,3190,3190,3210,3160
3160  GOTO V[1]+1 OF 3250,3370,3300,3300,3300,3250
3170  GOTO V[1]+1 OF 3250,3250,3220,3220,3220,3250
3180  GOTO V[1]+1 OF 3250,3300,3300,3300,3300,3250
3190  GOTO V[1]+1 OF 3300,3300,3300,3300,3300,3250
3210  IF V[1] <> 4 THEN 3250
3220  LET E9=4
3230  GOTO 1500
3250  LET M6=M
3251  LET M=V[2]
3252  GOSUB 9025
3253  LET M=M6
3254  LET M8=V[3]
3260  GOSUB 8750
3270  IF S[S] <> 50 THEN 1000
3272  LET S2=S
3280  LET S=1
3284  GOSUB 9500
3286  LET S=S2
3288  GOTO 3112
3290  GOSUB 9500
3300  LET S=1
3310  GOSUB 5950
3330  LET S=S1
3340  GOSUB 9500
3350  GOSUB 7400
3360  GOTO 3270
3370  LET V7=0
3371  IF V[5] <> 0 THEN 3300
3372  GOSUB 7000
3380  GOTO 3270
3400  GOSUB 9700
3410  READ #INT(S0/8)+1,1
3420  IF S[S]=52 THEN 3400
3430  GOTO 1000
3650  LET V3=0
3660  GOSUB 9500
3662  LET M8=V[3]
3670  IF S[S] <> 20 THEN 3710
3680  LET V6=-1
3690  LET M[500]=0
3700  LET V3=1
3710  LET S=S+1
3720  LET V4=S[S]
3730  LET V5=S[S+1]
3740  IF S[S+2] <> 17 THEN 3760
3750  LET V6=S[S+3]
3760  GOSUB 9025
3770  GOSUB 9000
3774  GOSUB 9050
3780  IF M2 <> V5 THEN 3800
3790  GOTO V4 OF 3810,3810,1000
3800  GOTO V4 OF 3880,1000,3810
3810  LET M[500]=M[500]+V3
3820  IF V6=-1 THEN 3890
3870  LET M2=V6
3880  GOSUB 9100
3890  LET M8=M8-1
3892  IF M8>0 THEN 3770
3894  GOTO 1000
3900  FOR J=1 TO 3
3920  IF J[J,1]=0 THEN 3940
3930  NEXT J
3940  LET P9=J[J,1]=J[J,2]=S[2]
3942  LET J[J,11]=F7+P8*1000
3950  IF S[3] <> 38 THEN 3980
3960  LET S=S+3
3970  LET J[J,2]=S[5]
3980  LET S=S+2
3982  LET P[J[J,2],2]=-J
3990  IF S[S]=40 THEN 4140
4000  IF S[S]=50 THEN 4050
4010  IF S[S]=97 THEN 4120
4030  LET J[J,3]=1
4040  GOTO 1200
4050  GOSUB 5950
4070  LET J[J,3]=2
4080  LET M5=0
4090  GOSUB 6600
4100  LET J[J,4]=V9
4110  GOTO 4340
4120  LET J[J,3]=3
4122  LET J[J,4]=S+1
4130  GOTO 4370
4140  LET J[J,4]=1
4141  LET J[J,3]=4
4150  LET J0=5
4160  LET S=S+1
4170  LET J[J,J0]=S*200
4180  GOSUB 9500
4182  LET J[J,J0]=J[J,J0]+S
4190  GOSUB 5950
4192  LET J[J,J0+1]=S
4194  GOSUB 9500
4210  LET J[J,J0+1]=J[J,J0+1]*200+S
4220  LET S=INT(J[J,J0]/200)
4230  GOSUB 9500
4240  GOSUB 7400
4250  LET S=FNE(J[J,J0+1])
4270  GOSUB 5000
4280  IF S[S]#41 THEN 4312
4290  LET J0=J0+2
4300  LET J[J,4]=J[J,4]+1
4310  GOTO 4160
4312  LET J0=5
4314  GOTO 4490
4320  LET P9=J[J,1]
4330  GOTO J[J,3] OF 4650,4340,4370,4400
4340  LET J[J,4]=J[J,4]-1
4350  IF J[J,4] >= 0 THEN 1200
4360  GOTO 4650
4370  LET S=J[J,4]
4380  GOSUB 5000
4390  GOTO V9+1 OF 1200,4650
4400  LET J0=J[J,4]*2+3
4410  LET S=INT(J[J,J0+1]/200)
4420  GOSUB 5950
4440  LET S=INT(J[J,J0]/200)
4450  GOSUB 5950
4470  GOSUB 7700
4480  GOSUB 7400
4490  LET S=FNE(J[J,J0+1])
4492  LET Q=0
4500  GOSUB 5000
4510  IF V9=1 THEN 4550
4520  IF J0=J[J,4]*2+3 THEN 1200
4530  LET J0=J0+2
4540  GOTO 4490
4550  IF J0=5 THEN 4650
4560  LET S=FNE(J[J,J0])
4562  LET Q=0
4570  GOSUB 5950
4590  LET S=INT(J[J,J0]/200)
4600  GOSUB 9500
4610  GOSUB 7400
4620  LET J0=J0-2
4630  GOTO 4410
4650  LET P[J[J,2],2]=J[J,1]=0
4660  GOTO 1000
4700  GOSUB 9700
4712  LET M8=V[5]
4714  LET M=V[7]
4720  READ #INT(S0/8)+1;M$
4750  GOSUB 8200
4752  IF S[S]=83 THEN 1050
4760  GOTO 1000
4800  GOSUB 9500
4820  LET M=V[2]
4830  LET M8=V[3]
4840  GOSUB 8350
4850  GOSUB 9700
4851  LET S2=INT(S0/8)+1
4852  IF S[S] <> 76 THEN 4860
4854  GOSUB 4880
4860  PRINT #S2;M$, END 
4864  IF S[S] <> 75 THEN 4870
4866  GOSUB 4880
4870  IF S[S]=80 THEN 1050
4872  GOTO 1000
4880  LET S=S+1
4890  GOSUB 5950
4900  FOR I=1 TO Q[1,2]-1
4902  PRINT #S2;" ", END 
4904  NEXT I
4906  RETURN 
5000  GOSUB 9500
5020  GOTO V[1]+1 OF 5100,5100,5030,5060,5060,5100,5100
5030  IF S[S]=53 THEN 5100
5060  GOSUB 6000
5062  GOSUB 8400
5070  GOSUB 7860
5080  LET V9=SGN(Q[Q,1]*1.E+06+Q[Q,2])
5090  GOTO 5140
5100  LET M8=V[3]
5110  LET M=V[2]
5120  IF S[S]=53 THEN 5220
5130  GOSUB 8500
5132  LET S=S+1
5140  IF V9+3 <> S[S] THEN 5170
5150  LET V9=1
5160  GOTO 5180
5170  LET V9=0
5180  IF S[S] <> 1 THEN 5210
5190  LET S=S+1
5200  LET V9=1-V9
5210  LET S=S+1
5212  RETURN 
5220  GOSUB 9000
5222  LET S=S+2
5230  FOR V0=1 TO M8
5240  GOSUB 9050
5250  IF S[S-1]=6 THEN 5270
5260  IF  NOT (M2=11 OR M2=13 OR (M2 >= 16 AND M2<26)) THEN 5170
5262  GOTO 5280
5270  IF M2<33 OR M2>58 OR M2=0 THEN 5170
5280  NEXT V0
5290  GOTO 5150
5950  GOSUB 9500
6000  GOTO V[1]+1 OF 6020,6060,6020,6120,6150,6060
6020  LET M=V[2]
6022  LET Q[Q+1,3]=V[4]
6030  LET M8=V[3]
6040  GOTO 6200
6060  LET E9=1
6070  GOTO 1500
6100  GOTO 6500
6120  LET M=INT(V[2]/3)
6130  LET M8=V[3]
6132  LET Q[Q+1,3]=V[4]
6140  GOTO 6100
6150  LET M=V[2]
6160  LET M8=6
6161  LET Q[Q+1,3]=0
6170  GOTO 6500
6200  GOSUB 9000
6220  LET V0=V5=V6=V2=V3=0
6230  LET V1=1
6240  FOR V4=1 TO M8
6242  GOSUB 9050
6250  IF M2 >= 16 THEN 6330
6260  GOTO M2-10 OF 6390,6270,6290,6310
6262  IF M2=0 THEN 6340
6270  LET E9=3
6280  GOTO 1500
6290  LET V1=-1
6300  GOTO 6390
6310  LET V5=1
6320  GOTO 6390
6330  IF M2 <= 25 THEN 6340
6332  IF M2>35 THEN 6270
6334  LET M2=M2-10
6336  LET V1=-1
6340  LET V3=V3*10+INT(V2/100000.)
6350  LET V2=V2-INT(V2/100000.)*100000.
6360  LET V2=10*V2+(M2-16 MAX 0)
6370  LET V0=V0+1
6380  LET V6=V6+V5
6390  NEXT V4
6400  LET Q=Q+1
6410  LET Q[Q,1]=V3*V1
6420  LET Q[Q,2]=V2*V1
6422  IF V[1]=2 THEN 6440
6430  LET Q[Q,3]=V6
6440  RETURN 
6500  LET Q=Q+1
6520  IF M8>6 THEN 6560
6530  LET Q[Q,1]=0
6540  LET Q[Q,2]=M[M]
6550  RETURN 
6560  LET Q[Q,1]=M[M]
6570  LET Q[Q,2]=M[M+1]
6580  RETURN 
6600  LET V0=10^(M5-Q[Q,3])
6620  LET V8=Q[Q,1]*V0
6630  LET V9=INT(Q[Q,2]*V0+R)
6640  GOTO SGN(V0-1)+2 OF 6680,6670,6650
6650  LET V8=V8+INT(V9/1.E+06)
6660  LET V9=V9-INT(V9/1.E+06)*1.E+06
6662  LET V0=INT((SGN(V8)-SGN(V9)+1.6)/3.5)
6664  LET V8=V8-V0
6666  LET V9=V9+V0*1.E+06
6670  RETURN 
6680  LET V9=V9+(V8-INT(V8))*1.E+06
6690  LET V8=INT(V8)
6692  GOTO 6650
6700  GOSUB 6600
6710  PRINT V8;V9;M8;M;N
6720  IF M8>6 THEN 6740
6730  LET M[M]=V9
6732  RETURN 
6740  LET M[M]=V8
6742  LET M[M+1]=V9
6744  RETURN 
6800  GOSUB 9025
6812  LET M2=0
6820  IF V9+V8 >= 0 THEN 6900
6830  IF V[1]=2 THEN 6890
6840  LET M2=13
6850  GOSUB 9100
6860  LET M8=M8-1
6870  LET M2=0
6880  GOTO 6900
6890  LET M2=10
6900  GOSUB 9150
6910  IF V8+V9=0 AND V[6]/4 >= 1 THEN 6950
6940  LET M2=M2+V0+16
6950  GOSUB 9100
6960  LET M2=0
6970  LET M8=M8-1
6980  IF M8>0 THEN 6900
6990  RETURN 
7000  LET M8=V[5]
7004  LET M6=M
7005  LET M=V[2]
7006  GOSUB 9025
7007  LET M=M6
7008  IF M8<V7 AND M8>0 THEN 7694
7010  LET V3=7
7012  LET V2=V6=0
7020  LET V1=V[V3]
7030  IF V1=33 OR V1=56 OR V1=25 THEN 7110
7040  IF V1=51 OR V1=48 OR V1=55 THEN 7150
7050  IF V1=12 OR V1=16 OR V1=14 THEN 7200
7060  IF V1=34 THEN 7190
7070  IF V1=11 OR V1=13 OR V1=4 THEN 7220
7080  IF V1=35 OR V1=36 THEN 7260
7090  IF V1=58 OR V1=10 THEN 7350
7100  RETURN 
7110  GOSUB 9200
7120  LET V6=V6 MAX M2-16
7140  GOSUB 9100
7150  LET V3=V3+1
7160  GOTO 7020
7170  LET M8=M8-1
7190  LET V1=0
7200  LET M2=V1
7210  GOTO 7140
7220  IF V6 <> 0 THEN 7110
7221  IF V1 <> V[V3+1] THEN 7224
7222  IF V7<M8 THEN 7170
7223  LET V6=1
7224  IF V1=4 OR (V1=11 AND V8+V9 >= 0) OR (V1=13 AND V8+V9<0) THEN 7200
7226  IF V1 <> 11 THEN 7190
7230  LET V1=13
7240  GOTO 7200
7260  IF V8+V9<0 OR V1=36 THEN 7300
7280  LET V[V+1]=34
7290  GOTO 7190
7300  LET M2=V1
7310  GOSUB 9100
7320  LET V3=V3+1
7330  LET M2=V[V3]
7340  GOTO 7140
7350  GOSUB 9200
7360  IF M2 <> 16 OR V6 <> 0 THEN 7120
7380  IF V1=10 THEN 7200
7390  GOTO 7190
7400  LET M5=V[4]
7402  GOSUB 6600
7404  GOSUB 9300
7406  IF E0=1 OR V7>V[5] THEN 7694
7407  IF V[6]/2 <> INT(V[6]/2) THEN 7410
7408  LET V8=ABS(V8)
7409  LET V9=ABS(V9)
7410  GOTO V[1]+1 OF 7420,7480,7420,7600,7660,6060
7420  LET M=V[2]
7450  LET M8=V[3]
7460  GOTO 6800
7480  LET M8=V[3]
7492  IF V8+V9=0 AND V[6]/4 >= 1 THEN 7420
7500  GOTO 7000
7600  LET M=INT(V[2]/3)
7630  LET M8=V[3]
7640  GOSUB 6720
7650  RETURN 
7660  LET M=V[2]
7670  LET M8=6
7684  GOTO 6720
7694  LET E0=1
7696  RETURN 
7700  LET V7=1
7720  LET M5=Q[Q,3] MAX Q[Q-1,3]
7730  GOSUB 6600
7740  LET V1=V8
7750  LET V2=V9
7760  LET Q=Q-1
7770  GOSUB 6600
7780  LET V1=V8+V7*V1
7790  LET V2=V9+V7*V2
7800  LET V1=V1+INT(V2/1.E+06)
7802  LET V2=V2-INT(V2/1.E+06)*1.E+06
7804  LET V7=INT((SGN(V1)-SGN(V2)+1.6)/3.5)
7806  LET Q[Q,1]=V1-V7
7808  LET Q[Q,2]=V2+V7*1.E+06
7820  LET Q[Q,3]=M5
7830  RETURN 
7850  GOSUB 9550
7860  LET V7=-1
7870  GOTO 7720
7900  LET V3=INT(Q[Q,2]/1000)
7920  LET V4=Q[Q,2]-V3*1000
7930  LET V5=INT(Q[Q-1,2]/1000)
7940  LET V6=Q[Q-1,2]-V5*1000
7950  LET V2=V4*V6+1000*FND(V3*V6+V4*V5)
7960  LET V1=INT((V3*V6+V4*V5)/1000)+V3*V5+V6*Q[Q,1]
7970  LET V1=V1+V4*Q[Q-1,1]+1000*(V3*Q[Q-1,1]+V5*Q[Q,1])
7980  LET V1=V1+1.E+06*Q[Q,1]*Q[Q-1,1]
7982  LET M5=Q[Q,3]+Q[Q-1,3]
7984  LET Q=Q-1
7990  GOTO 7800
8000  GOSUB 9550
8010  GOSUB 9400
8020  IF V9=0 THEN 7694
8060  LET Q=Q-1
8062  LET V1=Q[Q,1]/V9*10
8070  LET V2=(Q[Q,2]/V9+(V1-INT(V1))*1.E+06)*10
8080  LET V1=INT(V1)
8090  LET M5=Q[Q,3]-M5+1
8092  GOTO 7800
8094  LET E0=1
8100  GOSUB 9550
8110  GOSUB 9400
8160  LET V0=M5
8170  LET Q=Q-1
8180  LET V2=V9
8190  GOSUB 9400
8192  LET V1=0
8194  LET V2=V9^V2
8196  LET M5=M5*V0
8198  GOTO 7800
8200  GOSUB 9025
8220  FOR I0=1 TO M8
8222  LET M2=0
8224  IF I0>LEN(M$) THEN 8250
8230  LET Y$=M$[I0,I0]
8240  GOSUB 8300
8242  LET M2=M2-1
8250  GOSUB 9100
8260  NEXT I0
8270  RETURN 
8280  LET Q[Q-1,2]=(Q[Q-1,2]-1)*S[S+1]
8284  LET S=S+1
8286  GOTO 7700
8300  FOR M2=1 TO 64
8320  IF C$[M2,M2]=Y$ THEN 8348
8330  NEXT M2
8348  RETURN 
8350  GOSUB 9000
8362  LET M$=""
8370  FOR I0=1 TO M8 MIN 72
8380  GOSUB 9050
8390  LET M$[I0,I0]=C$[M2+1,M2+1]
8392  NEXT I0
8394  RETURN 
8400  IF S[S] <> 50 THEN 8450
8420  GOSUB 5950
8440  GOTO 8400
8450  IF S[S]=53 THEN 8490
8460  GOSUB S[S] OF 8100,8010,7900,7860,7700,8280
8470  LET S=S+1
8480  GOTO 8400
8490  LET S=S+1
8492  RETURN 
8500  GOSUB 9025
8520  LET V4=M
8530  LET V5=M0
8540  GOSUB 9500
8550  LET M=V[2]
8560  LET M7=V[3]
8570  GOSUB 9025
8580  LET V2=M
8590  LET V3=M0
8600  LET M=V4
8602  LET M0=V5
8604  GOSUB 8670
8606  LET M3=M2
8612  LET V5=M0
8614  LET V4=M
8616  LET M=V2
8618  LET M0=V3
8620  GOSUB 8690
8622  LET V2=M
8624  LET V3=M0
8630  LET V9=SGN(M2-M3)
8640  IF V9 <> 0 THEN 8660
8650  IF M7+M8 <> 0 THEN 8600
8660  RETURN 
8670  LET M8=M8-1
8672  IF M8 >= 0 THEN 9050
8674  LET M2=0
8676  RETURN 
8690  LET M7=M7-1
8692  IF M7 >= 0 THEN 9050
8694  GOTO 8674
8750  IF V[1] <> 0 OR V[6]-INT(V[6]/4)*4<2 THEN 8800
8780  LET M2=0
8782  FOR I=1 TO M8-M7
8784  GOSUB 9100
8786  NEXT I
8790  LET M8=M7
8800  FOR I=1 TO M8
8810  GOSUB 8690
8860  GOSUB 9100
8870  NEXT I
8880  RETURN 
9000  LET M0=1
9002  IF M>0 THEN 9010
9004  LET M0=2
9006  LET M=V[3]
9010  RETURN 
9025  LET M4=FNF(M)
9040  LET M3=INT((M-1)/3)
9042  RETURN 
9050  GOTO M0 OF 9070,9062
9062  LET M2=M
9064  RETURN 
9070  LET M2=FNM(M)
9080  LET M=M+1
9090  RETURN 
9100  GOTO M4 OF 9120,9130,9140
9120  LET M[M3]=FNB(M[M3])+M2*4096
9122  GOTO 9144
9130  LET M[M3]=FNA(M[M3])+M2*64+INT(M[M3]/4096)*4096
9132  GOTO 9144
9140  LET M[M3]=INT(M[M3]/64)*64+M2
9142  LET M3=M3+1
9143  LET M4=0
9144  LET M4=M4+1
9145  RETURN 
9150  IF M8>6 THEN 9190
9170  LET V0=FNC(ABS(V9)/10^(M8-1))
9180  RETURN 
9190  LET V0=FNC(ABS(V8)/10^(M8-7))
9192  RETURN 
9200  REM GET NEXT CHAR..>M2
9202  IF V2=0 THEN 9210
9204  LET M2=V2
9206  LET V2=0
9208  RETURN 
9210  IF M8 <= 0 THEN 9050
9220  GOSUB 9150
9230  LET M8=M8-1
9240  LET M2=V0+16
9250  RETURN 
9300  LET I0=V8*1.E+06+V9
9350  FOR V7=1 TO 20
9360  IF I0<10^V7 THEN 9390
9380  NEXT V7
9390  RETURN 
9400  LET M5=Q[Q,3]
9420  GOSUB 6600
9430  IF V8=0 THEN 9448
9440  LET M5=M5-1
9442  GOTO 9400
9448  RETURN 
9500  S0=S[S+1]
9503  IF S0=0 THEN 9750
9504  LET V[1]=INT(Y[S0]/100000.)
9506  LET V[3]=INT(Y[S0+1]/2000)
9508  LET V[2]=Y[S0+1]-V[3]*2000
9510  LET V[4]=INT((Y[S0]-V[1]*100000.)/1000)-20
9512  LET V[5]=INT((Y[S0]-INT(Y[S0]/1000)*1000)/10)
9514  LET V[6]=Y[S0]-INT(Y[S0]/10)*10
9516  IF V[1] <> 1 THEN 9530
9518  FOR V9=0 TO 22
9520  LET V[7+V9]=FNA(INT(Y[S0+2+INT(V9/3)]/64^(3-FNF(V9+1))))
9522  NEXT V9
9530  IF V[1] <> 2 THEN 9540
9532  LET V[7]=0
9540  LET S=S+2
9542  RETURN 
9550  FOR V0=1 TO 3
9570  LET V1=Q[Q,V0]
9580  LET Q[Q,V0]=Q[Q-1,V0]
9590  LET Q[Q-1,V0]=V1
9592  NEXT V0
9594  RETURN 
9600  LET R=0
9620  IF S[S] <> 6 THEN 9640
9630  LET R=.5
9632  LET S=S+1
9640  RETURN 
9650  GOSUB 5950
9670  LET M5=0
9680  GOSUB 6600
9690  RETURN 
9700  LET S=S+2
9704  LET S0=S[S-1]
9705  FOR V9=1 TO 8
9706  LET V[V9]=Y[S0+V9-1]
9707  NEXT V9
9720  IF  END #INT(S0/8)+1 THEN 9780
9730  IF V[1] <> 1 THEN 9742
9740  READ #INT(S0/8)+1,M[V[2]]
9742  RETURN 
9750  LET K1=S[S+2]
9752  LET S=S+3
9754  GOSUB 8400
9756  LET S=S-2
9758  LET S0=K1
9760  GOSUB 9504
9762  LET V9=(Q[Q,2]-1)*V[3]
9764  LET V[2]=V[2]+V9
9766  IF V[2]+V[3]<1504 THEN 9770
9767  LET E9=6
9769  GOTO 1500
9770  LET Q=Q-1
9772  RETURN 
9780  IF S[S]=83 OR S[S]=80 THEN 1000
9782  LET E9=5
9784  GOTO 1500
9999  END 
