diff options
| author | Lars-Dominik Braun <lars@6xq.net> | 2016-09-30 16:57:23 +0200 | 
|---|---|---|
| committer | Lars-Dominik Braun <lars@6xq.net> | 2016-09-30 16:59:06 +0200 | 
| commit | 724cc003460ec67eda269911da85c9f9e40aa6cf (patch) | |
| tree | 14e27b45e04279516e4be546b15dcf6fafe17268 /printer/dotmatrix9 | |
| download | eumel-src-724cc003460ec67eda269911da85c9f9e40aa6cf.tar.gz eumel-src-724cc003460ec67eda269911da85c9f9e40aa6cf.tar.bz2 eumel-src-724cc003460ec67eda269911da85c9f9e40aa6cf.zip | |
Add extracted sources from floppy disk images
Some files have no textual representation (yet) and were added as raw
dataspaces.
Diffstat (limited to 'printer/dotmatrix9')
| -rw-r--r-- | printer/dotmatrix9/beschreibungen9 | 97 | ||||
| -rw-r--r-- | printer/dotmatrix9/fonttab.1 | bin | 0 -> 11264 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.10 | bin | 0 -> 15872 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.20 | bin | 0 -> 36864 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.20.lc | bin | 0 -> 36864 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.20.lx | bin | 0 -> 24576 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.7 | bin | 0 -> 46080 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.7.cxp | bin | 0 -> 46080 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.7.fuj | bin | 0 -> 56832 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/fonttab.7.mt | bin | 0 -> 46080 bytes | |||
| -rw-r--r-- | printer/dotmatrix9/module9 | 1099 | ||||
| -rw-r--r-- | printer/dotmatrix9/printer.neun.nadel | 1129 | ||||
| -rw-r--r-- | printer/dotmatrix9/readme | 324 | 
13 files changed, 2649 insertions, 0 deletions
| diff --git a/printer/dotmatrix9/beschreibungen9 b/printer/dotmatrix9/beschreibungen9 new file mode 100644 index 0000000..6a74b88 --- /dev/null +++ b/printer/dotmatrix9/beschreibungen9 @@ -0,0 +1,97 @@ +  +(*************************************************************************) +(*                                            Stand   : 01.10.88         *) +(*  Beschreibungen-Datei für 9-Nadel-Drucker  Version : 0.9              *) +(*                                            Autoren : mov/hjh          *) +(*************************************************************************) +  +$fx85$  +head;hfx85;decl;speed;openh;opendoch;initspeed;opendocfx85;openpge;betwoc;  +clpge;betwce;cmd;crs;moh;mofx85;ymodr;onoff;tyfx85;end  + +$fx800$  +head;hfx800;decl;quality;typeface;openh;opendoch;opendocfx800;openpge;betwoc;  +clpge;betwce;cmdfx800;crs;moh;mofx800;ymodr;onoff;tyfx800;end  + +$mx$  +head;hmx;decl;speed;openh;opendoch;initspeed;opendocmx;openpge;betwoc;clpge;  +betwce;cmd;crs;moh;modrmx;onoff;tymx;end  +  +$lx800$  +head;hlx800;decl;speed;quality;typeface;openh;opendoch;initspeed;  +opendocfx800;openpge;betwoc;clpge;betwce;cmdfx800;crs;moh;mofx85;ymodr;onoff;  +tyfx800;end  + +$ibmgp$  +head;hgp;decl;speed;openh;opendoch;initspeed;opendocgp;openpge;betwoc;  +clpge;betwce;cmd;crs;moh;mogp;ymodr;onoff;tyfx85;end  +  +$ibmpp$  +head;hpp;decl;speed;quality;openh;opendoch;initspeed;opendocpp;openpge;  +betwoc;clpge;betwce;cmdpp;crs;moh;mofx85;ymodr;onoffpp;tyfx85;end  +  +$okiml182i$ +head;hml182i;decl;speed;quality;openh;opendoch;initspeed;opendocml182i;  +opendocgp;openpge;betwoc;clpge;betwce;cmdml182i;crs;moh;mogp;ymodr;onoff;  +tyohnesmall;end  +  +$okiml192el$  +head;hml192el;decl;speed;feed;openh;opendoch;initspeed;opendocml192el;  +openpgemlsf;betwoc;clmlsf;betwce;cmd;crs;moh;moml192el;ymodr;onoff;tyml192el;  +end  +  +$okiml292el$  +head;hml292el;decl;quality;typeface292;feed;openh;opendoch;opendocml292el;  +openpgemlsf;betwoc;clmlsf;betwce;cmdml292el;crs;moh;mofx800;ymodr;onoff;  +tyml292el;end  +  +$okiml294i$  +head;hml294i;decl;speed;quality;feed;openh;opendoch;initspeed;opendocml294i;  +openpgemlsf;betwoc;clmlsf;betwce;cmdml294i;crs;moh;mofx85;ymodr;ontyml294i;end  +  +$okiml320$  +head;hml320;decl;speed;openh;opendoch;initspeed;opendocml320;  +openpge;betwoc;clpge;betwce;cmd;crs;moh;moml192el;ymodr;onoff;tyml192el;  +end  +  +$starlc10$  +head;hlc10;decl;quality;typefacelc10;openh;opendoch;opendoclc10;openpge;  +betwoc;clpge;betwce;cmdlc10;crs;moh;mofx800;ymodr;onoff;tyfx800;end  +  +$dmp4000$  +head;hdmp4000;decl;speed;openh;opendoch;initspeed;opendocdmp4000;openpge;  +betwoc;clpge;betwce;cmd;crs;moh;mofx85;ymodr;onoff;tyfx85;end  +  +$starnx15$  +head;hnx15;decl;speed;openh;opendoch;initspeed;opendocnx15;openpge;betwoc;  +clpge;betwce;cmd;crs;moh;mofx85;ymodr;onoff;tyfx85;end  +  +$mt230$  +head;hmt230;decl;speed;feedschacht;openh;opendoch;initspeed;opendocmt;  +openpgemtsf;betwoc;clmtsf;betwce;cmdmt230;crs;moh;mofx85;ymodr;onoff;  +tyfx85;end  +  +$mt340$  +head;hmt340;decl;speed;feedschacht;openh;opendoch;initspeed;opendocmt;  +openpgemtsf;betwoc;clmtsf;betwce;cmdmt230;crs;moh;moml192el;ymodr;onoff;  +tyml192el;end  +  +$citi120d$  +head;h120d;decl;openh;opendoch;opendoc120d;openpge;betwoc;  +clpge;betwce;cmd;crs;moh;mofx800;ymodr;onoff;tyfx85;end  +  +$citohc310cxp$  +head;hc310;decl;speed;feedschacht;openh;opendoch;initspeed;opendocc310;  +openpgec310sf;betwoc;clc310sf;betwce;cmdc310;crs;moh;mofx85;ymodr;onoff;  +tyfx85;end  +  +$citohci3500$  +head;hci3500;decl;speed;openh;opendoch;initspeed;opendocgp;openpge;betwoc;  +clpge;betwce;cmd;crs;moh;mogp;ymodr;onoff;tyfx85;end  +  +$fujdx2100$  +head;hdx2100;decl;speed;feed;openh;opendoch;initspeed;opendocdx2100;  +openpge;betwoc;clpge;betwce;cmddx2100;crs;moh;moml192el;ymodr;onoff;tyml192el;  +end  + + diff --git a/printer/dotmatrix9/fonttab.1 b/printer/dotmatrix9/fonttab.1Binary files differ new file mode 100644 index 0000000..b5d17e6 --- /dev/null +++ b/printer/dotmatrix9/fonttab.1 diff --git a/printer/dotmatrix9/fonttab.10 b/printer/dotmatrix9/fonttab.10Binary files differ new file mode 100644 index 0000000..6a13c49 --- /dev/null +++ b/printer/dotmatrix9/fonttab.10 diff --git a/printer/dotmatrix9/fonttab.20 b/printer/dotmatrix9/fonttab.20Binary files differ new file mode 100644 index 0000000..7cf0aaf --- /dev/null +++ b/printer/dotmatrix9/fonttab.20 diff --git a/printer/dotmatrix9/fonttab.20.lc b/printer/dotmatrix9/fonttab.20.lcBinary files differ new file mode 100644 index 0000000..ddf4535 --- /dev/null +++ b/printer/dotmatrix9/fonttab.20.lc diff --git a/printer/dotmatrix9/fonttab.20.lx b/printer/dotmatrix9/fonttab.20.lxBinary files differ new file mode 100644 index 0000000..1ce0940 --- /dev/null +++ b/printer/dotmatrix9/fonttab.20.lx diff --git a/printer/dotmatrix9/fonttab.7 b/printer/dotmatrix9/fonttab.7Binary files differ new file mode 100644 index 0000000..676b9a0 --- /dev/null +++ b/printer/dotmatrix9/fonttab.7 diff --git a/printer/dotmatrix9/fonttab.7.cxp b/printer/dotmatrix9/fonttab.7.cxpBinary files differ new file mode 100644 index 0000000..0a996f3 --- /dev/null +++ b/printer/dotmatrix9/fonttab.7.cxp diff --git a/printer/dotmatrix9/fonttab.7.fuj b/printer/dotmatrix9/fonttab.7.fujBinary files differ new file mode 100644 index 0000000..1ed83be --- /dev/null +++ b/printer/dotmatrix9/fonttab.7.fuj diff --git a/printer/dotmatrix9/fonttab.7.mt b/printer/dotmatrix9/fonttab.7.mtBinary files differ new file mode 100644 index 0000000..c816646 --- /dev/null +++ b/printer/dotmatrix9/fonttab.7.mt diff --git a/printer/dotmatrix9/module9 b/printer/dotmatrix9/module9 new file mode 100644 index 0000000..65de1ee --- /dev/null +++ b/printer/dotmatrix9/module9 @@ -0,0 +1,1099 @@ +  +(*************************************************************************) +(*                                            Stand   : 01.10.88         *) +(*   Module-Datei für 9-Nadel-Drucker         Version : 0.9              *) +(*                                            Autoren : mov/hjh          *) +(*************************************************************************) + +$head$  +PACKET printer driver  +  +       DEFINES printer, +               open, +               close, +               execute, +               paper size, +               top margin, + +$hfx85$        std speed: +(* Treiber für EPSON FX85/105, automatisch generiert *) + +$hfx800$       std quality, +               std typeface: +(* Treiber für EPSON FX800/1000, automatisch generiert *)  +BOOL VAR was tall font; +  +$hmx$          std speed: +(* Treiber für EPSON MX80/100, Typ III *)  +(* Treiber automatisch generiert *) +BOOL VAR is condensed, is small; + +$hlx800$       std speed,  +               std quality, +               std typeface: +(* Treiber für EPSON LX800/1000, automatisch generiert *)  +BOOL VAR was tall font; + +$hgp$          std speed:  +(* Treiber für IBM-Grafikdrucker *)  +(* Treiber automatisch generiert *)  + +$hpp$          std speed,  +               std quality: +(* Treiber für IBM-Proprinter *)  +(* Treiber automatisch generiert *)  +  +$hml182i$      std speed, +               std quality: +(* Treiber für OKI ML182/183 IBM-kompatibel *)  +(* Treiber automatisch generiert *)  +  +$hml192el$     paper feed, +               std speed: +(* Treiber für OKI ML192/193 Elite *)  +(* Treiber automatisch generiert *)  +BOOL VAR prop font; +  +$hml292el$     std quality,  +               std typeface,  +               paper feed:  +(* Treiber für OKI ML292/293 Elite *)  +(* Treiber automatisch generiert *)  +BOOL VAR was tall font; + +$hml294i$      std speed,  +               paper feed, +               std quality: +(* Treiber für OKI ML294 IBM-kompatibel *) +(* Treiber automatisch generiert *)  + +$hml320$       std speed: +(* Treiber für OKI ML320 IBM/EPSON-kompatibel *)  +(* Treiber automatisch generiert *)  +BOOL VAR prop font; +  +$hlc10$        std quality,  +               std typeface: +(* Treiber für Star LC-10 oder LC-10 Colour *)  +(* Treiber automatisch generiert *)  +BOOL VAR was tall font; +  +$hdmp4000$     std speed: +(* Treiber für Schneider DMP4000, automatisch generiert *) +  +$hnx15$        std speed: +(* Treiber für Star NX-15, ND-10, ND-15, NR-10 und NR-15 *) +(* Treiber automatisch generiert *) +  +$hmt230$       paper feed,  +               std speed:  +(* Treiber für Mannesmann-Tally MT 230 *)  +(* Treiber automatisch generiert *)  +  +$hmt340$       paper feed, +               std speed: +(* Treiber für Mannesmann-Tally MT 340 *)  +(* Treiber automatisch generiert *)  +BOOL VAR prop font := FALSE;  +  +$h120d$        :  +(* Treiber für Citizen 120-D *)  +(* Treiber automatisch generiert *)  +  +$hc310$        paper feed, +               std speed: +(* Treiber für C. Itoh C 310/315 CXP *)  +(* Treiber automatisch generiert *)  + +$hci3500$      std speed:  +(* Treiber für C. Itoh CI-3500 *)  +(* Treiber automatisch generiert *)  +  +$hdx2100$     paper feed, +              std speed: +(* Treiber für Fujitsu DX 2100 *) +(* Treiber automatisch generiert *) +BOOL VAR prop font := FALSE ; +  +$decl$ +INT VAR blankbreite, x rest, y rest, high, low, small, modifikations; +REAL VAR x size, y size, y margin; +TEXT VAR buffer :: ""; +  +PROC paper size (REAL CONST x, y) : +  +  x size := x; +  y size := y; +END PROC paper size; +  +PROC paper size :  +  +  line; +  putline ("Papierbreite  =  " + text (x size, 5, 2) + " cm  =  " + text (x size / 2.54, 5, 2) + " Zoll"); +  putline ("Papierlaenge  =  " + text (y size, 5, 2) + " cm  =  " + text (y size / 2.54, 5, 2) + " Zoll"); +END PROC paper size; +  +papersize (20.32, 30.48);  +  +PROC top margin (REAL CONST margin):  +  +  y margin := margin  +END PROC top margin;  +  +REAL PROC top margin:   y margin   END PROC top margin; +  +top margin (0.0);  +  +$speed$ +BOOL VAR is slow;  +TEXT VAR std speed name :: "slow"; +  +PROC std speed (TEXT CONST speed) : +  +  IF speed = "fast" OR speed = "slow" +     THEN std speed name := speed +     ELSE errorstop ("unzulässige Geschwindigkeit") +  FI +END PROC std speed; +  +TEXT PROC std speed : std speed name END PROC std speed; +  +$quality$  +TEXT VAR std quality name :: "draft"; +  +PROC std quality (TEXT CONST quality) : +  +  IF quality = "nlq" OR quality = "draft" +     THEN std quality name := quality +     ELSE errorstop ("unzulässige Qualitätsbezeichnung") +  FI +END PROC std quality; +  +TEXT PROC std quality : std quality name END PROC std quality; +  +$typeface$  +TEXT VAR std typeface name :: ""; +  +PROC std typeface (TEXT CONST typeface) : +  +  IF typeface = "" OR typeface = "roman" OR typeface = "sansserif" +     THEN std typeface name := typeface +     ELSE errorstop ("unzulässige Schriftart") +  FI +END PROC std typeface; +  +TEXT PROC std typeface : std typeface name END PROC std typeface; +  +$typeface292$  +TEXT VAR std typeface name :: ""; +  +PROC std typeface (TEXT CONST typeface) : +  +  IF typeface = "" OR typeface = "courier" OR typeface = "sansserif" +     THEN std typeface name := typeface +     ELSE errorstop ("unzulässige Schriftart") +  FI +END PROC std typeface; +  +TEXT PROC std typeface : std typeface name END PROC std typeface; +  +$typefacelc10$  +TEXT VAR std typeface name :: ""; +  +PROC std typeface (TEXT CONST typeface) : +  +  IF typeface = "" OR typeface = "courier" OR typeface = "sansserif"  +                   OR typeface = "orator1" OR typeface = "orator2"  +     THEN std typeface name := typeface +     ELSE errorstop ("unzulässige Schriftart") +  FI +END PROC std typeface; +  +TEXT PROC std typeface : std typeface name END PROC std typeface; +  +$feed$  +TEXT VAR feeder name :: "tractor"; +  +PROC paper feed (TEXT CONST feeder) : +  +  IF feeder = "sheet" OR feeder = "tractor" +     THEN feeder name := feeder +     ELSE errorstop ("unzulässige Einzugsart") +  FI +END PROC paper feed; +  +TEXT PROC paper feed: feeder name END PROC paper feed; +  +$feedschacht$ +TEXT VAR act feeder :: "",  +         feeder name :: "tractor"; +  +PROC paper feed (TEXT CONST feeder) : +  +  IF feeder = "tractor" OR feeder = "schacht1" OR feeder = "schacht2"  +     THEN feeder name := feeder +  ELIF feeder = "sheet"  +     THEN feeder name := "schacht1"  +     ELSE errorstop ("unzulässige Einzugsart") +  FI +END PROC paper feed; +  +TEXT PROC paper feed: feeder name END PROC paper feed; +  +$openh$ +PROC open (INT CONST op code, INT VAR param1, param2) : +  +SELECT op code OF +  CASE 1: open document  +  CASE 2: open page +END SELECT. +  +$opendoch$ +  open document : +    modifikations := 0;  +    param 1 := x step conversion ( x size ); +    param 2 := y step conversion ( y size ); +$initspeed$  +    IF pos (material, "slow") <> 0  +         THEN is slow := TRUE; +    ELIF pos (material, "fast") <> 0  +         THEN is slow := FALSE; +         ELSE is slow := std speed name = "slow" +    FI; +$opendocfx85$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2"27"6"); +    out (""27"C" + code (param 2 DIV 36)). (* Formularlaenge *) +  +$opendocfx800$  +    param 2 := (param 2 DIV 36) * 36; +    was tall font := TRUE;  +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"t"1""27"6");                 (* Zeichentabelle 4 (Grafik) *) +    out (""27"R"0""27"9"27"O"27"2");  +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    IF pos (material, "nlq") <> 0  +      THEN out (""27"x"1"")  +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"x"0"")  +    ELIF std quality name = "nlq" +      THEN out (""27"x"1"")  +      ELSE out (""27"x"0"") +    FI;  +    IF pos (material, "roman") <> 0  +         THEN out (""27"k"0"")  +    ELIF pos (material, "sansserif") <> 0  +         THEN out (""27"k"1"")  +    ELIF std typeface name = "roman"  +      THEN out (""27"k"0"")  +    ELIF std typeface name = "sansserif"  +      THEN out (""27"k"1"")  +    FI.  +  +$opendocmx$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27"R"0""27""64"");               (* Reset des Druckers *)  +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36));  (* Formularlaenge *)  +    out (""27"9"27"O"). +  +$opendocgp$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27"6");                               (* Zeichensatz 2 *) +    out (""18""27"F"27"H"27"W"0""27"T"27"-"0""); (* Modifikationen rücksetzen *)  +    out (""27"9"27"O"27"A"12""27"2");  +    out (""27"C" + code (param 2 DIV 36)).       (* Formularlaenge *) +  +$opendocpp$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27"6");                               (* Zeichensatz 2 *) +    out (""18""27"F"27"W"0""27"T"27"-"0"");      (* Modifikationen rücksetzen *)  +    out (""27"9"27"O"27"A"12""27"2");  +    out (""27"C" + code (param 2 DIV 36));       (* Formularlaenge *) +    IF pos (material, "nlq") <> 0  +      THEN out (""27"G") +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"H")  +    ELIF std quality name = "nlq"  +      THEN out (""27"G")  +      ELSE out (""27"H")  +    FI.  +     +$opendocml182i$  +    IF pos (material, "nlq") <> 0  +      THEN out (""27"I3")  +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"I1")  +    ELIF std quality name = "nlq" +      THEN out (""27"I3")  +      ELSE out (""27"I1") +    FI;  +    out (""27"N"0"");           (* Kein Sprung über Perf. *) + +$opendocml192el$  +    param 2 := (param 2 DIV 36) * 36; +    prop font := FALSE; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *)  +    out (""27"6");                         (* Erweiterung des Zeichensatzes  *) +    out (""27"9"27"O"27"x"0""). +  +$opendocml292el$  +    param 2 := (param 2 DIV 36) * 36; +    was tall font := TRUE;  +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"t"1""27"6");                 (* Zeichentabelle 4 (Grafik) *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    out (""27"9"27"O"27"r0");  +    IF pos (material, "nlq") <> 0  +      THEN out (""27"x"1"")  +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"x"0"")  +    ELIF std quality name = "nlq" +      THEN out (""27"x"1"")  +      ELSE out (""27"x"0"") +    FI;  +    IF pos (material, "courier") <> 0  +         THEN out (""27"k"0"")  +    ELIF pos (material, "sansserif") <> 0  +         THEN out (""27"k"1"")  +    ELIF std typeface name = "courier"  +      THEN out (""27"k"0"")  +    ELIF std typeface name = "sansserif"  +      THEN out (""27"k"1"")  +    FI.  +  +$opendocml294i$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27"6");                               (* Zeichensatz 2 *) +    out (""18""27"F"27"W0"27"T"27"-0"27"%H");    (* Modifikationen rücksetzen *)  +    out (""27"9"27"O"27"A"12""27"2"); +    out (""27"C" + code (param 2 DIV 36));       (* Formularlaenge *) +    IF pos (material, "nlq") <> 0  +      THEN out (""27"G") +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"H")  +    ELIF std quality name = "nlq"  +      THEN out (""27"G")  +      ELSE out (""27"H")  +    FI.  +  +$opendocml320$  +    param 2 := (param 2 DIV 36) * 36; +    prop font := FALSE; +    out (""27"{"99""27"{"40"");            (* Umschaltung auf EPSON-Emulation *)  +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *)  +    out (""27"6");                         (* Erweiterung des Zeichensatzes  *) +    out (""27"9"27"O"27"x"0""). +  +$opendoclc10$  +    param 2 := (param 2 DIV 36) * 36; +    was tall font := TRUE;  +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"t"1""27"6");                 (* Zeichentabelle 4 (Grafik) *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    out (""27"9"27"r"0""); +    IF pos (material, "nlq") <> 0  +      THEN out (""27"x"1"")  +    ELIF pos (material, "draft") <> 0  +      THEN out (""27"x"0"")  +    ELIF std quality name = "nlq" +      THEN out (""27"x"1"")  +      ELSE out (""27"x"0"") +    FI;  +    IF pos (material, "courier") <> 0  +         THEN out (""27"k"0"")  +    ELIF pos (material, "sansserif") <> 0  +         THEN out (""27"k"1"")  +    ELIF pos (material, "orator1") <> 0  +         THEN out (""27"k"2"")  +    ELIF pos (material, "orator2") <> 0  +         THEN out (""27"k"3"")  +    ELIF std typeface name = "courier"  +      THEN out (""27"k"0"")  +    ELIF std typeface name = "sansserif"  +      THEN out (""27"k"1"")  +    ELIF std typeface name = "orator1"  +      THEN out (""27"k"2"")  +    ELIF std typeface name = "orator2"  +      THEN out (""27"k"3"")  +    FI.  +  +$opendocnx15$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2");  +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    out (""27"6");                         (* Erweiterung des Zeichensatzes  *) +    out (""27"9"27"x"0""). +  +$opendocdmp4000$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *)  +    out (""27"m"0""27"R"0""27"9"27"O"27"2"27"6"); +    out (""27"C" + code (param 2 DIV 36)). (* Formularlaenge *) +  +$opendocmt$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    out (""27"O"27"x"0""27"r"0""27"6");  +    IF feeder name = "tractor"  +      THEN act feeder := feeder name;  +           out (""27"[5{")  +      ELSE out (""27"[0{"); +           IF pos (material, "schacht1") <> 0  +             THEN act feeder := "schacht1"  +           ELIF pos (material, "schacht2") <> 0  +             THEN act feeder := "schacht2"  +             ELSE act feeder := feeder name  +           FI  +    FI. +  +$opendocdx2100$ +param 2 := (param 2 DIV 36) * 36; +out (""24""27""64"");                            (* Reset des Druckers *)  +out (""27"R"0"");                                (* US-Zeichensatz *) +out (""27"2" + ""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +out (""27"N"0"");                                (* skip perforation *) +out (""27"x"0"" + ""27"r"0"").                   (* draft und black *) +  +  +$opendoc120d$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"9"27"O"27"x0"27"2"); +    out (""27"C" + code (param 2 DIV 36)). (* Formularlaenge *) + +$opendocc310$  +    param 2 := (param 2 DIV 36) * 36; +    out (""27""64""27""64"");              (* Reset des Druckers *) +    out (""27"R"0""27"2"); +    out (""27"C" + code (param 2 DIV 36)); (* Formularlaenge *) +    out (""27"O"27"x"0""27"r"0""27"6");  +    IF feeder name = "tractor"  +      THEN act feeder := feeder name;  +      ELSE IF pos (material, "schacht1") <> 0  +             THEN act feeder := "schacht1"  +           ELIF pos (material, "schacht2") <> 0  +             THEN act feeder := "schacht2"  +             ELSE act feeder := feeder name  +           FI  +    FI. +  +$openpge$ +  open page : +    param 1 := 0; +    param 2 := y step conversion (y margin); +    x rest  := 0; +    y rest  := 0; +    small   := 0; +    out (""13""). +$openpgemlsf$  +  open page : +    param 1 := 0; +    param 2 := 0; +    x rest  := 0; +    y rest  := 0; +    small   := 0; +    IF feeder name = "sheet" THEN out (""12"") FI;  +    out (""13""). +$openpgemtsf$  +  open page : +    param 1 := 0; +    param 2 := 0; +    x rest  := 0; +    y rest  := 0; +    small   := 0; +    IF feeder name = "schacht1"  +      THEN out (""27"[21{"12"")  +    ELIF feeder name = "schacht2"  +      THEN out (""27"[22{"12"")  +    FI;  +    out (""13""). +   +$openpgec310sf$  +  open page : +    param 1 := 0; +    param 2 := 0; +    x rest  := 0; +    y rest  := 0; +    small   := 0; +    IF feeder name = "schacht1"  +      THEN out (""27""25"1"12"")  +    ELIF feeder name = "schacht2"  +      THEN out (""27""25"2"12"")  +    FI;  +    out (""13""). +   +$betwoc$ +END PROC open;  +  +PROC close (INT CONST op code, INT CONST param1) : +  +SELECT op code OF +  CASE 1: close document  +  CASE 2: close page +END SELECT. +close document :  +$clpge$ +. close page : +    IF param 1 > 0 THEN out (""12"") FI. +$clmlsf$  +.close page : +  IF feeder name = "sheet"  +    THEN out (""27""25""3"")  +  ELIF param 1 > 0  +    THEN out (""12"")  +  FI.  +$clmtsf$  +.close page : +  IF feeder name <> "tractor"  +    THEN out (""27"[2J")  +  ELIF param 1 > 0  +    THEN out (""12"")  +  FI. +$clc310sf$  +.close page : +  IF feeder name = "sheet"  +    THEN out (""27""25"R")  +  ELIF param 1 > 0  +    THEN out (""12"")  +  FI.  +  +$betwce$ +END PROC close; +  +PROC execute (INT CONST op code, TEXT CONST string, INT CONST param1, param2) : +  +SELECT op code OF +  CASE 1:  write text +  CASE 2:  write cmd +  CASE 3:  carriage return +  CASE 4:  move +  CASE 5:  draw +  CASE 6:  on +  CASE 7:  off +  CASE 8:  type +END SELECT. + +is underline: bit (modifikations, 0). +is bold     : bit (modifikations, 1).  +is italics  : bit (modifikations, 2).  +  +  write text : +    out subtext (string, param 1, param 2). +$cmd$  +  write cmd : +    out subtext (string, param 1, param 2).  +$cmdfx800$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"x"0"")  +    ELIF buffer = "nlq" +      THEN out (""27"x"1"")  +    ELIF buffer = "roman"  +      THEN out (""27"k"0"")  +    ELIF buffer = "sansserif"  +      THEN out (""27"k"1"")  +      ELSE out (buffer)  +    FI.  +$cmdpp$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"H") +    ELIF buffer = "nlq" +      THEN out (""27"G")  +      ELSE out (buffer)  +    FI.  +$cmdml182i$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"I1")  +    ELIF buffer = "nlq" +      THEN out (""27"I3")  +      ELSE out (buffer)  +    FI.  +$cmdml292el$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"x"0"")  +    ELIF buffer = "nlq" +      THEN out (""27"x"1"")  +    ELIF buffer = "courier"  +      THEN out (""27"k"0"")  +    ELIF buffer = "sansserif"  +      THEN out (""27"k"1"")  +    ELIF buffer = "schwarz"  +      THEN out (""27"r0") +    ELIF buffer = "rot"  +      THEN out (""27"r1") +    ELIF buffer = "blau"  +      THEN out (""27"r2") +    ELIF buffer = "violett"  +      THEN out (""27"r3") +    ELIF buffer = "gelb"  +      THEN out (""27"r4") +    ELIF buffer = "orange"  +      THEN out (""27"r5") +    ELIF buffer = "grün"  +      THEN out (""27"r6") +      ELSE out (buffer)  +    FI.  +$cmdml294i$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"H")  +    ELIF buffer = "nlq" +      THEN out (""27"G")  +    ELIF buffer = "schwarz"  +      THEN out (""27"r0") +    ELIF buffer = "rot"  +      THEN out (""27"r1") +    ELIF buffer = "blau"  +      THEN out (""27"r2") +    ELIF buffer = "violett"  +      THEN out (""27"r3") +    ELIF buffer = "gelb"  +      THEN out (""27"r4") +    ELIF buffer = "orange"  +      THEN out (""27"r5") +    ELIF buffer = "grün"  +      THEN out (""27"r6") +      ELSE out (buffer)  +    FI.  +$cmdlc10$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF buffer = "draft"  +      THEN out (""27"x"0"")  +    ELIF buffer = "nlq" +      THEN out (""27"x"1"")  +    ELIF buffer = "courier"  +      THEN out (""27"k"0"")  +    ELIF buffer = "sansserif"  +      THEN out (""27"k"1"")  +    ELIF buffer = "orator1"  +      THEN out (""27"k"2"")  +    ELIF buffer = "orator2"  +      THEN out (""27"k"3"")  +    ELIF buffer = "schwarz"  +      THEN out (""27"r"0"") +    ELIF buffer = "rot"  +      THEN out (""27"r"1"") +    ELIF buffer = "blau"  +      THEN out (""27"r"2"") +    ELIF buffer = "violett"  +      THEN out (""27"r"3"") +    ELIF buffer = "gelb"  +      THEN out (""27"r"4"") +    ELIF buffer = "orange"  +      THEN out (""27"r"5"") +    ELIF buffer = "grün"  +      THEN out (""27"r"6"") +      ELSE out (buffer)  +    FI.  +$cmdmt230$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF feeder name <> "tractor"  +      THEN IF buffer = "schacht1" OR buffer = "schacht2"  +             THEN act feeder := buffer  +           FI  +    ELIF buffer = "schwarz"  +      THEN out (""27"r"0"") +    ELIF buffer = "magenta"  +      THEN out (""27"r"1"") +    ELIF buffer = "cyan"  +      THEN out (""27"r"2"") +    ELIF buffer = "blau"  +      THEN out (""27"r"3"") +    ELIF buffer = "gelb"  +      THEN out (""27"r"4"") +    ELIF buffer = "rot"  +      THEN out (""27"r"5"") +    ELIF buffer = "grün"  +      THEN out (""27"r"6"") +      ELSE out (buffer)  +    FI.  +  +$cmdc310$  +  write cmd : +    buffer := subtext (string, param 1, param 2);  +    IF feeder name <> "tractor"  +      THEN IF buffer = "schacht1" OR buffer = "schacht2"  +             THEN act feeder := buffer  +           FI  +    ELIF buffer = "schwarz"  +      THEN out (""27"r"0"") +    ELIF buffer = "rot"  +      THEN out (""27"r"1"") +    ELIF buffer = "blau"  +      THEN out (""27"r"2"") +    ELIF buffer = "violett"  +      THEN out (""27"r"3"") +    ELIF buffer = "gelb"  +      THEN out (""27"r"4"") +    ELIF buffer = "orange"  +      THEN out (""27"r"5"") +    ELIF buffer = "grün"  +      THEN out (""27"r"6"") +      ELSE out (buffer)  +    FI.  +  +$cmddx2100$  +   write cmd : +     buffer := subtext (string, param 1, param 2);  +     IF buffer = "schwarz" +       THEN out (""27"r"0"") +     ELIF buffer = "rot" +       THEN out (""27"r"1"") +     ELIF buffer = "blau" +       THEN out (""27"r"2"") +     ELIF buffer = "violett" +       THEN out (""27"r"3"") +     ELIF buffer = "gelb" +       THEN out (""27"r"4"") +     ELIF buffer = "orange" +       THEN out (""27"r"5"") +     ELIF buffer = "grün" +       THEN out (""27"r"6"") +     ELSE out (buffer) +     FI. +  +$crs$ +  carriage return : +    y rest INCR small; +    x rest := 0; +    small  := 0; +    out (""13""). +$moh$  +x steps : param1. +y steps : param2. + +move : +  IF x steps < 0 OR y steps < 0 THEN stop FI;  +  IF x steps > 0 THEN x move FI;  +  IF y steps > 0 THEN y move FI.  + +$mofx85$  +x move : +  high   := (x steps + x rest) DIV blankbreite; +  x rest := (x steps + x rest) MOD blankbreite; +  IF high   > 0 THEN high TIMESOUT " " FI; +  IF x rest > 0 AND is slow +     THEN IF is underline THEN out (" "8"") FI; +          out (""27"Y"+ code (x rest) + ""0""); +          x rest TIMESOUT ""0""; +          x rest := 0 +  FI.  +  +  +$mofx800$ +x move : +  IF is underline +    THEN underline x move +    ELSE simple x move +  FI.  +  +underline x move:  +  high   := (x steps + x rest) DIV blankbreite; +  low    := (x steps + x rest) MOD blankbreite; +  IF high > 0 THEN high TIMESOUT " " FI; +  IF low > 0 +     THEN out (" "8""27"\"+ code (low) + ""0"") +  FI.  +  +simple x move: +  out (""27"\"); +  out (code (x steps MOD 256)); +  out (code (x steps DIV 256)).  +  +$modrmx$  +x move : +  high := (x steps + x rest) DIV blankbreite; +  low  := (x steps + x rest) MOD blankbreite; +  IF high > 0 THEN high TIMESOUT " " FI; +  IF low  > 0 AND is slow +     THEN IF is underline THEN out ("_"8"") FI; +          IF is condensed  +             THEN high := low; +                  low  := 0; +                  out (""27"L"+ code (high) + ""0""); +             ELSE high := low DIV 2; +                  low  := low MOD 2; +                  out (""27"K"+ code (high) + ""0""); +          FI; +          high TIMESOUT ""0""; +          IF is small +             THEN out (""27"S"1""); +                  small DECR 1; +          FI; +  FI; +  x rest := low.  +  +y move :  +  y rest INCR y steps; +  IF y rest > 0 +     THEN high := y rest DIV 255; +          low  := y rest MOD 255; +          IF high > 0 THEN high TIMESOUT ""27"J"255""      FI; +          IF low  > 0 THEN out (""27"J"); out (code (low)) FI; +          y rest := 0 +  FI.  +  +draw : +  IF x steps < 0 OR y steps <> 0 OR linetype <> 1  +    THEN stop +  ELIF x steps > 0 +    THEN x draw +  FI.  +  +x draw : +  out (""27"L"); +  out (code (x steps MOD 256)); +  out (code (x steps DIV 256)); +  x steps TIMESOUT ""1""; +  IF is small THEN out (""27"S"1"") FI.  +  +$mogp$  +x move : +  high   := (x steps + x rest) DIV blankbreite; +  x rest := (x steps + x rest) MOD blankbreite; +  IF high   > 0 THEN high TIMESOUT " " FI; +  IF x rest > 0 AND is slow +     THEN IF is underline  +            THEN out (" "13""27"Y");  +                 out (code (x pos MOD 256));  +                 out (code (x pos DIV 256));  +                 x pos TIMESOUT ""0""  +            ELSE out (""27"Y"+ code (x rest) + ""0""); +                 x rest TIMESOUT ""0""  +          FI; +          x rest := 0  +  FI.  +  +$moml192el$  +x move : +  high   := (x steps + x rest) DIV blankbreite; +  x rest := (x steps + x rest) MOD blankbreite; +  IF high   > 0 THEN high TIMESOUT " " FI; +  IF x rest > 0 AND is slow +    THEN  IF is underline THEN  +             IF prop font THEN  +               out (""27"p"0"" + " "8"" + ""27"p"1"")  +             ELSE  +               out (" "8"")  +             FI;  +          FI; +          out (""27"Y"+ code (x rest) + ""0""); +          x rest TIMESOUT ""0""; +          x rest := 0 +  FI. +  +$ymodr$  +y move :  +  y rest INCR y steps; +  IF y rest > 0 +    THEN high := y rest DIV 255; +         low  := y rest MOD 255; +         IF high > 0 THEN high TIMESOUT ""27"J"255""      FI; +         IF low  > 0 THEN out (""27"J"); out (code (low)) FI; +         y rest := 0  +  FI. +  +draw : +  IF x steps < 0 OR y steps <> 0 OR linetype <> 1  +    THEN stop +  ELIF x steps > 0 +    THEN x draw +  FI.  +  +x draw : +  out (""27"Y"); +  out (code (x steps MOD 256)); +  out (code (x steps DIV 256)); +  x steps TIMESOUT ""1"". +  +$onoff$               +  on : +    IF on string (param 1) <> "" +       THEN out (on string (param 1)); +            modifikations := modifikations OR param 1 +       ELSE stop +    FI.  +  +  off : +    IF off string (param 1) <> "" +       THEN out (off string (param 1)); +            modifikations := modifikations AND (param 1 XOR -1)  +       ELSE stop +    FI. +  +$onoffpp$               +  on : +    IF on string (param 1) <> "" AND param 1 <> 2 +       THEN out (on string (param 1)); +            modifikations := modifikations OR param 1 +       ELSE stop +    FI.  +  +  off : +    IF off string (param 1) <> "" AND param 1 <> 2  +       THEN out (off string (param 1)); +            modifikations := modifikations AND (param 1 XOR -1)  +       ELSE stop +    FI. +  +$tyfx85$  +  type : +    buffer := font string (param 1); +    out (buffer); +    restore modifikations;  +    blankbreite  := char pitch (param 1, " "); +    IF pos (buffer, ""27"S") <> 0 THEN small DECR 1 FI.   + +$tyfx800$  + type : +    buffer := font string (param 1); +    IF was tall font  +      THEN out (""27"w"0"")  +    FI;  +    out (buffer); +    restore modifikations; +    blankbreite  := char pitch (param 1, " ");  +    was tall font := pos (buffer, ""27"w"1"") <> 0. + +$tymx$  +  type : +    buffer := font string (param 1); +    blankbreite  := char pitch (param 1, " "); +    is condensed := pos (buffer, ""15"") <> 0; +    IF pos (buffer, ""27"S") <> 0  +       THEN small DECR 1; +            is small := TRUE; +       ELSE is small := FALSE; +    FI; +    out (buffer); +    restore modifikations. + +$tyohnesmall$ + type : +    buffer := font string (param 1); +    out (buffer); +    restore modifikations; +    blankbreite  := char pitch (param 1, " "). + +$tyml192el$  +  type : +    buffer := font string (param 1); +    out (buffer); +    restore modifikations;  +    blankbreite  := char pitch (param 1, " "); +    prop font    := pos (buffer, ""27"p"1"") <> 0; +    IF pos (buffer, ""27"S") <> 0 THEN small DECR 1 FI. + +$tyml292el$  +  type : +    buffer := font string (param 1); +    IF was tall font  +      THEN out (""27""31"0"27"U0")  +    FI;  +    was tall font := pos (buffer, ""27"w"1"") <> 0; +    change all (buffer, ""27"w"0"", ""27""31"0"27"U0");  +    change all (buffer, ""27"w"1"", ""27""31"1"27"U1");  +    out (buffer); +    restore modifikations;  +    blankbreite  := char pitch (param 1, " "). +  +$ontyml294i$  +  on : +    IF on string (param 1) <> "" AND param 1 <> 2  +       THEN out (on string (param 1)); +            modifikations := modifikations OR param 1  +    ELIF param 1 = 4 +       THEN out (""27"%G");  +            modifikations := modifikations OR param 1  +       ELSE stop +    FI.  +  +  off : +    IF off string (param 1) <> "" AND param 1 <> 2 +       THEN out (off string (param 1)); +            modifikations := modifikations AND (param 1 XOR -1)  +    ELIF param 1 = 4  +       THEN out (""27"%H");  +            modifikations := modifikations AND (param 1 XOR -1)  +       ELSE stop +    FI. +  +  type : +    buffer := font string (param 1); +    out (buffer); +    IF is underline THEN out (on string (1)) FI;  +    IF is bold      THEN out (on string (2)) FI;  +    IF is italics   THEN out (""27"%G") FI; +    blankbreite  := char pitch (param 1, " "); +    IF pos (buffer, ""27"S") <> 0 THEN small DECR 1 FI. + +$end$ +  restore modifikations:  +    IF is underline THEN out (on string (1)) FI;  +    IF is bold      THEN out (on string (2)) FI;  +    IF is italics   THEN out (on string (4)) FI.  +  +END PROC execute; + +INT VAR reply; DATASPACE VAR ds; FILE VAR file; +  +PROC printer: +  +  disable stop; +  continue (server channel); +  check error (error message); +  ds := nilspace; +  REP forget (ds); +      execute print; +      IF is error AND online THEN put error; clear error; FI; +  PER; +END PROC printer; +  +PROC execute print: +  +  LET ack = 0, fetch code = 11, file type = 1003; +  enable stop; +  ds := nilspace; +  call (father, fetch code, ds, reply); +  IF reply = ack CAND type (ds) = file type +     THEN file := sequential file (input, ds); +          print (file, +            PROC (INT CONST, INT VAR, INT VAR) open, +            PROC (INT CONST, INT CONST) close, +            PROC (INT CONST, TEXT CONST, INT CONST, INT CONST) execute); +  FI; +END PROC execute print; +  +PROC check error(TEXT CONST message): +  +  IF is error +     THEN clear error; rename myself (message); +          IF is error THEN end(myself) FI; +          pause (9000); end(myself); +  FI; +END PROC check error; +  +END PACKET printerdriver +  + diff --git a/printer/dotmatrix9/printer.neun.nadel b/printer/dotmatrix9/printer.neun.nadel new file mode 100644 index 0000000..00f698b --- /dev/null +++ b/printer/dotmatrix9/printer.neun.nadel @@ -0,0 +1,1129 @@ +PACKET driver inst 9                         (* Autoren : mov/hjh     *)  +                                             (* Stand   : 01.10.88    *)  +  +       DEFINES druckerkanal,  +               treiber einrichten:  +  +  +LET up = ""3""13""5"",  +  +    generator name = "printer.neun.nadel",  +  +    description file name = "beschreibungen9",  +    module file name = "module9";  +  +  +INT VAR pr channel,  +        positioning, +        quality, +        sheet feeder,  +        service option;  +TEXT VAR fonttab name :: "",  +         driver name :: "";  +TEXT VAR inp;  +BOOL VAR was esc;  +  +  +PROC druckerkanal (INT CONST channel) : +  +  serverchannel (channel) +  +END PROC druckerkanal;  +  +INT PROC druckerkanal : pr channel END PROC druckerkanal;  +  +  +PROC treiber einrichten: + +  treiber einrichten (0) +END PROC treiber einrichten; + +PROC treiber einrichten (INT CONST service opt):  +  +  ask for print channel;  +  main menu;  +  IF installed  +    THEN generate printer spool  +    ELSE inform about restart  +  FI.  +  +  ask for printchannel:  +    inits;  +    page;  +    headline ("Druckerkanal - Einstellung");  +    cursor (1, 15);  +    putline ("Hinweis: Die Druckerkanalnummer kann auch nachträglich mit");  +    putline ("         'druckerkanal (Kanalnummer)' in der Task """ +  +             name (myself) + """");  +    putline ("         verändert werden.");  +    REP  +      cursor (1, 10); +      put (""5"EUMEL-Kanalnummer des Druckerkanals:"); +      get (pr channel); +      disable stop;  +      druckerkanal (pr channel); +      BOOL VAR no error :: NOT is error;  +      IF is error  +        THEN cursor (1, 7);  +             put error; +             putline ("Eingabe korrigiert wiederholen!")  +      FI;  +      clear error;  +      enable stop  +    UNTIL no error PER.  +  +  inits:  +    line;  +    IF single task  +      THEN errorstop ("Dieser Treiber arbeitet nur mit Multi-Tasking-EUMEL")  +    FI;  +    command dialogue (TRUE); +    IF name (myself) <> "PRINTER"  +      THEN putline ("Diese Task heißt nicht ""PRINTER"", sondern """ +  +                    name (myself) + """ !");  +           IF yes ("Soll die Task in ""PRINTER"" umbenannt werden ?")  +             THEN rename myself ("PRINTER")  +           FI  +    FI;  +    INT VAR choice; +    service option := service opt. +  +  single task:  (pcb (9) AND 255) = 1. +  +  main menu:  +    BOOL VAR installed :: FALSE;  +    REP  +      show main menu;  +      get choice;  +      treat choice  +    UNTIL was esc OR installed PER.  +  +  show main menu:  +    page;  +    headline ("Hauptmenü 9-Nadel-Drucker");  +    putline (" 1. Brother"); +    putline (" 2. Citizen"); +    putline (" 3. C. Itoh"); +    putline (" 4. Epson"); +    putline (" 5. Fujitsu"); +    putline (" 6. IBM");  +    putline (" 7. Mannesmann - Tally"); +    putline (" 8. OKI"); +    putline (" 9. Schneider"); +    putline ("10. Star"). + +  get choice:  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Installation abbrechen");  +    ask user (10). +  +  treat choice:  +    SELECT int (inp) OF  +      CASE 1: brother menu  +      CASE 2: citizen menu  +      CASE 3: c itoh menu  +      CASE 4: epson menu  +      CASE 5: fujitsu menu  +      CASE 6: ibm menu  +      CASE 7: mannesmann menu  +      CASE 8: oki menu  +      CASE 9: schneider menu  +      CASE 10: star menu  +    END SELECT.  +  +   +  brother menu:.  + +  citizen menu:  +    page;  +    headline ("Citizen - Menü");  +    putline (" 1. 120-D");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (1);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           citi120d inst  +    FI.  +  +    citi120d inst:  +      putline ("Citizen 120-D");  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("S1    S2    S3    S4    S5    S6    S7    S8"); +      putline ("egal  OFF   OFF   egal  egal  egal  egal  egal");  +      show control options ("");  +      IF all right  +        THEN get fonttable ("fonttab.7"); +             generate ("citi120d");  +             installed := TRUE  +      FI. +   +  c itoh menu: +    page;  +    headline ("C. Itoh - Menü");  +    putline (" 1. C 310 CXP");  +    putline (" 2. C 315 CXP");  +    putline (" 3. CI-3500"); +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (3);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           IF choice = 3  +             THEN ci3500 inst  +             ELSE c310 inst  +           FI  +    FI.  +  +    c310 inst:  +      IF choice = 1  +        THEN putline ("C. Itoh C 310 CXP")  +        ELSE putline ("C. Itoh C 315 CXP")  +      FI;  +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- 00: Epson-Modus (02)");  +      putline ("- 22: nur Wagenrücklauf (01)"); +      show control options ("std speed, paperfeed");  +      show material options ("slow, fast, schacht1, schacht2"); +      show command options ("schacht1, schacht2,  schwarz, rot, blau, violett, gelb, orange, grün");  +      ask for positioning; +      ask for paper feed;  +      IF all right  +        THEN get fonttable ("fonttab.7.cxp");  +             generate ("citohc310cxp");  +             adjust positioning; +             adjust paper feed;  +             IF choice = 2 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI.  +   +    ci3500 inst:  +      putline ("C. Itoh CI-3500");  +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- 26: nur Wagenrücklauf (1)");  +      putline ("- 49: 17,1 Zeichen pro Zoll (17)"); +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.10"); +             generate ("citohci3500");  +             adjust positioning;  +             installed := TRUE  +      FI. +   +  epson menu:  +    page;  +    headline ("Epson - Menü");  +    putline (" 1. MX 80 Typ III");  +    putline (" 2. MX 100 Typ III");  +    putline (" 3. LX 800");  +    putline (" 4. LX 1000");  +    putline (" 5. FX 85");  +    putline (" 6. FX 105");  +    putline (" 7. FX 800 oder FX 850");  +    putline (" 8. FX 1000 oder FX 1050");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (8);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           SELECT choice OF  +             CASE 1, 2: mx80 inst +             CASE 3, 4: lx800 inst +             CASE 5, 6: fx85 inst +             CASE 7, 8: fx800 inst  +           END SELECT +    FI.  +  +    mx80 inst:  +      IF choice = 1  +        THEN putline ("Epson MX 80 Typ III")  +        ELSE putline ("Epson MX 100 Typ III")  +      FI;  +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.1"); +             generate ("mx");  +             adjust positioning;  +             IF choice = 2 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +    lx800 inst: +      IF choice = 3  +        THEN putline ("Epson LX 800")  +        ELSE putline ("Epson LX 1000")  +      FI;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("SW1-1 SW1-2 SW1-3 SW1-4 SW1-5 SW1-6 SW1-7 SW1-8   SW2-1 SW2-2 SW2-3 SW2-4");  +      putline ("egal  egal  egal  egal  egal  egal  egal  egal    egal  *)    OFF   OFF");  +      putline ("*) ON: Einzelblatteinzug, OFF: kein Einzug");  +      show control options ("std speed, std quality, std typeface");  +      show material options ("slow, fast, draft, nlq, roman, sansserif");  +      show command options ("draft, nlq, roman, sansserif");  +      ask for positioning;  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.20.lx");  +             generate ("lx800");  +             adjust positioning;  +             adjust quality;  +             IF choice = 4 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI.  +  +    fx85 inst:  +      IF choice = 5  +        THEN putline ("Epson FX 85")  +        ELSE putline ("Epson FX 105")  +      FI;  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("SW1-1 SW1-2 SW1-3 SW1-4 SW1-5 SW1-6 SW1-7 SW1-8   SW2-1 SW2-2 SW2-3 SW2-4");  +      putline ("egal  egal  egal  ON    egal  egal  egal  egal    egal  egal  OFF   OFF");  +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("fx85");  +             adjust positioning;  +             IF choice = 6 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +    fx800 inst:  +      IF choice = 7  +        THEN putline ("Epson FX 800 oder FX 850")  +        ELSE putline ("Epson FX 1000 oder FX 1050")  +      FI;  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("SW1-1 SW1-2 SW1-3 SW1-4 SW1-5 SW1-6 SW1-7 SW1-8   SW2-1 SW2-2 SW2-3 SW2-4");  +      putline ("egal  egal  egal  ON    egal  egal  egal  egal    egal  *)    OFF   OFF");  +      putline ("*) ON: Einzelblatteinzug, OFF: kein Einzug");  +      show control options ("std quality, std typeface");  +      show material options ("draft, nlq, roman, sansserif");  +      show command options ("draft, nlq, roman, sansserif");  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.20");  +             generate ("fx800");  +             adjust quality;  +             IF choice = 8 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI.  +  +  fujitsu menu:  +    page;  +    headline ("Fujitsu - Menü");  +    putline (" 1. DX 2100");  +    putline (" 2. DX 2200");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (2);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           SELECT choice OF  +             CASE 1,2   : dx2100 inst +           END SELECT +    FI.  + +    dx2100 inst:  +      IF choice = 1  +        THEN putline ("Fujitsu DX 2100")  +        ELSE putline ("Fujitsu DX 2200")  +      FI;  +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("SW1-1 SW1-2 SW1-3 SW1-4 SW1-5 SW1-6 SW1-7 SW1-8   SW2-1 SW2-2 SW2-3 SW2-4");  +      putline ("egal  egal  egal  egal  egal  egal  egal  egal    egal  *)    OFF   OFF");  +      putline ("*) ON: Einzelblatteinzug, OFF: kein Einzug");  +      show control options ("std speed, paper feed");  +      show material options ("slow, fast");  +      show command options ("schwarz, rot, blau, violett, gelb, rot, grün");  +      ask for positioning;  +      ask for paper feed;  +      IF all right  +        THEN get fonttable ("fonttab.7.fuj");  +             generate ("fujdx2100");  +             adjust positioning;  +             adjust paper feed;  +             IF choice = 2 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI.  +  +  +  +  ibm menu:  +    page;  +    headline ("IBM - Menü");  +    putline (" 1. Grafikdrucker (""80 Zeichen breit"")");  +    putline (" 2. Grafikdrucker (""136 Zeichen breit"")");  +    putline (" 3. Proprinter/Grafikdrucker II (""80 Zeichen breit"")");  +    putline (" 4. Proprinter/Grafikdrucker II (""136 Zeichen breit"")");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (4);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           IF choice = 1 OR choice = 2 +             THEN ibmgp inst +             ELSE ibmpp inst  +           FI  +    FI.  +  +    ibmgp inst:  +      IF choice = 1  +        THEN putline ("IBM Grafikdrucker (""80 Zeichen breit"")")  +        ELSE putline ("IBM Grafikdrucker (""136 Zeichen breit"")")  +      FI;  +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.10"); +             generate ("ibmgp");  +             adjust positioning;  +             IF choice = 2 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. + +    ibmpp inst: +      IF choice = 3  +        THEN putline ("IBM Proprinter/Grafikdrucker II (""80 Zeichen breit"")")  +        ELSE putline ("IBM Proprinter/Grafikdrucker II (""136 Zeichen breit"")")  +      FI;  +      show control options ("std speed, std quality");  +      show material options ("slow, fast, draft, nlq");  +      show command options ("draft, nlq"); +      ask for positioning;  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.10");  +             generate ("ibmpp");  +             adjust positioning;  +             adjust quality; +             IF choice = 4 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +  mannesmann menu:  +    page;  +    headline ("Mannesmann - Tally - Menü");  +    putline (" 1. MT 230");  +    putline (" 2. MT 340");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (2);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           IF choice = 1   +             THEN mt230 inst +             ELSE mt340 inst  +           FI +    FI.  +  +    mt230 inst: +      putline ("Mannesmann-Tally MT 230");  +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Der Drucker muß auf den ANSI+EPSON - Modus eingestellt werden."); +      putline ("(Siehe: MT 230 Anwenderhandbuch, S. 4-145)");  +      show control options ("std speed, paperfeed");  +      show material options ("slow, fast, schacht1, schacht2"); +      show command options ("schacht1, schacht2,  schwarz, magenta, cyan, blau, gelb, rot, grün");  +      ask for positioning; +      ask for paper feed;  +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("mt230");  +             adjust positioning; +             adjust paper feed;  +             do ("papersize (39.37, 30.48)");  +             installed := TRUE  +      FI.  +   +    mt340 inst: +      putline ("Mannesmann-Tally MT 340");  +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Der Drucker muß auf den ANSI+EPSON - Modus eingestellt werden."); +      putline ("(Siehe: MT 340 Anwenderhandbuch, S. 4-104)");  +      show control options ("std speed, paperfeed");  +      show material options ("slow, fast, schacht1, schacht2"); +      show command options ("schacht1, schacht2,  schwarz, magenta, cyan, blau, gelb, rot, grün");  +      ask for positioning; +      ask for paper feed;  +      IF all right  +        THEN get fonttable ("fonttab.7.mt");  +             generate ("mt340");  +             adjust positioning; +             adjust paper feed;  +             do ("papersize (39.37, 30.48)");  +             installed := TRUE  +      FI.  + +  oki menu:  +    page;  +    headline ("OKI - Menü");  +    putline (" 1. MICROLINE 182 IBM-kompatibel");  +    putline (" 2. MICROLINE 183 IBM-kompatibel");  +    putline (" 3. MICROLINE 192 ELITE"); +    putline (" 4. MICROLINE 193 ELITE");  +    putline (" 5. MICROLINE 292 ELITE"); +    putline (" 6. MICROLINE 293 ELITE");  +    putline (" 7. MICROLINE 294 IBM-kompatibel");  +    putline (" 8. MICROLINE 320");  +    putline (" 9. MICROLINE 321");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (9);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           SELECT choice OF  +             CASE 1, 2: ml182i inst +             CASE 3, 4: ml192el inst  +             CASE 5, 6: ml292el inst  +             CASE 7   : ml294i inst  +             CASE 8, 9: ml320 inst  +           END SELECT +    FI.  +  +    ml182i inst: +      IF choice = 1  +        THEN putline ("OKI Microline 182 IBM-kompatibel") +        ELSE putline ("OKI Microline 183 IBM-kompatibel")  +      FI;  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("S-1   S-2   S-3   S-4   S-5   S-6   S-7   S-8"); +      putline ("egal  egal  OFF   egal  egal  OFF   egal  OFF"); +      show control options ("std speed, std quality");  +      show material options ("slow, fast, draft, nlq");  +      show command options ("draft, nlq");  +      ask for positioning;  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.10");  +             generate ("okiml182i");  +             adjust positioning;  +             adjust quality;  +             IF choice = 2 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +    ml192el inst: +      IF choice = 3  +        THEN putline ("OKI Microline 192 ELITE (IBM/EPSON-kompatibel)") +        ELSE putline ("OKI Microline 193 ELITE (IBM/EPSON-kompatibel)")  +      FI;  +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- 13: Automatic Line Feed: Nein");  +      putline ("- 18: Compatibility: EPSON FX");  +      putline ("(Außerdem: Jumper SP5 in Position 'B')");  +      show control options ("std speed, paperfeed");  +      show material options ("slow, fast");  +      ask for positioning; +      ask for paper feed;  +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("okiml192el");  +             adjust positioning; +             adjust paper feed;  +             IF choice = 4 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +    ml292el inst: +      IF choice = 5  +        THEN putline ("OKI Microline 292 ELITE (IBM/EPSON-kompatibel)") +        ELSE putline ("OKI Microline 293 ELITE (IBM/EPSON-kompatibel)")  +      FI;  +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- Automatic Line Feed: NO");  +      putline ("- Compatibility: EPSON EX");  +      putline ("(Außerdem: Jumper SP5 in Position 'B')");  +      show control options ("paperfeed, std quality, std typeface");  +      show material options ("draft, nlq, courier, sansserif");  +      show command options ("draft, nlq, courier, sansserif");  +      putline ("schwarz, rot, blau, violett, gelb, orange, grün");  +      ask for paper feed;  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.20");  +             generate ("okiml292el");  +             adjust paper feed;  +             adjust quality; +             IF choice = 6 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +    ml294i inst: +      putline ("OKI Microline 294 IBM-kompatibel"); +      putline ("Der Druckertreiber unterstützt auch den Farbdruck mit entsprechendem");  +      putline ("Farbband."); +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- Proportional Spacing: NO"); +      putline ("- Automatic Line Feed: NO");  +      putline ("- Compatibility: PROPRINTER XL");  +      show control options ("paperfeed, std quality");  +      show material options ("draft, nlq");  +      show command options ("draft, nlq,  schwarz, rot, blau, violett, gelb, orange, grün");  +      ask for paper feed;  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.10");  +             generate ("okiml294i");  +             adjust paper feed;  +             adjust quality; +             do ("papersize (34.544, 30.48)"); +             installed := TRUE  +      FI. +  +    ml320 inst: +      IF choice = 8  +        THEN putline ("OKI Microline 320 IBM/EPSON-kompatibel")  +        ELSE putline ("OKI Microline 321 IBM/EPSON-kompatibel")  +      FI;  +      line;  +      putline ("Der Drucker muß so konfiguriert sein (Druckmenü des Druckers):");  +      putline ("- Automatic Line Feed: Nein");  +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning; +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("okiml320");  +             adjust positioning; +             IF choice = 9 THEN do ("papersize (34.544, 30.48)") FI;  +             installed := TRUE  +      FI. +  +  schneider menu:  +    page;  +    headline ("Schneider - Menü");  +    putline (" 1. DMP 4000");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (1);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           dmp4000 inst  +    FI.  +  +    dmp4000 inst: +      putline ("Schneider DMP 4000");  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("DS1-4           übrige Schalter");  +      putline (" OFF                 egal"); +      show control options ("std speed");  +      show material options ("slow, fast"); +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("dmp4000");  +             adjust positioning;  +             do ("papersize (39.37, 30.48)");  +             installed := TRUE  +      FI.  +  +  star menu:  +    page;  +    headline ("Star - Menü");  +    putline (" 1. LC-10 (auch LC-10 Colour)");  +    putline (" 2. NX-15");  +    putline (" 3. ND-10"); +    putline (" 4. ND-15");  +    putline (" 5. NR-10"); +    putline (" 6. NR-15");  +    cursor (1,24);  +    put ("CR: Eingabe        ESC: Zurück zum Hauptmenü");  +    ask user (6);  +    page;  +    choice := int (inp); +    IF was esc  +      THEN was esc := FALSE  +      ELSE headline (""); +           putline ("Druckertyp:");  +           IF choice = 1   +             THEN lc10 inst +           ELIF choice = 2  +             THEN nx15 inst  +             ELSE nd10 inst  +           FI +    FI.  +  +    lc10 inst: +      putline ("Star LC-10 oder LC-10 Colour");  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("S1-1  S1-2  S1-3  S1-4  S1-5  S1-6  S1-7  S1-8     S2-1  S2-2  S2-3  S2-4"); +      putline ("egal  egal  egal  *)    egal  EIN   egal  EIN      egal  egal  egal  egal");  +      putline ("*) AUS: Einzelblatteinzug, EIN: kein Einzug");  +      show control options ("std quality, std typeface");  +      show material options ("draft, nlq, courier, sansserif, orator1, orator2"); +      show command options ("draft, nlq, courier, sansserif, orator1, orator2"); +      putline ("schwarz, rot, blau, violett, gelb, orange, grün");  +      ask for quality;  +      IF all right  +        THEN get fonttable ("fonttab.20.lc");  +             generate ("starlc10");  +             adjust quality;  +             do ("papersize (21.0, 30.48)");  +             installed := TRUE  +      FI.  +  +    nx15 inst: +      putline ("Star NX-15");  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("S1-4  S1-8  S2-5         übrige Schalter");  +      putline ("EIN   EIN   EIN               egal"); +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning; +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("starnx15");  +             adjust positioning;  +             do ("papersize (36.0, 30.48)");  +             installed := TRUE  +      FI.  +  +    nd10 inst: +      IF choice = 3  +        THEN putline ("Star ND-10");  +      ELIF choice = 4  +        THEN putline ("Star ND-15");  +      ELIF choice = 5  +        THEN putline ("Star NR-10");  +        ELSE putline ("Star NR-15");  +      FI;  +      line;  +      putline ("Die DIP-Schalter müssen so eingestellt sein:");  +      putline ("S1-5  S1-6  S2-2          übrige Schalter");  +      putline ("EIN   EIN   EIN                egal"); +      show control options ("std speed");  +      show material options ("slow, fast");  +      ask for positioning;  +      IF all right  +        THEN get fonttable ("fonttab.7");  +             generate ("starnx15");  +             adjust positioning; +             IF choice = 3 OR choice = 5  +               THEN do ("papersize (21.0, 30.48)")  +               ELSE do ("papersize (36.0, 30.48)") +             FI;  +             installed := TRUE  +      FI.  +  +generate printer spool:  +    IF service opt = 0  +      THEN forget (generator name, quiet);  +           forget (driver name, quiet)  +    FI; +    eumel must advertise; +    cursor (1, 10); +    putline ("In allen bestehenden Tasks - insbesondere in der Task ""PUBLIC"" - muß"); +    putline ("die Fonttabelle mit dem Kommando"); +    line; +    putline ("      font table (""" + font tab name + """)"); +    line; +    putline ("eingestellt werden!!!"); +    line (2); +    putline ("Hinweis: Dieses Installationsprogramm kann in der Task """ + name (myself) + """");  +    putline ("         mit 'treiber einrichten' aufgerufen werden, wenn ein anderer");  +    putline ("         Drucker eingesetzt werden soll.");  +    line (2);  +    put ("Generierung beendet, weiter mit 'SV'"); +    break (quiet); +    do ("spool manager (PROC printer)"). +  +  inform about restart:  +    page;  +    putline ("Es ist kein Druckertreiber installiert worden!");  +    line;  +    putline ("Dieses Installationsprogramm kann in der Task """ + name (myself) + """");  +    putline ("mit 'treiber einrichten' erneut aufgerufen werden.");  +    line.  +  +END PROC treiber einrichten;  +  +PROC headline (TEXT CONST header):  +  +  cursor (13,1);  +  putline ("E U M E L - Druckertreiber - Installations - Programm");  +  cursor (40 - LENGTH header DIV 2, 2);  +  put (header);  +  line (2)  +END PROC headline;  +  +PROC ask user (INT CONST max choice):  +  +  TEXT VAR exit;  +  inp := ""; +  REP  +    cursor (1,23);  +    IF inp = ""  +      THEN put ("Ihre Wahl (Nummer eingeben):")   +      ELSE put ("FEHLER! Eingabe korrigieren:") +    FI;  +    editget (inp, ""27"", "", exit);  +    was esc :=  exit = ""27""; +  UNTIL was esc OR ok PER.  +  +  ok:  +    int (inp) > 0 AND int (inp) <= max choice AND last conversion ok.  +END PROC ask user; + +PROC show control options (TEXT CONST options):  +  +  line;  +  putline ("Steuerprozeduren in der Task """ + name (myself) + """:");  +  write ("papersize, top margin"); +  IF options <> ""  +    THEN put (",");  +         putline (options)  +  FI +END PROC show control options;  + +PROC show material options (TEXT CONST options):  +  +  line;  +  putline ("Mögliche Materialwerte (#material(""..."")#):");  +  putline (options)  +END PROC show material options;  +  +PROC show command options (TEXT CONST options):  +  +  line;  +  putline ("Mögliche direkte Druckeranweisungen (#""...""#):");  +  putline (options)  +END PROC show command options;  +  +PROC ask for positioning:  +  +  line (2);  +  putline ("Positionierung in x-Richtung:");  +  line;  +  REP out (up);  +    IF yes ("in Mikroschritten (genauer, aber langsamer)") +      THEN positioning := 1; LEAVE ask for positioning  +    FI; +    out (up); +    IF yes ("in Blanks (schneller, aber ungenauer)") +      THEN positioning := 2; LEAVE ask for positioning  +    FI; +  PER  +END PROC ask for positioning;  +  +PROC ask for quality:  +  +  line (2);  +  putline ("Standard - Druckqualität:");  +  line;  +  REP out (up);  +    IF yes ("Draft Quality (schneller, aber nicht so schön)")  +      THEN quality := 1; LEAVE ask for quality  +    FI; +    out (up); +    IF yes ("Near Letter Quality (schöner, aber langsamer)") +      THEN quality := 2; LEAVE ask for quality  +    FI; +  PER  +END PROC ask for quality;  +  +PROC ask for paper feed:  +  +  line (2);  +  putline ("Einzelblatteinzug:");  +  line;  +  REP out (up);  +    IF yes ("kein Einzelblatteinzug vorhanden")  +      THEN sheet feeder := 0; LEAVE ask for paper feed  +    FI; +    out (up); +    IF yes ("Einzelblatteinzug vorhanden") +      THEN sheet feeder := 1; LEAVE ask for paper feed  +    FI; +  PER  +END PROC ask for paper feed;  +  +BOOL PROC all right:  +  +  line (3); +  cursor (1,23);  +  yes ("Soll der ausgewählte Druckertreiber installiert werden")  +END PROC all right;  +  +PROC get fonttable (TEXT CONST name):  +  +  fonttab name := name;  +  from archive ((description file name & module file name & fonttab name)  +                                                                    - all);  +  fonttable (fonttab name);  +  command dialogue (FALSE);  +  save (fonttab name, /"configurator");  +  IF service option = 0  +    THEN forget (fonttab name)  +  FI;  +  command dialogue (TRUE);  +END PROC get fonttable;  +  +PROC from archive (THESAURUS CONST files): +  +  IF highest entry (files) > 0  +    THEN fetch from archive;  +         release (archive); +         putline ("Archiv abgemeldet !") +  FI. +  +  fetch from archive:  +    THESAURUS VAR thes :: files;  +    REP  +      ask for archive; +      reserve archive; +      fetch (thes / ALL archive, archive); +      thes := thes - all  +    UNTIL highest entry (thes) = 0 PER. + +ask for archive: +  line; +  putline ("Bitte Archiv mit den Dateien");  +  TEXT VAR buffer; +  INT VAR index :: 0;  +  REP  +    get (thes, buffer, index);  +    putline ("    " + buffer)  +  UNTIL index = 0 PER;  +  putline ("einlegen !");  +  line;  +  putline ("Wenn eingelegt: Taste drücken !");  +  inchar (buffer).  +  +reserve archive : +  INT VAR p1, p2; +  archive (" "31" "); +  disable stop; +  list (archive); +  IF is error +     THEN buffer := errormessage; +          p1 := pos (buffer, """", 1 ) + 1; +          p2 := pos (buffer, """", p1) - 1; +          IF p1 > 0 AND p2 > 0 +             THEN clear error; +                  buffer := subtext (buffer, p1, p2); +                  archive (buffer); +          FI; +  FI; +  enable stop. + +END PROC from archive; + +THESAURUS OP & (TEXT CONST left, right): +  THESAURUS VAR result := empty thesaurus; +  insert (result, left); +  insert (result, right); +  result +END OP &; + +THESAURUS OP & (THESAURUS CONST left, TEXT CONST right): +  THESAURUS VAR result := left; +  insert (result, right); +  result +END OP &; +  +PROC generate (TEXT CONST name):  +  +  open files;  +  read description;  +  build programme;  +  insert programme;  +  forget files.  +  +  open files:  +    line (5);  +    cursor (1, 20);  +    putline (""4"Bitte warten !");  +    putline ("    - Der Treiber wird generiert.");  +    driver name := "printer." + name + "(generiert)";  +    IF exists (driver name)  +      THEN forget (driver name, quiet)  +    FI;  +    FILE VAR des file :: sequential file (modify, description file name),  +             mod file :: sequential file (modify, module file name),  +             driver file :: sequential file (output, driver name).  +  +  read description:  +    to line (des file, 1);  +    col (des file, 1); +    downety (des file, "$" + name + "$");  +    IF eof (des file)  +      THEN errorstop ("Beschreibung von """ + name + """ nicht im"13""10"" +  +                      "Descriptions-File enthalten") +    FI;  +    TEXT VAR description :: "",  +             record;  +    BOOL VAR done :: FALSE;  +    read record (des file, record);  +    record := subtext (record, col (des file) + LENGTH name + 2); +    WHILE NOT eof (des file) AND NOT done REP  +      treat record +    PER.  +  +  treat record:  +    INT VAR dollar pos :: pos (record, "$");  +    IF dollar pos = 0 +      THEN description CAT compress (record);  +           down (des file);  +           read record (des file, record)   +      ELSE description CAT compress (subtext (record, 1, dollar pos - 1)); +           col (des file, dollar pos);  +           done := TRUE;  +    FI.  +  +  build programme:  +    get module name;  +    WHILE still modules REP  +      find module;  +      transfer module;  +      get module name  +    PER.  +  +  get module name:  +    INT VAR semicol pos :: pos (description, ";");  +    TEXT VAR module name;  +    IF semicol pos > 0  +      THEN module name := subtext (description, 1, semicol pos - 1);  +           description := subtext (description, semicol pos + 1)  +      ELSE module name := description;  +           description := ""  +    FI. +  +  still modules:  +    module name <> "" OR description <> "".  +  +  find module:  +    to line (mod file, 1);  +    col (mod file, 1);  +    downety (mod file, "$" + module name + "$");  +    IF eof (mod file)  +      THEN errorstop ("Modul """ + module name + """ nicht im"13""10"" +  +                      "Modul-File enthalten") +    FI.  +  +  transfer module:  +    done := FALSE;  +    read record (mod file, record);  +    record := subtext (record, col (mod file) + LENGTH module name + 2); +    WHILE NOT eof (mod file) AND NOT done REP  +      transfer record +    PER.  +  +  transfer record:  +    dollar pos := pos (record, "$");  +    IF dollar pos = 0 +      THEN write (driver file, compress (record));  +           line (driver file); +           down (mod file);  +           read record (mod file, record)   +      ELSE write (driver file, compress (subtext (record, 1,  +                                            dollar pos - 1))); +           col (mod file, dollar pos);  +           done := TRUE;  +           cout (line no (mod file))  +    FI.  +  +  insert programme:  +    IF online  +      THEN putline ("    - Der Treiber wird insertiert.")  +    FI; +    check off;  +    insert (driver name).  +  +  forget files:  +    IF service option = 0  +      THEN forget (description file name, quiet);  +           forget (module file name, quiet) +    FI. +END PROC generate;  +  +PROC adjust positioning:  +  +  IF positioning = 1  +    THEN do ("std speed (""slow"")")  +    ELSE do ("std speed (""fast"")")  +  FI  +END PROC adjust positioning;  +  +PROC adjust quality:  +  +  IF quality = 1  +    THEN do ("std quality (""draft"")")  +    ELSE do ("std quality (""nlq"")")  +  FI  +END PROC adjust quality;  +  +PROC adjust paper feed:  +  +  IF sheet feeder = 1  +    THEN do ("paper feed (""sheet"")")  +    ELSE do ("paper feed (""tractor"")")  +  FI  +END PROC adjust paperfeed;  +  +treiber einrichten  +  +END PACKET driver inst 9 + diff --git a/printer/dotmatrix9/readme b/printer/dotmatrix9/readme new file mode 100644 index 0000000..2047abe --- /dev/null +++ b/printer/dotmatrix9/readme @@ -0,0 +1,324 @@ +#type("nlq10")##limit(18.0)##start(1.5,1.0)#  +#head#  +Treiber-Installations-Programm   #right#Seite %  +für 9-Nadel-Matrixdrucker   #right#23.06.1988  +  +  +#end#  +#on("u")#Dokumentation zum Treiber-Installations-Programm für 9-Nadel- +Matrixdrucker#off("u")#  +  +#on("u")#Inhalt:#off("u")#  +  +1. Installations- und Gebrauchsanleitung  +2. Druckertreiber-Auswahl  +3. Steuerungsmöglichkeiten und Spezialfeatures  +4. Weitere Hinweise  +  +  +#on("b")#1. Installations- und Gebrauchsanleitung#off("b")#  +  +#on("u")#Einrichten#off("u")#  +So wird das Treiber-Installationsprogramm eingerichtet:  +  +       SV drücken  +  +    nach 'gib supervisor kommando:'  +  +       begin("PRINTER","SYSUR")  +  +    in der Task "PRINTER" (nach 'gib kommando'):  +  +       archive ("std.printer")  +       fetch ("printer.neun.nadel",archive)  +       check off  +       insert ("printer.neun.nadel")  +  +Das Programm wird dann insertiert.  +  +#on("u")#Druckerkanal#off("u")#  +Hiernach wird die Kanalnummer des Druckers erfragt. Wenn der Drucker +über Parallelschnittstelle betrieben wird, ist die Kanalnummer +meistens 15.  +  +#on("u")#Menüsystem#off("u")#  +Das Installationsprogramm zeigt nun eine Liste von Druckerherstellern. +Wählen Sie den Hersteller Ihres Druckers aus! Hiernach wird eine Liste +der unterstützten Drucker dieses Herstellers gezeigt. Wählen Sie hier +den passenden Typ aus!  +Das Installationsprogramm zeigt nun einige Informationen zu dem ange +wählten Drucker. Besonders zu beachten sind hierbei #on("u")#Angaben zur Konfi +guration des Druckers#off("u")# (z.B. DIP-Schalter). Der Drucker muß unbedingt +wie angegeben konfiguriert werden, wenn er mit dem ausgewählten Trei +ber betrieben werden soll.  +  +Hinweise zu Konfigurationsangaben:  +1. Die Angabe 'egal' bedeutet, daß die Einstellung für die Funktion +   des Treibers keine Bedeutung hat. Dennoch solte der Anwender darauf +   achten, welche Funktion die Schalter haben (Druckerhandbuch!). So +   ist es zum Beispiel immer empfehlenswert, den Papierende-Sensor zu +   aktivieren, damit der Drucker nach Papierende nicht auf der Walze +   weiterdruckt.  +2. Die Konfigurationsangaben beziehen sich immer auf genau den ausge +   wählten Druckertyp. Wenn Sie den Treiber mit einem anderen Drucker +   als den ausgewählten verwenden, dann beachten Sie folgende Regeln +   für die Konfiguration:  +   - Der Drucker muß auf eine passende Emulation konfiguriert werden.  +   - Der Drucker darf bei einem Carriage Return (Code 13) keinen Zei +     lenvorschub durchführen.  +   - Der Drucker darf die Perforation #on("u")#nicht#off("u")# automatisch überspringen.  +  +   - Auf Seitenlängen und internationale Zeichensätze müssen Sie nicht +     achten.  +  +(Hinweise zur Auswahl des richtigen Treibers gibt Abschnitt 2)  +  +Nach den Konfigurationsangaben werden Steuerungsmöglichkeiten des +ausgewählten Treibers angezeigt. (Siehe hierzu Abschnitt 3)  +  +Falls der Treiber bestimmte grundsätzliche Betriebsmöglichkeiten er +laubt (z.B. DRAFT/NLQ, Einzelblatteinzug), werden Sie danach gefragt, +welche Möglichkeit standardmäßig gewählt werden soll. diese Vorein +stellungen können nachträglich in der Task "PRINTER" mit den entspre +chenden Steuerprozeduren neu gesetzt werden. Außerdem können bestimmte +Einstellungen noch für jedes einzelne Dokument (d.h. für jede Druck +datei) gewählt ('material'-Anweisung) oder sogar innerhalb eines Doku +ments verändert werden (direkte Druckeranweisung \#"..."\#).  +Über die Steuerungsmöglichkeiten informiert Abschnitt 3 ausführlicher.  +  +  +#on("b")#2. Druckertreiber-Auswahl#off("b")#  +  +#on("u")#Verwendung nicht im Menü enthaltener Drucker#off("u")#  +Für den Fall, daß Sie genau Ihren Drucker im Menü nicht finden, soll +ten Sie zunächst versuchen, ob ein Treiber für einen anderen Drucker +des gleichen Herstellers mit Ihrem Drucker korrekt arbeitet.  +Falls dies nicht funktioniert oder der Hersteller überhaupt nicht im +Menü erscheint, müssen Sie herausfinden (Druckerhandbuch, -händler!), +welchen Drucker Ihr Drucker emuliert oder welchem er ähnlich ist. +(Viele Drucker verfügen über EPSON FX-85 bzw. FX-800-Emulationen oder +IBM Grafikdrucker bzw. Proprinter-Eumulationen.)  +Eine der beiden Anpassungen 'EPSON MX' oder 'IBM-Grafikdrucker' müßte +immer einen (Minimal-) Betrieb ermöglichen.  +  +#on("u")#Hinweise zu den Treibern für FX-80/85-kompatilble Drucker#off("u")#  +Die Treiber für FX-80-bzw. FX-85-kompatible Geräte, die oft auch IBM- +kompatibel sind, basieren üblicherweise auf den Treibern für EPSON- +Drucker, weil so einige Schrifttypen (z.B. Proportionalschrift) und +Modifikationen leichter ausgenutzt werden können. Ein Nachteil liegt +aber darin, daß beim FX-80 und FX-85 noch die alten EPSON-Zeichensätze +benutzt werden, die nicht die IBM-üblichen Grafik- und Sonderzeichen +enthalten.  +Falls für Sie die Benutzung dieser Zeichen vordringlich ist, sollten +Sie Ihren Drucker (nachdem er auf IBM-Emulation konfiguriert wurde) +zusammen mit dem Treiber für IBM-Grafikdrucker bzw. -Proprinter ver +wenden.  +  +  +#on("b")#3. Steuerungsmöglichkeiten und Spezialfeatures#off("b")#  +  +Einige Treiber bieten bestimmte Einstellungsmöglichkeiten (z.B. +DRAFT/NLQ) und/oder Spezialfeatures (z.B. Farbdruck).  +Die Einstellungen können über  +- Steuerprozeduren  +- Materialanweisungen bzw.  +- direkte Druckeranweisungen  +vorgenommen werden.  +  +#on("u")#Steuerprozeduren#off("u")#  +setzen Einstellungen, die für alle Dokumente (Druckdateien) gelten +sollen. Die Prozeduren müssen in der Druckspooltask (meist: "PRINTER") +aufgerufen werden. #on("b")#Gültig werden die Änderungen erst, wenn danach in +der Druckspooltask das Kommando 'start' gegeben wird!#off("b")#  +  +PROC papersize (REAL CONST breite, länge)  +    Dient zur Einstellung der Größe der physikalisch beschreibbaren +    Fläche.  +    Beispiel:  papersize (20.32, 30.48)  +               (Standardeinstellung für Endlospapier 8 Zoll breit und +               12 Zoll lang)  +  +PROC papersize  +    Informationsprozedur  +  +PROC top margin (REAL CONST margin)  +    Falls der Drucker es nicht erlaubt, direkt am Blattanfang zu druk +    ken (zum Beispiel wegen eines Einzelblatteinzugs), muß mit dieser +    Prozedur die Länge des oberen Randes, den der Drucker nicht be +    drucken kann, in cm angegeben werden.  +    Beispiel:  top margin (2.0)  +               (Teilt dem Druckertreiber mit, daß die ersten 2 cm +               nicht bedruckbar sind.)  +  +REAL PROC top margin  +    Informationsprozedur  +  +PROC std speed (TEXT CONST speed)  +    Parameter: slow, fast  +    Wahl zwischen Positionierung in Mikroschritten (slow) oder in +    Blanks (fast).  +    Beispiel:  std speed ("slow")  +  +TEXR PROC std speed  +    Informationsprozedur  +  +PROC std quality (TEXT CONST quality)  +    übliche Parameter: draft, nlq  +    Wahl zwischen Datenverarbeitungs-Qualität und Schönschrift- +    Qualität  +    Beispiel:  std quality ("draft")  +  +TEXT PROC std quality  +    Informationsprozedur  +  +PROC std typeface (TEXT CONST typeface)  +    übliche Parameter: roman, sansserif, courier  +    Wahl zwischen verschiedenen NLQ-Schriftarten (nur sichtbar im +    NLQ-Modus, das heißt 'std typeface' schaltet nicht auf NLQ).  +    Beispiel: std typeface ("roman")  +  +TEXT PROC std typeface  +    Informationsprozedur  +  +PROC paper feed (TEXT CONST name)  +    übliche Parameter: tractor, sheet, schacht1, schacht2  +    Wählt Endlospapier oder Einzelblatteinzug und ggf. Schachtnummer.  +    Beispiel:  paper feed ("sheet")  +  +TEXT PROC paper feed  +    Informationsprozedur  +  +  +#on("u")#Materialanweisungen \#material("...")\##off("u")#  +müssen in der Druckdatei vor dem ersten druckbaren Zeichen stehen und +setzen Einstellungen für eine ganze Datei. (Materialanweisungen haben +für die jeweilige Datei Vorrang vor den durch Steuerprozeduren einge +stellten Standardwerten. Diese werden durch die Materialanweisung aber +nicht geändert.)  +  +Beispiel:  \#material("nlq")\#  +           sorgt bei entsprechendem Treiber dafür, daß das gesamte +           Dokument in Schönschrift-Qualität ausgedruckt wird, egal +           wie 'std quality' eingestellt ist.  +  +#on("b")#Es darf in einer Datei nur eine Materialanweisung stehen!#off("b")# Sollen meh +rere Einstellungen vorgenommen werden, müssen sie in einer Anweisung +erscheinen. Beispiel:  \#material("sheet;draft")\#  +  +  +#on("u")#direkte Druckeranweisungen \#"..."\##off("u")#  +gelten ab der Position, an der sie in der Datei auftreten. Sie haben +(sofern sie erlaubt sind,) Vorrang vor Standardeinstellungen und +Materialeinstellungen.  +  +Beispiel:  \#"draft"\#  +           schaltet (bei entsprechendem Treiber) auf Datenverar +           beitungs-Qualität, egal welche Standardeinstellung vorliegt +           und welche Materialanweisung gegeben wurde.  +  +#on("b")#In einer Druckeranweisung darf nur eine Einstellung vorgenommen +werden.#off("b")# Also:  \#"nlq"\#\#"sansserif"\#  +  +  +#on("u")#Wichtig#off("u")#  +- Achten Sie bei Materialanweisungen und direkten Druckeranweisungen +  besonders auf korrekte Schreibweise! Es werden nur Kleinbuchstaben +  berücksichtigt! Also:  \#"nlq"\# und keinesfalls \#"NLQ"\#!!!  +- Direkte Druckeranweisungen werden vom EUMEL-Drucker ignoriert und +  nur vom Druckertreiber in eine Kommando-Sequenz umgesetzt. Es kann +  daher vorkommen, daß (z.B. bei Spaltendruck) unerwartete Ergebnisse +  erscheinen, weil der EUMEL-Drucker dann den Text in einer anderen +  Reihenfolge an den Drucker sendet, als er in der Datei steht, die +  mit dem direkten Druckerkommando gesetzte Modifikation aber (z.B. +  für beide Spalten) unerwünscht erhalten bleibt.  +  +  +#on("u")#Tabelle#off("u")#  +Die Tabelle soll einen Anhaltspunkt dafür geben, wie welche Einstel +lungen erfolgen können.  +  +#type("17")#  +                   Steuerprozeduren      Materialanweisungen     direkte Druckeranweisungen  +  +#on("u")#                                                                                          #off("u")#  +  +Positionierung     std speed             slow, fast              ------  +                     slow, fast  +  +Qualität           std quality           z.B. draft, nlq         z.B. draft, nlq  +                     z.B. draft, nlq  +  +Schriftart         std typeface          z.B. roman,             z.B. roman,  +(nur bei NLQ)        z.B. roman,         sansserif, courier      sansserif, courier  +                     sansserif, courier  +  +Einzelblatt-       paper feed            z.B. schacht1,          z.B. schacht1,  +einzug               z.B. tractor,       schacht2                schacht2  +                     sheet,  +                     schacht1, schacht2  +  +Farbdruck          ------                ------                  z.B. schwarz,  +                                                                 rot, blau,  +                                                                 violett, gelb  +                                                                 orange, grün  +  +  +  +#type("nlq10")##on("b")#4. Weitere Hinweise#off("b")#  +  +#on("u")#Zeichensatzänderungen gegenüber früheren Versionen#off("u")#  +In den Fonttabellen früherer Druckertreiber-Versionen wurden oberhalb +des Codes 127 einige internationale Zeichen zur Verfügung gestellt +(und zwar in Anlehnung an den Agfa-Laserdrucker-Zeichensatz).  +Bei den Treibern der vorliegenden Version gilt folgendes:  +- Wie bisher wird der volle im Benutzerhandbuch festgelegte EUMEL- +  Zeichensatz (sofern möglich) unterstützt.  +- Der Code 252 liefert das Paragraphzeichen.  +- Alle übrigen (vom EUMEL-Zeichensatz nicht definierten) Zeichencodes +  oberhalb 127 liefern, sofern möglich, die entsprechenden Zeichen des +  IBM-Grafikzeichensatzes.  +  +  +#on("u")#Hinweis zu Proportionalschriften#off("u")#  +Bei Proportionalschriften sollte die Modifikation \#on("i")\# nicht +benutzt werden, da die kursiven Zeichen andere Proportionalbreiten +haben. Stattdessen sollte auf den schrägen Typ umgeschaltet werden +(z.B. von "prop10" auf "prop10i").  +  +  +#on("u")#Hinweis zur Benutzung von Einzelblatteinzügen#off("u")#  +Bei der Benutzung von Einzelblatteinzügen müssen folgende Einstel +lungen vorgenommen werden (vgl. auch Abschnitt 3!):  +  +   Am Drucker:  +1. Sie müssen Ihren Drucker auf die Option Einzelblatteinzug konfigu +   rieren (siehe Druckerhandbuch!).  +  +   In der Druckspooltask (meist 'PRINTER'):  +2. Falls der Druckertreiber die Steuerprozedur 'paper feed' zur Verfü +   gung stellt, müssen Sie mit 'paperfeed ("sheet")' oder (für +   2-Schacht-Einzüge) mit 'paperfeed ("schacht1")' bzw. 'paperfeed +   ("schacht2")' den Druckertreiber auf Einzelblatteinzug umschalten.  +3. Falls Sie eine andere Papierlänge als 12 Zoll (=30.48 cm) verwen +   den, müssen Sie die neuen Papiermaße mit 'papersize' in cm einstel +   len.  +   Beispiel:  papersize (21.0, 29.7)  +              (für DIN A4-Blätter)  +4. Falls der Drucker mit dem Einzelblatteinzug nicht direkt am Blatt +   anfang drucken kann, sondern ein gewisser oberer Rand bleibt, muß +   mit 'top margin' die Länge des nicht bedruckbaren Randes in cm dem +   Druckertreiber mitgeteilt werden.  +   Beispiel:  top margin (1.5)  +   (Wie groß der obere Rand ist, kann festgestellt werden, indem eine +   Datei mit \#start(0.0,0.0)\# ausgedruckt wird.)  +  +   Wurde mit 'top margin' dem Treiber die Größe der nicht bedruckbaren +   Fläche mitgeteilt, so ist darauf zu achten, daß in den Druckdateien +   ein genügend großer y-Wert für die Startposition eingestellt wird +   ('start'-Anweisung). Andernfalls kommt es bei der Ausgabe in der +   ersten Zeile zu Überschreibungen.  +  +  +#on("b")#5. Die Änderungen, die Sie in der Druckspooltask vorgenommen haben +   werden erst wirksam, wenn das Spool-Kommando 'start' gegeben wird.#off("b")#  + | 
