Listing of file='609EHYP' on disk='vmedia/731-0067G.wvd.zip'
# Sector 960, program filename = '609EHYP'
0010 REM %609EHYP - Hyphenation, scroll version-------------------------------
----
0030 DIM I0$(158)1
0040 DEFFNJ(I)=POS(V0$()=20)-1
0041 DEFFNP(I)=1+D5*(D8-80)
: GOSUB '47
: IF D7=0THEN 1142
: D5,C7=0
: J0=1
: GOTO 1004
1004 GOSUB '94(0)
: GOTO 1018
1012 I5=3
1016 GOSUB '93
1018 C1=1
1042 J9=LEN(V0$())
: M=C1
: GOSUB '91(C1,J2(C1),0,0)
: PRINT HEX(06);AT(0,42,3);INT(J4(C1));HEX(05);
: IF I5=3THEN M=3
1054 IF POS(V0$()=83)=LEN(V0$())THEN 1120
: IF D2=1AND M=2AND V0$(J2(2))=HEX(8F)THEN 1110
: GOSUB '191(M)
: IF C>1THEN GOSUB '194(M,0)
: IF J2(M+1)=0THEN 1012
: IF V0$(J2(M+1))=HEX(8F)THEN 1106
: IF J3(M)<=D7THEN 1136
: GOSUB '197
: IF L>0THEN 1136
: J0=J5(M+1)+J3(M)-2
: GOSUB '48(D5)
1082 PRINT AT(M+1,J5(M+1)-FNP(1)+1);HEX(020402000E);STR(V0$(),MAX(FNP(1),J2(M+
1)),MIN(80,J3(M)-2));HEX(020400000F)
: GOSUB '195(M+1,MAX(1,MIN(J3(M-1)-2,D9)))
: IF A=17OR A=19THEN 1120
: IF I1$="Error"THEN 1120
1098 IF M<C2AND M<21THEN 1054
: IF J2(MIN(C2,21))>0AND LEN(V0$())>J2(MIN(C2,21))+J1(MIN(C2,21))-1THEN 101
6
1106 GOSUB '191(M)
1110 IF C4$=" "AND C3>7THEN C4=C3+1
: CONVERT C4-7TO C6$,(###)
: IF C3=C4THEN 1120
: GOSUB 2260
: J7(2)=14
: V1$()="609FpageREC.page"
: LOAD T<2>V1$()BEG 100
1120 J1=J2(M)
: GOSUB '35(J1)
: J3=J4
1126 J7(3)=3
: J7(2)=0
: GOSUB 2250
: LOAD DA T(D7$(1))
1136 M=M+1
1137 KEYIN D1$,1137,1162
: GOTO 1098
1142 I9=C7
: M=C1
: IF C3<8THEN 2270
: IF C3=A0(3)AND J2(C1)+J1(C1)>J9THEN 1172
: IF C3<A0(3)AND J2(C1)=J9THEN 2275
: GOSUB '196
: I5=0
: IF POS(I1$<>FF)>0THEN 1042
: GOTO 1126
1162 IF D1$<>HEX(50)AND D1$<>HEX(F0)THEN 1166
: GOTO 1126
1166 GOSUB 2210
: GOTO 1137
1172 GOSUB 2232
: J1=J2(C1)+J3-1
: GOTO 1126
1202 DEFFN'191(C1)
: PRINT HEX(06);AT(0,42,3);INT(J4(C1+1));HEX(05);
: C=1
1214 IF POS(STR(V0$(),J2(C1)+C-1)="-")=0THEN 1242
: IF POS(STR(V0$(),J2(C1)+C-1)="-")+C>J1(C1)THEN 1242
: C=C+POS(STR(V0$(),J2(C1)+C-1)="-")
: IF C>J1(C1)AND J1(C1)>0THEN 1242
: IF V0$(J2(C1)+C-1)<>HEX(80)THEN 1214
: IF J2(C1)+C=2OR POS(HEX(5C5E5F7B808182838485868B8C8D8F)=V0$(J2(C1)+C-3))>
0THEN 1214
1234 STR(V0$(),J2(C1)+C-2)=STR(V0$(),J2(C1)+C)
: J1(C1)=J1(C1)-2
: IF C1=C2THEN 1238
: FOR I=C1+1TO C2
: J2(I)=J2(I)-2
: NEXT I
1238 GOSUB '198(2,J2(C1)+C-2)
: GOTO 1214
1242 J9=FNJ(1)
: RETURN
1246 DEFFN'192(C)
: I1$=ALL(" ")
: IF LEN(V0$())+2<=J8THEN 1264
: I1$="Error"
: GOTO 1276
1264 MAT COPY -V0$()<C,J8-C-1>TO -V0$()<C+2,J8-C-1>
: V0$(C)="-"
: V0$(C+1)=HEX(80)
: FOR I=M+1TO C2
: J2(I)=J2(I)+2
: NEXT I
: J1(M-1)=J1(M-1)+2
: GOSUB '198(1,C)
1276 J9=FNJ(1)
: RETURN
1296 DEFFN'194(M,I)
: GOSUB '91(M,J2(M),1,I)
: PRINT HEX(06);AT(0,42,3);INT(J4(M));HEX(05);
: RETURN
1320 DEFFN'195(M,I9)
1324 PRINT HEX(06);AT(0,57,3);I9+J5(M);HEX(05);AT(M,C7);
: A=0
: KEYIN D1$,,1338
: A=1
1338 A=2*POS(HEX(82A14D5D4C5C081850F0)=D1$)+A-1
: ON AGOTO ,1354,,1354,1376,,1376,,1376,,1376,,1387,1376,1387,,1387,,1387
: GOSUB 2210
: GOTO 1324
1354 GOSUB '192(J2(M)+I9-1)
: IF I1$<>"Error"THEN 1367
: GOSUB 2230
1364 RETURN
1367 M=MAX(1,M-1)
: GOSUB '91(M,J2(M),1,M+1)
: M=M+1
: PRINT HEX(06);AT(0,42,3);INT(J4(M));HEX(05);
: GOTO 1364
1376 IF A=5OR A=7OR A=14THEN I9=MAX(2,I9-1)
: IF A=9OR A=11THEN I9=MIN(I9+1,J3(M-1)-2)
: GOSUB '199
: GOTO 1324
1387 GOSUB '96(J2(M),M)
: GOSUB '61
: RETURN
1388 PRINT AT(M,J5(M)-FNP(1)+1);HEX(020400000F);STR(V0$(),J2(M),J3(M-1)-2)
: RETURN
1394 DEFFN'196
: GOSUB 2220
: I1$=ALL(FF)
: L=1
1410 PRINT HEX(06);AT(23,48,32);
1412 PRINT HEX(06);AT(0,L+75);HEX(02050F);
: KEYIN D1$,,1460
: IF L>2THEN 1428
: IF VER(D1$,"#")=1THEN 1448
1428 IF D1$<>HEX(08)AND D1$<>HEX(18)THEN 1468
: IF L=1THEN 1442
: L=MAX(1,L-1)
: STR(I1$,L,1)=HEX(FF)
: PRINT HEX(082006)
: GOTO 1410
1442 GOSUB 2210
: GOTO 1412
1448 STR(I1$,L,1)=D1$
: L=L+1
: PRINT D1$
: GOTO 1410
1460 IF D1$<>HEX(50)AND D1$<>HEX(F0)THEN 1442
: I1$=ALL(FF)
: RETURN
1468 IF D1$<>HEX(82)AND D1$<>HEX(A1)THEN 1442
: IF L=1THEN 1442
: CONVERT STR(I1$,,L-1)TO D7
: IF D7<3THEN 1442
: PRINT HEX(06);AT(23,48,32);
: RETURN
1484 DEFFN'197
: I1$=HEX(5C5E5F7B808182838485868B8C8D8F)
: L=0
: FOR I=1TO LEN(I1$)
: L=L+POS(STR(V0$(),J2(M+1),J3(M)-2)=STR(I1$,I,1))
: NEXT I
: RETURN
1508 DEFFN'198(P,Q)
: IF J9$=HEX(000000)THEN RETURN
: IF VAL(STR(J9$,3))<>C3THEN RETURN
: IF Q>VAL(J9$,2)THEN RETURN
: IF P=1THEN STR(J9$,,2)=BIN(VAL(J9$,2)+2,2)
: IF P=2THEN STR(J9$,,2)=BIN(VAL(J9$,2)-2,2)
: RETURN
1542 DEFFN'199
: J0=I9+J5(M)
: J0(3)=J2(M)
: J0(4)=J2(M)+J3(M-1)-3
: GOSUB '48(D5)
: MAT J0=ZER
: RETURN
2005 C3$="(Autoscore Mode)"
: GOTO 2440
2025 C3$="(Document End)"
: GOTO 2450
2135 C3$="(Page End)"
: GOTO 2450
2210 C3$="Invalid key - Ignored"
: GOTO 2410
2220 C3$="Zone length:"
: GOTO 2445
2230 C3$="Page Full - Please Cancel"
: GOTO 2235
2232 C3$="Document End - Please Cancel"&HEX(07)
2235 GOSUB 2450
2240 KEYIN D1$
: IF D1$<>HEX(50)AND D1$<>HEX(F0)THEN 2240
: RETURN
2250 C3$="(Loading Edit)"
: GOTO 2445
2260 C3$="Going to page"
: GOTO 2435
2270 C3$="Invalid page - Please Cancel"
: GOSUB 2410
: GOSUB 2240
: PRINT HEX(06);AT(23,31,LEN(C3$));
: J1=J2(C1)+J1(C1)-1
: GOTO 1126
2275 C3$="Invalid positn - Please Cancel"
: GOSUB 2410
: GOSUB 2240
: PRINT HEX(06);AT(23,31,LEN(C3$));
: J1=J9
: GOTO 1126
2345 C3$="Page Full"
: GOTO 2410
2410 IF I0$=" "AND C3$=" "THEN 2425
: IF C3$<>" "THEN PRINT HEX(07);
: IF I0$<>" "OR C3$<>" "THEN PRINT HEX(06);AT(23,48,32);B5$(2);C3$;HEX(0204
00000E);
: I0$=C3$
2425 PRINT HEX(06);AT(0,42);INT(J4(C1));AT(0,57);J0;HEX(020400000E);AT(C1,C7);
HEX(02050F);
: C3$=" "
: RETURN
2435 PRINT HEX(0306);AT(7,30);B5$(3);C3$;" ";C6$;B5$(1)
: RETURN
2440 PRINT HEX(06);AT(23,31,20);B5$(2);C3$;B5$(1);
: RETURN
2445 PRINT HEX(06);AT(0,63,17);B5$(2);C3$;B5$(1);
: RETURN
2450 PRINT HEX(06);AT(23,0,39);B5$(2);C3$;B5$(1);
: RETURN
2455 %Document ##### Now on Page ###- Line ### Position ###
3000 DEFFN'31
: A5=0
: A5$()="609CloseJCATSMAL"
: A5$=R3$()
: R3$()=STR(R3$(),10)
: IF A1>-1OR A2>-1THEN LOAD T<2>A5$()
: COM CLEAR C
: LOAD TA5$