Listing of file='709PRNT1' on disk='vmedia/731-0067F-disk1.wvd.zip'
# Sector 2372, program filename = '709PRNT1' 0010 REM 709PRNT1 250-14/04/88 Copyright Wang Laboratories, INC. 1988 KKB 0046 COM C1$1,C0$8,C2$5,C2,T5(7),T5$(11)4,J1$(256)1,C1,H 0106 DIM C4$4,C6$1,C8$2,C9$2,D0$15,C(8),C0(5),C1(5),B9$(7)1,C$(256)1,C0$(3,2)1 ,C1$(159)1,C2$(159)1,C4$(100)2,C5$(100)1,C6$(159)1,C7$(256)1,C8$(80)1,D0$ (6)1,D$(652)1,D9$(160)1,D8$(159)1,V0$(1)2,V1$(3)82 0177 SELECT ON ALERTGOSUB 1480 : LIMITS T#0,"609$TRAN",C4,C6,C6,C6 : DATA LOAD BA T#0,(C4+1)J1$() : D0$()=A1$&A1$ : OR (STR(D0$(),4),80) : C5$()=ALL(FF) : D2=1 : M3=D4 : CONVERT T5$(8)TO D4 : M4=D4 : IF T5(1)>2THEN D4=1 : IF M3<0 THEN D4=M3 0223 C1=D4 : CONVERT STR(T5$(11),1,2)TO D7 : C0$()=HEX(010204081020) : IF T5(1)=3THEN T5$(8)="01" 0236 DEFFN'99 : RETURN CLEAR ALL 0238 IF T5(1)>2THEN 286 : CONVERT STR(T5$(10),1,1)TO C7 : $IF OFF /005,265 : PRINT HEX(0202000F) 0265 IF T5(1)<3AND T5(4)<>2THEN SELECT PRINT <@H9$> : PRINT HEX(0C); : SELECT PRINT <@H8$> : IF T5(1)>1THEN 277 : ON T5(4)GOTO 270,267,270,267 0267 SELECT PRINT <@H9$> : PRINT HEX(0206010F); : SELECT PRINT <@H8$> : GOTO 277 0270 SELECT PRINT <@H9$> : PRINT HEX(0206020F); : SELECT PRINT <@H8$> 0277 C6$()=HEX(020C010200000F) : CONVERT T5$(7)TO C(8) : STR(C6$(),5,2)=BIN(C(8),2) : IF T5(1)=1THEN SELECT PRINT <@H9$> : PRINT STR(C6$(),1,LEN(C6$())); : SELECT PRINT <@H8$> 0286 D0$=HEX(00818283848586FF8B8C7F)&D0$(2)&D0$(3)&D0$(5)&D0$(6)&ALL(00) : D0,D1=-1 : GOSUB 1500 : C4$=" " : C0(2)=0 : C8$=" " : J1,C(6)=0 : FOR C=1TO 5 : CONVERT T5$(C)TO C(C) : NEXT C : C(6)=C(1)-1 : IF C(6)=-1THEN C(6)=0 : FOR C=6TO 7 : CONVERT T5$(C)TO C(C+1) : NEXT C : IF C(8)>66AND T5(1)=4THEN C(8)=66 : GOSUB 1365 : C0,C5=0 0355 IF T5(1)=1AND T5(4)=2THEN SELECT PRINT <@H9$> : REM PRINT HEX(02 07 0F); : SELECT PRINT <@H8$> : $IF OFF /005,364 : IF T5(1)<3THEN PRINT HEX(03) : IF T5(1)=4THEN PRINT HEX(01030202000F) 0364 J6=1 : C=1 : D6,D5=0 : C(6)=C(6)+1 : IF D1=-1OR C(6)<C(4)THEN 409 : D1=1 : IF C1$="L"THEN J7=9 : ELSE J7=13 : GOSUB 1550 : GOSUB 493 : D1=2 : GOSUB '103 : D1=1 0409 IF C1$="L"THEN J7=13+C(6)*2 : ELSE J7=15+C(6)*2 : IF C1$="L"THEN J7=13+C(6)*2 : ELSE J7=15+C(6)*2 : GOSUB 1550 : GOSUB '103 : IF D0=-1OR C(6)<C(5)THEN 457 : D0=1 : IF C1$="L"THEN J7=7 : ELSE J7=11 : GOSUB 1550 : GOSUB 493 : D0=2 : IF D5>=C(7)OR T5(1)=3THEN 451 : C4=1 : GOSUB 1750 : FOR K=D5+3TO C(7) : IF T5(1)<3THEN SELECT PRINT <@H9$> : PRINT HEX(0D); : SELECT PRINT <@H8$> 0410 IF T5(1)=4THEN PRINT HEX(0D) : D5=D5+1 : D6=D6+1 0448 NEXT K 0451 GOSUB '103 : D0=1 0457 IF T5(1)<3THEN 475 : IF T5(1)=4AND POS(C8$()<>C0)>0THEN SELECT PRINT 005 : PRINT HEX(0202020F);AT(B2,0);C8$();HEX(0202000F06); : GOSUB 1375 : PRINT HEX(03) : GOTO 478 0475 IF T5(1)=1AND T5(4)=1THEN DO : SELECT PRINT <@H9$> : PRINT HEX(0206010F); : SELECT PRINT <@H8$> : END DO : IF R1$=HEX(25)THEN 478 : IF C(6)>=C(2)AND D0>0THEN 478 : SELECT PRINT <@H9$> : PRINT HEX(0C07); : SELECT PRINT <@H8$> : IF T5(1)=1AND T5(4)=2THEN DO : $IF OFF /005,476 : PRINT AT(20,20,35);"Return to start printing next page"; : KEYIN Z$ : PRINT AT(20,20,35); 0476 END DO 0478 IF C(6)>=C(2)OR C8$=HEX(0000)OR C1<=0THEN GOSUB '101 0484 IF D6=C(8)AND T5(1)=1AND T5(4)=2THEN DO : SELECT PRINT <@H9$> : PRINT HEX(02070F); : SELECT PRINT <@H8$> : END DO 0487 IF C0=1THEN C5=C5+1 : GOTO 364 0493 J9=POS(D$()="#") : IF J9=0THEN RETURN : C0=1 : C$=ALL(00) : J8=POS(STR(D$(),J9)<>"#")-1 : PRINTUSING TO C$,"#####",C(3)+C5 : STR(C$,8)=" " : J6=5-POS(STR(C$,3)>" ")+1 : J=POS(D$()=00) : IF J8<J6THEN MAT COPY -STR(D$(),J9+J8,J-J9)TO -STR(D$(),J9+J6,J-J9) : ELSE J6=J8 0520 STR(D$(),J9,J6)=STR(C$,3+POS(STR(C$,3)>" ")-1) : GOTO 493 0547 DEFFN'103 : J1,J2,J3,J4,J5,C8=0 : C5$()=ALL(FF) : C6$()=" " : C3,J6=1 : CONVERT T5$(6)TO C6 : SELECT PRINT <@H9$> : IF T5(1)<2AND STR(@H9$,,1)<>"7" THEN PRINT HEX(7F080A); : IF T5(1)=2 AND STR(@H9$,,1)="7" THEN PRINT HEX(7F0A); : IF T5(1)=2THEN PRINT HEX(7F); : SELECT PRINT <@H8$> 0573 D8=0 : D8=D8+1 0577 IF D8>LEN(STR(D$(),1))THEN 589 : IF D$(D8)<>HEX(00)THEN 601 0589 GOSUB 1555 : GOSUB 1487 : IF H=1OR R1$=HEX(25)THEN 730 : GOTO 573 0601 KEYIN C5$,601,613 : GOTO 635 0613 IF Q2$=" "THEN ON POS(HEX(0FF0)=C5$)+1GOTO 577,1385,1324 : ELSE ON POS(HEX(070B0FF0)=C5$)+1GOTO 577,621,627,1385,1324 0621 Q2$="f" : GOSUB '31 0627 GOSUB 1338 0635 ON POS(STR(D0$,1)=D$(D8))GOTO 730,750,763,796,818,847,967,982,,1003,1045, 1054,1054,1054,1054 0638 IF J6<C9THEN 719 : C6$(J6)=D$(D8) : D8=D8+1 : C1(1)=C9+1 0651 C1(1)=C1(1)-1 : IF C1(1)=0OR POS(STR(C6$(),,C1(1))<>20)=0THEN 683 : IF POS(HEX(80A0)=C6$(C1(1)))>0THEN 651 0663 C1(1)=C1(1)-1 : IF C1(1)=0OR C1(1)<=COR POS(STR(C6$(),,C1(1))<>20)=0THEN 683 : IF POS(HEX(80A0)=C6$(C1(1)))=0THEN 663 : STR(D9$(),C)=STR(C6$(),C1(1)+1) : STR(C6$(),C1(1))=" " 0683 IF C8<>0THEN GOSUB 736 : GOSUB '102 : IF D9$()=" "THEN 701 : C6$()=D9$() : D9$()=" " : J6=POS(-C6$()<>20)+1 : GOTO 577 0701 J6=C : GOTO 577 0719 C6$(J6)=D$(D8) : J6=J6+1 : D8=D8+1 : IF D8>LEN(STR(D$(),1))THEN 577 : IF POS(STR(D0$,1)=D$(D8))>0THEN 577 : IF J6=C9THEN 638 : GOTO 719 0730 IF C6$()=" "THEN RETURN : IF C8<>0THEN GOSUB 736 : GOSUB '102 : RETURN 0736 DEFFN'36 : MAT REDIM D8$(C9-C8+1)1 : D8$()=ALL(80) : C1(1)=POS(STR(C6$(),C8)=" ")-1 : IF C1(1)<1THEN RETURN : C1(2)=INT((C9-C8+1-C1(1))/2) : IF C1(2)>0THEN C1(2)=C1(2)+1 : IF C1(2)<2THEN RETURN : STR(D8$(),C1(2))=STR(C6$(),C8) : STR(C6$(),C8)=D8$() : C3,J6=POS(-C6$()<>20)+1 0742 C6$=BIN(C8) : MAT SEARCHC5$(),>=STR(C6$,,1)TO V0$()STEP 1 : IF V0$()=HEX(0000)THEN RETURN : IF C5$(VAL(V0$(),2))=HEX(FF)THEN RETURN : C6$=BIN(C1(2)-1) : C5$()=ADDALL(C6$) : STR(C5$(),J5+1)=ALL(FF) : RETURN 0750 IF J6=1AND C8=1THEN 751 : IF C=J6AND J6=C3THEN 752 : IF C8<>0THEN GOSUB 736 0751 GOSUB '102 0752 C8=J6 : D8=D8+1 : GOTO 577 0763 IF POS(STR(C1$(),J6+1)=82)=0THEN 778 : IF C8<>0THEN J6=MAX(INT((C9-C8+1)/2),1) : C8=0 : C3,J6=J6+POS(STR(C1$(),J6+1)=82) : D8=D8+1 : GOTO 577 0778 GOSUB '102 : D8=D8+1 : C3,J6=C : GOTO 577 0796 IF C8<>0THEN GOSUB 736 : GOSUB '102 : J3=0 0802 C3,C=1 : D8=D8+1 : J6=1 : GOTO 577 0818 IF C8<>0THEN J6=MAX(INT((C9-C8+1)/2),1) : C8=0 : C3,C,J6=J6+POS(STR(C1$(),J6+1)=82) : D8=D8+1 : GOTO 577 0832 GOSUB '102 : D8=D8+1 : C3,J6,C=1 : GOTO 577 0847 IF C8<>0THEN J6=MAX(INT((C9-C8+1)/2),1) : C8=0 : J=POS(STR(C1$(),J6+1)=82) : IF J=0THEN 958 : IF J=1THEN J=2 : D8=D8+1 : MAT C1=ZER : J8=D8-1 0871 J8=J8+1 : IF POS(HEX(80A0DF)=D$(J8))>0THEN 871 : C1(1)=POS(STR(D$(),J8)=A6$) : D$=A6$OR HEX(80) : C1(2)=POS(STR(D$(),J8)=D$) : C1(3)=POS(STR(D$(),J8)=29) : IF C1(3)=0THEN C1(3)=POS(STR(D$(),J8)=A9) : C1(4)=POS(STR(D$(),J8)=A0) : D=POS(STR(D$(),J8)=80) : C1(5)=1E9 : FOR J9=2TO LEN(D0$)-1 : D=POS(STR(D$(),J8)=STR(D0$,J9,1)) : IF D>0AND D<C1(5)THEN C1(5)=D 0917 NEXT J9 : D=POS(STR(D$(),J8)=80) : IF D>0AND D<C1(5)THEN C1(5)=D : FOR D=1TO 5 : IF C1(D)=0THEN C1(D)=1E9 : NEXT D : IF MIN(C1(1),C1(2),C1(3),C1(4),C1(5))<>1E9THEN 944 : D9$()=STR(D$(),D8) : GOSUB 1555 : GOSUB 1487 : IF D1=2OR D0=2THEN GOSUB 493 : D8=1 : IF D9$(1)=HEX(00)THEN 934 : J9=POS(D$()=00)-1 : MAT COPY -STR(D$(),1,J9)TO -STR(D$(),POS(D9$()=00),J9) 0933 STR(D$(),,POS(D9$()=00)-1)=D9$() 0934 D9$()=" " : J8=0 : GOTO 871 0944 J9=MIN(C1(1),C1(2),C1(3),C1(4),C1(5))-1+J8-D8 : IF J6+J<=J9THEN J6=J6+1 : ELSE J6=J6+J-J9 : IF J9>0THEN STR(C6$(),J6,J9)=STR(D$(),D8,J9) : IF J8=D8THEN 950 : I=POS(STR(D$(),D8,J8-D8)=HEX(DF)) : IF I=0OR STR(D$(),D8+I,1)=HEX(DF)THEN 950 : J5=J5+1 : C5$(J5)=BIN(J6+I) : C4$(J5)=D$(D8+I-1) : C6$(J6+I-1)=HEX(80) 0950 D8=D8+J9 : C3,J6=MAX(LEN(C6$())+1,J6) : GOTO 577 0958 GOSUB '102 : D8=D8+1 : C3,J6=C : GOTO 577 0967 C8=0 : C1(1)=1 0968 C1(2)=POS(STR(D$(),D8)=83) : IF C1(2)>0THEN 975 : STR(C1$(),C1(1))=STR(D$(),D8) : GOSUB 1555 : GOSUB 1487 : IF D0=2OR D1=2THEN GOSUB 493 : D8=1 : C1(1)=POS(C1$()=00) : GOTO 968 0975 STR(C1$(),C1(1))=STR(D$(),D8,C1(2))&ALL(00) : D8=D8+C1(2)-1 : C9=POS(C1$()=83) : IF C6$()=" "THEN 802 : ELSE GOTO 796 0982 GOSUB '100(1) : GOTO 577 0991 D8=D8+1 : IF T5(1)=1THEN SELECT PRINT <@H9$> : PRINT HEX(0D02070F); : SELECT PRINT <@H8$> : GOTO 577 1003 IF T5(3)<>3THEN 1015 : D8=D8+1 : GOTO 577 1015 J8=POS(STR(D$(),D8+1)=8C)+1 : J9=POS(STR(D$(),D8+1)=83)+1 : IF J8=1THEN J8=9999 : IF J9=1THEN J9=9999 : J8=MIN(J8,J9) : IF J8<>9999THEN 1040 : GOSUB 1555 : GOSUB 1487 : IF D0=2OR D1=2THEN GOSUB 493 : D8=1 : GOTO 1015 1040 D8=D8+J8 : GOTO 577 1045 GOSUB '100(0) : GOTO 577 1054 J5=J5+1 : IF J5>100THEN 1462 : C5$(J5)=BIN(J6) : IF POS(STR(D$(),D8,2)<>D0$(6))>0THEN 1072 : C4$(J5)=STR(D$(),D8,2) : D8=D8+2 : GOTO 577 1072 C4$(J5)=D$(D8) : D8=D8+1 : GOTO 577 1084 DEFFN'102 : $TRAN(C6$(),HEX(2080))R : IF T5(1)>2THEN 1117 : IF C4$="F"THEN 1111 : $IF OFF /005,1117 : C4$="F" : IF T5(6)=2THEN PRINT HEX(0306); : GOSUB 2500 : GOTO 1117 1111 $IF ON /005,1117 : C4$="B" 1117 IF C4$="F"AND T5(1)<3THEN PRINT AT(9,63,4);HEX(06);C(6) : IF T5(3)<>2THEN 1276 : IF POS(HEX(8182838485)=D$(D8))>0THEN 1276 : IF C6$()=" "THEN 1276 : J8=MAX(POS(C6$()<>20),C,C3) : J8=J8-1+POS(STR(C6$(),J8)<>20) : IF C3<=CTHEN J9=C9-POS(-STR(C6$(),1,C9+1)<>20) : ELSE J9=C9-J8-POS(-STR(C6$(),C3)<>20)+1 : IF J9<=0 THEN 1276 : C2$()=ALL(00) : J=0 : J0=J8 1200 IF POS(HEX(20A0)=C6$(J0))=0THEN 1207 : J=J+1 : C2$(J)=BIN(J0) 1203 J0=J0+1 : IF J0>C9-J9THEN 1222 : IF POS(HEX(20A0)=C6$(J0))>0THEN 1203 : GOTO 1200 1207 J0=J0+1 : IF J0>C9-J9THEN 1222 : GOTO 1200 1222 IF J=0THEN 1276 1225 D9=VAL(C2$(J)) : J0=C9-J9+1-D9 : J7=INT(J9/J+.9999) : MAT COPY -C6$()<D9,J0>TO -C6$()<D9+J7,J0> : C6$=BIN(D9) : MAT SEARCHC5$(),>=STR(C6$,,1)TO V0$()STEP 1 : IF V0$()=HEX(0000)THEN 1258 : IF C5$(VAL(V0$(),2))=HEX(FF)THEN 1258 : C6$=BIN(J7) : STR(C5$(),VAL(V0$(),2))=ADDALL(C6$) : STR(C5$(),J5+1)=ALL(FF) 1258 V0$()=C6$(D9) : STR(C6$(),D9,J7)=ALL(V0$()) : J=J-1 : J9=J9-J7 : IF J9>0AND J>0THEN 1225 1276 D1$=HEX(20)&D0$(1)&HEX(2080) : $TRAN(C6$(),D1$)R : C4=POS(B9$()=C1$(2)) : IF C4=0THEN C4=4 : GOSUB 1750 : J1,J5=0 : C8=0 : D5=D5+1 : D6=D6+1 : C3,J6=C : C6$(),C4$()=" " : C5$()=ALL(FF) : RETURN 1322 IF T5(1)<>1THEN 1324 : B2$=HEX(020A010208000E) : SELECT PRINT <@H9$> : PRINT STR(B2$,1,LEN(B2$)); : SELECT PRINT <@H8$> 1324 B2$=HEX(0D)&" (Printout Cancelled by Operator)" : IF T5(1)<3THEN SELECT PRINT <@H9$> : PRINT STR(B2$,1,LEN(B2$));HEX(0D0A); : SELECT PRINT <@H8$> 1326 DEFFN'31 : C5$=HEX(F0) : $PSTAT=" " : SELECT OFF ALERT : GOSUB '101 : END 1338 PACK(##)STR(A5$,,1)FROM#TERM : STR(A5$,2,1)="W" : FOR J9=1TO 16 : A5$()=$PSTAT(J9) : ERRORJ9=ERR : GOTO 1352 1343 IF STR(A5$(),15,2)=STR(A5$,,2)THEN 1347 : NEXT J9 : GOTO 1355 1347 $RELEASETERMINALTO J9 : ERRORJ9=ERR : GOTO 1359 1348 J9=16 : NEXT J9 : RETURN 1352 J9=16 : NEXT J9 1355 FOR J9=2TO 16 : A5$()=$PSTAT(J9) : ERRORJ9=ERR : GOTO 1359 1357 IF STR(A5$(),15,2)=HEX(0057)THEN 1347 : NEXT J9 1359 PRINT HEX(06);AT(23,0,);"No Partition Available";HEX(07); : RETURN 1361 RETURN 1365 $IF OFF /005,1371 : IF Q2$=" "THEN IF T5(1)<3AND C(6)=C(1)-1AND T5(6)=2THEN PRINT HEX(0103);" Please check paper and Press the SELECT key on the printer"; 1371 RETURN 1375 PRINT AT(23,1,79);"Document ";C2$;" Page";C(6);TAB(51);"Press EXECUTE to continue. ";HEX(058B08); : J=0 1381 KEYIN C5$ : ON POS(HEX(F0820F)=C5$)+1GOTO 1381,1455,1413 1385 J=0 : PRINT AT(23,51,);"Which Page : "; : C4$=" " 1389 KEYIN C5$ : ON POS(HEX(08F08230313233343536373839)=C5$)+1GOTO 1389,1405,1401,1415 : CONVERT C5$TO J9 : J=J*10+J9 : IF J>999THEN J=999 : GOTO 1407 1399 IF T5(1)>2THEN 1375 1401 PRINT AT(23,0,); : GOTO 577 1405 J=INT(J/10) 1407 PRINT AT(23,63,3); : IF J>0THEN PRINT J;HEX(08); : ELSE PRINT HEX(09); : GOTO 1389 1413 RETURN 1415 IF J=0THEN 1401 : RETURN CLEAR ALL 1419 C(6)=0 : IF J<C(1)THEN C(6)=C(1) : IF J>C(2)THEN C(6)=C(2) : IF C(6)=0THEN C(6)=J : C(6)=C(6)-1 : GOTO 355 1455 GOSUB '101 : GOTO 1460 1460 B2$="Illegal Left Margin" : GOTO 1464 1462 B2$="Too many special characters in print line" 1464 IF T5(1)<3THEN SELECT PRINT <@H9$> : PRINT HEX(0D);STR(B2$,1,LEN(B2$)); : SELECT PRINT <@H8$> : Q2$="D" : $IF OFF /005,1476 : PRINT AT(23,0,);B2$;HEX(07);TAB(51);"Press CANCEL"; 1472 KEYIN C$,1472,1474 1474 IF STR(C$,,1)<>HEX(F0)THEN 1472 1476 GOSUB '31 1480 IF C7=0THEN GOSUB '31 : GOTO 1322 1487 IF M3>=0THEN RETURN : C1=MAX(POS(D$()=HEX(FF)),POS(D$()=HEX(7F)),C1) : IF C1=0AND C0(3)=0THEN C1=1 : RETURN 2500 REM 609PECHO