;Assembler header file for Toolbox
;written by DefMod (Mar  9 1999) on Thu Apr  8 04:03:16 1999
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 21 Sept 1995

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET OS:Hdr.Types"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET OS:Hdr.OS"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

        [       :LNOT: :DEF: Get_Wimp
        GBLS    Get_Wimp
        ]
        [       :LNOT: :DEF: Wimp_Hdr
Get_Wimp                        SETS    "GET OS:Hdr.Wimp"
        |
Get_Wimp                        SETS    ""
        ]
        $Get_Wimp

        [       :LNOT: :DEF: Get_MessageTrans
        GBLS    Get_MessageTrans
        ]
        [       :LNOT: :DEF: MessageTrans_Hdr
Get_MessageTrans                SETS    "GET OS:Hdr.MessageTrans"
        |
Get_MessageTrans                SETS    ""
        ]
        $Get_MessageTrans

        [       :LNOT: :DEF: Get_OSSpriteOp
        GBLS    Get_OSSpriteOp
        ]
        [       :LNOT: :DEF: OSSpriteOp_Hdr
Get_OSSpriteOp                  SETS    "GET OS:Hdr.OSSpriteOp"
        |
Get_OSSpriteOp                  SETS    ""
        ]
        $Get_OSSpriteOp

        [       :LNOT: :DEF: Toolbox_Hdr
        GBLS    Toolbox_Hdr

;Symbols for constants
Toolbox_NullObject              *       &0
Toolbox_NullComponent           *       &FFFFFFFF
Toolbox_NameLimit               *       12
Toolbox_WimpObjects             *       &0
Toolbox_All                     *       &FFFFFFFF
Toolbox_Event                   *       &200
Error_ToolboxNoMem              *       &80CB00
Error_ToolboxBadSWI             *       &80CB01
Error_ToolboxInvalidObjectID    *       &80CB02
Error_ToolboxNotAToolboxTask    *       &80CB03
Error_ToolboxNoDirName          *       &80CB04
Error_ToolboxNoMsgsFD           *       &80CB05
Error_ToolboxNoIDBlock          *       &80CB06
Error_ToolboxBadResFile         *       &80CB07
Error_ToolboxTasksActive        *       &80CB08
Error_ToolboxTemplateNotFound   *       &80CB09
Error_ToolboxNoSuchPreFilter    *       &80CB0A
Error_ToolboxNotAResFile        *       &80CB0B
Error_ToolboxBadResFileVersion  *       &80CB0C
Error_ToolboxBadFlags           *       &80CB0D
Toolbox_ObjectCreateOnLoad      *       &1
Toolbox_ObjectShowOnCreate      *       &2
Toolbox_ObjectShared            *       &4
Toolbox_ObjectAncestor          *       &8
Toolbox_ResourceFileVersion     *       101
Toolbox_RelocateStringReference *       &1
Toolbox_RelocateMsgReference    *       &2
Toolbox_RelocateSpriteAreaReference *       &3
Toolbox_RelocateObjectOffset    *       &4
Toolbox_CreateGivenObject       *       &1
Toolbox_DeleteNoRecurse         *       &1
Toolbox_ShowAsMenu              *       &1
Toolbox_ShowAsSubMenu           *       &2
Toolbox_InfoShowing             *       &1
Toolbox_RegisterEventFilter     *       &1
Toolbox_RegisterMessageFilter   *       &2
Toolbox_RegisterActionFilter    *       &3
Toolbox_DeRegisterFilter        *       &1
Toolbox_PositionDefault         *       &0
Toolbox_PositionFull            *       &1
Toolbox_PositionTopLeft         *       &2
Toolbox_PositionCentred         *       &3
Toolbox_PositionAtPointer       *       &4
Toolbox_WimpObjectPostFilter    *       &0
Toolbox_AnyPostFilter           *       &FFFFFFFF
Action_Error                    *       &44EC0
Action_ObjectAutoCreated        *       &44EC1
Action_ObjectDeleted            *       &44EC2
Toolbox_ActionObjectDeletedExtendedInformation *       &1

;Symbols for structure offsets and sizes
Toolbox_O                       *       4 ;abstract type
Toolbox_C                       *       Int

Toolbox_Class                   *       Bits

Toolbox_Id                      *       4 ;abstract type
Toolbox_PositionTag             *       Int

                                ^       0
Toolbox_Full_visible            #       OS_Box
Toolbox_Full_xscroll            #       Int
Toolbox_Full_yscroll            #       Int
Toolbox_Full_next               #       Wimp_W
Toolbox_Full                    *       @

                                ^       0
Toolbox_Position_top_left       #       OS_Coord
                                ^       0
Toolbox_Position_full           #       Toolbox_Full
Toolbox_Position                *       @

Toolbox_ObjectFlags             *       Bits

                                ^       0
Toolbox_Block_ancestor_obj      #       Toolbox_O
Toolbox_Block_ancestor_cmp      #       Toolbox_C
Toolbox_Block_parent_obj        #       Toolbox_O
Toolbox_Block_parent_cmp        #       Toolbox_C
Toolbox_Block_this_obj          #       Toolbox_O
Toolbox_Block_this_cmp          #       Toolbox_C
Toolbox_Block                   *       @

                                ^       0
Toolbox_ResourceFileObject_class_no #       Toolbox_Class
Toolbox_ResourceFileObject_flags #       Bits
Toolbox_ResourceFileObject_version #       Int
Toolbox_ResourceFileObject_name #       12*Char
Toolbox_ResourceFileObject_size #       Int
Toolbox_ResourceFileObject_header_size #       Int
Toolbox_ResourceFileObject_body_size #       Int
Toolbox_ResourceFileObject_object #       Int
Toolbox_ResourceFileObject      *       @

Toolbox_StringReference         *       Ptr

Toolbox_MsgReference            *       Ptr

Toolbox_SpriteAreaReference     *       Ptr

Toolbox_ObjectOffset            *       Ptr

Toolbox_RelocationDirective     *       Int

                                ^       0
Toolbox_Relocation_word         #       Int
Toolbox_Relocation_relocation   #       Toolbox_RelocationDirective
Toolbox_Relocation              *       @

                                ^       0
Toolbox_RelocationTable_relocation_count #       Int
Toolbox_RelocationTable_relocations #       Toolbox_Relocation
Toolbox_RelocationTable         *       @

                                ^       0
Toolbox_RelocatableObject_string_table_offset #       Int
Toolbox_RelocatableObject_message_table_offset #       Int
Toolbox_RelocatableObject_relocation_table_offset #       Int
Toolbox_RelocatableObject_rf_obj #       Toolbox_ResourceFileObject
Toolbox_RelocatableObject       *       @

                                ^       0
Toolbox_ResourceFile_file_id    #       Int
Toolbox_ResourceFile_version    #       Int
Toolbox_ResourceFile_header_size #       Int
Toolbox_ResourceFile_rel_obj    #       Toolbox_RelocatableObject
Toolbox_ResourceFile            *       @

                                ^       0
Toolbox_ActionList_action_nos   #       Bits
Toolbox_ActionList              *       @

Toolbox_CreateFlags             *       Bits

Toolbox_DeleteFlags             *       Bits

Toolbox_ShowFlags               *       Bits

Toolbox_HideFlags               *       Bits

Toolbox_GetInfoFlags            *       Bits

Toolbox_Info                    *       Bits

Toolbox_MiscOpFlags             *       Bits

Toolbox_HandleFlags             *       Bits

Toolbox_GetClassFlags           *       Bits

Toolbox_GetParentFlags          *       Bits

Toolbox_GetAncestorFlags        *       Bits

Toolbox_GetTemplateFlags        *       Bits

Toolbox_EventFlags              *       Bits

Toolbox_InitialiseFlags         *       Bits

Toolbox_LoadFlags               *       Bits

Toolbox_LookUpFlags             *       Bits

Toolbox_FilterType              *       Int

                                ^       0
Toolbox_EventPair_event         #       Int
Toolbox_EventPair_class_no      #       Toolbox_Class
Toolbox_EventPair               *       @

                                ^       0
Toolbox_EventPairList_pair      #       Toolbox_EventPair
Toolbox_EventPairList           *       @

                                ^       0
Toolbox_MessagePair_message     #       Bits
Toolbox_MessagePair_class_no    #       Toolbox_Class
Toolbox_MessagePair             *       @

                                ^       0
Toolbox_MessagePairList_pair    #       Toolbox_MessagePair
Toolbox_MessagePairList         *       @

                                ^       0
Toolbox_ActionPair_action_no    #       Bits
Toolbox_ActionPair_class_no     #       Toolbox_Class
Toolbox_ActionPair              *       @

                                ^       0
Toolbox_ActionPairList_pair     #       Toolbox_ActionPair
Toolbox_ActionPairList          *       @

                                ^       0
Toolbox_PairList_events         #       Toolbox_EventPairList
                                ^       0
Toolbox_PairList_messages       #       Toolbox_MessagePairList
                                ^       0
Toolbox_PairList_action_pairs   #       Toolbox_ActionPairList
Toolbox_PairList                *       @

Toolbox_RegisterFlags           *       Bits

                                ^       0
Toolbox_ActionInterest_action_no #       Bits
Toolbox_ActionInterest_class_no #       Toolbox_Class
Toolbox_ActionInterest          *       @

                                ^       0
Toolbox_ActionError_errnum      #       Bits
Toolbox_ActionError_errmess     #       208*Char
Toolbox_ActionError             *       @

                                ^       0
Toolbox_ActionObjectAutoCreated_name #       212*Char
Toolbox_ActionObjectAutoCreated *       @

                                ^       0
Toolbox_ActionObjectDeleted_class_no #       Toolbox_Class
Toolbox_ActionObjectDeleted_client_handle #       Ptr
Toolbox_ActionObjectDeleted     *       @

                                ^       0
Toolbox_Action_size             #       Int
Toolbox_Action_ref_no           #       Int
Toolbox_Action_action_no        #       Bits
Toolbox_Action_flags            #       Bits
Toolbox_Action_data             *       @
Toolbox_Action_data_error       #       Toolbox_ActionError
                                ^       Toolbox_Action_data
Toolbox_Action_data_created     #       Toolbox_ActionObjectAutoCreated
                                ^       Toolbox_Action_data
Toolbox_Action_data_deleted     #       Toolbox_ActionObjectDeleted
                                ^       Toolbox_Action_data
Toolbox_Action_data_reserved    #       212*Byte
Toolbox_Action                  *       @

                                ^       0
Toolbox_Message_o               #       Toolbox_O
Toolbox_Message_c               #       Toolbox_C
Toolbox_Message_action_no       #       Toolbox_Action
Toolbox_Message                 *       @


;Symbols for SWIs and SWI reason codes
XToolbox_CreateObject           *       &64EC0
Toolbox_CreateObject            *       &44EC0
   ;Entry
   ;  R0 = flags (Toolbox_CreateFlags)
   ;  R1 = id (Toolbox_Id)
   ;Exit
   ;  R0 = obj (Toolbox_O)

XToolbox_DeleteObject           *       &64EC1
Toolbox_DeleteObject            *       &44EC1
   ;Entry
   ;  R0 = flags (Toolbox_DeleteFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 corrupted

XToolbox_ShowObject             *       &64EC3
Toolbox_ShowObject              *       &44EC3
   ;Entry
   ;  R0 = flags (Toolbox_ShowFlags)
   ;  R1 = obj (Toolbox_O)
   ;  R2 = tag (Toolbox_PositionTag)
   ;  R3 -> position (Toolbox_Position)
   ;  R4 = parent_obj (Toolbox_O)
   ;  R5 = parent_cmp (TOolbox_C)

XToolbox_HideObject             *       &64EC4
Toolbox_HideObject              *       &44EC4
   ;Entry
   ;  R0 = flags (Toolbox_HideFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 corrupted

XToolbox_GetObjectInfo          *       &64EC5
Toolbox_GetObjectInfo           *       &44EC5
   ;Entry
   ;  R0 = flags (Toolbox_GetInfoFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 = info (Toolbox_Info)

XToolbox_ObjectMiscOp           *       &64EC6
Toolbox_ObjectMiscOp            *       &44EC6

XToolbox_SetClientHandle        *       &64EC7
Toolbox_SetClientHandle         *       &44EC7
   ;Entry
   ;  R0 = flags (Toolbox_HandleFlags)
   ;  R1 = obj (Toolbox_O)
   ;  R2 = handle (pointer to Void)
   ;Exit
   ;  R0 corrupted

XToolbox_GetClientHandle        *       &64EC8
Toolbox_GetClientHandle         *       &44EC8
   ;Entry
   ;  R0 = flags (Toolbox_HandleFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 = handle (pointer to Void)

XToolbox_GetObjectClass         *       &64EC9
Toolbox_GetObjectClass          *       &44EC9
   ;Entry
   ;  R0 = flags (Toolbox_GetClassFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 = class_no (Toolbox_Class)

XToolbox_GetParent              *       &64ECA
Toolbox_GetParent               *       &44ECA
   ;Entry
   ;  R0 = flags (Toolbox_GetParentFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 = parent_obj (Toolbox_O)
   ;  R1 = parent_cmp (Toolbox_C)

XToolbox_GetAncestor            *       &64ECB
Toolbox_GetAncestor             *       &44ECB
   ;Entry
   ;  R0 = flags (Toolbox_GetAncestorFlags)
   ;  R1 = obj (Toolbox_O)
   ;Exit
   ;  R0 = ancestor_obj (Toolbox_O)
   ;  R1 = ancestor_cmp (Toolbox_C)

XToolbox_GetTemplateName        *       &64ECC
Toolbox_GetTemplateName         *       &44ECC
   ;Entry
   ;  R0 = flags (Toolbox_GetTemplateFlags)
   ;  R1 = obj (Toolbox_O)
   ;  R2 = buffer (pointer to String)
   ;  R3 = size (Int)
   ;Exit
   ;  R3 = used (Int)

XToolbox_RaiseToolboxEvent      *       &64ECD
Toolbox_RaiseToolboxEvent       *       &44ECD
   ;Entry
   ;  R0 = flags (Toolbox_EventFlags)
   ;  R1 = obj (Toolbox_O)
   ;  R2 = cmp (Toolbox_C)
   ;  R3 -> action (Toolbox_Action)
   ;Exit
   ;  R0 corrupted

XToolbox_GetSysInfo             *       &64ECE
Toolbox_GetSysInfo              *       &44ECE

ToolboxGetSysInfo_TaskName      *       &0
   ;Entry
   ;  R0 = &0
   ;  R1 = buffer (pointer to String)
   ;  R2 = size (Int)
   ;Exit
   ;  R0 corrupted
   ;  R2 = used (Int)

ToolboxGetSysInfo_MessageTransControlBlock *       &1
   ;Entry
   ;  R0 = &1
   ;  R1 = cb (pointer to MessageTrans_ControlBlock)
   ;Exit
   ;  R0 corrupted

ToolboxGetSysInfo_DirName       *       &2
   ;Entry
   ;  R0 = &2
   ;  R1 = buffer (pointer to String)
   ;  R2 = size (Int)
   ;Exit
   ;  R0 corrupted
   ;  R2 = used (Int)

ToolboxGetSysInfo_Task          *       &3
   ;Entry
   ;  R0 = &3
   ;Exit
   ;  R0 = task (Wimp_T)

ToolboxGetSysInfo_SpriteArea    *       &4
   ;Entry
   ;  R0 = &4
   ;Exit
   ;  R0 -> area (OSSpriteOp_Area)

XToolbox_Initialise             *       &64ECF
Toolbox_Initialise              *       &44ECF
   ;Entry
   ;  R0 = flags (Toolbox_InitialiseFlags)
   ;  R1 = version (Int)
   ;  R2 -> messages (Wimp_MessageList)
   ;  R3 -> action_nos (Toolbox_ActionList)
   ;  R4 -> resource_dir_name (String)
   ;  R5 = cb (pointer to MessageTrans_ControlBlock)
   ;  R6 = block (pointer to Toolbox_Block)
   ;Exit
   ;  R0 = version_out (Int)
   ;  R1 = task_out (Wimp_T)
   ;  R2 -> area (OSSpriteOp_Area)

XToolbox_LoadResources          *       &64ED0
Toolbox_LoadResources           *       &44ED0
   ;Entry
   ;  R0 = flags (Toolbox_LoadFlags)
   ;  R1 -> resource_file_name (String)
   ;Exit
   ;  R0 corrupted

XToolbox_Memory                 *       &64EF9
Toolbox_Memory                  *       &44EF9

ToolboxMemory_Allocate          *       &0
   ;Entry
   ;  R0 = &0
   ;  R1 = size (Int)
   ;Exit
   ;  R0 = blk (pointer to Void)

ToolboxMemory_Free              *       &1
   ;Entry
   ;  R0 = &1
   ;  R1 = blk (pointer to Void)

ToolboxMemory_Extend            *       &2
   ;Entry
   ;  R0 = &2
   ;  R1 = blk (pointer to Void)
   ;  R2 = change_by (Int)
   ;Exit
   ;  R0 = blk (pointer to Void)

XToolbox_DeRegisterObjectModule *       &64EFA
Toolbox_DeRegisterObjectModule  *       &44EFA
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = class_no (Toolbox_Class)
   ;Exit
   ;  R0 corrupted

XToolbox_TemplateLookUp         *       &64EFB
Toolbox_TemplateLookUp          *       &44EFB
   ;Entry
   ;  R0 = flags (Toolbox_LookUpFlags)
   ;  R1 -> object_name (String)
   ;Exit
   ;  R0 = id (Toolbox_Id)

XToolbox_GetInternalHandle      *       &64EFC
Toolbox_GetInternalHandle       *       &44EFC

XToolbox_RegisterObjectModule   *       &64EFD
Toolbox_RegisterObjectModule    *       &44EFD
   ;Entry
   ;  R0 = flags (Bits)
   ;  R1 = class_no (Toolbox_Class)
   ;  R2 = swi_base (Bits)
   ;  R3 -> resource_file_name (String)
   ;Exit
   ;  R0 corrupted

XToolbox_RegisterPreFilter      *       &64EFE
Toolbox_RegisterPreFilter       *       &44EFE
   ;Entry
   ;  R0 = flags (Toolbox_RegisterFlags)
   ;  R1 = swi_no (Bits)
   ;  R2 = handle (pointer to Void)
   ;Exit
   ;  R0 corrupted

XToolbox_RegisterPostFilter     *       &64EFF
Toolbox_RegisterPostFilter      *       &44EFF
   ;Entry
   ;  R0 = flags (Toolbox_RegisterFlags)
   ;  R1 = swi_no (Bits)
   ;  R2 = handle (pointer to Void)
   ;  R3 = filter_type (Toolbox_FilterType)
   ;  R4 -> pairs (Toolbox_PairList)
   ;Exit
   ;  R0 corrupted

Service_ToolboxStarting         *       &44EC1
   ;Entry
   ;  R1 = &44EC1

Service_ToolboxTaskBorn         *       &44EC2
   ;Entry
   ;  R0 = task (Wimp_T)
   ;  R1 = &44EC2

Service_ToolboxTaskDied         *       &44EC3
   ;Entry
   ;  R0 = task (Wimp_T)
   ;  R1 = &44EC3

Service_ToolboxDying            *       &44EC4
   ;Entry
   ;  R1 = &44EC4

Service_WindowDeleted           *       &44EC5
   ;Entry
   ;  R0 = w (Wimp_W)
   ;  R1 = &44EC5
   ;  R2 = task (Wimp_T)

Service_RedrawingWindow         *       &44EC6
   ;Entry
   ;  R0 = type (Int)
   ;  R1 = &44EC6

        ]

        END
