home *** CD-ROM | disk | FTP | other *** search
- unit PrnCtrl;
-
- {a unit to implement the escape sequences for controlling printer functions
- such as characters/inch, lines/inch, underscores, boldface, and center text.
- Should work with any 100% IBM Dot Matrix - compatible printer, including the
- NEC Spinwriter (daisy-wheel type) series. Written by L.G. Eckelkamp. Last
- modified 8/7/88.}
-
- interface
-
- uses Printer;
-
- procedure PrinterDefaults;
- {Resets printer to power-on defaults: 10 cpi-6 lpi}
-
- procedure Condensed15;
- {sets printer output to 15 cpi}
-
- procedure Condensed12;
- {sets printer output to 12 cpi}
-
- procedure DoubleSpaceMode;
- {sets printer output to auto-double space between characters.
- this mode clears after every carriage return.}
-
- procedure Underscore;
- {sets auto-underline mode}
-
- procedure CancelUnderscore;
- {cancels auto underscore mode}
-
- procedure SetLine8;
- {sets line spacing at 6/48", 8 lpi}
-
- procedure SetLine10;
- {sets line spacing at 5/48", about 10 lpi}
-
- procedure SetLine6;
- {sets line spacing at 6 lpi, the power-on default}
-
- procedure Bold;
- {sets auto boldface mode}
-
- procedure CancelBold;
- {cancels auto boldface mode}
-
- procedure Shadow;
- {sets auto shadow mode}
-
- procedure CancelShadow;
- {cancels auto shadow mode}
-
- procedure AutoCenter;
- {automatically centers text if possible}
- {this mode cancels with a carriage return, line feed, form feed,
- or vertical tab. See MarginSet.}
-
- procedure MarginSet(l, r : byte);
- {set margins at left position l and right position r.
- use before AutoCenter, especially if you are using a
- 132 column printer with 80 column paper.}
-
- procedure ClearMargins;
- {resets left and right margins to the extreme ends}
- {tricky to use. effect is delayed.}
-
-
- implementation
-
- procedure PrinterDefaults;
- begin
- write(LST,#27#61) {ESC =}
- end;
-
- procedure Condensed15;
- begin
- write(LST,#27#15) {ESC SI}
- end;
-
- procedure Condensed12;
- begin
- write(LST,#27#73) {ESC I}
- end;
-
- procedure DoubleSpaceMode;
- begin
- write(LST,#27#14) {ESC SO}
- end;
-
- procedure Underscore;
- begin
- write(LST,#27#45) {ESC -}
- end;
-
- procedure CancelUnderscore;
- begin
- write(LST,#27#39) {ESC '}
- end;
-
- procedure SetLine8;
- begin
- write(LST,#27#48) {ESC 0}
- end;
-
- procedure SetLine10;
- begin
- write(LST,#27#49) {ESC 1}
- end;
-
- procedure SetLine6;
- begin
- write(LST,#27#50) {ESC 2}
- end;
-
- procedure Bold;
- begin
- write(LST,#27#69) {ESC E}
- end;
-
- procedure CancelBold;
- begin
- write(LST,#27#70) {ESC F}
- end;
-
- procedure Shadow;
- begin
- write(LST,#27#71) {ESC G}
- end;
-
- procedure CancelShadow;
- begin
- write(LST,#27#72) {ESC H}
- end;
-
- procedure AutoCenter;
- begin
- write(LST,#27#36#65) {ESC $A}
- end;
-
- procedure MarginSet(l, r : byte);
- begin
- write(LST,#27#85,chr(l)); {ESC U (n) nth column}
- write(LST,#27#87,chr(r)); {ESC W (n) nth column}
- end;
-
- procedure ClearMargins;
- begin
- write(LST,#27#79); {ESC O}
- write(LST,#27#75); {ESC K}
- end;
-
- end. {unit}