Technical Information
This file documents the internal operation of EGAD Screen Print, a DOS
program which makes the Print Screen key really work the way you want.
See also:
* http://www.wlindley.com -- Free download of EGAD
* http://www.inkjetsw.com -- Best source for inkjet
and laser refills
-------------------------
SUPPLEMENTAL DATA
EGAD Screen Print
Version 2.50
Copyright (c) 1993, 2002
wlindley.com
480/947-6100
To detect whether EGAD is in memory:
Use the DOS Interrupt 21h function 35h to retrieve interrupt vector
05h (Print Screen.) That function returns a segment:offset of the
interrupt. Take that segment, with a 0 offset, to find the EGAD
data segment, which is described below.
NOTE: Lines beginning with '>' indicate features found only in
EGAD Version 2.50 and above.
EGAD Data Segment contents.
Offset Contents.
00h 'QZ' The first two bytes are guaranteed to be 'QZ' in all
versions of EGAD, from 1.00 upward.
02h (word) Printer identifier.
* In versions less than 2.50, this is two characters which
uniquely identify the printer type:
Matrix Printers:
'EP' Epson & Compatibles (9-pin)
{EGADEP.EXE, EGADST.EXE}
'LQ' Epson LQ (24-pin) {EGADEP24.EXE}
'PP' IBM ProPrinter X24 {EGADPP.EXE}
'SC' Star NX-1000 / JX-80 Color
'DP' Dataproducts 8050
'MP' MPI 88/99/150
'NC' NEC 8023/C.Itoh 8510
'OK' Okidata 82/83/92/93
'OC' Okidata 292 (non IBM compatible)
'PT' Paper Tiger
'TO' Toshiba P3x1 (Not IBM/Epson compatible)
'TR' Tandy/Radio Shack DMP-105
Laser & InkJet Printers:
'HP' HP LaserJet, HP DeskJet 500,
HP DeskJet 500C with black cartridge
'5C' HP DeskJet500C with color cartridge
'PJ' HP PaintJet
'QJ' HP QuietJet
'IJ' IBM ColorJet
'PC' PCPI LaserImage 2000
'PS' PostScript
'Pc' PostScript Color
'TC' Tandy/Radio Shack CGP-220 Inkjet
'XE' Xerox 4020
------Supplemental Data-----EGAD Screen Print----------------------------Page 2
> * In versions 2.50 and above, this is an integer containing
> the following information: (shown as a 16-bit integer)
>
> +---+---+---+---+---+---+---+---|---+---+---+---+---+---+---+---+
> | - |Ink|24P|Mat|Las|CTx|CGf| Printer Model | Manufacturer Code |
> +---+---+---+---+---+---+---+---|---+---+---+---+---+---+---+---+
>
> Bit fields:
>
> '-' indicates reserved fields (all currently 0)
> 'Ink' is 1 for Inkjet printers.
> '24P' is 1 for 24-pin matrix printers.
> 'Mat' is 1 for all matrix printers, 24-pin and 9-pin.
> 'Las' is 1 for Laser printers.
> 'CTx' is 1 if text can be printed in color (0=black only)
> 'CGf' is 1 if EGAD supports color graphics printing
> 0 if gray scale or black & white only.
>
> Printer Manufacturer Codes:
>
> 0 HP
> 1 Epson
> 2 IBM
> 3 Toshiba
> 4 NEC
> 5 DP
> 6 OKI
> 7 MPI
> 8 PCPI
> 9 Xerox
> 10 Tandy (Radio Shack)
> 11 Adobe (PostScript printers)
>
> Printer Model Codes: (** indicates defined but not yet used)
>
> For Manufacturer = 0 (HP):
> 0 LaserJet
> 1 LaserJet II
> 2 QuietJet
> 3 LaserJet IIP or 3
> 4 LaserJet 4 **
> 5 PaintJet
> 6 DeskJet 500 or 500C
> 7 DeskJet 550C **
>
> For Manufacturer = 1 (Epson):
> 0 MX-80 (9-pin, 120 dpi)
> 1 FX-80 (9-pin, 240 dpi)
> 2 Star ("almost" Epson compatible 240 dpi)
> 3 LQ-800 (24-pin)
>
> For Manufacturer = 2 (IBM):
> 0 ProPrinter II (9-pin) **
> and ProPrinter X24 with AGM *OFF*
> [Selecting this printer in INSTALL will
> use the Epson driver.]
> 1 ProPrinter X24 (24-pin mode, AGM *ON*)
> 2 Color Inkjet 3852
------Supplemental Data-----EGAD Screen Print----------------------------Page 3
>
> Other Model codes are defined and can be found in
> "EGAD OEM" documentation.
04h (word) HB1 = Size of first header block, in bytes.
06h Palette data begins here. Each entry occupies one word.
Palettes start with color 0. Entries are as follows:
2-Color graphics palette (2 entries);
4-Color graphics palette (4 entries);
16-Color graphics palette (16 entries);
Text mode palette (16 entries).
052h (word) X1 {upper left corner} to print.
054h (word) Y1
056h (word) X2 {lower right corner} to print.
058h (word) Y2
05Ah (word) 0=disable form-feed after printouts; 1=enable; 2=FF only
05Ch (word) 1=LPT1..3=LPT3; -1=COM1..-4=COM4
05Eh (word) Enlargement factor:
0=Reduction, 1=1x, 2=2x, 3=3x, 4=4x
> 5=1.5x (Version 2.50 & above only)
060h (word) 256-Color mode Color Divisor
062h (word) 0=Disable user-adjustable crop box; 1=enable
064h (word) Centering (1=Left, 2=Right, 3=Center)
> 066h (byte) Vertical Centering (1=Top, 2=Bottom, 3=Center)
> (Version 2.50 & above only)
067h (byte) TSR Flags:
068h (word) Orientation: 0=Auto, 1=Portrait, 2=Landscape
06Ah (word) Crop box, color of "Currently Adjusting" corner
06Ch (word) Crop box, color of other corner
06Eh (word) [Reserved]
Following table starts at offset 052h + HB1 (e.g., if value at offset
04h is 001E, the table will be at 0070h):
Offset Contents.
+00h (word) Number of data words following [size of header]
With EGAD 2.41 and 2.50, this entry will be 000Ch.
+02h (word) EGAD Version identifier.
< 241 EGAD Version 2.40 or earlier
241 EGAD Version 2.41
> 2500 EGAD Version 2.50.0
> [Current and future versions will follow the convention:
> major_version * 1000 + minor_version * 10 + revision
> for example EGAD 2.50 would be 2500.]
+04h (word) PSP of TSR copy of EGAD [only when memory resident.]
+06h (word) Number of different graphics mappings available on this
printer [e.g. a driver able to print the following resolutions:
320×200, 640×200, 640×350, 640×480, 720×348, Reduction would
have 12 mappings if both portrait and landscape were offered
for each mode.]
+08h (byte) Number of primary mappings [in preferred orientation]
[usually above variable / 2.]
+09h (byte) Printer graphic byte orientation. 0=vertical [matrix]
1=horizontal [laser].
+0Ah (word) Number of different printer resolutions supported
+0Ch (word) Pointer to first graphics mode structure
+0Eh (word) Pointer to first pattern table
+10h (byte) Number of dithers used
+11h (byte) 0=black and white; 1=color printer
——Supplemental Data—–EGAD Screen Print—————————-Page 4
+12h (byte) Number of dither levels (’colors’) per dither table
+13h (byte) Number of printer color buffers (1=B&W; 3=CMY; 4=CMYK)
+14h (byte) Bytes per dither level
> +15h (byte) Printer Graphics mode flags:
> +—+—+—+—+—+—+—+—+
> |NOT|RUN|COL|HEX| - | Gfx_Type |
> +—+—+—+—+—+—+—+—+
> Gfx_Type 0= 2 binary bytes, LSB first (Epson)
> 1= 2 binary bytes, MSB first
> 2= decimal ASCII digits (HP, NEC)
> 3= Data Quoting (Okidata)
> 4= Bit set for graphics data (MPI)
> 5= Fixed graphics data length
> HEX TRUE if expand to ASCII hex digits (PostScript)
> COL TRUE if send count of COLUMNS (not BYTES)
> RUN TRUE if printer supports Run-length compression
> NOT TRUE if invert binary values to printer
>
+16h (word) Pointer to dither table