*PPD-Adobe: "4.1"
*% Printer Description File
*% For "Sharp JX-9660PS Laser Printer" ROM version 66PF or later
*% Date: 1/5/94 - G. Andersen

*FormatVersion: "4.1"
*FileVersion: "2.0"
*LanguageEncoding: ISOLatin 1
*LanguageVersion: English
*Product: "(PhoenixPage v2.5)"
*ModelName: "Sharp JX-9660PS.PPD"
*PSVersion: "(1.0) 0"
*NickName: "Sharp JX-9660PS 600DPI Laser Printer"
*PCFileName: "JX9660PS.PPD"

*% ===== Basic Capabilities ======================

*LanguageLevel: 1
*DefaultColorSpace: Gray
*FreeVM: "276500"
*Throughput: "8"

*Protocols: BCP

*%==*ColorDevice: False
*%==*VariablePaperSize: False
*%==*FileSystem: False


*Password: "0"
*ExitServer: "
  count 0 eq {  % is the password on the stack?
    true
  }{
    dup         % potential password
    statusdict begin checkpassword end 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 begin exitserver
"
*End
*Reset: "
  count 0 eq {  % is the password on the stack?
    true
  }{
    dup      % potential password
    statusdict begin checkpassword end 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 begin exitserver
  systemdict /quit get exec
  (WARNING : Printer Reset Failed.) = flush
"
*End

*% ===== Resolution ========================
*OpenUI *Resolution:PickOne
*OrderDependency:10 AnySetup *Resolution
*DefaultResolution: 600dpi
*Resolution 600dpi: "
  statusdict begin 600 setresolution end"
*End
*Resolution 300dpi: "
  statusdict begin 300 setresolution end"
*End
*?Resolution: "
 statusdict begin resolution (     ) cvs print (dpi) = flush end"
*End
*CloseUI: *Resolution

*% Halftone Information ===============
*ScreenFreq: "85.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 }"
*Transfer Normalized: "{ }"
*Transfer Normalized.Inverse: "{ 1 exch sub }"

*% Paper Handling ===================

*OpenUI *PageSize: PickOne
*OrderDependency: 20 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "statusdict begin lettertray end"
*PageSize Legal: "statusdict begin legaltray end"
*PageSize A4: "statusdict begin a4tray end"
*PageSize Com10/Com10 Envelope: "statusdict begin com10envelopetray end"
*PageSize Monarch/Monarch Envelope: "statusdict begin monarcenvelopetray end"
*PageSize DL/DL Envelope: "statusdict begin dlenvelopetray end"
*PageSize C5/C5 Envelope: "statusdict begin c5envelopetray end"
*?PageSize: "
 save statusdict begin
 /PageSize where{ pop
 7 dict begin
 /lettertray (Letter) def
 /legaltray (Legal) def
 /a4tray (A4) def
 /com10envelope (Com10) def
 /monarcenvelope (Monarch) def
 /dlenvelope (DL) def
 /c5envelope (C5) def
 PageSize {
   {load exec} stopped not{= flush}if
   }{
     {load exec} stopped not{print (.Transverse) = flush}if
   }ifelse
   end
 }{
  /pagetype where{pop[(Letter)(Legal)]pagetype dup 1 gt{pop 1}if get = flush}if
 }ifelse
 end restore
"
*End
*CloseUI: *PageSize

*% These entries will set up the frame buffer. Usually used with manual feed.
*DefaultPageRegion: Letter
*PageRegion Letter: "letter"
*PageRegion Legal: "legal"
*PageRegion A4: "a4"
*PageRegion Com10/Com10 Envelope: "com10envelope"
*PageRegion Monarch/Monarch Envelope: "monarcenvelope"
*PageRegion DL/DL Envelope: "dlenvelope"
*PageRegion C5/C5 Envelope: "c5envelope"
  
*% These entries will invoke a particular tray--error may occur if tray is not inserted.
*% These errors should be trapped by software and a message displayed
*OpenUI *PaperTray: PickOne
*OrderDependency: 15 AnySetup *PaperTray
*DefaultPaperTray: Letter
*PaperTray Letter: "statusdict begin lettertray end"
*PaperTray Legal: "statusdict begin legaltray end"
*PaperTray A4: "statusdict begin a4tray end"
*PaperTray Com10/Com10 Envelope: "statusdict begin com10envelopetray end"
*PaperTray Monarch/Monarch Envelope: "statusdict begin monarcenvelopetray end"
*PaperTray DL/DL Envelope: "statusdict begin dlenvelopetray end"
*PaperTray C5/C5 Envelope: "statusdict begin c5envelopetray end"
*?PaperTray: "
 save statusdict begin
   7 dict begin
      /lettertray (Letter) def
      /legaltray (Legal) def
      /a4tray (A4) def
      /com10envelopetray (Com10/Com10 Envelope) def
      /monarcenvelopetray (Monarch/Monarch Envelope) def
      /dlenvelopetray (DL/DL Envelope) def
      /envelopetray (C5/C5 Envelope) def
      papersize {
      {load exec} stopped not{= flush}if
      }{
      {load exec} stopped not{print (.Transverse) = flush}if
      }ifelse
    end
  end restore
"
*End
*CloseUI: *PaperTray

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "15 8 597 784"
*ImageableArea Legal: "15 8 597 1000"
*ImageableArea A4: "13 10 577 832"
*ImageableArea Com10/Com10 Envelope: "18 15 294 668"
*ImageableArea Monarch/Monarch Envelope: "18 13 278 527"
*ImageableArea DL/DL Envelope: "18 14 309 608"
*ImageableArea C5/C5 Envelope: "18 13 455 634"
*?ImageableArea: "
 save /cvp { cvi (            ) cvs print ( ) print } bind def
  newpath clippath pathbbox
  4 -2 roll exch 2 {ceiling cvp} repeat
  exch 2 {floor 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 Com10/Com10 Envelope: "279 540"
*PaperDimension Monarch/Monarch Envelope: "297 684"
*PaperDimension DL/DL Envelope: "312 624"
*PaperDimension C5/C5 Envelope: "459 649"

*% Default Input Slots
*DefaultOutputBin: Upper
*DefaultInputSlot: Upper
*InputSlot Upper: "statusdict begin 0 setpapertray end"
*InputSlot Lower: "statusdict begin 1 setpapertray end"
*InputSlot AutoSelect: "statusdict begin true settrayswitch end"
*?InputSlot: "
 save statusdict begin
  3 dict begin
   /0 (upper) def
   /1 (lower) def
   /true settrayswitch (autoselect) def
   papertray
     {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
"
*End

*OpenUI *ManualFeed: Boolean
*OrderDependency: 15 AnySetup *ManualFeed
*DefaultManualFeed: False
*?ManualFeed: "statusdict /manualfeed get
 {(True)}{(False)}ifelse = flush"
*End
*ManualFeed True: "statusdict begin /manualfeed true store end"
*ManualFeed False: "statusdict begin /manualfeed false store end"
*CloseUI: *ManualFeed

*DefaultOutputOrder: Normal

*DefaultCollator: None
*DefaultSorter: None
*DefaultDuplex: None

*% Font Information =====================

*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.001)"
*Font AvantGarde-BookOblique: Standard "(001.001)"
*Font AvantGarde-Demi: Standard "(001.001)"
*Font AvantGarde-DemiOblique: Standard "(001.001)"
*Font Bookman-Demi: Standard "(001.001)"
*Font Bookman-DemiItalic: Standard "(001.001)"
*Font Bookman-Light: Standard "(001.001)"
*Font Bookman-LightItalic: Standard "(001.001)"
*Font Courier: Standard "(001.004)"
*Font Courier-Bold: Standard "(001.004)"
*Font Courier-BoldOblique: Standard "(001.004)"
*Font Courier-Oblique: Standard "(001.004)"
*Font Helvetica: Standard "(001.001)"
*Font Helvetica-Bold: Standard "(001.001)"
*Font Helvetica-BoldOblique: Standard "(001.001)"
*Font Helvetica-Narrow: Standard "(001.000)"
*Font Helvetica-Narrow-Bold: Standard "(001.000)"
*Font Helvetica-Narrow-BoldOblique: Standard "(001.000)"
*Font Helvetica-Narrow-Oblique: Standard "(001.000)"
*Font Helvetica-Oblique: Standard "(001.001)"
*Font NewCenturySchlbk-Bold: Standard "(001.002)"
*Font NewCenturySchlbk-BoldItalic: Standard "(001.001)"
*Font NewCenturySchlbk-Italic: Standard "(001.001)"
*Font NewCenturySchlbk-Roman: Standard "(001.002)"
*Font Palatino-Bold: Standard "(001.000)"
*Font Palatino-BoldItalic: Standard "(001.000)"
*Font Palatino-Italic: Standard "(001.000)"
*Font Palatino-Roman: Standard "(001.000)"
*Font Symbol: Special "(001.001)"
*Font Times-Bold: Standard "(001.001)"
*Font Times-BoldItalic: Standard "(001.001)"
*Font Times-Italic: Standard "(001.001)"
*Font Times-Roman: Standard "(001.001)"
*Font ZapfChancery-MediumItalic: Standard "(001.002)"
*Font ZapfDingbats: Special "(001.000)"
*?FontQuery: "
save  4 dict begin /sv exch def
/str (fonts/                              ) def
/st2 30 string def
{
  count 0 gt {
    dup FontDirectory exch known {pop 1}{
     str exch st2 cvs dup length /len exch def
     6 exch putinterval str 0 len 6 add getinterval mark exch
     { } st2 filenameforall counttomark 0 gt {
      cleartomark 1}{cleartomark 0}ifelse
    }ifelse = flush
  }{ exit } ifelse
} bind loop sv end restore
"
*End

*?FontList: "
FontDirectory { pop == flush } forall 
/filenameforall where { 
 pop save (fonts/*) { 
  dup length 6 sub 6 exch getinterval == flush 
 } 128 string filenameforall restore
} if 
(*) = flush
"
*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: "PrinterError: timeout, clearing printer"
*Status: "PrinterError: warming up"
*Status: "PrinterError: service call"
*Status: "PrinterError: paper entry misfeed"
*Status: "PrinterError: no toner cartridge"
*Status: "PrinterError: paper entry misfeed"

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

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "timeout, clearing printer"
*PrinterError: "warming up"
*PrinterError: "service call"
*PrinterError: "paper entry misfeed"
*PrinterError: "no toner cartridge"
*PrinterError: "paper entry misfeed"

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

*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 lpi / 600 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"

*%  For 85 lpi / 600 dpi  5,5,2,6,6,2,20/3,0) =====================

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

*ColorSepScreenFreq ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi: "84.8528"
*ColorSepScreenFreq CustomColor.85lpi.600dpi/85 lpi / 600 dpi: "84.8528"
*ColorSepScreenFreq ProcessCyan.85lpi.600dpi/85 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessMagenta.85lpi.600dpi/85 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessYellow.85lpi.600dpi/85 lpi / 600 dpi: "30.0"

*ColorSepScreenProc ProcessBlack.60lpi/60 lpi: "
{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

*ColorSepScreenProc CustomColor.60lpi/60 lpi: "
{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

*ColorSepScreenProc ProcessCyan.60lpi/60 lpi: "
{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

*ColorSepScreenProc ProcessMagenta.60lpi/60 lpi: "
{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

*ColorSepScreenProc ProcessYellow.60lpi/60 lpi: "
{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

*%  For 71 lpi / 600 dpi  ===============================

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

*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"

*% end of PPD file for Sharp JX-9660.PS Series
