Changes

Amstrad/Schneider Printer Control Codes

884 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)
|-
|-
|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
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 Page length in lines or inches (n=1..127 lines, or 00h,1..22inch)
|-
|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
|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)
|-
|}