Listing of file='DDA.143' on disk='vmedia/701-2720C.wvd.zip'
# Sector 469, program filename = 'DDA.143'
7169 %DDA.143, RELEASE X01, (AUG 03, 81) FIND RECORD KEY OCCURANCE
7173 DEFFN'143(N0$,M$,N3)
: N3(4)=SGN(N3)
: N3=ABS(N3)
: MAT SEARCH"EQGTGELTLE",=M$TO N2$()STEP 2
: IF N2$(1)>HEX(0000)THEN 7176
: M=54
: GOTO 7342
7176 J0$="E G H L M "
: N2$=STR(J0$,VAL(N2$(1),2),1)
: M=52
: N1$()=ALL(00)
: N2=0
: N5=0
: N3(6)=0
: IF N1(9)=N3THEN GOTO 7183
: DATA LOAD DA T#N0,(N(N3,3))N0(),N9$
: ERRORM=ERR
: GOTO 7342
7182 N1(9)=N3
7183 N3(5)=INT((N0(6)*249-2)/N0(5))
: IF N0(2)=0THEN 7239
: N3(2)=1
: N3(3)=N0(2)
: N5=N1(9+N3)
: IF N5=0OR N5>N0(2)THEN 7188
: MAT COPY N5$()<(N3-1)*N0(6)*249+1,N0(6)*249>TO N0$()<1,N0(6)*249>
: GOTO 7191
7188 IF N3(3)-N3(2)=1AND N5=N3(2)THEN N3(2)=N3(2)+1
: N5=N3(2)+INT((N3(3)-N3(2))/2)
: % PRINTUSING "Point #### Beg #### End ####",N5;N3(2);N3(3)
7189 GOSUB '149(N(N3,3)+N0(1),N0(6),N5)
: IF N3(3)-N3(2)=1THEN N3(2)=N3(3)
7191 MAT COPY N0$()<1,N0(5)>TO N1$(2)
: IF STR(N1$(2),,N0(5)-6)<=STR(N0$,,N0(5)-6)THEN N3(2)=N5
: IF STR(N1$(2),,N0(5)-6)>=STR(N0$,,N0(5)-6)THEN N3(3)=N5
: MAT COPY N0$()<(N3(5)-1)*N0(5)+1,N0(5)>TO N1$(2)
: IF STR(N1$(2),,N0(5)-6)>=STR(N0$,,N0(5)-6)THEN N3(3)=N5
: IF STR(N1$(2),,N0(5)-6)<=STR(N0$,,N0(5)-6)THEN N3(2)=N5
7197 %IF N3(3)-N3(2)<>N2THEN 7199: N3(3)=N3(3)-1: GOTO 7200
7198 N2=N3(3)-N3(2)
: IF N3(2)<N3(3)THEN 7188
: ON POS("EGHLM"=N2$)GOSUB 7206,7212,7218,7223,7230
: GOTO 7235
7206 GOSUB 7309
: J8=VAL(N2$(1),2)
: IF J8=0THEN 7210
: GOSUB 7233
: IF J9=1THEN 7210
: GOSUB 7336
7210 RETURN
7212 GOSUB 7311
: J6=0
: M=75
7213 J6=J6+1
: J8=VAL(N2$(J6),2)
: IF J8=0THEN 7214
: GOSUB 7233
: IF J9=1THEN 7213
: IF STR(N0$(),J8,1)=HEX(FF)THEN 7216
: GOTO 7215
7214 N5=N5+1
: GOSUB '149(N(N3,3)+N0(1),N0(6),N5)
: IF STR(N0$(),,1)<>HEX(FF)THEN 7212
: M=75
: GOTO 7216
7215 GOSUB 7336
7216 RETURN
7218 GOSUB 7206
: IF M<>0THEN GOSUB 7212
: RETURN
7223 GOSUB 7313
7224 J6=0
: IF N2$(1)=HEX(0000)THEN 7227
7225 J6=J6+1
: IF N2$(J6+1)>HEX(0000)THEN 7225
: J8=VAL(N2$(J6),2)
: GOSUB 7233
: IF J9=0THEN 7226
: N2$(J6)=HEX(0000)
: GOTO 7224
7226 GOSUB 7336
: GOTO 7228
7227 N5=N5-1
: IF N5<1THEN 7228
: GOSUB '149(N(N3,3)+N0(1),N0(6),N5)
: GOTO 7223
7228 RETURN
7230 GOSUB 7206
: IF M<>0THEN GOSUB 7223
: RETURN
7233 IF STR(N0$(),J8+N0(5)-3,2)=HEX(FFFF)THEN J9=1
: ELSE J9=0
: RETURN
7235 IF M>0AND M<>52AND M<>75THEN 7342
: IF M=0AND POS("EHM"=N2$)>0AND STR(N0$,,N0(5)-6)=STR(N1$(1),,N0(5)-6)THEN
7342
7239 IF N0(4)=0THEN 7342
: %PRINT HEX(020400020E);"..ENTER ANNEX AREA..";HEX(0F);
7240 IF M<>0THEN 7241
: IF POS("LM"=N2$)>0THEN 7242
: IF STR(N1$(1),N0(5)-5,2)>HEX(0000)THEN 7243
: ELSE GOTO 7342
7241 IF POS("GH"=N2$)=0THEN 7242
: N1$(1)=ALL(FF)
: M=75
: GOTO 7243
7242 IF M=0THEN 7243
: IF POS("LM"=N2$)=0THEN 7243
: N1$(1)=ALL(00)
: M=52
: GOTO 7243
7243 N1(8)=0
: MAT SEARCHN3$(),=STR(N0$,,2)TO N2$()STEP 4
: I2=VAL(N2$(1),2)
: IF I2>0THEN 7246
: GOSUB '149(N(N3,3)+1,1,1)
: MAT COPY N0$()TO N3$()
: MAT SEARCHN3$(),=STR(N0$,,2)TO N2$()STEP 4
: I2=VAL(N2$(1),2)
: %PRINT HEX(0E);"PREFIX STACK LOADED";
7246 IF I2=0THEN 7342
: N5=VAL(STR(N3$(),I2+2),2)
7248 GOSUB '149(N(N3,3)+N0(1),N0(6),N5)
: IF N1(3)=0THEN GOTO 7250
: ELSE M=N1(3)
: GOTO 7342
7250 ON POS("EGHLM"=N2$)GOTO 7253,7259,7268,7282,7291
7253 GOSUB 7309
: N6=0
7254 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7257
: GOSUB 7233
: IF J9=1THEN 7254
: N2=1
: GOSUB 7336
7257 GOTO 7305
7259 GOSUB 7311
: N6=0
7261 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7266
: GOSUB 7233
: IF J9=1THEN 7261
: GOSUB 7322
: GOTO 7261
7266 GOTO 7305
7268 GOSUB 7309
: N6=0
7269 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7273
: GOSUB 7233
: IF J9=1THEN 7269
: GOSUB 7336
: GOTO 7280
7273 GOSUB 7311
: N6=0
7275 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7280
: GOSUB 7233
: IF J9=1THEN 7275
: GOSUB 7322
: GOTO 7275
7280 GOTO 7305
7282 GOSUB 7313
: N6=0
7284 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7289
: GOSUB 7233
: IF J9=1THEN 7284
: GOSUB 7329
: GOTO 7284
7289 GOTO 7305
7291 GOSUB 7309
: N6=0
7292 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7296
: GOSUB 7233
: IF J9=1THEN 7292
: GOSUB 7336
: GOTO 7305
7296 GOSUB 7313
: N6=0
7298 N6=N6+1
: J8=VAL(N2$(N6),2)
: IF J8=0THEN 7305
: GOSUB 7233
: IF J9=1THEN 7298
: GOSUB 7329
: GOTO 7298
7305 IF N1(8)=1THEN 7342
: I0=VAL(STR(N0$(),N0(6)*249-1),2)
: IF I0=0THEN 7342
: N5=I0
: GOTO 7248
7309 MAT SEARCHN0$()<1,N3(5)*N0(5)>,=STR(N0$,,N0(5)-6)TO N2$()STEP N0(5)
: RETURN
7311 MAT SEARCHN0$()<1,N3(5)*N0(5)>,>STR(N0$,,N0(5)-6)TO N2$()STEP N0(5)
: RETURN
7313 MAT SEARCHN0$()<1,N3(5)*N0(5)>,<STR(N0$,,N0(5)-6)TO N2$()STEP N0(5)
: RETURN
7315 MAT COPY N0$()<1,N0(6)*249>TO N5$()<(N3-1)*N0(6)*249+1,N0(6)*249>
: N(N3,1)=N5
: N(N3,2)=J8
: N1(9+N3)=N5
: M=0
: RETURN
7322 MAT COPY N0$()<J8,N0(5)>TO N1$(2)
: IF STR(N1$(2),,N0(5)-6)>=STR(N1$(1),,N0(5)-6)THEN 7326
: IF STR(N1$(2),,N0(5)-6)=STR(N0$,,N0(5)-6)THEN 7326
: GOSUB 7336
: N1(8)=0
: N2=1
7326 RETURN
7329 MAT COPY N0$()<J8,N0(5)>TO N1$(2)
: IF STR(N1$(2),,N0(5)-6)<=STR(N1$(1),,N0(5)-6)THEN 7333
: IF STR(N1$(2),,N0(5)-6)=STR(N0$,,N0(5)-6)THEN 7333
: GOSUB 7336
: N1(8)=0
: N2=1
7333 RETURN
7336 IF N3(4)=1THEN GOSUB 7315
: N3(6)=N5
: N3(7)=J8
: MAT COPY N0$()<J8,N0(5)>TO N1$(1)
: N1(8)=1
: M=0
: RETURN
7342 IF M=0AND N3(4)=1THEN MAT COPY N1$(1)<,N0(5)-6>TO N0$
: RETURN