home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / VSPC1.ZIP / PRNCTRL.PAS
Encoding:
Pascal/Delphi Source File  |  1988-08-07  |  3.7 KB  |  152 lines

  1. unit PrnCtrl;
  2.  
  3. {a unit to implement the escape sequences for controlling printer functions
  4.  such as characters/inch, lines/inch, underscores, boldface, and center text.
  5.  Should work with any 100% IBM Dot Matrix - compatible printer, including the
  6.  NEC Spinwriter (daisy-wheel type) series.  Written by L.G. Eckelkamp.  Last
  7.  modified 8/7/88.}
  8.  
  9. interface
  10.  
  11. uses Printer;
  12.  
  13. procedure PrinterDefaults;
  14.           {Resets printer to power-on defaults: 10 cpi-6 lpi}
  15.  
  16. procedure Condensed15;
  17.           {sets printer output to 15 cpi}
  18.  
  19. procedure Condensed12;
  20.           {sets printer output to 12 cpi}
  21.  
  22. procedure DoubleSpaceMode;
  23.           {sets printer output to auto-double space between characters.
  24.            this mode clears after every carriage return.}
  25.  
  26. procedure Underscore;
  27.           {sets auto-underline mode}
  28.  
  29. procedure CancelUnderscore;
  30.           {cancels auto underscore mode}
  31.  
  32. procedure SetLine8;
  33.           {sets line spacing at 6/48", 8 lpi}
  34.  
  35. procedure SetLine10;
  36.           {sets line spacing at 5/48", about 10 lpi}
  37.  
  38. procedure SetLine6;
  39.           {sets line spacing at 6 lpi, the power-on default}
  40.  
  41. procedure Bold;
  42.           {sets auto boldface mode}
  43.  
  44. procedure CancelBold;
  45.           {cancels auto boldface mode}
  46.  
  47. procedure Shadow;
  48.           {sets auto shadow mode}
  49.  
  50. procedure CancelShadow;
  51.           {cancels auto shadow mode}
  52.  
  53. procedure AutoCenter;
  54.           {automatically centers text if possible}
  55.           {this mode cancels with a carriage return, line feed, form feed,
  56.            or vertical tab.  See MarginSet.}
  57.  
  58. procedure MarginSet(l, r : byte);
  59.           {set margins at left position l and right position r.
  60.            use before AutoCenter, especially if you are using a
  61.            132 column printer with 80 column paper.}
  62.  
  63. procedure ClearMargins;
  64.           {resets left and right margins to the extreme ends}
  65.           {tricky to use.  effect is delayed.}
  66.  
  67.  
  68. implementation
  69.  
  70. procedure PrinterDefaults;
  71.           begin
  72.             write(LST,#27#61)         {ESC =}
  73.           end;
  74.  
  75. procedure Condensed15;
  76.           begin
  77.             write(LST,#27#15)         {ESC SI}
  78.           end;
  79.  
  80. procedure Condensed12;
  81.           begin
  82.             write(LST,#27#73)          {ESC I}
  83.           end;
  84.  
  85. procedure DoubleSpaceMode;
  86.           begin
  87.             write(LST,#27#14)          {ESC SO}
  88.           end;
  89.  
  90. procedure Underscore;
  91.           begin
  92.             write(LST,#27#45)          {ESC -}
  93.           end;
  94.  
  95. procedure CancelUnderscore;
  96.           begin
  97.             write(LST,#27#39)          {ESC '}
  98.           end;
  99.  
  100. procedure SetLine8;
  101.           begin
  102.             write(LST,#27#48)         {ESC 0}
  103.           end;
  104.  
  105. procedure SetLine10;
  106.           begin
  107.             write(LST,#27#49)         {ESC 1}
  108.           end;
  109.  
  110. procedure SetLine6;
  111.           begin
  112.             write(LST,#27#50)         {ESC 2}
  113.           end;
  114.  
  115. procedure Bold;
  116.           begin
  117.             write(LST,#27#69)         {ESC E}
  118.           end;
  119.  
  120. procedure CancelBold;
  121.           begin
  122.             write(LST,#27#70)         {ESC F}
  123.           end;
  124.  
  125. procedure Shadow;
  126.           begin
  127.             write(LST,#27#71)         {ESC G}
  128.           end;
  129.  
  130. procedure CancelShadow;
  131.           begin
  132.             write(LST,#27#72)         {ESC H}
  133.           end;
  134.  
  135. procedure AutoCenter;
  136.           begin
  137.             write(LST,#27#36#65)      {ESC $A}
  138.           end;
  139.  
  140. procedure MarginSet(l, r : byte);
  141.           begin
  142.             write(LST,#27#85,chr(l));    {ESC U (n)  nth column}
  143.             write(LST,#27#87,chr(r));    {ESC W (n)  nth column}
  144.           end;
  145.  
  146. procedure ClearMargins;
  147.           begin
  148.             write(LST,#27#79);       {ESC O}
  149.             write(LST,#27#75);       {ESC K}
  150.           end;
  151.  
  152. end.  {unit}