Listing of file='HLDA010K' on disk='vmedia/letter_editor.wvd.zip'
# Sector 351, program filename = 'HLDA010K'
0010 REM ***** HLDA010K - REVISED 1610 08/18/76 ***** COPYRIGHT WANG LABS, 197
6
0030 DIM A$2,B$(80)1,B1$24,B2$24,B3$24,B4$18,B5$(16),C$(80)1,C1$1,C2$1,B5$2,B6
$2,N$(16)
: DIM D$1,E$(1)2,G$(1)10,H$(25)2,I$(11)10,K1$(16),K2$(16)
: DIM P$(8)40,P1$(200)1,P2$(200)1,P3$(200)1,T1$(200)1,V$(1)
: DIM Q$64,Q1$64,Q2$64,S$(2)40
: GOTO 5440
0191 $GIO/005(400DA000,I0$)P1$()<1,W2>
: RETURN
0215 GOSUB 3740
0225 GOSUB 600
: IF K1=0THEN 270
0240 MAT SEARCHP1$()<1,W0>,<>B$TO E$()
: IF E$(1)=A$THEN 270
: GOSUB 820
: GOTO 240
0270 MAT SEARCHP$()<1,W>,<>B$TO E$()
: IF E$(1)=A$THEN 355
0295 GOSUB 3200
: IF D>0THEN 325
: GOSUB 820
: GOTO 295
0325 GOSUB 3670
: MAT SEARCHP$()<1,W>,<>B$TO E$()
: IF E$(1)=A$THEN 215
: GOTO 295
0355 GOSUB 1270
: GOTO 215
0600 IF L9=1THEN 770
: C1$=P$(1)
: $TRAN(C1$,B1$)R
: IF C1$=HEX(FF)THEN 770
: MAT COPY -P1$()<1,W0>TO C$()
: MAT SEARCHC$(),<>B$TO E$()
: D=VAL(STR(E$(1),2))
: IF D=0THEN 700
: C2$=C$(D)
: $TRAN(C2$,B2$)R
: IF C2$=HEX(FF)THEN 770
0700 C1$=P1$(1)
: $TRAN(C1$,B3$)R
: IF C1$=HEX(FF)THEN 770
: K1=0
: RETURN
0770 K1=1
: RETURN
0820 C1$=P1$(1)
: $TRAN(C1$,B4$)R
: ON VAL(C1$)GOTO 870,1730,1760,1940
0870 L2=L1
: MAT COPY P1$()TO P2$()
: MAT COPY P1$()TO P3$()
: $TRAN(P2$(),K1$())
: $TRAN(P3$(),K2$())
: D=0
0950 MAT SEARCHP2$()<D+1,W0-D>,<B$TO E$()
: IF E$(1)=A$THEN 1020
: D=D+VAL(STR(E$(1),2))
: ON VAL(P2$(D))GOSUB 2140,2190,2330,2370,2400,2430,2550,2530
: GOTO 950
1020 IF P1$(1)=HEX(84)THEN 2610
1040 IF L9<2THEN 1210
: MAT COPY -P3$()<L0,W0-L0+1>TO P2$()
: D$=HEX(03)
: MAT SEARCHP2$(),<D$TO E$()
: IF E$(1)=A$THEN 1540
: D=VAL(STR(E$(1),2))
: L4=W0-D+1
: $TRAN(P1$()<L4,W0-L4+1>,Y$)R
: IF P3$(L4)=HEX(01)THEN 2750
: IF P3$(L4)=HEX(02)THEN 2700
: STOP "DE-BUG ERROR 1910"
1180 IF L9<3THEN 1210
: IF K1=0THEN 1200
: MAT SEARCHP1$()<W0+1,200-W0>,<>B$TO E$()
: IF E$(1)=A$THEN 1210
1200 GOSUB 2900
1210 MAT COPY -P1$()<1,W1>TO P2$()
: MAT SEARCHP2$(),<>B$TO E$()
: IF E$(1)=A$THEN 1270
: D=W1-VAL(STR(E$(1),2))+1
: $GIO#5(A000,I0$)S$()<1,M1>
: D$=HEX(80)
: MAT SEARCHP1$()<1,W1>,>D$TO E$()
: IF E$(1)=A$THEN 1275
: ON T5GOTO 1450
: FOR K=1TO D
: IF P1$(K)>=HEX(80)THEN 1261
: $GIO#5(A000,I0$)P1$(K)
: NEXT K
: GOTO 1280
1261 AND (P1$(K),7F)
: IF P1$(K)=" "THEN 1267
: $GIO#5(405F4008A000,I0$)P1$(K)
1263 NEXT K
: GOTO 1280
1267 $GIO#5(405F,I0$)
: GOTO 1263
1270 $GIO#5(400A,I0$)
: $GIO/005(400D400A,I0$)
: GOTO 1285
1275 $GIO#5(A000,I0$)P1$()<1,D>
1280 $GIO#5(400D,I0$)
: $GIO/005(400D400A,I0$)
1285 ON P9GOTO 1290
: $GIO#5(400A,I0$)
: $GIO/005(400A,I0$)
: L3=L3+1
1290 IF L9>1THEN 1320
: INIT(20)P1$()
: GOTO 1380
1320 E$(1)=" "
: MAT COPY E$()TO P1$()<1,W0>
: MAT COPY P1$()<W0+1,200-W0>TO P1$()<L1,201-L1>
: MAT SEARCHP1$()<L1,201-L1>,<>B$TO E$()
: D=VAL(STR(E$(1),2))
: IF D=0THEN 1380
: MAT COPY P1$()<L1+D-1,201-L1-D>TO P1$()<L1,201-L1>
1380 L3=L3+1
: IF L3<L8THEN 1420
1391 IF T5=2THEN 1395
: $GIO#5(400C,I0$)
: $GIO/005(400A,I0$)
: GOTO 1410
1395 ON P0GOTO 1425
: FOR K=1TO 66-L3
: $GIO#5(400A,I0$)
: NEXT K
: $GIO/005(400A,I0$)
1410 L3=0
1420 RETURN
1425 INPUT "CHANGE THE PAPER IN THE TYPEWRITER AND PRESS RETURN (EXEC).",X$
: GOTO 1410
1450 $GIO#5(A000400D4000,I0$)P1$()<1,D>
: $GIO/005(400A,I0$)
: $TRAN(P1$()<1,W1>,B5$())
: $GIO#5,(A000,I0$)S$()<1,M1>
: $GIO#5,(A000400D,I0$)P1$()<1,W0>
: L3=L3+1
: GOTO 1290
1540 PRINT HEX(03),"NO ADJUST"
: PRINT "POSITION CURSOR UNDER FIRST CHARACTER OF NEXT LINE."
: PRINT "PRESS SPACE FOR NEXT LETTER, BACKSPACE TO BACK UP."
: PRINT "PRESS ";HEX(22);"-";HEX(22);" TO HYPHENATE AND"
: PRINT "PRESS RETURN (EXEC) TO PUT WORD ON NEXT LINE."
: PRINT
1570 $GIO/005,(A000400D,I0$)P1$()<1,W0>
: FOR M=1TO L0
: PRINT HEX(09);
: NEXT M
1600 KEYIN K$,1605,1600
: GOTO 1600
1605 IF K$<>" "THEN 1630
: IF M>=W0-1THEN 1600
: M=M+1
: PRINT HEX(09);
: GOTO 1600
1630 IF K$<>HEX(08)THEN 1645
: M=M-1
: PRINT HEX(08);
: GOTO 1600
1645 L4=M+1
: D=W0-L4+1
: $GIO/005(4003,I$)
: IF K$="-"THEN 2700
: L4=L4-1
: D=D+1
: IF K$=HEX(0D)THEN 2750
: GOTO 1600
1730 INIT(20)P1$()
: GOSUB 191
: RETURN
1760 MAT COPY P1$()<2,3>TO G$()
: CONVERT G$(1)TO L0
: MAT COPY P1$()<6,3>TO G$()
: CONVERT G$(1)TO W0
: W2=W0
: IF W2<=WTHEN 1800
: W2=W
1800 IF L9=1THEN 1820
: W1=W0
1820 MAT COPY P1$()<38,3>TO G$()
: CONVERT G$(1)TO I
: J=10
: INIT(00)T1$()
1860 IF I=0THEN 1730
: MAT COPY P1$()<J,3>TO G$()
: CONVERT G$(1)TO K
: T1$(K)=HEX(01)
: I=I-1
: J=J+4
: GOTO 1860
1940 IF P1$(2)="s"THEN 1980
: IF P1$(2)="d"THEN 2000
: IF P1$(2)="p"THEN 2020
: STOP "ILLEGAL PAGE COMMAND"
1980 P9=1
: GOTO 1730
2000 P9=2
: GOTO 1730
2020 GOSUB 1391
: GOTO 1730
2140 MAT COPY P1$()<D+1,200-D>TO P1$()<D,201-D>
: GOSUB 191
: MAT COPY P2$()<D+1,200-D>TO P2$()<D,201-D>
: MAT COPY P3$()<D+2,199-D>TO P3$()<D+1,200-D>
: RETURN
2190 D$=HEX(01)
: MAT SEARCHT1$()<D,W0-D+1>,=D$TO E$()
: T=D+VAL(STR(E$(1),2))
: IF T=DTHEN 2280
: MAT COPY -P1$()<D+1,201-T>TO -P1$()<D,201-D>
: GOSUB 191
: MAT COPY -P2$()<D+1,201-T>TO -P2$()<D,201-D>
: MAT COPY -P3$()<D+1,201-T>TO -P3$()<D,201-D>
: L2=T
: RETURN
2280 G$(1)="NO TABSTOPS"
: MAT COPY G$()TO P1$()<D,201-D>
: GOSUB 191
: RETURN CLEAR
2310 GOTO 1040
2330 GOSUB 2190
: L1=L2
: RETURN
2370 P1$(D)="-"
: RETURN
2400 P1$(D)=" "
: RETURN
2430 IF D=1THEN 2480
: MAT COPY P1$()<D+1,200-D>TO P1$()<D-1,202-D>
: GOSUB 191
: MAT COPY P2$()<D+1,200-D>TO P2$()<D-1,202-D>
: MAT COPY P3$()<D+1,200-D>TO P3$()<D-1,202-D>
: D=D-2
: RETURN
2480 MAT COPY P1$()<2,199>TO P1$()
: GOSUB 191
: MAT COPY P2$()<2,199>TO P2$()
: MAT COPY P3$()<2,199>TO P3$()
: RETURN
2530 L1=1
2550 MAT COPY P1$()<D+1,200-D>TO P1$()<D,201-D>
: GOSUB 191
: MAT COPY P2$()<D+1,200-D>TO P2$()<D,201-D>
: MAT COPY P3$()<D+1,200-D>TO P3$()<D,201-D>
: RETURN
2610 MAT COPY -P1$()TO P2$()
: MAT SEARCHP2$(),<>B$TO E$()
: D=(W0+VAL(STR(E$(1),2))-200)/2
: MAT COPY P1$()<2,199>TO P2$()
: INIT(20)P1$()
: MAT COPY P2$()TO P1$()<D+1,200-D>
: GOSUB 191
: GOTO 1040
2700 MAT COPY -P1$()<L4,201-L4-D>TO -P1$()<L4,201-L4>
: MAT COPY -P3$()<L4,201-L4-D>TO -P3$()<L4,201-L4>
: P1$(L4)="-"
: GOSUB 191
: GOTO 1180
2750 MAT COPY -P1$()<L4+1,200-L4-D>TO -P1$()<L4+1,200-L4>
: GOSUB 191
: MAT COPY -P3$()<L4+1,200-L4-D>TO -P3$()<L4+1,200-L4>
: MAT COPY -P3$()<L2,L4-L2+1>TO P2$()
: D$=HEX(01)
: MAT SEARCHP2$()<1,L4-L2+1>,<>D$TO E$()
: IF E$(1)=A$THEN 1210
: L4=L4-VAL(STR(E$(1),2))+1
: MAT COPY P3$()<L2,L4-L2+1>TO P2$()
2840 MAT SEARCHP2$()<1,L4-L2+1>,=D$TO E$()
: IF E$(1)=A$THEN 1210
: GOTO 1180
2900 D$=HEX(01)
: L=L2
: MAT SEARCHP3$()<L,L4-L+1>,<>D$TO E$()
: IF E$(1)=A$THEN 3140
: L=L+VAL(STR(E$(1),2))-1
: MAT SEARCHP3$()<L,L4-L+1>,=D$TO E$()
: IF E$(1)=A$THEN 3140
: L=L2+INT(ABS(RND(1))*(L4-L2))
2990 IF L4=W0THEN 3140
: MAT SEARCHP3$()<L,L4-L+1>,<>D$TO E$()
: IF E$(1)=A$THEN 3160
: L=L+VAL(STR(E$(1),2))-1
: MAT SEARCHP3$()<L,L4-L+1>,=D$TO E$()
: IF E$(1)=A$THEN 3160
: L=L+VAL(STR(E$(1),2))-1
: MAT COPY -P1$()<L,W0-L>TO -P1$()<L,W0-L+1>
: GOSUB 191
: MAT COPY -P3$()<L,W0-L>TO -P3$()<L,W0-L+1>
: L=L+1
: L4=L4+1
: GOTO 2990
3140 RETURN
3160 L=L2
: GOTO 2990
3200 MAT COPY -P1$()TO P2$()
: MAT SEARCHP2$(),<>B$TO E$()
: IF E$(1)>A$THEN 3270
: P=L1
: GOTO 3490
3270 D=VAL(STR(E$(1),2))
: P=203-D
: IF P2$(D)="."THEN 3370
: IF P2$(D)="-"THEN 3400
: IF P2$(D)=HEX(80)THEN 3400
: GOTO 3490
3370 P=P+1
: GOTO 3490
3400 P=P-2
3490 IF P>W0+20THEN 3630
: D=W0-P+21
: D=(D+W-ABS(D-W))/2
: MAT COPY -P$()<1,D>TO P3$()
: $TRAN(P3$(),K2$())
: D$=HEX(03)
: MAT SEARCHP3$()<1,D>,<D$TO E$()
: IF E$(1)=A$THEN 3630
: D=D-VAL(STR(E$(1),2))+1
: MAT COPY P$()<D,1>TO E$()
: IF E$(1)=" "THEN 3620
: E$(1)=HEX(80)
: MAT COPY E$()TO P$()<D,1>
3620 RETURN
3630 D=0
: RETURN
3670 MAT COPY P$()<1,D>TO P1$()<P,D>
: GOSUB 191
: IF L9>1THEN 3680
: $TRAN(P1$(),H$)R
3680 MAT SEARCHP$()<D+1,W-D>,<>B$TO E$()
: D=D+VAL(STR(E$(1),2))
: MAT COPY P$()<D,W-D+1>TO P$()<1,W>
: RETURN
3740 MAT COPY P$()<W+1,320-W>TO P$()
: J0=J0-W
3760 IF J0<=1THEN 3810
3780 GOSUB 3990
: RETURN
3810 IF S2=0THEN 3940
: DATA LOAD BA T#2,(5*S2+T2+U,A)P$()
: D$=HEX(0F)
: MAT SEARCHP$(),=D$TO E$()
: IF E$(1)>A$THEN 3870
: STOP "ILLEGAL FORMAT ON DISK."
3870 J0=VAL(STR(E$(1),2))
: T2=T2+1
: IF T2<=5THEN 3760
: S2=VAL(T$(S2))
: T2=1
: IF J0=1THEN 3810
: GOTO 3780
3940 K1=1
: GOSUB 820
: GOSUB 820
: $GIO#5(400C,I$)
: PRINT HEX(03);"END OF PROGRAM"
: GOSUB '15
3990 D$="<"
: MAT SEARCHP$()<1,W>,=D$TO H$()
: MAT SEARCHH$(),=A$TO E$()STEP 2
: E=(VAL(STR(E$(1),2))-1)/2
: IF E=0THEN 4120
: FOR X=ETO 1STEP -1
: B=VAL(STR(H$(X),2))
: MAT COPY P$()<B,10>TO G$()
: FOR I=1TO 11
: J=LEN(I$(I))
: IF I$(I)=STR(G$(1),1,J)THEN 4130
: NEXT I
4110 NEXT X
4120 RETURN
4130 MAT COPY P$()<B+J,W+1-B-J>TO P$()<B+1,W-B>
: MAT COPY V$()<I,1>TO P$()<B,1>
: GOTO 4110
4170 V$(1)=HEX(87898684858E808F90818C)
: I$(1)="<TAB>"
: I$(2)="<C-RET>"
: I$(3)="<C-TAB>"
: I$(4)="<CENTER>"
: I$(5)="<MEMO>"
: I$(6)="<FORMAT>"
: I$(7)="<->"
: I$(8)="<S>"
: I$(9)="<BS>"
: I$(10)="<EOD>"
: I$(11)="<PAGE>"
: RETURN
5240 B1$=HEX(FF20FF81FF83FF84FF85FF86FF87FF8AFF8CFF8EFF8D)
: B2$=HEX(FF8AFF83FF89FF8AFF8BFF8D)
: B3$=HEX(FF8AFF83FF84FF85FF8AFF8CFF8E)
: GOSUB 4170
: INIT(20)K1$(),K2$()
: STR(K1$(3),14,1)=HEX(01)
: K1$(10)=HEX(060707)
: K1$(9)=HEX(04202020202003022008202020202005)
: STR(K1$(2),12,1)=HEX(06)
: K2$(3)=HEX(01)
5350 STR(K2$(3),14)=HEX(02)
: A$=HEX(0000)
: B4$=HEX(01840285038E048C0583068A078B088D)
: INIT(20)B5$()
: B5$(9)="-"
: MAT COPY B5$()<129,128>TO B5$()<130,127>
: RETURN
5440 PRINT HEX(03);TAB(18);"P R I N T A D O C U M E N T"
: Y$=HEX(802D)
: GOSUB 5240
: SELECT #5215
: T5=1
: GOSUB '32("TURN PRINTER ON AND PRESS RETURN (EXEC) TO CONTINUE.",4)
: IF Q$="TYPE"THEN 6100
: IF Q$="type"THEN 6100
: $GIO/215(400C,I$)
5462 GOSUB '32("DO YOU WANT FORMATTED OUTPUT? (Y/N)",1)
5463 IF Q$="Y"THEN 5470
: IF Q$="y"THEN 5470
: IF Q$="N"THEN 5850
: IF Q$="n"THEN 5850
: GOSUB '34("INVALID REPLY. ANSWER 'Y' OR 'N'.")
: GOTO 5463
5470 W0,W2=64
: L0=1
: INIT(00)T1$()
: GOSUB '32("DO YOU WANT TO PROVIDE A FORMAT? (Y/N)",1)
5490 IF Q$="Y"THEN 5520
: IF Q$="y"THEN 5520
: IF Q$="N"THEN 5630
: IF Q$="n"THEN 5630
: GOSUB '34("INVALID REPLY. ANSWER 'Y' OR 'N'.")
: GOTO 5490
5520 GOSUB '33("LENGTH OF LINE",2)
: W0,W2=Q
: IF W2<=WTHEN 5540
: W2=W
5540 GOSUB '33("LENGTH OF ADJUST ZONE",2)
: L0=W0-Q+1
: GOSUB '33("NUMBER OF TAB STOPS",1)
: I=Q
5580 IF I=0THEN 5630
: GOSUB '33("TAB STOP LOCATION",2)
: T1$(Q)=HEX(01)
: I=I-1
: GOTO 5580
5630 P9,L1=1
: L3=0
: GOSUB '33("MARGIN",2)
: M1=Q
: GOSUB '33("ENTER 1 FOR SINGLE SPACING OR 2 FOR DOUBLE SPACING",1)
5662 ON QGOTO 5670,5670
: GOSUB '34("REPLY MUST BE '1' OR '2'.")
: GOSUB 5990
: GOTO 5662
5670 P9=Q
: GOSUB '33("ENTER LINES PER PAGE",2)
: L8=Q
: ON T5GOTO 5700
: GOSUB '33("ENTER 1 FOR ENDPAGE=STOP OR 2 FOR ENDPAGE=EJECT.",1)
5696 P0=Q
: ON P0GOTO 5700,5700
: GOSUB '34("ANSWER 1 OR 2")
: GOTO 5696
5700 GOSUB '32("ENTER 'SAME', 'ADJUST', OR 'JUSTIFY'.",7)
5710 IF Q$="SAME"THEN 5760
: IF Q$="same"THEN 5760
: IF Q$="ADJUST"THEN 5770
: IF Q$="adjust"THEN 5770
: IF Q$="JUSTIFY"THEN 5780
: IF Q$="justify"THEN 5780
: GOSUB '34("ILLEGAL REPLY.")
: GOTO 5710
5760 L9=1
: W1=130
: H$=HEX(802D)
: GOTO 5790
5770 L9=2
: W1=W0
: GOTO 5790
5780 L9=3
: W1=W0
5790 GOSUB 8530
: GOSUB 9210
: GOSUB 3740
: GOTO 225
5850 GOSUB 8530
: GOSUB 9210
5860 MAT COPY P$()<W+1,320-W>TO P$()
: J0=J0-W
5870 IF J0<=1THEN 5885
5872 I=LEN(P$(1))
: Q$=STR(P$(2),1,W-40)
: IF Q$=" "THEN 5873
: I=LEN(Q$)+40
5873 AND (P$(1),7F)
: AND (P$(2),7F)
: $GIO#5(A000400D4000,I0$)P$()<1,I>
: GOTO 5860
5885 IF S2=0THEN 5940
: DATA LOAD BA T#2,(5*S2+T2+U,A)P$()
: D$=HEX(0F)
: MAT SEARCHP$(),=D$TO E$()
: IF E$(1)>A$THEN 5910
: STOP "ILLEGAL FORMAT ON DISK."
5910 J0=VAL(STR(E$(1),2))
: T2=T2+1
: IF T2<=5THEN 5870
: S2=VAL(T$(S2))
: T2=1
: IF J0=1THEN 5885
: GOTO 5872
5940 $GIO#5(400C,I0$)
: PRINT HEX(03);"END OF PROGRAM"
: GOSUB '15
5970 DEFFN'33(Q1$,N)
: GOSUB '32(Q1$,N)
5990 IF NUM(Q$)<64THEN 6020
: CONVERT Q$TO Q
: IF Q<0THEN 6040
: RETURN
6020 GOSUB '34("RE-ENTER.")
: GOTO 5990
6040 GOSUB '34("NEGATIVE NUMBER NOT ALLOWED.")
: GOTO 5990
6100 SELECT #5211
: T5=2
: $GIO#5(400D,I0$)
: GOTO 5462
8050 DEFFN'32(Q1$,N)
: GOSUB 8460
8070 PRINT HEX(010A);Q1$;HEX(0D0A)
: INIT(2D)Q$
: $GIO/005(40204020A000402F400D,I0$)Q$<1,N>
: Q$=" "
: D=1
: PRINT "? ";
8150 KEYIN D$,8160,8150
: GOTO 8150
8160 IF D$=HEX(0D)THEN 8330
: IF D$=HEX(08)THEN 8280
: IF D$=HEX(A1)THEN 8250
: IF D>NTHEN 8150
: IF D$=HEX(84)THEN 8350
: STR(Q$,D,1)=D$
8220 PRINT D$;
: D=D+1
: GOTO 8150
8250 PRINT HEX(0D0909);
: D=1
: GOTO 8150
8280 IF D=1THEN 8150
: D=D-1
: STR(Q$,D,1)=" "
: PRINT HEX(082008);
: GOTO 8150
8330 PRINT HEX(0D0A)
: RETURN
8350 OR (STR(Q$,D,1),80)
: D$=STR(Q$,D,1)
: GOTO 8220
8400 DEFFN'34(Q2$)
: GOSUB 8460
: PRINT HEX(010A0A0A);Q2$
: GOTO 8070
8460 PRINT HEX(010A);
: GOSUB 8490
: GOSUB 8490
8490 $GIO/005(400DA000400A,I$)B$()<1,W>
: RETURN
8530 Q1$="MOUNT DISK AND ENTER VOLUME NAME."
: Q2$="DEFAULT NAME ="
: STR(Q2$,16)=F$
: N=8
: GOSUB '34(Q2$)
8540 IF Q$=" "THEN 8700
: IF Q$="STOP"THEN 8760
: IF Q$="stop"THEN 8760
: F$=Q$
8570 GOSUB 8790
: IF I>0THEN 8610
: GOSUB '34("VOL. NAME DOES NOT EXIST OR IS SCRATCHED.")
: GOTO 8540
8610 GOSUB 8960
: IF U>0THEN 8650
: GOSUB '34("THIS VOL. IS ALREADY IN USE.")
: GOTO 8540
8650 DATA LOAD BA T#2,(U,A)N$()
: MAT COPY N$()TO T$()
: F=VAL(STR(N$(13),9))
: F0=VAL(STR(N$(13),10))
: IF W=VAL(STR(N$(13),11))THEN 8690
: GOSUB '34("LINE LENGTH FOR VOLUME IS WRONG SIZE.")
: GOTO 8540
8690 RETURN
8700 Q$=F$
: IF Q$<>" "THEN 8570
: GOSUB '34("A VOL. NAME MUST BE ENTERED.")
: GOTO 8540
8750 DEFFN'15
8760 LOAD DC T#1,"HLDA010A"
8790 B5$,B6$=A$
: DATA LOAD BA T#2,(B5$,B5$)N$()
: I=0
: STR(B6$,2)=STR(N$(1),2)
8830 D=9
8840 MAT SEARCHN$()<D,257-D>,=STR(Q$,1,8)TO E$()STEP 16
: IF E$(1)>A$THEN 8890
8860 IF B5$>=B6$THEN 8920
: DATA LOAD BA T#2,(B5$,B5$)N$()
: GOTO 8830
8890 D=D+VAL(STR(E$(1),2))-1
: I=(D+7)/16
: IF STR(N$(I),1,1)=HEX(10)THEN 8920
: I=0
: D=D+16
: IF D<256THEN 8840
: GOTO 8860
8920 RETURN
8950 I=9
: GOTO 8970
8960 I=1
8970 LIMITS T#1,"ACTIVE",U1,U2,U2
: U=0
: DATA LOAD BA T#6,(U1,A)N$()
: STR(N$(VAL(Z$)),I,8)=F$
: FOR J=1TO 4
: IF J=VAL(Z$)THEN 9015
: IF STR(N$(J),1,8)=F$THEN 9040
: IF STR(N$(J),9,8)=F$THEN 9040
9015 NEXT J
: DATA SAVE BA T#1,(U1,A)N$()
: LIMITS T#2,F$,U,U1,U2
9040 VERIFY T#1,(1,1)
: RETURN
9090 T2=1
: FOR I=1TO 4
: DATA LOAD BA T#2,(U+I,B5$)N$()
: MAT SEARCHN$()<1,250>,=STR(Q$,1,5)TO E$()STEP 5
: IF E$(1)=A$THEN 9160
: S2=50*(I-1)+(VAL(STR(E$(1),2))+4)/5
: GOSUB '32("ENTER THE NUMBER OF RECORDS TO SKIP",3)
9143 IF Q$=" "THEN 9150
: IF NUM(Q$)=64THEN 9146
: GOSUB '34("INVALID NUMBER.")
: GOTO 9143
9146 CONVERT Q$TO I
9147 IF T$(S2)=HEX(00)THEN 9150
: IF I<1THEN 9150
: S2=VAL(T$(S2))
: I=I-1
: GOTO 9147
9150 RETURN
9160 NEXT I
: S2=0
: RETURN
9210 GOSUB '32("ENTER NAME OF LETTER OR DOCUMENT",5)
9212 IF Q$<>" "THEN 9220
: GOSUB '34("A DOCUMENT NAME MUST BE ENTERED.")
: GOTO 9212
9220 GOSUB 9090
: GOSUB 8460
: IF S2>0THEN 9490
: GOSUB '34("DOCUMENT IS NOT ON DISK.")
: GOTO 9212
9490 RETURN