Listing of file='609Ehyp' on disk='vmedia/701-2736G.wvd.zip'
# Sector 923, program filename = '609Ehyp' 0010 REM %609Ehyp - Hyphenation ---------------------------------------------- ---- 0030 DIM I0$(80)1 0040 DEFFNJ(I)=POS(V0$()=20)-1 : IF D7=0THEN 1142 : 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 : PRINT AT(M+1,J5(M+1)+0);HEX(020402000E);STR(V0$(),J2(M+1),J3(M)-2);HEX(02 0400000F) : GOSUB '195(M+1,MAX(1,MIN(J3(M-1)-2,D9))) 1090 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 : 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,I9-1+J5(M)); : 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,0) : 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) : GOTO 1324 1387 GOSUB '96(J2(M),M) : GOSUB '61 : RETURN : PRINT AT(M-1+1,J5(M)+0);STR(D1$()); : RETURN 1388 PRINT AT(M,J5(M)+0);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 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$