**********************************************************************
*            ADDITIONAL PRINTER DRIVER MACROS
*
*    These macros were extracted from exec/strings.i, exec/libraries.i,
*    devices/prtbase.i and macros.i to speed up the compilation of printer
*    driver assembler modules.
*
**********************************************************************

*--------------------------*
*			   *
*   String Support Macros  *
*			   *
*--------------------------*

STRING      MACRO
            DC.B    \1
            DC.B    0
            CNOP    0,2
            ENDM

*--------------------------*
*			   *
*Function Invocation Macros*
*			   *
*--------------------------*

*------ CALLLIB for calling functions where A6 is already correct:

CALLLIB     MACRO   * functionOffset
        IFGT NARG-1
            FAIL    !!! CALLLIB MACRO - too many arguments !!!
        ENDC
            JSR     \1(A6)
            ENDM

*------ LINKLIB for calling functions where A6 is incorrect:

LINKLIB     MACRO   * functionOffset,libraryBase
        IFGT NARG-2
            FAIL    !!! LINKLIB MACRO - too many arguments !!!
        ENDC
            MOVE.L  A6,-(SP)
            MOVE.L  \2,A6
            CALLLIB \1
            MOVE.L  (SP)+,A6
            ENDM

*--------------------------*
*			   *
*  Printer Device Macros   *
*			   *
*--------------------------*

*---- external definition macros -------------------------------

XREF_EXE	MACRO
	XREF		_LVO\1
		ENDM

XREF_GFX	MACRO
	XREF		_LVO\1
		ENDM

*---- library dispatch macros ----------------------------------

CALLEXE		MACRO
		CALLLIB _LVO\1
		ENDM

LINKEXE		MACRO
		LINKLIB _LVO\1,_SysBase
		ENDM

LINKGFX		MACRO
		LINKLIB _LVO\1,_GfxBase
		ENDM

*--------------------------*
*			   *
*     Printer Constants    *
*			   *
*--------------------------*

*------PRINTER CLASS-------*

PPC_BWALPHA    EQU	0	;alphanumerics, no graphics
PPC_BWGFX      EQU	1	;black & white (only) graphics
PPC_COLORGFX   EQU	3	;colour (and maybe) B&W graphics

*-------COLOUR CLASS-------*

PCC_BW          EQU     1	;Black and white only
PCC_YMC         EQU     2	;Yellow,magenta,cyan only
PCC_YMC_BW      EQU     3	;Yellow or black & white (but not both)
PCC_YMCB        EQU     4	;Yellow,magenta,cyan,black

PCC_4COLOR      EQU     $4      ; a flag for YMCB and BGRW
