*%%
*%% HP LaserJet 8100 Series PCL
*%%
*%% Copyright 1998 - 1999, Microsoft Corp.
*%% All Rights Reserved.
*%%

*%%
*%% Global Entries
*%%
*GPDSpecVersion: "1.0"
*GPDFileVersion: "1.0"
*GPDFileName: "HPLJ81P6.GPD"
*ModelName:   "HP LaserJet 8100 Series PCL6"
*MaxCopies: 999
*PrintRate: 32
*PrintRateUnit: PPM
*PrintRatePPM: 32

*%%% ======================
*%%% Include standard GPD files
*%%% =====================
*Include: "StdNames.gpd"
*Include: "ttfsub.gpd"


*MasterUnits: PAIR(1200, 1200)
*CodePage: 1252
*ResourceDLL: "pclxl.dll"
*PrinterType: PAGE
*% *FontCartSlots: 3
*Personality: =PERSONALITY_PCLXL
*%%%rcPersonalityID: =PERSONALITY_PCLXL_DISPLAY
*%%% *rcPrinterIconID:
*%%% *HelpFile:

*%%% ======================
*%%% Macros
*%%% ======================
*Include: "pjl.gpd"
*Include: "p6font.gpd"
*Include: "p6disp.gpd"

*%%% ======================
*%%% Main
*%%% ======================
*Include: "pclxl.gpd"

*%%% ======================
*%%% DOC_SETUP, PAGE_FINISH
*%%% , JOB_FINISH
*%%% ======================
*Macros: PCLXLCommand
{
*%%% ---------------------------------------------------------------------------
*%%% PCL XL Stream Header
*%%% ---------------------------------------------------------------------------
PCLXL_StreamHeader: ") HP-PCL XL;2;0;"
+                   "Comment Copyright(c) 1999 Microsoft Corporation<0A>"

PCLXL_OpenDataSource: =ubyte "<00>" =attr_ubyte =SourceType =ubyte "<01>" =attr_ubyte =DataOrg =OpenDataSource

*%%% ---------------------------------------------------------------------------
*%%% BeginSession
*%%%     Measure(ubyte) & UnitsPerMeasure(uint16_xy) & {ErrorReport(ubyte)}
*%%% ---------------------------------------------------------------------------
PCLXL_BeginSession1200: =uint16_xy "<b004b004>" =attr_ubyte =UnitsPerMeasure =ubyte
+ =eInch =attr_ubyte =Measure =ubyte =eBackChAndErrPage =attr_ubyte =ErrorReport =BeginSession

PCLXL_BeginSession600: =uint16_xy "<58025802>" =attr_ubyte =UnitsPerMeasure =ubyte
+ =eInch =attr_ubyte =Measure =ubyte =eBackChAndErrPage =attr_ubyte =ErrorReport =BeginSession

PCLXL_BeginSession300: =uint16_xy "<2c012c01>" =attr_ubyte =UnitsPerMeasure =ubyte
+ =eInch =attr_ubyte =Measure =ubyte =eBackChAndErrPage =attr_ubyte =ErrorReport =BeginSession

Width: %m{ RasterDataWidthInBytes }
Height: %m{ RasterDataHeightInPixels }
DataSize: %l{ NumOfDataBytes }
FntHeight: %l{ FontHeight*600/TextYRes }
FntNextGlyph: %l{ NextGlyph }

*%%% ---------------------------------------------------------------------------
*%%% BeginRaster
*%%%     ColorDepth(ubyte) & ColorMapping(ubyte) & SourceWidth(uint16) &
*%%%     SourceWidth(uint16) & SourceHeight(uint16)
*%%% ---------------------------------------------------------------------------
PCLXL_CmdBeginRaster: =ubyte =e1Bit =attr_ubyte =ColorDepth
+                     =ubyte =eDirectPixel =attr_ubyte =ColorMapping
+                     =uint16 =Width =attr_ubyte =SourceWidth
+                     =uint16 =Height =attr_ubyte =SourceHeight
+                     =uint16_xy =Width =Height =attr_ubyte =DestinationSize
+                     =BeginImage
+                     =ubyte =eNoCompression =attr_ubyte =CompressMode
+                     =ubyte "<00>" =attr_ubyte =StartLine
+                     =uint16 =Height =attr_ubyte =BlockHeight
+                     =ReadImage

PCLXL_CmdSendBlockData: =dataLength =DataSize "<0000>"

DestinationX: %l{DestX}
DestinationY: %l{DestY}
DestinationXRel: %l{DestYRel}
DestinationYRel: %l{DestXRel}
NumOfCopy: %l{NumOfCopies}
PrintDir: %l{PrintDirInCCDegrees}
FntName: =ubyte_array =uint16 "<1000>" "MS PCLXLFont " %3d{CurrentFontID}
}

*Command: CmdStartJob
{
    *Order: JOB_SETUP.1
    *Cmd: =PJL_STARTJOB =PJL_COMMENT 
}

*%%% ======================
*%%% Features and Options
*%%% ======================

*%%% ======================
*%%% DOC_SETUP
*%%% ======================

*%%% ======================
*%%% DOC_SETUP.1
*%%% START PLJ JOB
*%%% PAGEPROTECT
*%%% TIMEOUT
*Feature: PageProtect
{
    *rcNameID: =PAGE_PROTECTION_DISPLAY
    *DefaultOption: OFF
    *Option: ON
    {
        *rcNameID: =ON_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.2
            *Cmd: =PJL_PAGEPROTECT_ON =PJL_TIMEOUT_90
        }
    }
    *Option: OFF
    {
        *rcNameID: =OFF_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.2
            *Cmd: =PJL_PAGEPROTECT_OFF =PJL_TIMEOUT_90
        }
    }
}
*%%% ======================
*%%% DOC_SETUP.2
*%%% ECONOMODE
*Feature: Economode
{
    *rcNameID: =ECONOMODE_DISPLAY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: =ECONOMODE_DEFAULT_DISPLAY
    }
    *Option: Option2
    {
        *rcNameID: =ECONOMODE_OFF_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.3
            *Cmd: =PJL_ECONOMODE_OFF
        }
    }
    *Option: Option3
    {
        *rcNameID: =ECONOMODE_ON_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.3
            *Cmd: =PJL_ECONOMODE_ON
        }
    }
}

*%%% ======================
*%%% DOC_SETUP.3
*%%% RET
*Feature: RET
{
    *rcNameID: =PRINT_QUALITY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: =PRINT_QUALITY_DEFAULT
    }
    *Option: Option2
    {
        *rcNameID: =PRINT_QUALITY_LIGHT
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.4
            *Cmd: =PJL_RET_LIGHT
        }
    }
    *Option: Option3
    {
        *rcNameID: =PRINT_QUALITY_MEDIUM
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.4
            *Cmd: =PJL_RET_MEDIUM
        }
    }
    *Option: Option4
    {
        *rcNameID: =PRINT_QUALITY_DARK
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.4
            *Cmd: =PJL_RET_DARK
        }
    }
    *Option: Option5
    {
        *rcNameID: =PRINT_QUALITY_OFF
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.4
            *Cmd: =PJL_RET_OFF
        }
    }
}

*%%% ======================
*%%% DOC_SETUP.4
*%%%     RESOLUTION
*%%%     ENTER LANGUAGE=PCLXL
*%%%     PCL XL Stream Header
*%%%     BeginSession
*%%% CmdEndRaster
*%%%     EndImage
*%%% CmdSendBlockData
*%%%     EndImage
*Feature: Resolution
{
    *rcNameID: =RESOLUTION_DISPLAY
    *DefaultOption: Option1
    *Option: Option1
    {
        *Name: "1200 x 1200 " =DOTS_PER_INCH
        *DPI: PAIR(1200, 1200)
        *TextDPI: PAIR(1200, 1200)
        *MinStripBlankPixels: 32
        EXTERN_GLOBAL: *StripBlanks: LIST(LEADING, ENCLOSED,TRAILING)
        *SpotDiameter: 120
        *Command: CmdBeginRaster
        {
            *Cmd : =PCLXL_CmdBeginRaster
        }

        *Command: CmdSendBlockData
        {
            *Cmd : =PCLXL_CmdBeginRaster =PCLXL_CmdSendBlockData
        }

        *% EndImage(0xb2)
        *%
        *Command: CmdEndBlockData { *Cmd : =EndImage}

        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: =PJL_RESOLUTION_1200 =PJL_ENTER_PCLXL =PCLXL_StreamHeader =PCLXL_BeginSession1200 =PCLXL_OpenDataSource
        }
    }
    *Option: Option2
    {
        *Name: "600 x 600 " =DOTS_PER_INCH
        *DPI: PAIR(600, 600)
        *TextDPI: PAIR(600, 600)
        *MinStripBlankPixels: 32
        EXTERN_GLOBAL: *StripBlanks: LIST(ENCLOSED,TRAILING)
        *SpotDiameter: 100
        *Command: CmdBeginRaster
        {
            *Cmd : =PCLXL_CmdBeginRaster
        }

        *Command: CmdEndRaster { *Cmd : =EndImage }
        *Command: CmdSendBlockData
        {
            *Cmd: =PCLXL_CmdSendBlockData
        }

        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: =PJL_RESOLUTION_600 =PJL_BITSPERPIXEL_2 =PJL_ENTER_PCLXL =PCLXL_StreamHeader =PCLXL_BeginSession600 =PCLXL_OpenDataSource
        }
    }
    *Option: Option3
    {
        *Name: "300 x 300 " =DOTS_PER_INCH
        *DPI: PAIR(300, 300)
        *TextDPI: PAIR(300, 300)
        *MinStripBlankPixels: 32
        EXTERN_GLOBAL: *StripBlanks: LIST(ENCLOSED,TRAILING)
        *SpotDiameter: 100
        *Command: CmdBeginRaster
        {
            *Cmd : =PCLXL_CmdBeginRaster
        }

        *Command: CmdEndRaster { *Cmd : =EndImage }
        *Command: CmdSendBlockData
        {
            *Cmd: =PCLXL_CmdSendBlockData
        }

        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: =PJL_RESOLUTION_300 =PJL_BITSPERPIXEL_2 =PJL_ENTER_PCLXL =PCLXL_StreamHeader =PCLXL_BeginSession300 =PCLXL_OpenDataSource
        }
    }
}

*Feature: Orientation
{
    *rcNameID: =ORIENTATION_DISPLAY
    *DefaultOption: PORTRAIT
    *Option: PORTRAIT
    {
        *rcNameID: =PORTRAIT_DISPLAY
    }
    *Option: LANDSCAPE_CC90
    {
        *rcNameID: =LANDSCAPE_DISPLAY
    }
}

*%%% ======================
*%%% PAGE_FINISH
*%%% ======================

*%%% ======================
*%%% PAGE_FINISH.3
*%*Command: CmdEndPage
*%{
*%    *Order: PAGE_FINISH.1
*%    *Cmd: =uint16 =NumOfCopy =attr_ubyte =PageCopies =EndPage
*%}

*%%% ======================
*%%% JOB_FINISH.1
*%%% CmdEndJob
*Command: CmdEndJob
{
    *Order: JOB_FINISH.1
    *Cmd: =CloseDataSource =EndSession =PJL_ENDJOB
}

*%%% ======================
*%%% PAGE_SETUP
*%%% ======================

*% define macro for common paper constraints
*BlockMacro: PaperConstraints
{
    *Constraints: LIST(InputBin.UPPER, InputBin.LOWER, InputBin.Option8, InputBin.Option9 ,InputBin.Option10)
}

*%%% ======================
*%%% PAGE_SETUP.1
*%%% BeginPage(0x43)
*%%%     Orientation(40), MediaSize(37), MediaSource(38)
*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *DefaultOption: LETTER
    *Option: LETTER
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(9600, 12648)
                *PrintableOrigin: PAIR(300, 260)
                *CursorOrigin: PAIR(300, 220)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLetterPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

		*% calculate 5760 = 9600 * 720 decipoints per inch / 1200dpi
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9760, 12688)
                *PrintableOrigin: PAIR(200, 272)
                *CursorOrigin: PAIR(200, 12960)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLetterPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: LEGAL
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 5230
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(9600, 16248)
                *PrintableOrigin: PAIR(300, 215)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLegalPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9760, 16284)
                *PrintableOrigin: PAIR(200, 276)
                *CursorOrigin: PAIR(200, 16560)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLegalPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: EXECUTIVE
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8100, 12048)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sExecPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(8220, 12080)
                *PrintableOrigin: PAIR(240, 280)
                *CursorOrigin: PAIR(200, 12360)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sExecPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: 11X17
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *% I pulled this size's values from 4v gpd
        *PageProtectMem: 9350
        *Constraints: LIST(InputBin.UPPER, InputBin.ENVFEED,InputBin.Option8)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(12600, 19860)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLedgerPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(12760, 19920)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 20160)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sLedgerPaper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }

    *Option: A4
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4249
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(9292, 13476)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 200)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(9464, 13516)
                *PrintableOrigin: PAIR(220, 272)
                *CursorOrigin: PAIR(200, 13788)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: ENV_10
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4296, 10800)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 160)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sCOM10Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4356, 10800)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(200, 11100)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sCOM10Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: ENV_DL
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(4596, 9782)
                *PrintableOrigin: PAIR(300, 260)
                *CursorOrigin: PAIR(300, 160)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sDLEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4596, 9792)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(200, 10092)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sDLEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: ENV_MONARCH
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(3996, 8400)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 200)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sMonarchEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(4056, 8400)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(200, 8700)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sMonarchEnvelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: ENV_B5
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(7716, 11368)
                *PrintableOrigin: PAIR(300, 140)
                *CursorOrigin: PAIR(300, 140)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sB5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(7776, 11208)
                *PrintableOrigin: PAIR(240, 300)
                *CursorOrigin: PAIR(200, 11508)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sB5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: A3
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 9667
        *Constraints: LIST(InputBin.UPPER, InputBin.ENVFEED, InputBin.Option8)
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(13428, 19308)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA3Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(13588, 19368)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 19608)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA3Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: B4
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 6391
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(11544, 16656)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sJB4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(11704, 16716)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 16956)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sJB4Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: A5
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *Constraints: InputBin.ENVFEED
        *InsertBlock: =PaperConstraints
        *PageProtectMem: 2125
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(6396, 9494)
                *PrintableOrigin: PAIR(300, 152)
                *CursorOrigin: PAIR(300, 152)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(6456, 9324)
                *PrintableOrigin: PAIR(240, 300)
                *CursorOrigin: PAIR(200, 9624)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sA5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: B5
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 3198
        *InsertBlock: =PaperConstraints
        *Constraints: InputBin.ENVFEED
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8004, 11604)
                *PrintableOrigin: PAIR(300, 280)
                *CursorOrigin: PAIR(300, 260)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sJB5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(8144, 11664)
                *PrintableOrigin: PAIR(220, 240)
                *CursorOrigin: PAIR(200, 11904)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sJB5Paper =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: ENV_C5
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(7036, 10224)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sC5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((284*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(7056, 10224)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(200, 10524)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =sC5Envelope =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((236*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: DBL_JAPANESE_POSTCARD_ROTATED
    {
        *rcNameID: =RCID_DMPAPER_SYSTEM_NAME
        *PageProtectMem: 4109
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *InsertBlock: =PaperConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(6376,8856)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte =eJDoublePostcard =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((300*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(6396, 8856)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(200, 9156)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte =eJDoublePostcard =attr_ubyte =MediaSize =BeginPage
+                         =sint16_xy %l{((240*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
    *Option: 8K
    {
        *Name: "8K"
        *Constraints: InputBin.ENVFEED
        *PageDimensions: PAIR(12900, 18600)
        *PageProtectMem: 4109
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(12300, 18000)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0500>" "ROC8K" =attr_ubyte =MediaSize
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(12500, 18120)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 18360)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0500>" "ROC8K" =attr_ubyte =MediaSize
                }
            }
        }
    }
    *Option: 16K
    {
        *Name: "16K"
        *Constraints: InputBin.ENVFEED
        *PageDimensions: PAIR(9300, 12900)
        *PageProtectMem: 4109
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(8700, 12300)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0600>" "ROC16K" =attr_ubyte =MediaSize
                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(8900, 12420)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 12660)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0600>" "ROC16K" =attr_ubyte =MediaSize
                }
            }
        }
    }
	*Option: EXECUTIVE_JIS
	{
		*rcNameID: =EXECTUTIVE_JIS_DISPLAY
		*PageDimensions: PAIR(10200, 15588)
		*Constraints: InputBin.ENVFEED
		*PageProtectMem: 4109
		*switch: Orientation
		{
			*case: PORTRAIT
			{
                *PrintableArea: PAIR(9600, 14988)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0700>" "JISEXEC" =attr_ubyte =MediaSize
				}
			}
			*case: LANDSCAPE_CC90
			{
                *PrintableArea: PAIR(9800, 15108)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 15348)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.1
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                         =ubyte_array =uint16 "<0700>" "JISEXEC" =attr_ubyte =MediaSize
                }
			}
		}
	}
    *Option: CUSTOMSIZE
    {
        *rcNameID: =USER_DEFINED_SIZE_DISPLAY
        *MinSize: PAIR(4200,9000)
        *MaxSize: PAIR(14040, 21240)
        *MaxPrintableWidth: 14040
        *MinLeftMargin: 100
        *CenterPrintable?: FALSE
        *PageProtectMem: 1692
        *Constraints: InputBin.ENVFEED
        *InsertBlock: =PaperConstraints
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *CustCursorOriginX:  %d{((PhysPaperWidth - 14040) / 2) +300}
                *CustCursorOriginY:   %d{180 }
                *CustPrintableOriginX:  %d{300}
                *CustPrintableOriginY:  %d{300}
                *CustPrintableSizeX:   %d{ PhysPaperWidth - 600 }
                *CustPrintableSizeY:  %d{ PhysPaperLength - 600 }
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+                         =uint16_xy %l{PhysPaperWidth / 1200}%l{PhysPaperLength / 1200} =attr_ubyte =CustomMediaSize
+                         =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                         =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *switch:  Option20
                {
                *% The printer firmware rotates the landscape job 180 if a stapler is attached so that the staple
                *% can be placed in the top left corner of the document. The printer will always rotate
                *% the landscape job even if stapling is not selected.
                    *case: 3KStapler
                    {
                        *CustCursorOriginX:  %d{((PhysPaperWidth - 14040) / 2) +200 }
                        *CustCursorOriginY:   %d{PhysPaperLength}
                        *CustPrintableOriginX:  %d{200}
                        *CustPrintableOriginY:  %d{240}
                        *CustPrintableSizeX:   %d{ PhysPaperWidth - 400 }
                        *CustPrintableSizeY:  %d{ PhysPaperLength - 480 }

                        *Command: CmdSelect
                        {
                            *Order: PAGE_SETUP.3
                            *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                                 =uint16_xy %l{PhysPaperWidth / 1200}%l{PhysPaperLength / 1200} =attr_ubyte =CustomMediaSize
+                                 =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                                 =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                        }
                    }
                    *case: MBM5S
                    {
                        *CustCursorOriginX:  %d{((PhysPaperWidth - 14040) / 2) +200 }
                        *CustCursorOriginY:   %d{PhysPaperLength}
                        *CustPrintableOriginX:  %d{200}
                        *CustPrintableOriginY:  %d{240}
                        *CustPrintableSizeX:   %d{ PhysPaperWidth - 400 }
                        *CustPrintableSizeY:  %d{ PhysPaperLength - 480 }

                        *Command: CmdSelect
                        {
                            *Order: PAGE_SETUP.3
                            *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                                 =uint16_xy %l{PhysPaperWidth / 1200}%l{PhysPaperLength / 1200} =attr_ubyte =CustomMediaSize
+                                 =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                                 =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                        }
                    }
                    *default
                    {
                        *CustCursorOriginX:  %d{((PhysPaperWidth - 14040) / 2) +200 }
                        *CustCursorOriginY:   %d{21000}
                        *CustPrintableOriginX:  %d{200}
                        *CustPrintableOriginY:  %d{240}
                        *CustPrintableSizeX:   %d{ PhysPaperWidth - 400 }
                        *CustPrintableSizeY:  %d{ PhysPaperLength - 480 }

                        *Command: CmdSelect
                        {
                            *Order: PAGE_SETUP.3
                            *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+                                 =uint16_xy %l{PhysPaperWidth / 1200}%l{PhysPaperLength / 1200} =attr_ubyte =CustomMediaSize
+                                 =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                                 =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                        }
                    }
                } *% switch Option20
           } *% case LAND
        } *% switch Orientation
    }
    *Option: MyMax117x177
    {
        *% Maximum 11.7 x17.7
        *rcNameID: =MAX_117_177_DISPLAY
        *PageDimensions: PAIR(14040, 21240)
        *PageProtectMem: 10000
        *Constraints: InputBin.ENVFEED
        *InsertBlock: =PaperConstraints
        *Constraints: Duplex.VERTICAL
        *Constraints: Duplex.HORIZONTAL
        *switch: Orientation
        {
            *case: PORTRAIT
            {
                *PrintableArea: PAIR(13420, 20640)
                *PrintableOrigin: PAIR(300, 300)
                *CursorOrigin: PAIR(300, 180)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =ePortraitOrientation =attr_ubyte =Orientation
+					      =real32_xy "<33333b41>" "<9a998d41>" =attr_ubyte =CustomMediaSize
+						  =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                         =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
            *case: LANDSCAPE_CC90
            {
                *PrintableArea: PAIR(13600, 20760)
                *PrintableOrigin: PAIR(200, 240)
                *CursorOrigin: PAIR(200, 21000)
                *Command: CmdSelect
                {
                    *Order: PAGE_SETUP.3
                    *Cmd: =ubyte =eLandscapeOrientation =attr_ubyte =Orientation
+					      =real32_xy "<33333b41>" "<9a998d41>" =attr_ubyte =CustomMediaSize
+						  =ubyte =eInch =attr_ubyte =CustomMediaSizeUnits =BeginPage
+                         =sint16_xy %l{((200*TextXRes)/1200)}%l{((200*TextYRes)/1200)} =attr_ubyte =PageOrigin =SetPageOrigin

                }
            }
        }
    }
}
*%%%     ubyte            ubyte          ubyte

*% MPH: attempt to add media type selection
*Feature: MediaType
{
    *rcNameID: =MEDIA_TYPE_DISPLAY
    *DefaultOption: AutoSelect

    *Option: AutoSelect
    {
        *rcNameID: =AUTO_SELECT_DISPLAY
    }
    *Option: Plain
    {
        *rcNameID: =PLAIN_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0500>" =ePlain =attr_ubyte =MediaType
        }
    }
    *Option: Preprinted
    {
        *rcNameID: =PREPRINTED_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0a00>" =ePreprinted =attr_ubyte =MediaType
        }
    }
    *Option: Letterhead
    {
        *rcNameID: =LETTERHEAD_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0a00>" =eLetterhead =attr_ubyte =MediaType
        }
    }
    *Option: Transparency
    {
        *rcNameID: =TRANSPARENCY_DISPLAY
	*Constraints: LIST(Duplex.VERTICAL,Duplex.HORIZONTAL)
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0c00>" =eTransparency =attr_ubyte =MediaType
        }
    }
    *Option: Prepunched
    {
        *rcNameID: =PREPUNCHED_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0a00>" =ePrepunched =attr_ubyte =MediaType
        }
    }
    *Option: Labels
    {
        *rcNameID: =LABELS_DISPLAY
	*Constraints: LIST(Duplex.VERTICAL,Duplex.HORIZONTAL)
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0600>" =eLabels =attr_ubyte =MediaType
        }
    }
    *Option: Bond
    {
        *rcNameID: =BOND_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0400>" =eBond =attr_ubyte =MediaType
        }
    }
    *Option: Recycled
    {
        *rcNameID: =RECYCLED_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0800>" =eRecycled =attr_ubyte =MediaType
        }
    }
    *Option: Color
    {
        *rcNameID: =COLOR_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0500>" =eColor =attr_ubyte =MediaType
        }
    }
    *Option: CardStock
    {
        *rcNameID: =CARDSTOCK_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.3
            *Cmd: =ubyte_array =uint16 "<0a00>" =eCardstock =attr_ubyte =MediaType
        }
    }
}


*Feature: PrinterHardDisk
{
	*rcNameID: =PRINTER_HARDDISK_DISPLAY
	*FeatureType: PRINTER_PROPERTY
	*DefaultOption: FALSE
	*Option: FALSE
	{
		*rcNameID: =NOT_INSTALLED_DISPLAY
		*Constraints: LIST(JobRetention.Option2, JobRetention.Option3, JobRetention.Option4)
	}
	*Option: TRUE
	{
		*rcNameID: =INSTALLED_DISPLAY
	}
}


*Feature: JobRetention
{
    *rcNameID: =JOB_RETENTION_DISPLAY *% Job Retention
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: =OFF_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.6
            *Cmd: "@PJL SET HOLD=OFF<0A>"
        }
    }
    *Option: Option2
    {
        *rcNameID: =QUICK_COPY_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.6
            *Cmd: "@PJL SET HOLD=ON<0A>"
        }
    }
    *Option: Option3
    {
        *rcNameID: =PROOF_HOLD_DISPLAY
        *Command: CmdSelect
        {
           *Order: JOB_SETUP.6
            *Cmd: "@PJL SET HOLD=PROOF<0A>"
        }
    }
    *Option: Option4
    {
        *rcNameID: =STORE_JOB_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.6
            *Cmd: "@PJL SET HOLD=STORE<0A>"
         }
      }
}

*Feature: JobRetentionUserID
{
    *rcNameID: =JOB_RETENTION_USERID_DISPLAY *%"Job Retention User ID"
    *DefaultOption: Option1
    *Option: Option1
    {
        *Name: "1"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>1<22><0A>"
        }
    }
    *Option: Option2
    {
        *Name: "2"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>2<22><0A>"
        }
    }
    *Option: Option3
    {
        *Name: "3"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>3<22><0A>"
        }
    }
    *Option: Option4
    {
        *Name: "4"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>4<22><0A>"
        }
    }
    *Option: Option5
    {
        *Name: "5"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>5<22><0A>"
        }
    }
    *Option: Option6
    {
        *Name: "6"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>6<22><0A>"
        }
    }
    *Option: Option7
    {
        *Name: "7"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>7<22><0A>"
        }
    }
    *Option: Option8
    {
        *Name: "8"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>8<22><0A>"
        }
    }
    *Option: Option9
    {
        *Name: "9"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>9<22><0A>"
        }
    }
    *Option: Option10
    {
        *Name: "10"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>10<22><0A>"
        }
    }
    *Option: Option11
    {
        *Name: "11"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>11<22><0A>"
        }
    }
    *Option: Option12
    {
        *Name: "12"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>12<22><0A>"
        }
    }
    *Option: Option13
    {
        *Name: "13"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>13<22><0A>"
        }
    }
    *Option: Option14
    {
        *Name: "14"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>14<22><0A>"
        }
    }
    *Option: Option15
    {
        *Name: "15"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>15<22><0A>"
        }
    }
    *Option: Option16
    {
        *Name: "16"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>16<22><0A>"
        }
    }
    *Option: Option17
    {
        *Name: "17"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>17<22><0A>"
        }
    }
    *Option: Option18
    {
        *Name: "18"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>18<22><0A>"
        }
    }
    *Option: Option19
    {
        *Name: "19"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>19<22><0A>"
        }
    }
    *Option: Option20
    {
        *Name: "20"
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.7
            *Cmd: "@PJL SET USERNAME=<22>20<22><0A>"
        }
    }
}

*%%% ======================
*%%% PAGE_SETUP.2
*%%% BeginPage(0x43)
*%%%     Orientation(0x40), MediaSize(0x37), MediaSource(0x38)
*%%%     ubyte               ubyte             ubyte
*%%%     MediaSource
*Feature: InputBin{ *Option: Option1{} *Option: Option7{} *Option: UPPER{} *Option: LOWER{} *Option: Option10{} *Option: Option8{} *Option: Option9{} *Option: MANUAL{} *Option: ENVFEED{} }
*Feature: InputBin
{
    *rcNameID: =PAPER_SOURCE_DISPLAY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: =AUTO_SELECT_DISPLAY  *% Automatically Select
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eAutoSelect =attr_ubyte =MediaSource
        }
    }
    *Option: UPPER
    {
        *rcNameID: =TRAY2_DISPLAY *% Upper Paper tray
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eUpperCassette =attr_ubyte =MediaSource
        }
    }
    *Option: MANUAL
    {
        *rcNameID: =MANUAL_FEED_TRAY1_DISPLAY *% Manual Paper feed
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eManualFeed =attr_ubyte =MediaSource
        }
    }

    *Option: ENVFEED
    {
        *rcNameID: =ENVELOPE_FEEDER_DISPLAY  *% Envelope Feeder
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eEnvelopeTray =attr_ubyte =MediaSource
        }
    }
    *Option: LOWER
    {
        *rcNameID: =TRAY3_DISPLAY *% Lower Paper tray
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eLowerCassette =attr_ubyte =MediaSource
        }
    }
    *Option: Option7
    {
        *rcNameID: =TRAY1_DISPLAY  *% MP Tray
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte =eManualFeed =attr_ubyte =MediaSource
        }
    }

    *Option: Option8
    {
        *rcNameID: =TRAY4_DISPLAY *% tray 4
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte "<08>" =attr_ubyte =MediaSource
        }
    }
	*Option: Option9
    {
        *rcNameID: =TRAY5_DISPLAY *% tray 5
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte "<09>" =attr_ubyte =MediaSource
        }
    }
	*Option: Option10
    {
        *rcNameID: =TWO_K_SHEET_INPUT_TRAY_DISPLAY *%2K tray 4
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
			*Cmd: =ubyte "<08>" =attr_ubyte =MediaSource
        }
    }
}


*% IMPORTANT NOTE:
*% The OEM customization code assumes that this feature's keyname is
*%   "EnvFeeder"
*% The OEM customization code assumes that the options are named "TRUE" and
*%   "FALSE"
*%
*% explicit feature to constrain env feeder
*Feature: EnvFeeder
{
	*rcNameID: =ENV_FEED_DISPLAY
	*FeatureType: PRINTER_PROPERTY
	*DefaultOption: FALSE
	*Option: FALSE
	{
		*rcNameID: =NOT_INSTALLED_DISPLAY
		*Constraints: InputBin.ENVFEED
	}
	*Option: TRUE
	{
		*rcNameID: =INSTALLED_DISPLAY
	}
}

*% IMPORTANT NOTE:
*% The OEM customization code assumes that this feature's keyname is
*%   "HCI"
*% The OEM customization code assumes that the options are named "TRUE" and
*%   "FALSE"
*%
*Feature: HCI
{
    *rcNameID: =HIGH_CAP_INPUT_DISPLAY   *%High Capacity Input
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: NONE
    *Option: NONE
    {
        *rcNameID: =NOT_INSTALLED_DISPLAY
        *Constraints: LIST(InputBin.Option8,InputBin.Option9,InputBin.Option10)

    }
    *Option: 2X500HCI
    {
        *rcNameID: =TWO_500_SHEET_INPUT_TRAY_DISPLAY
		*Constraints: InputBin.Option10
    }
    *Option: 2000HCI
    {
        *rcNameID: =TWO_K_SHEET_INPUT_TRAY4_DISPLAY
		*Constraints: LIST(InputBin.Option8,InputBin.Option9)
    }
}

*%%% ======================
*%%% PAGE_SETUP.3
*%%% DuplexPageMode(53(0x35))
*Feature: Duplex
{
    *rcNameID: =TWO_SIDED_PRINTING_DISPLAY
    *DefaultOption: NONE
    *Option: NONE
    {
        *rcNameID: =NONE_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: "@PJL SET DUPLEX=OFF<0A>"
        }
    }
    *Option: VERTICAL
    {
        *rcNameID: =FLIP_ON_LONG_EDGE_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: "@PJL SET DUPLEX=ON<0A>@PJL SET BINDING=LONGEDGE<0A>"
        }
    }
    *Option: HORIZONTAL
    {
        *rcNameID: =FLIP_ON_SHORT_EDGE_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.10
            *Cmd: "@PJL SET DUPLEX=ON<0A>@PJL SET BINDING=SHORTEDGE<0A>"
        }
    }
}

*%%% ======================
*%%% PAGE_SETUP.4
*%%% SetPageOrigin
*%%%     PageOrigin
*%%% SetPageScale
*% printer supports collation in harddisk and in ram
*% (see CopyCmd and PrinterHardDisk)
*Feature: Collate
{
    *rcNameID: 392 *% this shouldn't appear...

    *DefaultOption: OFF
    *Option: ON
    {
        *rcNameID: =ON_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.5
            *% Collate works with disk or Ram disk
            *% Printer will take care of collated copies
            *Cmd: "@PJL SET QTY=" %d{NumOfCopies}"<0A>"
        }
    }
    *Option: OFF
    {
        *rcNameID: =OFF_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.5
            *Cmd: "@PJL SET QTY=1<0A>"
        }
    }
}
*Command: CmdStartPage
{
    *Order: PAGE_SETUP.4
    *Cmd: =real32_xy "<0000803f><0000803f>" =attr_ubyte =PageScale =SetPageScale
+         =ubyte "<01>" =attr_ubyte =ColorSpace =SetColorSpace
}

*%%% ======================
*%%% PAGE_SETUP.5
*%%% Feature
*%%% Dither
*Feature: Dither
{
    *rcNameID: =DITHER_QUALITY_DISPLAY
    *DefaultOption: HIQUALITY
    *Option: HIQUALITY
    {
        *rcNameID: =DITHER_QUALITY_HIGH_DISPLAY
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.5
            *Cmd:
+         =ubyte "<00>" =attr_ubyte =DitherMatrixDataType
+         =uint16_xy "<10001000>" =attr_ubyte =DitherMatrixSize
+         =ubyte "<02>" =attr_ubyte =DitherMatrixDepth
+         =SetHalftoneMethod
+         =dataLength "<00010000>"
+         "<42786A3C2B1B1E2E4175673A2A1A1D2D>"
+         "<88FDE8531703042484F8E35116030424>"
+         "<99FFD45E1302072195FFCE5B12010721>"
+         "<4ABFAB36280B0F3248BAA735270A0E31>"
+         "<28171B2B3D6C5F3729191C2C3F716439>"
+         "<130203227AEBD64B1502032380F3DE4E>"
+         "<0F01051F8AFFC2551101062090FFC958>"
+         "<2525080B2F43AE9B3226090D3046B5A234>"
+         "<4073653A29191D2D4276693B2A1A1E2E>"
+         "<82F5E1501502042386FAE65216030424>"
+         "<92FFCC5A1101062097FFD15D12020721>"
+         "<47B8A435260A0D3049BDA936270A0E31>"
+         "<29181C2C3E6F623828181C2B3D6E6138>"
+         "<140203237EF0DB4D140203227CEED94C>"
+         "<1001051F8EFFC7571001051F8CFFC456>"
+         "<26090C2F45B3A0342525080C2F44B09D33>"
        }
    }
    *Option: LOQUALITY
    {
        *rcNameID: =DITHER_QUALITY_LOW_DISPLAY
    }
}

*Feature: Halftone
{
    *rcNameID: =HALFTONING_DISPLAY
    *DefaultOption: HT_PATSIZE_AUTO
    *Option: HT_PATSIZE_AUTO
    {
        *rcNameID: =HT_AUTO_SELECT_DISPLAY
    }
    *Option: HT_PATSIZE_SUPERCELL_M
    {
        *rcNameID: =HT_SUPERCELL_DISPLAY
    }
    *Option: HT_PATSIZE_6x6_M
    {
        *rcNameID: =HT_DITHER6X6_DISPLAY
    }
    *Option: HT_PATSIZE_8x8_M
    {
        *rcNameID: =HT_DITHER8X8_DISPLAY
    }
}

*%%% ======================
*%%% Feature
*%%% Memory
*Feature: Memory
{
    *rcNameID: =PRINTER_MEMORY_DISPLAY
    *DefaultOption: 16MB
*% Printer default is 16MB, 3 memory slots with 4,8,16,32 & 64 MB DIMMs available.
*%  Max is 192 (+16 on board) = 208
     *MemConfigMB: PAIR(16, 14)
    *MemConfigMB: PAIR(20, 17)
    *MemConfigMB: PAIR(24, 21)
    *MemConfigMB: PAIR(28, 24)
    *MemConfigMB: PAIR(32, 28)
    *MemConfigMB: PAIR(36, 31)
    *MemConfigMB: PAIR(40, 35)
    *MemConfigMB: PAIR(44, 39)
    *MemConfigMB: PAIR(48, 42)
    *MemConfigMB: PAIR(52, 46)
    *MemConfigMB: PAIR(56, 49)
    *MemConfigMB: PAIR(60, 52)
    *MemConfigMB: PAIR(64, 56)
    *MemConfigMB: PAIR(68, 60)
    *MemConfigMB: PAIR(72, 64)
    *MemConfigMB: PAIR(80, 71)
    *MemConfigMB: PAIR(84, 75)
    *MemConfigMB: PAIR(88, 78)
    *MemConfigMB: PAIR(92, 80)
    *MemConfigMB: PAIR(96, 85)
    *MemConfigMB: PAIR(100, 89)
    *MemConfigMB: PAIR(104, 92)
    *MemConfigMB: PAIR(112, 100)
    *MemConfigMB: PAIR(116, 101)
    *MemConfigMB: PAIR(120, 104)
    *MemConfigMB: PAIR(128, 111)
    *MemConfigMB: PAIR(144, 125)
    *MemConfigMB: PAIR(148, 129)
    *MemConfigMB: PAIR(152, 132)
    *MemConfigMB: PAIR(160, 139)
    *MemConfigMB: PAIR(176, 153)
    *MemConfigMB: PAIR(208, 180)
}

*% IMPORTANT NOTE:
*% The OEM customization code assumes that this feature's keyname is
*%   "DuplexUnit"
*% The OEM customization code assumes that the options are named "TRUE" and
*%   "FALSE"
*%
*% new explicit constraint (non synthesized) for Duplex
*Feature: DuplexUnit
{
    *rcNameID: =DUPLEX_UNIT_DISPLAY *% Duplex Unit
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: FALSE
    *Option: FALSE
    {
        *rcNameID: =NOT_INSTALLED_DISPLAY
        *DisabledFeatures: LIST(Duplex)
    }
    *Option: TRUE
    {
        *rcNameID: =INSTALLED_DISPLAY
    }
}

*% IMPORTANT NOTE:
*% The OEM customization code assumes that this feature's keyname is
*%   "Option21"
*% The OEM customization code assumes that the options are named "Mailbox",
*%   "Stacker" and "Separator"
*Feature: Option21
{
    *rcNameID: =MAILBOX_MODE_DISPLAY   *% Mailbox Mode
    *FeatureType: PRINTER_PROPERTY
    *Option: MailboxModeMailbox
    {
        *rcNameID: =MAILBOX_DISPLAY  *% Mailbox
    }
    *Option: MailboxModeStacker
    {
        *rcNameID: =STACKER_DISPLAY  *% Stacker
        *DisabledFeatures: LIST(Stapling)
    }
    *Option: MailboxModeSeparator
    {
        *rcNameID: =JOB_SEPARATOR_DISPLAY  *% Job Separator
        *DisabledFeatures: LIST(Stapling)
    }
    *Option: MailboxModeCollator
    {
        *rcNameID: =COLLATOR_DISPLAY  *% Collator
        *DisabledFeatures: LIST(Stapling)
    }
}

*% Feature that allows user to select which, if any, accessory output
*% bin is installed.
*% Called "Option20" because that's what PPD calls it.
*Feature: Option20
{
    *rcNameID: =ACC_OUTPUT_BIN_DISPLAY *% Accessory output bin
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Standard
    *Option: Standard
    {
         *DisabledFeatures: LIST(Stapling)
        *rcNameID: =LEFT_FACEUP_TRAY_DISPLAY *% Left Face Up
    }
    *Option: MBM5S
    {
        *rcNameID: =FIVE_BIN_MAILBOX_STAPLER_DISPLAY
    }
    *Option: MBM7
    {
         *DisabledFeatures: LIST(Stapling)
        *rcNameID: =SEVEN_BIN_MAILBOX_DISPLAY *% "7-Bin Multi-Bin Mailbox"
    }
    *Option: MBM8
    {
        *rcNameID: =EIGHT_BIN_MULTIBIN_MAILBOX_DISPLAY
        *DisabledFeatures: LIST(Stapling)
    }
    *Option: 3KStacker
    {
        *DisabledFeatures: LIST(Stapling)
        *rcNameID: =HP3000_STACKER_DISPLAY
    }
    *Option: 3KStapler
    {
        *rcNameID: =HP3000_STAPLER_STACKER_DISPLAY
    }
    *Option: None
    {
        *rcNameID: =NOT_INSTALLED_DISPLAY
    }
}

*% define stapling capability for directory services and for 3000 sheet stacker/stapler
*% + The OEMUI DLL will hide this from the Doc Defaults Advanced tree-view unless
*% + 3000 sheet stacker/stapler is installed.  For 5MBMS
*% + the user selects stapling from Output Bin (Stapler).
*Feature: Stapling
{
    *rcNameID: =STAPLER_DISPLAY *% Stapler
    *DefaultOption: 1parallel
    *Option: 1diagonal
    {
	*%"One Staple Angled"
            *rcNameID: =ONE_STAPLE_ANGLED_DISPLAY
   }
    *Option: 1parallel
    {
	*% "One Staple"
            *rcNameID: =ONE_STAPLE_DISPLAY
    }
    *Option: 2parallel
    {
	*% "Two Staples"
            *rcNameID: =TWO_STAPLES_DISPLAY
    }
    *Option: 3parallel
    {
	*% "Three Staples"
            *rcNameID: =THREE_STAPLES_DISPLAY
 }
    *Option: Stitching
    {
	*% "Six Staples"
            *rcNameID: =SIX_STAPLES_DISPLAY
    }
    *Option: Custom
    {
	*% "Custom"
            *rcNameID: =CUSTOM_DISPLAY
   }
}

*% IMPORTANT NOTE:
*% The OEM customization code that goes with this minidriver (hp5si5ui.dll)
*% assumes that all these output bins are defined and are defined in the
*% current order.  (Don't change it!)  These are hard-coded defines in
*% the OEM code.
*% define the order the output bins appear in the UI
*Feature: OutputBin{ *Option:Option1{} *Option:Option2{} *Option:Option3{} *Option:Option4{}
	*Option:Option5{} *Option:Option6{} *Option:Option7{} *Option:Option8{} *Option:Option9{}
	*Option:Option10{} *Option:Option11{} *Option:Option12{} *Option:Option13{} *Option:Option14{}
	*Option:Option15{} *Option:Option16{} *Option:Option17{}}

*Feature: OutputBin
{
    *rcNameID: =OUTPUTBIN_DISPLAY
    *DefaultOption: Option1
    *Option: Option1
    {
        *% Auto Select
        *rcNameID: =AUTO_SELECT_DISPLAY
        *Command: CmdSelect
        {
        }
    }
    *Option: Option2
    {
        *% Top Face-Down
        *rcNameID: =TOP_FD_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=UPPER<0A>"
        }
    }
    *Option: Option3
    {
        *% Left Face-Up
        *rcNameID: =LEFT_FU_DISPLAY
        *OutputOrderReversed?:  TRUE
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=LOWER<0A>"
        }
    }
    *Option: Option4
    {
        *% HCO Face-Up
        *rcNameID: =HCO_FU_DISPLAY
        *OutputOrderReversed?:  TRUE
   *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN1<0A>"
        }
    }
    *Option: Option5
    {
        *% Mailbox 1
        *rcNameID: =MAILBOX1_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>"
        }
    }
    *Option: Option6
    {
        *% Mailbox 2
        *rcNameID: =MAILBOX2_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>"
        }
    }
    *Option: Option7
    {
        *% Mailbox 3
        *rcNameID: =MAILBOX3_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN4<0A>"
        }
    }
    *Option: Option8
    {
        *% Mailbox 4
        *rcNameID: =MAILBOX4_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN5<0A>"
        }
    }
    *Option: Option9
    {
        *% Mailbox 5
        *rcNameID: =MAILBOX5_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN6<0A>"
        }
    }
    *Option: Option10
    {
        *% Mailbox 6
        *rcNameID: =MAILBOX6_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN7<0A>"
        }
    }
    *Option: Option11
    {
        *% Mailbox 7
        *rcNameID: =MAILBOX7_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN8<0A>"
        }
    }
    *Option: Option12
    {
        *% Mailbox 8
        *rcNameID: =MAILBOX8_DISPLAY
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN9<0A>"
        }
    }

    *Option: Option13
    {
        *% Stapler
        *rcNameID: =STAPLER_DISPLAY   *% Stapler
       *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN7<0A>@PJL SET FINISH=STAPLE<0A>"
        }
        *Constraints: LIST(MediaType.Labels, MediaType.Transparency)
    }

    *Option: Option14
    {
        *% Stacker
        *rcNameID: =STACKER_DISPLAY   *% Stacker
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>@PJL SET FINISH=NONE<0A>"
        }
    }
    *Option: Option15
    {
        *% Job Separator
        *rcNameID: =JOB_SEPARATOR_DISPLAY   *% Job Separator
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>"
        }
    }
    *Option: Option16
    {
        *% Collator
        *rcNameID: =COLLATOR_DISPLAY   *% Collator
        *Command: CmdSelect
        {
            *Order: JOB_SETUP.8
            *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN2<0A>"
        }
    }
    *Option: Option17
    {
        *% Stapler
        *Name: "Stacker (stapled)"
        *%*rcNameID: 432   *% Stacker (stapled)
        *switch: Stapling
        {
            *case: 1diagonal
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>@PJL SET STAPLEOPTION=ONEANGLED<0A>"
                }
            }
            *case: 1parallel
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>@PJL SET STAPLEOPTION=ONE<0A>"
                }
            }
            *case: 2parallel
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>@PJL SET STAPLEOPTION=TWO<0A>"
                }
            }
            *case: 3parallel
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>@PJL SET STAPLEOPTION=THREE<0A>"
                }
            }
            *case: Stitching
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>@PJL SET STAPLEOPTION=SIX<0A>"
                }
            }
            *case: Custom
            {
                *Command: CmdSelect
                {
                    *Order: JOB_SETUP.8
                    *Cmd: "@PJL SET OUTBIN=OPTIONALOUTBIN3<0A>@PJL SET FINISH=STAPLE<0A>PJL SET STAPLEOPTION=CUSTOM<0A>"
                }
            }
      }
    }
}

*%
*% installed HCO / OutputBin constraints
*%
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option4)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option5)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option6)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option7)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option8)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option9)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option10)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option11)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option12)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option13)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option14)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option15)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option16)
*InvalidCombination: LIST(Option20.Standard, OutputBin.Option17)

*InvalidCombination: LIST(Option20.MBM5S, OutputBin.Option3)
*InvalidCombination: LIST(Option20.MBM5S, OutputBin.Option10)
*InvalidCombination: LIST(Option20.MBM5S,  OutputBin.Option11)
*InvalidCombination: LIST(Option20.MBM5S, OutputBin.Option12)
*InvalidCombination: LIST(Option20.MBM5S, OutputBin.Option17)

*InvalidCombination: LIST(Option20.MBM7, OutputBin.Option3)
*InvalidCombination: LIST(Option20.MBM7, OutputBin.Option13)
*InvalidCombination: LIST(Option20.MBM7, OutputBin.Option12)
*InvalidCombination: LIST(Option20.MBM7, OutputBin.Option17)

*InvalidCombination: LIST(Option20.MBM8, OutputBin.Option3)
*InvalidCombination: LIST(Option20.MBM8, OutputBin.Option13)
*InvalidCombination: LIST(Option20.MBM8, OutputBin.Option17)

*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option3)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option5)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option6)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option7)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option8)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option9)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option10)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option11)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option12)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option13)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option15)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option16)
*InvalidCombination: LIST(Option20.3KStacker, OutputBin.Option17)

*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option3)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option5)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option6)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option7)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option8)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option9)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option10)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option11)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option12)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option13)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option15)
*InvalidCombination: LIST(Option20.3KStapler, OutputBin.Option16)

*% OEMMBMode / OutputBin constraints are applied by hpoemui.dll
*%
*% allow OutputBin.Option14, 17 because Mailbox is default mode (none is not
*% an option)
*IgnoreBlock
{
*InvalidCombination: LIST(Option21.MailboxModeMailbox, OutputBin.Option15)
*InvalidCombination: LIST(Option21.MailboxModeMailbox, OutputBin.Option16)

*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option3)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option5)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option6)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option7)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option8)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option9)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option10)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option11)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option12)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option15)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option16)
*InvalidCombination: LIST(Option21.MailboxModeStacker, OutputBin.Option17)

*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option3)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option5)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option6)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option7)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option8)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option9)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option10)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option11)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option12)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option14)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option16)
*InvalidCombination: LIST(Option21.MailboxModeSeparator, OutputBin.Option17)

*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option3)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option5)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option6)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option7)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option8)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option9)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option10)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option11)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option12)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option14)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option15)
*InvalidCombination: LIST(Option21.MailboxModeCollator, OutputBin.Option17)
}

*%
*% Stapling (OutputBin.Option13) / Sizes constraints
*%
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.LEGAL)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.EXECUTIVE)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.11X17)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.ENV_10)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.ENV_DL)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.ENV_MONARCH)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.A3)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.B4)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.B5)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.ENV_C5)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.ENV_B5)
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.A5)
*Ifdef:  WINNT_50
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.DBL_JAPANESE_POSTCARD_ROTATED)
*Endif:  WINNT_50
*InvalidCombination: LIST(OutputBin.Option13, PaperSize.MyMax117x177)

*%paper not supported through 3K stapler
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.ENV_10)
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.ENV_DL)
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.ENV_MONARCH)
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.ENV_C5)
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.ENV_B5)
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.A5)
*Ifdef:  WINNT_50
*InvalidCombination: LIST(OutputBin.Option17, PaperSize.DBL_JAPANESE_POSTCARD_ROTATED)
*Endif:  WINNT_50

*%
*% Envelopes/JAP DP/A5 to top facedown(2) or left faceup(3) or HCO faceup(4) bin of MBMs
*% already removed from stapler bins above
*%
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.ENV_10, OutputBin.Option16)

*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.ENV_DL, OutputBin.Option16)

*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.ENV_MONARCH, OutputBin.Option16)

*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.ENV_C5, OutputBin.Option16)

*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.ENV_B5, OutputBin.Option16)

*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.A5, OutputBin.Option16)

*Ifdef:  WINNT_50
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.DBL_JAPANESE_POSTCARD_ROTATED, OutputBin.Option16)
*Endif:  WINNT_50

*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option5)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option6)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option7)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option8)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option9)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option10)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option11)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option12)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option14)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option15)
*InvalidCombination: LIST(PaperSize.MyMax117x177, OutputBin.Option16)


*% only set number of copies if Collate is OFF -- otherwise, Printer or
*% Print Processor will take care of it (see *Feature: Collate)
*switch: Collate
{
    *case: OFF
    {
        *Command: CmdEndPage
        {
            *Order: PAGE_FINISH.1
            *Cmd: =uint16 =NumOfCopy =attr_ubyte =PageCopies =EndPage
        }
    }
    *case: ON
    {
        *Command: CmdEndPage
        {
            *Order: PAGE_FINISH.1
            *Cmd: =uint16 %l{1} =attr_ubyte =PageCopies =EndPage
        }
    }
}

*%%% ======================
*%%% Device fonts
*%%% ======================

*DefaultFont: =RC_FONT_COURIERR
*DefaultCTT: 0

*DeviceFonts: LIST(
+   =RC_FONT_ALBERTR,   
+   =RC_FONT_ALBERTX,   
+   =RC_FONT_AOLIVEB,   
+   =RC_FONT_AOLIVEI,   
+   =RC_FONT_AOLIVER,   
+   =RC_FONT_ARIALB,    
+   =RC_FONT_ARIALI,    
+   =RC_FONT_ARIALJ,    
+   =RC_FONT_ARIALR,    
+   =RC_FONT_CGOMEGAB,  
+   =RC_FONT_CGOMEGAI,  
+   =RC_FONT_CGOMEGAJ,  
+   =RC_FONT_CGOMEGAR,  
+   =RC_FONT_CGTIMESB,  
+   =RC_FONT_CGTIMESI,  
+   =RC_FONT_CGTIMESJ,  
+   =RC_FONT_CGTIMESR,  
+   =RC_FONT_CLARCD,    
+   =RC_FONT_CORONETR,  
+   =RC_FONT_COURIERB,  
+   =RC_FONT_COURIERI,  
+   =RC_FONT_COURIERJ,  
+   =RC_FONT_COURIERR,  
+   =RC_FONT_GARMONDB,  
+   =RC_FONT_GARMONDI,  
+   =RC_FONT_GARMONDJ,  
+   =RC_FONT_GARMONDR,  
+   =RC_FONT_LETGOTHB,  
+   =RC_FONT_LETGOTHI,  
+   =RC_FONT_LETGOTHR,  
+   =RC_FONT_MARGOLDR,  
+   =RC_FONT_TIMESNRB,  
+   =RC_FONT_TIMESNRI,  
+   =RC_FONT_TIMESNRJ,  
+   =RC_FONT_TIMESNRR,  
+   =RC_FONT_UNIVERCB,  
+   =RC_FONT_UNIVERCI,  
+   =RC_FONT_UNIVERCJ,  
+   =RC_FONT_UNIVERCR,  
+   =RC_FONT_UNIVERSA,  
+   =RC_FONT_UNIVERSB,  
+   =RC_FONT_UNIVERSC,  
+   =RC_FONT_UNIVERSD,  
+   =RC_FONT_UNIVERSE,  
+   =RC_FONT_UNIVERSI,  
+   =RC_FONT_UNIVERSJ,  
+   =RC_FONT_UNIVERSR,  
+   =RC_FONT_WINGDINGS, 
+   =RC_FONT_SYMBOL)

*% TT font Substituition table for our device fonts
*% Arial and TNR are substituted in ttfsub.gpd
*TTFS: AlbertusM
{
  *TTFontName: "Albertus Medium"
  *DevFontName: "Albertus Medium"
}
*TTFS: AlbertusX
{
  *TTFontName: "Albertus Extra Bold"
  *DevFontName: "Albertus Extra Bold"
}
*TTFS: AntiqueOlive
{
  *TTFontName: "Antique Olive"
  *DevFontName: "Antique Olive"
}
*TTFS: CGOmega
{
  *TTFontName: "CG Omega"
  *DevFontName: "CG Omega"
}
*TTFS: CGTimes
{
  *TTFontName: "CG Times"
  *DevFontName: "CG Times"
}
*TTFS: ClarendonCD
{
  *TTFontName: "Clarendon Condensed Bold"
 *DevFontName: "Clarendon Condensed"
}
*TTFS: Coronet
{
  *TTFontName: "Coronet"
  *DevFontName: "Coronet"
}
*TTFS: Garamond
{
  *TTFontName: "Garamond"
  *DevFontName: "Garamond"
}
*TTFS: LetterGothic
{
  *TTFontName: "Letter Gothic"
  *DevFontName: "Letter Gothic"
}
*TTFS: Marigold
{
  *TTFontName: "Marigold"
  *DevFontName: "Marigold"
}
*TTFS: Univers
{
  *TTFontName: "Univers Medium"
  *DevFontName: "Univers"
}
*TTFS: UniversCD
{
  *TTFontName: "Univers Condensed Medium"
  *DevFontName: "Univers Condensed"
}
*TTFS: CourierNew
{
  *TTFontName: "Courier New"
  *DevFontName: "Courier New"
}
*% These 4 fonts need to be substituted to match the name that applications use to select the font.  For
*% some reason the names are different.
*TTFS: ClarendonCD1
{
  *TTFontName: "Clarendon Condensed"
 *DevFontName: "Clarendon Condensed"
}
*TTFS: Univers1
{
  *TTFontName: "Univers"
  *DevFontName: "Univers"
}
*TTFS: UniversCD1
{
  *TTFontName: "Univers Condensed"
  *DevFontName: "Univers Condensed"
}

*% *FontCartridge: FC1
*% {
*%     *rcCartridgeNameID: =HP_MS_DISPLAY
*%     *Fonts: LIST(117,118,119,120,121,122,123,124,126,127,128,129,130,131,132,133,125)
*% }
*% *FontCartridge: FC2
*% {
*%     *rcCartridgeNameID: =HP_PROCOLLECTION_DISPLAY
*%     *Fonts: LIST(1,2,3,4,27,28,29,30,44,45,69,70,71,72,73,74,
*% +                   75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,
*% +                   91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107)
*% }
*% *FontCartridge: FC3
*% {
*%     *rcCartridgeNameID: =HP_GLOBALTEXT_DISPLAY
*%     *Fonts: LIST(31,32,33,34,35,36)
*% }
*% *FontCartridge: FC4
*% {
*%     *rcCartridgeNameID: =HP_GREATSTART_DISPLAY
*%     *Fonts: LIST(37,38,39,40,41,42,43)
*% }
*% *FontCartridge: FC5
*% {
*%     *rcCartridgeNameID: =HP_TEXTEQUATIONS_DISPLAY
*%     *Fonts: LIST(16,17,18,46,47,48,49,108,109,110,111,112,113,114,115,116)
*% }
*% *FontCartridge: FC6
*% {
*%     *rcCartridgeNameID: =HP_POLISHEDWORKSHEETS_DISPLAY
*%     *Fonts: LIST(40,41,42,43,59,60,65,66,67,68,69,70,71,72,142,143,
*% +                   144,145)
*% }
*% *FontCartridge: FC7
*% {
*%     *rcCartridgeNameID: =HP_PERSUASIVEPRESENTATIONS_DISPLAY
*%     *Fonts: LIST(10,50,51,52,53,54,55,56,57,58,59,60,62,63,64)
*% }
*% *FontCartridge: FC8
*% {
*%     *rcCartridgeNameID: =HP_FORMSETC_DISPLAY
*%     *Fonts: LIST(14,19,20,21,22,23,24,25,26)
*% }
*% *FontCartridge: FC9
*% {
*%     *rcCartridgeNameID: =HP_BARCODESMORE_DISPLAY
*%     *Fonts: LIST(5,6,7,8,9,11,12,13,14,15,141)
*% }
*% *FontCartridge: FC10
*% {
*%     *rcCartridgeNameID: =HP_WORDPERFECT_DISPLAY
*%     *Fonts: LIST(231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,
*% +                   247,248)
*% }
*% *FontCartridge: FC11
*% {
*%     *rcCartridgeNameID: =DISTINCTDOC1_COMPPUB1_DISPLAY
*%     *Fonts: LIST(154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,
*% +                   170,171,172,173,174,175,176,177,178,179,180,181,182)
*% }
*% *FontCartridge: FC12
*% {
*%     *rcCartridgeNameID: =BRILLPRES1_COMPPUB2_DISPLAY
*%     *Fonts: LIST(183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,
*% +                   199,200,201,202,203,204,205,206,207,208)
*% }

*%%% ======================
*%%% Printing attributes
*%%% ======================
*RotateCoordinate?: TRUE
*RotateRaster?: TRUE
*RotateFont?: TRUE
*EjectPageWithFF?: FALSE

*TextCaps: LIST(TC_CR_ANY,TC_CR_90,TC_SF_X_YINDEP,TC_SA_CONTIN,TC_IA_ABLE,TC_UA_ABLE)
*MemoryUsage: LIST(FONT)
*CursorXAfterCR: AT_PRINTABLE_X_ORIGIN
*CursorXAfterSendBlockData: AT_GRXDATA_ORIGIN
*CursorYAfterSendBlockData: AUTO_INCREMENT
*BadCursorMoveInGrxMode: LIST(X_PORTRAIT,Y_LANDSCAPE)
*XMoveThreshold: 0
*YMoveThreshold: 0
*XMoveUnit: 1200
*YMoveUnit: 1200

*%%% *MinGrayFill: 1
*%%% *MaxGrayFill: 100

*%%% OutputDataFormat: H_BYTE
*%%% OptimizeLeftBound?: TRUE

*%%% ======================
*%%% TrueType fonts
*%%% ======================

*Feature: TrueTypeFormat
{
    *rcNameID: =TRUETYPE_FORMAT
    *DefaultOption: OUTLINE
    *Option: OUTLINE
    {
        *rcNameID: =TRUETYPE_OUTLINE
    }
    *Option: BITMAP
    {
        *rcNameID: =TRUETYPE_BITMAP
    }
    *Option: GRAPHICS
    {
        *rcNameID: =TRUETYPE_GRAPHICS
    }
}

*switch: TrueTypeFormat
{
    *case: OUTLINE
    {
        *FontFormat: HPPCL_OUTLINE
    }
    *case: BITMAP
    {
        *FontFormat: HPPCL
    }
    *case: GRAPHICS
    {
    }
}
*CharPosition: BASELINE
*TTFSEnabled?: TRUE
*MinFontID: 1
*MaxFontID: 65535
*MinGlyphID: 1
*MaxGlyphID: 1000

*%%% ======================
*%%% Cursor commands
*%%% ======================

*Command: CmdCR { *Cmd: "" }
*Command: CmdLF { *Cmd: "" }
*Command: CmdFF { *Cmd: "" }

*%%% SetCursor(0x6b)
*%%%     Point(76(0x40c)) uint_16
*%%% SetCursorRel(0x6c)
*%%%     Point(76(0x40c)) uint_16
*Command: CmdXMoveAbsolute
{
    *Cmd: ""
}
*Command: CmdXMoveRelRight
{
    *Cmd: ""
    *Params: LIST(DestXRel, TextXRes)
}
*Command: CmdXMoveRelLeft
{
    *Cmd: ""
    *Params: LIST(DestXRel, TextXRes)
}
*Command: CmdYMoveAbsolute
{
    *Cmd: ""
    *Params: LIST(DestY, TextYRes)
}
*Command: CmdYMoveRelDown
{
    *Cmd: ""
    *Params: LIST(DestYRel, TextYRes)
}
*Command: CmdYMoveRelUp
{
    *Cmd: ""
    *Params: LIST(DestYRel, TextYRes)
}
*%%% *Command: CmdPushCursor
*%%% *Command: CmdPopCursor

*%%% =======================
*%%% Font commands
*%%% =======================

*Command: CmdSetFontID { *Cmd : "" }
*Command: CmdSelectFontID
{
    *Cmd: ""
    *Params: LIST(FontHeight, CurrentFontID, TextYRes)
}

*Command: CmdSetCharCode
{
    *Cmd : ""
}

*Command: CmdBoldOn
{
    *Cmd : ""
}
*Command: CmdBoldOff
{
    *Cmd : ""
}
*%%% *Command: CmdItalicOn: "=real32_xy "<3ea1e4f700000000>" =attr_ubyte =eCharShear =SetCharShear"
*%%% *Command: CmdItalicOff: "=real32_xy "<0000000000000000>" =attr_ubyte =eCharShear =SetCharShear"
*%%% *Command: CmdWhiteTextOn:
*%%% *Command: CmdWhiteTextOff:
*%%% *Command: CmdSelectSingleByteMode:
*%%% *Command: CmdSelectDoubleByteMode:
*Command: CmdSetAnyRotation
{
    *Cmd: ""
    *Params: LIST(PrintDirInCCDegrees)
}
*Command: CmdSetSimpleRotation
{
    *Cmd: ""
    *Params: LIST(PrintDirInCCDegrees)
}