1 'PS-PROFESSIONAL: Proportionele driver voor WordStar (R) 2 ' 3 ' (c) by Horn-Soft BV 4 ' Spaklerweg 59 5 ' 1099 BB Amsterdam 6 ' Tel. 020-668 43 09 7 ' 8 'Laatste wijziging 16 mrt 88 [NHH] 9 ' 10 'Initialisatie: 15 QQ$="PIPOKOEIEN" 20 DEFINT A-Z:DIM SIZE(127):WIDTH "LPT1:",255 21 FOR N=32 TO 127:READ SIZE(N):NEXT:READ INCSIZ,SIZE(6),SIZE(7) 22 SIZE(15)=SIZE(32):SIZE(8)=-SIZE(111):E$=CHR$(27):DRIVE$="" 30 FOR N=0 TO 25:PRINT:NEXT 31 PRINT"É"STRING$(76,"Í")"»":TB=19 32 PRINT"º"TAB(TB)"ÛßßßÜ Üßßßß ÛßßßÜ ÛßßßÜ ÜßßßÜ"TAB(78)"º" 33 PRINT"º"TAB(TB)"Û Û Û Û Û Û Û Û Û"TAB(78)"º" 34 PRINT"º"TAB(TB)"ÛÜÜÜß ßÜÜÜ ÜÜÜÜÜ ÛÜÜÜß ÛÜÜÜß Û Û"TAB(78)"º" 35 PRINT"º"TAB(TB)"Û Û Û Û ßÜ Û Û"TAB(78)"º" 36 PRINT"º"TAB(TB)"Û ÜÜÜÜß Û Û Û ßÜÜÜß"TAB(78)"º" 37 PRINT"º"TAB(78)"º" 38 PRINT"º"TAB(TB+11)"PS - Professional"TAB(78)"º" 40 PRINT"Ç"STRING$(76,"Ä")"¶" 43 PRINT"º (c) Horn-Soft BV, Spaklerweg 59, 1099 BB Amsterdam; Tel. 020 - 6684309"TAB(78)"º" 44 PRINT"È"STRING$(70,"Í")"[4.3m]¼" 45 PRINT:FILES DRIVE$+"*.*":PRINT:PRINT 46 LINE INPUT"Welke tekst moet uitgeprint worden ? (Return=Einde) ";FILE$:IF FILE$=""THEN 999 47 FOR M=1 TO LEN(FILE$):B$=MID$(FILE$,M,1) 48 IF B$>="a"AND B$<="z"THEN MID$(FILE$,M,1)=CHR$(ASC(B$)-32) 49 NEXT 51 IF ASC(FILE$)>64 AND ASC(FILE$)<81 AND LEN(FILE$)=2 AND RIGHT$(FILE$,1)=":"THEN DRIVE$=FILE$:GOTO 30 52 IF LEN(FILE$)>14 THEN 46ELSE IF INSTR(FILE$,":")=0 THEN FILE$=DRIVE$+FILE$ 53 OPEN"R",1,FILE$,1:LF!=LOF(1):CLOSE:IF LF!<>0 THEN 57 54 KILL FILE$:GOTO 46 57 IF RIGHT$(FILE$,4)=".PRO"THEN AD=0:GOTO 60 58 LINE INPUT"Moet de tekst op schijf worden gezet ? (j/n, Return=n) ";AD$ 59 IF AD$="J"OR AD$="j"THEN AD=1ELSE IF AD$="N"OR AD$="n"OR AD$=""THEN AD=0ELSE 58 60 IF AD=1 THEN 62ELSE LINE INPUT"Werkt u met losse vellen ? (j/n, Return=n) ";LV$ 61 IF LV$="J"OR LV$="j"THEN LV=1ELSE IF LV$="N"OR LV$="n"OR LV$=""THEN LV=0ELSE 60 62 LINE INPUT"Wilt u afbreekhulp ? (j/n, Return=j) ";AH$ 63 IF AH$="J"OR AH$="j"OR AH$=""THEN AH=1ELSE IF AH$="N"OR AH$="n"THEN AH=0ELSE 62 64 IF RIGHT$(FILE$,4)<>".PRO"OR AH=1 THEN P1=1:P2=9999:GOTO 70 ELSE LINE INPUT"Start printen vanaf pagina ? (Return=1) ";P1$ 65 IF VAL(P1$)<0 OR VAL(P1$)>999 THEN 64 ELSE P1=VAL(P1$):IF P1=0 THEN P1=1 66 LINE INPUT"Stop printen na pagina ? (Return=laatste) ";P2$ 67 IF VAL(P2$)<0 OR VAL(P2$)>999 THEN 66 ELSE P2=VAL(P2$):IF P2=0 THEN P2=9999 70 IF AD=1 THEN 72ELSE LINE INPUT"Hoeveel afdrukken wilt u ? (1-999, Return=1) ";AC$ 71 IF VAL(AC$)<0 OR VAL(AC$)>999 THEN 70ELSE AC=VAL(AC$) 72 IF AC=0 THEN AC=1 90 I=INSTR(FILE$,"."):IF I=0 THEN AD$=FILE$+".PRO"ELSE AD$=LEFT$(FILE$,I)+"PRO" 100 'Defaults: 101 IF AD=1 THEN OPEN"O",2,AD$ 102 IF AD=0 THEN GOSUB 10000 105 FOR CNT=1 TO AC:LH=8:SR=3:IF AD=0 THEN GOSUB 14000:LPRINT CHR$(13); 106 FOR N=0 TO 25:PRINT:NEXT:IF AC<>1 THEN PRINT"Afdruk nr."CNT 107 LM=10:RM=70:LM=LM/10*INCSIZ:RM=RM/10*INCSIZ 110 MT=3:MB=8:HM=2:FM=2:PN=1:PT=1:PL=66:LP=PL-MT-MB:OJ=1 120 HE$=".h.":FO$=".f." 130 PRT=LM:PRT$="":SPAC=0 800 HE=0:T=0:OPEN"R",1,FILE$,1:FIELD 1,1AS T$ 810 GOSUB 1000:IF FL=2 THEN 990ELSE IF FL=0 THEN TXT$=TXT$+CHR$(13) 820 IF HE=0 AND AD=0 THEN GOSUB 6000:HE=1 900 IF TXT>LEN(TXT$)THEN GOTO 810 905 A$=MID$(TXT$,TXT,1) 907 IF A$=CHR$(13)THEN GOSUB 2000:GOTO 930 910 PRT$=PRT$+A$:PRT=PRT+SIZE(ASC(A$)):IF A$=" "THEN SPAC=SPAC+1 920 IF PRT>RM THEN GOSUB 2000 930 TXT=TXT+1 940 GOTO 900 990 NEXT CNT 991 CLOSE:CLEAR:RESTORE:GOTO 10 999 PRINT:CLOSE:END 1000 'READLN: Lees regel tekst van file 1005 IF T=26 THEN 1200 1010 TXT$="":FL=0:IF LOC(1)>0 AND T$<>CHR$(10)AND T$<>CHR$(138)THEN TXT$=T$ 1020 GET 1:T=ASC(T$):IF T=13 OR T=13+128 THEN GET 1:GOTO 1090 1021 IF T=26 THEN CLOSE 1:GOTO 1090 1022 IF T=160 THEN 1020 1023 IF T=31 THEN T=30:FL=1 1025 IF T>127 THEN FL=1:T=T-128 1030 TXT$=TXT$+CHR$(T) 1040 GOTO 1020 1090 IF T=13 OR T=26 THEN FL=0 1095 IF LEN(TXT$)=0 THEN 1100ELSE IF ASC(TXT$)=46 THEN GOSUB 4000:GOTO 1000 1100 TXT=1:RETURN 1200 IF AD=0 THEN GOSUB 6200 1210 FL=2:RETURN 2000 'PRTLIN: Print een regel 2010 LN=LEN(PRT$) 2020 IF A$=CHR$(13)THEN 2100 2030 NN=0:A=0:FOR N=LN TO 1 STEP-1:C$=MID$(PRT$,N,1) 2031 IF C$="-"AND N<>LN THEN LN=N:NN=N:N=0:A$=MID$(PRT$,NN+1):GOTO 2050 2032 IF C$=CHR$(30)AND PRT+SIZE(45)<=RM THEN LN=N+1:NN=N:N=0:A$=MID$(PRT$,NN+1):GOTO 2050 2035 IF C$=" "THEN NN=N:N=0:SPAC=SPAC-1:A$=MID$(PRT$,NN+1):GOTO 2050 2040 A=A+SIZE(ASC(C$)):PRT=PRT-SIZE(ASC(C$)) 2050 NEXT N:IF NN=0 THEN A$=RIGHT$(PRT$,1):A=SIZE(ASC(A$)):NN=LN 2055 IF C$="-"THEN PRT$=LEFT$(PRT$,LN):GOTO 2100 2056 IF C$=CHR$(30)THEN PRT$=LEFT$(PRT$,NN-1)+"-":PRT=PRT+SIZE(45):GOTO 2100 2060 LN=NN-1:PRT=PRT-SIZE(ASC(MID$(PRT$,NN,1))):PRT$=LEFT$(PRT$,LN) 2100 GOSUB 5000:REST=RM-PRT:IF SPAC=0 THEN DIV=LN-1ELSE DIV=SPAC 2101 IF AD=0 THEN 2105ELSE GOSUB 7000:IF A$=CHR$(13)THEN A$="":A=0:LI=0 2102 PRT=LM+LI+A:PRT$=A$:SPAC=0:RETURN 2105 IF PTP2 THEN 2901 2106 IF A$=CHR$(13)OR OJ=0 THEN REST=0 2107 GOSUB 6900:SIZE=LM+LI:GOSUB 20000:GOSUB 6910 2110 FOR M=1 TO LN:B$=MID$(PRT$,M,1) 2120 IF B$=" "THEN 2200ELSE IF B$<" "THEN 3000ELSE GOSUB 15000 2130 IF SPAC<>0 OR DIV=0 THEN 2900 2140 SIZE=INT(REST/DIV):DIV=DIV-1:REST=REST-SIZE 2150 GOSUB 20000:GOTO 2900 2200 SIZE=INT(REST/DIV):DIV=DIV-1:REST=REST-SIZE:SIZE=SIZE+SIZE(32) 2210 GOSUB 20000:GOTO 2900 2900 NEXT M 2901 IF A$=CHR$(13)AND T$<>CHR$(10)AND T$<>CHR$(138)AND T<>26 THEN 2902ELSE 2905 2902 IF PT>=P1 AND PT<=P2 THEN LPRINT A$; 2903 A$="":A=0:PP=PP-1:GOTO 2910 2905 IF PT>=P1 AND PT<=P2 THEN LPRINT 2906 IF A$=CHR$(13)THEN A$="":A=0:LI=0 2910 PRT=LM+LI+A:PRT$=A$:SPAC=0 2920 PP=PP+1:IF PP=>LP THEN GOSUB 6100:GOSUB 6000 2930 IF PT>=P1 AND PT<=P2 THEN GOSUB 6900:GOSUB 6910 2931 RETURN 3000 IF B$=CHR$(19)THEN GOSUB 30000 3010 IF B$=CHR$(2)THEN GOSUB 31000 3020 IF B$=CHR$(22)THEN GOSUB 32000 3030 IF B$=CHR$(20)THEN GOSUB 33000 3040 IF B$=CHR$(25)THEN GOSUB 34000 3050 IF B$=CHR$(6)THEN GOSUB 35000 3060 IF B$=CHR$(7)THEN GOSUB 35010 3070 IF B$=CHR$(8)OR B$=CHR$(12)THEN GOSUB 15000 3080 IF B$=CHR$(9)THEN B$=CHR$(137):GOSUB 15000 3090 IF B$=CHR$(15)THEN SIZE=SIZE(15):GOSUB 20000 3100 IF B$=CHR$(3)THEN GOSUB 3900 3110 IF B$=CHR$(4)THEN GOSUB 31500 3800 GOTO 2130 3900 PRINT"-----":PRINT"[RETURN] = verder met afdrukken, [ESC] = stoppen." 3910 I$=INPUT$(1):IF I$=CHR$(13)THEN PRINT:PRINT"-----":RETURN 3911 IF I$=CHR$(27)THEN 991 3920 B$=I$:GOSUB 15000:PRINT I$;:GOTO 3910 4000 'Uitwerken punt-kommando's 4005 IF AD=0 THEN 4010ELSE PRT$=TXT$:A$=CHR$(13):GOSUB 7000 4006 PRT$="":A$="" 4010 TL$=LEFT$(TXT$,3):TR$=MID$(TXT$,4) 4011 IF MID$(TL$,2,1)>"Z"THEN MID$(TL$,2,1)=CHR$(ASC(MID$(TL$,2))-32) 4012 IF MID$(TL$,3,1)>"Z"THEN MID$(TL$,3,1)=CHR$(ASC(MID$(TL$,3))-32) 4020 IF TL$<>".PO"THEN 4030ELSE LM=VAL(TR$):RRM=(VAL(TR$)-LM)*1000 4021 IF RRM180 THEN RM=RM/INCSIZ*10ELSE RM=RRM 4022 LM=LM/10*INCSIZ:RM=RM/10*INCSIZ:PRT=LM:RETURN 4030 IF AD=1 AND TL$<>"..I" THEN RETURN ELSE IF TL$<>".PN"THEN 4040ELSE PN=VAL(TR$) 4031 IF PN<1 OR PN>999 THEN PN=1 4032 RETURN 4040 IF TL$<>".OP"THEN 4050ELSE PN=0:RETURN 4050 IF TL$<>".MT"THEN 4060ELSE MT=VAL(TR$) 4051 IF MT<0 OR MT>=PL-MB THEN MT=0 4052 LP=PL-MT-MB:RETURN 4060 IF TL$<>".MB"THEN 4070ELSE MB=VAL(TR$) 4061 IF MB<0 OR MB>=PL-MT THEN MB=0 4062 LP=PL-MT-MB:RETURN 4070 IF TL$<>".PL"THEN 4080ELSE PL=VAL(TR$) 4071 IF PL<1 OR PL<=MB+MT THEN PL=66 4072 LP=PL-MT-MB:RETURN 4080 IF TL$<>".HE"THEN 4090ELSE HE$=TR$:RETURN 4090 IF TL$<>".FO"THEN 4100ELSE FO$=TR$:RETURN 4100 IF TL$<>".HM"THEN 4110ELSE HM=VAL(TR$) 4101 IF HM<0 OR HM>MT-1 THEN HM=2 4102 RETURN 4110 IF TL$<>".FM"THEN 4120ELSE FM=VAL(TR$) 4111 IF FM<0 OR FM>MB-1 THEN FM=2 4112 RETURN 4120 IF TL$<>"..C"THEN 4130ELSE IF PTP2 THEN 4125 4121 IF HE=0 THEN GOSUB 6000:HE=1 4122 PRT=0:FOR N=1 TO LEN(TR$):PRT=PRT+SIZE(ASC(MID$(TR$,N))):NEXT 4123 GOSUB 6900:SIZE=RM-LM-PRT:SIZE=SIZE/2+LM:IF SIZE>0 THEN GOSUB 20000 4124 GOSUB 6910 4125 A$=CHR$(13):PR$=TR$:GOSUB 5900:PRINT TAB(78)"C":IF PTP2 THEN 2901 4126 PRT$=TR$:LN=LEN(PRT$):DIV=LN:REST=0:GOTO 2110 4130 IF TL$<>".PA"THEN 4140ELSE GOSUB 6200:GOSUB 6000:RETURN 4140 IF TL$<>"..R"THEN 4150ELSE IF PTP2 THEN 4145 4141 IF HE=0 THEN GOSUB 6000:HE=1 4142 PRT=0:FOR N=1 TO LEN(TR$):PRT=PRT+SIZE(ASC(MID$(TR$,N))):NEXT 4143 GOSUB 6900:SIZE=RM-LM-PRT:SIZE=SIZE+LM:IF SIZE>0 THEN GOSUB 20000 4144 GOSUB 6910 4145 A$=CHR$(13):PR$=TR$:GOSUB 5900:PRINT TAB(78)"R":IF PTP2 THEN 2901 4146 PRT$=TR$:LN=LEN(PRT$):DIV=LN:REST=0:GOTO 2110 4150 IF TL$<>".CP"THEN 4160ELSE IF LP-PP+1>VAL(TR$)THEN RETURN 4151 GOSUB 6200:GOSUB 6000:RETURN 4160 IF TL$<>"..J"THEN 4170ELSE OJ=VAL(TR$):IF OJ<>0 THEN OJ=1 4161 RETURN 4170 IF TL$<>"..I"THEN 4180ELSE LI=INSTR(TR$,"."):IF LI=0 THEN RETURN 4171 PRT$=MID$(TR$,LI+1):LI=VAL(MID$(TR$,LI-2,2))*INCSIZ/10 4172 PR$=PRT$:IF AD=1 THEN PRT$="":PRT=PRT+LI:RETURN 4173 IF PTP2 THEN 4175ELSE IF HE=0 THEN GOSUB 6000:HE=1 4174 GOSUB 6900:SIZE=LM:GOSUB 20000:GOSUB 6910 4175 A$=CHR$(13):GOSUB 5900:PRINT TAB(78)"I":IF PTP2 THEN 2901 4176 LN=LEN(PRT$):DIV=LN:REST=0:LSET T$="" 4179 GOSUB 2110:LSET T$=CHR$(10):RETURN 4180 IF TL$<>".LH"THEN 4190ELSE LHH=VAL(TR$):IF LHH<1 OR LHH>96 THEN RETURN 4181 PL=PL*LH/LHH:LP=PL-MT-MB:LH=LHH:GOSUB 14000:LPRINT CHR$(13);:RETURN 4190 IF TL$<>".SR"THEN 4200ELSE SRR=VAL(TR$):IF SRR<1 OR SRR>LH THEN RETURN 4191 SR=SRR:RETURN 4200 RETURN 5000 'Regel op scherm, afbreken 5010 IF A$=CHR$(13)THEN PR$=PRT$:GOSUB 5900:PRINT TAB(78)"<":RETURN 5020 PR$=PRT$:GOSUB 5910:PRINT TAB(78)" " 5021 AH$=LEFT$(A$+MID$(TXT$,TXT+1),25) 5025 IF AH=0 THEN RETURN 5030 IF LEN(A$)<=3 THEN RETURN 5040 PRINT CHR$(7); 5050 IF C$=" "THEN AHL=PRT+SIZE(32)+A 5051 IF C$="-"THEN AHL=PRT+A 5052 IF C$=CHR$(30)THEN AHL=PRT-SIZE(45)+A 5053 AHM=LEN(A$) 5060 AHL=AHL-SIZE(ASC(MID$(A$,AHM,1))):AHM=AHM-1 5061 IF AHL+SIZE(45)>RM THEN 5060 5090 AHP=AHM 5100 PRINT TAB(72-AHP)"<...>";:PR$=LEFT$(AH$,AHP)+"-":GOSUB 5900:PRINT TAB(78)"? 5101 PR$=MID$(AH$,AHP+1):GOSUB 5900 5105 I$=INPUT$(1) 5110 IF (I$=CHR$(19)OR I$="4")AND AHP<>1 THEN AHP=AHP-1:GOTO 5100 5120 IF (I$=CHR$(4)OR I$="6")AND AHP<>AHM THEN AHP=AHP+1:GOTO 5100 5130 IF I$="-"THEN 5200 5140 IF I$=" "OR I$=CHR$(13)THEN PRINT TAB(78)"?":RETURN 5150 GOTO 5105 5200 'Nieuwe afbreking 5210 IF C$=CHR$(30)THEN PRT$=LEFT$(PRT$,LN-1):PRT=PRT-SIZE(45):LN=LN-1:GOTO 5300 5220 IF C$<>"-"THEN PRT$=PRT$+" ":SPAC=SPAC+1:PRT=PRT+SIZE(32):LN=LN+1:GOTO 5300 5300 FOR N=1 TO AHP:B$=MID$(A$,N,1):PRT$=PRT$+B$:PRT=PRT+SIZE(ASC(B$)) 5310 A=A-SIZE(ASC(B$)):LN=LN+1:NEXT 5320 PRT$=PRT$+"-":PRT=PRT+SIZE(45):LN=LN+1 5330 A$=MID$(A$,AHP+1) 5400 PRINT TAB(78)"-" 5410 RETURN 5900 NMX=77:'regel op scherm 5901 NM=0:FOR N=1 TO LEN(PR$):M=ASC(MID$(PR$,N,1)):IF M<32 OR M>126 THEN 5903 5902 PRINT CHR$(M);:NM=NM+1:IF NM=NMX THEN N=999 5903 NEXT N:RETURN 5910 IF LEN(PR$)<78 THEN 5900ELSE NMX=36:GOSUB 5901:PR$=RIGHT$(PR$,36):PRINT"<...>";:GOTO 5900 6000 'Top & Bottom 6001 PT$="("+MID$(STR$(PT),2) 6002 IF PN<>0 AND PT<>PN THEN PT$=PT$+"/"+MID$(STR$(PN),2) 6003 IF PN=0 THEN PT$=PT$+"/-" 6004 PT$=PT$+")" 6005 PRINT PT$STRING$(78-LEN(PT$),"-"):IF LV=0 OR PTP2 THEN 6010 6006 PRINT"Toets RETURN voor volgend vel."CHR$(7)" "CHR$(7) 6007 I$=INPUT$(1):PRINT STRING$(78,"-") 6010 PP=0:IF MT=0 OR PTP2 THEN 6090 6011 IF HM>MT-1 THEN FOR N=1 TO MT:LPRINT:NEXT:GOTO 6090 6020 FOR N=1 TO MT-HM-1:LPRINT:NEXT 6030 IF HE$=".h."THEN PP=1:LPRINT:GOTO 6060 ELSE PRT$=HE$ 6031 IS=INSTR(PRT$,"#"):IF IS=0 THEN 6040ELSE IL=1 6032 IF MID$(PRT$,IS+IL,1)="#"THEN IL=IL+1:GOTO 6032 6033 MID$(PRT$,IS,IL)=RIGHT$(STRING$(IL,32)+STR$(PN),IL) 6040 GOSUB 6900 6050 SIZE=LM:GOSUB 20000:REST=0:LN=LEN(PRT$):DIV=LN:GOSUB 2110:GOSUB 6910 6060 FOR N=1 TO HM:LPRINT:NEXT:PP=0 6090 RETURN 6100 IF MB=0 OR PTP2 THEN 6190 6101 IF FM>MB-1 THEN FOR N=1 TO MB:LPRINT:NEXT:GOTO 6190 6110 PP=0:FOR N=1 TO FM:LPRINT:NEXT 6120 IF FO$=".f."THEN PRT$=STRING$((RM-LM)/2/SIZE(32)-1,32)+"###"ELSE PRT$=FO$ 6121 IF PN=0 AND FO$=".f."THEN PRT$=" " 6122 IS=INSTR(PRT$,"#"):IF IS=0 THEN 6130ELSE IL=1 6123 IF MID$(PRT$,IS+IL,1)="#"THEN IL=IL+1:GOTO 6123 6124 MID$(PRT$,IS,IL)=RIGHT$(STRING$(IL,32)+STR$(PN),IL) 6130 GOSUB 6900 6131 SIZE=LM:GOSUB 20000:REST=0:LN=LEN(PRT$):DIV=LN:GOSUB 2110:GOSUB 6910 6132 FOR N=1 TO MB-FM-1:LPRINT:NEXT 6190 LP=PL-MT-MB:PT=PT+1:IF PN<>0 THEN PN=PN+1 6191 RETURN 6200 IF PTP2 THEN 6100 6210 FOR N=PP+1 TO LP:LPRINT:NEXT:GOTO 6100 6900 'Tijdelijk uitzetten 6901 IF UNDFLG=1 THEN GOSUB 30000:UFLG=1ELSE UFLG=0 6902 IF BLDFLG=1 THEN GOSUB 31000:BFLG=1ELSE BFLG=0 6903 IF DBLFLG=1 THEN GOSUB 31500:DFLG=1ELSE DFLG=0 6904 IF REDFLG=1 THEN GOSUB 34000:RFLG=1ELSE RFLG=0 6905 RETURN 6910 'Weer aanzetten 6911 IF UFLG=1 THEN GOSUB 30000 6912 IF BFLG=1 THEN GOSUB 31000 6913 IF DFLG=1 THEN GOSUB 31500 6914 IF RFLG=1 THEN GOSUB 34000 6915 RETURN 7000 'Regel in bestand 7010 IF A$<>CHR$(13)THEN 7100 7020 IF T$<>CHR$(10)AND T$<>CHR$(138)AND T<>26 THEN 7021ELSE 7030 7021 PRINT#2,PRT$A$;:RETURN 7030 PRINT#2,PRT$:RETURN 7100 BRL=LEN(PRT$):BRI$=RIGHT$(PRT$,1) 7105 IF BRI$="-"THEN MID$(PRT$,BRL,1)=CHR$(31):GOTO 7120 7110 MID$(PRT$,BRL,1)=CHR$(ASC(BRI$)OR 128):PRT$=PRT$+" " 7120 PRINT#2,PRT$CHR$(128+13)CHR$(10);:RETURN 9999 'Begin printerdeel: 10000 'PRINIT: Initialiseer printer 10010 LPRINT CHR$(27)CHR$(13)"P" 10020 PRT=LM:PRT$="":SPAC=0:RETURN 10030 'Breedte per letter ASCII 32 t/m 127 + aantal punten/inch 10040 DATA 3,3,4,6,5,7,7,3, 3,3,5,5,3,4,3,4 10041 DATA 5,5,5,5,5,5,5,5, 5,5,3,3,5,5,5,5 10042 DATA 8,7,6,7,7,6,6,7, 7,3,5,7,6,8,7,7 10043 DATA 6,7,7,5,6,7,6,8, 7,7,6,5,4,6,5,5 10044 DATA 4,5,5,5,5,5,4,5, 5,3,3,5,3,8,5,5 10045 DATA 5,5,4,4,4,5,5,7, 5,5,5,5,5,6,5,5 10050 DATA 60:'Diablo 1610 10060 'Breedte Phantom Space & Rubout 10061 DATA 5,5 14000 EL$=CHR$(30)+CHR$(128+LH+1) 14010 LPRINT E$EL$;:RETURN 15000 IF B$=CHR$(8)THEN LPRINT B$B$;:RETURN 15001 IF B$<" "OR B$=CHR$(137)THEN LPRINT B$;:RETURN 15005 SZ=SIZE(ASC(B$))+1 15010 IF SZ<>9 THEN 15100 15020 LPRINT E$CHR$(31)CHR$(5)" "B$" ";:RETURN 15100 LPRINT E$CHR$(31)CHR$(SZ)" "B$;:RETURN 20000 'PRTSPC: Print (SIZE) puntjes 20010 LPRINT E$CHR$(31)CHR$(3); 20020 FOR N=1 TO SIZE:LPRINT" ";:NEXT:RETURN 30000 'UNDERL: Omschakelen onderlijning 30010 IF UNDFLG=0 THEN LPRINT CHR$(27)"E";:UNDFLG=1:RETURN 30020 LPRINT CHR$(27)"R";:UNDFLG=0:RETURN 31000 'BOLDFC: Omschakelen vet printen 31010 IF BLDFLG=0 THEN LPRINT CHR$(27)"W";:BLDFLG=1:RETURN 31020 LPRINT CHR$(27)"&";:BLDFLG=0:IF DBLFLG=1 THEN LPRINT CHR$(27)"F"; 31030 RETURN 31500 'DBLSTR: Omschakelen dubbel printen 31510 IF DBLFLG=0 THEN LPRINT CHR$(27)"F";:DBLFLG=1:RETURN 31520 LPRINT CHR$(27)"&";:DBLFLG=0:IF BLDFLG=1 THEN LPRINT CHR$(27)"W"; 31530 RETURN 32000 'SUBSCR: Onder de regel printen 32005 LHH=LH:LH=SR*2:GOSUB 14000 32010 IF SUBFLG=0 THEN LPRINT E$"U";:SUBFLG=1:GOTO 32030 32020 LPRINT E$"D";:SUBFLG=0 32030 LH=LHH:GOSUB 14000:RETURN 33000 'SUPSCR: Boven de regel printen 33005 LHH=LH:LH=SR*2:GOSUB 14000 33010 IF SUPFLG=0 THEN LPRINT E$"D";:SUPFLG=1:GOTO 33030 33020 LPRINT E$"U";:SUPFLG=0 33030 LH=LHH:GOSUB 14000:RETURN 34000 'REDPRT: Rood printen 34010 IF REDFLG=0 THEN LPRINT E$"A";:REDFLG=1:RETURN 34020 LPRINT E$"B";:REDFLG=0:RETURN 35000 'Phantom Space & Rubout: 35001 LPRINT CHR$(27)"Y";:RETURN 35010 LPRINT CHR$(27)"Z";:RETURN