ASK ESC/Page Reference Manual

Z

Zence Chen

Dear ALL

I have encounter a OLD DOS/V program using page Language ESC/Page(TM)
protocal
to drive EPSON LP-1500 LASER PRINETR / Japanese,
(Support Two Byte FONT CODE, (<GS>1;2ssF),
AS I survay and buy more than 10 pieces EPSON LASER printer,
I found there is some difference between just ESC/Pages,
ESC/PageK,ESC/PageC,ESC/PageJ,..

Except buy from Japan, EPDJ(EPSON Printer Developmemnt Journal) online,
CAN I download this ESC/Page Instruction/Command-Set Reference Manual?
(AS for ESC/P, ESC/P2 command summary was usually attatched within user
manual)

following was my experence,

ESC/Page,Page2-B&W,Color,ESC/PageJ,ESC/PageC,ESC/PageK seem not all the
same,
all not support 2 Byte Code Font except PageJ/K/C ?

1.EPL-3000,5700,5700L,5800L,5900L,6100L,6200L,C900:NO SUPPORT ESC/Page
2.EPL-5800,5900,6100,6200,N2750,C1900:SUPPROT ESC/Page, But 1 Byte Font Code
Only,"(1Dh)1;1ssF", NG
3.EPL-5500C/EPL-N1200C : Tranditional Chinese, ESC/PageC, seems support 2
Byte Code Font? mot test yet?
4.EPL-5500K : Simpified Chinese, ESC/PageK, seems support 2 Byte Code Font?

5.JAPANESE EPL-LP800,1000,1500,1600,1700,1800,1900, :- 2 Byte Font Code : OK

Zence Chen
(e-mail address removed)
Taiwan
 
E

Eric P.

I have the EPSON ESC/P Reference Manual December 1997 in the form of PDF
files, downloaded it some years ago.
Is that you are looking for?
 
Z

Zence Chen

Thank you for Help

ESC/P & ESC/Page is Quit Different,
the ESC/Page is Page Description Language,
Equivlent to the Level of PostScript,HP-PCL/CANON LIPS

Zence Chen
(e-mail address removed)




Zence Chen
(e-mail address removed)
 
Z

Zence Chen

After Surfing on Internet More than 3 weeks,
I found some clues on
http://www.vector.co.jp/download/file/dos/business/ff005144.html
the GRA2EPGC.LZH file,
a DOS program, convert XXX.GRA graphic file into ESC/PAGE Language Protocal,
download and unzip it,
there are some TURBO PASCAL program,
one of them, ESCPAGEL.PAS
(all of them must be viewed with Japanese KANJI support),
contain about 45 function calls, and descripte it rough,

GS'z'00/00 : ESC/P -> ESC/Page
GS'1pmE' : ESC/Page -> ESC/P
GSn1;n2'ssF':n1:symbol-set, n2:1/2 byte code font selection


Zence Chen
(e-mail address removed)
³¯ùÚ¶©
 
Z

Zence Chen

Dear All

Finally I Edit/Compile an ESC-PAGE.TXT as a short Hand Summary for myself,

After surfing on internet more than 200 hours,
I am wondering why EPSON do not post this protocol on its web,
although it got patent and copyright,
and there are many revisions still go on and under development,

I think post this file won't violate the copyright, and
hope helpful to anybody still deal with old DOS program.

If anyone has a Printed/Published/File form ESC/PAGE reference manual,
I am still interested to have it or but it. TKS.

Zence Chen
(e-mail address removed)
Kaohsiung, Taiwan
2005/01/14 Fri

Abstract:

there is one program MST_MAIN.EXE for MELVEC Driver by Mitsubishi,
used in Hot Press Iron Factory Taiwan, using EPSON LP-1500 Laser
with Japanese Font Support,
the Printer Language is ESC/Page with 2 bytes code font support,
I wrote a TSR program EPAGEI17.ASM to swap 2 byte code font
into 1 byte code font,(only Valid ASCII code set),
after that, the program MST_MAIN.EXE can run with EPL-5800(and later)
ESC/Page supported Laser w/o Japanese Font embedded,
then I try to find full EPSON ESC/Page Reference manual but fail,
It has just been Published by EPSON and hard to buy locally,
after collect pieces of information thru internet, most from Japan,
I think this is enough for my interest and service job.
Maybe some later day, I'll write/improve my TSR program to do
Protocol Translation from ESC/Page to HP-GL or HP-PCL,
(seems someone wrote before, But Not easy to find out)
then total get rib of ESC/Page Printer, Ha-Ha.
and SEIKO EPSON won't be happy with this result, Ha-Ha-Ha.

----------------------------------------------------------------------------
---------

"Zence Chen" (e-mail address removed)
Dear ALL

I have encounter a OLD DOS/V program using page Language ESC/Page(TM)
protocal
to drive EPSON LP-1500 LASER PRINETR / Japanese,
(Support Two Byte FONT CODE, (<GS>1;2ssF),
AS I survay and buy more than 10 pieces EPSON LASER printer,
I found there is some difference between just ESC/Pages,
ESC/PageK,ESC/PageC,ESC/PageJ,..

Except buy from Japan, EDRJ(EPSON Developer Relation JAPANl) online, http://edrj.i-love-espon.co.jp

CAN I download this ESC/Page Instruction/Command-Set Reference Manual?
(AS for ESC/P, ESC/P2 command summary was usually attatched within user
manual)

why ESC/PAGE do not included in user manual or CD as before,
although I buy and use more 100 pieces of EPSON printer thru work carrer,
when search "ESC/PAGE" using Google, you can find many EPSON Laser has
this
Emulation and emphasis its function, but no more than that, what's the
problem,
Is ESC/Page just a LOGO in new tech product?
Most helpful infomation was found in OpenSource especially Linux Group,
I don't like this, and funny to i-love-eposn
following was my experience,

ESC/Page,Page2-B&W,Color,ESC/PageJ,ESC/PageC,ESC/PageK seem not all the
same,
all not support 2 Byte Code Font except PageJ/K/C ?

1.EPL-3000,5700,5700L,5800L,5900L,6100L,6200L,C900:NO SUPPORT ESC/Page
2.EPL-5800,5900,6100,6200,N2750,C1900:SUPPROT ESC/Page, But 1 Byte Font Code
Only,"(1Dh)1;1ssF", NG
3.EPL-5500C/EPL-N1200C : Tranditional Chinese, ESC/PageC, seems support 2
Byte Code Font? mot test yet?
4.EPL-5500K : Simpified Chinese, ESC/PageK, seems support 2 Byte Code Font?

5.JAPANESE EPL-LP800,1000,1500,1600,1700,1800,1900, :- 2 Byte Font Code : OK

Zence Chen
(e-mail address removed)
Taiwan
----------------------------------------------------------------------------
---------

----------------------------------------------------------
ESC-PAGE.TXT : Zence Chen, 2005/01/13
----------------------------------------------------------

ES:ESC: $1B : ESC/P Leading Character
FS: $1C : For Double Byte Font Control Code
GS: $1D : ESC/Page Leading Character

Reference : EPSON ESC/Page reference Manual , But I don't have it.
\MSTOOL\MST_MAIN.EXE : for Mitsubishi MELVEC Driver : using HEX Viewer
\GRA2EPGC\EXTPAGEL.PAS

Support Printer :
2 Byte Font Code EPSON Laser LP-1500 and serires
1 Byte Font Code ESC/Page Laser : EPL-5800/5900/6100/6200/N2750
with Zence's EPAGEI17.ASM

following function call declaration in EXTPAGEL.PAS unit
within cpmpressed file GRA2EPGC.LZH
download from
http://www.vector.co.jp/download/file/dos/business/ff005144.html
Modified by Matsubayashi(94/03-)
Compiled by TURBO PASCAL 5.0

idx Code Function Declaration
--- ------ -----------------------------------------------------------------
--------
01 pmE z function SetPrinterMode(mode: integer): string;
02 owE function EPage_OverWriteMode(owm: integer): string;
03 rhE function EPage_HardReset: string;
04 rpE function EPage_ParamReset: string;
05 poE function EPage_PaperDirection(d: integer): string;
06 muE function EPage_SetUnit(unitsys: integer; min_val: double):
string;
07 mmE function EPage_MemoryMode(mode: integer): string;
08 tsE function EPage_ScreenMode(mode: integer): string;
09 spE function EPage_ScreenPattern(obj, graymode, grayscale: integer):
string;
10 spE function EPage_GrayScale(obj, gray: integer): string;
11 loE function EPage_Offset(xoff, yoff: longint): string;
12 psE function EPage_PaperType(pt: integer): string;
13 psE function EPage_PaperSize(w, l: longint): string;
14 caE function EPage_ClipAria(left, top, right, bottom: longint):
string;
15 cmE function EPage_ClipMode(mode: integer): string;
16 X function EPage_LocateX(x: longint): string;
17 xP function EPage_LocateC(c: integer): string;
18 Y function EPage_LocateY(y: longint): string;
19 yP function EPage_LocateL(l: integer): string;
20 H function EPage_LocateRelX(x: longint): string;
21 hP function EPage_LocateRelC(c: integer): string;
22 V function EPage_LocateRelY(y: longint): string;
23 alfP function EPage_AutoLF(mode: integer): string;
24 vP function EPage_LocateRelL(l: integer): string;
25 ppP function EPage_Push_Pop(l: integer): string;
26 pmP function EPage_PitchMode(pm: integer): string;
27 pP function EPage_Pitch(px, py: integer): string;
28 spF function EPage_Spacing(sp: integer): string;
29 coP function EPage_ChOffset(x, y: longint): string;
30 ssF function EPage_SymbolSet(ss, b: integer): string;
31 wmF function EPage_ChWidth(w: integer): string;
32 wcF function EPage_ChWidthC(w: integer): string;
33 hmF function EPage_ChHight(h: integer): string;
34 hpF function EPage_ChHightP(h: integer): string;
35 weF function EPage_ChLineWidth(fw: integer): string;
36 roF function EPage_ChRotation(a: integer): string;
37 slF function EPage_ChSlant(a: integer): string;
38 tfF function EPage_Font(f: integer): string;
39 vpC function EPage_TateMode(mode: integer): string;
40 lG function EPage_Line(x1, y1, x2, y2: longint): string;
41 cG function EPage_Circle(x, y, r: longint): string;
42 rG function EPage_Rectangle(x1, y1, x2, y2, r: longint): string;
43 lpG function EPage_LineType(p, lt: integer): string;
44 lwG function EPage_LineWidth(lw, ed, jc: integer): string;
45 dmG function EPage_DrawMode(fm: integer): string;
----------------------------------------------------------------------------
--------

Note: Lowercase and UpperCase Char is different, just like ESC/P definition
Sorted By ESC/PAGE GS Tail Command Code

ps. all n/s/x/y, n1/n2/s1/s2/x1/x2/y1/y2: is string
all command last Char seemd to be Uppercase, donate end of
GS-Command-Code
* : Used ESC/Page GS-Code in MST_MAIN.EXE, about 20 set
$ : ESC/Page GS-Code in MST_MAIN.EXE, about set

Tail-Code : Syntax Idx/Name Description
Example
---------- ------------------ ----------------- ------------------- ------
------
abP $ : GS+n+'abP' :Unknown n:? 1abP
2abP
affP : GS+n+'affP' :AutoFF n='1'/'0' Set/Clr 0affP
alfP : GS+n+'alfP' 25:AutoLF n='1'/'0' Set/Clr 0alfP
boP : GS+n+'boP' :Unknown n:? 0boP
caE : GS+x;y;x2;y2+'caE' 14:ClipArea x:left,y:Top
x2:right,y2:bottom
cG : GS+x;y;r+'cG' 41:Circle
clfP : GS+n1;n2;n3+'clfP' :Unknown
0;0;1clfP

coP : GS+x;y+'coP' 29:ChOffset x,y:pixel 0;0coP
char offset Adjustment
cmE : GS+n+'cmE' 15:ClipMode n='1'/'0' Set/Clr
dcF : GS+n+'dcF' :SelDownloadFont n: ndcF
dh{F : GS+b;n+'dh{F'+DS :DownloadFont b:134 DS(42+54+28)
134;ndh{F
followed by 134 bytes data structure

DataStructure(42)+FontName(54)+SymbolSetName(28)
dmG : GS+n+'dmG' 45:DrawModeGraphx n='1'/'0' Set/Clr? 1dmG |
0dmG
drE $ : GS+n1;n2;n3+'drE' :Unknown
0;n;ndrE

0;80,80drE
H : GS+x+'H' 20:LocateRelX x:pixel/point rel
move hor
hmF * : GS+n+'hmF' 32:ChHigth n:char-Height(min) 40hmF
hP : GS+x+'hP' 21:LocateRelC x:unit column rel
move hor
hpF * : GS+n+'hpF' 34:ChHightP n:point
iaF : GS+n+'boP' :Unknown n:? 511iaF
ifF : GS+n+'boP' :Unknown n:? 511ifF
lG * : GS+x1;y1;x2;y2+'lG' 40:Line (x1,y1) to (x2,y2)
lpP : GS+n1;n2+'lpP' :Unknown n1: 8;0lpP
n2: 8;nlpP
iuE : GS+n1;n2+'iuE' :Unknown n1:? kyu-ushi
n2:? bin
lmE : GS+n+'lmE' :LeftMargin n:bottom 0lmE
nrmE
followed by n+'rmE'
n:MarginMax
loE : GS+x;y+'loE' 11:Offset Set ref/Home Point
usually followed by set
Top/Bottom/Left/Right Margin
0tmE/xxbmE/0lmE/xxrmE

lpG * : GS+n1;n2+'lpG' 43:LineType n1:p ? 0;0lpG
n2:lt 0/1/2/3/4
0:Solid 1:Dot 2:? 3:Dash
4:Dot-Dash

lwG * : GS+n1;n2;n3+'lwG' 44:LineWidth n1:width
5;0;3lwG
n2:line-end-mode
2;0;3lwG
n3:line-junction-mode
mcF ? * : GS+n1;n2+'mcF' :Unknown n1: 0;0mcF
n2:Define UserSet? 0;1mcf
0;2mcf
1;3mcF
followed by spF/ssF/tfF/wmF/hmF/slF
mmE : GS+n+'mmE' 07:MemoryMode n='1'/'0' Set/Clr 1mmE
muE * : GS+n1;n2+'muE' 06:SetUnit n1:Unit System
2;0.1muE
0:point(1/72")/1:inch/2:mm
1;0.24muE
Note Point & Pixel is different
n2:Min_val 0.1, xxx.xx
owE : GS+n+'owE' 02:OverWriteMode n='1'/'0' Set/Clr 1owE
pG : GS+x;y;..xn;yn+'pG' :polygonGraphDraw
used inside 1tsE/0tsE
pmE * : GS+'1pmE' 01:SetPrinterMode ESC/Page -> ESC/P 1pmE
pmP : GS+n+'pmP' 26:pitchMode Movement Mode 1pmP
poE * : GS+n+'poE' 05:paperDirection '0':Horizon 0poE
pP : GS+n1;n2+'pP' 27:pitch n1:? 0,0pP
n2:?
ppP : 25:pushPopPosn 1ppP:pushPosn 1ppP
2ppP:popPosn 2ppP
psE : GS+n+'psE' 12:paperType n:papae_type npsE
: GS+n;;+'psE' 12:paperType n;;psE
: GS+'-1';w;h+'psE' 13:papaerSize w:width
? -1;w;lpsE
l:length(height)
rG * ; GS+x;y;x2;y2;n+'rG' 42:Rectangle n:fill_enable?
0;0;1950,2750,0rG
rhE * : GS+'rHE' 03:HardReset rhE
rmE : GS+n+'rmE' :RightMargin n:RightMargin nrmE
roF : GS+n+'roF' 37:ChRotation n:Char rotate Angle
0-359
rpE : GS+'rpE' 04:paramReset n:RightMargin rpE
sc{F : GS+b;c+'dh{F'+DS :DownloadRaster b:size(16+datalenght)
c:char_code
used after dcF
DataStructure(16)+RasterDataLenght(..)
slF * : GS+n+'slF' 37:ChSlant n:Char Slant Angle 330slF
0-359
spE * : GS+n1;n2;n3+'spE' 09:ScreenPattern n1:blush:bj
1;1;5spE
n2:graymode
1;1;80spE
n3:grayscall 0(WT)-100(BK)
10:GrayScale n2=0, n3:grayscall
1;0;20spE
spF * : GS+n1+'spF' 28:Spaceing 0spF
ssF * : GS+s1+';'+s2+'ssF' 30:SymbolSet s1:SymbolSet,
s1='1',..
s2:1/2-Byte Code,
s2='0','1','2'
1;2ssF
S2=0:UserSymbolBase n;0ssF
tfF * : GS+n+'tfF' 38:Font n:Font Selection 10tfF
9tfF
tmE : GS+n+'tmE' :Top Margin n:Top 0tmE
nbmE
followed by n+'bmE'
n:MarginMax
tsE * : GS+n+'tsE' 08:ScreenMode n='1'/'0' Set/Clr 1tsE
set befopre mass Line(lG)
clr after done
V : GS+y+'H' 22:LocateRelY y:pixel/point rel
move ver
vP : GS+y+'vP' 24:LocateRelL x:unit Line/Row rel
move ver
vpC : GS+n+'vpC' 39:TateMode n='1'/'0' Set/Clr
Text Vertial writing 1:portrait/Vertical
0:Lanscape/Hortizontal
X * : GS+x+'X' 16:LocateX x:pixel
x:'0'..8.5x300
x:mm 8.5"x2.54x100=2159
xP : GS+x+'xP' 24:LocateC x:unit Column move
hor
Y * : GS+y+'Y' 18:LocateY y:pixel
y:'0'..11.5x300
y:mm 11.5"x2.54x100=2921
yP : GS+y+'yP' 24:LocateL y:unit line/row move
ver
wcF * : GS+n+'wcF' 33:ChWidthC n:CPI
weF * : GS+n+'weF' 35:ChLineWidth n:char Line Width sel
wmF * : GS+n+'wmF' 31:ChWidth n:char-Width(min) 40wmF
z+NULx2 * : GS+'z'+$00+$00 01:SetPrinterMode ESC/P -> ESC/Page


$0C * : FormFeed Valid in ESC/Page
#X ($23) : 2byte ASCII => X
!X ($21) : Punctualable Chars.
change/swap rule
$21 !! => ' ' $20
$3F !? => '/' $2F
$27 !' => ':' $3A
$25 !% => '.' $2E
$6f !o => '\' $5C
$4A !J => '(' $28
$4B !K => ')' $29
$5D !] => '-' $2D Guess

------- End of File:ESC-PAGE.TXT ------------------
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top