; h.swinames
;
; This header file for GETting from assembler source defines SWI names
; for RISC OS 3 (version 3.50).
;
;**************************************************************************
;
; SWI names are exported in two forms :
; 1)  with OS_  'OS_DoThingToOtherThing'  as N
; 2)  with XOS_ 'XOS_DoThingToOtherThing' as N + Auto_Error_SWI_bit
;

Auto_Error_SWI_bit_number * 17
Auto_Error_SWI_bit * 1 :SHL: Auto_Error_SWI_bit_number

;
; The following macro defines the SWI names using the '*' directive and the
; '#' directive to increment the SWI number
;
; Modified by Fred Graute so that it is accepted by AS
; FG: Replaced @ by {var} so gcc accepts it
;

        GBLS    SWIClass
        MACRO
        AddSWI  $SWIName,$value
        LCLA    swinum
  [     "$value" = ""
swinum  SETA {VAR}
        # 1
  |
swinum  SETA $value
  ]
$SWIClass._$SWIName * swinum
X$SWIClass._$SWIName * $SWIClass._$SWIName + Auto_Error_SWI_bit
        MEND

;
; Now for the SWI name table - using the '^' directive to build a table
; of SWI numbers
;


SWIClass SETS   "Report"

        ^      &54C80
        AddSWI Text0                            ; &54C80
        AddSWI TextS                            ; &54C81
        AddSWI Regs                             ; &54C82
        AddSWI Registers                        ; &54C83
        AddSWI Where                            ; &54C84
        AddSWI Poll                             ; &54C85
        AddSWI Dump                             ; &54C86
        AddSWI GetSwiRet                        ; &54C87 (Internal use only)
        AddSWI Dummy1                           ; &54C88
        AddSWI Dummy2                           ; &54C89

        AddSWI Quit                             ; &54C8A
        AddSWI Clear                            ; &54C8B
        AddSWI Open                             ; &54C8C
        AddSWI Close                            ; &54C8D
        AddSWI On                               ; &54C8E
        AddSWI Off                              ; &54C8F
        AddSWI CmdOn                            ; &54C90
        AddSWI CmdOff                           ; &54C91
        AddSWI Hide                             ; &54C92
        AddSWI Show                             ; &54C93
        AddSWI ErrOn                            ; &54C94
        AddSWI ErrOff                           ; &54C95
        AddSWI TaskOn                           ; &54C96
        AddSWI TaskOff                          ; &54C97
        AddSWI Vdu4On                           ; &54C98
        AddSWI Vdu4Off                          ; &54C99
        AddSWI RmaOn                            ; &54C9A
        AddSWI RmaOff                           ; &54C9B
        AddSWI TimeOn                           ; &54C9C
        AddSWI TimeOff                          ; &54C9D
        AddSWI SrceOn                           ; &54C9E
        AddSWI SrceOff                          ; &54C9F
        AddSWI ObeyOn                           ; &54CA0
        AddSWI ObeyOff                          ; &54CA1
        AddSWI Push                             ; &54CA2
        AddSWI Pull                             ; &54CA3

        END
