Changes

Amstrad/Schneider Printer Control Codes

668 bytes removed, 09:31, 22 June 2022
/* NLQ401 Control Codes */ DEL isn't supported, tested with a real NLQ401 printer
[[Category:Peripherals]] [[Category:Printers and printer ports]]
{{AmstradPrinterLinks}}
<br>
|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")
|-
|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 custom TAB channelsvertical 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 Ports|8bit Printer Port]]. Accordingly, only 7-pin graphics can be used, and some numeric parameters cannot be set to values with bit7=1.
|1B 32 ||27 50 ||ESC "2" ||Feed
|Select 12/72 inch aka 1/6 inch line spacing<br>
'''NLQ401-specificand 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
|-
|1B 3D .. 00 ||27 61 ... 0 ||ESC "=" ... 0 ||Char Code
|'''NLQ401-specifc:''' Print all following chr(01h..7Fh) as CPC-style chr(81h..FFh) using CPC-style symbolsymbols; use chr(00h) to return to normal mode
|-
|1B 41 n ||27 65 n ||ESC "A" n ||Feed
|Select '''NLQ401/MX80:''' Redefine ESC "2" to n/72 inch line spacing (applied by subsequent ESC "2" commands).<br>On a DMP2000 or FX80 it would directly select n/72 inch line spacing (n=0..85)|-|1B 43 00 n ||27 67 0 n ||(without needing to execute subsequent ESC "C2" NUL n ||Feed|Select page length in inches (n=1..22)
|-
|1B 43 (00) n ||27 67 (0) n ||ESC "C" (NUL) n ||Feed|Select page Page length in lines or inches (n=1..127lines, or 00h,1..22 inch)
|-
|1B 44 .. 00 ||27 68 .. 0 ||ESC "D" .. NUL ||?Tab|'''Unknown:''' Epson would define Define horizontal tabs - but might be another NLQ401-specific commandTAB positions
|-
|1B 45 ||27 69 ||ESC "E" ||Text Style
|-
|1B 57 n ||27 87 n ||ESC "W" n ||Text Style
|Duble 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
|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 printer; printing usually starts on terminating lines via CRLF)<br>
'''Not confirmed if supported by NLQ401'''
|-
|}
|-
|09 ||9 ||HT ||Tab
|Horizontal tab(see ESC "D")
|-
|0A ||10 ||LF ||Feed
|-
|0B ||11 ||VT ||Tab
|Vertical Tab(see ESC "B", ESC "b" and ESC "/")
|-
|0C ||12 ||FF ||Feed
|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 * Bit0 - Elite,/mini (same as ESC "M" / ESC "P")4 * Bit1 - Ignored or Proportional (same as ESC "p")* Bit2 - Condensed, (same as SI / DC2)8 * Bit3 - Emphasized,/bold (same as ESC "E" / ESC "F")16 * Bit4 - Double Strike, (same as ESC "G" / ESC "H")32 * Bit5 - Double Wide,Width (same as ESC "W")64 * Bit6 - Ignored or Italic, (same as ESC "4" / ESC "5")128 * Bit7 - Ignored or Underline. (same as ESC "-")Pica & Elite Epson FX-80 and Condensed/Emphasized are mutually exclusive. Amstrad DMP2000..3160 support only bit0,2-5 (not italicAmstrad 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 00 ||27 37 0 n 0 ||ESC "% NUL " n NUL ||Charset|Select normal character set (00h=Normal/ROM, 01h=User-Defined/RAM) (star lc10 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 d lo hi .. ||27 42 0 n1 n2 d lo hi .. ||ESC "* NUL n1 n2" d lo hi.. ||Graphics|Select 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 (60dpisame as ESC L) * 02h = 120 / 2 dpi, double speed double density (480 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 (n2for 1:n1 dot columns1 pixel aspect ratio)* 06h = 90 dpi, each 8pin720 pix per 8 inch (for Hercules screenshots)In the two "double speed" modes, bit7=upper pindots can be positioned at fine resolution, but the next dot (in the same row)must be white
|-
|1B 2A 01 n1 n2 .. 2D n ||27 42 1 n1 n2 .. 45 n ||ESC * SOH n1 n2.. "-" n ||GraphicsText Style|Select 8pin double density graphics Underlining on/off (same as ESC L) (120dpi) (960 pix per 8 inch00h=Off, 01h=On)
|-
|1B 2A 02 n1 n2 .. 2F c ||27 42 2 n1 n2 .. 47 c ||ESC * STX n1 n2.. "/" c ||GraphicsTab|Select 8pin double dvertical tab channel (c=0.speed graphics (same as .7); channels can be defined via ESC Y) (120dpi source data being output at 60dpi) (960 pix per 8 inch)"b"
|-
|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 (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 n d ||27 63 s n d ||ESC "? " s n d ||Graphics|Reassign graphics mode density of ESC "K/L/Y/Z" codes. 's'=code name (K,L,Y or Z) to mode , 'nd'=density (0..6, same as for ESC "*", see there) (default is defaults are 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 Define up to 16 vertical tabswith 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 42 tabs 43 (00 ) n ||27 66 tabs 67 (0 ) n ||ESC B tabs "C" (NUL ) n ||TabFeed|Select up to 16 vertical tabs where tabs are ascending values from Page length in lines or inches (n=1..255 ending with NUL127 lines, or 00h,1..22 inch)
|-
|1B 43 44 .. 00 n ||27 67 68 .. 0 n ||ESC C "D" .. NUL n ||FeedTab|Select page length in inches (n=Define up to 32 horizontal tabs with ascending values from 1..22137; specifying an empty list (ESC "D" NUL) clears all horizontal tabs; used with HT aka chr(09h)
|-
|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 n ||27 73 48 n ||ESC "I 0 " n ||Char Code|Disable Printable codes expansion 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 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 lo hi .. ||27 75 n1 n2 lo hi .. ||ESC "K n1 n2 " lo hi .. ||Graphics|Single 8pin density graphics (Print 8-pin 60 -dpi) graphics (n2:n1 = num bytes followingsame as ESC "*" 0, see there) (480 dots/linedensity of ESC "K" can be redefined via ESC "?")
|-
|1B 4C n1 n2 lo hi .. ||27 76 n1 n2 lo hi .. ||ESC "L n1 n2 " lo hi .. ||Graphics|Double 8pin density graphics (Print 8-pin 120 -dpigraphics (same as ESC "*" 1, see there) (960 dots/linedensity 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:
0 * 00h USA (ASCII),1 * 01h France,2 * 02h Germany,3 * 03h UK (Pound symbol),4 * 04h Denmark,5 * 05h Sweden,6 * 06h Italy,7 * 07h Spain,8 * 08h 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 n ||27 83 48 n ||ESC "S 0 " n ||Text Style|Select superscript/subscript (00h=super, 01h=sub)
|-
|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 n ||27 85 48 n ||ESC "U 0 " n ||Misc|Cancel unidirectional Unidirectional mode On/Off (00h=Off=faster, use bidirectional printing, 01h=On=slower, left-to-right, more accurate on vertical lines)
|-
|1B 55 31 57 n ||27 85 49 87 n ||ESC U 1 "W" n ||MiscText Style|Select unidirectional Double width mode (slowercontinous) (00h=Off, left-to-right, more accurate on vertical lines01h=On) (unlike DC4 and SO: one line)
|-
|1B 57 30 59 lo hi .. ||27 87 48 89 lo hi .. ||ESC W 0 "Y" lo hi .. ||Text StyleGraphics|Cancel double width mode Print 8-pin 120/2-dpi graphics (continoussame as ESC "*" 2, see there) (unlike DC4: one linedensity of ESC "Y" can be redefined via ESC "?")
|-
|1B 57 31 5A lo hi .. ||27 87 49 90 lo hi .. ||ESC W 1 "Z" lo hi .. ||Text StyleGraphics|Select double width mode Print 8-pin 240/2-dpi graphics (continoussame as ESC "*" 3, see there) (unlike SO: one linedensity of ESC "Z" can be redefined via ESC "?")
|-
|1B 59 n1 n2 5E d lo hi .. ||27 89 n1 n2 94 d lo hi .. ||ESC Y n1 n2 "^" d lo hi ..||Graphics|Select 8pin HiPrint 9-speed double den pin graphics at selected density (120 dpisimilar 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 5A n1 n2 62 c .. 00 ||27 90 n1 n2 98 c .. 0 ||ESC Z n1 n2 "b" c .. NUL ||GraphicsTab|Select 8pin Quad density graphics Define up to 16 vertical tabs per channel (240 dpic=0..7) with ascending values from 1..255; specifying an empty list (1920 dotsESC "b" c NUL) clears that vertical tab channel; channels are selected via ESC "/8"lineand can be then used with chr(09h); there is also a similar command without channel-numbers (ESC "B")
|-
|1B 5E d n1 n2.. 69 n ||27 94 d n1 n2 105 n ||ESC ^ d n1 n2 "i" n ||GraphicsMisc|Select 9 pin graphics mode number of columns = n1 + Instant character printing (n2 * 256) (d00h=density, 0Off=singledefault, 1=double) (specs doesn't say if 2..6 do work too) (each column is a 2-byte pair: byte1.bit7..bit0=upper.ie.lowerprint only on LF, byte2.bit701h=lowest, byte2.bit6..bit0On=unusedprint each char immediately; also scrolls printed text into view; when buffer empty) (not on LX80)
|-
|1B 62 c 00 6A n ||27 98 c 0 106 n ||ESC b c NUL "j" n ||TabFeed|Clear vertical tabs in channel Perform One-shot n/216 inch reverse linefeed (c=0..7not on LX80)
|-
|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 n ||27 112 48 n ||ESC "p 0 " n ||Text Style|Cancel proportional Proportional mode (00h=Off, 01h=On) (not on LX80 ?)
|-
|1B 70 31 73 n ||27 112 49 115 n ||ESC p 1 "s" n ||Text StyleMisc|Select proportional Half speed mode (not on LX80 ?00h=Off=Normal, 01h=On=Slow; purpose: noise-reduced silent printing)
|-
|1B 73 30 ||27 115 48 ||ESC s 0 78 n ||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 120 n ||27 120 48 ||ESC "x 0 " n ||Text Style|Select draft Draft/NLQ mode (LX8000h=Draft, 01h=NLQ) (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 printerprinted; printing usually starts on terminating lines via CRLFLF)
|-
|}