#ifndef __swicodes_h
#define __swicodes_h

#define XOS_Bit                            0x020000

#define SWI_OS_WriteI                      0x000100

#define SWI_OS_WriteC                      0x000000
#define SWI_OS_WriteS                      0x000001
#define SWI_OS_Write0                      0x000002
#define SWI_OS_NewLine                     0x000003
#define SWI_OS_ReadC                       0x000004
#define SWI_OS_CLI                         0x000005
#define SWI_OS_Byte                        0x000006
#define SWI_OS_Word                        0x000007
#define SWI_OS_File                        0x000008
#define SWI_OS_Args                        0x000009
#define SWI_OS_BGet                        0x00000a
#define SWI_OS_BPut                        0x00000b
#define SWI_OS_GBPB                        0x00000c
#define SWI_OS_Find                        0x00000d
#define SWI_OS_ReadLine                    0x00000e
#define SWI_OS_Control                     0x00000f
#define SWI_OS_GetEnv                      0x000010
#define SWI_OS_Exit                        0x000011
#define SWI_OS_SetEnv                      0x000012
#define SWI_OS_IntOn                       0x000013
#define SWI_OS_IntOff                      0x000014
#define SWI_OS_CallBack                    0x000015
#define SWI_OS_EnterOS                     0x000016
#define SWI_OS_BreakPt                     0x000017
#define SWI_OS_BreakCtrl                   0x000018
#define SWI_OS_UnusedSWI                   0x000019
#define SWI_OS_UpdateMEMC                  0x00001a
#define SWI_OS_SetCallBack                 0x00001b
#define SWI_OS_Mouse                       0x00001c
#define SWI_OS_Heap                        0x00001d
#define SWI_OS_Module                      0x00001e
#define SWI_OS_Claim                       0x00001f
#define SWI_OS_Release                     0x000020
#define SWI_OS_ReadUnsigned                0x000021
#define SWI_OS_GenerateEvent               0x000022
#define SWI_OS_ReadVarVal                  0x000023
#define SWI_OS_SetVarVal                   0x000024
#define SWI_OS_GSInit                      0x000025
#define SWI_OS_GSRead                      0x000026
#define SWI_OS_GSTrans                     0x000027
#define SWI_OS_BinaryToDecimal             0x000028
#define SWI_OS_FSControl                   0x000029
#define SWI_OS_ChangeDynamicArea           0x00002a
#define SWI_OS_GenerateError               0x00002b
#define SWI_OS_ReadEscapeState             0x00002c
#define SWI_OS_EvaluateExpression          0x00002d
#define SWI_OS_SpriteOp                    0x00002e
#define SWI_OS_ReadPalette                 0x00002f
#define SWI_OS_ServiceCall                 0x000030
#define SWI_OS_ReadVduVariables            0x000031
#define SWI_OS_ReadPoint                   0x000032
#define SWI_OS_UpCall                      0x000033
#define SWI_OS_CallAVector                 0x000034
#define SWI_OS_ReadModeVariable            0x000035
#define SWI_OS_RemoveCursors               0x000036
#define SWI_OS_RestoreCursors              0x000037
#define SWI_OS_SWINumberToString           0x000038
#define SWI_OS_SWINumberFromString         0x000039
#define SWI_OS_ValidateAddress             0x00003a
#define SWI_OS_CallAfter                   0x00003b
#define SWI_OS_CallEvery                   0x00003c
#define SWI_OS_RemoveTickerEvent           0x00003d
#define SWI_OS_InstallKeyHandler           0x00003e
#define SWI_OS_CheckModeValid              0x00003f
#define SWI_OS_ChangeEnvironment           0x000040
#define SWI_OS_ClaimScreenMemory           0x000041
#define SWI_OS_ReadMonotonicTime           0x000042
#define SWI_OS_SubstituteArgs              0x000043
#define SWI_OS_PrettyPrint                 0x000044
#define SWI_OS_Plot                        0x000045
#define SWI_OS_WriteN                      0x000046
#define SWI_OS_AddToVector                 0x000047
#define SWI_OS_WriteEnv                    0x000048
#define SWI_OS_ReadArgs                    0x000049
#define SWI_OS_ReadRAMFsLimits             0x00004a
#define SWI_OS_ClaimDeviceVector           0x00004b
#define SWI_OS_ReleaseDeviceVector         0x00004c
#define SWI_OS_DelinkApplication           0x00004d
#define SWI_OS_RelinkApplication           0x00004e
#define SWI_OS_HeapSort                    0x00004f
#define SWI_OS_ExitAndDie                  0x000050
#define SWI_OS_ReadMemMapInfo              0x000051
#define SWI_OS_ReadMemMapEntries           0x000052
#define SWI_OS_SetMemMapEntries            0x000053
#define SWI_OS_AddCallBack                 0x000054
#define SWI_OS_ReadDefaultHandler          0x000055
#define SWI_OS_SetECFOrigin                0x000056
#define SWI_OS_SerialOp                    0x000057
#define SWI_OS_ReadSysInfo                 0x000058
#define SWI_OS_Confirm                     0x000059
#define SWI_OS_ChangedBox                  0x00005a
#define SWI_OS_CRC                         0x00005b
#define SWI_OS_ReadDynamicArea             0x00005c
#define SWI_OS_PrintChar                   0x00005d
#define SWI_OS_ConvertStandardDateAndTime  0x0000c0
#define SWI_OS_ConvertDateAndTime          0x0000c1
#define SWI_OS_ConvertHex1                 0x0000d0
#define SWI_OS_ConvertHex2                 0x0000d1
#define SWI_OS_ConvertHex4                 0x0000d2
#define SWI_OS_ConvertHex6                 0x0000d3
#define SWI_OS_ConvertHex8                 0x0000d4
#define SWI_OS_ConvertCardinal1            0x0000d5
#define SWI_OS_ConvertCardinal2            0x0000d6
#define SWI_OS_ConvertCardinal3            0x0000d7
#define SWI_OS_ConvertCardinal4            0x0000d8
#define SWI_OS_ConvertInteger1             0x0000d9
#define SWI_OS_ConvertInteger2             0x0000da
#define SWI_OS_ConvertInteger3             0x0000db
#define SWI_OS_ConvertInteger4             0x0000dc
#define SWI_OS_ConvertBinary1              0x0000dd
#define SWI_OS_ConvertBinary2              0x0000de
#define SWI_OS_ConvertBinary3              0x0000df
#define SWI_OS_ConvertBinary4              0x0000e0
#define SWI_OS_ConvertSpacedCardinal1      0x0000e1
#define SWI_OS_ConvertSpacedCardinal2      0x0000e2
#define SWI_OS_ConvertSpacedCardinal3      0x0000e3
#define SWI_OS_ConvertSpacedCardinal4      0x0000e4
#define SWI_OS_ConvertSpacedInteger1       0x0000e5
#define SWI_OS_ConvertSpacedInteger2       0x0000e6
#define SWI_OS_ConvertSpacedInteger3       0x0000e7
#define SWI_OS_ConvertSpacedInteger4       0x0000e8
#define SWI_OS_ConvertFixedNetStation      0x0000e9
#define SWI_OS_ConvertNetStation           0x0000ea
#define SWI_OS_ConvertFixedFileSize        0x0000eb
#define SWI_OS_ConvertFileSize             0x0000ec
#define SWI_IIC_Control                    0x000240
#define SWI_Econet_CreateReceive           0x040000
#define SWI_Econet_ExamineReceive          0x040001
#define SWI_Econet_ReadReceive             0x040002
#define SWI_Econet_AbandonReceive          0x040003
#define SWI_Econet_WaitForReception        0x040004
#define SWI_Econet_EnumerateReceive        0x040005
#define SWI_Econet_StartTransmit           0x040006
#define SWI_Econet_PollTransmit            0x040007
#define SWI_Econet_AbandonTransmit         0x040008
#define SWI_Econet_DoTransmit              0x040009
#define SWI_Econet_ReadLocalStationAndNet  0x04000a
#define SWI_Econet_ConvertStatusToString   0x04000b
#define SWI_Econet_ConvertStatusToError    0x04000c
#define SWI_Econet_ReadProtection          0x04000d
#define SWI_Econet_SetProtection           0x04000e
#define SWI_Econet_ReadStationNumber       0x04000f
#define SWI_Econet_PrintBanner             0x040010
#define SWI_Econet_ReleasePort             0x040012
#define SWI_Econet_AllocatePort            0x040013
#define SWI_Econet_DeAllocatePort          0x040014
#define SWI_Econet_ClaimPort               0x040015
#define SWI_Econet_StartImmediate          0x040016
#define SWI_Econet_DoImmediate             0x040017
#define SWI_NetFS_ReadFSNumber             0x040040
#define SWI_NetFS_SetFSNumber              0x040041
#define SWI_NetFS_ReadFSName               0x040042
#define SWI_NetFS_SetFSName                0x040043
#define SWI_NetFS_ReadCurrentContext       0x040044
#define SWI_NetFS_SetCurrentContext        0x040045
#define SWI_NetFS_ReadFSTimeouts           0x040046
#define SWI_NetFS_SetFSTimeouts            0x040047
#define SWI_NetFS_DoFSOp                   0x040048
#define SWI_NetFS_EnumerateFSList          0x040049
#define SWI_NetFS_EnumerateFS              0x04004a
#define SWI_NetFS_ConvertDate              0x04004b
#define SWI_NetFS_DoFSOpToGivenFS          0x04004c
#define SWI_Font_CacheAddr                 0x040080
#define SWI_Font_FindFont                  0x040081
#define SWI_Font_LoseFont                  0x040082
#define SWI_Font_ReadDefn                  0x040083
#define SWI_Font_ReadInfo                  0x040084
#define SWI_Font_StringWidth               0x040085
#define SWI_Font_Paint                     0x040086
#define SWI_Font_Caret                     0x040087
#define SWI_Font_ConverttoOS               0x040088
#define SWI_Font_Converttopoints           0x040089
#define SWI_Font_SetFont                   0x04008a
#define SWI_Font_CurrentFont               0x04008b
#define SWI_Font_FutureFont                0x04008c
#define SWI_Font_FindCaret                 0x04008d
#define SWI_Font_CharBBox                  0x04008e
#define SWI_Font_ReadScaleFactor           0x04008f
#define SWI_Font_SetScaleFactor            0x040090
#define SWI_Font_ListFonts                 0x040091
#define SWI_Font_SetFontColours            0x040092
#define SWI_Font_SetPalette                0x040093
#define SWI_Font_ReadThresholds            0x040094
#define SWI_Font_SetThresholds             0x040095
#define SWI_Font_FindCaretJ                0x040096
#define SWI_Font_StringBBox                0x040097
#define SWI_Font_ReadColourTable           0x040098
#define SWI_Wimp_Initialise                0x0400c0
#define SWI_Wimp_CreateWindow              0x0400c1
#define SWI_Wimp_CreateIcon                0x0400c2
#define SWI_Wimp_DeleteWindow              0x0400c3
#define SWI_Wimp_DeleteIcon                0x0400c4
#define SWI_Wimp_OpenWindow                0x0400c5
#define SWI_Wimp_CloseWindow               0x0400c6
#define SWI_Wimp_Poll                      0x0400c7
#define SWI_Wimp_RedrawWindow              0x0400c8
#define SWI_Wimp_UpdateWindow              0x0400c9
#define SWI_Wimp_GetRectangle              0x0400ca
#define SWI_Wimp_GetWindowState            0x0400cb
#define SWI_Wimp_GetWindowInfo             0x0400cc
#define SWI_Wimp_SetIconState              0x0400cd
#define SWI_Wimp_GetIconState              0x0400ce
#define SWI_Wimp_GetPointerInfo            0x0400cf
#define SWI_Wimp_DragBox                   0x0400d0
#define SWI_Wimp_ForceRedraw               0x0400d1
#define SWI_Wimp_SetCaretPosition          0x0400d2
#define SWI_Wimp_GetCaretPosition          0x0400d3
#define SWI_Wimp_CreateMenu                0x0400d4
#define SWI_Wimp_DecodeMenu                0x0400d5
#define SWI_Wimp_WhichIcon                 0x0400d6
#define SWI_Wimp_SetExtent                 0x0400d7
#define SWI_Wimp_SetPointerShape           0x0400d8
#define SWI_Wimp_OpenTemplate              0x0400d9
#define SWI_Wimp_CloseTemplate             0x0400da
#define SWI_Wimp_LoadTemplate              0x0400db
#define SWI_Wimp_ProcessKey                0x0400dc
#define SWI_Wimp_CloseDown                 0x0400dd
#define SWI_Wimp_StartTask                 0x0400de
#define SWI_Wimp_ReportError               0x0400df
#define SWI_Wimp_GetWindowOutline          0x0400e0
#define SWI_Wimp_PollIdle                  0x0400e1
#define SWI_Wimp_PlotIcon                  0x0400e2
#define SWI_Wimp_SetMode                   0x0400e3
#define SWI_Wimp_SetPalette                0x0400e4
#define SWI_Wimp_ReadPalette               0x0400e5
#define SWI_Wimp_SetColour                 0x0400e6
#define SWI_Wimp_SendMessage               0x0400e7
#define SWI_Wimp_CreateSubMenu             0x0400e8
#define SWI_Wimp_SpriteOp                  0x0400e9
#define SWI_Wimp_BaseOfSprites             0x0400ea
#define SWI_Wimp_BlockCopy                 0x0400eb
#define SWI_Wimp_SlotSize                  0x0400ec
#define SWI_Wimp_ReadPixTrans              0x0400ed
#define SWI_Wimp_ClaimFreeMemory           0x0400ee
#define SWI_Wimp_CommandWindow             0x0400ef
#define SWI_Wimp_TextColour                0x0400f0
#define SWI_Wimp_TransferBlock             0x0400f1
#define SWI_Wimp_ReadSysInfo               0x0400f2
#define SWI_Wimp_SetFontColours            0x0400f3
#define SWI_Sound_Configure                0x040140
#define SWI_Sound_Enable                   0x040141
#define SWI_Sound_Stereo                   0x040142
#define SWI_Sound_Speaker                  0x040143
#define SWI_Sound_Volume                   0x040180
#define SWI_Sound_SoundLog                 0x040181
#define SWI_Sound_LogScale                 0x040182
#define SWI_Sound_InstallVoice             0x040183
#define SWI_Sound_RemoveVoice              0x040184
#define SWI_Sound_AttachVoice              0x040185
#define SWI_Sound_ControlPacked            0x040186
#define SWI_Sound_Tuning                   0x040187
#define SWI_Sound_Pitch                    0x040188
#define SWI_Sound_Control                  0x040189
#define SWI_Sound_AttachNamedVoice         0x04018a
#define SWI_Sound_ReadControlBlock         0x04018b
#define SWI_Sound_WriteControlBlock        0x04018c
#define SWI_Sound_QInit                    0x0401c0
#define SWI_Sound_QSchedule                0x0401c1
#define SWI_Sound_QRemove                  0x0401c2
#define SWI_Sound_QFree                    0x0401c3
#define SWI_Sound_QSDispatch               0x0401c4
#define SWI_Sound_QTempo                   0x0401c5
#define SWI_Sound_QBeat                    0x0401c6
#define SWI_Sound_QInterface               0x0401c7
#define SWI_NetPrint_ReadPSNumber          0x040200
#define SWI_NetPrint_SetPSNumber           0x040201
#define SWI_NetPrint_ReadPSName            0x040202
#define SWI_NetPrint_SetPSName             0x040203
#define SWI_NetPrint_ReadPSTimeouts        0x040204
#define SWI_NetPrint_SetPSTimeouts         0x040205
#define SWI_ADFS_DiscOp                    0x040240
#define SWI_ADFS_HDC                       0x040241
#define SWI_ADFS_Drives                    0x040242
#define SWI_ADFS_FreeSpace                 0x040243
#define SWI_ADFS_Retries                   0x040244
#define SWI_ADFS_DescribeDisc              0x040245
#define SWI_Podule_ReadID                  0x040280
#define SWI_Podule_ReadHeader              0x040281
#define SWI_Podule_EnumerateChunks         0x040282
#define SWI_Podule_ReadChunk               0x040283
#define SWI_Podule_ReadBytes               0x040284
#define SWI_Podule_WriteBytes              0x040285
#define SWI_Podule_CallLoader              0x040286
#define SWI_Podule_RawRead                 0x040287
#define SWI_Podule_RawWrite                0x040288
#define SWI_Podule_HardwareAddress         0x040289
#define SWI_WaveSynth_Load                 0x040300
#define SWI_Debugger_Disassemble           0x040380
#define SWI_FPEmulator_Version             0x040480
#define SWI_FileCore_DiscOp                0x040540
#define SWI_FileCore_Create                0x040541
#define SWI_FileCore_Drives                0x040542
#define SWI_FileCore_FreeSpace             0x040543
#define SWI_FileCore_FloppyStructure       0x040544
#define SWI_FileCore_DescribeDisc          0x040545
#define SWI_Shell_Create                   0x0405c0
#define SWI_Shell_Destroy                  0x0405c1
#define SWI_Hourglass_On                   0x0406c0
#define SWI_Hourglass_Off                  0x0406c1
#define SWI_Hourglass_Smash                0x0406c2
#define SWI_Hourglass_Start                0x0406c3
#define SWI_Hourglass_Percentage           0x0406c4
#define SWI_Hourglass_LEDs                 0x0406c5
#define SWI_Draw_ProcessPath               0x040700
#define SWI_Draw_ProcessPathFP             0x040701
#define SWI_Draw_Fill                      0x040702
#define SWI_Draw_FillFP                    0x040703
#define SWI_Draw_Stroke                    0x040704
#define SWI_Draw_StrokeFP                  0x040705
#define SWI_Draw_StrokePath                0x040706
#define SWI_Draw_StrokePathFP              0x040707
#define SWI_Draw_FlattenPath               0x040708
#define SWI_Draw_FlattenPathFP             0x040709
#define SWI_Draw_TransformPath             0x04070a
#define SWI_Draw_TransformPathFP           0x04070b

#define SWI_ColourTrans_SetGCOL            0x040743

#define SWI_RamFS_DiscOp                   0x040780
#define SWI_RamFS_Drives                   0x040782
#define SWI_RamFS_FreeSpace                0x040783
#define SWI_RamFS_DescribeDisc             0x040785

#endif
