*GPDSpecVersion: "1.0"
*Include: "StdNames.gpd"
*GPDFileVersion: "1.0"
*GPDFileName: "POS76C.GPD"
*ModelName: "POS-76C"
*MasterUnits: PAIR(160, 144)
*ResourceDLL: "POS76.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
{
    *rcNameID: =RESOLUTION_DISPLAY
    *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)
		*% Warning: this resolution has RES_BO_NO_ADJACENT set in GPC, which is ignored by GPD. Custom code is needed.
        *SpotDiameter: 140
        *Command: CmdSendBlockData { *Cmd : "<1B>*<01>" %l{NumOfDataBytes} }
    }
    *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 : "<1B>*<01>" %l{NumOfDataBytes} }
    }
    *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)
		*% Warning: this resolution has RES_BO_NO_ADJACENT set in GPC, which is ignored by GPD. Custom code is needed.
        *SpotDiameter: 140
        *Command: CmdSendBlockData { *Cmd : "<1B>*<00>" %l{NumOfDataBytes} }
    }
}
*Feature: PaperSize
{
    *rcNameID: =PAPER_SIZE_DISPLAY
    *DefaultOption: Option3
    *Option: Option1
    {
        *rcNameID: 257
        *PageDimensions: PAIR(400, 1684)
        *PrintableArea: PAIR(400, 1684)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Option2
    {
        *rcNameID: 258
        *PageDimensions: PAIR(400, 1191)
        *PrintableArea: PAIR(400, 1191)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Option3
    {
        *rcNameID: 259
        *PageDimensions: PAIR(400, 18573)
        *PrintableArea: PAIR(400, 18573)
        *PrintableOrigin: PAIR(0, 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: Option4
    {
        *rcNameID: 260
        *PageDimensions: PAIR(300, 1684)
        *PrintableArea: PAIR(300, 1684)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Option5
    {
        *rcNameID: 261
        *PageDimensions: PAIR(300, 1191)
        *PrintableArea: PAIR(300, 1191)
        *PrintableOrigin: PAIR(0, 0)
    }
    *Option: Option6
    {
        *rcNameID: 262
        *PageDimensions: PAIR(300, 18573)
        *PrintableArea: PAIR(300, 18573)
        *PrintableOrigin: PAIR(0, 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
    {
        *rcNameID: =USER_DEFINED_SIZE_DISPLAY
        *MinSize: PAIR(200, 200)
        *MaxSize: PAIR(400, 32767)
        *MaxPrintableWidth: 400
        *MinLeftMargin: 0
        *CenterPrintable?: FALSE
    }
}
*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: xpPrintDirectional
{
    *rcNameID: 299
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: 300
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.2
            *Cmd: "<1B>U<01>"
        }
    }
    *Option: Option2
    {
        *rcNameID: 301
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.2
            *Cmd: "<1B>U<00>"
        }
    }
}
*Feature: xpCashDrawer			*%cash select
{
    *rcNameID: 263
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: 264
    }
    *Option: Option2
    {
        *rcNameID: 265
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.4
            *Cmd: "<1B>p<0019FF>"
        }
    }
    *Option: Option3
    {
        *rcNameID: 266
        *Command: CmdSelect
        {
            *Order: JOB_FINISH.2
            *Cmd: "<1B>p<0019FF>"
        }
    }
}
*Feature: xpCutterSelect		*%Cutter select
{
    *rcNameID: 267
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: 268
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.3
            *Cmd: "<0D1D>VB<00>"
        }
    }
    *Option: Option2
    {        
        *rcNameID: 269
        *Command: CmdSelect
        {
            *Order: JOB_FINISH.1
            *Cmd: "<0D1D>VB<00>"
        }
    }
    *Option: Option3 *%no cut[no feed]
    {
        *rcNameID: 270
    }
    *Option: Option4
    {
        *rcNameID: 271
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.3
            *Cmd: "<1B>d<06>"
        }
    }
    *Option: Option5
    {
        *rcNameID: 272
        *Command: CmdSelect
        {
            *Order: JOB_FINISH.1
            *Cmd: "<1B>d<06>"
        }
    }
}
*Feature: xpPrintBeep			*%Printing Beep
{
    *rcNameID: 290
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: 291
    }
    *Option: Option2
    {
        *rcNameID: 292
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.4 
            *Cmd: "<1B420301>"
        }
    }
    *Option: Option3
    {
        *rcNameID: 293
        *Command: CmdSelect
        {
            *Order: PAGE_SETUP.1
            *Cmd: "<1B420301>"
        }
    }    
    *Option: Option4
    {
        *rcNameID: 294
        *Command: CmdSelect
        {
            *Order: JOB_FINISH.3 
            *Cmd: "<1B420301>"
        }
    }
    *Option: Option5
    {
        *rcNameID: 295
        *Command: CmdSelect
        {
            *Order: DOC_SETUP.3
            *Cmd: "<1B420301>"
        }
    }  
}
*Feature: xpJobEndFeedPaper	*%Feed Paper After Job End
{
    *rcNameID: 273
    *FeatureType: PRINTER_PROPERTY
    *DefaultOption: Option1
    *Option: Option1
    {
        *rcNameID: 274
    }
    *Option: Option2
    {
        *rcNameID: 275
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<01>"
        }
    }
    *Option: Option3
    {
        *rcNameID: 276
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<02>"
        }
    }    
    *Option: Option4
    {
        *rcNameID: 277
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<03>"
        }
    }
    *Option: Option5
    {
        *rcNameID: 278
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<04>"
        }
    } 
     
    *Option: Option6
    {
        *rcNameID: 279
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<05>"
        }
    }
    *Option: Option7
    {
        *rcNameID: 280
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<06>"
        }
    }    
    *Option: Option8
    {
        *rcNameID: 281
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<07>"
        }
    }
    *Option: Option9
    {
        *rcNameID: 282
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<08>"
        }
    }
    
    *Option: Option10
    {
        *rcNameID: 283
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<09>"
        }
    }
    *Option: Option11
    {
        *rcNameID: 284
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<0A>"
        }
    }    
    *Option: Option12
    {
        *rcNameID: 285
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<0B>"
        }
    }
    *Option: Option13
    {
        *rcNameID: 286
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<0C>"
        }
    }
    
    *Option: Option14
    {
        *rcNameID: 287
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<0D>"
        }
    }
    *Option: Option15
    {
        *rcNameID: 288
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2
            *Cmd: "<1B>d<0E>"
        }
    }    
    *Option: Option16
    {
        *rcNameID: 289
        *Command: CmdSelect
        {
            *Order: PAGE_FINISH.2 
            *Cmd: "<1B>d<0F>"
        }
    }
}
*%===================================================================
*Command: CmdStartDoc
{
    *Order: DOC_SETUP.1
    *Cmd: "<1B>@"
}
*Command: CmdEndJob
{
    *Order: JOB_FINISH.4
    *Cmd: "<0D>"
}
*Command: CmdEndPage
{
    *Order: PAGE_FINISH.1
    *Cmd: "<1B4A10>"
}
*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)
*XMoveThreshold: 0
*YMoveThreshold: *
*XMoveUnit: 160
*YMoveUnit: 144
*Command: CmdXMoveAbsolute { *Cmd : "<1B>$" %l{DestX} }
*Command: CmdYMoveRelDown { *Cmd : "<1B>J" %c[0,255]{max_repeat(DestYRel )} }

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

*Command: CmdCR { *Cmd : "<00>" }
*EjectPageWithFF?: TRUE
*OutputDataFormat: V_BYTE
*OptimizeLeftBound?: FALSE
*CursorXAfterSendBlockData: AT_GRXDATA_END
*CursorYAfterSendBlockData: NO_MOVE
*DefaultFont: 1
*DefaultCTT: 0
*switch: Orientation
{
    *case: PORTRAIT
    {
        *DeviceFonts: LIST(1)
    }
    *case: LANDSCAPE_CC270
    {
        *DeviceFonts: LIST()
    }
}
