Difference between revisions of "Amstrad/Schneider Printer Control Codes"
(→NLQ401 Control Codes) |
(→NLQ401 Control Codes: DEL isn't supported, tested with a real NLQ401 printer) |
||
(14 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Peripherals]] [[Category:Printers and printer ports]] | ||
{{AmstradPrinterLinks}} | {{AmstradPrinterLinks}} | ||
<br> | <br> | ||
Line 20: | Line 21: | ||
|Normal Width Mode (also restores 1/6" line feed rate; after graphics printing) | |Normal Width Mode (also restores 1/6" line feed rate; after graphics printing) | ||
|- | |- | ||
− | |10 | + | |10 hi lo ||16 hi lo ||DLE "NN" ||Misc |
|Print Position in character units (NN = two-digit ASCII, "00..79") | |Print Position in character units (NN = two-digit ASCII, "00..79") | ||
|- | |- | ||
Line 26: | Line 27: | ||
|CR | |CR | ||
|- | |- | ||
− | |1B | + | |1B 10 hi lo ||27 16 hi lo ||ESC DLE hi lo ||Misc |
|Print Position in dot units (hi:lo = 9bit binary, 0..479) (lo=lower 7bit, hi=upper 2bit) | |Print Position in dot units (hi:lo = 9bit binary, 0..479) (lo=lower 7bit, hi=upper 2bit) | ||
|- | |- | ||
− | |1B | + | |1B 4B hi lo gfx0 gfx1 .. ||27 75 hi lo gfx0 gfx1 .. ||ESC "K" ... ||Graphics |
|Graphics Mode (hi:lo = 9bit count, 0..479) (lo=lower 7bit, hi=upper 2bit) (followed by as many bytes, with bit0=upper pixel .. bit6=lower pixel). This command additionally changes the line feed rate to 1/9 inch; the new rate is kept applied for text and graphics (until canceled by chr 0Eh/0Fh). | |Graphics Mode (hi:lo = 9bit count, 0..479) (lo=lower 7bit, hi=upper 2bit) (followed by as many bytes, with bit0=upper pixel .. bit6=lower pixel). This command additionally changes the line feed rate to 1/9 inch; the new rate is kept applied for text and graphics (until canceled by chr 0Eh/0Fh). | ||
|- | |- | ||
− | |1C | + | |1C num gfx ||28 num gfx ||FD,num,gfx ||Graphics |
|Repetition of one byte of graphic print data (num=1..127 repeat count) (gfx: bit0=upper pixel .. bit6=lower pixel) | |Repetition of one byte of graphic print data (num=1..127 repeat count) (gfx: bit0=upper pixel .. bit6=lower pixel) | ||
|- | |- | ||
Line 115: | Line 116: | ||
On a DMP2000 or FX80 it would directly select n/72 inch line spacing (n=0..85) (without needing to execute subsequent ESC "2") | On a DMP2000 or FX80 it would directly select n/72 inch line spacing (n=0..85) (without needing to execute subsequent ESC "2") | ||
|- | |- | ||
− | |1B 43 00 n | + | |1B 43 (00) n ||27 67 (0) n ||ESC "C" (NUL) n ||Feed |
− | |Select | + | |Select Page length in lines or inches (n=1..127 lines, or 00h,1..22 inch) |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|1B 44 .. 00 ||27 68 .. 0 ||ESC "D" .. NUL ||Tab | |1B 44 .. 00 ||27 68 .. 0 ||ESC "D" .. NUL ||Tab | ||
Line 174: | Line 172: | ||
|1B 78 n ||27 120 n ||ESC "x" n ||Text Style | |1B 78 n ||27 120 n ||ESC "x" n ||Text Style | ||
|Select Draft/NLQ mode (00h=Draft, 01h=NLQ) | |Select Draft/NLQ mode (00h=Draft, 01h=NLQ) | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|} | |} | ||
Line 194: | Line 188: | ||
|- | |- | ||
|09 ||9 ||HT ||Tab | |09 ||9 ||HT ||Tab | ||
− | |Horizontal tab | + | |Horizontal tab (see ESC "D") |
|- | |- | ||
|0A ||10 ||LF ||Feed | |0A ||10 ||LF ||Feed | ||
Line 200: | Line 194: | ||
|- | |- | ||
|0B ||11 ||VT ||Tab | |0B ||11 ||VT ||Tab | ||
− | |Vertical Tab | + | |Vertical Tab (see ESC "B", ESC "b" and ESC "/") |
|- | |- | ||
|0C ||12 ||FF ||Feed | |0C ||12 ||FF ||Feed | ||
Line 235: | Line 229: | ||
|Select condensed mode (duplicate) (not FX80, better use SI, not ESC SI) | |Select condensed mode (duplicate) (not FX80, better use SI, not ESC SI) | ||
|- | |- | ||
− | |1B 21 n ||27 33 n ||ESC ! n | + | |1B 21 n ||27 33 n ||ESC "!" n ||Text Style |
|Master select where n is a combination of: | |Master select where n is a combination of: | ||
− | + | * Bit0 - Elite/mini (same as ESC "M" / ESC "P") | |
− | + | * Bit1 - Ignored or Proportional (same as ESC "p") | |
− | + | * Bit2 - Condensed (same as SI / DC2) | |
− | + | * Bit3 - Emphasized/bold (same as ESC "E" / ESC "F") | |
− | + | * Bit4 - Double Strike (same as ESC "G" / ESC "H") | |
− | + | * Bit5 - Double Width (same as ESC "W") | |
− | + | * Bit6 - Ignored or Italic (same as ESC "4" / ESC "5") | |
− | + | * Bit7 - Ignored or Underline (same as ESC "-") | |
− | + | Epson FX-80 and Amstrad DMP2000..3160 support only bit0,2-5 (Amstrad DMPs do support proportional/italics/underline, but they can be changed only via ESC "p/4/5/-", not via ESC "!"). | |
+ | Epson LQ-500 and Star-LC10 do use/support master style bits0-7. | ||
+ | Condensed/Emphasized are mutually exclusive. | ||
|- | |- | ||
− | |1B 23 ||27 35 ||ESC # | + | |1B 23 ||27 35 ||ESC "#" ||Char Code |
|MSB control sequence cancel (=obtain MSB from Centronics Pin 9) (not on LX80) | |MSB control sequence cancel (=obtain MSB from Centronics Pin 9) (not on LX80) | ||
|- | |- | ||
− | |1B 25 00 | + | |1B 25 n 00 ||27 37 n 0 ||ESC "%" n NUL ||Charset |
− | |Select | + | |Select character set (00h=Normal/ROM, 01h=User-Defined/RAM) (Star LC10: without ending NUL) |
|- | |- | ||
− | + | |1B 26 00 .. ||27 38 0 .. ||ESC "&" NUL .. ||Charset | |
− | + | ||
− | + | ||
− | |1B 26 00 .. ||27 38 0 .. ||ESC & NUL .. | + | |
|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!) | |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 | + | |1B 2A d lo hi .. ||27 42 d lo hi .. ||ESC "*" d lo hi.. ||Graphics |
− | | | + | |Print 8pin Graphics (hi:lo number of dot columns (number of data bytes), each data byte defines 8-pins (bit7=upper pin), Density (d) can be: |
+ | * 00h = 60 dpi, 480 pix per 8 inch, single density graphics (same as ESC K) | ||
+ | * 01h = 120 dpi, 960 pix per 8 inch, double density graphics (same as ESC L) | ||
+ | * 02h = 120 / 2 dpi, double speed double density (same as ESC Y) | ||
+ | * 03h = 240 / 2 dpi, double speed quad density (same as ESC Z) | ||
+ | * 04h = 80 dpi, 640 pix per 8 inch (for CPC/EGA/VGA screenshots) | ||
+ | * 05h = 72 dpi, 576 pix per 8 inch (for 1:1 pixel aspect ratio) | ||
+ | * 06h = 90 dpi, 720 pix per 8 inch (for Hercules screenshots) | ||
+ | In the two "double speed" modes, dots can be positioned at fine resolution, but the next dot (in the same row) must be white | ||
|- | |- | ||
− | |1B | + | |1B 2D n ||27 45 n ||ESC "-" n ||Text Style |
− | | | + | |Underlining on/off (00h=Off, 01h=On) |
|- | |- | ||
− | |1B | + | |1B 2F c ||27 47 c ||ESC "/" c ||Tab |
− | |Select | + | |Select vertical tab channel (c=0..7); channels can be defined via ESC "b" |
|- | |- | ||
− | + | |1B 30 ||27 48 ||ESC "0" ||Feed | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |1B 30 ||27 48 ||ESC 0 | + | |
|Select 9/72 inch aka 1/8 inch line spacing | |Select 9/72 inch aka 1/8 inch line spacing | ||
|- | |- | ||
− | |1B 31 ||27 49 ||ESC 1 | + | |1B 31 ||27 49 ||ESC "1" ||Feed |
|Select 7/72 inch line spacing | |Select 7/72 inch line spacing | ||
|- | |- | ||
− | |1B 32 ||27 50 ||ESC 2 | + | |1B 32 ||27 50 ||ESC "2" ||Feed |
|Select 12/72 inch aka 1/6 inch line spacing | |Select 12/72 inch aka 1/6 inch line spacing | ||
|- | |- | ||
− | |1B 33 n ||27 51 n ||ESC 3 n | + | |1B 33 n ||27 51 n ||ESC "3" n ||Feed |
|Select n/216 inch line spacing (n=0..255) | |Select n/216 inch line spacing (n=0..255) | ||
|- | |- | ||
− | |1B 34 ||27 52 ||ESC 4 | + | |1B 34 ||27 52 ||ESC "4" ||Text Style |
− | |Select italic mode (italics can be also used by setting bit7 of the character number) | + | |Select italic mode (unclear if italics can be also used by setting bit7 of the character number?) |
|- | |- | ||
− | |1B 35 ||27 53 ||ESC 5 | + | |1B 35 ||27 53 ||ESC "5" ||Text Style |
|Cancel italic mode | |Cancel italic mode | ||
|- | |- | ||
− | |1B 36 ||27 54 ||ESC 6 | + | |1B 36 ||27 54 ||ESC "6" ||Char Code |
|Enable printing of characters (128-159,255) (Italics?) | |Enable printing of characters (128-159,255) (Italics?) | ||
|- | |- | ||
− | |1B 37 ||27 55 ||ESC 7 | + | |1B 37 ||27 55 ||ESC "7" ||Char Code |
− | |Cancel [ESC 6] command | + | |Cancel [ESC "6"] command |
|- | |- | ||
− | |1B 38 ||27 56 ||ESC 8 | + | |1B 38 ||27 56 ||ESC "8" ||Misc |
|Disable paper out sensor | |Disable paper out sensor | ||
|- | |- | ||
− | |1B 39 ||27 57 ||ESC 9 | + | |1B 39 ||27 57 ||ESC "9" ||Misc |
|Enable paper out sensor | |Enable paper out sensor | ||
|- | |- | ||
− | |1B 3A 00 00 00 ||27 58 0 0 0 ||ESC : NUL NUL NUL ||Charset | + | |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") | |Copy charset ROM into RAM (the three NULs are "for future expansion") | ||
|- | |- | ||
− | |1B 3C ||27 60 ||ESC < | + | |1B 3C ||27 60 ||ESC "<" ||Misc |
|Select unidirectional mode for one line (Move head home/parking) | |Select unidirectional mode for one line (Move head home/parking) | ||
|- | |- | ||
− | |1B 3D ||27 61 ||ESC = | + | |1B 3D ||27 61 ||ESC "=" ||Char Code |
|MSB = 0 (not on LX80) | |MSB = 0 (not on LX80) | ||
|- | |- | ||
− | |1B 3E ||27 62 ||ESC > | + | |1B 3E ||27 62 ||ESC ">" ||Char Code |
|MSB = 1 (not on LX80) | |MSB = 1 (not on LX80) | ||
|- | |- | ||
− | |1B 3F s | + | |1B 3F s d ||27 63 s d ||ESC "?" s d ||Graphics |
− | |Reassign | + | |Reassign density of ESC "K/L/Y/Z" codes. 's'=code name (K,L,Y or Z), 'd'=density (0..6, same as for ESC "*", see there) (defaults are ESC "K"=0, "L"=1, "Y"=2, "Z"=3) |
|- | |- | ||
− | |1B 40 ||27 64 ||ESC @ | + | |1B 40 ||27 64 ||ESC "@" ||Misc |
|Initialize printer (Reset) | |Initialize printer (Reset) | ||
|- | |- | ||
− | |1B 41 n ||27 65 n ||ESC A n | + | |1B 41 n ||27 65 n ||ESC "A" n ||Feed |
|Select n/72 inch line spacing (n=0..85) | |Select n/72 inch line spacing (n=0..85) | ||
|- | |- | ||
− | |1B 42 00 | + | |1B 42 .. 00 ||27 66 .. 0 ||ESC "B" .. NUL ||Tab |
− | | | + | |Define up to 16 vertical tabs with ascending values from 1..255; specifying an empty list (ESC "B" NUL) clears vertical tabs; used with VT aka chr(0Bh); one can also define multiple vertical tab channels (see ESC "b" and ESC "/") |
|- | |- | ||
− | |1B | + | |1B 43 (00) n ||27 67 (0) n ||ESC "C" (NUL) n ||Feed |
− | |Select | + | |Select Page length in lines or inches (n=1..127 lines, or 00h,1..22 inch) |
|- | |- | ||
− | |1B | + | |1B 44 .. 00 ||27 68 .. 0 ||ESC "D" .. NUL ||Tab |
− | | | + | |Define up to 32 horizontal tabs with ascending values from 1..137; specifying an empty list (ESC "D" NUL) clears all horizontal tabs; used with HT aka chr(09h) |
|- | |- | ||
− | + | |1B 45 ||27 69 ||ESC "E" ||Text Style | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |1B 45 ||27 69 ||ESC E | + | |
|Select emphasized (bold) mode | |Select emphasized (bold) mode | ||
|- | |- | ||
− | |1B 46 ||27 70 ||ESC F | + | |1B 46 ||27 70 ||ESC "F" ||Text Style |
|Cancel emphasized (bold) mode | |Cancel emphasized (bold) mode | ||
|- | |- | ||
− | |1B 47 ||27 71 ||ESC G | + | |1B 47 ||27 71 ||ESC "G" ||Text Style |
|Select double strike mode (also an bold-alike effect) | |Select double strike mode (also an bold-alike effect) | ||
|- | |- | ||
− | |1B 48 ||27 72 ||ESC H | + | |1B 48 ||27 72 ||ESC "H" ||Text Style |
|Cancel double strike mode (also an bold-alike effect) | |Cancel double strike mode (also an bold-alike effect) | ||
|- | |- | ||
− | |1B 49 | + | |1B 49 n ||27 73 n ||ESC "I" n ||Char Code |
− | | | + | |Printable chr(0-31,128-159) (00h=Control Codes, 01h=Printable Characters) (not on LX80) ;makes some of these characters printable (unknown which ones) whilst others (like 1Bh) are always treated as control codes |
|- | |- | ||
− | + | |1B 4A n ||27 74 n ||ESC "J" n ||Feed | |
− | + | ||
− | + | ||
− | |1B 4A n ||27 74 n ||ESC J n | + | |
|Perform One-shot n/216 inch line feed (n=0..255) | |Perform One-shot n/216 inch line feed (n=0..255) | ||
|- | |- | ||
− | |1B 4B | + | |1B 4B lo hi .. ||27 75 lo hi .. ||ESC "K" lo hi .. ||Graphics |
− | | | + | |Print 8-pin 60-dpi graphics (same as ESC "*" 0, see there) (density of ESC "K" can be redefined via ESC "?") |
|- | |- | ||
− | |1B 4C | + | |1B 4C lo hi .. ||27 76 lo hi .. ||ESC "L" lo hi .. ||Graphics |
− | | | + | |Print 8-pin 120-dpi graphics (same as ESC "*" 1, see there) (density of ESC "L" can be redefined via ESC "?") |
|- | |- | ||
− | |1B 4D ||27 77 ||ESC M | + | |1B 4D ||27 77 ||ESC "M" ||Text Style |
|Select elite width (12 cpi) (mini font) | |Select elite width (12 cpi) (mini font) | ||
|- | |- | ||
− | |1B 4E n ||27 78 n ||ESC N n | + | |1B 4E n ||27 78 n ||ESC "N" n ||Feed |
|Select skip over perforation (n=1..127 lines) | |Select skip over perforation (n=1..127 lines) | ||
|- | |- | ||
− | |1B 4F ||27 79 ||ESC O | + | |1B 4F ||27 79 ||ESC "O" ||Feed |
|Cancel skip over perforation | |Cancel skip over perforation | ||
|- | |- | ||
− | |1B 50 ||27 80 ||ESC P | + | |1B 50 ||27 80 ||ESC "P" ||Text Style |
|Cancel elite / Select pica width (10 cpi) | |Cancel elite / Select pica width (10 cpi) | ||
|- | |- | ||
− | |1B 51 n ||27 81 n ||ESC Q n | + | |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) | |Set right margin (n=1..255 character columns) (this is WIDTH, counted from left margin) | ||
|- | |- | ||
− | |1B 52 n ||27 82 n ||ESC R n | + | |1B 52 n ||27 82 n ||ESC "R" n ||Charset |
|Select International character set where numeric 'n' is: | |Select International character set where numeric 'n' is: | ||
− | + | * 00h USA (ASCII) | |
− | + | * 01h France | |
− | + | * 02h Germany | |
− | + | * 03h UK (Pound symbol) | |
− | + | * 04h Denmark | |
− | + | * 05h Sweden | |
− | + | * 06h Italy | |
− | + | * 07h Spain | |
− | + | * 08h Japan (Yen symbol) | |
− | + | DMP2000..3160 do support 0..8, ie. up to including Japan. The default setting is DIP-switch selectable. | |
− | + | ||
− | + | ||
− | + | ||
− | DMP2000..3160 do support 0..8, ie. up to including Japan. | + | |
− | The default setting is DIP-switch selectable . | + | |
|- | |- | ||
− | |1B 53 | + | |1B 53 n ||27 83 n ||ESC "S" n ||Text Style |
− | |Select superscript | + | |Select superscript/subscript (00h=super, 01h=sub) |
|- | |- | ||
− | + | |1B 54 ||27 84 ||ESC "T" ||Text Style | |
− | + | ||
− | + | ||
− | |1B 54 ||27 84 ||ESC T | + | |
|Cancel superscript/subscript | |Cancel superscript/subscript | ||
|- | |- | ||
− | |1B 55 | + | |1B 55 n ||27 85 n ||ESC "U" n ||Misc |
− | | | + | |Unidirectional mode On/Off (00h=Off=faster, bidirectional printing, 01h=On=slower, left-to-right, more accurate on vertical lines) |
|- | |- | ||
− | |1B | + | |1B 57 n ||27 87 n ||ESC "W" n ||Text Style |
− | | | + | |Double width mode (continous) (00h=Off, 01h=On) (unlike DC4 and SO: one line) |
|- | |- | ||
− | |1B | + | |1B 59 lo hi .. ||27 89 lo hi .. ||ESC "Y" lo hi .. ||Graphics |
− | | | + | |Print 8-pin 120/2-dpi graphics (same as ESC "*" 2, see there) (density of ESC "Y" can be redefined via ESC "?") |
|- | |- | ||
− | |1B | + | |1B 5A lo hi .. ||27 90 lo hi .. ||ESC "Z" lo hi .. ||Graphics |
− | | | + | |Print 8-pin 240/2-dpi graphics (same as ESC "*" 3, see there) (density of ESC "Z" can be redefined via ESC "?") |
|- | |- | ||
− | |1B | + | |1B 5E d lo hi .. ||27 94 d lo hi .. ||ESC "^" d lo hi ..||Graphics |
− | | | + | |Print 9-pin graphics at selected density (similar to ESC "*" d, see there for details). Allowed density for ESC "^" is officially only d=00h..01h (unknown if 02h..06h do work, too). hi:lo specifies the number of dot columns (the number of 2-byte pairs) (byte1.bit7..bit0=upper..lower, byte2.bit7=lowest, byte2.bit6..bit0=unused) |
|- | |- | ||
− | |1B | + | |1B 62 c .. 00 ||27 98 c .. 0 ||ESC "b" c .. NUL ||Tab |
− | | | + | |Define up to 16 vertical tabs per channel (c=0..7) with ascending values from 1..255; specifying an empty list (ESC "b" c NUL) clears that vertical tab channel; channels are selected via ESC "/" and can be then used with chr(09h); there is also a similar command without channel-numbers (ESC "B") |
|- | |- | ||
− | |1B | + | |1B 69 n ||27 105 n ||ESC "i" n ||Misc |
− | | | + | |Instant character printing (00h=Off=default, ie. print only on LF, 01h=On=print each char immediately; also scrolls printed text into view; when buffer empty) (not on LX80) |
|- | |- | ||
− | |1B | + | |1B 6A n ||27 106 n ||ESC "j" n ||Feed |
− | | | + | |Perform One-shot n/216 inch reverse linefeed (not on LX80) |
|- | |- | ||
− | + | |1B 6C n ||27 108 n ||ESC "l" n ||Misc | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |1B 6C n ||27 108 n ||ESC l n | + | |
|Set left margin (n=0..255 character columns) | |Set left margin (n=0..255 character columns) | ||
|- | |- | ||
− | |1B 6D n ||27 109 n ||ESC m n | + | |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) | |'''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 | + | |1B 70 n ||27 112 n ||ESC "p" n ||Text Style |
− | | | + | |Proportional mode (00h=Off, 01h=On) (not on LX80?) |
|- | |- | ||
− | |1B | + | |1B 73 n ||27 115 n ||ESC "s" n ||Misc |
− | | | + | |Half speed mode (00h=Off=Normal, 01h=On=Slow; purpose: noise-reduced silent printing) |
|- | |- | ||
− | |1B | + | |1B 78 n ||27 120 n ||ESC "x" n ||Text Style |
− | + | |Select Draft/NLQ mode (00h=Draft, 01h=NLQ) (LX80) (FX86e) (not FX80) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |Select | + | |
− | + | ||
− | + | ||
− | + | ||
|- | |- | ||
|7F ||127 ||DEL ||Misc | |7F ||127 ||DEL ||Misc | ||
− | |Delete last character from buffer (but not control codes) (works only when buffer isn't yet | + | |Delete last character from buffer (but not control codes) (works only when buffer isn't yet printed; printing usually starts on terminating lines via LF) |
|- | |- | ||
|} | |} |
Latest revision as of 04:31, 22 June 2022
- Amstrad/Schneider Printer Models
- Amstrad/Schneider Printer Technical Specifications
- Amstrad/Schneider Printer Control Codes
- Amstrad/Schneider Printer Support for 7bit Printer Ports
- Amstrad/Schneider Printer Character Sets
- Amstrad/Schneider Printer Buttons and DIP Switches
- Amstrad/Schneider Printer Resources (User and Service Manuals, Datasheets, ROM-images)
DMP1 Control Codes
Hex | Decimal | ASCII | Type | Description |
0A | 10 | LF | Misc | CR+LF |
0D | 13 | CR | Misc | CR or CR+LF (selectable via DIP-switch) |
0E | 14 | SO | Width | Double Width Mode (also restores 1/6" line feed rate; after graphics printing) |
0F | 15 | SI | Width | Normal Width Mode (also restores 1/6" line feed rate; after graphics printing) |
10 hi lo | 16 hi lo | DLE "NN" | Misc | Print Position in character units (NN = two-digit ASCII, "00..79") |
14 | 20 | DC4 | Misc | CR |
1B 10 hi lo | 27 16 hi lo | ESC DLE hi lo | Misc | Print Position in dot units (hi:lo = 9bit binary, 0..479) (lo=lower 7bit, hi=upper 2bit) |
1B 4B hi lo gfx0 gfx1 .. | 27 75 hi lo gfx0 gfx1 .. | ESC "K" ... | Graphics | Graphics Mode (hi:lo = 9bit count, 0..479) (lo=lower 7bit, hi=upper 2bit) (followed by as many bytes, with bit0=upper pixel .. bit6=lower pixel). This command additionally changes the line feed rate to 1/9 inch; the new rate is kept applied for text and graphics (until canceled by chr 0Eh/0Fh). |
1C num gfx | 28 num gfx | FD,num,gfx | Graphics | Repetition of one byte of graphic print data (num=1..127 repeat count) (gfx: bit0=upper pixel .. bit6=lower pixel) |
NLQ401 Control Codes
The NLQ401 supports a fraction of the Epson control code set, plus some NLQ401-specific, non-Epson codes. The missing Epson codes include both newer codes, as well as older ones (like vertical TABs, which are supported even by very old Epsons from 1981).
Caution: The NLQ401 firmware strips Bit7 of all incoming characters, so one is restricted to use 7bit codes, even if one does own an 8bit Printer Port. Accordingly, only 7-pin graphics can be used, and some numeric parameters cannot be set to values with bit7=1.
Hex | Decimal | ASCII | Type | Description |
09 | 9 | HT | Tab | Horizontal tab |
0A | 10 | LF | Feed | Line Feed (move to next line) |
0B | 11 | VT | Feed | NLQ401-specific: acts as mirror of LF (non-Epson code) |
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 |
12 | 18 | DC2 | Text Style | Cancel condensed mode |
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 2D n | 27 45 n | ESC "-" n | Text Style | Underlining ON/OFF (00h=off, 01h=on) |
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 NLQ401-specific and Epson MX80: Can be DIP-switched or ESC-"A"-commanded to other spacing (on a DMP2000 or Epson FX80, it's fixed, always 1/6 inch) |
1B 33 n | 27 51 n | ESC "3" n | Feed | Select n/216 inch line spacing (n=0..255) NLQ401-restriction: supports only 7bit (n=0..127) |
1B 36 | 27 54 | ESC "6" | Char Code | NLQ401-specific: Use German charset |
1B 37 | 27 55 | ESC "7" | Char Code | NLQ401-specific: Use US-ASCII charset |
1B 38 | 27 56 | ESC "8" | Misc | Disable paper out sensor |
1B 39 | 27 57 | ESC "9" | Misc | Enable paper out sensor |
1B 3C | 27 60 | ESC "<" | Misc | Select unidirectional mode for one line (Move head home/parking) |
1B 3D .. 00 | 27 61 ... 0 | ESC "=" ... 0 | Char Code | NLQ401-specifc: Print all following chr(01h..7Fh) as CPC-style chr(81h..FFh) symbols; use chr(00h) to return to normal mode |
1B 41 n | 27 65 n | ESC "A" n | Feed | NLQ401/MX80: Redefine ESC "2" to n/72 inch line spacing (applied by subsequent ESC "2" commands). On a DMP2000 or FX80 it would directly select n/72 inch line spacing (n=0..85) (without needing to execute subsequent ESC "2") |
1B 43 (00) n | 27 67 (0) n | ESC "C" (NUL) n | Feed | Select Page length in lines or inches (n=1..127 lines, or 00h,1..22 inch) |
1B 44 .. 00 | 27 68 .. 0 | ESC "D" .. NUL | Tab | Define horizontal TAB positions |
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 n | 27 73 n | ESC "I" n | Text Style | NLQ401-specific: Select Draft/NLQ mode (01h=Draft, 03h=NLQ) (for Epson-compatibility, better use the ESC "x" code) |
1B 4A n | 27 74 n | ESC "J" n | Feed | Perform One-shot n/216 inch line feed (n=0..255) NLQ401-restriction: supports only 7bit (n=0..127) |
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) NLQ401-restriction: supports only 7bit, ie. only 7-pins, and n1 cannot have bit7=1 |
1B 4C n1 n2 .. | 27 76 n1 n2 .. | ESC "L" n1 n2 .. | Graphics | Double 8pin density graphics (120 dpi) (960 dots/line) NLQ401-restriction: supports only 7bit, ie. only 7-pins, and n1 cannot have bit7=1 |
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 53 n | 27 83 n | ESC "S" n | Text Style | Select superscript/subscript (00h=Superscript, 01h=Subscript) |
1B 54 | 27 84 | ESC "T" | Text Style | Cancel superscript/subscript |
1B 55 n | 27 85 n | ESC "U" n | Misc | Unidirectional mode (00h=Off, faster, use bidirectional printing - 01h=On, slower, left-to-right, more accurate on vertical lines) |
1B 57 n | 27 87 n | ESC "W" n | Text Style | Double width mode ON/OFF (continous) (unlike DC4: one line) (00h=off, 01h=on) |
1B 59 n1 n2 .. | 27 89 n1 n2 | ESC "Y" n1 n2 | Graphics | Select 8pin Hi-speed double den graphics (120 dpi) NLQ401-restriction: supports only 7bit, ie. only 7-pins, and n1 cannot have bit7=1 |
1B 5A n1 n2 .. | 27 90 n1 n2 | ESC "Z" n1 n2 | Graphics | Select 8pin Quad density graphics (240 dpi) (1920 dots/8"line) NLQ401-restriction: supports only 7bit, ie. only 7-pins, and n1 cannot have bit7=1 |
1B 78 n | 27 120 n | ESC "x" n | Text Style | Select Draft/NLQ mode (00h=Draft, 01h=NLQ) |
DMP2xxx/3xxx Printer Codes (sorted by number)
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 (see ESC "D") |
0A | 10 | LF | Feed | Line Feed (move to next line) |
0B | 11 | VT | Tab | Vertical Tab (see ESC "B", ESC "b" and ESC "/") |
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:
Epson FX-80 and Amstrad DMP2000..3160 support only bit0,2-5 (Amstrad DMPs do support proportional/italics/underline, but they can be changed only via ESC "p/4/5/-", not via ESC "!"). Epson LQ-500 and Star-LC10 do use/support master style bits0-7. 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 n 00 | 27 37 n 0 | ESC "%" n NUL | Charset | Select character set (00h=Normal/ROM, 01h=User-Defined/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 d lo hi .. | 27 42 d lo hi .. | ESC "*" d lo hi.. | Graphics | Print 8pin Graphics (hi:lo number of dot columns (number of data bytes), each data byte defines 8-pins (bit7=upper pin), Density (d) can be:
In the two "double speed" modes, dots can be positioned at fine resolution, but the next dot (in the same row) must be white |
1B 2D n | 27 45 n | ESC "-" n | Text Style | Underlining on/off (00h=Off, 01h=On) |
1B 2F c | 27 47 c | ESC "/" c | Tab | Select vertical tab channel (c=0..7); channels can be defined via ESC "b" |
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 (unclear if 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 d | 27 63 s d | ESC "?" s d | Graphics | Reassign density of ESC "K/L/Y/Z" codes. 's'=code name (K,L,Y or Z), 'd'=density (0..6, same as for ESC "*", see there) (defaults are ESC "K"=0, "L"=1, "Y"=2, "Z"=3) |
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 | Define up to 16 vertical tabs with ascending values from 1..255; specifying an empty list (ESC "B" NUL) clears vertical tabs; used with VT aka chr(0Bh); one can also define multiple vertical tab channels (see ESC "b" and ESC "/") |
1B 43 (00) n | 27 67 (0) n | ESC "C" (NUL) n | Feed | Select Page length in lines or inches (n=1..127 lines, or 00h,1..22 inch) |
1B 44 .. 00 | 27 68 .. 0 | ESC "D" .. NUL | Tab | Define up to 32 horizontal tabs with ascending values from 1..137; specifying an empty list (ESC "D" NUL) clears all horizontal tabs; used with HT aka chr(09h) |
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 n | 27 73 n | ESC "I" n | Char Code | Printable chr(0-31,128-159) (00h=Control Codes, 01h=Printable Characters) (not on LX80) ;makes some of these characters printable (unknown which ones) whilst others (like 1Bh) are always treated as control codes |
1B 4A n | 27 74 n | ESC "J" n | Feed | Perform One-shot n/216 inch line feed (n=0..255) |
1B 4B lo hi .. | 27 75 lo hi .. | ESC "K" lo hi .. | Graphics | Print 8-pin 60-dpi graphics (same as ESC "*" 0, see there) (density of ESC "K" can be redefined via ESC "?") |
1B 4C lo hi .. | 27 76 lo hi .. | ESC "L" lo hi .. | Graphics | Print 8-pin 120-dpi graphics (same as ESC "*" 1, see there) (density of ESC "L" can be redefined via ESC "?") |
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:
DMP2000..3160 do support 0..8, ie. up to including Japan. The default setting is DIP-switch selectable. |
1B 53 n | 27 83 n | ESC "S" n | Text Style | Select superscript/subscript (00h=super, 01h=sub) |
1B 54 | 27 84 | ESC "T" | Text Style | Cancel superscript/subscript |
1B 55 n | 27 85 n | ESC "U" n | Misc | Unidirectional mode On/Off (00h=Off=faster, bidirectional printing, 01h=On=slower, left-to-right, more accurate on vertical lines) |
1B 57 n | 27 87 n | ESC "W" n | Text Style | Double width mode (continous) (00h=Off, 01h=On) (unlike DC4 and SO: one line) |
1B 59 lo hi .. | 27 89 lo hi .. | ESC "Y" lo hi .. | Graphics | Print 8-pin 120/2-dpi graphics (same as ESC "*" 2, see there) (density of ESC "Y" can be redefined via ESC "?") |
1B 5A lo hi .. | 27 90 lo hi .. | ESC "Z" lo hi .. | Graphics | Print 8-pin 240/2-dpi graphics (same as ESC "*" 3, see there) (density of ESC "Z" can be redefined via ESC "?") |
1B 5E d lo hi .. | 27 94 d lo hi .. | ESC "^" d lo hi .. | Graphics | Print 9-pin graphics at selected density (similar to ESC "*" d, see there for details). Allowed density for ESC "^" is officially only d=00h..01h (unknown if 02h..06h do work, too). hi:lo specifies the number of dot columns (the number of 2-byte pairs) (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 | Define up to 16 vertical tabs per channel (c=0..7) with ascending values from 1..255; specifying an empty list (ESC "b" c NUL) clears that vertical tab channel; channels are selected via ESC "/" and can be then used with chr(09h); there is also a similar command without channel-numbers (ESC "B") |
1B 69 n | 27 105 n | ESC "i" n | Misc | Instant character printing (00h=Off=default, ie. print only on LF, 01h=On=print 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 n/216 inch reverse linefeed (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 n | 27 112 n | ESC "p" n | Text Style | Proportional mode (00h=Off, 01h=On) (not on LX80?) |
1B 73 n | 27 115 n | ESC "s" n | Misc | Half speed mode (00h=Off=Normal, 01h=On=Slow; purpose: noise-reduced silent printing) |
1B 78 n | 27 120 n | ESC "x" n | Text Style | Select Draft/NLQ mode (00h=Draft, 01h=NLQ) (LX80) (FX86e) (not FX80) |
7F | 127 | DEL | Misc | Delete last character from buffer (but not control codes) (works only when buffer isn't yet printed; printing usually starts on terminating lines via LF) |
- 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).