Difference between revisions of "Amstrad/Schneider Printer Control Codes"
(→DMP2xxx/3xxx Printer Codes (sorted by number)) |
|||
Line 235: | Line 235: | ||
|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: | ||
0 Pica, | 0 Pica, | ||
Line 247: | Line 247: | ||
Pica & Elite and Condensed/Emphasized are mutually exclusive. DMP2000..3160 support only bit0-5 (not italic/underline). | Pica & Elite and Condensed/Emphasized are mutually exclusive. DMP2000..3160 support only bit0-5 (not italic/underline). | ||
|- | |- | ||
− | |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 00 ||27 37 0 0 ||ESC % NUL NUL | + | |1B 25 00 00 ||27 37 0 0 ||ESC "%" NUL NUL ||Charset |
|Select normal character set (ROM) (star lc10 without ending NUL) | |Select normal character set (ROM) (star lc10 without ending NUL) | ||
|- | |- | ||
− | |1B 25 01 00 ||27 37 1 0 ||ESC % SOH NUL | + | |1B 25 01 00 ||27 37 1 0 ||ESC "%" SOH NUL ||Charset |
|Select user defined char set (RAM) (star lc10 without ending NUL) | |Select user defined char set (RAM) (star lc10 without ending NUL) | ||
|- | |- | ||
− | |1B 26 00 .. ||27 38 0 .. ||ESC & 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!) | |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 n1 n2 .. ||27 42 d n1 n2 .. ||ESC "*" d n1 n2.. ||Graphics |
− | | | + | |Print 8pin Graphics (n2:n1 dot columns, each 8pin, bit7=upper pin), |
+ | Density (d) can be: | ||
+ | * 00h = 60dpi, 480 pix per 8 inch, single density graphics (same as ESC K) | ||
+ | * 01h = 120dpi, 960 pix per 8 inch, double density graphics (same as ESC L) | ||
+ | * 02h = 120/2dpi, double speed double density (same as ESC Y) (120dpi source data being output at 60dpi) (960 pix per 8 inch) | ||
+ | * 03h = 240/2dpi, double speed quad density (same as ESC Z) (240dpi source data being output at 120dpi) (1920 pix per 8 inch) | ||
+ | * 04h = 80dpi, 640 pix per 8 inch (for CPC/EGA/VGA screenshots) | ||
+ | * 05h = 72dpi, 576 pix per 8 inch (for 1:1 pixel aspect ratio) | ||
+ | * 06h = 90dpi, 720 pix per 8 inch (for Hercules screenshots) | ||
|- | |- | ||
− | + | |1B 2D 30 ||27 45 48 ||ESC - "0" ||Text Style | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | |1B 2D 30 ||27 45 48 ||ESC - 0 | + | |
|Cancel underlining | |Cancel underlining | ||
|- | |- | ||
− | |1B 2D 31 ||27 45 49 ||ESC - 1 | + | |1B 2D 31 ||27 45 49 ||ESC - "1" ||Text Style |
|Select underlining | |Select underlining | ||
|- | |- | ||
− | |1B 2F c ||27 47 c ||ESC / c | + | |1B 2F c ||27 47 c ||ESC "/" c ||Tab |
|Select vertical tab channel (c=0..7) | |Select vertical tab channel (c=0..7) | ||
|- | |- | ||
− | |1B 30 ||27 48 ||ESC 0 | + | |1B 30 ||27 48 ||ESC "0" ||Feed |
|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 (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 n ||27 63 s n ||ESC ? s n | + | |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) | + | |Reassign graphics mode 's'=(K,L,Y or Z) to mode 'n'=(0..6, same as for ESC "*", see there) (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 @ | + | |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 ||27 66 0 ||ESC B NUL | + | |1B 42 00 ||27 66 0 ||ESC "B" NUL ||Tab |
|Clear Vertical tabs | |Clear Vertical tabs | ||
|- | |- | ||
− | |1B 42 tabs 00 ||27 66 tabs 0 ||ESC B tabs NUL | + | |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 | |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 | + | |1B 43 00 n ||27 67 0 n ||ESC "C" NUL n ||Feed |
|Select page length in inches (n=1..22) | |Select page length in inches (n=1..22) | ||
|- | |- | ||
− | |1B 43 n ||27 67 n ||ESC C n | + | |1B 43 n ||27 67 n ||ESC "C" n ||Feed |
|Select page length in lines (n=1..127) | |Select page length in lines (n=1..127) | ||
|- | |- | ||
− | |1B 44 00 ||27 68 0 ||ESC D NUL | + | |1B 44 00 ||27 68 0 ||ESC "D" NUL ||Tab |
|Clears all horizontal tables | |Clears all horizontal tables | ||
|- | |- | ||
− | |1B 44 tabs 00 ||27 68 tabs 0 ||ESC D tabs NUL | + | |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. | |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 | + | |1B 45 ||27 69 ||ESC "E" ||Text Style |
|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 30 ||27 73 48 ||ESC I 0 | + | |1B 49 30 ||27 73 48 ||ESC "I" 0 ||Char Code |
|Disable Printable codes expansion (0-31,128-159) (not on LX80) | |Disable Printable codes expansion (0-31,128-159) (not on LX80) | ||
|- | |- | ||
− | |1B 49 31 ||27 73 49 ||ESC I 1 | + | |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) | |Enable Printable codes expansion (0-31,128-159) (presumably excluding 27?) (not on LX80) | ||
|- | |- | ||
− | |1B 4A n ||27 74 n ||ESC J n | + | |1B 4A n ||27 74 n ||ESC "J" n ||Feed |
|Perform One-shot n/216 inch line feed (n=0..255) | |Perform One-shot n/216 inch line feed (n=0..255) | ||
|- | |- | ||
− | |1B 4B n1 n2 .. ||27 75 n1 n2 .. ||ESC K n1 n2 .. | + | |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) | |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 .. | + | |1B 4C n1 n2 .. ||27 76 n1 n2 .. ||ESC "L" n1 n2 .. ||Graphics |
|Double 8pin density graphics (120 dpi) (960 dots/line) | |Double 8pin density graphics (120 dpi) (960 dots/line) | ||
|- | |- | ||
− | |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: | ||
0 USA (ASCII), | 0 USA (ASCII), | ||
Line 418: | Line 408: | ||
The default setting is DIP-switch selectable . | 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 ||Text Style | ||
|Cancel superscript/subscript | |Cancel superscript/subscript | ||
|- | |- | ||
− | |1B 55 30 ||27 85 48 ||ESC U 0 | + | |1B 55 30 ||27 85 48 ||ESC "U" 0 ||Misc |
|Cancel unidirectional mode (faster, use bidirectional printing) | |Cancel unidirectional mode (faster, use bidirectional printing) | ||
|- | |- | ||
− | |1B 55 31 ||27 85 49 ||ESC U 1 | + | |1B 55 31 ||27 85 49 ||ESC "U" 1 ||Misc |
|Select unidirectional mode (slower, left-to-right, more accurate on vertical lines) | |Select unidirectional mode (slower, left-to-right, more accurate on vertical lines) | ||
|- | |- | ||
− | |1B 57 30 ||27 87 48 ||ESC W 0 | + | |1B 57 30 ||27 87 48 ||ESC "W" 0 ||Text Style |
|Cancel double width mode (continous) (unlike DC4: one line) | |Cancel double width mode (continous) (unlike DC4: one line) | ||
|- | |- | ||
− | |1B 57 31 ||27 87 49 ||ESC W 1 | + | |1B 57 31 ||27 87 49 ||ESC "W" 1 ||Text Style |
|Select double width mode (continous) (unlike SO: one line) | |Select double width mode (continous) (unlike SO: one line) | ||
|- | |- | ||
− | |1B 59 n1 n2 .. ||27 89 n1 n2 ||ESC Y n1 n2 | + | |1B 59 n1 n2 .. ||27 89 n1 n2 ||ESC "Y" n1 n2 ||Graphics |
|Select 8pin Hi-speed double den graphics (120 dpi) | |Select 8pin Hi-speed double den graphics (120 dpi) | ||
|- | |- | ||
− | |1B 5A n1 n2 .. ||27 90 n1 n2 ||ESC Z n1 n2 | + | |1B 5A n1 n2 .. ||27 90 n1 n2 ||ESC "Z" n1 n2 ||Graphics |
|Select 8pin Quad density graphics (240 dpi) (1920 dots/8"line) | |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 | + | |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) | |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 | + | |1B 62 c 00 ||27 98 c 0 ||ESC "b" c NUL ||Tab |
|Clear vertical tabs in channel (c=0..7) | |Clear vertical tabs in channel (c=0..7) | ||
|- | |- | ||
− | |1B 62 c tabs 00 ||27 98 c tabs 0 ||ESC b c tabs NUL | + | |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 | |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 | + | |1B 69 00 ||27 105 48 ||ESC "i" 0 ||Misc |
|Cancel instant character printing (default, ie. print on CRLF etc.) (not on LX80) | |Cancel instant character printing (default, ie. print on CRLF etc.) (not on LX80) | ||
|- | |- | ||
− | |1B 69 01 ||27 105 49 ||ESC i 1 | + | |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) | |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 | + | |1B 6A n ||27 106 n ||ESC "j" n ||Feed |
|Perform One-shot reverse linefeed (n/216 inch after buffer) (not on LX80) | |Perform One-shot reverse linefeed (n/216 inch after buffer) (not on LX80) | ||
|- | |- | ||
− | |1B 6C n ||27 108 n ||ESC l n | + | |1B 6C n ||27 108 n ||ESC "l" n ||Misc |
|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 30 ||27 112 48 ||ESC p 0 | + | |1B 70 30 ||27 112 48 ||ESC "p" 0 ||Text Style |
|Cancel proportional mode (not on LX80 ?) | |Cancel proportional mode (not on LX80 ?) | ||
|- | |- | ||
− | |1B 70 31 ||27 112 49 ||ESC p 1 | + | |1B 70 31 ||27 112 49 ||ESC "p" 1 ||Text Style |
|Select proportional mode (not on LX80 ?) | |Select proportional mode (not on LX80 ?) | ||
|- | |- | ||
− | |1B 73 30 ||27 115 48 ||ESC s 0 | + | |1B 73 30 ||27 115 48 ||ESC "s" 0 ||Misc |
|Turn half speed mode off | |Turn half speed mode off | ||
|- | |- | ||
− | |1B 73 31 ||27 115 49 ||ESC s 1 | + | |1B 73 31 ||27 115 49 ||ESC "s" 1 ||Misc |
|Turn half speed mode on (purpose: noise-reduced silent printing) | |Turn half speed mode on (purpose: noise-reduced silent printing) | ||
|- | |- | ||
− | |1B 78 30 ||27 120 48 ||ESC x 0 | + | |1B 78 30 ||27 120 48 ||ESC "x" 0 ||Text Style |
|Select draft mode (LX80) (FX86e) (not FX80) | |Select draft mode (LX80) (FX86e) (not FX80) | ||
|- | |- | ||
− | |1B 78 31 ||27 120 49 ||ESC x 1 | + | |1B 78 31 ||27 120 49 ||ESC "x" 1 ||Text Style |
|Select NLQ mode (LX80) (FX86e) (not FX80) | |Select NLQ mode (LX80) (FX86e) (not FX80) | ||
|- | |- |
Revision as of 10:55, 9 September 2010
- 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 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 | 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) |
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) Not confirmed if supported by NLQ401 |
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 |
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. DMP2000..3160 support only bit0-5 (not italic/underline). |
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 d n1 n2 .. | 27 42 d n1 n2 .. | ESC "*" d n1 n2.. | Graphics | Print 8pin Graphics (n2:n1 dot columns, each 8pin, bit7=upper pin),
Density (d) can be:
|
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, same as for ESC "*", see there) (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 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 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 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).