.macro CODE
	.text
.endm

.macro SECTION name,type,model
	\type
.endm


*
pdrvrnm		equ	0
device		equ	pdrvrnm+4	;who to send to
pdl		equ	device+2	;does it drive a page description language
ptype		equ	pdl+1		;type of output device (b/w, color,etc..)
pman		equ	ptype+1		;can it print manual feed?
pmanual		equ	pman+1		;print manual feed
pmult		equ	pmanual+1	;can it automatically print mulitiple copies?
unused1		equ	pmult+1		;unused byte

pcopies		equ	unused1+1	;number of copies to print
pxdpi		equ	pcopies+2	;x resolution
pydpi		equ	pxdpi+2		;y resolution
pxover		equ	pydpi+2		;percentage of x overlap of dots
pyover		equ	pxover+2	;percentage of y overlap of dots
pminlft		equ	pyover+2	;pixels from left edge to start printing
pminrht		equ	pminlft+2
pmintop		equ	pminrht+2		;pixels from top to start printing
pminbot		equ	pmintop+2	;pixels from bottom to end printing
pmaxw		equ	pminbot+2	;maximum # pixels across
pmaxh		equ	pmaxw+4		;maximum # pixels down
prowht		equ	pmaxh+4		;smallest height of print head
pdensity	equ	prowht+2	;print density
sendout		equ	pdensity+2	;ptr to routine to send a byte in d0

pblockx		equ	sendout+4	;x offset to print block at
pblocky		equ	pblockx+4	;y offset to print block at
pblockw		equ	pblocky+4	;width in bytes of block to print
pblockh		equ	pblockw+4	;height of block to print
pblockptr	equ	pblockh+4	;handle to block to print
pblockoff	equ	pblockptr+4
pblockplane	equ	pblockoff+4

*
* these are used for postscript and other special drivers
*  (don't use them if you don't have to!)
ptile		equ	pblockplane+4	;print tiles
prvrs		equ	ptile+1		;print reversed (write white)
pmirror		equ	prvrs+1		;print mirrored (transparency)
pland		equ	pmirror+1	;print landscape
pcrop		equ	pland+1		;print cropmarks
unused2		equ	pcrop+1		;unused byte

pfont		equ	unused2+1	;type of fonts I understand
pscale		equ	pfont+2		;scale factor in use
psepmode	equ	pscale+2	;0-no sep, 1-color sep, 2-mech sep
pcyan		equ	psepmode+2	;(5 words) color to print (mech/color sep)
pmagenta	equ	pcyan+2
pyellow		equ	pmagenta+2
pblack		equ	pyellow+2
pcolor		equ	pblack+2
*
VPaperW		equ	pcolor+2
VPaperH		equ	VPaperW+4
PPaperW		equ	VPaperH+4
PPaperH		equ	PPaperW+4
*
VDocumentW	equ	PPaperH+4	;total width to be printed
VDocumentH	equ	VDocumentW+4	;total height to be printed
PDocumentW	equ	VDocumentH+4	;total width to be printed
PDocumentH	equ	PDocumentW+4	;total height to be printed
*
PPageLeft	equ	PDocumentH+4	;current left
PPageTop	equ	PPageLeft+4	;current top
PPageWidth	equ	PPageTop+4	;current width
PPageHeight	equ	PPageWidth+4	;current height
*
PBlockLeft	equ	PPageHeight+4
PBlockRight	equ	PBlockLeft+4
PBlockTop	equ	PBlockRight+4
PBlockBottom	equ	PBlockTop+4
PBlockWidth	equ	PBlockBottom+4
PBlockHeight	equ	PBlockWidth+4
*
VLeft		equ	PBlockHeight+4
VTop		equ	VLeft+4
PLeft		equ	VTop+4
PTop		equ	PLeft+4
*
blocks		equ	PTop+4
blkcnt		equ	blocks+2
tilex		equ	blkcnt+2
tiley		equ	tilex+2
*
fillpat		equ	tiley+2		;ptr to fill patterns
linepat		equ	fillpat+4	;ptr to fill patterns
prtspcl		equ	linepat+4	;ptr to special string
openfnt		equ	prtspcl+4	;ptr to open font file routine
readfnt		equ	openfnt+4	;ptr to read font. Returns d0 (length), a0 (ptr)
fmlist		equ	readfnt+4	;ptr to font metrics list
fmcnt		equ	fmlist+4
fmoff		equ	fmcnt+4
curfm		equ	fmoff+4
ftlist		equ	curfm+4
ftcnt		equ	ftlist+4
ftoff		equ	ftcnt+4
curft		equ	ftoff+4
textattr	equ	curft+4		;ptr to text attributes
msgport		equ	textattr+4
createport	equ	msgport+4
closeport	equ	createport+4
printstat	equ	closeport+4

m_alloc		equ	printstat+4
m_realloc	equ	m_alloc+4
m_grow		equ	m_realloc+4
m_shrink	equ	m_grow+4
m_delete	equ	m_shrink+4

mulu1632	equ	m_delete+4
mulu3232	equ	mulu1632+4
divu1648	equ	mulu3232+4
divu3248	equ	divu1648+4
divu3264	equ	divu3248+4

muls1632	equ	divu3264+4
muls3232	equ	muls1632+4
divs1648	equ	muls3232+4
divs3248	equ	divs1648+4
divs3264	equ	divs3248+4

pfseek		equ	divs3264+4
fopenr		equ	pfseek+4
fopenw		equ	fopenr+4
fclose		equ	fopenw+4
fread		equ	fclose+4
fwrite		equ	fread+4
fsize		equ	fwrite+4
fseek		equ	fsize+4
setpath		equ	fseek+4
ppppath		equ	setpath+4
prtnpath	equ	ppppath+4

pagetitle	equ	prtnpath+4	;string for title to current page


font	equ	0
attr	equ	4
xpoint	equ	8
ypoint	equ	12


*
* printer type's are
*
PRT_PALET	equ	0	;N/A		;RGB pallet only!
PRT_BW		equ	1	;implemented
PRT_RGB		equ	2	;N/A
PRT_RGBW	equ	3	;N/A
PRT_CMY		equ	4	;implemented
PRT_CMYK	equ	5	;implemented

* for special devices
PRT		equ	1

* for normal devices
PARALLEL	equ	1
SERIAL		equ	2
DISK		equ	4

* for both
ASCENDING	equ	16
DESCENDING	equ	32
COLLATE		equ	256
