Changes

Jump to: navigation, search

Amstrad/Schneider Printer Control Codes

14,817 bytes added, 12:21, 4 September 2010
Created page with "== DMP2xxx/3xxx Printer Codes (sorted by number) == {|{{Prettytable|width: 700px; font-size: 2em;}} |''Hex'' ||''Decimal'' ||''ASCII'' ||''Type'' |''Desc..."
== DMP2xxx/3xxx Printer Codes (sorted by number) ==

{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Hex'' ||''Decimal'' ||''ASCII'' ||''Type''
|''Description''
|-
|07 ||7 ||BEL ||Misc
|Beeper (produce beep sound, can be disabled via DIP-switch)
|-
|08 ||8 ||BS ||Misc
|Backspace (move print head left by one character unit, allowing to overwrite characters)
|-
|09 ||9 ||HT ||Tab
|Horizontal tab
|-
|0A ||10 ||LF ||Feed
|Line Feed (move to next line)
|-
|0B ||11 ||VT ||Tab
|Vertical Tab
|-
|0C ||12 ||FF ||Feed
|Form Feed (move to next page)
|-
|0D ||13 ||CR ||Misc
|Carriage Return
|-
|0E ||14 ||SO ||Text Style
|Select double width for one line (unlike ESC W 0/1 continous)
|-
|0F ||15 ||SI ||Text Style
|Select condensed mode
|-
|11 ||17 ||DC1 ||Misc
|Select printer (online?) (FX80: DIP-switch related) (unclear if Amstrad supports or ignores this code)
|-
|12 ||18 ||DC2 ||Text Style
|Cancel condensed mode
|-
|13 ||19 ||DC3 ||Misc
|Deselect printer (offline?) (FX80: DIP-switch related) (unclear if Amstrad supports or ignores this code)
|-
|14 ||20 ||DC4 ||Text Style
|Cancel one line double width mode (unlike ESC W 0/1 continous)
|-
|18 ||24 ||CAN ||Misc
|Cancel text in line (but not control codes)
|-
|1B 0E ||27 14 ||ESC SO ||Text Style
|Double width for one line (duplicate) (not FX80, better use SO, not ESC SO)
|-
|1B 0F ||27 15 ||ESC SI ||Text Style
|Select condensed mode (duplicate) (not FX80, better use SI, not ESC SI)
|-
|1B 21 n ||27 33 n ||ESC ! n ||Text Style
|Master select where n is a combination of:
0 Pica,
1 Elite,
4 Condensed,
8 Emphasized,
16 Double Strike,
32 Double Wide,
64 Italic,
128 Underline.
Pica & Elite and Condensed/Emphasized are mutually exclusive.
|-
|1B 23 ||27 35 ||ESC # ||Char Code
|MSB control sequence cancel (=obtain MSB from Centronics Pin 9) (not on LX80)
|-
|1B 25 00 00 ||27 37 0 0 ||ESC % NUL NUL ||Charset
|Select normal character set (ROM) (star lc10 without ending NUL)
|-
|1B 25 01 00 ||27 37 1 0 ||ESC % SOH NUL ||Charset
|Select user defined char set (RAM) (star lc10 without ending NUL)
|-
|1B 26 00 .. ||27 38 0 .. ||ESC & NUL .. ||Charset
|Define user defined chars (params: first,last char (0..31 each), followed by "attr,d1..d11" per char, attr.bit7=descender flag (0=descend, 1=no descend, usuable only with 8bit printer port), attr.bit6-4=starting pos(0..7, attr.bit3-0=finishing pos i+4..11), d1..d11 are 8-pin columns) (must be enabled via DIP-switch!)
|-
|1B 2A 00 n1 n2 .. ||27 42 0 n1 n2 .. ||ESC * NUL n1 n2.. ||Graphics
|Select 8pin single density graphics (same as ESC K) (60dpi) (480 pix per 8 inch) (n2:n1 dot columns, each 8pin, bit7=upper pin)
|-
|1B 2A 01 n1 n2 .. ||27 42 1 n1 n2 .. ||ESC * SOH n1 n2.. ||Graphics
|Select 8pin double density graphics (same as ESC L) (120dpi) (960 pix per 8 inch)
|-
|1B 2A 02 n1 n2 .. ||27 42 2 n1 n2 .. ||ESC * STX n1 n2.. ||Graphics
|Select 8pin double d.speed graphics (same as ESC Y) (120dpi source data being output at 60dpi) (960 pix per 8 inch)
|-
|1B 2A 03 n1 n2 .. ||27 42 3 n1 n2 .. ||ESC * ETX n1 n2.. ||Graphics
|Select 8pin quad density graphics (same as ESC Z) (240dpi source data being output at 120dpi) (1920 pix per 8 inch)
|-
|1B 2A 04 n1 n2 .. ||27 42 4 n1 n2 .. ||ESC * EOT n1 n2.. ||Graphics
|Select 8pin 640-pix CRT graphics (80dpi) (640 pix per 8 inch) (for CPC/EGA/VGA screenshots)
|-
|1B 2A 05 n1 n2 .. ||27 42 5 n1 n2 .. ||ESC * ENQ n1 n2.. ||Graphics
|Select 8pin 576-pix plotter graphics(72dpi) (576 pix per 8 inch) (for 1:1 pixel aspect ratio)
|-
|1B 2A 06 n1 n2 .. ||27 42 6 n1 n2 .. ||ESC * ACK n1 n2.. ||Graphics
|Select 8pin 720-pix CRT graphics (90dpi) (720 pix per 8 inch) (for Hercules screenshots)
|-
|1B 2D 30 ||27 45 48 ||ESC - 0 ||Text Style
|Cancel underlining
|-
|1B 2D 31 ||27 45 49 ||ESC - 1 ||Text Style
|Select underlining
|-
|1B 2F c ||27 47 c ||ESC / c ||Tab
|Select vertical tab channel (c=0..7)
|-
|1B 30 ||27 48 ||ESC 0 ||Feed
|Select 9/72 inch aka 1/8 inch line spacing
|-
|1B 31 ||27 49 ||ESC 1 ||Feed
|Select 7/72 inch line spacing
|-
|1B 32 ||27 50 ||ESC 2 ||Feed
|Select 12/72 inch aka 1/6 inch line spacing
|-
|1B 33 n ||27 51 n ||ESC 3 n ||Feed
|Select n/216 inch line spacing (n=0..255)
|-
|1B 34 ||27 52 ||ESC 4 ||Text Style
|Select italic mode (italics can be also used by setting bit7 of the character number)
|-
|1B 35 ||27 53 ||ESC 5 ||Text Style
|Cancel italic mode
|-
|1B 36 ||27 54 ||ESC 6 ||Char Code
|Enable printing of characters (128-159,255) (Italics?)
|-
|1B 37 ||27 55 ||ESC 7 ||Char Code
|Cancel [ESC 6] command
|-
|1B 38 ||27 56 ||ESC 8 ||Misc
|Disable paper out sensor
|-
|1B 39 ||27 57 ||ESC 9 ||Misc
|Enable paper out sensor
|-
|1B 3A 00 00 00 ||27 58 0 0 0 ||ESC : NUL NUL NUL ||Charset
|Copy charset ROM into RAM (the three NULs are "for future expansion")
|-
|1B 3C ||27 60 ||ESC < ||Misc
|Select unidirectional mode for one line (Move head home/parking)
|-
|1B 3D ||27 61 ||ESC = ||Char Code
|MSB = 0 (not on LX80)
|-
|1B 3E ||27 62 ||ESC > ||Char Code
|MSB = 1 (not on LX80)
|-
|1B 3F s n ||27 63 s n ||ESC ? s n ||Graphics
|Reassign graphics mode 's'=(K,L,Y or Z) to mode 'n'=(0..6) (default is ESC K=0, L=1, Y=2, Z=3) (these defaults can be reassinged here, eg. ESC K=6)
|-
|1B 40 ||27 64 ||ESC @ ||Misc
|Initialize printer (Reset)
|-
|1B 41 n ||27 65 n ||ESC A n ||Feed
|Select n/72 inch line spacing (n=0..85)
|-
|1B 42 00 ||27 66 0 ||ESC B NUL ||Tab
|Clear Vertical tabs
|-
|1B 42 tabs 00 ||27 66 tabs 0 ||ESC B tabs NUL ||Tab
|Select up to 16 vertical tabs where tabs are ascending values from 1..255 ending with NUL
|-
|1B 43 00 n ||27 67 0 n ||ESC C NUL n ||Feed
|Select page length in inches (n=1..22)
|-
|1B 43 n ||27 67 n ||ESC C n ||Feed
|Select page length in lines (n=1..127)
|-
|1B 44 00 ||27 68 0 ||ESC D NUL ||Tab
|Clears all horizontal tables
|-
|1B 44 tabs 00 ||27 68 tabs 0 ||ESC D tabs NUL ||Tab
|Sets up to 32 horizontal tabs with ascending values 1-137. NUL or a value less than previous tab ends command.
|-
|1B 45 ||27 69 ||ESC E ||Text Style
|Select emphasized (bold) mode
|-
|1B 46 ||27 70 ||ESC F ||Text Style
|Cancel emphasized (bold) mode
|-
|1B 47 ||27 71 ||ESC G ||Text Style
|Select double strike mode (also an bold-alike effect)
|-
|1B 48 ||27 72 ||ESC H ||Text Style
|Cancel double strike mode (also an bold-alike effect)
|-
|1B 49 30 ||27 73 48 ||ESC I 0 ||Char Code
|Disable Printable codes expansion (0-31,128-159) (not on LX80)
|-
|1B 49 31 ||27 73 49 ||ESC I 1 ||Char Code
|Enable Printable codes expansion (0-31,128-159) (presumably excluding 27?) (not on LX80)
|-
|1B 4A n ||27 74 n ||ESC J n ||Feed
|Perform One-shot n/216 inch line feed (n=0..255)
|-
|1B 4B n1 n2 .. ||27 75 n1 n2 .. ||ESC K n1 n2 .. ||Graphics
|Single 8pin density graphics (60 dpi) (n2:n1 = num bytes following) (480 dots/line)
|-
|1B 4C n1 n2 .. ||27 76 n1 n2 .. ||ESC L n1 n2 .. ||Graphics
|Double 8pin density graphics (120 dpi) (960 dots/line)
|-
|1B 4D ||27 77 ||ESC M ||Text Style
|Select elite width (12 cpi) (mini font)
|-
|1B 4E n ||27 78 n ||ESC N n ||Feed
|Select skip over perforation (n=1..127 lines)
|-
|1B 4F ||27 79 ||ESC O ||Feed
|Cancel skip over perforation
|-
|1B 50 ||27 80 ||ESC P ||Text Style
|Cancel elite / Select pica width (10 cpi)
|-
|1B 51 n ||27 81 n ||ESC Q n ||Misc
|Set right margin (n=1..255 character columns) (this is WIDTH, counted from left margin)
|-
|1B 52 n ||27 82 n ||ESC R n ||Charset
|Select International character set where numeric 'n' is:
0 USA (ASCII),
1 France,
2 Germany,
3 UK (Pound symbol),
4 Denmark,
5 Sweden,
6 Italy,
7 Spain,
8 Japan (Yen symbol),
9 Norway,
10 Denmark II,
11 Spain II,
12 Latin America.
DMP2000..3160 do support 0..8, ie. up to including Japan.
The default setting is DIP-switch selectable .
|-
|1B 53 30 ||27 83 48 ||ESC S 0 ||Text Style
|Select superscript
|-
|1B 53 31 ||27 83 49 ||ESC S 1 ||Text Style
|Select subscript
|-
|1B 54 ||27 84 ||ESC T ||Text Style
|Cancel superscript/subscript
|-
|1B 55 30 ||27 85 48 ||ESC U 0 ||Misc
|Cancel unidirectional mode (faster, use bidirectional printing)
|-
|1B 55 31 ||27 85 49 ||ESC U 1 ||Misc
|Select unidirectional mode (slower, left-to-right, more accurate on vertical lines)
|-
|1B 57 30 ||27 87 48 ||ESC W 0 ||Text Style
|Cancel double width mode (continous) (unlike DC4: one line)
|-
|1B 57 31 ||27 87 49 ||ESC W 1 ||Text Style
|Select double width mode (continous) (unlike SO: one line)
|-
|1B 59 n1 n2 .. ||27 89 n1 n2 ||ESC Y n1 n2 ||Graphics
|Select 8pin Hi-speed double den graphics (120 dpi)
|-
|1B 5A n1 n2 .. ||27 90 n1 n2 ||ESC Z n1 n2 ||Graphics
|Select 8pin Quad density graphics (240 dpi) (1920 dots/8"line)
|-
|1B 5E d n1 n2.. ||27 94 d n1 n2 ||ESC ^ d n1 n2 ||Graphics
|Select 9 pin graphics mode number of columns = n1 + (n2 * 256) (d=density, 0=single, 1=double) (specs doesn't say if 2..6 do work too) (each column is a 2-byte pair: byte1.bit7..bit0=upper..lower, byte2.bit7=lowest, byte2.bit6..bit0=unused)
|-
|1B 62 c 00 ||27 98 c 0 ||ESC b c NUL ||Tab
|Clear vertical tabs in channel (c=0..7)
|-
|1B 62 c tabs 00 ||27 98 c tabs 0 ||ESC b c tabs NUL ||Tab
|Select up to 16 vertical tabs in channels (c=0..7) where tabs are ascending values from 1..255 ending with NUL
|-
|1B 69 00 ||27 105 48 ||ESC i 0 ||Misc
|Cancel instant character printing (default, ie. print on CRLF etc.) (not on LX80)
|-
|1B 69 01 ||27 105 49 ||ESC i 1 ||Misc
|Select instant character printing (printer each char immediately) (also scrolls printed text into view; when buffer empty) (not on LX80)
|-
|1B 6A n ||27 106 n ||ESC j n ||Feed
|Perform One-shot reverse linefeed (n/216 inch after buffer) (not on LX80)
|-
|1B 6C n ||27 108 n ||ESC l n ||Misc
|Set left margin (n=0..255 character columns)
|-
|1B 6D n ||27 109 n ||ESC m n ||Charset
|'''DMP3000/3160 only:''' Select charset (0=Epson, 1=IMB#1, 2=IBM#2) ([[Amstrad]] specific: not supported by Epson printers nor Epson clones nor DMP2000/2160)
|-
|1B 70 30 ||27 112 48 ||ESC p 0 ||Text Style
|Cancel proportional mode (not on LX80 ?)
|-
|1B 70 31 ||27 112 49 ||ESC p 1 ||Text Style
|Select proportional mode (not on LX80 ?)
|-
|1B 73 30 ||27 115 48 ||ESC s 0 ||Misc
|Turn half speed mode off
|-
|1B 73 31 ||27 115 49 ||ESC s 1 ||Misc
|Turn half speed mode on (purpose: noise-reduced silent printing)
|-
|1B 78 30 ||27 120 48 ||ESC x 0 ||Text Style
|Select draft mode (LX80) (FX86e) (not FX80)
|-
|1B 78 31 ||27 120 49 ||ESC x 1 ||Text Style
|Select NLQ mode (LX80) (FX86e) (not FX80)
|-
|7F ||127 ||DEL ||Misc
|Delete last character from buffer (but not control codes) (works only when buffer isn't yet printer; printing usually starts on terminating lines via CRLF)
|-
|}

* Character codes 00h-FFh...
** Codes 00h..1Fh and 7Fh contain control codes, but at least some of them can be also used as print-able characters; at least when enabled via ESC "I1" (according DMP2000 manual chap6/page7 example: chr(6) is a print-able (user defined) character. others like chr(27) are obviously not printable)
** Codes 20h..7Eh are ASCII characters (some changed in "international" modes)
** Codes 80h..9Fh and FFh act as mirror of control codes 00h..1Fh and 7Fh (this mirroring can be disabled via ESC "6")
** Codes A0h..FEh are italic versions of 20h..7Eh
* The DMP2000 (and up) supports '''all Epson FX80 control codes''', plus some additional ones:
** ESC SO and ESC SI (mirrors of SO and SI) (for some reason, these mirrors are often supported by Epson-clones like Star LC10, though they are rarely found in official Epson specs)
** ESC "x" n (select NLQ/Draft mode) (the original Epson FX80 didn't support NLQ, however, the ESC x command is found in other Epson models like LX80 and FX86e)
** ESC "m" n (select IBM charset) (this seems the be an Amstrad invention, supported '''only''' by DMP3000/3160, '''not''' supported by DMP2000/2160, '''nor''' by real Epson printers, '''nor''' by Epson-clones like Star LC10).
* Some one-digit parameters (like on/off flags) may be recognized both is binary chr(0xh) as well as ASCII chr(3xh).
6,388
edits