home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
list
/
ep-src.ark
/
EPDATA.MAC
< prev
next >
Wrap
Text File
|
1988-05-21
|
8KB
|
371 lines
ttrue equ 1
false equ 0
lvers equ true
CMDCH equ '\' ;/* command character (use 'li'?)*/
DOTCH equ '.' ;/* at beginning of line, same
; as CMDCH */
SOFTSP equ 0A0H ;/* WS fill sp char */
SOFTHY equ 01EH ;/* WS inactive soft hyphen */
SOFTHYA equ 01FH ;/* WS acitve soft hyphen */
NUMFTS equ 7 ;/* maximum number of graphic fonts */
LENFTN equ 14 ;00/D:12345678<nul>
NUMRULES equ 32
SECSIZ equ 128
MAXLINE equ 300
MAXCOL equ 10
BSTKSIZE equ 6*MAXCOL
GBUFSIZ equ 2000
MAXSNEST equ 40
;/* various measures in terms of dots */
PICA equ 24
POINT equ 3
INCH equ 240
VINCH equ 216
;/* masks for mode bits */
ELITE equ 01
PRPTNL equ 02
CMPRSSD equ 04
EMPHSZD equ 08
DBLSTRK equ 10H
EXPNDD equ 20H
UNDRLN equ 40H
ITALIC equ 80H
;/* So that's b0-b7; b8,b9,b10 are used for the
; current graphics font, which is 'fo'-1. */
SUPSCRPT equ 0800H
SUBSCRPT equ 1000H
BENT equ 2000H
TALL equ 4000H
IGNORE equ 8000H
;/* All bits are committed */
;/* define bits for type of command value */
HZNUM equ 1
VTNUM equ 2 ;/* numerical value, vertical measure */
EPSSYN equ 4 ;/* synonym of Epson command */
BRK equ 8 ;/* causes a break */
CHARG equ 16 ;/* arg is character */
FLAGCH equ 32 ;/* value is character flag */
MCRO equ 64 ; a macro string
BRKAFT equ 128 ; causes break before next input line
ARGTRUE equ 1+32 ; assume true arg, but no following number
; /* All bits are committed */
;/* character flags */
CEFLAG equ 090H
RAFLAG equ 091H
SPFLAG equ 092H
HSFLAG equ 093H
PAFLAG equ 094H
FRFLAG equ 095H
BCKFLAG equ 096H
dseg
ds 6 ;formerly used by alloc -- now not used
;/* following block matches format of data in ep.ini */
;/* initialization data size tot.size */
;int val[27][27]; /* 05B2 05B2 values of 'pl', etc. */
val:
vlgen macro lets,lab
tglet set 0ffh
irpc xlet,lets
if tglet
q1 set '&xlet'-'`'
else
q2 set '&xlet'-'`'
endif
tglet set 0
endm
org q1*54 + q2*2 + val
if nul lab
lets:
else
lab:
endif
endm
vlgen al,align
vlgen be
vlgen bm
vlgen bo
vlgen bp
vlgen ca,callig
vlgen cc
vlgen ch,cheight
vlgen co
vlgen cs
vlgen cw
vlgen ec
vlgen ep
vlgen fa
vlgen fm
vlgen fo
vlgen gu
vlgen hm
vlgen ir
vlgen ju
vlgen ke
vlgen ll
vlgen mx
vlgen nc
vlgen pf
vlgen pl
vlgen pn
vlgen rb
; vlgen sh
vlgen sl
; vlgen st
vlgen su
vlgen ta
vlgen tc
vlgen tm
vlgen uc
org val+2*27*27
;char valtp[27][27]; /* 02D9 088B type of value, e.g. numerical */
valtp: ds 27*27
;char modelen[64]; /* 0040 08CB width of Epson built-in char's */
modelen: ds 64
;char pmlen[256]; /* 0100 09CB width of Epson prop'l char's */
pmlen: ds 256
;int mode; /* 0002 09CD 16 bits keep track of font, etc.*/
mode: ds 2
;char tabwid; /* 0001 09CE nominal char width for int'g tab*/
tabwid: ds 1 ;NO LONGER USED
;char bending[7][24]; /* 00A8 0A76 bending */
bending: ds 7*24
;char fillinit[10]; /* 000A 0A80 (not used) */
ds 10
; /* total = 10 pp. or 21 records */
;from FGET.C, fl at val + A80H (6686H) is array 8 by (128+6) uses 430H
fl: ds 8*(128+6)
; flnum at fl + 430H (6AB6)
ds 2 ;flnum now private to fget
;EPDCL equ 6AB8H (once upon a time)
nospec: ds 1 ;disable special features while doing headings
noprint: ds 1 ;disable printing
errtype: ds 2
llength: ds 2 ;6ABCH
vposition: ds 2
bkaft: ds 1 ;flag break before next input line
gfflag: ds 1 ;note loading graphic font
;int pgno,
; errtype,
; llength, /* current ll minus indents */
; vposition, /* vert'l position of printhead */
; spdots, /* number dots to move printhead
; down before printing, even at
; the beginning of a page */
skdots: ds 2
emode: ds 2
; skdots, /* as above, but not at beginning
; of page */
; emode, /* what the Epson thinks the current
; mode is */
allmode: ds 2
errcode: ds 2
; allmode, /* keep mode for } command */
; errcode;
;(dt1,dt2 not used now -- made local to cseq)
frplace: ds 2 ;remember where to put a cl space
;dt1 equ epdcl+18 ;6ACA
;dt2 equ epdcl+19
brkflag: ds 1 ;6ACCH
bsflag: ds 1
epsflag: ds 1
grfflag: ds 1
unidir: ds 1
tallflag: ds 1
tabottom: ds 1 ;6AD2H
scrncol: ds 1
;char dt1, dt2, /* 1st and 2nd letter of command */
; brkflag, /* signal don't justify this line */
; bsflag, /* overprint next char */
; epsflag, /* have an Epson char in output line */
; grfflag, /* have a graphics char in output line */
; unidir, /* Epson unidir'l print assumption */
; tallflag, /* tall char in output line */
; tabottom, /* last 3 passes when tall char present */
; scrncol; /* apparent column on screen when
; line of text was edited */
fnbuf: ds 29 ;was 30
mcinok: ds 1 ;flag ok to reset indent in mc mode
termcnt: ds 1 ;(formerly used for fname)
nexttab: ds 1 ;next implicit 'n' value for tb command
;char fnbuf[30], *fname; /* filename buffer & ptr */
;
inpoint: ds 2 ;(6AF4)
inbuf: ds MAXLINE
;int inpoint;
; char inbuf[MAXLINE]; /* one line from the text */
glen: ds 2 ;6C22H
gpoint: ds 2 ;6C24H
gbuf: ds GBUFSIZ ;6C26H
;
;int glen, /* cumulative length of line
; currently being formed, in dots */
; gpoint;
; char gbuf[2000]; /* dot graphics data for one line
; of output */
outpoint: ds 2 ;73F6H
xoutbuf: ds MAXLINE
outbuf: ds 2 ;7524H
;
;int outpoint;
; char xoutbuf[MAXLINE], /* character data for one line of output */
; *outbuf;
xattrbuf: ds 2*MAXLINE
attrbuf: ds 2 ;777EH
xwidbuf: ds 2*MAXLINE
widbuf: ds 2 ;79D8H
; int xattrbuf[MAXLINE], /* mode attributes for each character */
; *attrbuf,
; xwidbuf[MAXLINE], /* width of each character */
; *widbuf;
; /* the pointers above are used so that the buffers
; can be used temporarily for the page number (I
; painted myself into a corner) */
;
brccount: ds 2
ds 2 ;not used
brcstk: ds 2*MAXCOL*6
;int brccount, /* count unpaired left braces */
; nubrcpt, /* brace stack pointer */
; brcstk[MAXCOL][6]; /* brace stack */
ftp: ds 2*NUMFTS ;7A56H
fix: ds 2*NUMFTS*128 ;7A64H
ftlen: ds NUMFTS*128 ;8164H
;/* font data */
;unsigned ftp[NUMFTS]; /* memory addresses where fonts
; begin in 'fnt' */
;int fix[NUMFTS][128]; /* for each font, indices of
; individual character definition */
;char ftlen[NUMFTS][128], /* character widths - determined
; by values in 'fix' */
ftname: ds NUMFTS*LENFTN ;(84E4)
nextft: ds 1 ;(8523)
; ftname[NUMFTS][9], /* names - e.g. MODERN */
; nextft; /* number of next font to load */
begovr: ds 2 ;8524H
endovr: ds 2 ;8526H
;int begovr, endovr;
brcpt: ds 2*MAXCOL
lindent: ds 2*MAXCOL ;853CH
;int brcpt[MAXCOL], lindent[MAXCOL];
pendc: ds 1 ;8550H
;char pendc;
attach: ds 2*32
;int attach[32];
duplflag: ds 1
;char duplflag
hycorrect: ds 1
;/* for processline: */
; char hycorrect;
gargc: ds 2
gargv: ds 2
;used in loadft
fullname: ds 17
;st and sh now done indirectly -- moved to here
;(cf stowc, gchr, cseq)
st: ds 2
sh: ds 2
;$$$ from GCHR
pass: ds 1
ch: ds 1
c0: ds 1
c1: ds 1
c2: ds 1
bx: ds 1
ftn: ds 1
charft: ds 1
len: ds 2
lstlen: ds 2
pix: ds 1
power: ds 1
gindex: ds 2
dtgindex: ds 2
ix: ds 2
widix: ds 2
ptft: ds 2
ptft0: ds 2
ptft1: ds 2
ptft2: ds 2
gcj: ds 2
cx48: ds 6
_st: ds 2
_sh: ds 2
;$$$ from GSTR
afterdup: ds 1
_savheight: ds 2
tduplex: ds 1
tripleh: ds 1
_gpass: ds 1
maxgpt: ds 2
nvdots: ds 1
spare1: ds 2
spare2: ds 2
spare3: ds 2
;kerning strings for each font -- stowc & cseq
klist: ds NUMFTS*2
;misc. used from cseq
rlpoint: ds 2 ;also from process
mcoloffset: ds 2 ;also from gstr
rulist: ds NUMRULES*4 ;also from gstr, prtsbuf, gotocol
if lvers
NUMLINES equ 32
lilist: ds NUMLINES*8
endif
utabs: ds 32*2
gname: ds 13
_$stack: ds MAXSNEST*2
_$buf: ds 1024
..freram:
CSEG