home *** CD-ROM | disk | FTP | other *** search
/ TopWare 18: Liquid / Image.iso / liquid / top1200 / paperbgi.lzh / PASCAL / PARAMS.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1993-11-28  |  9.6 KB  |  194 lines

  1. unit params;
  2. {
  3. File PARAMS.PAS
  4.  
  5. Typen zur Konfigurierung der BGI-Treiber
  6.  
  7. (C)opyright
  8.        Raimund Nisius
  9.        Goethepark  13
  10.        10627  Berlin
  11.        Dezember 1991
  12. Als rechtmäßiger Besitzer eines BGI-Treibers von mir dürfen sie
  13. diesen Quellcode benutzen und nach Ihrem Bedarf verändern.
  14. Die Datentypen müssen natürlich gleich bleiben.
  15.  
  16. Stand August 1993
  17.  
  18. }
  19.  
  20. interface
  21.  
  22. type
  23.   stiftarr = array[0..31] of integer;  { Max. 32 Paletteneinträge }
  24.   pointtype = record x,y : integer; end; {erspart uses graph; }
  25.  
  26.  
  27. type
  28.     kenntyp = array[1..8] of char;
  29. const
  30.     kenncode : kenntyp = ('N','i','s','i','u','s',#255,#0);  { Muß bleiben }
  31. type
  32.     IntServiceRec = record              { springt zum Original Interrupt }
  33.                                         { Rest ist toter Briefkasten für }
  34.                                         { BGI-Treiber                    }
  35.                       jumpbefehl : byte;     { OpCode "jmp"              }
  36.                       sprungziel : pointer;  { Original Vektor           }
  37.                       alignbyte     : byte;     { fuer word alignment }
  38.                       kennung    : kenntyp;  {'NISIUS'                   }
  39.                       data       : pointer   { Pointer auf Konfiguration }
  40.                     end;
  41.  
  42.     allgemein_rec = record
  43.                   { Folgende Elemente haben Bedeutung für alle Treiber }
  44.         errormessages : boolean;    { (on/off)      }
  45.         warnings      : boolean;    { (on/off)      }
  46.         dateiname     : string[79]; { für Mode 8    }
  47.                   { Folgende Elemente haben Bedeutung für die Druckertreiber }
  48.         control       : pointer;    { Steuerung der Datenübertragung  }
  49.         control_ds    : word;       { Datensegment von control        }
  50.         myalloc       : pointer;    { allocmem im Hauptprogramm       }
  51.     mfree         : pointer;    { freemem im Hauptprogramm        }
  52.     free_ds       : word;       { Datensegment im Hauptprogramm   }
  53.     Selectordelta : word;        { eben diese Variable }
  54.     tmp_path      : string[79]; { kompletter Pfad für temporäre   }
  55.                                     { Datei: Laufwerk am Anfang und   }
  56.                                     { '\' am Ende, oder '' z.B. 'D:\' }
  57.     end;  { allgemein_rec }
  58.  
  59.     hpgl_rec = record
  60.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  61.                                 { 1: Treiber liest Werte aus Struct    }
  62.        stiftzahl   : word;      { Stiftzahl im Karussel  (0..n-1).     }
  63.        speedmax    : word;      { das 10-fache der Defaultspeed [cm/s] }
  64.        speed       : stiftarr;  { der Farbstifte in %    100 = default }
  65.        dicke       : stiftarr;  { in Dots Plottereinheiten 12 = 0.3mm  }
  66.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit}
  67.        size        : pointtype; { Ausdehnung in Pixeln                 }
  68.        filehandle  : word;      { falls Sie Plotterbefehle geben wollen (mit INT $40) }
  69.        rotate      : boolean;   { Landscape ?               }
  70.        formfeed    : boolean;   { Plotter kann und soll Papier auswerfen ? }
  71.        lastschnitt : byte;      { für Schnittstellle = 9    }
  72.        initstr     : string[50];{ Spezielle Einstellungen   }
  73.                                 { des Benutzers (z.B. Plotter-Reset) }
  74.        exitstr     : string[50];{ Spezielle Einstellungen   }
  75.                                 { des Benutzers (z.B. Drucker in PCL_Mode zurück) }
  76.   end; { hpgl_rec }
  77.  
  78.   laser_rec = record
  79.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  80.                                 { 1: Treiber liest Werte aus Struct    }
  81.        stiftzahl   : word;      { Stiftzahl im Karussel  (0..n-1).     }
  82.        dicke       : stiftarr;  { in Dots Druckereinheiten 12 = 1mm bei 300 dpi }
  83.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit}
  84.        size        : pointtype; { Ausdehnung in Pixeln                 }
  85.        rotate      : boolean;   { Landscape ?               }
  86.        formfeed    : boolean;   { (J/N) Seite ausdrucken ?  }
  87.        resolution  : byte;      { 1,2,3 oder 4 Pixel / Punkt }
  88.        compress    : boolean;   { Komprimiermethode 2 ab Laserjet III }
  89.        lastschnitt : byte;      { für Schnittstellle = 9    }
  90.        file_append : boolean;   { True : File wird nicht überschrieben }
  91.        initstr     : string[51];{ Spezielle Einstellungen   }
  92.                                 { des Benutzers (z.B. Emulation) }
  93.   end; {laser_rec}
  94.  
  95.   nadel_rec = record
  96.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  97.                                 { 1: Treiber liest Werte aus Struct    }
  98.        stiftzahl   : word;       { Stiftzahl im Karussel  (0..n-1).     }
  99.        dicke       : stiftarr;  { in Dots Druckereinheiten 12 = 1mm bei 300 dpi }
  100.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit      }
  101.        size        : pointtype; { Ausdehnung in Pixeln                 }
  102.        rotate      : boolean;   { Landscape ?               }
  103.        formfeed    : boolean;   { (J/N) Seite ausdrucken ?  }
  104.        printermode : byte;      { EPS_240 .. NEC_360_360    }
  105.        defaultbackground : byte;{ nur für colormode (0..15), 15 = weiß }
  106.        endezeichen : byte;      { 0: CR 1: LF 2: CR/LF  +4 für Zeilenende immer }
  107.        lastschnitt : byte;      { für Schnittstellle = 9    }
  108.        file_append : boolean;   { True : File wird nicht überschrieben }
  109.        initstr     : string[51];{ Spezielle Einstellungen   }
  110.                                 { des Benutzers (z.B. Emulation) }
  111.   end; {nadel_rec}
  112.  
  113.   deskjet_rec = record
  114.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  115.                                 { 1: Treiber liest Werte aus Struct    }
  116.        stiftzahl   : word;      { Stiftzahl im Karussel  (0..n-1).     }
  117.        dicke       : stiftarr;  { in Dots Druckereinheiten 12 = 1mm bei 300 dpi }
  118.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit }
  119.        size        : pointtype; { Ausdehnung in Pixeln                 }
  120.        rotate      : boolean;   { Landscape ?               }
  121.        formfeed    : boolean;   { (J/N) Seite ausdrucken ?  }
  122.        resolution  : byte;      { 1,2,3 oder 4 Pixel / Punkt }
  123.        printermode : byte;      { 0 : monochrom 128 : Color }
  124.        defaultbackground : byte;{ nur für colormode (0..15), 15 = weiß }
  125.        lastschnitt : byte;      { für Schnittstellle = 9    }
  126.        file_append : boolean;   { True : File wird nicht überschrieben }
  127.        quality     : byte;      { 0: Keypad Einstellung 1: Draft 2: High }
  128.        depletion   : byte;      { Ausdünnung 0: keine 1: normal, 2 stark }
  129.        shingling   : byte;      { Mehrphasendruck 0: nein 1: 2 Phasen 2: 4 Phasen }
  130.        Initstring  : string[51] { Spezielle Einstellungen   }
  131.   end; {deskjet_rec}
  132.  
  133.  
  134.   paintjet_rec = record
  135.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  136.                                 { 1: Treiber liest Werte aus Struct    }
  137.        stiftzahl   : word;      { Stiftzahl im Karussel  (0..n-1).     }
  138.        dicke       : stiftarr;  { in Dots Druckereinheiten 12 = 1mm bei 300 dpi }
  139.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit }
  140.        size        : pointtype; { Ausdehnung in Pixeln                 }
  141.                                 { Format        x     y}
  142.                                 { US Letter/A   1472  1931 }
  143.                                 { US Ledger/B   1920  2990 }
  144.                                 { A4            1440  2055 }
  145.                                 { A3            1984  2906 }
  146.        rotate      : boolean;   { Landscape ?               }
  147.        formfeed    : boolean;   { (J/N) Seite ausdrucken ?  }
  148.        resolution  : byte;      { 1,2,3 oder 4 Pixel / Punkt }
  149.        printermode : byte;      { 0 : monochrom 128 : Color }
  150.        defaultbackground : byte;{ nur für colormode (0..15), 15 = weiß }
  151.        lastschnitt : byte;      { für Schnittstellle = 9    }
  152.        file_append : boolean;   { True : File wird nicht überschrieben }
  153.        shingling   : byte;      { Mehrphasendruck 0: nein 1: ja}
  154.        initstr     : string[51] { Spezielle Einstellungen   }
  155.   end; {paintjet_rec}
  156.  
  157.   DXF_rec = record
  158.        reconfig    : word;      { 0: Treiber setzt hier Defaultwerte   }
  159.                                 { 1: Treiber liest Werte aus Struct    }
  160.        stiftzahl   : word;      { Stiftzahl im Karussel  (0..n-1).     }
  161.        dicke       : stiftarr;  { in units der resolution  }
  162.        strichweite : word;      { der gestrichelten Linien pro Pattern-Bit }
  163.        size        : pointtype; {Ausdehnung in mm * 10 hoch resolution  }
  164.        resolution  : integer;   { 1,2,3 oder 4 Pixel / Punkt }
  165.        textwinkel  : integer;   { Winkel SetTextStyle( x,VertDir, y) erlaubt
  166.                                 { andere Winkel als 90 °}
  167.        textstyle    : string[51] { Spezielle Einstellungen   }
  168.   end; {DXF_rec}
  169.  
  170.     HPGL_Konfig_ptr = ^hpgl_rec;
  171.  
  172.  
  173.     BGI_Konfiguration = record
  174.        umgebung     : allgemein_rec;
  175.        plotter      : HPGL_Konfig_ptr;
  176.        laserjet     : ^laser_rec;
  177.        nadeldrucker : ^nadel_rec;
  178.        deskjet_c    : ^deskjet_rec;
  179.        paintjet     : ^paintjet_rec;
  180.        DXF           : ^DXF_rec;
  181.        reserve1     : pointer;
  182.        reserve2     : pointer;
  183.        reserve3     : pointer;
  184.        userfill     : pointer;  { NIL : normales SetFillPattern  }
  185.                                 { sonst Zeiger auf 16 Worte, die das }
  186.                                 { Bitmuster für USER_FILL Zeilenweise }
  187.                                 { mit 16 Bit definieren               }
  188.     end;   { BGI_Konfiguration }
  189.  
  190. implementation
  191. { reine Typdeklaration, kein Code }
  192. end.
  193.  
  194.