*%
*% Copyright (c) 1997 - 1999 Microsoft Corporation
*% All Rights Reserved.
*%
*GPDSpecVersion: "1.0"
*GPDFileVersion: "1.00"
*GPDFileName: "SS4012MK.GPD"
*Include: "STDNAMES.GPD"
*CodePage: 949
*ModelName: "»ï¼º SP-4012 (KSSM)"
*MasterUnits: PAIR(360, 360)
*ResourceDLL: "kssmkres.dll"
*PrinterType: SERIAL
*Feature: Orientation
{
    *rcNameID: =ORIENTATION_DISPLAY
    *DefaultOption: PORTRAIT
    *Option: PORTRAIT
    {
        *rcNameID: =PORTRAIT_DISPLAY
    }
    *Option: LANDSCAPE_CC270
    {
        *rcNameID: =LANDSCAPE_DISPLAY
    }
}
*Feature: InputBin
{
    *rcNameID: =PAPER_SOURCE_DISPLAY
    *DefaultOption: TRACTOR
    *Option: TRACTOR
    {
        *rcNameID: =TRACTOR_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.3
            *Cmd: "<1B19>0"
        }
    }
    *Option: MANUAL
    {
        *rcNameID: =MANUAL_FEED_DISPLAY
*% Warning: this input bin has PSRC_MAN_PROMPT set in GPC, which is ignored by GPD.
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.3
            *Cmd: "<1B19>0"
        }
    }
}
*Feature: Resolution
{
    *rcNameID: =RESOLUTION_DISPLAY
    *DefaultOption: Option2
    *Option: Option1
    {
        *Name: "360 x 180 dots per inch"
        *DPI: PAIR(360, 180)
        *TextDPI: PAIR(360, 180)
        *PinsPerLogPass: 24
        *PinsPerPhysPass: 24
        *MinStripBlankPixels: 360
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
*% Warning: this resolution has RES_BO_NO_ADJACENT set in GPC, which is ignored by GPD. Custom code is needed.
        *SpotDiameter: 170
        *Command: CmdSendBlockData { *Cmd : "<1B>*(" %l{NumOfDataBytes / 3} }
    }
    *Option: Option2
    {
        *Name: "180 x 180 dots per inch"
        *DPI: PAIR(180, 180)
        *TextDPI: PAIR(180, 180)
        *PinsPerLogPass: 24
        *PinsPerPhysPass: 24
        *MinStripBlankPixels: 180
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
        *SpotDiameter: 120
        *Command: CmdSendBlockData { *Cmd : "<1B>*'" %l{NumOfDataBytes / 3} }
    }
    *Option: Option3
    {
        *Name: "120 x 180 dots per inch"
        *DPI: PAIR(120, 180)
        *TextDPI: PAIR(120, 180)
        *PinsPerLogPass: 24
        *PinsPerPhysPass: 24
        *MinStripBlankPixels: 120
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
        *SpotDiameter: 100
        *Command: CmdSendBlockData { *Cmd : "<1B>*!" %l{NumOfDataBytes / 3} }
    }
}
*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *DefaultOption: LETTER
    *Option: LETTER
    {
        *rcNameID: =LETTER_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>CB"
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(2880, 3640)
                *PrintableOrigin: PAIR(90, 120)
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(2880, 3615)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                    *case: Option2
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                    *case: Option3
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                }
            }
        }
    }
    *Option: Option2
    {
        *rcNameID: 258
        *PageDimensions: PAIR(3060, 3960)
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>CB"
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(2880, 3640)
                *PrintableOrigin: PAIR(90, 120)
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(2880, 3615)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                    *case: Option2
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                    *case: Option3
                    {
*% Warning: the following printable length is adjusted (3615->3614) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 3614)
                    }
                }
            }
        }
    }
    *Option: LEGAL
    {
        *rcNameID: =LEGAL_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>CT"
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(2880, 4720)
                *PrintableOrigin: PAIR(90, 120)
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(2880, 4695)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (4695->4694) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 4694)
                    }
                    *case: Option2
                    {
*% Warning: the following printable length is adjusted (4695->4694) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 4694)
                    }
                    *case: Option3
                    {
*% Warning: the following printable length is adjusted (4695->4694) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2880, 4694)
                    }
                }
            }
        }
    }
    *Option: A4
    {
        *rcNameID: =A4_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>CF"
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(2837, 3888)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (2837->2836) so it is divisible by the resolution X scale.
                        *PrintableArea: PAIR(2836, 3888)
                    }
                    *case: Option3
                    {
*% Warning: the following printable width is adjusted (2837->2835) so it is divisible by the resolution X scale.
                        *PrintableArea: PAIR(2835, 3888)
                    }
                }
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(2837, 3863)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (3863->3862) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2837, 3862)
                    }
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (2837->2836) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (3863->3862) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2836, 3862)
                    }
                    *case: Option3
                    {
*% Warning: the following printable width is adjusted (2837->2835) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (3863->3862) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2835, 3862)
                    }
                }
            }
        }
    }
    *Option: A5
    {
        *rcNameID: =A5_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>C2"
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(1959, 2657)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (2657->2656) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(1959, 2656)
                    }
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (1959->1958) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (2657->2656) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(1958, 2656)
                    }
                    *case: Option3
                    {
*% Warning: the following printable length is adjusted (2657->2656) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(1959, 2656)
                    }
                }
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(1959, 2632)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (1959->1958) so it is divisible by the resolution X scale.
                        *PrintableArea: PAIR(1958, 2632)
                    }
                }
            }
        }
    }
    *Option: B5
    {
        *rcNameID: =B5_DISPLAY
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>C="
        }
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *PrintableArea: PAIR(2441, 3323)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option1
                    {
*% Warning: the following printable length is adjusted (3323->3322) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2441, 3322)
                    }
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (2441->2440) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (3323->3322) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2440, 3322)
                    }
                    *case: Option3
                    {
*% Warning: the following printable width is adjusted (2441->2439) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (3323->3322) so it is divisible by the resolution Y scale.
                        *PrintableArea: PAIR(2439, 3322)
                    }
                }
            }
            *case: MANUAL
            {
                *PrintableArea: PAIR(2441, 3298)
                *PrintableOrigin: PAIR(90, 120)
                *switch: Resolution
                {
                    *case: Option2
                    {
*% Warning: the following printable width is adjusted (2441->2440) so it is divisible by the resolution X scale.
                        *PrintableArea: PAIR(2440, 3298)
                    }
                    *case: Option3
                    {
*% Warning: the following printable width is adjusted (2441->2439) so it is divisible by the resolution X scale.
                        *PrintableArea: PAIR(2439, 3298)
                    }
                }
            }
        }
    }
    *Option: CUSTOMSIZE
    {
        *rcNameID: =USER_DEFINED_SIZE_DISPLAY
        *MinSize: PAIR(360, 360)
        *MaxSize: PAIR(4140, 32767)
        *MaxPrintableWidth: 2880
        *MinLeftMargin: 90
        *CenterPrintable?: FALSE
        *switch: InputBin
        {
            *case: TRACTOR
            {
                *TopMargin: 0
                *BottomMargin: 0
            }
            *case: MANUAL
            {
                *TopMargin: 120
                *BottomMargin: 225
            }
        }
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>2<1B>C" %c[0,127]{(PhysPaperLength / 60) }
        }
    }
}
*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
    }
}
*Command: CmdStartDoc
{
    *Order: DOC_SETUP.1
    *Cmd: "<1B>@<1B>t<011B>6<1B>R<001B>U<01>"
}
*Command: CmdStartPage
{
    *Order: PAGE_SETUP.1
    *Cmd: "<0D>"
}
*Command: CmdEndJob
{
    *Order: JOB_FINISH.1
    *Cmd: "<1B>@"
}
*RotateCoordinate?: FALSE
*RotateRaster?: FALSE
*RotateFont?: FALSE
*switch: Orientation
{
    *case: PORTRAIT
    {
        *TextCaps: LIST(TC_SA_DOUBLE,TC_EA_DOUBLE,TC_IA_ABLE,TC_UA_ABLE,TC_RA_ABLE)
    }
    *case: LANDSCAPE_CC270
    {
        *TextCaps: LIST(TC_RA_ABLE)
    }
}
*CursorXAfterCR: AT_CURSOR_X_ORIGIN
*YMoveAttributes: LIST(SEND_CR_FIRST)
*MaxLineSpacing: 255
*XMoveThreshold: 0
*YMoveThreshold: *
*XMoveUnit: 60
*YMoveUnit: 180
*Command: CmdXMoveAbsolute { *Cmd : "<1B>$" %l[0,816]{max_repeat((DestX / 6) )} }
*Command: CmdYMoveRelDown { *Cmd : "<1B>J" %c[0,255]{max_repeat((DestYRel / 2) )} }
*Command: CmdSetLineSpacing { *Cmd : "<1B>3" %c[0,255]{(LinefeedSpacing / 2) } }
*Command: CmdCR { *Cmd : "<0D>" }
*Command: CmdLF { *Cmd : "<0A>" }
*Command: CmdFF { *Cmd : "<0C>" }
*Command: CmdBackSpace { *Cmd : "<08>" }
*Command: CmdUniDirectionOn { *Cmd : "<1B>U<01>" }
*Command: CmdUniDirectionOff { *Cmd : "<1B>U<00>" }
*EjectPageWithFF?: TRUE
*OutputDataFormat: V_BYTE
*OptimizeLeftBound?: FALSE
*CursorXAfterSendBlockData: AT_GRXDATA_END
*CursorYAfterSendBlockData: NO_MOVE
*DefaultCTT: 0
*Command: CmdBoldOn { *Cmd : "<1B>E" }
*Command: CmdBoldOff { *Cmd : "<1B>F" }