Commit 07f59bea authored by Robert Sprowson's avatar Robert Sprowson
Browse files

Process some callbacks during module initialisation.

When in DebugROMInit=TRUE mode each call to XOS_NewLine also checks and
processes pending callbacks (in VduLF). This makes the USB enumeration
come out in a different order because they're all collected at the end.
As an intermediate step, collect callbacks for DebugROMInit=FALSE too.
Note: developers should not rely on this behaviour, this will be phased
out before the next stable release.

Version 5.35, 4.79.2.136. Tagged as 'Kernel-5_35-4_79_2_136'
parent 618ed7a8
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.135"
Module_Date SETS "31 Jan 2012"
Module_ApplicationDate SETS "31-Jan-12"
Module_MinorVersion SETS "4.79.2.136"
Module_Date SETS "18 Feb 2012"
Module_ApplicationDate SETS "18-Feb-12"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.135)"
Module_HelpVersion SETS "5.35 (31 Jan 2012) 4.79.2.135"
Module_FullVersion SETS "5.35 (4.79.2.136)"
Module_HelpVersion SETS "5.35 (18 Feb 2012) 4.79.2.136"
END
......@@ -5,19 +5,19 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.135
#define Module_Date_CMHG 31 Jan 2012
#define Module_MinorVersion_CMHG 4.79.2.136
#define Module_Date_CMHG 18 Feb 2012
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.135"
#define Module_Date "31 Jan 2012"
#define Module_MinorVersion "4.79.2.136"
#define Module_Date "18 Feb 2012"
#define Module_ApplicationDate "31-Jan-12"
#define Module_ApplicationDate "18-Feb-12"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "castle/RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.135)"
#define Module_HelpVersion "5.35 (31 Jan 2012) 4.79.2.135"
#define Module_FullVersion "5.35 (4.79.2.136)"
#define Module_HelpVersion "5.35 (18 Feb 2012) 4.79.2.136"
#define Module_LibraryVersionInfo "5:35"
......@@ -68,7 +68,7 @@ ROMModule_Link # 4 ; pointer to next node
ROMModule_Name # 4 ; pointer to module name (either directly in ROM, or in an RMA block)
ROMModule_BaseAddress # 4 ; start of module, if directly accessible
ROMModule_Version # 4 ; BCD version number, decimal point between bits 15,16 eg "1.23" => &00012300
ROMModule_PoduleNumber # 4 ; podule number (0..3 = normal podule, -1 = main ROM, -2..-n = extension ROM)
ROMModule_PoduleNumber # 4 ; podule number (0..7 = normal podule, -1 = main ROM, -2..-n = extension ROM)
ROMModule_ChunkNumber # 4 ; chunk number if in podule or extension ROM, unused (?) if in main ROM
ROMModule_OlderVersion # 4 ; pointer to node holding the next older version of this module, 0 if none
ROMModule_NewerVersion # 4 ; pointer to node holding the next newer version of this module, 0 if none
......@@ -302,17 +302,21 @@ ModuleInit Entry "r0-r12" ; call here on system st
70
[ DebugROMInit
SWI XOS_WriteS
;;; = "About to initialise module ",0
= "init mod ",0
LDR r0, [r11, #ROMModule_Name]
SWI XOS_Write0
SWI XOS_NewLine
SWI XOS_NewLine ; VDU driver processes callbacks on LF
|
! 0, "Temporarily doing callbacks like the VDU driver would"
LDR R0, =ZeroPage
LDRB R14, [R0, #CallBack_Flag]
TST R14, #CBack_VectorReq
BLNE process_callback_chain ; Process callbacks here too then
]
BL InitialiseROMModule
[ DebugROMErrors ; print errors in ROM module init for debugging
BVC %FT80
SWI XOS_WriteS
;;; = "Error in ROM module init: ",0
= " error: ",0
ALIGN
ADDVC r0, r0, #4
......
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