; Copyright 1996 Acorn Computers Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
;     http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;
        SUBT    PDriver Module - Exported Definitions

OldOpt  SETA   {OPT}
        OPT    OptNoList+OptNoP1List

; **********************
; ***  CHANGES LIST  ***
; **********************

; Date       Name  Description
; ----       ----  -----------
; 15-Mar-90  GJS   Added change list
; 23-Jul-90  GJS   Added DeclarePrinter and SelectPrinter SWIs
; 14-Feb-91  OSS   Added DeclareFont SWI
; 06-May-91  DDV   Added PDriver_RemovePrinter
; 09-May-91  DDV   Added PDriver_EnumeratePrinters and moved PDriver_DeclareFont
; 24-May-91  DDV   Added PDriver_MiscOp and MiscOpForDrive
; 13-Jun-91  DDV   Removed most <foo>ForDriver calls
; 13-Jun-91  DDV   Changed DeclarePrinter to DeclareDriver and so on
; 27-Jun-91  DDV   Added PDriver_SetDriver
; 21-Jul-91  DDV   Added description of features within PDriver_Info word
; 24-Jul-91  BC    Added description of the SetDriver word
; 24-Jul-91  BC    Added description of the MiscOp flag values
; 27-Aug-91  SAH   Added new flags values DF and DSF
; 30-Jun-94  AMcC  Save and restore OPT
; 30-Jun-94  AMcC  Use preferred SWI_Name and SWI_Base symbols
; 30-Jun-94  AMcC  Removed Printer types (PDriverType_) to HdrSrc.Register.PDriverReg
; 13-Sep-94  MJS   Add PDriver_JPEGSWI
; 29-Sep-94  MJS   Add PDriverInfo_DrawPageFlags features bit

SWIClass        SETS    PrintSWI_Name

        ^       PrintSWI_Base

        AddSWI  Info                            ; +0
        AddSWI  SetInfo                         ; +1
        AddSWI  CheckFeatures                   ; +2
        AddSWI  PageSize                        ; +3
        AddSWI  SetPageSize                     ; +4
        AddSWI  SelectJob                       ; +5
        AddSWI  CurrentJob                      ; +6
        AddSWI  FontSWI                         ; +7
        AddSWI  EndJob                          ; +8
        AddSWI  AbortJob                        ; +9
        AddSWI  Reset                           ; +10
        AddSWI  GiveRectangle                   ; +11
        AddSWI  DrawPage                        ; +12
        AddSWI  GetRectangle                    ; +13
        AddSWI  CancelJob                       ; +14
        AddSWI  ScreenDump                      ; +15
        AddSWI  EnumerateJobs                   ; +16
        AddSWI  SetPrinter                      ; +17
        AddSWI  CancelJobWithError              ; +18
        AddSWI  SelectIllustration              ; +19
        AddSWI  InsertIllustration              ; +20
        AddSWI  DeclareFont                     ; +21
        AddSWI  DeclareDriver                   ; +22
        AddSWI  RemoveDriver                    ; +23
        AddSWI  SelectDriver                    ; +24
        AddSWI  EnumerateDrivers                ; +25
        AddSWI  MiscOp                          ; +26
        AddSWI  MiscOpForDriver                 ; +27
        AddSWI  SetDriver                       ; +28
        AddSWI  JPEGSWI                         ; +29

; Reason codes for printer-independent code in PDriver_MiscOp

PDriverMiscOp_AddFont           * 0
PDriverMiscOp_RemoveFonts       * 1
PDriverMiscOp_ListFonts         * 2

PDriverMiscOp_DriverSpecific    * &80000000

; Bits returned from the PDriver_Info call

PDriverInfo_ColourMask          * &FF
PDriverInfo_PlottingMask        * &FF00
PDriverInfo_ReservedMask        * &FF0000
PDriverInfo_FeaturesMask        * &FF000000

PDriverColour_Greys             * 2_000        ; arbitrary grey levels
PDriverColour_BlackAndWhite     * 2_100        ; black and white
PDriverColour_Colour            * 2_001        ; arbitrary colours
PDriverColour_PrimaryColours    * 2_101        ; eight primary colours
PDriverColour_FixedRangeColour  * 2_011        ; fixed colour range - not very likely
PDriverColour_FiniteColourSet   * 2_111        ; finite colour range - for instance XY plotter

PDriverInfo_FilledShapes        * 1:SHL:8      ; set => no     clear => yes
PDriverInfo_ThickLines          * 1:SHL:9      ; set => no     clear => yes
PDriverInfo_OverwritingPossible * 1:SHL:10     ; set => no     clear => yes
PDriverInfo_TransformedSprites  * 1:SHL:11     ; set => yes    clear => no     ;RISC OS 3.00 feature
PDriverInfo_TransformedFonts    * 1:SHL:12     ; set => yes    clear => no     ;RISC OS 3.00 feature
PDriverInfo_DrawPageFlags       * 1:SHL:13     ; set = PDriver_DrawPage has flags byte in R0, clear = not

PDriverInfo_ScreenDumps         * 1:SHL:24     ; set => yes    clear => no
PDriverInfo_ArbitraryTransforms * 1:SHL:25     ; set => yes    clear => no
PDriverInfo_InsertIllustration  * 1:SHL:26     ; set => yes    clear => no
PDriverInfo_MiscOp              * 1:SHL:27     ; set => yes    clear => no
PDriverInfo_SetDevice           * 1:SHL:28     ; set => yes    clear => no
PDriverInfo_DeclareFont         * 1:SHL:29     ; set => yes    clear => no

PDriverSet_PS_UseCtrlD          * 1 :SHL: 0     ; Tell PS driver to send a control D
PDriverSet_PS_Verbose           * 1 :SHL: 1     ; Tell PS driver to send font prologue from a file

PDriverSet_PS_PreviewShift      * 24            ; Left shift required on preview resolution
PDriverSet_PS_PreviewMask       * &FF000000     ; Mask to get the preview resolution in or out of the Set word

PDriverMiscOp_PS_Font           * 1             ; These are types of PostScript resource
PDriverMiscOp_PS_File           * 2             ; as seen in DSC 3.00.
PDriverMiscOp_PS_ProcSet        * 3
PDriverMiscOp_PS_Pattern        * 4
PDriverMiscOp_PS_Form           * 5
PDriverMiscOp_PS_Encoding       * 6

; The following are NOT official PostScript resource types
PDriverMiscOp_PS_DF		* 40		; DF is for the DocumentFonts list
PDriverMiscOp_PS_DSF		* 41		; DSF is for the DocumentSuppliedFonts

        OPT OldOpt
        END
