*PPD-Adobe: "4.0"
*% Adobe Systems PostScript(R) Printer Description File
*% Copyright 1987-1992 Adobe Systems Incorporated. 
*% All Rights Reserved. 
*% Permission is granted for redistribution of this file as
*% long as this copyright notice is intact and the contents
*% of the file is not altered in any way from its original form.
*% End of Copyright statement
*FormatVersion: "4.0"
*FileVersion: "1.0"
*LanguageVersion: English
*PCFileName: "OKOL8501.PPD"
*Product: "(OL850)"
*PSVersion: "(52.5) 1"
*ModelName: "OKI OL850"
*NickName: "OKI OL850 v52.5"

*% General Information and Defaults ===============
*FreeVM: "445616"
*VMOption None/2 MB: "445616"
*VMOption 4Meg/4 MB: "2542768"

*OpenGroup: InstallableOptions

*OpenUI *Option1/Memory Configuration: PickOne
*DefaultOption1: None
*Option1 None/2 MB: ""
*Option1 4Meg/4 MB: ""
*CloseUI: *Option1

*OpenUI *Option2/Lower Tray: Boolean
*DefaultOption2: False
*Option2 True/Installed: ""
*Option2 False/Not Installed: ""
*CloseUI: *Option2

*OpenUI *Option3/Envolope Feeder: Boolean
*DefaultOption3: False
*Option3 True/Installed: ""
*Option3 False/Not Installed: ""
*CloseUI: *Option3

*CloseGroup: InstallableOptions

*UIConstraints: *Option1 None *VMOption
*UIConstraints: *Option1 4Meg *VMOption None
*UIConstraints: *Option2 False *InputSlot Lower
*UIConstraints: *InputSlot Lower *ManualFeed True
*UIConstraints: *ManualFeed True *InputSlot Lower
*UIConstraints: *Option1 None *PageSize Legal
*UIConstraints: *Option1 None *PageRegion Legal


*% ==== Device Capabilities ===============
*LanguageLevel: "1"
*Extensions: FileSystem 
*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
*StopEmulator_hplj: "<1B7F>0"
*StartEmulator_diablo: "
0 serverdict /exitserver get exec
currentfile 2 statusdict /setsoftwareiomode get exec
"
*End
*StopEmulator_diablo: ""
*ColorDevice: False
*DefaultColorSpace: Gray
*VariablePaperSize: False
*FileSystem: True
*?FileSystem: "
save
   statusdict /diskonline get exec {(True)}{(False)} ifelse = flush
restore
"
*End

*Throughput: "8"
*Password: "0"
*ExitServer: "
  count 0 eq {  % is the password on the stack?
    true 
  }{
    dup	% potential password
    statusdict /checkpassword get exec not 
  } ifelse 
  {  %  if no password or not valid 
    (WARNING : Cannot perform the exitserver command.) = 
    (Password supplied is not valid.) = 
    (Please contact the author of this software.) = flush
    quit 
  } if 
  serverdict /exitserver get exec
"
*End
*Reset: "
  count 0 eq {  % is the password on the stack?
    true 
  }{
    dup	% potential password
    statusdict /checkpassword get exec not 
  } ifelse 
  {  %  if no password or not valid 
    (WARNING : Cannot reset printer.) = 
    (Password supplied is not valid.) = 
    (Please contact the author of this software.) = flush
    quit 
  } if 
  serverdict /exitserver get exec
  systemdict /quit get exec
  (WARNING : Printer Reset Failed.) = flush
"
*End

*DefaultResolution: 300dpi
*?Resolution: "
save
  initgraphics
  matrix defaultmatrix dup 
  0 get dup mul exch 1 get dup mul add sqrt
  72 mul round cvi
  (          ) cvs print (dpi) = flush
restore
"
*End

*% Halftone Information ===============
*ScreenFreq: "60.0"
*ScreenAngle: "45.0"
*DefaultScreenProc: Dot
*ScreenProc Dot: "
{abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 
sub }{dup mul exch dup mul add 1 exch sub }ifelse }
"
*End
*ScreenProc Line: "{ pop }"
*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"

*DefaultTransfer: Null
*Transfer Null: "{ }"
*Transfer Null.Inverse: "{ 1 exch sub }"

*% Paper Handling ===================
*% Code in this section selects a tray and sets up a frame buffer.
*OpenUI *PageSize: PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "statusdict /lettertray get exec"
*PageSize Legal: "statusdict /legaltray get exec"
*PageSize Executive: "statusdict /executivetray get exec"
*PageSize A4: "statusdict /a4tray get exec"
*PageSize A5: "statusdict /a5tray get exec"
*PageSize B5: "statusdict /b5tray get exec"
*?PageSize: "
save
6 dict
  dup /letter (Letter) put
  dup /legal (Legal) put
  dup /executivepage (Executive) put
  dup /a4 (A4) put
  dup /a5 (A5) put
  dup /b5 (B5) put
   statusdict /papersize get exec
  3 1 roll  {get} stopped {(Unknown)}if
  exch  not { print (.Transverse) }if
  = flush
restore
"
*End
*CloseUI: *PageSize

*% These entries will set up the frame buffer. Usually used with manual feed.
*OpenUI *PageRegion: PickOne
*OrderDependency: 40 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter: "letter"
*PageRegion Legal: "legal"
*PageRegion A4: "a4"
*PageRegion A5: "a5"
*PageRegion B5: "b5"
*PageRegion Executive: "executivepage"
*CloseUI: *PageRegion

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "7.2 7.4401 606.0 779.04 "
*ImageableArea Legal: "7.2 7.4401 606.0 995.04 "
*ImageableArea A4: "7.2 7.4401 586.8 828.96 "
*ImageableArea A5: "7.2 7.4401 410.16 582.24 "
*ImageableArea B5: "7.2 7.4401 506.16 715.44 "
*ImageableArea Executive: "7.2 7.4401 513.84 743.04 "
*?ImageableArea: "
 save
   /cvp { (                ) cvs print ( ) print } bind def
   /upperright {10000 mul floor 10000 div} bind def
   /lowerleft {10000 mul ceiling 10000 div} bind def
   newpath clippath pathbbox
   4 -2 roll exch 2 {lowerleft cvp} repeat
   exch 2 {upperright cvp} repeat flush
 restore
"
*End

*% These provide the physical dimensions of the paper (by keyword)
*DefaultPaperDimension: Letter
*PaperDimension Letter: "612 792"
*PaperDimension Legal: "612 1008"
*PaperDimension A4: "595 842"
*PaperDimension A5: "420 595"
*PaperDimension B5: "516 729"
*PaperDimension Executive: "540 756"

*OpenUI *ManualFeed: Boolean
*OrderDependency: 20 AnySetup *ManualFeed
*DefaultManualFeed: False
*ManualFeed True: "statusdict /manualfeed true put"
*ManualFeed False: "statusdict /manualfeed false put"
*?ManualFeed: "
  save
  statusdict /manualfeed get
  {(True)}{(False)}ifelse = flush
  restore
"
*End
*CloseUI: *ManualFeed

*RequiresPageRegion All: True

*OpenUI *InputSlot: PickOne
*OrderDependency: 20 AnySetup *InputSlot
*DefaultInputSlot: Upper
*InputSlot Upper: "0 statusdict 	/setpapertray get exec"
*InputSlot Lower: "1 statusdict 	/setpapertray get exec"
*?InputSlot: "
save
[ 
(Upper) 0
(Lower) 1
] statusdict /papertray get exec
  {get exec} stopped { pop pop (Unknown) } if = flush
restore
"
*End
*CloseUI: *InputSlot

*PageStackOrder: Normal
*DefaultOutputOrder: Normal

*OpenUI *TraySwitch: Boolean
*OrderDependency: 50 AnySetup *TraySwitch
*DefaultTraySwitch: False
*TraySwitch True: "statusdict /trayswitch true put"
*TraySwitch False: "statusdict /trayswitch false put"
*?TraySwitch: "
save
  statusdict /trayswitch get {(True)}{(False)}ifelse = flush
restore
"
*End
*CloseUI: *TraySwitch

*% Font Information =====================
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
*Font Bookman-Demi: Standard "(001.003)" Standard ROM
*Font Bookman-DemiItalic: Standard "(001.003)" Standard ROM
*Font Bookman-Light: Standard "(001.003)" Standard ROM
*Font Bookman-LightItalic: Standard "(001.003)" Standard ROM
*Font Courier: Standard "(002.003)" Standard ROM
*Font Courier-Bold: Standard "(002.003)" Standard ROM
*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
*Font Courier-Oblique: Standard "(002.003)" Standard ROM
*Font Helvetica: Standard "(001.006)" Standard ROM
*Font Helvetica-Bold: Standard "(001.007)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.007)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.006)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.007)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.006)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.006)" Standard ROM
*Font NewCenturySchlbk-Bold: Standard "(001.008)" Standard ROM
*Font NewCenturySchlbk-BoldItalic: Standard "(001.006)" Standard ROM
*Font NewCenturySchlbk-Italic: Standard "(001.005)" Standard ROM
*Font NewCenturySchlbk-Roman: Standard "(001.006)" Standard ROM
*Font Palatino-Bold: Standard "(001.005)" Standard ROM
*Font Palatino-BoldItalic: Standard "(001.005)" Standard ROM
*Font Palatino-Italic: Standard "(001.005)" Standard ROM
*Font Palatino-Roman: Standard "(001.005)" Standard ROM
*Font Symbol: Special "(001.007)" Special ROM
*Font Times-Bold: Standard "(001.007)" Standard ROM
*Font Times-BoldItalic: Standard "(001.009)" Standard ROM
*Font Times-Italic: Standard "(001.007)" Standard ROM
*Font Times-Roman: Standard "(001.007)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.006)" Standard ROM
*Font ZapfDingbats: Special "(001.004)" Special ROM


*?FontQuery: "
save
 /str 100 string dup 0 (fonts/) putinterval def
 {
   count 1 gt
   { 
     exch dup str 6 94 getinterval cvs
     (/) print dup print (:) print exch
     FontDirectory exch known
     { pop (Yes) }
 	 { 
 	   length 6 add str 0 3 -1 roll getinterval
 	   mark exch status
       {cleartomark (Yes)}{cleartomark (No)} ifelse
     } ifelse =
   }
   {exit} ifelse
 }bind loop
 (*) = flush
restore
"
*End

*?FontList: "
save
FontDirectory { pop == } bind forall flush
/filenameforall where
{
    pop (fonts/*) 
       {dup length 6 sub 6 exch getinterval cvn == } bind
    128 string filenameforall flush
} if 
(*) = flush
restore
"
*End

*% Printer Messages (verbatim from printer):
*Message: "%%[ exitserver: permanent state may be changed ]%%"
*Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%"
*Message: "\FontName\ not found, using Courier"

*% Status (format: %%[ status: <one of these> ]%% )
*Status: "idle"
*Status: "busy"
*Status: "waiting"
*Status: "printing"
*Status: "warming up"
*Status: "Printer Error: ERROR ENGINE"
*Status: "Printer Error: ERROR ENGINE FAN"
*Status: "Printer Error: ERROR ENGINE FUSER"
*Status: "Printer Error: ERROR OPTION RAM"
*Status: "Printer Error: ERROR RESIDENT RAM"
*Status: "Printer Error: ERROR EEPROM"
*Status: "Printer Error: ERROR PROGRAM ROM"
*Status: "Printer Error: COVER OPEN"
*Status: "Printer Error: PAPER JAM TRAY1"
*Status: "Printer Error: PAPER JAM TRAY2"
*Status: "Printer Error: PAPER FEED JAM TRAY1"
*Status: "Printer Error: PAPER FEED JAM TRAY2"
*Status: "Printer Error: PAPER OUT TRAY1"
*Status: "Printer Error: PAPER OUT TRAY2"
*Status: "Printer Error: FUSER LIFE"
*Status: "Printer Error: DRUM LIFE"
*Status: "Printer Error: TONER LOW"
*Status: "Printer Error: Image is too light"
*Status: "Printer Error: Image is too dark"
*Status: "Printer Error: Blank page"
*Status: "Printer Error: Full black image"
*Status: "Printer Error: Stains on paper"
*Status: "Printer Error: Cyclic abnormality"
*Status: "Printer Error: Dark vertical lines"
*Status: "Pirinter Error: White vertical lines"
*Status: "Printer Error: Dirty back ground"

*PrinterError: "ERROR ENGINE"
*PrinterError: "ERROR ENGINE FAN"
*PrinterError: "ERROR ENGINE FUSER"
*PrinterError: "ERROR OPTION RAM"
*PrinterError: "ERROR RESIDENT RAM"
*PrinterError: "ERROR EEPROM"
*PrinterError: "ERROR PROGRAM ROM"
*PrinterError: "COVER OPEN"
*PrinterError: "PAPER JAM TRAY1"
*PrinterError: "PAPER JAM TRAY2"
*PrinterError: "PAPER FEED JAM TRAY1"
*PrinterError: "PAPER FEED JAM TRAY2"
*PrinterError: "PAPER OUT TRAY1"
*PrinterError: "PAPER OUT TRAY2"
*PrinterError: "FUSER LIFE"
*PrinterError: "DRUM LIFE"
*PrinterError: "TONER LOW"
*PrinterError: "Image is too light"
*PrinterError: "Image is too dark"
*PrinterError: "Blank page"
*PrinterError: "Full black image"
*PrinterError: "Stains on paper"
*PrinterError: "Cyclic abnormality"
*PrinterError: "Dark vertical lines"
*PrinterError: "White vertical lines"
*PrinterError: "Dirty back ground"

*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
*Source: "serial9"
*Source: "serial25"
*Source: "AppleTalk"
*Source: "Centronics"


*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"

*% Color Separation Information =====================

*DefaultColorSep: ProcessBlack.60lpi.300dpi/ 60 lpi / 300 dpi

*InkName: ProcessBlack/Process Black
*InkName: CustomColor/Custom Color
*InkName: ProcessCyan/Process Cyan
*InkName: ProcessMagenta/Process Magenta
*InkName: ProcessYellow/Process Yellow


*%  For 60 lpi / 300 dpi  ===============================

*ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45"
*ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45"
*ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15"
*ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75"
*ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0"

*ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60"

*%  For 53 lpi / 300 dpi  ===============================

*ColorSepScreenAngle ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "0.0"

*ColorSepScreenFreq ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
*ColorSepScreenFreq CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
*ColorSepScreenFreq ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
*ColorSepScreenFreq ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
*ColorSepScreenFreq ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "50.0"
*% The byte count of this file should be exactly 014227 or 014677
*% depending on the filesystem it resides in.
*% end of PPD file for OL850 
