The following information is provided as is, and the authors take no responsibility for the correctness.

Diablo 630

Diablo 630 emulation was originally used with daisywheel printers and typewriters. It supports only sequences for tabulation, line and character spacing, attribute selection (bold, double-strike, underline), horizontal movement in both directions, proportional spacing and automatic centering and justification among others. This emulation is sometimes used by other vendors as a base for their printer specific emulation.


Some information can be found in the “Brother Laser Printer HL-Series - Technical Reference Guide”:


Command Syntax and Format


The following conventions are used in this description of the Diablo 630 mode software commands:

  • A letter, control code, word or number in upright bold text is a literal character and should be sent to the printer as the character code.
  • A letter or word in italics is a variable and you must substitute the appropriate value or values when using the command.
  • A statement element enclosed in angle brackets < > may be of any size up to some specified maximum.


  • The printable area is the area of the page where the printer can place a dot.
  • The units of horizontal and vertical movement on the page are the horizontal motion index (HMI) and vertical motion index (VMI). You can set these units as you wish and then move the print position horizontally or vertically in multiples of them.
  • The bits that comprise a byte of data are numbered 1 to 8. Bit 1 is the least significant bit (LSB) and bit 8 is the most significant bit (MSB).

Control Codes

Control codes are ASCII codes that instruct the printer to perform a particular operation, such as a line feed. Send a control code to the printer by sending the same type of instruction you would use to print a character using its ASCII code number. For example, the ASCII code for a form feed is 12, so to get the printer to perform a form feed use the following BASIC statement:


The CHR$ operator is normally used to convert an ASCII code into its corresponding character.

Escape Sequences

Escape sequences tell the printer the Diablo 630 mode function to perform. An escape sequence consists of the Esc character followed by one or more characters which define the operation to be performed. Send an escape sequence to the printer by sending the same type of instruction you would use to print characters using their ASCII codes. Some escape sequences require parameter values or data following them, for example, commands which turn a particular feature on and off. Numerical parameter data, too, is sent to the printer as if it were a character code to be printed. For example, to move the print position to the third column position on the page the required escape sequence is Esc HT 3. In BASIC this would be:

LPRINT CHR$(27); CHR$(9); CHR$(3);


Margins and Formatting

<Esc> <EM> n Paper input control
<Esc> <FF> n Set page length
<HT> Horizontal tab
<Esc> <HT> n Absolute horizontal tab
<Esc> 1 Set horizontal tab at current position
<Esc> 8 Clear horizontal tab at current position
<VT> Vertical tab
<Esc> - Set vertical tab at current position
<Esc> 2 Clear vertical Tab Stop at current position
<Esc> <VT> n Absolute vertical tab
<Esc> T Set top margin at current position
<Esc> L Set bottom margin at current position
<Esc> C Clear top and bottom margins
<Esc> 9 Set left margin at current position
<Esc> 0 Set right margin at current position
<Esc> <Ctrl+L> n Set lines per page to n

Carriage Movement

<SP> Space
<BS> Backspace
<CR> Carriage return
<Esc> ? Enable auto Carriage Return
<Esc> ! Disable auto Carriage Return
<Esc> <Ctrl+→ n Set horizontal motion index (HMI) n-1
<Esc> S Reset horizontal motion index (HMI) to spacing switch
<Esc> <Ctrl+I> n Absolute horizontal Tab Stop to print column
<Esc> / Auto backward printing mode
<Esc> \ Cancel auto backward printing mode
<Esc> < Enable reverse printing mode
<Esc> > Disable reverse printing mode
<Esc> 5 Set forward printing mode
<Esc> 6 Set backward printing mode

Paper Movement

<LF> Line feed
<FF> Form feed
<Esc> <Ctrl+⇒ n Set vertical motion index (VMI) n-1
<Esc> <Ctrl+K> n Absolute vertical to print line
<Esc> U Half line feed
<Esc> <LF>
<Esc> <Ctrl+J>
Reverse line feed
<Esc> D Reverse half line feed
<Esc> ” Set automatic line feed
<Esc> # Cancel automatic line feed

Printing Commands

<Esc> 3 Set graphics mode
<Esc> 4 Cancel graphics mode
<Esc> A Print in secondary color (Red)
<Esc> B Print in primary color (Black)
<Esc> 7 Enable print suppression
<Ctrl+N> Enable ECS mode, print supplementary characters
<Ctrl+O> Disable ECS mode, print primary characters

Word Processing Commands

<Esc> P Set proportional spacing
<Esc> Q Cancel proportional spacing
<Esc> <Ctrl+Q> n Set offset to (n)
<Esc> E Set underline print mode
<Esc> R Cancel underline print mode
<Esc> F Set double-strike mode
<Esc> H Set auto strike-out print mode
<Esc> I Cancel auto strike-out print mode
<Esc> O Set bold print mode
<Esc> W Set shadow print mode
<Esc> & Cancel bold and shadow print modes
<Esc> M Enable auto justify
<Esc> = Enable auto center
<Esc> <Ctrl+H> Backspace 1/120”
<Esc> % Increase Carriage settling time to 20 msec
<Esc> N Restore normal Carriage settling time
<Esc> <Ctrl+N> M Enable program mode
<Esc> X Cancel all Word Processing modes except PS

Miscellaneous Commands

<BEL> Bell
<DC1> Enable printer
<DC3> Disable printer
<Esc> <Ctrl+M> P Initiate remote Reset
<Esc> <CR> mode Change emulation mode / reset printer
<Esc> <CR> ! # R User reset
<Esc> @ Set EPSON emulation mode
<Esc> G
<Esc> V
Enable HyPLOT mode
<Esc> Y Print character assigned to character code 32
<Esc> Z Print character assigned to character code 127
<Esc> <Ctrl+N> <Ctrl+R> Enable printwheel down-load mode
<Ctrl+T> Exit printwheel down-load mode
<Esc> <Ctrl+Z> n Enable remote diagnostics mode
<Esc> <Ctrl+Y> n Enable auto sheet feeder operation

formats/page_description_languages/diablo_630.txt · Last modified: 2006/04/07 08:05 (external edit)

All text is available under the terms of the GNU Free Documentation License (see Copyrights for details). Disclaimers

Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki