diff --git a/Makefile b/Makefile index c261335e06b319cbf939f5e5305e6d02ef375480..ff0a80d0f44c74d4920812c0a371b724588809a2 100644 --- a/Makefile +++ b/Makefile @@ -69,11 +69,13 @@ EXPORTS = ${EXP_HDR}.EnvNumbers \ ${EXP_HDR}.VideoDevice \ ${EXP_HDR}.GPIODevice \ ${EXP_HDR}.OSEntries \ + ${EXP_HDR}.OSRSI6 \ ${C_EXP_HDR}.RISCOS \ ${C_EXP_HDR}.HALEntries \ ${C_EXP_HDR}.HALDevice \ ${C_EXP_HDR}.OSEntries \ - ${C_EXP_HDR}.Variables + ${C_EXP_HDR}.Variables \ + ${C_EXP_HDR}.OSRSI6 # # Generic rules: @@ -180,6 +182,9 @@ ${EXP_HDR}.VideoDevice: hdr.VideoDevice ${EXP_HDR}.GPIODevice: hdr.GPIODevice ${CP} hdr.GPIODevice $@ ${CPFLAGS} +${EXP_HDR}.OSRSI6: hdr.OSRSI6 + ${CP} hdr.OSRSI6 $@ ${CPFLAGS} + ${C_EXP_HDR}.RISCOS: hdr.RISCOS ${MKDIR} ${C_EXP_HDR} ${PERL} Build:Hdr2H hdr.RISCOS $@ @@ -200,6 +205,10 @@ ${C_EXP_HDR}.Variables: hdr.Variables ${MKDIR} ${C_EXP_HDR} ${PERL} Build:Hdr2H hdr.Variables $@ +${C_EXP_HDR}.OSRSI6: hdr.OSRSI6 + ${MKDIR} ${C_EXP_HDR} + ${PERL} Build:Hdr2H hdr.OSRSI6 $@ + o.Global.h.HALDevice: hdr.HALDevice ${MKDIR} o.Global.h dir o diff --git a/VersionASM b/VersionASM index 1a5b6c4ad933095c23869c2bd0ec9daf52bcbc56..31bf881224400be334f9957f316a9c93f96bf997 100644 --- a/VersionASM +++ b/VersionASM @@ -13,11 +13,11 @@ GBLS Module_ComponentPath Module_MajorVersion SETS "5.35" Module_Version SETA 535 -Module_MinorVersion SETS "4.79.2.98.2.43" -Module_Date SETS "01 Aug 2011" -Module_ApplicationDate SETS "01-Aug-11" +Module_MinorVersion SETS "4.79.2.98.2.44" +Module_Date SETS "04 Aug 2011" +Module_ApplicationDate SETS "04-Aug-11" Module_ComponentName SETS "Kernel" Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel" -Module_FullVersion SETS "5.35 (4.79.2.98.2.43)" -Module_HelpVersion SETS "5.35 (01 Aug 2011) 4.79.2.98.2.43" +Module_FullVersion SETS "5.35 (4.79.2.98.2.44)" +Module_HelpVersion SETS "5.35 (04 Aug 2011) 4.79.2.98.2.44" END diff --git a/VersionNum b/VersionNum index d6b2b474f2da0458a5473da55dd6e98a96718767..21772f6abf467132716f7776d517bf79a7eb384d 100644 --- a/VersionNum +++ b/VersionNum @@ -5,19 +5,19 @@ * */ #define Module_MajorVersion_CMHG 5.35 -#define Module_MinorVersion_CMHG 4.79.2.98.2.43 -#define Module_Date_CMHG 01 Aug 2011 +#define Module_MinorVersion_CMHG 4.79.2.98.2.44 +#define Module_Date_CMHG 04 Aug 2011 #define Module_MajorVersion "5.35" #define Module_Version 535 -#define Module_MinorVersion "4.79.2.98.2.43" -#define Module_Date "01 Aug 2011" +#define Module_MinorVersion "4.79.2.98.2.44" +#define Module_Date "04 Aug 2011" -#define Module_ApplicationDate "01-Aug-11" +#define Module_ApplicationDate "04-Aug-11" #define Module_ComponentName "Kernel" #define Module_ComponentPath "castle/RiscOS/Sources/Kernel" -#define Module_FullVersion "5.35 (4.79.2.98.2.43)" -#define Module_HelpVersion "5.35 (01 Aug 2011) 4.79.2.98.2.43" +#define Module_FullVersion "5.35 (4.79.2.98.2.44)" +#define Module_HelpVersion "5.35 (04 Aug 2011) 4.79.2.98.2.44" #define Module_LibraryVersionInfo "5:35" diff --git a/hdr/KernelWS b/hdr/KernelWS index c8eb8cccf11f9a019a832a9a1566ca15a7a16e70..79e758772d572515dd85b87858d213d5019d451e 100644 --- a/hdr/KernelWS +++ b/hdr/KernelWS @@ -231,7 +231,11 @@ DANode_NodeSize # 0 ; The addresses below are only temporary; eventually most of them will be allocated at run time (we hope!) + [ HiProcVecs +ZeroPage * &FFFF0000 + | ZeroPage * &00000000 + ] [ HAL ; Sort out 26/32 bit versions @@ -819,20 +823,18 @@ TextExpandArea_Size * (8*1024) # 2*4 ; SPARE (avoiding changes of exported addresses for now) -;ScreenBlankFlag # 1 ; 0 => unblanked, 1 => blanked +ScreenBlankFlag # 1 ; 0 => unblanked, 1 => blanked -Export_ScreenBlankFlag # 1 - ASSERT Export_ScreenBlankFlag = ScreenBlankFlag - ASSERT ?Export_ScreenBlankFlag = ?ScreenBlankFlag + ASSERT ScreenBlankFlag = Legacy_ScreenBlankFlag + ASSERT ?ScreenBlankFlag = ?Legacy_ScreenBlankFlag -;ScreenBlankDPMSState # 1 ; 0 => just blank video - ; 1 => blank to stand-by (hsync off) - ; 2 => blank to suspend (vsync off) - ; 3 => blank to off (H+V off) +ScreenBlankDPMSState # 1 ; 0 => just blank video + ; 1 => blank to stand-by (hsync off) + ; 2 => blank to suspend (vsync off) + ; 3 => blank to off (H+V off) -Export_ScreenBlankDPMSState # 1 - ASSERT Export_ScreenBlankDPMSState = ScreenBlankDPMSState - ASSERT ?Export_ScreenBlankDPMSState = ?ScreenBlankDPMSState + ASSERT ScreenBlankDPMSState = Legacy_ScreenBlankDPMSState + ASSERT ?ScreenBlankDPMSState = ?Legacy_ScreenBlankDPMSState [ AssemblingArthur :LAND: :DEF: ShowWS @@ -840,13 +842,13 @@ Export_ScreenBlankDPMSState # 1 ] AlignSpace 64 -Export_FgEcfOraEor # 4*16 ; Interleaved zgora & zgeor - ASSERT Export_FgEcfOraEor = FgEcfOraEor - ASSERT ?Export_FgEcfOraEor = ?FgEcfOraEor +FgEcfOraEor # 4*16 ; Interleaved zgora & zgeor + ASSERT FgEcfOraEor = Legacy_FgEcfOraEor + ASSERT ?FgEcfOraEor = ?Legacy_FgEcfOraEor -Export_BgEcfOraEor # 4*16 ; Interleaved zgora & zgeor - ASSERT Export_BgEcfOraEor = BgEcfOraEor - ASSERT ?Export_BgEcfOraEor = ?BgEcfOraEor +BgEcfOraEor # 4*16 ; Interleaved zgora & zgeor + ASSERT BgEcfOraEor = Legacy_BgEcfOraEor + ASSERT ?BgEcfOraEor = ?Legacy_BgEcfOraEor BgEcfStore # 4*16 ; Interleaved zgora & zgeor to store background @@ -1007,7 +1009,9 @@ IICBus_Size # 0 ; locations used during reset only. Not cleared by ClearPhysRAM, but ; cleared later (just before DEFHAN). - ^ ZeroPage+&80 ; steer clear of FIQ code +; Note that these are all relative to ZeroPage! + + ^ &80 ; steer clear of FIQ code InitIRQHandler # 4 ; pointer to IRQ handler (LDR PC'ed from IRQ HW vector) InitIRQWs # 16 ; workspace for IRQ handler InitUsedStart # 4 ; start of used pages (L2PT etc) not to be cleared @@ -1019,33 +1023,36 @@ InitWsEnd # 0 ; Basic kernel space - defined locations for external modules - ^ ZeroPage+&100 + ^ &100 IRQ1V # 4 ; &100 -Export_ESC_Status # 1 ; &104 - ASSERT Export_ESC_Status = ESC_Status - ASSERT ?Export_ESC_Status = ?ESC_Status +ESC_Status # 1 ; &104 + ASSERT ESC_Status = Legacy_ESC_Status + ASSERT ?ESC_Status = ?Legacy_ESC_Status -Export_LatchBSoftCopy # 1 ; &105 - ASSERT Export_LatchBSoftCopy = LatchBSoftCopy - ASSERT ?Export_LatchBSoftCopy = ?LatchBSoftCopy +LatchBSoftCopy # 1 ; &105 + ASSERT LatchBSoftCopy = Legacy_LatchBSoftCopy + ASSERT ?LatchBSoftCopy = ?Legacy_LatchBSoftCopy IOCControlSoftCopy # 1 ; &106 -Export_CannotReset # 1 ; &107 - ASSERT Export_CannotReset = CannotReset - ASSERT ?Export_CannotReset = ?CannotReset +CannotReset # 1 ; &107 + ASSERT CannotReset = Legacy_CannotReset + ASSERT ?CannotReset = ?Legacy_CannotReset -Export_IRQsema # 4 ; &108 - ASSERT Export_IRQsema = IRQsema - ASSERT ?Export_IRQsema = ?IRQsema +IRQsema # 4 ; &108 + ASSERT IRQsema = Legacy_IRQsema + ASSERT ?IRQsema = ?Legacy_IRQsema MetroGnome # 4 ; &10C + ASSERT MetroGnome = Legacy_MetroGnome + ASSERT ?MetroGnome = ?Legacy_MetroGnome + MemorySpeed # 4 ; &110 -Export_MEMC_CR_SoftCopy # 4 ; &114 - ASSERT Export_MEMC_CR_SoftCopy = MEMC_CR_SoftCopy - ASSERT ?Export_MEMC_CR_SoftCopy = ?MEMC_CR_SoftCopy +MEMC_CR_SoftCopy # 4 ; &114 + ASSERT MEMC_CR_SoftCopy = Legacy_MEMC_CR_SoftCopy + ASSERT ?MEMC_CR_SoftCopy = ?Legacy_MEMC_CR_SoftCopy ResetIndirection # 4 ; &118 @@ -1283,7 +1290,16 @@ RTCFitted # 4 ; =0 no RTC, <2048 = address of I2C RTC, ASSERT @ <= &300 # (&300-@) -Export_DebuggerSpace # 16*8 ; Debugger module needs some zero page + [ :LNOT: HiProcVecs +DebuggerSpace # 16*8 ; Debugger module needs some zero page +DebuggerSpace_Size * ?DebuggerSpace + + ASSERT DebuggerSpace = Legacy_DebuggerSpace + ASSERT ?DebuggerSpace = ?Legacy_DebuggerSpace + | +DebuggerSpace * &2000 ; Debugger gets a page all to itself! +DebuggerSpace_Size * &1000 + ] ; NVRAM support @@ -1481,13 +1497,13 @@ PFIQasIRQ_Chain # 4 EnvTime # 5 -Export_RedirectInHandle # 1 - ASSERT Export_RedirectInHandle = RedirectInHandle - ASSERT ?Export_RedirectInHandle = ?RedirectInHandle +RedirectInHandle # 1 + ASSERT RedirectInHandle = Legacy_RedirectInHandle + ASSERT ?RedirectInHandle = ?Legacy_RedirectInHandle -Export_RedirectOutHandle # 1 - ASSERT Export_RedirectOutHandle = RedirectOutHandle - ASSERT ?Export_RedirectOutHandle = ?RedirectOutHandle +RedirectOutHandle # 1 + ASSERT RedirectOutHandle = Legacy_RedirectOutHandle + ASSERT ?RedirectOutHandle = ?Legacy_RedirectOutHandle MOShasFIQ # 1 FIQclaim_interlock # 1 @@ -1625,6 +1641,8 @@ CachedErrorBlocks # 4 ; pointer to sysheap node holding the er ^ &FE8 CLibCounter # 1 ; Counter for Shared C Library tmpnam function + ASSERT CLibCounter = Legacy_CLibCounter + ASSERT ?CLibCounter = ?Legacy_CLibCounter AlignSpace @@ -1634,18 +1652,26 @@ CLibCounter # 1 ; Counter for Shared C Library t ; ROM libraries. They cannot use the private word since the block pointed ; to by this will be freed. RISCOSLibWord # 4 + ASSERT RISCOSLibWord = Legacy_RISCOSLibWord + ASSERT ?RISCOSLibWord = ?Legacy_RISCOSLibWord + CLibWord # 4 + ASSERT CLibWord = Legacy_CLibWord + ASSERT ?CLibWord = ?Legacy_CLibWord + FPEAnchor # 4 + ASSERT FPEAnchor = Legacy_FPEAnchor + ASSERT ?FPEAnchor = ?Legacy_FPEAnchor -Export_DomainId # 4 ; SKS added for domain identification - ASSERT Export_DomainId = DomainId - ASSERT ?Export_DomainId = ?DomainId +DomainId # 4 ; SKS added for domain identification + ASSERT DomainId = Legacy_DomainId + ASSERT ?DomainId = ?Legacy_DomainId Modula2_Private # 4 ; MICK has FFC and uses it it in USR mode -Export_VduDriverWorkSpace # VDWSSize - ASSERT Export_VduDriverWorkSpace = VduDriverWorkSpace - ASSERT ?Export_VduDriverWorkSpace = ?VduDriverWorkSpace +VduDriverWorkSpace # VDWSSize + ASSERT VduDriverWorkSpace = Legacy_VduDriverWorkSpace + ASSERT ?VduDriverWorkSpace = ?Legacy_VduDriverWorkSpace ASSERT (VduDriverWorkSpace :AND: 63) = 0 ; For Tim (VDU5) @@ -1821,7 +1847,11 @@ SvcTable |#| &400 ASSERT SvcTable = &01F033FC ; Required for SVC table pokers, 1.20 compatible ] [ No26bitCode + [ ZeroPage = 0 SWIDespatch_Size * 32*4 + | +SWIDespatch_Size * 33*4 + ] | SWIDespatch_Size * 30*4 ; can save 2 instructions if 26-bit (no Thumb) ] diff --git a/hdr/OSRSI6 b/hdr/OSRSI6 new file mode 100644 index 0000000000000000000000000000000000000000..e3cbc3c31de3da1ae8a2921ef8f3d8501dbf0a9e --- /dev/null +++ b/hdr/OSRSI6 @@ -0,0 +1,85 @@ +; Copyright 2011 Castle Technology Ltd +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. +; + +; OS_ReadSysInfo 6 values + +OSRSI6_CamEntriesPointer * 0 +OSRSI6_MaxCamEntry * 1 +OSRSI6_PageFlags_Unavailable * 2 +OSRSI6_PhysRamTable * 3 +OSRSI6_ARMA_Cleaner_flipflop * 4 ; Unused in HAL kernels +OSRSI6_TickNodeChain * 5 +OSRSI6_ROMModuleChain * 6 +OSRSI6_DAList * 7 +OSRSI6_AppSpaceDANode * 8 +OSRSI6_Module_List * 9 +OSRSI6_ModuleSHT_Entries * 10 +OSRSI6_ModuleSWI_HashTab * 11 +OSRSI6_IOSystemType * 12 +OSRSI6_L1PT * 13 +OSRSI6_L2PT * 14 +OSRSI6_UNDSTK * 15 +OSRSI6_SVCSTK * 16 +OSRSI6_SysHeapStart * 17 + +; These are used by ROL, but conflict with our allocations + +OSRSI6_ROL_KernelMessagesBlock * 18 +OSRSI6_ROL_ErrorSemaphore * 19 +OSRSI6_ROL_MOSdictionary * 20 +OSRSI6_ROL_Timer_0_Latch_Value * 21 +OSRSI6_ROL_FastTickerV_Counts_Per_Second * 22 +OSRSI6_ROL_VecPtrTab * 23 +OSRSI6_ROL_NVECTORS * 24 +OSRSI6_ROL_IRQSTK * 25 +OSRSI6_ROL_SWIDispatchTable * 26 ; JTABLE-SWIRelocation? +OSRSI6_ROL_SWIBranchBack * 27 ; DirtyBranch? + +; Our allocations which conflict with the above + +OSRSI6_Danger_SWIDispatchTable * 18 ; JTABLE-SWIRelocation (Relocated base of OS SWI dispatch table) +OSRSI6_Danger_Devices * 19 ; Relocated base of IRQ device head nodes +OSRSI6_Danger_DevicesEnd * 20 ; Relocated end of IRQ device head nodes +OSRSI6_Danger_IRQSTK * 21 +OSRSI6_Danger_SoundWorkSpace * 22 ; workspace (8K) and buffers (2*4K) +OSRSI6_Danger_IRQsema * 23 + +; Safe versions of the danger allocations +; Only supported by OS 5.19+, so if backwards compatability is required code +; should (safely!) fall back on the danger versions + +OSRSI6_SWIDispatchTable * 64 ; JTABLE-SWIRelocation (Relocated base of OS SWI dispatch table) +OSRSI6_Devices * 65 ; Relocated base of IRQ device head nodes +OSRSI6_DevicesEnd * 66 ; Relocated end of IRQ device head nodes +OSRSI6_IRQSTK * 67 +OSRSI6_SoundWorkSpace * 68 ; workspace (8K) and buffers (2*4K) +OSRSI6_IRQsema * 69 + +; New ROOL allocations + +OSRSI6_DomainId * 70 ; current Wimp task handle +OSRSI6_OSByteVars * 71 ; OS_Byte vars (previously available via OS_Byte &A6/VarStart) +OSRSI6_FgEcfOraEor * 72 +OSRSI6_BgEcfOraEor * 73 +OSRSI6_DebuggerSpace * 74 +OSRSI6_DebuggerSpace_Size * 75 +OSRSI6_CannotReset * 76 +OSRSI6_MetroGnome * 77 ; OS_ReadMonotonicTime +OSRSI6_CLibCounter * 78 +OSRSI6_RISCOSLibWord * 79 +OSRSI6_CLibWord * 80 +OSRSI6_FPEAnchor * 81 + + END diff --git a/hdr/Options b/hdr/Options index 32f3c50505eeb02ae7aeb35ab53cf6e30ce5bf16..381e0d44651a940cd719f82886f1ada1a5e1c115 100644 --- a/hdr/Options +++ b/hdr/Options @@ -356,6 +356,9 @@ GetMessages SETS "GET s.MsgCode" GetMessages SETS "" ] + GBLL HiProcVecs ; Relocate processor vectors and first 16K of workspace to &FFFF0000 +HiProcVecs SETL {FALSE} ; Coming soon! + GBLL DebugForcedReset ; debug forced hard resets DebugForcedReset SETL {FALSE} diff --git a/hdr/PublicWS b/hdr/PublicWS index 5d9c772e20166abddda9dceb88924b9d62b59cbe..9c3b36e3c73fe52a854b3721fec4acc61c3099c1 100644 --- a/hdr/PublicWS +++ b/hdr/PublicWS @@ -31,6 +31,16 @@ OldOpt SETA {OPT} ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; Memory map values: (in address order) +; These old definitions will be gone soon. + GBLL OldKernelWorkSpace + [ :DEF: AssemblingArthur +OldKernelWorkSpace SETL :LNOT: AssemblingArthur + | +OldKernelWorkSpace SETL {TRUE} + ] + + [ OldKernelWorkSpace :LAND: {TRUE} + ^ &00000104 ESC_Status # 1 @@ -75,6 +85,69 @@ DomainId # 4 ; domain identification ^ &00001000 VduDriverWorkSpace # &3000 + ] + +; New 'legacy' definitions + + ^ &00000104 +Legacy_ESC_Status # 1 + + ^ &00000105 +Legacy_LatchBSoftCopy # 1 + + ^ &00000107 +Legacy_CannotReset # 1 + + ^ &00000108 +Legacy_IRQsema # 4 + + ^ &0000010C +Legacy_MetroGnome # 4 + + ^ &00000114 +Legacy_MEMC_CR_SoftCopy # 4 + + ^ &00000300 +Legacy_DebuggerSpace # 8*16 + + ^ &0000047C +Legacy_ScreenBlankFlag # 1 ; 0 => unblanked, 1 => blanked + + ^ &0000047D +Legacy_ScreenBlankDPMSState # 1 ; 0 => just blank video + ; 1 => blank to stand-by (hsync off) + ; 2 => blank to suspend (vsync off) + ; 3 => blank to off (H+V off) + ^ &00000480 +Legacy_FgEcfOraEor # 4*16 ; Interleaved zgora & zgeor (from Vdu Driver Workspace) + + ^ &000004C0 +Legacy_BgEcfOraEor # 4*16 ; Interleaved zgora & zgeor (from Vdu Driver Workspace) + + ^ &00000AE1 ; RedirectInHandle +Legacy_RedirectInHandle # 1 + + ^ &00000AE2 ; RedirectOutHandle +Legacy_RedirectOutHandle # 1 + + ^ &00000FE8 +Legacy_CLibCounter # 1 + + ^ &00000FEC +Legacy_RISCOSLibWord # 4 + + ^ &00000FF0 +Legacy_CLibWord # 4 + + ^ &00000FF4 +Legacy_FPEAnchor # 4 + + ^ &00000FF8 +Legacy_DomainId # 4 ; domain identification + + ^ &00001000 +Legacy_VduDriverWorkSpace # &3000 + ^ &00004000 ScratchSpace # &4000 diff --git a/s/Middle b/s/Middle index aa1e07f230fa624f55c3132197dc528b891db897..cdc5850065c33e6ca173bbf78abb140352ac833e 100644 --- a/s/Middle +++ b/s/Middle @@ -1828,30 +1828,64 @@ MachineAddressNVRAMError ExitSWIHandler osri6_table - DCD CamEntriesPointer ;0 - DCD MaxCamEntry ;1 + DCD ZeroPage+CamEntriesPointer ;0 + DCD ZeroPage+MaxCamEntry ;1 DCD PageFlags_Unavailable ;2 - DCD PhysRamTable ;3 + DCD ZeroPage+PhysRamTable ;3 DCD 0 ;4 (was ARMA_Cleaner_flipflop) - DCD TickNodeChain ;5 - DCD ROMModuleChain ;6 - DCD DAList ;7 - DCD AppSpaceDANode ;8 - DCD Module_List ;9 - DCD ModuleSHT_Entries ;10 - DCD ModuleSWI_HashTab ;11 - DCD IOSystemType ;12 + DCD ZeroPage+TickNodeChain ;5 + DCD ZeroPage+ROMModuleChain ;6 + DCD ZeroPage+DAList ;7 + DCD ZeroPage+AppSpaceDANode ;8 + DCD ZeroPage+Module_List ;9 + DCD ZeroPage+ModuleSHT_Entries ;10 + DCD ZeroPage+ModuleSWI_HashTab ;11 + DCD ZeroPage+IOSystemType ;12 DCD L1PT ;13 DCD L2PT ;14 DCD UNDSTK ;15 DCD SVCSTK ;16 DCD SysHeapStart ;17 + ; **DANGER** - this block conflicts with ROL's allocations + ; ROL use: + ; 18 = kernel messagetrans block + ; 19 = error semaphore + ; 20 = OS_PrettyPrint dictionary + ; 21 = Timer 0 latch value + ; 22 = FastTickerV counts per second + ; 23 = Vector claimants table + ; 24 = Number of vectors supported + ; 25 = IRQSTK + ; 26 = JTABLE-SWIRelocation + ; 27 = Address of branch back to OS after SWIs DCD JTABLE-SWIRelocation ;18 - relocated base of OS SWI despatch table DCD DefaultIRQ1V+(Devices-DefaultIRQ1Vcode) ;19 - relocated base of IRQ device head nodes DCD DefaultIRQ1V+(DevicesEnd-DefaultIRQ1Vcode) ;20 - relocated end of IRQ device head nodes DCD IRQSTK ;21 - top of the IRQ stack DCD SoundWorkSpace ;22 - workspace (8K) and buffers (2*4K) - DCD IRQsema ;23 - the address of the IRQ semaphore (may move if zero page is protected) + DCD ZeroPage+IRQsema ;23 - the address of the IRQ semaphore + DCD 0 + DCD IRQSTK ;25 - Safe replacement for #21 (matches ROL) + DCD JTABLE-SWIRelocation ;26 - Safe replacement for #18 (matches ROL) + % (256-(.-osri6_table)) + ; Use 64+ for a repeat of of the remaining conflicts, and for our new allocs + DCD DefaultIRQ1V+(Devices-DefaultIRQ1Vcode) ;64 - relocated base of IRQ device head nodes + DCD DefaultIRQ1V+(DevicesEnd-DefaultIRQ1Vcode) ;65 - relocated end of IRQ device head nodes + DCD SoundWorkSpace ;66 - workspace (8K) and buffers (2*4K) + DCD ZeroPage+IRQsema ;67 - the address of the IRQ semaphore + ; New allocations + DCD ZeroPage+DomainId ;68 - current Wimp task handle + DCD ZeroPage+OsbyteVars-&A6 ;69 - OS_Byte vars (previously available via OS_Byte &A6/VarStart) + DCD ZeroPage+VduDriverWorkSpace+FgEcfOraEor ;70 + DCD ZeroPage+VduDriverWorkSpace+BgEcfOraEor ;71 + DCD DebuggerSpace ;72 + DCD DebuggerSpace_Size ;73 + DCD ZeroPage+CannotReset ;74 + DCD ZeroPage+MetroGnome ;75 - OS_ReadMonotonicTime + DCD ZeroPage+CLibCounter ;76 + DCD ZeroPage+RISCOSLibWord ;77 + DCD ZeroPage+CLibWord ;78 + DCD ZeroPage+FPEAnchor ;79 osri6_maxvalue * (.-4-osri6_table) :SHR: 2