{***********************************} { UNIT star } { Printer koder til STAR LC-20 } { } { skrevet af } { Mikael Mortensen } { } { 1993 } {***********************************} UNIT star; INTERFACE PROCEDURE draft; PROCEDURE draft_elite; PROCEDURE nlq_karak; PROCEDURE nlq_font(n : BYTE); { side 33 } PROCEDURE courier; PROCEDURE sanserif; PROCEDURE oratorblok; { orator med sm blokbogstaver } PROCEDURE italics; PROCEDURE italics_nlq; PROCEDURE opret; { standser italics } PROCEDURE fremh; { karakterne fremhves } PROCEDURE afbrydfremh; { afbryder fremhvet printning } PROCEDURE double_strike; PROCEDURE afbryd_double_strike; PROCEDURE begynd_understregning; PROCEDURE stands_understregning; PROCEDURE begynd_overstregning; PROCEDURE stands_overstregning; PROCEDURE superscript; PROCEDURE subscript; PROCEDURE afbryd_sub_supscript; PROCEDURE standard; { vlg standard karakterst} PROCEDURE ibm; { vlg IBM karakterst} PROCEDURE karak_et; { vlg karakterst #1} PROCEDURE karak_to; { vlg karakterst #2} PROCEDURE int(n : BYTE); { vlg internationalt karakterst } { vrdierne str side 38 i printer manualen} PROCEDURE alle_karak(n1,n2 : INTEGER); { muligr printning af alle } { karakterkoder se side 38 } PROCEDURE alle_karak2; { muligr printning af alle karakterkoder } { ved nste karakter se side 38 } PROCEDURE slash_nul;{ efterflgende nul karakterer overprintes m/en slash ()} PROCEDURE normalt_nul;{ efterflgende nul karakterer printes normalt (O)} PROCEDURE pica_pitch; PROCEDURE elite_pitch; PROCEDURE formindsket_print; PROCEDURE afbryd_formindsket_print; PROCEDURE udvidet_printning; PROCEDURE afbryd_udvidet_printning; PROCEDURE udvidet_print_lin; { udvidet printning for en linie } PROCEDURE af_udvidet_print_lin; { afbryd udvidet printning for en linie } PROCEDURE pro; { vlg proportional afstand } PROCEDURE fast; { vlg fast afstand } PROCEDURE master(n : INTEGER); { vlg master print mode, se side 41 } PROCEDURE oeg_karak(n : BYTE); { g karakterafstand, se side 42 } PROCEDURE dob_firedob(n : BYTE); { vlg dobbelt eller firedobbelt strrelse } PROCEDURE karakstr(n : BYTE); { vlg karakterstrrelse, se side 42 } PROCEDURE dobh; { print dobbelt hje karakterer } PROCEDURE returnorm; { returner til normal hjde } PROCEDURE karak_hj_bd_lin(n,m : BYTE); { vlg karakter hjde,bredde og } { linieafstand, se side 43 } PROCEDURE et_otte_tomme; { st linieafstand til 1/8 tomme } PROCEDURE syv_syvto_tomme; { st linieafstand til 7/72 tomme } PROCEDURE et_seks_tomme; { st linieafstand til 1/6 tomme } PROCEDURE n_toetseks_tomme(n : INTEGER); { st linieafstand til n/216 tomme } PROCEDURE n_syvto_tomme(n : INTEGER); { st linieafstand til n/72 tomme } PROCEDURE udesca; { udfr "A" ,se side 45} PROCEDURE line_feed; PROCEDURE omvendt_line_feed; PROCEDURE n_toetseks_line_feed(n : INTEGER);{ udfr et n/216 tomme LF,se side 46 } PROCEDURE n_toetseks_omvendt_lf(n : INTEGER);{ udfr et n/216 tomme omvendt LF } PROCEDURE papir_lin(n : INTEGER);{ fd papiret n linier n = 0 - 127 } PROCEDURE top; { st top-of-page ved den aktuelle position } PROCEDURE sidelen(n : INTEGER); { st sidelngden til n linier } PROCEDURE sidetom(n : BYTE); { st sidelngden til n tommer,side 47 } PROCEDURE bundmargin(n : INTEGER); { st bundmargin } PROCEDURE afbrydbundmargin; PROCEDURE form_feed; PROCEDURE returtop; { retuner til toppen af den aktuelle side } PROCEDURE afbryd_paperout; { afbryd paper-out detektor } PROCEDURE start_paperout; { start paper-out detektor } PROCEDURE venstremargin(n : INTEGER); { st venstre margin,side 49 } PROCEDURE hjmargin(n : INTEGER); { st hjre margin,side 50 } PROCEDURE hjvnmargin(n1,n2 : INTEGER); { st hjre og venstre margin,side 50 } PROCEDURE vognretur; PROCEDURE autlf; { st automatisk line feed } PROCEDURE afbrydautlf; { afbryd automatisk line feed } PROCEDURE backspace; PROCEDURE venstrejustering; PROCEDURE centrertekst; PROCEDURE hjjustering; { hjre justering } PROCEDURE msb_et; { st MSB til 1,side 60 } PROCEDURE msb_nul; { st MSB til 0 } PROCEDURE accmsb; { accepter MSB som den er } PROCEDURE slet_sidst; { slet sidst sendte karakter, side 60 } PROCEDURE afbryd_sidst; { afbryd sidste linie } PROCEDURE quiet_print; PROCEDURE afbryd_quiet_print; PROCEDURE printer_off; { st printer off-line } PROCEDURE printer_on; { st printer on-line } PROCEDURE klokke; PROCEDURE tovejs_print; { side 62 } PROCEDURE envejs_print; { side 62 } PROCEDURE enlinie_print; { en linie envejs printning, side 62 } PROCEDURE manuel; { manuel fdning, side 62 } PROCEDURE auto; { auto fdning, side 62 } PROCEDURE udkast_asf; { udkast papiret fra ASF, side 63 } PROCEDURE start_asf(n : BYTE); { st print start positionen p ASF, side 63 } PROCEDURE reset_all; { reset printer } IMPLEMENTATION USES printer; {----------------FONT KONTROL KOMMANDOER------------------} PROCEDURE draft; BEGIN WRITE(LST,#40,#40,#70,#41,#41,#57); END; {draft} {---------------------------------------------------------} PROCEDURE draft_elite; BEGIN WRITE(LST,#27,#73,#49); END; {draft_elite} {---------------------------------------------------------} PROCEDURE nlq_karak; BEGIN WRITE(LST,#27,#120,#49); END; {nlq_karak} {---------------------------------------------------------} PROCEDURE nlq_font(n : BYTE); { side 33 } BEGIN WRITE(LST,#27,#107,n); END; {nlq_font} {---------------------------------------------------------} PROCEDURE courier; BEGIN WRITE(LST,#40,#40,#70,#41,#41,#48); END;{courier} {---------------------------------------------------------} PROCEDURE sanserif; BEGIN WRITE(LST,#40,#40,#70,#41,#41,#49); END; {sanserif} {---------------------------------------------------------} PROCEDURE oratorblok; { orator med sm blokbogstaver } BEGIN WRITE(LST,#40,#40,#70,#41,#41,#55); END; {oratorblok} {---------------------------------------------------------} PROCEDURE italics; BEGIN WRITE(LST,#27,#52); END; {italics} {---------------------------------------------------------} PROCEDURE italics_nlq; BEGIN WRITE(LST,#27,#73,#11); END; {italics_nlq} {---------------------------------------------------------} PROCEDURE opret; { standser italics } BEGIN WRITE(LST,#27,#53); END; {opret} {---------------------------------------------------------} PROCEDURE fremh; { karakterne fremhves } BEGIN WRITE(LST,#27,#69); END; {fremh} {---------------------------------------------------------} PROCEDURE afbrydfremh; { afbryder fremhvet printning } BEGIN WRITE(LST,#27,#70); END; {afbrydfremh} {---------------------------------------------------------} PROCEDURE double_strike; BEGIN WRITE(LST,#27,#71); END; {double_strike} {---------------------------------------------------------} PROCEDURE afbryd_double_strike; BEGIN WRITE(LST,#27,#72); END; {afbryd_double_strike} {---------------------------------------------------------} PROCEDURE begynd_understregning; BEGIN WRITE(LST,#27,#45,#49); END; {begynd_understregning} {---------------------------------------------------------} PROCEDURE stands_understregning; BEGIN WRITE(LST,#27,#45,#48); END; {stands_understregning} {---------------------------------------------------------} PROCEDURE begynd_overstregning; BEGIN WRITE(LST,#27,#95,#49); END; {begynd_overstregning} {---------------------------------------------------------} PROCEDURE stands_overstregning; BEGIN WRITE(LST,#27,#95,#48); END; {stands_overstregning} {---------------------------------------------------------} PROCEDURE superscript; BEGIN WRITE(LST,#27,#83,#48); END; {superscript} {---------------------------------------------------------} PROCEDURE subscript; BEGIN WRITE(LST,#27,#83,#49); END; {subscript} {---------------------------------------------------------} PROCEDURE afbryd_sub_supscript; BEGIN WRITE(LST,#27,#84); END; {afbryd_sub_supscript} {----------------KARAKTERST KOMMANDOER-------------------} PROCEDURE standard; { vlg standard karakterst} BEGIN WRITE(LST,#27,#116,#48); END; {standard} {---------------------------------------------------------} PROCEDURE ibm; { vlg IBM karakterst} BEGIN WRITE(LST,#27,#116,#49); END; {ibm} {---------------------------------------------------------} PROCEDURE karak_et; { vlg karakterst #1} BEGIN WRITE(LST,#27,#55); END; {karak_et} {---------------------------------------------------------} PROCEDURE karak_to; { vlg karakterst #2} BEGIN WRITE(LST,#27,#54); END; {karak_to} {---------------------------------------------------------} PROCEDURE int(n : BYTE); { vlg internationalt karakterst } { vrdierne str side 38 i printer manualen} BEGIN WRITE(LST,#27,#82,n); END; {int} {---------------------------------------------------------} PROCEDURE alle_karak(n1,n2 : INTEGER); { muligr printning af alle } { karakterkoder se side 38 } BEGIN WRITE(LST,#27,#92,n1,n2); END; {alle_karak} {---------------------------------------------------------} PROCEDURE alle_karak2; { muligr printning af alle karakterkoder } { ved nste karakter se side 38 } BEGIN WRITE(LST,#27,#94); END; {alle_karak2} {---------------------------------------------------------} PROCEDURE slash_nul;{ efterflgende nul karakterer overprintes m/en slash ()} BEGIN WRITE(LST,#27,#126,#48); END; {slash_nul} {---------------------------------------------------------} PROCEDURE normalt_nul;{ efterflgende nul karakterer printes normalt (O)} BEGIN WRITE(LST,#27,#126,#49); END; {normalt_nul} {-----------KARAKTER STRRELSE OG PITCH KOMMANDOER--------} PROCEDURE pica_pitch; BEGIN WRITE(LST,#27,#80); END; {pica_pitch} {---------------------------------------------------------} PROCEDURE elite_pitch; BEGIN WRITE(LST,#27,#77); END; {elite_pitch} {---------------------------------------------------------} PROCEDURE formindsket_print; BEGIN WRITE(LST,#15); END; {formindsket_print} {---------------------------------------------------------} PROCEDURE afbryd_formindsket_print; BEGIN WRITE(LST,#18); END; {afbryd_formindsket_print} {---------------------------------------------------------} PROCEDURE udvidet_printning; BEGIN WRITE(LST,#27,#87,#49); END; {udvidet_printning} {---------------------------------------------------------} PROCEDURE afbryd_udvidet_printning; BEGIN WRITE(LST,#27,#87,#48); END; {afbryd_udvidet_printning} {---------------------------------------------------------} PROCEDURE udvidet_print_lin; { udvidet printning for en linie } BEGIN WRITE(LST,#14); END; {udvidet_print_lin} {---------------------------------------------------------} PROCEDURE af_udvidet_print_lin; { afbryd udvidet printning for en linie } BEGIN WRITE(LST,#20); END; {af_udvidet_print_lin} {---------------------------------------------------------} PROCEDURE pro; { vlg proportional afstand } BEGIN WRITE(LST,#27,#112,#49); END; {pro} {---------------------------------------------------------} PROCEDURE fast; { vlg fast afstand } BEGIN WRITE(LST,#27,#112,#48); END; {fast} {---------------------------------------------------------} PROCEDURE master(n : INTEGER); { vlg master print mode, se side 41 } BEGIN WRITE(LST,#27,#33,n); END; {master} {---------------------------------------------------------} PROCEDURE oeg_karak(n : BYTE); { g karakterafstand, se side 42 } BEGIN WRITE(LST,#27,#32,n); END; {oeg_karak} {---------------------------------------------------------} PROCEDURE dob_firedob(n : BYTE); { vlg dobbelt eller firedobbelt strrelse } { se side 42 } BEGIN WRITE(LST,#27,#104,n); END; {dob_firedob} {---------------------------------------------------------} PROCEDURE karakstr(n : BYTE); { vlg karakterstrrelse, se side 42 } BEGIN WRITE(LST,#40,#40,#83,#41,#41,n); END; {karakstr} {---------------------------------------------------------} PROCEDURE dobh; { print dobbelt hje karakterer } BEGIN WRITE(LST,#27,#119,#49); END; {dobh} {---------------------------------------------------------} PROCEDURE returnorm; { returner til normal hjde } BEGIN WRITE(LST,#27,#119,#48); END; {returnorm} {---------------------------------------------------------} PROCEDURE karak_hj_bd_lin(n,m : BYTE); { vlg karakter hjde,bredde og } { linieafstand, se side 43 } BEGIN WRITE(LST,#27,#91,#64,#4,#0,#0,#0,n,m); END; {karak_hj_bd_lin} {----------------VERTIKAL POSITION KOMMANDOER--------------} PROCEDURE et_otte_tomme; { st linieafstand til 1/8 tomme } BEGIN WRITE(LST,#27,#48); END; {1_8_tomme} {---------------------------------------------------------} PROCEDURE syv_syvto_tomme; { st linieafstand til 7/72 tomme } BEGIN WRITE(LST,#27,#49); END; {7_72_tomme} {---------------------------------------------------------} PROCEDURE et_seks_tomme; { st linieafstand til 1/6 tomme } BEGIN WRITE(LST,#27,#50); END; {1_6_tomme} {---------------------------------------------------------} PROCEDURE n_toetseks_tomme(n : INTEGER); { st linieafstand til n/216 tomme } { se side 44 } BEGIN WRITE(LST,#27,#51,n); END; {n_216_tomme} {---------------------------------------------------------} PROCEDURE n_syvto_tomme(n : INTEGER); { st linieafstand til n/72 tomme } { se side 45 } BEGIN WRITE(LST,#27,#65,n); END; {n_72_tomme} {---------------------------------------------------------} PROCEDURE udesca; { udfr "A" ,se side 45} BEGIN WRITE(LST,#27,#50); END; {udesca} {---------------------------------------------------------} PROCEDURE line_feed; BEGIN WRITE(LST,#10); END; {line_feed} {---------------------------------------------------------} PROCEDURE omvendt_line_feed; BEGIN WRITE(LST,#27,#10); END; {omvendt_line_feed} {---------------------------------------------------------} PROCEDURE n_toetseks_line_feed(n : INTEGER);{ udfr et n/216 tomme LF,se side 46 } BEGIN WRITE(LST,#27,#74,n); END; {n_216_line_feed} {---------------------------------------------------------} PROCEDURE n_toetseks_omvendt_lf(n : INTEGER);{ udfr et n/216 tomme omvendt LF } { se side 46 } BEGIN WRITE(LST,#27,#106,n); END; {n_216_omvendt_lf} {---------------------------------------------------------} PROCEDURE papir_lin(n : INTEGER);{ fd papiret n linier n = 0 - 127 } BEGIN WRITE(LST,#27,#102,#49,n); END; {papir_lin} {---------------------------------------------------------} PROCEDURE top; { st top-of-page ved den aktuelle position } BEGIN WRITE(LST,#27,#52); END; {top} {---------------------------------------------------------} PROCEDURE sidelen(n : INTEGER); { st sidelngden til n linier } BEGIN WRITE(LST,#27,#67,n); END; {sidelen} {---------------------------------------------------------} PROCEDURE sidetom(n : BYTE); { st sidelngden til n tommer,side 47 } BEGIN WRITE(LST,#27,#67,#0,n); END; {sidetom} {---------------------------------------------------------} PROCEDURE bundmargin(n : INTEGER); { st bundmargin } BEGIN WRITE(LST,#27,#77,n); END; {bundmargin} {---------------------------------------------------------} PROCEDURE afbrydbundmargin; BEGIN WRITE(LST,#27,#79); END; {afbrydbundmargin} {---------------------------------------------------------} PROCEDURE form_feed; BEGIN WRITE(LST,#12); END; {form_feed} {---------------------------------------------------------} PROCEDURE returtop; { retuner til toppen af den aktuelle side } BEGIN WRITE(LST,#27,#12); END; {returtop} {---------------------------------------------------------} PROCEDURE afbryd_paperout; { afbryd paper-out detektor } BEGIN WRITE(LST,#27,#56); END; {afbryd_paperout} {---------------------------------------------------------} PROCEDURE start_paperout; { start paper-out detektor } BEGIN WRITE(LST,#27,#57); END; {start_paperout} {--------------HORISONTAL POSITION KOMMANDOER--------------} PROCEDURE venstremargin(n : INTEGER); { st venstre margin,side 49 } BEGIN WRITE(LST,#27,#108,n); END; {venstremargin} {---------------------------------------------------------} PROCEDURE hjmargin(n : INTEGER); { st hjre margin,side 50 } BEGIN WRITE(LST,#27,#81,n); END; {hjmargin} {---------------------------------------------------------} PROCEDURE hjvnmargin(n1,n2 : INTEGER); { st hjre og venstre margin,side 50 } BEGIN WRITE(LST,#27,#88,n1,n2); END; {venstremargin} {---------------------------------------------------------} PROCEDURE vognretur; BEGIN WRITE(LST,#13); END; {vognretur} {---------------------------------------------------------} PROCEDURE autlf; { st automatisk line feed } BEGIN WRITE(LST,#27,#53,#1); END; {autolf} {---------------------------------------------------------} PROCEDURE afbrydautlf; { afbryd automatisk line feed } BEGIN WRITE(LST,#27,#53,#0); END; {afbrydautlf} {---------------------------------------------------------} PROCEDURE backspace; BEGIN WRITE(LST,#8); END; {backspace} {---------------------------------------------------------} PROCEDURE venstrejustering; BEGIN WRITE(LST,#27,#97,#48); END; {venstrejustering} {---------------------------------------------------------} PROCEDURE centrertekst; BEGIN WRITE(LST,#27,#97,#49); END; {centrertekst} {---------------------------------------------------------} PROCEDURE hjjustering; { hjre justering } BEGIN WRITE(LST,#27,#97,#50); END; {hjjustering} {--------------ANDRE PRINTER KONTROL KOMMANDOER-----------} PROCEDURE msb_et; { st MSB til 1,side 60 } BEGIN WRITE(LST,#27,#62); END; {msb_et} {---------------------------------------------------------} PROCEDURE msb_nul; { st MSB til 0 } BEGIN WRITE(LST,#27,#61); END; {msb_nul} {---------------------------------------------------------} PROCEDURE accmsb; { accepter MSB som den er } BEGIN WRITE(LST,#27,#35); END; {accmsb} {---------------------------------------------------------} PROCEDURE slet_sidst; { slet sidst sendte karakter, side 60 } BEGIN WRITE(LST,#127); END; {slet_sidst} {---------------------------------------------------------} PROCEDURE afbryd_sidst; { afbryd sidste linie } BEGIN WRITE(LST,#24); END; {afbryd_sidst} {---------------------------------------------------------} PROCEDURE quiet_print; BEGIN WRITE(LST,#27,#115,#49); END; {quiet_print} {---------------------------------------------------------} PROCEDURE afbryd_quiet_print; BEGIN WRITE(LST,#27,#115,#48); END; {afbryd_quiet_print} {---------------------------------------------------------} PROCEDURE printer_off; { st printer off-line } BEGIN WRITE(LST,#19); END; {printer_off} {---------------------------------------------------------} PROCEDURE printer_on; { st printer on-line } BEGIN WRITE(LST,#17); END; {printer_on} {---------------------------------------------------------} PROCEDURE klokke; BEGIN WRITE(LST,#7); END; {klokke} {---------------------------------------------------------} PROCEDURE tovejs_print; { side 62 } BEGIN WRITE(LST,#27,#85,#48); END; {tovejs_print} {---------------------------------------------------------} PROCEDURE envejs_print; { side 62 } BEGIN WRITE(LST,#27,#85,#49); END; {envejs_print} {---------------------------------------------------------} PROCEDURE enlinie_print; { en linie envejs printning, side 62 } BEGIN WRITE(LST,#27,#60); END; {enlinie_print} {---------------------------------------------------------} PROCEDURE manuel; { manuel fdning, side 62 } BEGIN WRITE(LST,#27,#25,#0); END; {manuel} {---------------------------------------------------------} PROCEDURE auto; { auto fdning, side 62 } BEGIN WRITE(LST,#27,#25,#4); END; {auto} {---------------------------------------------------------} PROCEDURE udkast_asf; { udkast papiret fra ASF, side 63 } BEGIN WRITE(LST,#27,#25,#82); END; {udkast_asf} {---------------------------------------------------------} PROCEDURE start_asf(n : BYTE); { st print start positionen p ASF, side 63 } BEGIN WRITE(LST,#27,#25,#84,n); END; {start_asf} {---------------------------------------------------------} PROCEDURE reset_all; { reset printer } BEGIN WRITE(LST,#27,#64); END; {reset_all} {---------------------------------------------------------} {*********************************************************} BEGIN END.