Commit d2c62e16 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Add new OS_ReadSysInfo 6 items. Change naming of PublicWS values.

Detail:
  s/Middle - Added some new OS_ReadSysInfo 6 items which are needed by the zero page relocation kernel. Also duplicated some existing entries to avoid conflicts with ROL's allocations.
  hdr/OSRSI6, Makefile - New header listing OS_ReadSysInfo 6 items
  hdr/PublicWS - Duplicated the workspace definitions for &0-&4000, but with a 'Legacy_' prefix to their names. Also added some new entries as needed by the zero page relocation kernel. Once existing modules have been updated to use OS_ReadSysInfo 6 & the Legacy_ definitions, the old defs will be removed.
  hdr/KernelWS - Removed 'Export_' prefix from all the exported workspace values, since the kernel can now use the original names directly
  hdr/Options - Dummy HiProcVecs option so merging things will be a bit cleaner
Admin:
  Tested on rev A2 BB-xM


Version 5.35, 4.79.2.98.2.44. Tagged as 'Kernel-5_35-4_79_2_98_2_44'
parent c79c1310
...@@ -69,11 +69,13 @@ EXPORTS = ${EXP_HDR}.EnvNumbers \ ...@@ -69,11 +69,13 @@ EXPORTS = ${EXP_HDR}.EnvNumbers \
${EXP_HDR}.VideoDevice \ ${EXP_HDR}.VideoDevice \
${EXP_HDR}.GPIODevice \ ${EXP_HDR}.GPIODevice \
${EXP_HDR}.OSEntries \ ${EXP_HDR}.OSEntries \
${EXP_HDR}.OSRSI6 \
${C_EXP_HDR}.RISCOS \ ${C_EXP_HDR}.RISCOS \
${C_EXP_HDR}.HALEntries \ ${C_EXP_HDR}.HALEntries \
${C_EXP_HDR}.HALDevice \ ${C_EXP_HDR}.HALDevice \
${C_EXP_HDR}.OSEntries \ ${C_EXP_HDR}.OSEntries \
${C_EXP_HDR}.Variables ${C_EXP_HDR}.Variables \
${C_EXP_HDR}.OSRSI6
# #
# Generic rules: # Generic rules:
...@@ -180,6 +182,9 @@ ${EXP_HDR}.VideoDevice: hdr.VideoDevice ...@@ -180,6 +182,9 @@ ${EXP_HDR}.VideoDevice: hdr.VideoDevice
${EXP_HDR}.GPIODevice: hdr.GPIODevice ${EXP_HDR}.GPIODevice: hdr.GPIODevice
${CP} hdr.GPIODevice $@ ${CPFLAGS} ${CP} hdr.GPIODevice $@ ${CPFLAGS}
${EXP_HDR}.OSRSI6: hdr.OSRSI6
${CP} hdr.OSRSI6 $@ ${CPFLAGS}
${C_EXP_HDR}.RISCOS: hdr.RISCOS ${C_EXP_HDR}.RISCOS: hdr.RISCOS
${MKDIR} ${C_EXP_HDR} ${MKDIR} ${C_EXP_HDR}
${PERL} Build:Hdr2H hdr.RISCOS $@ ${PERL} Build:Hdr2H hdr.RISCOS $@
...@@ -200,6 +205,10 @@ ${C_EXP_HDR}.Variables: hdr.Variables ...@@ -200,6 +205,10 @@ ${C_EXP_HDR}.Variables: hdr.Variables
${MKDIR} ${C_EXP_HDR} ${MKDIR} ${C_EXP_HDR}
${PERL} Build:Hdr2H hdr.Variables $@ ${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 o.Global.h.HALDevice: hdr.HALDevice
${MKDIR} o.Global.h ${MKDIR} o.Global.h
dir o dir o
......
...@@ -13,11 +13,11 @@ ...@@ -13,11 +13,11 @@
GBLS Module_ComponentPath GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35" Module_MajorVersion SETS "5.35"
Module_Version SETA 535 Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.98.2.43" Module_MinorVersion SETS "4.79.2.98.2.44"
Module_Date SETS "01 Aug 2011" Module_Date SETS "04 Aug 2011"
Module_ApplicationDate SETS "01-Aug-11" Module_ApplicationDate SETS "04-Aug-11"
Module_ComponentName SETS "Kernel" Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel" Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.98.2.43)" Module_FullVersion SETS "5.35 (4.79.2.98.2.44)"
Module_HelpVersion SETS "5.35 (01 Aug 2011) 4.79.2.98.2.43" Module_HelpVersion SETS "5.35 (04 Aug 2011) 4.79.2.98.2.44"
END END
...@@ -5,19 +5,19 @@ ...@@ -5,19 +5,19 @@
* *
*/ */
#define Module_MajorVersion_CMHG 5.35 #define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.98.2.43 #define Module_MinorVersion_CMHG 4.79.2.98.2.44
#define Module_Date_CMHG 01 Aug 2011 #define Module_Date_CMHG 04 Aug 2011
#define Module_MajorVersion "5.35" #define Module_MajorVersion "5.35"
#define Module_Version 535 #define Module_Version 535
#define Module_MinorVersion "4.79.2.98.2.43" #define Module_MinorVersion "4.79.2.98.2.44"
#define Module_Date "01 Aug 2011" #define Module_Date "04 Aug 2011"
#define Module_ApplicationDate "01-Aug-11" #define Module_ApplicationDate "04-Aug-11"
#define Module_ComponentName "Kernel" #define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel" #define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.98.2.43)" #define Module_FullVersion "5.35 (4.79.2.98.2.44)"
#define Module_HelpVersion "5.35 (01 Aug 2011) 4.79.2.98.2.43" #define Module_HelpVersion "5.35 (04 Aug 2011) 4.79.2.98.2.44"
#define Module_LibraryVersionInfo "5:35" #define Module_LibraryVersionInfo "5:35"
...@@ -231,7 +231,11 @@ DANode_NodeSize # 0 ...@@ -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!) ; The addresses below are only temporary; eventually most of them will be allocated at run time (we hope!)
[ HiProcVecs
ZeroPage * &FFFF0000
|
ZeroPage * &00000000 ZeroPage * &00000000
]
[ HAL [ HAL
; Sort out 26/32 bit versions ; Sort out 26/32 bit versions
...@@ -819,20 +823,18 @@ TextExpandArea_Size * (8*1024) ...@@ -819,20 +823,18 @@ TextExpandArea_Size * (8*1024)
# 2*4 ; SPARE (avoiding changes of exported addresses for now) # 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 ScreenBlankFlag = Legacy_ScreenBlankFlag
ASSERT Export_ScreenBlankFlag = ScreenBlankFlag ASSERT ?ScreenBlankFlag = ?Legacy_ScreenBlankFlag
ASSERT ?Export_ScreenBlankFlag = ?ScreenBlankFlag
;ScreenBlankDPMSState # 1 ; 0 => just blank video ScreenBlankDPMSState # 1 ; 0 => just blank video
; 1 => blank to stand-by (hsync off) ; 1 => blank to stand-by (hsync off)
; 2 => blank to suspend (vsync off) ; 2 => blank to suspend (vsync off)
; 3 => blank to off (H+V off) ; 3 => blank to off (H+V off)
Export_ScreenBlankDPMSState # 1 ASSERT ScreenBlankDPMSState = Legacy_ScreenBlankDPMSState
ASSERT Export_ScreenBlankDPMSState = ScreenBlankDPMSState ASSERT ?ScreenBlankDPMSState = ?Legacy_ScreenBlankDPMSState
ASSERT ?Export_ScreenBlankDPMSState = ?ScreenBlankDPMSState
[ AssemblingArthur :LAND: :DEF: ShowWS [ AssemblingArthur :LAND: :DEF: ShowWS
...@@ -840,13 +842,13 @@ Export_ScreenBlankDPMSState # 1 ...@@ -840,13 +842,13 @@ Export_ScreenBlankDPMSState # 1
] ]
AlignSpace 64 AlignSpace 64
Export_FgEcfOraEor # 4*16 ; Interleaved zgora & zgeor FgEcfOraEor # 4*16 ; Interleaved zgora & zgeor
ASSERT Export_FgEcfOraEor = FgEcfOraEor ASSERT FgEcfOraEor = Legacy_FgEcfOraEor
ASSERT ?Export_FgEcfOraEor = ?FgEcfOraEor ASSERT ?FgEcfOraEor = ?Legacy_FgEcfOraEor
Export_BgEcfOraEor # 4*16 ; Interleaved zgora & zgeor BgEcfOraEor # 4*16 ; Interleaved zgora & zgeor
ASSERT Export_BgEcfOraEor = BgEcfOraEor ASSERT BgEcfOraEor = Legacy_BgEcfOraEor
ASSERT ?Export_BgEcfOraEor = ?BgEcfOraEor ASSERT ?BgEcfOraEor = ?Legacy_BgEcfOraEor
BgEcfStore # 4*16 ; Interleaved zgora & zgeor to store background BgEcfStore # 4*16 ; Interleaved zgora & zgeor to store background
...@@ -1007,7 +1009,9 @@ IICBus_Size # 0 ...@@ -1007,7 +1009,9 @@ IICBus_Size # 0
; locations used during reset only. Not cleared by ClearPhysRAM, but ; locations used during reset only. Not cleared by ClearPhysRAM, but
; cleared later (just before DEFHAN). ; 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) InitIRQHandler # 4 ; pointer to IRQ handler (LDR PC'ed from IRQ HW vector)
InitIRQWs # 16 ; workspace for IRQ handler InitIRQWs # 16 ; workspace for IRQ handler
InitUsedStart # 4 ; start of used pages (L2PT etc) not to be cleared InitUsedStart # 4 ; start of used pages (L2PT etc) not to be cleared
...@@ -1019,33 +1023,36 @@ InitWsEnd # 0 ...@@ -1019,33 +1023,36 @@ InitWsEnd # 0
; Basic kernel space - defined locations for external modules ; Basic kernel space - defined locations for external modules
^ ZeroPage+&100 ^ &100
IRQ1V # 4 ; &100 IRQ1V # 4 ; &100
Export_ESC_Status # 1 ; &104 ESC_Status # 1 ; &104
ASSERT Export_ESC_Status = ESC_Status ASSERT ESC_Status = Legacy_ESC_Status
ASSERT ?Export_ESC_Status = ?ESC_Status ASSERT ?ESC_Status = ?Legacy_ESC_Status
Export_LatchBSoftCopy # 1 ; &105 LatchBSoftCopy # 1 ; &105
ASSERT Export_LatchBSoftCopy = LatchBSoftCopy ASSERT LatchBSoftCopy = Legacy_LatchBSoftCopy
ASSERT ?Export_LatchBSoftCopy = ?LatchBSoftCopy ASSERT ?LatchBSoftCopy = ?Legacy_LatchBSoftCopy
IOCControlSoftCopy # 1 ; &106 IOCControlSoftCopy # 1 ; &106
Export_CannotReset # 1 ; &107 CannotReset # 1 ; &107
ASSERT Export_CannotReset = CannotReset ASSERT CannotReset = Legacy_CannotReset
ASSERT ?Export_CannotReset = ?CannotReset ASSERT ?CannotReset = ?Legacy_CannotReset
Export_IRQsema # 4 ; &108 IRQsema # 4 ; &108
ASSERT Export_IRQsema = IRQsema ASSERT IRQsema = Legacy_IRQsema
ASSERT ?Export_IRQsema = ?IRQsema ASSERT ?IRQsema = ?Legacy_IRQsema
MetroGnome # 4 ; &10C MetroGnome # 4 ; &10C
ASSERT MetroGnome = Legacy_MetroGnome
ASSERT ?MetroGnome = ?Legacy_MetroGnome
MemorySpeed # 4 ; &110 MemorySpeed # 4 ; &110
Export_MEMC_CR_SoftCopy # 4 ; &114 MEMC_CR_SoftCopy # 4 ; &114
ASSERT Export_MEMC_CR_SoftCopy = MEMC_CR_SoftCopy ASSERT MEMC_CR_SoftCopy = Legacy_MEMC_CR_SoftCopy
ASSERT ?Export_MEMC_CR_SoftCopy = ?MEMC_CR_SoftCopy ASSERT ?MEMC_CR_SoftCopy = ?Legacy_MEMC_CR_SoftCopy
ResetIndirection # 4 ; &118 ResetIndirection # 4 ; &118
...@@ -1283,7 +1290,16 @@ RTCFitted # 4 ; =0 no RTC, <2048 = address of I2C RTC, ...@@ -1283,7 +1290,16 @@ RTCFitted # 4 ; =0 no RTC, <2048 = address of I2C RTC,
ASSERT @ <= &300 ASSERT @ <= &300
# (&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 ; NVRAM support
...@@ -1481,13 +1497,13 @@ PFIQasIRQ_Chain # 4 ...@@ -1481,13 +1497,13 @@ PFIQasIRQ_Chain # 4
EnvTime # 5 EnvTime # 5
Export_RedirectInHandle # 1 RedirectInHandle # 1
ASSERT Export_RedirectInHandle = RedirectInHandle ASSERT RedirectInHandle = Legacy_RedirectInHandle
ASSERT ?Export_RedirectInHandle = ?RedirectInHandle ASSERT ?RedirectInHandle = ?Legacy_RedirectInHandle
Export_RedirectOutHandle # 1 RedirectOutHandle # 1
ASSERT Export_RedirectOutHandle = RedirectOutHandle ASSERT RedirectOutHandle = Legacy_RedirectOutHandle
ASSERT ?Export_RedirectOutHandle = ?RedirectOutHandle ASSERT ?RedirectOutHandle = ?Legacy_RedirectOutHandle
MOShasFIQ # 1 MOShasFIQ # 1
FIQclaim_interlock # 1 FIQclaim_interlock # 1
...@@ -1625,6 +1641,8 @@ CachedErrorBlocks # 4 ; pointer to sysheap node holding the er ...@@ -1625,6 +1641,8 @@ CachedErrorBlocks # 4 ; pointer to sysheap node holding the er
^ &FE8 ^ &FE8
CLibCounter # 1 ; Counter for Shared C Library tmpnam function CLibCounter # 1 ; Counter for Shared C Library tmpnam function
ASSERT CLibCounter = Legacy_CLibCounter
ASSERT ?CLibCounter = ?Legacy_CLibCounter
AlignSpace AlignSpace
...@@ -1634,18 +1652,26 @@ CLibCounter # 1 ; Counter for Shared C Library t ...@@ -1634,18 +1652,26 @@ CLibCounter # 1 ; Counter for Shared C Library t
; ROM libraries. They cannot use the private word since the block pointed ; ROM libraries. They cannot use the private word since the block pointed
; to by this will be freed. ; to by this will be freed.
RISCOSLibWord # 4 RISCOSLibWord # 4
ASSERT RISCOSLibWord = Legacy_RISCOSLibWord
ASSERT ?RISCOSLibWord = ?Legacy_RISCOSLibWord
CLibWord # 4 CLibWord # 4
ASSERT CLibWord = Legacy_CLibWord
ASSERT ?CLibWord = ?Legacy_CLibWord
FPEAnchor # 4 FPEAnchor # 4
ASSERT FPEAnchor = Legacy_FPEAnchor
ASSERT ?FPEAnchor = ?Legacy_FPEAnchor
Export_DomainId # 4 ; SKS added for domain identification DomainId # 4 ; SKS added for domain identification
ASSERT Export_DomainId = DomainId ASSERT DomainId = Legacy_DomainId
ASSERT ?Export_DomainId = ?DomainId ASSERT ?DomainId = ?Legacy_DomainId
Modula2_Private # 4 ; MICK has FFC and uses it it in USR mode Modula2_Private # 4 ; MICK has FFC and uses it it in USR mode
Export_VduDriverWorkSpace # VDWSSize VduDriverWorkSpace # VDWSSize
ASSERT Export_VduDriverWorkSpace = VduDriverWorkSpace ASSERT VduDriverWorkSpace = Legacy_VduDriverWorkSpace
ASSERT ?Export_VduDriverWorkSpace = ?VduDriverWorkSpace ASSERT ?VduDriverWorkSpace = ?Legacy_VduDriverWorkSpace
ASSERT (VduDriverWorkSpace :AND: 63) = 0 ; For Tim (VDU5) ASSERT (VduDriverWorkSpace :AND: 63) = 0 ; For Tim (VDU5)
...@@ -1821,7 +1847,11 @@ SvcTable |#| &400 ...@@ -1821,7 +1847,11 @@ SvcTable |#| &400
ASSERT SvcTable = &01F033FC ; Required for SVC table pokers, 1.20 compatible ASSERT SvcTable = &01F033FC ; Required for SVC table pokers, 1.20 compatible
] ]
[ No26bitCode [ No26bitCode
[ ZeroPage = 0
SWIDespatch_Size * 32*4 SWIDespatch_Size * 32*4
|
SWIDespatch_Size * 33*4
]
| |
SWIDespatch_Size * 30*4 ; can save 2 instructions if 26-bit (no Thumb) SWIDespatch_Size * 30*4 ; can save 2 instructions if 26-bit (no Thumb)
] ]
......
; 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
...@@ -356,6 +356,9 @@ GetMessages SETS "GET s.MsgCode" ...@@ -356,6 +356,9 @@ GetMessages SETS "GET s.MsgCode"
GetMessages SETS "" 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 GBLL DebugForcedReset ; debug forced hard resets
DebugForcedReset SETL {FALSE} DebugForcedReset SETL {FALSE}
......
...@@ -31,6 +31,16 @@ OldOpt SETA {OPT} ...@@ -31,6 +31,16 @@ OldOpt SETA {OPT}
; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Memory map values: (in address order) ; 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 ^ &00000104
ESC_Status # 1 ESC_Status # 1
...@@ -75,6 +85,69 @@ DomainId # 4 ; domain identification ...@@ -75,6 +85,69 @@ DomainId # 4 ; domain identification
^ &00001000 ^ &00001000
VduDriverWorkSpace # &3000 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 ^ &00004000
ScratchSpace # &4000 ScratchSpace # &4000
......
...@@ -1828,30 +1828,64 @@ MachineAddressNVRAMError ...@@ -1828,30 +1828,64 @@ MachineAddressNVRAMError
ExitSWIHandler ExitSWIHandler
osri6_table osri6_table
DCD CamEntriesPointer ;0 DCD ZeroPage+CamEntriesPointer ;0
DCD MaxCamEntry ;1 DCD ZeroPage+MaxCamEntry ;1
DCD PageFlags_Unavailable ;2 DCD PageFlags_Unavailable ;2
DCD PhysRamTable ;3 DCD ZeroPage+PhysRamTable ;3
DCD 0 ;4 (was ARMA_Cleaner_flipflop) DCD 0 ;4 (was ARMA_Cleaner_flipflop)
DCD TickNodeChain ;5 DCD ZeroPage+TickNodeChain ;5
DCD ROMModuleChain ;6 DCD ZeroPage+ROMModuleChain ;6
DCD DAList ;7 DCD ZeroPage+DAList ;7
DCD AppSpaceDANode ;8 DCD ZeroPage+AppSpaceDANode ;8
DCD Module_List ;9 DCD ZeroPage+Module_List ;9
DCD ModuleSHT_Entries ;10 DCD ZeroPage+ModuleSHT_Entries ;10
DCD ModuleSWI_HashTab ;11 DCD ZeroPage+ModuleSWI_HashTab ;11
DCD IOSystemType ;12 DCD ZeroPage+IOSystemType ;12
DCD L1PT ;13 DCD L1PT ;13
DCD L2PT ;14 DCD L2PT ;14
DCD UNDSTK ;15 DCD UNDSTK ;15
DCD SVCSTK ;16 DCD SVCSTK ;16
DCD SysHeapStart ;17 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 JTABLE-SWIRelocation ;18 - relocated base of OS SWI despatch table
DCD DefaultIRQ1V+(Devices-DefaultIRQ1Vcode) ;19 - relocated base of IRQ device head nodes 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 DefaultIRQ1V+(DevicesEnd-DefaultIRQ1Vcode) ;20 - relocated end of IRQ device head nodes
DCD IRQSTK ;21 - top of the IRQ stack DCD IRQSTK ;21 - top of the IRQ stack
DCD SoundWorkSpace ;22 - workspace (8K) and buffers (2*4K) 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 osri6_maxvalue * (.-4-osri6_table) :SHR: 2
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment