*GPDSpecVersion: "1.0"
*Include: "StdNames.gpd"
*GPDFileVersion: "3.10"
*GPDFileName: "IMPACT160_144.GPD"
*ModelName: "IMPACT160_144"
*MasterUnits: PAIR(160, 144)
*ResourceDLL: "IMPACT160_144.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: UPPER
    *Option: UPPER
    {
        *rcNameID: =UPPER_TRAY_DISPLAY
    }
}

*Feature: Resolution
{
    *Name: "Resolution"
    *DefaultOption: Option2
    *Option: Option1
    {
        *Name: "160 x 144 " =DOTS_PER_INCH
        *DPI: PAIR(160, 144)
        *TextDPI: PAIR(160, 144)
        *PinsPerLogPass: 16
        *PinsPerPhysPass: 8
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
        *SpotDiameter: 140
        *Command: CmdSendBlockData { *Cmd : "<>"   }
    }
*Option: Option2
    {
        *Name: "160 x 72 " =DOTS_PER_INCH
        *DPI: PAIR(160, 72)
        *TextDPI: PAIR(160, 72)
        *PinsPerLogPass: 8
        *PinsPerPhysPass: 8
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
        *SpotDiameter: 140
        *Command: CmdSendBlockData { *Cmd : "<>"  }
    }
    *Option: Option3
    {
        *Name: "80 x 72 " =DOTS_PER_INCH
        *DPI: PAIR(80, 72)
        *TextDPI: PAIR(80, 72)
        *PinsPerLogPass: 8
        *PinsPerPhysPass: 8
        EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)
        *SpotDiameter: 140
        *Command: CmdSendBlockData { *Cmd : "<>"  }
    }

}

*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *DefaultOption: Option1
    *Option: Option1
    {
        *Name: "76mm x 297mm"
        *OptionID: 258
        *PageDimensions: PAIR(478, 1684)
        *PrintableArea: PAIR(400, 1684)
        *PrintableOrigin: PAIR(44, 0)
    }
   *Option: Option2
    {
        *Name: "76mm x 3276mm"
        *OptionID: 259
        *PageDimensions: PAIR(478, 18573)
        *PrintableArea: PAIR(400, 18573)
        *PrintableOrigin: PAIR(44, 0)
        *switch: Resolution
        {
            *case: Option2
            {
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(400, 18572)
            }
            *case: Option3
            {
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(400, 18572)
            }
        }
    }
*Option: Option3
    {
        *Name: "70mm x 297mm"
        *OptionID: 260
        *PageDimensions: PAIR(440, 1684)
        *PrintableArea: PAIR(359, 1684)
        *PrintableOrigin: PAIR(44, 0)
        *switch: Resolution
        {
            *case: Option3
            {
*% Warning: the following printable width is adjusted (359->358) so it is divisible by the resolution X scale.
                *PrintableArea: PAIR(358, 1684)
            }
        }
    }
    *Option: Option4
    {
        *Name: "70mm x 3276mm"
        *OptionID: 261
        *PageDimensions: PAIR(440, 18573)
        *PrintableArea: PAIR(359, 18573)
        *PrintableOrigin: PAIR(44, 0)
        *switch: Resolution
        {
            *case: Option2
            {
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(359, 18572)
            }
            *case: Option3
            {
*% Warning: the following printable width is adjusted (359->358) so it is divisible by the resolution X scale.
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(358, 18572)
            }
        }
    }
    *Option: Option5
    {
        *Name: "58mm x 297mm"
        *OptionID: 262
        *PageDimensions: PAIR(365, 1684)
        *PrintableArea: PAIR(300, 1684)
        *PrintableOrigin: PAIR(44, 0)
    }
    *Option: Option6
    {
        *Name: "58mm x 3276mm"
        *OptionID: 263
        *PageDimensions: PAIR(365, 18573)
        *PrintableArea: PAIR(300, 18573)
        *PrintableOrigin: PAIR(44, 0)
        *switch: Resolution
        {
            *case: Option2
            {
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(300, 18572)
            }
            *case: Option3
            {
*% Warning: the following printable length is adjusted (18573->18572) so it is divisible by the resolution Y scale.
                *PrintableArea: PAIR(300, 18572)
            }
        }
    }
    *Option: CUSTOMSIZE
    {
        *Name: "User defined"
        *rcNameID:256 *% =USER_DEFINED_SIZE_DISPLAY
        *MinSize: PAIR(6, 5)
        *MaxSize: PAIR(1780, 32767)
        *MaxPrintableWidth: 1676
        *MinLeftMargin: 44
        *CenterPrintable?: FALSE
        *CursorOrigin: PAIR(44,0)
    }
}

*Feature: ColorMode
{
    *Name: "ColorMode"
    *DefaultOption: Option2
    *Option: Option1
    {
        *rcNameID: =MONO_DISPLAY
        *DevNumOfPlanes: 1
        *DevBPP: 1
        *Color? : FALSE
    }
    *Option: Option2
    {
        *rcNameID: =COLOR_DISPLAY
        *DevNumOfPlanes: 4
        *DevBPP: 1
        *DrvBPP: 4
        EXTERN_GLOBAL: *MoveToX0BeforeSetColor? : TRUE
        EXTERN_GLOBAL: *UseExpColorSelectCmd? : TRUE
        *ColorPlaneOrder: LIST(YELLOW, MAGENTA, CYAN, BLACK)
        *Command: CmdSendYellowData { *Cmd : "<1B>r<01>" }
        *Command: CmdSendMagentaData { *Cmd : "<1B>r<01>" }
        *Command: CmdSendCyanData { *Cmd : "<1B>r<01>" }
        *Command: CmdSendBlackData { *Cmd : "<1B>r<00>" }
    }
}

*Feature: Halftone
{
    *Name: "Halftone"
    *DefaultOption: HT_PATSIZE_SUPERCELL_M
    *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: Conservation
{
    *Name: "Conservation"
    *DefaultOption: Option2
    *Option: Option1
    {
        *Name: "Disable"
        *OptionID: 288
    }
    *Option: Option2
    {
        *Name: "Enable"
        *OptionID: 289
    }
}
*switch: Conservation
{
 	*case: Option1
	{
		*EjectPageWithFF?: FALSE
	}
	*case: Option2
	{
		*EjectPageWithFF?: TRUE
	}
}

*Command: CmdStartDoc
{
    *Order: DOC_SETUP.1
    *Cmd: "<>"
}

*Command: CmdEndJob
{
    *Order: JOB_FINISH.1
    *Cmd: "<>"
}

*Command: CmdStartPage
{
    *Order: PAGE_SETUP.1
    *Cmd: "<>"
}

*Command: CmdEndPage
{
    *Order: PAGE_FINISH.1
    *Cmd: "<0A0D>"
}

*RotateCoordinate?: FALSE
*RotateRaster?: FALSE
*RotateFont?: FALSE
*switch: Orientation
{
    *case: PORTRAIT
    {
        *TextCaps: LIST(TC_OP_CHARACTER,TC_RA_ABLE)
    }
    *case: LANDSCAPE_CC270
    {
        *TextCaps: LIST(TC_UA_ABLE,TC_RA_ABLE)
    }
}

*CursorXAfterCR: AT_CURSOR_X_ORIGIN
*YMoveAttributes: LIST(SEND_CR_FIRST)
*YMoveThreshold: *
*YMoveUnit: 144
*Command: CmdYMoveRelDown { *Cmd : "<1B>J" %c[0,255]{max_repeat(DestYRel )} }

*Command: CmdCR { *Cmd : "<0D00>" }
*Command: CmdLF { *Cmd : "<>" }
*Command: CmdFF { *Cmd : "<>" }

*OutputDataFormat: V_BYTE
*OptimizeLeftBound?: FALSE
*CursorXAfterSendBlockData: AT_GRXDATA_END
*CursorYAfterSendBlockData: NO_MOVE
*DefaultCTT: 0
