home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / PROGRAM / PRBGI094.ZIP / DRIVERS.INC < prev    next >
Text File  |  1992-05-19  |  7KB  |  263 lines

  1.  
  2.  
  3. MaxAllModes EQU     6;  /* The maximum number of modes supported by any printer */
  4.  
  5. CR          EQU  0Dh;
  6. NL          EQU  0Ah;
  7. Esc         EQU  01Bh;
  8.  
  9. COMMENT \ ******************************************************************
  10.  
  11.    /* When command sending to printer is divided into two parts  */
  12.    /* it means that first Str1 is sending then needed parameter */
  13.    /* and at last Str2. Of cource Str2 may be empty one */
  14.  
  15. \ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  16.  
  17. DriversNo = 0;
  18. DriverDefOnlySize = 26h;   /* without modes defined */
  19. ModeDefSize = 28h;
  20. ConstDriverDefSize = DriverDefOnlySize + ModeDefSize*MaxAllModes;   /* with modes defined, without strings */
  21. string_offset = ConstDriverDefSize;
  22.  
  23. ModeDefAddr = 0;
  24. DriverDefAddr = 0;
  25.  
  26. GenString  MACRO  Stype,str
  27.       ifidni <&str>,<NULL>
  28.          dw  ConstDriverDefSize
  29.          EXITM
  30.       endif
  31.       ifb   <&str>
  32.          dw  ConstDriverDefSize
  33.          EXITM
  34.       endif
  35.       o1 = $
  36.       org DriverDefAddr+string_offset
  37.       o2 = $
  38.       l  = 0
  39.       ifdifi <&Stype>,<C>
  40.          db   ?
  41.          db   str
  42.          l  = $-o2
  43.          ifidni <&Stype>,<Both>
  44.             db  0
  45.          else
  46.             ifdifi <&Stype>,<Pascal>
  47.                err Wrong string type specified
  48.             endif
  49.          endif
  50.          org  o2
  51.          db   l-1;        string length
  52.       else
  53.          ifidni <&Stype>,<C>
  54.             db   str
  55.             db   0
  56.             l  = $-o2
  57.          endif
  58.       endif
  59.       org  o1
  60.       dw    string_offset
  61.       ifidni <&Stype>,<Both>
  62.              l = l+1;
  63.       endif
  64.       string_offset = string_offset+l
  65.    ENDM
  66.  
  67. GenPString  MACRO  str
  68.             GenString  <Pascal>,<&str>
  69.             ENDM
  70.  
  71.  
  72. genstmnt    MACRO a,b,c,d,e,f,g,h
  73.             a&b   c&d   e&f&g&h
  74.             ENDM
  75.  
  76. DriverDef  MACRO
  77.            DriverDefAddr = $
  78.            org   ConstDriverDefSize
  79.            db    0;    ; NULL strings points here
  80.            org   DriverDefAddr
  81.            string_offset = ConstDriverDefSize+1;
  82.            DriversNo = DriversNo + 1;
  83.            genstmnt  <DriverDefOffs_>,%DriversNo,<=>,,<DriverDefAddr-PRT__Drivers>
  84.            ModesNo = 0
  85.            dw      ? ; place for Driver definition size
  86.            db      ? ; place for ModesNo
  87.            ENDM
  88.  
  89. EndDriverDef  MACRO
  90.               l     = $
  91.               ORG   DriverDefAddr
  92.               dw    string_offset   ; driver definition size
  93.               db    ModesNo;
  94.               org   l
  95.               l = $-DriverDefAddr
  96.               if l GT ConstDriverDefSize
  97.                  err ConstDriverDefSize === &l&
  98.                  Display "ConstDriverDefSize = &l&"
  99.               endif
  100.               ModesNo   = 0;
  101.               org   DriverDefAddr+string_offset
  102.            ENDM
  103.  
  104. PRT__RLE_COMPRESSION   EQU  1
  105. CompressionType MACRO  a
  106.                 db     a
  107.                 ENDM
  108.  
  109. DriverName      MACRO  s
  110.                 GenString <Both>,<&s>
  111.                 Display   " &DriversNo. &s"
  112.                 ENDM
  113.  
  114. ASCIInumbers    MACRO p
  115.                 db    p
  116.                 ENDM
  117.  
  118. TransferValueInBytes MACRO p
  119.                      db    p
  120.                      ENDM
  121.  
  122. InitPRTStr        MACRO  s      ;  /* Init PRT string */
  123.                 GenPString <&s>
  124.                 ENDM
  125. EndPRTStr         MACRO  s      ;  /* End PRT string */
  126.                 GenPString <&s>
  127.                 ENDM
  128. CompressedStr     MACRO  s      ;  /* Compress mode string */
  129.                 GenPString  <&s>
  130.                 ENDM
  131. UncompressedStr   MACRO  s      ;  /* Compress mode string */
  132.                 GenPString <&s>
  133.                 ENDM
  134.  
  135. LeftMargin     MACRO  s1,s2,mult,div      ;
  136.                 GenPString <&s1>
  137.                 GenPString <&s2>
  138.                 dw         mult
  139.                 dw         div
  140.                 ENDM
  141.  
  142. TopMargin     MACRO  s1,s2,mult,div      ;
  143.                 GenPString <&s1>
  144.                 GenPString <&s2>
  145.                 dw         mult
  146.                 dw         div
  147.                 ENDM
  148.  
  149. ColorsStrings   Macro s1,s2,map
  150.                 GenPString <&s1>
  151.                 GenPString <&s2>
  152.                 GenString <&map>
  153.                 ENDM
  154.  
  155.  
  156. __ModeName      MACRO  s
  157.                 GenString <Both>,<&s>
  158.                 ENDM
  159.  
  160.  
  161. ModeDef   MACRO XPinch,YPinch,ColorsNo,ModeName;
  162.           ModeDefAddr  = $;
  163.           if  DriverDefOnlySize EQ 0
  164.               DriverDefOnlySize = $-DriverDefAddr
  165.           endif
  166.           if ModesNo EQ 0
  167.              if DriverDefOnlySize NE $-DriverDefAddr
  168.                 err Wrong driver definition
  169.              endif
  170.           endif
  171.           dw   XPinch,YPinch
  172.           dw   ColorsNo
  173.           ifnb <&ModeName>
  174.                __ModeName <&ModName>
  175.           else
  176.               mname  CATSTR  <'>,<&XPinch>,<x&YPinch>
  177.               if     ColorsNo GT 2
  178.                      mname  CATSTR  mname,<(&ColorsNo>,< colors)>
  179.               endif
  180.               mname  CATSTR  mname,<'>
  181.               __ModeName  <%mname>
  182.           endif
  183.           ModesNo = ModesNo+1;
  184.           ENDM
  185.  
  186. ModeOptions MACRO o1;
  187.             l  = 0;
  188.             ifidni <&o1>,<Planes>
  189.                 l  = 1;
  190.             endif
  191.             ifidni <&o1>,<SimPlanes>
  192.                 l  = 3;
  193.             endif
  194.             ifnb  <&o1>
  195.                ifdif <&o1>,<0>
  196.                   ife l
  197.                      err Wrong argument &o1& in macro ModeOptions
  198.                   endif
  199.                endif
  200.             endif
  201.             dw    l;
  202.             ENDM
  203.  
  204. ColorPalette     MACRO  palette
  205.            GenString <&palette>
  206.            ENDM
  207.  
  208. InitGraphStr MACRO s;       /* init graph string  */
  209.            GenPString <&s>
  210.            ENDM
  211. EndGraphStr MACRO s;       /* end graph string  */
  212.            GenPString <&s>
  213.            ENDM
  214.  
  215. PicWidth Macro s1,s2,multiplier,divisor;  /* Def. picture width command, multiplier, divisor */
  216.          GenPString <&s1>
  217.          GenPString <&s2>
  218.          ifnb  <&multiplier>
  219.               dw multiplier
  220.          else
  221.               dw 1
  222.          endif
  223.          ifnb  <&divisor>
  224.               dw divisor
  225.          else
  226.               dw 1
  227.          endif
  228.          endm
  229.  
  230. InitTransferStr MACRO s1,s2; /* init graphic mode cmnd. */
  231.            GenPString <&s1>
  232.            GenPString <&s2>
  233.            ENDM
  234.  
  235. PinsPerHead MACRO p;      ;/* number of pins in a head */
  236.                           ;/* 1 - for laser printers */
  237.             db     p
  238.             ENDM
  239.  
  240. PixelsStep  MACRO  p;       /* vertical density / pins distance */
  241.             db      p
  242.             ENDM
  243.  
  244. EolnStr     Macro s
  245.            GenPString <&s>
  246.            ENDM
  247.  
  248. SmallEoln  MACRO  s1,s2,mult,div
  249.                            ; /* SmallEoln multipier and dividend are the numbers */
  250.                            ; /* needed to adjust paper for one pins distance,    */
  251.                            ; /* in the case when SmallEoln command adjusts paper */
  252.                            ; /* not at vertical pixel distance but some other value */
  253.            GenPString <&s1>
  254.            GenPString <&s2>
  255.            dw        mult,div
  256.            if    ModeDefSize NE $-ModeDefAddr
  257.               err Wrong mode definition
  258.            endif
  259.            ENDM
  260.  
  261.  
  262.  
  263.