10  COM A$[72],B$[72],D$[52],F$[24],L$[72],M$[72],N$[72],O$[72],P$[72]
15  COM Q$[72],Y$[10],Z$[72]
20  COM A[10],B[6],C[6],D[6],E[6],I[64,2],L[10],M[64,2],P[6],R[6],S[6]
25  COM T[6],A,E,Q,U,D2,F0,F1,M,Q1,X,D
26  REM EDIT2K,HP36838A,6/74, 5 PROGS:EDIT2K,EDITA,EDITB,EDITC,EDITD
30  DIM C$[72],S$[72],W$[72]
35  CHAIN "$EDIT2K"
40  D2=0
45  FILES *,*,*,*
50  FOR I=1 TO 13 STEP 6
55  IF F$[I,I+6]="      " THEN 65
60  ASSIGN F$[I,I+6],(I-1)/6+1,X
65  NEXT I
70  IF D2 THEN 385
75  F2=Q1=0
80  Q=A[7]
85  IF Z$="" THEN 140
90  A$=""
95  X=1
100  IF Z$[X,X]=";" THEN 130
105  A$[X,X]=Z$[X,X]
110  X=X+1
115  IF Z$[X]#"" THEN 100
120  Z$=""
125  GOTO 210
130  Z$=Z$[X+1]
135  GOTO 210
140  IF  NOT U THEN 190
145  READ #3,1
150  IF  END #3 THEN 180
155  FOR I=1 TO U
160  READ #3;Z$
165  NEXT I
170  U=U+1
175  GOTO 85
180  U=0
185  F$[13,18]="      "
190  PRINT "/";
195  ENTER 255,F,Z$
200  IF F#-256 THEN 205
201  PRINT 
202  PRINT "PLEASE RE-ENTER LAST LINE"
203  GOTO 190
205  GOTO 85
210  B$=""
215  A=1
220  PRINT 
225  GOSUB 9982
230  IF A$[A]="" THEN 85
235  E=0
240  B$=A$[A,A]
245  IF B$="q" THEN 255
250  IF B$#"Q" THEN 265
255  PRINT A$[A+1]
260  GOTO 85
265  A=A+1
270  IF A$[A,A]="q" THEN 280
275  IF A$[A,A]#"Q" THEN 295
280  GOSUB 9986
285  GOTO 315
290  A=A+1
295  IF A$[A,A]<"A" THEN 305
300  IF A$[A,A] <= "z" THEN 290
305  IF A$[A-1,A-1]="q" THEN 315
310  IF A$[A-1,A-1]#"Q" THEN 325
315  Q=1
320  Q1=1
325  GOSUB 9982
330  FOR D2=1 TO LEN(D$)/2
335  IF B$=D$[D2,D2] THEN 360
340  IF B$=D$[D2+LEN(D$)/2,D2+LEN(D$)/2] THEN 360
345  NEXT D2
350  E=1
355  GOTO 999
360  D=D2
365  IF D2>2 THEN 375
370  CHAIN "$EDIT2K",1900
375  D2=D2-2
380  IF D2>4 THEN 455
385  IF D2#4 THEN 400
390  GOTO 1325
395  GOTO 75
400  IF D2#3 THEN 410
405  GOSUB 3000
410  IF D2#1 THEN 425
415  GOSUB 1000
420  GOTO 75
425  GOSUB 8000
430  GOSUB D2-1 OF 2000,3065
435  IF A$[A]="" THEN 75
440  IF A$[A,A]#"," THEN 990
445  GOSUB 9986
450  GOTO 425
455  D2=D2-4
460  IF D2>5 THEN 500
465  IF D2#5 THEN 495
470  GOSUB 8000
475  MAT T=C
480  IF T[6] THEN 495
485  E=18
490  GOTO 999
495  CHAIN "$EDITB",40
500  D2=D2-5
505  IF D2>3 THEN 515
510  CHAIN "$EDITC",420
515  D2=D2-3
520  GOSUB 8000
525  CHAIN "$EDITD",40
990  E=2
999  CHAIN "$EDIT2K",3000
1000  REM < KEEP >
1005  IF  NOT Q1 THEN 1050
1010  T1=F0 MAX F1* NOT (F1>A[8])
1015  IF T1 THEN 1030
1020  E=14
1025  GOTO 999
1030  MAT  PRINT #1,T1;M
1035  MAT  PRINT #1,1;A,B,E,P
1040  PRINT #1;F0,F1,M,T1
1047  GOTO 1325
1050  B$=""
1055  I=LEN(B$)+1
1060  B$[I,I]=A$[A,A]
1065  A=A+1
1070  IF A$[A]="" THEN 1095
1075  IF A$[A,A]="(" THEN 1095
1080  IF A$[A,A]="," THEN 1095
1085  IF A$[A,A]#" " THEN 1055
1090  GOSUB 9982
1095  ASSIGN B$,4,X
1100  GOTO X+1 OF 1130,1126
1120  E=13
1125  GOTO 999
1126  PRINT "WARNING : THIS FILE IS BEING ACCESSED"
1130  READ #4,1
1135  IF  END #4 THEN 1265
1140  IF A$[A,A]="(" THEN 1160
1145  GOSUB 8020
1150  IF C[5]=0 THEN 1250
1155  GOTO 1185
1160  GOSUB 9986
1165  GOSUB 8000
1170  IF A$[A,A]#")" THEN 990
1175  GOSUB 9986
1180  IF C[6]=2 THEN 1145
1185  MAT T=C
1190  MAT P=D
1195  GOSUB 6200
1200  IF A$[A]="" THEN 1230
1205  IF A$[A,A+10]#",UNNUMBERED" THEN 990
1210  PRINT #4;B$, END 
1215  IF T[5] >= D[5] THEN 1250
1220  GOSUB 5100
1225  GOTO 1210
1230  PRINT #4;X,B$, END 
1235  IF T[5] >= D[5] THEN 1250
1240  GOSUB 5100
1245  GOTO 1230
1250  READ #4,1
1255  READ #4,2
1260  RETURN 
1265  E=21
1270  GOTO 999
1275  REM < END >
1325  MAT  PRINT #1,I[63,2];I
1330  GOSUB 6800
1335  STOP 
2000  REM < DELETE >
2005  IF C[5] >= D[5] AND C[6]=0 AND D[6]=0 THEN 2400
2010  MAT T=C
2015  GOSUB 6200
2020  T5=T7=I[63,2]
2025  T6=T8=L[8]
2030  IF LEN(B$)=0 THEN 2090
2035  IF C[4]>LEN(B$) THEN 2085
2040  IF C[5]#D[5] THEN 2070
2045  B$[C[4]]=B$[(D[4] MIN LEN(B$))+1]
2050  IF B$="" THEN 2170
2055  GOSUB 6405
2060  GOTO 2370
2065  GOSUB 6605
2070  IF C[4]=1 THEN 2090
2075  B$[C[4]]=""
2080  GOSUB 6405
2085  T[3]=T[3]+1
2090  IF T[3]=1 THEN 2120
2095  T6=L[10]
2100  IF C[1]=D[1] AND C[2]=D[2] THEN 2115
2105  L[7]=T[3]-1
2110  T[3]=1
2115  T[2]=T[2]+1
2120  IF T[3] <= L[7] THEN 2130
2125  T[3]=1
2130  IF T[2]=1 THEN 2165
2135  T5=I[64,2]
2140  IF C[1]=D[1] THEN 2155
2145  I[63,1]=T[2]-1
2150  T[2]=1
2155  T[1]=T[1]+1
2165  MAT C=T
2170  MAT T=D
2175  GOSUB 6200
2180  T7=I[63,2]
2185  T8=L[8]
2190  IF D[4] >= LEN(B$) THEN 2210
2195  B$=B$[D[4]+1]
2200  GOSUB 6405
2205  D[3]=D[3]-1
2210  T[3]=C[3]
2215  FOR I=C[3] TO D[3]
2220  GOSUB 6305
2225  NEXT I
2230  IF  NOT L[7] THEN 2255
2235  GOSUB 6800
2240  I[D[2],1]=L[1]
2245  D[2]=D[2]-1
2250  T8=L[9]
2255  IF D[2]=I[63,1] AND C[2]=1 THEN 2270
2260  D[1]=D[1]-1
2265  T7=I[64,1]
2270  T[3]=C[3]
2275  IF D[2]<C[2] THEN 2310
2280  FOR I=D[2]+1 TO I[63,1]
2285  I[I-D[2]+C[2]-1,1]=I[I,1]
2290  I[I-D[2]+C[2]-1,2]=I[I,2]
2295  NEXT I
2300  I[63,1]=I[63,1]-D[2]+C[2]-1
2305  MAT  PRINT #1,I[63,2];I
2310  IF  NOT D[1] THEN 2320
2315  IF M[D[1],2]=I[63,2] THEN 2330
2320  M[D[1]+1,1]=I[1,1]
2325  GOTO 2335
2330  M[D[1],1]=I[1,1]
2335  IF C[1]>D[1] THEN 2365
2340  FOR I=D[1]+1 TO M
2345  M[I-D[1]+C[1]-1,1]=M[I,1]
2350  M[I-D[1]+C[1]-1,2]=M[I,2]
2355  NEXT I
2360  M=M-D[1]+C[1]-1
2365  GOSUB 2405
2370  T[5]=D[5]
2375  F=0
2380  GOSUB 5505
2385  T[4]=T[6]=1
2390  T[5]=L[T[3]]
2395  MAT P=T
2400  RETURN 
2405  REM *RETURN FREE SPACE*
2410  IF D[2]<C[2] AND D[1]<C[1] THEN 2580
2415  T9=T8
2420  GOSUB 6700
2425  T2=L[10]
2430  L[10]=F0
2435  T9=T6
2440  GOSUB 6700
2445  F0=L[8]
2450  IF  NOT L[9] THEN 2470
2455  T9=L[9]
2460  GOSUB 6700
2465  L[10]=T2
2470  IF  NOT T2 THEN 2495
2475  T3=L[8]
2480  T9=T2
2485  GOSUB 6700
2490  L[9]=T3
2495  GOSUB 6800
2500  IF D[1]-C[1]<0 THEN 2580
2505  MAT  READ #1,T7;I
2510  T2=I[64,2]
2515  I[64,2]=F0
2517  MAT  PRINT #1,T7;I
2520  MAT  READ #1,T5;I
2525  F0=I[63,2]
2530  IF  NOT I[64,1] THEN 2550
2535  MAT  PRINT #1,I[63,2];I
2540  MAT  READ #1,I[64,1];I
2545  I[64,2]=T2
2550  IF  NOT T2 THEN 2575
2555  T3=I[63,2]
2560  MAT  PRINT #1,I[63,2];I
2565  MAT  READ #1,T2;I
2570  I[64,1]=T3
2575  MAT  PRINT #1,I[63,2];I
2580  RETURN 
3000  REM <REPLACE>
3005  H=V=R=0
3010  FOR C=A TO LEN(A$)-1
3015  IF A$[C,C+1]=",H" THEN 3035
3020  IF A$[C,C+1]=",h" THEN 3035
3025  NEXT C
3030  RETURN 
3035  C1=A
3040  A=C
3045  GOSUB 7505
3050  A$[C]=""
3055  A=C1
3060  RETURN 
3065  IF H=0 THEN 3080
3070  READ #2,1
3075  IF  END #2 THEN 3290
3080  MAT T=C
3085  MAT P=D
3090  Z=V
3095  GOSUB 6200
3100  Z1=A[3] MIN LEN(B$) MAX A[2]
3105  IF Q THEN 3125
3110  PRINT 
3115  GOSUB 7005
3120  PRINT SPA(A[2]-1);B$[A[2],Z1]
3125  IF R AND Z THEN 3135
3130  GOSUB 7005
3135  IF  NOT Z THEN 3165
3140  IF E THEN 999
3145  READ #2;C$
3150  IF R THEN 3210
3155  PRINT TAB((A[2]+8)*(Z1<64));C$
3160  GOTO 3210
3165  PRINT SPA(A[2]-1);
3170  ENTER 255,Y,C$
3175  IF Y=-256 THEN 3165
3180  PRINT 
3185  IF C$[1,1]='25 THEN 3195
3190  IF C$[1,1]#'25 THEN 3210
3195  IF  NOT H THEN 3285
3200  Z=1
3205  GOTO 3125
3210  FOR J=LEN(C$)+1 TO (Z1-A[2]+1)*(LEN(B$) >= A[3])
3215  C$[J,J]=" "
3220  NEXT J
3225  FOR J=LEN(B$)+1 TO A[2]
3230  B$[J,J]=" "
3235  NEXT J
3240  IF LEN(C$) <= A[3]-A[2]+1 THEN 3255
3245  PRINT "WARNING - LINE LENGTH EXCEEDED:REPLACEMENT TRUNCATED"
3250  C$[A[3]-A[2]+2]=""
3255  C$[LEN(C$)+1]=B$[(A[3] MIN LEN(B$))+1]
3260  B$[A[2]]=C$
3265  GOSUB 6400
3270  IF T[5] >= D[5] THEN 3285
3275  GOSUB 5100
3280  GOTO 3100
3285  RETURN 
3290  PRINT 
3295  RETURN 
5100  REM * GET NEXT *
5115  IF T[3]+1 <= L[7] THEN 5171
5120  IF L[10] THEN 5135
5125  E=16
5126  T[6]=0
5130  GOTO 5175
5135  T[3]=0
5140  T[2]=T[2]+1
5145  IF T[2] <= I[63,1] THEN 5165
5150  T[1]=T[1]+1
5155  GOSUB 6010
5160  T[2]=1
5165  T9=L[10]
5170  GOSUB 6700
5171  T[3]=T[3]+1
5172  T[4]=1
5175  GOSUB 6215
5185  RETURN 
5200  REM * GET LAST REC *
5205  IF  NOT L[T[3]] THEN 5260
5207  T[3]=T[3]-1
5210  IF T[3] THEN 5255
5215  T[2]=T[2]-1
5220  IF T[2] THEN 5240
5225  T[1]=T[1]-1
5230  GOSUB 6010
5235  T[2]=I[63,1]
5240  T9=L[9]
5245  GOSUB 6700
5250  T[3]=L[7]
5255  IF L[T[3]] THEN 5270
5260  E=20
5262  T[6]=0
5270  GOSUB 6215
5275  T[4]=LEN(B$)
5285  RETURN 
5500  REM * FIND POS *
5505  IF T[5] THEN 5520
5510  E=20
5515  GOTO 999
5520  T[6]=0
5525  T[1]=1
5530  T1=M
5535  T2=INT((T[1]+T1)/2)
5540  IF T2=T[1] THEN 5570
5545  IF T[5]<M[T2,1] THEN 5560
5550  T[1]=T2
5555  GOTO 5535
5560  T1=T2
5565  GOTO 5535
5570  IF T[5]<M[T1,1] THEN 5580
5575  T[1]=T1
5580  GOSUB 6000
5585  T[2]=1
5590  T1=I[63,1]
5595  T2=INT((T[2]+T1)/2)
5600  IF T2=T[2] THEN 5630
5605  IF T[5]<I[T2,1] THEN 5620
5610  T[2]=T2
5615  GOTO 5595
5620  T1=T2
5625  GOTO 5595
5630  IF T[5]<I[T1,1] THEN 5640
5635  T[2]=T1
5640  GOSUB 6100
5645  FOR I=1 TO L[7]
5647  T[3]=I
5650  IF ABS(T[5]-L[I])<.00001 THEN 5670
5655  IF T[5]<L[I] THEN 5680
5660  NEXT I
5662  GOSUB 5100
5665  GOTO 5680
5670  T[6]=1
5680  GOSUB (T[6] OR  NOT F OR E)+1 OF 5205,6215
5685  E=0
5695  RETURN 
6000  REM * GET I[] *
6005  IF M[T[1],2]=I[63,2] THEN 6020
6010  MAT  PRINT #1,I[63,2];I
6015  MAT  READ #1,M[T[1],2];I
6020  RETURN 
6100  REM * GET RECORDS *
6105  IF I[T[2],2]=L[8] THEN 6120
6110  T9=I[T[2],2]
6115  GOSUB 6700
6120  RETURN 
6200  REM * GET LINE *
6205  GOSUB 6005
6210  GOSUB 6105
6215  GOTO T[3] OF 6220,6230,6240,6250,6260,6270
6220  B$=L$
6225  GOTO 6275
6230  B$=M$
6235  GOTO 6275
6240  B$=N$
6245  GOTO 6275
6250  B$=O$
6255  GOTO 6275
6260  B$=P$
6265  GOTO 6275
6270  B$=Q$
6275  T[5]=X=L[T[3]]
6280  RETURN 
6300  REM * DELETE LINE *
6305  GOTO T[3] OF 6310,6315,6320,6325,6330,6340
6310  L$=M$
6315  M$=N$
6320  N$=O$
6325  O$=P$
6330  P$=Q$
6335  IF T[3]=L[7] THEN 6355
6340  FOR J=T[3]+1 TO L[7]
6345  L[J-1]=L[J]
6350  NEXT J
6355  L[7]=L[7]-1
6360  RETURN 
6400  REM * REPLACE LINE *
6405  GOTO T[3] OF 6410,6420,6430,6440,6450,6460
6410  L$=B$
6415  GOTO 6465
6420  M$=B$
6425  GOTO 6465
6430  N$=B$
6435  GOTO 6465
6440  O$=B$
6445  GOTO 6465
6450  P$=B$
6455  GOTO 6465
6460  Q$=B$
6465  RETURN 
6500  REM * FIND B *
6505  MAT T=CON
6510  GOSUB 6205
6515  GOSUB 5100
6520  IF  NOT E THEN 6540
6525  E=0
6540  MAT B=T
6545  RETURN 
6600  REM * FIND E *
6605  T[1]=M
6610  GOSUB 6005
6615  T[2]=I[63,1]
6620  GOSUB 6105
6625  T[3]=L[7]
6630  GOSUB 6215
6635  T[4]=LEN(B$)
6640  T[6]=1
6645  MAT E=T
6650  RETURN 
6700  GOSUB 6800
6705  GOSUB 6900
6710  RETURN 
6800  MAT  PRINT #1,L[8];L
6805  PRINT #1;L$,M$,N$,O$,P$,Q$
6810  RETURN 
6900  MAT  READ #1,T9;L
6905  READ #1;L$,M$,N$,O$,P$,Q$
6910  RETURN 
7000  REM * PRINT NO. *
7005  Y=INT(X)
7010  IF Y THEN 7025
7015  PRINT SPA(4);
7020  GOTO 7030
7025  PRINT  USING "#,4D";Y
7030  Y=X-INT(X)+.001
7040  GOTO ((Y*10)-INT(Y*10))>.05 OF 7070
7045  GOTO Y>.005 OF 7060
7050  PRINT SPA(5);
7055  RETURN 
7060  PRINT  USING "#,.DXXX";Y-INT(Y)
7065  RETURN 
7070  PRINT  USING "#,.DDXX";Y-INT(Y)
7075  RETURN 
7500  REM * [,HOLD[Q][,NOW]] *
7505  H=V=0
7510  R=Q
7515  IF A$[A]="" THEN 7605
7520  IF A$[A,A]#"," THEN 990
7525  GOSUB 9986
7527  IF A$[A,A+3]="hold" THEN 7535
7530  IF A$[A,A+3]#"HOLD" THEN 990
7535  IF F$[7,12]#"      " THEN 7550
7540  E=11
7545  GOTO 999
7550  H=1
7555  A=A+4
7560  GOSUB 9982
7562  IF A$[A,A]="q" THEN 7570
7565  IF A$[A,A]#"Q" THEN 7580
7570  R=1
7575  GOSUB 9986
7580  IF A$[A]="" THEN 7605
7585  IF A$[A,A]#"," THEN 990
7590  GOSUB 9986
7592  IF A$[A,A+2]="now" THEN 7600
7595  IF A$[A,A+2]#"NOW" THEN 990
7600  V=1
7605  RETURN 
8000  REM <RANGE>
8004  C5=A
8005  P[6]=1
8007  IF A$[A,A+2]="all" THEN 8012
8008  IF A$[A,A+2]#"ALL" THEN 8040
8012  A=A+3
8016  GOSUB 9982
8020  GOSUB 6505
8024  MAT C=B
8028  GOSUB 6605
8032  MAT D=E
8036  GOTO 8280
8040  W$=""
8044  F=0
8048  MAT R=ZER
8052  MAT D=ZER
8056  MAT T=ZER
8060  GOSUB 8300
8064  MAT C=T
8068  IF T[1]>0 THEN 8120
8072  IF T[1]<0 THEN 8096
8076  MAT C=P
8088  C[6]=0
8090  MAT D=C
8092  GOTO 8280
8096  W$=S$
8100  C[2]=A
8104  IF A$[A]="" THEN 8160
8108  IF A$[A,A]="/" THEN 8124
8112  A=A+1
8116  GOTO 8104
8120  IF A$[A,A]#"/" THEN 8160
8124  F=1
8126  IF D=11 THEN 8840
8128  MAT R=ZER
8132  MAT T=ZER
8136  GOSUB 9986
8140  GOSUB 8300
8142  IF  NOT T[1] THEN 8268
8144  MAT D=T
8148  IF D[4] THEN 8160
8152  GOSUB 6205
8156  D[4]=LEN(B$) MIN A[3]
8160  IF C[1]>0 THEN 8224
8164  F=(D=11)
8168  IF D[1] THEN 8180
8172  MAT D=E
8176  D[1]=0
8180  S$=W$
8184  GOSUB 9700
8188  IF A=C[2] THEN 8200
8192  C[3]=A
8196  A=C[2]
8200  IF D=11 THEN 8204
8202  MAT T=R
8204  GOSUB 8530
8208  GOSUB 8345
8212  IF A>C[3] THEN 8220
8216  A=C[3]
8220  MAT C=T
8224  IF D[1] THEN 8244
8228  MAT D=C
8230  D[6]=0
8232  MAT T=D
8236  GOSUB 6200
8240  D[4]=LEN(B$) MIN A[3] MAX C[4]
8244  IF C[4] THEN 8252
8248  C[4]=A[2]
8252  IF  NOT D[4] THEN 8232
8256  IF C[5]<D[5] THEN 8280
8260  IF C[5]>D[5] THEN 8268
8264  IF C[4] <= D[4] THEN 8280
8268  A=C5
8272  E=4
8276  GOTO 999
8280  RETURN 
8300  REM <POSITION>
8305  GOSUB 8400
8310  IF T[1]<0 THEN 8370
8345  IF A$[A,A]#"(" THEN 8370
8350  GOSUB 9986
8355  GOSUB 8600
8360  IF A$[A,A]#")" THEN 990
8365  GOSUB 9986
8370  RETURN 
8400  REM <RECORD POSITION>
8405  S$=""
8415  C3=A
8417  IF A$[A,A+4]="first" THEN 8422
8420  IF A$[A,A+4]#"FIRST" THEN 8445
8422  GOSUB 6505
8425  MAT T=B
8430  A=A+5
8435  GOSUB 9982
8440  GOTO 8530
8445  IF A$[A,A+3]="LAST" THEN 8447
8446  IF A$[A,A+3]#"last" THEN 8470
8447  GOSUB 6605
8450  MAT T=E
8455  A=A+4
8460  GOSUB 9982
8465  GOTO 8530
8470  IF A$[A,A]#"*" THEN 8490
8475  MAT T=P
8480  GOSUB 9986
8485  GOTO 8530
8490  GOSUB 9000
8495  IF  NOT F2 THEN 8520
8500  T[5]=N
8505  GOSUB 5500
8515  GOTO 8530
8520  GOSUB 9500
8525  RETURN 
8530  GOSUB 8900
8531  IF  NOT N THEN 8543
8532  FOR I=1 TO ABS(N)
8533  IF N<0 THEN 8536
8534  GOSUB 5100
8535  GOTO 8537
8536  GOSUB 5200
8537  IF E THEN 999
8538  NEXT I
8543  RETURN 
8600  REM <COLUMN POSITION>
8605  C3=A
8610  GOSUB 6200
8611  GOSUB 8615
8613  GOTO 8735
8615  IF A$[A,A]#"*" THEN 8635
8620  GOSUB 9986
8625  T[4]=P[4]
8630  GOTO 8720
8635  IF A$[A,A+3]="LAST" THEN 8640
8637  IF A$[A,A+3]#"last" THEN 8657
8640  T[4]=LEN(B$)
8645  A=A+4
8650  GOSUB 9982
8655  GOTO 8720
8657  IF A$[A,A+3]="left" THEN 8665
8660  IF A$[A,A+3]#"LEFT" THEN 8675
8665  T[4]=A[2]
8670  GOTO 8645
8675  IF A$[A,A+4]="RIGHT" THEN 8680
8677  IF A$[A,A+4]#"right" THEN 8700
8680  T[4]=A[3]
8685  A=A+5
8690  GOSUB 9982
8695  GOTO 8720
8700  GOSUB 8950
8705  IF  NOT F2 THEN 8730
8710  T[4]=N
8720  GOSUB 8900
8725  T[4]=T[4]+N
8730  RETURN 
8735  GOSUB 8900
8745  C=T[4] MAX 1
8750  IF  NOT N OR  NOT F2 THEN 8820
8755  FOR I=1 TO ABS(N)
8760  C=C+SGN(N)
8765  IF A[2] <= C AND C <= A[3] MIN LEN(B$) THEN 8805
8770  GOTO SGN(N)+1 OF 8775,8780
8775  GOSUB 5200
8777  GOTO 8785
8780  GOSUB 5100
8785  C=1 MAX A[2]
8787  IF E THEN 999
8790  IF N>0 THEN 8765
8795  C=LEN(B$)
8800  GOTO 8765
8805  IF B$[C,C]=" " THEN 8760
8810  NEXT I
8812  T[5]=X
8814  GOSUB 5500
8816  T[4]=C
8820  IF T[4] >= A[2] AND T[4] <= A[3] THEN 8855
8825  A=C3
8830  E=6
8835  GOTO 999
8840  E=3
8845  A=C3
8850  GOTO 999
8855  RETURN 
8900  REM <SIGNED INTEGER>
8905  S=-1
8910  N=0
8915  A=A+1
8920  IF A$[A-1,A-1]="-" THEN 8960
8925  IF A$[A-1,A-1]="+" THEN 8955
8930  A=A-1
8935  RETURN 
8950  REM <INTEGER>
8955  S=1
8960  GOSUB 9000
8965  N=N*S
8970  IF N=INT(N) THEN 8990
8975  E=8
8985  GOTO 999
8990  RETURN 
9000  REM <NUMBER>
9010  N=D3=F2=0
9015  P=1
9020  GOSUB 9982
9025  C4=A
9030  GOSUB 9100
9035  P=1
9040  IF A$[A,A]#"." THEN 9065
9045  A=A+1
9050  D3=N
9055  N=0
9060  GOSUB 9100
9065  N=N/P+D3
9070  GOSUB 9982
9075  IF N<10000 THEN 9095
9080  A=C4
9085  E=7
9090  GOTO 999
9095  RETURN 
9100  FOR I=1 TO 10
9105  IF A$[A,A]=Y$[I,I] THEN 9120
9110  NEXT I
9115  RETURN 
9120  N=N*10+I-1
9125  P=P*10
9130  F2=1
9135  A=A+1
9140  GOTO 9100
9500  REM <STRING>
9505  S$=""
9520  IF A$[A,A]<"(" THEN 9530
9525  IF A$[A,A]<"0" THEN 9572
9530  IF A$[A,A]<" " THEN 9572
9535  IF A$[A,A]>"^" THEN 9572
9540  IF A$[A,A]>"Z" THEN 9560
9545  IF A$[A,A]<"0" THEN 9560
9550  IF A$[A,A] >= "A" THEN 9572
9555  IF A$[A,A] <= "9" THEN 9572
9560  FOR I=A+1 TO LEN(A$)
9565  IF A$[A,A]=A$[I,I] THEN 9580
9570  NEXT I
9572  E=9
9573  RETURN 
9575  E=10
9576  GOTO 999
9580  T[1]=-1
9585  IF I=A+1 THEN 9595
9590  S$=A$[A+1,I-1]
9595  A=I+1
9600  GOSUB 9982
9605  IF  NOT F THEN 9650
9610  MAT D=E
9615  GOSUB 9700
9650  RETURN 
9700  REM <STRING SEARCH>
9745  MAT T=P
9750  MAT R=P
9755  IF S$="" THEN 9900
9760  GOSUB 6200
9765  C$=S$
9775  IF T[4]>LEN(B$) OR LEN(B$)=0 THEN 9835
9780  Z=LEN(C$) MIN (LEN(B$)-T[4]+1) MAX 1
9785  IF C$[1,Z]#B$[T[4],T[4]+Z-1] THEN 9820
9787  T[4]=T[4]+Z-1
9789  GOSUB 9890
9795  C$=C$[Z+1]
9800  IF C$="" THEN 9900
9805  GOSUB 9860
9815  GOTO 9775
9820  T[4]=T[4]+1
9822  GOSUB 9890
9825  GOTO 9847
9835  MAT T=R
9837  GOSUB 9860
9847  MAT R=T
9849  GOTO 9765
9850  E=17
9855  GOTO 999
9860  GOSUB 5100
9861  IF E THEN 9850
9865  IF B$="" THEN 9860
9890  IF (T[5] >= D[5] AND T[4]>D[4]) OR T[5]>D[5] THEN 9850
9895  RETURN 
9900  R[6]=T[6]=1
9925  RETURN 
9980  REM <MOVE POINTERS>
9982  IF A>LEN(A$) THEN 9990
9983  IF A$[A]="" THEN 9990
9984  IF A$[A,A]#" " THEN 9990
9986  A=A+1
9988  GOTO 9982
9990  RETURN 
9999  END 
