Listing of file='709PRNT1' on disk='vmedia/731-0067G.wvd.zip'
# Sector 2347, program filename = '709PRNT1'
0010 REM 709PRNT1 260-08/06/90 Copyright Wang Laboratories, INC. 1990 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<0THEN 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)>72AND T5(1)=4THEN C(8)=72
: 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)=2AND 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)=1000000000
0872 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)=1000000000
: NEXT D
: IF MIN(C1(1),C1(2),C1(3),C1(4),C1(5))<>1000000000THEN 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<=0THEN 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