@ GNU AS assembler header file for PDriver
@ Written by DefMod (Dec  9 2012) on Sun Dec  9 15:50:43 2012
@ Jonathan Coxhead, jonathan@doves.demon.co.uk, 19 May 1995

@ OSLib---efficient, type-safe, transparent, extensible,
@ register-safe API coverage of RISC OS
@ 
@ Copyright (c) 1994-2012 Jonathan Coxhead and OSLib maintainers
@ 
@ Licence:
@ 
@    OSLib is free software; you can redistribute it and/or modify
@ it under the terms of the GNU General Public License as published by
@ the Free Software Foundation; either version 1, or (at your option)
@ any later version - and this with the following clarification and
@ special exception:
@ 
@    Linking this library statically or dynamically with other modules
@ is making a combined work based on this library. Thus, the terms
@ and conditions of the GNU General Public License cover the whole
@ combination.
@ 
@    As a special exception, the copyright holders of this library
@ give you permission to link this library with independent modules
@ to produce an executable, regardless of the license terms of these
@ independent modules, and to copy and distribute the resulting
@ executable under terms of your choice, provided that you also meet,
@ for each linked independent module, the terms and conditions of the
@ license of that module. An independent module is a module which is
@ not derived from or based on this library. If you modify this
@ library, you may extend this exception to your version of the library,
@ but you are not obliged to do so. If you do not wish to do so, delete
@ this exception statement from your version.
@ 
@    OSLib is distributed in the hope that it will be useful,
@ but WITHOUT ANY WARRANTY; without even the implied warranty of
@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@ GNU General Public License for more details.
@ 
@    You should have received a copy of the GNU General Public License
@ along with this programme; if not, write to the Free Software
@ Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA.

#ifndef PDriver_Hdr
#  define PDriver_Hdr

#  ifndef Get_Types
#    define Get_Types
#    include "oslib/Types.Hdr"
#  endif

#  ifndef Get_OS
#    define Get_OS
#    include "oslib/OS.Hdr"
#  endif

#  ifndef Get_Wimp
#    define Get_Wimp
#    include "oslib/Wimp.Hdr"
#  endif

#  ifndef Get_Draw
#    define Get_Draw
#    include "oslib/Draw.Hdr"
#  endif

#  ifndef Get_Font
#    define Get_Font
#    include "oslib/Font.Hdr"
#  endif

#  ifndef Get_MessageTrans
#    define Get_MessageTrans
#    include "oslib/MessageTrans.Hdr"
#  endif

#  ifndef Get_JPEG
#    define Get_JPEG
#    include "oslib/JPEG.Hdr"
#  endif

@Symbols for constants
#  define PDriver_OSUnit 0x190
#  define PDriver_Inch 0x11940
#  define PDriver_Point 0x3e8
#  define PDriver_TypePS 0x0
#  define PDriver_TypeDM 0x1
#  define PDriver_TypeLJ 0x2
#  define PDriver_TypeIX 0x3
#  define PDriver_TypeFX 0x4
#  define PDriver_TypeLZ 0x5
#  define PDriver_TypeLB 0x6
#  define PDriver_TypeUF 0x7
#  define PDriver_TypeJX 0x63
#  define PDriver_TypePJ 0x63
#  define PDriver_FeatureColour 0x1
#  define PDriver_FeatureLimitedColours 0x2
#  define PDriver_FeatureDiscreteColours 0x4
#  define PDriver_FeatureOutlinesOnly 0x100
#  define PDriver_FeatureThinLinesOnly 0x200
#  define PDriver_FeatureNoOverwrite 0x400
#  define PDriver_FeatureTrfmSprite 0x800
#  define PDriver_FeatureTrfmFont 0x1000
#  define PDriver_FeatureDrawPageFlags 0x2000
#  define PDriver_FeatureScreenDump 0x1000000
#  define PDriver_FeatureGeneralTrfm 0x2000000
#  define PDriver_FeatureInsertIllustration 0x4000000
#  define PDriver_FeatureMiscOp 0x8000000
#  define PDriver_FeatureSetDriver 0x10000000
#  define PDriver_FeatureDeclareFont 0x20000000
#  define PDriver_NoDownload 0x1
#  define PDriver_Kerned 0x2
#  define PDriver_FontResident 0x1
#  define PDriver_FontDownload 0x2
#  define PDriver_FontDownloaded 0x4
#  define PDriver_FontOverwrite 0x1
#  define Error_PDriverBadFeatures 0x5c0
#  define Error_PDriverNoCurrentSprite 0x5c1
#  define Error_PDriverNoJobSelected 0x5c2
#  define Error_PDriverNoSuchJob 0x5c3
#  define Error_PDriverNoCurrentPage 0x5c4
#  define Error_PDriverPrintingPage 0x5c5
#  define Error_PDriverInvalidCopies 0x5c6
#  define Error_PDriverCannotHandle 0x5c7
#  define Error_PDriverBadHalftone 0x5c8
#  define Error_PDriverCancelled 0x5c9
#  define Error_PDriverSingularMatrix 0x5ca
#  define Error_PDriverBadRectangle 0x5cb
#  define Error_PDriverRectanglesMiss 0x5cc
#  define Error_PDriverNoFreeMemory 0x5cd
#  define Error_PDriverNotOnePage 0x5ce
#  define Error_PDriverInUse 0x5cf
#  define Error_PDriverOverflow 0x5d0
#  define Error_PDriverBadMiscOp 0x5d1
#  define Error_PDriverNoDuplicates 0x5d2
#  define Error_PDriverNoCurrentDriver 0x5d3
#  define Error_PDriverUnknownNumber 0x5d4
#  define Error_PDriverDuplicateNumber 0x5d5
#  define Error_PDriverBadSetPrinter 0x5d6
#  define Message_PrintFile 0x80140
#  define Message_WillPrint 0x80141
#  define Message_PrintSave 0x80142
#  define Message_PrintInit 0x80143
#  define Message_PrintError 0x80144
#  define Message_PrintTypeOdd 0x80145
#  define Message_PrintTypeKnown 0x80146
#  define Message_SetPrinter 0x80147
#  define Message_PrintInit2 0x80148
#  define Message_PrintConfigure 0x8014a
#  define Message_PrintInterrogate 0x8014b
#  define Message_PSPrinterQuery 0x8014c
#  define Message_PSPrinterAck 0x8014d
#  define Message_PSPrinterModified 0x8014e
#  define Message_PSPrinterDefaults 0x8014f
#  define Message_PSPrinterDefaulted 0x80150
#  define Message_PSPrinterNotPS 0x80151
#  define Message_ResetPrinter 0x80152
#  define Message_PSIsFontprintRunning 0x80153
#  define PDriver_ConfigurePaperSizes 0x0
#  define PDriver_InterrogateSettings 0x0
#  define PDriver_DrawCopyCount 0xffffff
#  define PDriver_DrawMayPrescan 0x1000000

@Symbols for structure offsets and sizes
        .struct 0
        .skip   Int
PDriver_Type                   : 

        .struct 0
        .skip   Bits
PDriver_Features               : 

        .struct 0
        .skip   Bits
PDriver_FontFlags              : 

        .struct 0
        .skip   Bits
PDriver_FontMapFlags           : 

        .struct 0
        .skip   Bits
PDriver_FontAddFlags           : 

        .struct 0
        .skip   Bits
PDriver_EnumerateFlags         : 

        .struct 0
        .skip   Int
PDriver_ConfigureReason        : 

        .struct 0
        .skip   Int
PDriver_InterrogateReason      : 

        .struct 0
PDriver_MessagePrintError_errnum: .skip   Int
PDriver_MessagePrintError_errmess: .skip   232*Char
PDriver_MessagePrintError      : 

        .struct 0
PDriver_MessagePrintTypeOdd_pad: .skip   20*Byte
PDriver_MessagePrintTypeOdd_file_type: .skip   Bits
PDriver_MessagePrintTypeOdd_file_name: .skip   212*Char
PDriver_MessagePrintTypeOdd    : 

        .struct 0
PDriver_MessagePrintConfigure_reason: .skip   PDriver_ConfigureReason
PDriver_MessagePrintConfigure_data: 
PDriver_MessagePrintConfigure_data_filename: .skip   Ptr
PDriver_MessagePrintConfigure  : 

        .struct 0
PDriver_MessagePrintInterrogate_reason: .skip   PDriver_InterrogateReason
PDriver_MessagePrintInterrogate_data: 
PDriver_MessagePrintInterrogate_data_settings_printer_id: .skip   Int
PDriver_MessagePrintInterrogate_data_settings_palette_number: .skip   Int
PDriver_MessagePrintInterrogate_data_settings_options: .skip   Int
PDriver_MessagePrintInterrogate_data_settings_resolution: .skip   OS_Coord
PDriver_MessagePrintInterrogate_data_settings_flags: .skip   Bits
PDriver_MessagePrintInterrogate_data_settings_mode_name: .skip   208*Char
PDriver_MessagePrintInterrogate: 

        .struct 0
PDriver_MessagePSPrinterQuery_buffer: .skip   Ptr
PDriver_MessagePSPrinterQuery_size: .skip   Int
PDriver_MessagePSPrinterQuery  : 

        .struct 0
        Wimp_MessageHeader_MEMBERS PDriver_FullMessagePrintError
PDriver_FullMessagePrintError_errnum: .skip   Int
PDriver_FullMessagePrintError_errmess: .skip   232*Char
PDriver_FullMessagePrintError  : 

        .struct 0
        Wimp_MessageHeader_MEMBERS PDriver_FullMessagePrintTypeOdd
PDriver_FullMessagePrintTypeOdd_pad: .skip   20*Byte
PDriver_FullMessagePrintTypeOdd_file_type: .skip   Bits
PDriver_FullMessagePrintTypeOdd_file_name: .skip   212*Char
PDriver_FullMessagePrintTypeOdd: 

        .struct 0
        Wimp_MessageHeader_MEMBERS PDriver_FullMessagePrintConfigure
PDriver_FullMessagePrintConfigure_reason: .skip   PDriver_ConfigureReason
PDriver_FullMessagePrintConfigure_data: 
PDriver_FullMessagePrintConfigure_data_filename: .skip   Ptr
PDriver_FullMessagePrintConfigure: 

        .struct 0
        Wimp_MessageHeader_MEMBERS PDriver_FullMessagePrintInterrogate
PDriver_FullMessagePrintInterrogate_reason: .skip   PDriver_InterrogateReason
PDriver_FullMessagePrintInterrogate_data: 
PDriver_FullMessagePrintInterrogate_data_settings_printer_id: .skip   Int
PDriver_FullMessagePrintInterrogate_data_settings_palette_number: .skip   Int
PDriver_FullMessagePrintInterrogate_data_settings_options: .skip   Int
PDriver_FullMessagePrintInterrogate_data_settings_resolution: .skip   OS_Coord
PDriver_FullMessagePrintInterrogate_data_settings_flags: .skip   Bits
PDriver_FullMessagePrintInterrogate_data_settings_mode_name: .skip   208*Char
PDriver_FullMessagePrintInterrogate: 

        .struct 0
        Wimp_MessageHeader_MEMBERS PDriver_FullMessagePSPrinterQuery
PDriver_FullMessagePSPrinterQuery_buffer: .skip   Ptr
PDriver_FullMessagePSPrinterQuery_buffer_size: .skip   Int
PDriver_FullMessagePSPrinterQuery: 

        .struct 0
        .skip   Bits
PDriver_InfoType               : 

        .struct 0
        .skip   Bits
PDriver_DrawFlags              : 

        .struct 0
PDriver_ConfigurationInfo_entry_count: .skip   Int
PDriver_ConfigurationInfo_block_size: .skip   Int
PDriver_ConfigurationInfo_entry_offsets: .skip   20*Int
PDriver_ConfigurationInfo_data : .skip   Char
PDriver_ConfigurationInfo      : 
        
        .altmacro
        .macro  PDriver_ConfigurationInfo_MEMBERS label
\label&_entry_count            : .skip   Int
\label&_block_size             : .skip   Int
\label&_entry_offsets          : .skip   20*Int
        .endm
        
        .struct 0
        PDriver_ConfigurationInfo_MEMBERS PDriver_ConfigurationInfoBase
PDriver_ConfigurationInfoBase  : 


@Symbols for SWI's and SWI reason codes
.set XPDriver_Info,0xa0140
.set PDriver_Info,0x80140
   @Exit
   @  R0 = type (PDriver_InfoType)
   @  R1 = xres (Int)
   @  R2 = yres (Int)
   @  R3 = features (PDriver_Features)
   @  R4 -> desc (String)
   @  R5 = halftone_xres (Int)
   @  R6 = halftone_yres (Int)
   @  R7 = printer (Int)

.set XPDriver_SetInfo,0xa0141
.set PDriver_SetInfo,0x80141
   @Entry
   @  R1 = xres (Int)
   @  R2 = yres (Int)
   @  R3 = features (PDriver_Features)
   @  R4 -> printer_name (String)
   @  R5 = halftone_xres (Int)
   @  R6 = halftone_yres (Int)
   @  R7 = printer (Int)

.set XPDriver_CheckFeatures,0xa0142
.set PDriver_CheckFeatures,0x80142
   @Entry
   @  R0 = features (PDriver_Features)
   @  R1 = value (PDriver_Features)

.set XPDriver_PageSize,0xa0143
.set PDriver_PageSize,0x80143
   @Exit
   @  R1 = xsize (Int)
   @  R2 = ysize (Int)
   @  R3 = left (Int)
   @  R4 = bottom (Int)
   @  R5 = right (Int)
   @  R6 = top (Int)

.set XPDriver_SetPageSize,0xa0144
.set PDriver_SetPageSize,0x80144
   @Entry
   @  R1 = xsize (Int)
   @  R2 = ysize (Int)
   @  R3 = left (Int)
   @  R4 = bottom (Int)
   @  R5 = right (Int)
   @  R6 = top (Int)

.set XPDriver_SelectJob,0xa0145
.set PDriver_SelectJob,0x80145
   @Entry
   @  R0 = job (OS_F)
   @  R1 -> title (String)
   @Exit
   @  R0 = old_job (OS_F)
   @  R7 corrupted

.set XPDriver_SelectJobW,0xa0145
.set PDriver_SelectJobW,0x80145
   @Entry
   @  R0 = job (OS_FW)
   @  R1 -> title (String)
   @Exit
   @  R0 = old_job (OS_FW)
   @  R7 corrupted

.set XPDriver_CurrentJob,0xa0146
.set PDriver_CurrentJob,0x80146
   @Exit
   @  R0 = job (OS_F)

.set XPDriver_CurrentJobW,0xa0146
.set PDriver_CurrentJobW,0x80146
   @Exit
   @  R0 = job (OS_FW)

.set XPDriver_FontSWI,0xa0147
.set PDriver_FontSWI,0x80147

.set XPDriver_EndJob,0xa0148
.set PDriver_EndJob,0x80148
   @Entry
   @  R0 = job (OS_F)

.set XPDriver_EndJobW,0xa0148
.set PDriver_EndJobW,0x80148
   @Entry
   @  R0 = job (OS_FW)

.set XPDriver_AbortJob,0xa0149
.set PDriver_AbortJob,0x80149
   @Entry
   @  R0 = job (OS_F)

.set XPDriver_AbortJobW,0xa0149
.set PDriver_AbortJobW,0x80149
   @Entry
   @  R0 = job (OS_FW)

.set XPDriver_Reset,0xa014a
.set PDriver_Reset,0x8014a

.set XPDriver_GiveRectangle,0xa014b
.set PDriver_GiveRectangle,0x8014b
   @Entry
   @  R0 = id (Int)
   @  R1 -> rect (OS_Box)
   @  R2 -> trfm (OS_HomTrfm)
   @  R3 -> pos (OS_Coord)
   @  R4 = bg (OS_Colour)

.set XPDriver_DrawPage,0xa014c
.set PDriver_DrawPage,0x8014c
   @Entry
   @  R0 = copies_and_flags (PDriver_DrawFlags)
   @  R1 = rect (pointer to OS_Box)
   @  R2 = page (Int)
   @  R3 -> page_no (String)
   @Exit
   @  R0 = more (Bool)
   @  R2 = id (Int)

.set XPDriver_GetRectangle,0xa014d
.set PDriver_GetRectangle,0x8014d
   @Entry
   @  R1 = rect (pointer to OS_Box)
   @Exit
   @  R0 = more (Bool)
   @  R2 = id (Int)

.set XPDriver_CancelJob,0xa014e
.set PDriver_CancelJob,0x8014e
   @Entry
   @  R0 = job (OS_F)

.set XPDriver_CancelJobW,0xa014e
.set PDriver_CancelJobW,0x8014e
   @Entry
   @  R0 = job (OS_FW)

.set XPDriver_ScreenDump,0xa014f
.set PDriver_ScreenDump,0x8014f
   @Entry
   @  R0 = job (OS_F)

.set XPDriver_ScreenDumpW,0xa014f
.set PDriver_ScreenDumpW,0x8014f
   @Entry
   @  R0 = job (OS_FW)

.set XPDriver_EnumerateJobs,0xa0150
.set PDriver_EnumerateJobs,0x80150
   @Entry
   @  R0 = context (Int)
   @Exit
   @  R0 = context_out (Int)

.set XPDriver_SetPrinter,0xa0151
.set PDriver_SetPrinter,0x80151

.set XPDriver_CancelJobWithError,0xa0152
.set PDriver_CancelJobWithError,0x80152
   @Entry
   @  R0 = job (OS_F)
   @  R1 -> error (OS_Error)

.set XPDriver_CancelJobWithErrorW,0xa0152
.set PDriver_CancelJobWithErrorW,0x80152
   @Entry
   @  R0 = job (OS_FW)
   @  R1 -> error (OS_Error)

.set XPDriver_SelectIllustration,0xa0153
.set PDriver_SelectIllustration,0x80153
   @Entry
   @  R0 = job (OS_F)
   @  R1 -> title (String)
   @Exit
   @  R0 = old_job (OS_F)

.set XPDriver_SelectIllustrationW,0xa0153
.set PDriver_SelectIllustrationW,0x80153
   @Entry
   @  R0 = job (OS_FW)
   @  R1 -> title (String)
   @Exit
   @  R0 = old_job (OS_FW)

.set XPDriver_InsertIllustration,0xa0154
.set PDriver_InsertIllustration,0x80154
   @Entry
   @  R0 = job (OS_F)
   @  R1 -> clip_path (Draw_Path)
   @  R2 = x0 (Int)
   @  R3 = y0 (Int)
   @  R4 = x1 (Int)
   @  R5 = y1 (Int)
   @  R6 = x2 (Int)
   @  R7 = y2 (Int)

.set XPDriver_InsertIllustrationW,0xa0154
.set PDriver_InsertIllustrationW,0x80154
   @Entry
   @  R0 = job (OS_FW)
   @  R1 -> clip_path (Draw_Path)
   @  R2 = x0 (Int)
   @  R3 = y0 (Int)
   @  R4 = x1 (Int)
   @  R5 = y1 (Int)
   @  R6 = x2 (Int)
   @  R7 = y2 (Int)

.set XPDriver_DeclareFont,0xa0155
.set PDriver_DeclareFont,0x80155
   @Entry
   @  R0 = font (Font_F)
   @  R1 -> font_name (String)
   @  R2 = flags (PDriver_FontFlags)

.set XPDriver_DeclareDriver,0xa0156
.set PDriver_DeclareDriver,0x80156
   @Entry
   @  R0 = reason (pointer to code)
   @  R1 = workspace (pointer to Void)
   @  R2 = type (PDriver_Type)

.set XPDriver_RemoveDriver,0xa0157
.set PDriver_RemoveDriver,0x80157
   @Entry
   @  R0 = type (PDriver_Type)

.set XPDriver_SelectDriver,0xa0158
.set PDriver_SelectDriver,0x80158
   @Entry
   @  R0 = type (PDriver_Type)
   @Exit
   @  R0 = old_type (PDriver_Type)

.set XPDriver_EnumerateDrivers,0xa0159
.set PDriver_EnumerateDrivers,0x80159
   @Entry
   @  R0 = context (Int)
   @Exit
   @  R0 = context_out (Int)
   @  R1 = type (PDriver_Type)

.set XPDriver_MiscOp,0xa015a
.set PDriver_MiscOp,0x8015a

#  define PDriverMiscOp_AddFont 0x0
   @Entry
   @  R0 = &0
   @  R1 -> font_name (String)
   @  R2 -> alien_name (String)
   @  R3 = flags (PDriver_FontMapFlags)
   @  R4 = add_flags (PDriver_FontAddFlags)

#  define PDriverMiscOp_RemoveFont 0x1
   @Entry
   @  R0 = &1
   @  R1 -> font_name (String)

#  define PDriverMiscOp_EnumerateFonts 0x2
   @Entry
   @  R0 = &2
   @  R1 = buffer (pointer to String)
   @  R2 = size (Int)
   @  R3 = context (Int)
   @  R4 = flags (PDriver_EnumerateFlags)
   @Exit
   @  R1 -> end (Char)
   @  R2 corrupted
   @  R3 = context_out (Int)

#  define PDriverMiscOp_RegisterDumper 0x80000000
   @Entry
   @  R0 = &80000000
   @  R1 = pdumper_no (Int)
   @  R2 = dp_version_required (Int)
   @  R3 = dumper_workspace (pointer to Void)
   @  R4 = dumper_code (pointer to code)
   @  R5 = supported_calls (Bits)
   @  R6 = supported_strips (Bits)

#  define PDriverMiscOp_DeregisterDumper 0x80000001
   @Entry
   @  R0 = &80000001
   @  R1 = pdumper_no (Int)

#  define PDriverMiscOp_StripTypes 0x80000002
   @Entry
   @  R0 = &80000002
   @  R1 = pdumper_no (Int)
   @Exit
   @  R0 = supported_strips (Bits)

.set XPDriver_MiscOpForDriver,0xa015b
.set PDriver_MiscOpForDriver,0x8015b

#  define PDriverMiscOpForDriver_AddFont 0x0
   @Entry
   @  R0 = &0
   @  R1 -> font_name (String)
   @  R2 -> alien_name (String)
   @  R3 = flags (PDriver_FontMapFlags)
   @  R4 = add_flags (PDriver_FontAddFlags)
   @  R8 = type (PDriver_Type)

#  define PDriverMiscOpForDriver_RemoveFont 0x1
   @Entry
   @  R0 = &1
   @  R1 -> font_name (String)
   @  R8 = type (PDriver_Type)

#  define PDriverMiscOpForDriver_EnumerateFonts 0x2
   @Entry
   @  R0 = &2
   @  R1 = buffer (pointer to String)
   @  R2 = size (Int)
   @  R3 = context (Int)
   @  R4 = flags (PDriver_EnumerateFlags)
   @  R8 = type (PDriver_Type)
   @Exit
   @  R1 -> end (Char)
   @  R2 corrupted
   @  R3 = context_out (Int)

#  define PDriverMiscOpForDriver_RegisterDumper 0x80000000
   @Entry
   @  R0 = &80000000
   @  R1 = pdumper_no (Int)
   @  R2 = dp_version_required (Int)
   @  R3 = dumper_workspace (pointer to Void)
   @  R4 = dumper_code (pointer to code)
   @  R5 = supported_calls (Bits)
   @  R6 = supported_strips (Bits)
   @  R8 = type (PDriver_Type)

#  define PDriverMiscOpForDriver_DeregisterDumper 0x80000001
   @Entry
   @  R0 = &80000001
   @  R1 = pdumper_no (Int)
   @  R8 = type (PDriver_Type)

#  define PDriverMiscOpForDriver_StripTypes 0x80000002
   @Entry
   @  R0 = &80000002
   @  R1 = pdumper_no (Int)
   @  R8 = type (PDriver_Type)
   @Exit
   @  R0 = supported_strips (Bits)

.set XPDriver_SetDriver,0xa015c
.set PDriver_SetDriver,0x8015c
   @Entry
   @  R1 = pdumper_no (Int)
   @  R2 -> ensure_command (String)
   @  R3 -> configuration_data1 (Byte)
   @  R4 -> configuration_data2 (Byte)
   @  R5 = configuration_word (Int)

.set XPDriver_SetDriverExtended,0xa015c
.set PDriver_SetDriverExtended,0x8015c
   @Entry
   @  R1 = pdumper_no (Int)
   @  R2 -> ensure_command (String)
   @  R3 -> configuration_data1 (Byte)
   @  R4 -> configuration_data2 (Byte)
   @  R5 = configuration_word (Int)
   @  R6 -> configuration_info (PDriver_ConfigurationInfo)

.set XPDriver_JPEGSWI,0xa015d
.set PDriver_JPEGSWI,0x8015d

#  define PDriverJPEGSWI_Info 0x49980

#  define PDriverJPEGSWIInfo_Dimensions 0x1
   @Entry
   @  R0 = &1
   @  R1 -> image (JPEG_Image)
   @  R2 = size (Int)
   @  R8 = &49980
   @Exit
   @  R0 = info_flags (JPEG_InfoFlags)
   @  R2 = width (Int)
   @  R3 = height (Int)
   @  R4 = xdpi (Int)
   @  R5 = ydpi (Int)
   @  R6 = workspace_size (Int)

#  define PDriverJPEGSWI_FileInfo 0x49981

#  define PDriverJPEGSWIFileInfo_Dimensions 0x1
   @Entry
   @  R0 = &1
   @  R1 -> file_name (String)
   @  R8 = &49981
   @Exit
   @  R0 = info_flags (JPEG_InfoFlags)
   @  R2 = width (Int)
   @  R3 = height (Int)
   @  R4 = xdpi (Int)
   @  R5 = ydpi (Int)
   @  R6 = workspace_size (Int)

#  define PDriverJPEGSWI_PlotScaled 0x49982
   @Entry
   @  R0 -> image (JPEG_Image)
   @  R1 = x (Int)
   @  R2 = y (Int)
   @  R3 -> factors (OS_Factors)
   @  R4 = size (Int)
   @  R5 = flags (JPEG_ScaleFlags)
   @  R8 = &49982

#  define PDriverJPEGSWI_PlotFileScaled 0x49983
   @Entry
   @  R0 -> file_name (String)
   @  R1 = x (Int)
   @  R2 = y (Int)
   @  R3 -> factors (OS_Factors)
   @  R4 = flags (JPEG_ScaleFlags)
   @  R8 = &49983

#  define PDriverJPEGSWI_PlotTransformed 0x49984
   @Entry
   @  R0 -> image (JPEG_Image)
   @  R1 = flags (JPEG_TransformFlags)
   @  R2 -> trfm_or_rect (OS_Trfm)
   @  R3 = size (Int)
   @  R8 = &49984

#  define PDriverJPEGSWI_PlotFileTransformed 0x49985
   @Entry
   @  R0 -> file_name (String)
   @  R1 = flags (JPEG_TransformFlags)
   @  R2 -> trfm_or_rect (OS_Trfm)
   @  R8 = &49985

#  define Service_Print 0x41
   @Entry
   @  R1 = &41

#  define Service_PDriverStarting 0x65
   @Entry
   @  R1 = &65

#  define Service_PDriverGetMessages 0x78
   @Entry
   @  R1 = &78
   @Exit
   @  R1 = unclaimed (Bool)
   @  R3 -> common_cb (MessageTrans_ControlBlock)

#  define Service_PDriverChanged 0x7f
   @Entry
   @  R1 = &7F

#endif
