#set IOC_addr		= &3200000

#set SeriousErrorV_Collect	= 0
#set SeriousErrorV_Recover	= 1
#set SeriousErrorV_Report	= 2
#set SeriousErrorV_Custom	= 3

#set OS_CallASWI	= &6F
#set OS_CallASWIR12	= &71
#set XOS_CallASWI	= &2006F
#set XOS_Hardware	= &2007A
#set XOS_LeaveOS	= &2007C
#set XOS_ReadLine32	= &2007D
#set XRT_Register	= &575C0 + &20000
#set XRT_Deregister	= &575C1 + &20000
#set XRT_Yield		= &575C2 + &20000
#set XRT_TimedYield	= &575C3 + &20000
#set XRT_ChangePriority	= &575C4 + &20000
#set XRT_ReadInfo	= &575C5 + &20000
#set XFileCore_Features	= &4054D + &20000
#set XJoystick_Read	= &43F40 + &20000
#set XPortable_Speed	= &42FC0 + &20000
#set XPortable_Idle	= &42FC6 + &20000
#set XADFS_DiscOp	= &60240
#set XADFS_MiscOp	= &6024C

#set Module_Run				= 0
#set Module_Load			= 1
#set Module_Enter			= 2
#set Module_ReInit			= 3
#set Module_Delete			= 4
#set Module_DescribeRMA			= 5
#set Module_Claim			= 6
#set Module_Free			= 7
#set Module_Tidy			= 8
#set Module_Clear			= 9
#set Module_InsertFromMemory		= 10
#set Module_InsertFromMemoryToRMA	= 11
#set Module_ExtractInfo			= 12
#set Module_ExtendBlock			= 13
#set Module_Lookup			= 18
#set Module_EnumerateROM		= 20
#set Module_Enumerate			= 22


#set Heap_Initialise	= 0		;PRM1-375
#set Heap_DescribeHeap	= 1
#set Heap_Claim		= 2
#set Heap_Free		= 3
#set Heap_Extend	= 4
#set Heap_BlockSize	= 6
#set Heap_BaseOffset	= 8

#set SpriteOp_ReadArea		= 8
#set SpriteOp_ReadSpriteInfo	= 40

#set FSControl_StartApplication	= 2
#set FSControl_Run		= 4
#set FSControl_SelectFS		= 14
#set FSControl_GetFileType	= 38

#set UpCall_NewApplication	= &100

; *************************** HAL related ****************************
; www.riscosopen.org/wiki/documentation/show/HAL entry points by number
#set HAL_IRQEnable		= 1
#set HAL_IRQDisable		= 2
#set HAL_IRQClear		= 3
#set HAL_IRQStatus		= 5

#set HAL_Timers			= 12
#set HAL_TimerDevice		= 13
#set HAL_TimerGranularity	= 14
#set HAL_TimerSetPeriod		= 16
#set HAL_TimerReadCountdown	= 18
#set HAL_TimerIRQClear		= 113
#set HAL_TimerIRQStatus		= 114

; ************************** WIMP related ****************************
#set WIMP_Message_Quit		= 0
#set WIMP_Message_Save		= 1
#set WIMP_Message_DataSaveAck	= 2
#set WIMP_Message_Load		= 3
#set WIMP_Message_SlotSize	= &400C4
#set WIMP_Message_SetSlot	= &400C5
#set WIMP_Version		= 200
#set WIMP_Poll_Mask		= %110001

#set WimpSysInfo_ActiveTasks		= 0
#set WimpSysInfo_DesktopState		= 3
#set WimpSysInfo_CurrentTaskHandle	= 5

#set XWimp_Extend		= &600FB
#set OS_LeaveOS			= &7C

; **************************** Errors ********************************
#set Error_Ambiguous_Disc_Name = &1089E

; ************************ Service numbers ***************************
#set Service_Memory		= &11
#set Service_Reset		= &27
#set Service_NewApplication	= &2A
#set Service_ModeChange		= &46
#set Service_StartFiler		= &4B
#set Service_StartedFiler	= &4C
#set Service_PreModeChange	= &4D
#set Service_MemoryMoved	= &4E
#set Service_ModeExtension	= &50
#set Service_ModeTranslation	= &51
#set Service_WimpCloseDown	= &53
#set Service_Sound		= &54
#set Service_WimpReportError	= &57
#set Service_IdentifyFormat	= &6B
#set Service_ValidateAddress	= &6D
#set Service_DiscDismounted	= &7D
#set Service_ShutdownComplete	= &80
#set Service_ModeChanging	= &89
#set Service_EnumerateScreenModes = &8D
#set Service_UKCompression	= &B7
#set Service_ModulePreInit	= &B9

; ******************** Hardware vector numbers ***********************
#set Vector_BranchThruZero	= 0
#set Vector_UndefinedInstr	= 1
#set Vector_SWI			= 2
#set Vector_PrefetchAbort	= 3
#set Vector_DataAbort		= 4
#set Vector_IRQ			= 6
#set Vector_Exit		= 11

; ******************** Software vector numbers ***********************
#set Vector_ErrorV	= 1
#set Vector_IRQV	= 2
#set Vector_CLIV	= 5
#set Vector_ByteV	= 6
#set Vector_WordV	= 7
#set Vector_FileV	= 8
#set Vector_ArgsV	= 9
#set Vector_BGetV	= &A
#set Vector_BPutV	= &B
#set Vector_GBPBV	= &C
#set Vector_FindV	= &D
#set Vector_EventV	= &10
#set Vector_KeyV	= &13
#set Vector_InsV	= &14
#set Vector_MouseV	= &1A
#set Vector_TickerV	= &1C
#set Vector_ChangeEnvironmentV	= &1E
#set Vector_PaletteV	= &23
#set Vector_GraphicsV	= &2A
#set Vector_SeriousErrorV = &2C

; *********************** Filecore variables **************************
#set DiscRecSig			= 60	; length of disc record
#set MiscOp0_DiscRecSig		= 20	; length of disc record for MiscOp 0
#set DiscRecStart		= 4	; start of the header on a new map disc
#set OldName0			= &F7	; char 1 of disc name on a old map disc
#set OldName1			= &1F6	; char 1 of disc name on a old map disc
#set OldSize			= &FC	; disc size / 256
#set Max_File_Length		= 256	; max length of path RISC OS supports
#set BootBlockDiscRec		= &1C0	; offset in the boot record of the disc record
#set Error_Sector_CRC		= &22	; FileCore return error codes PRM2-280
#set Error_ID_CRC		= &23
#set Error_Sector_Not_Found	= &10
#set Error_Mark_Not_Found	= &24
#set Error_Head_Positioning	= &04
#set Error_Bad_Parameters	= &A1	; PRM2-600
#set Error_Write_Protected	= &C9
#set Error_Sector_CRC_1772	= 1<<3	; PRM2-278
#set Error_Sector_Not_Found_1772= 1<<4
#set Error_Mark_Not_Found_1772	= 1<<2

#set Floppy_FIQ			= 1<<1	; FileCore descriptor block bit flag
#set ADFS_Sector_Aligned	= 1<<9	; FileCore descriptor block bit flag
#set New_Style_Errors		= 1<<10	; FileCore descriptor block bit flag
#set DefectList_Op		= 1<<4	; FileCore R1 bit indicating a defect list
#set ScatterList_Op		= 1<<5	; FileCore R1 bit marking a scatter list
#set Background_Op		= 1<<8	; FileCore R1 bit marking a background transfer
#set Scatter_List_End		= 65536	; used to check for scatter list wrapping


; ******************** DiscRec offset variables ***********************
#set DR_log2secsize		= 0	; disc record offset for log2secsize
#set DR_secspertrack		= 1	; disc record offset for secspertrack
#set DR_heads			= 2	; disc record offset for heads
#set DR_density			= 3	; disc record offset for density
#set DR_lowsector		= 8	; disc record offset for lowsector
#set DR_root			= 12	; disc record offset for root
#set DR_discsize		= 16	; disc record offset for disc size


; ********************* ChangeEnvironment statics *********************
#set MemLimit			= 0
#set ApplicationSpaceSize	= 14
#set CAOPointer			= 15


; *************************** Cache related ***************************
#set DRAIN_WRITE_BUFFER		= 1 << 28	;OS_MMUControl bit (see Wiki)

; ************************ Page Zero variables ************************
#set page_zero_Undefined	= &04
#set page_zero_IRQ		= &18
#set page_zero_FIQ		= &1C
#set page_zero_IRQ1V		= &100
#set page_zero_hardware_vectors = &3A4
#set page_zero_CLibCounter	= &FE8		;our use (unused address)
#set page_zero_RISCOSLibWord	= &FEC
#set page_zero_CLibWord		= &FF0
#set page_zero_ScreenStart	= &10C0		;on RO3.11
#set page_zero_CursorFudgeFactor= &10D4		;on RO3.5 - 4.x
#set page_zero_HSWRSoftCopy	= &1474		;on RO3.5 - 4.x
#set page_zero_VIDCControlCopy	= &1584		;on RO3.11
#set page_zero_VertAdjust	= &1588		;on RO3.5 - 4.x
#set page_zero_Breakpoint	= &2780		;on RO5 pre PZ relocation
#set page_zero_Arthur_SoftFont	= &36C0		;on Arthur
#set page_zero_SoftFont		= &3700		;on RO2.00+
#set page_zero_SoftFont_size	= &740
#set page_zero_Scratch_Space	= &4000

; ******************* RISC OS 3.x address pointers ********************
#set RO3xx_SWI_Dispatcher = &1F033C0	;Entry point of RO3.x SWI dispatcher
#set RO3xx_Pointer_Buffer = &1F03800	;Address of Mouse pointer


; ************************ RISC OS 3.5 statics ************************
#set RO371_L1PT			= &2C0C000	;RO3.5 > RO3.71 L1PT address
#set RO371_L2PT			= &2C00000	;RO3.5 > RO3.71 L2PT address
