diff --git a/Resources/UK/Messages b/Resources/UK/Messages index 10c6f6b70bfac7b4b67951e1000b826cc846a757..2d204f67d579cac5f7a8fe32ba3635b2c950692c 100644 --- a/Resources/UK/Messages +++ b/Resources/UK/Messages @@ -151,7 +151,8 @@ BadMSFlags:Illegal flags in mode selector CDATStackOverflow:System stack overflow NoSuchSWI:SWI not known BadSav:Incorrect number of parameters for *Save -MonType:Monitor type reconfigured. +CmosRst:CMOS RAM reset, press ESCAPE to continue +MonType:Monitor type reconfigured NoKbd:No keyboard present - autobooting BreakPt:Stopped at break point at &%0 STail:|J|MUse *Configure to set the options.|J|M diff --git a/Resources/UK/Morris4/Messages b/Resources/UK/Morris4/Messages index e9f72336fc4f3e32b432e14e249ed62ec269632a..b9001a966d6e56bfcd5bf318dfa7ac075a956073 100644 --- a/Resources/UK/Morris4/Messages +++ b/Resources/UK/Morris4/Messages @@ -151,7 +151,8 @@ BadMSFlags:Illegal flags in mode selector CDATStackOverflow:System stack overflow NoSuchSWI:SWI not known BadSav:Incorrect number of parameters for *Save -MonType:Monitor type reconfigured. +CmosRst:CMOS RAM reset, press ESCAPE to continue +MonType:Monitor type reconfigured NoKbd:No keyboard present - autobooting BreakPt:Stopped at break point at &%0 STail:|J|MUse *Configure to set the options.|J|M diff --git a/Resources/UK/Omega/Messages b/Resources/UK/Omega/Messages index 376f45993b700f040b8cf33aaab5d7e3ec77abf0..aa8a3116e829b164812e4ad373ee6bf5d1c98ae4 100644 --- a/Resources/UK/Omega/Messages +++ b/Resources/UK/Omega/Messages @@ -151,7 +151,8 @@ BadMSFlags:Illegal flags in mode selector CDATStackOverflow:System stack overflow NoSuchSWI:SWI not known BadSav:Incorrect number of parameters for *Save -MonType:Monitor type reconfigured. +CmosRst:CMOS RAM reset, press ESCAPE to continue +MonType:Monitor type reconfigured NoKbd:No keyboard present - autobooting BreakPt:Stopped at break point at &%0 STail:|J|MUse *Configure to set the options.|J|M diff --git a/Resources/UK/Ursula/Messages b/Resources/UK/Ursula/Messages index e9f72336fc4f3e32b432e14e249ed62ec269632a..b9001a966d6e56bfcd5bf318dfa7ac075a956073 100644 --- a/Resources/UK/Ursula/Messages +++ b/Resources/UK/Ursula/Messages @@ -151,7 +151,8 @@ BadMSFlags:Illegal flags in mode selector CDATStackOverflow:System stack overflow NoSuchSWI:SWI not known BadSav:Incorrect number of parameters for *Save -MonType:Monitor type reconfigured. +CmosRst:CMOS RAM reset, press ESCAPE to continue +MonType:Monitor type reconfigured NoKbd:No keyboard present - autobooting BreakPt:Stopped at break point at &%0 STail:|J|MUse *Configure to set the options.|J|M diff --git a/VersionASM b/VersionASM index 611b1205b9a38edd34c8d8ed959218b71fc1066f..5d4c72ebb10f45538bb24173d9f22625df93fa3c 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.156" -Module_Date SETS "27 Jun 2012" -Module_ApplicationDate SETS "27-Jun-12" +Module_MinorVersion SETS "4.79.2.157" +Module_Date SETS "01 Jul 2012" +Module_ApplicationDate SETS "01-Jul-12" Module_ComponentName SETS "Kernel" Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel" -Module_FullVersion SETS "5.35 (4.79.2.156)" -Module_HelpVersion SETS "5.35 (27 Jun 2012) 4.79.2.156" +Module_FullVersion SETS "5.35 (4.79.2.157)" +Module_HelpVersion SETS "5.35 (01 Jul 2012) 4.79.2.157" END diff --git a/VersionNum b/VersionNum index ccefc0353677698489e6f650959d60a56d36b50b..6f3ae264eaea0a7ded8e3a92c2bd484a566084f0 100644 --- a/VersionNum +++ b/VersionNum @@ -5,19 +5,19 @@ * */ #define Module_MajorVersion_CMHG 5.35 -#define Module_MinorVersion_CMHG 4.79.2.156 -#define Module_Date_CMHG 27 Jun 2012 +#define Module_MinorVersion_CMHG 4.79.2.157 +#define Module_Date_CMHG 01 Jul 2012 #define Module_MajorVersion "5.35" #define Module_Version 535 -#define Module_MinorVersion "4.79.2.156" -#define Module_Date "27 Jun 2012" +#define Module_MinorVersion "4.79.2.157" +#define Module_Date "01 Jul 2012" -#define Module_ApplicationDate "27-Jun-12" +#define Module_ApplicationDate "01-Jul-12" #define Module_ComponentName "Kernel" #define Module_ComponentPath "castle/RiscOS/Sources/Kernel" -#define Module_FullVersion "5.35 (4.79.2.156)" -#define Module_HelpVersion "5.35 (27 Jun 2012) 4.79.2.156" +#define Module_FullVersion "5.35 (4.79.2.157)" +#define Module_HelpVersion "5.35 (01 Jul 2012) 4.79.2.157" #define Module_LibraryVersionInfo "5:35" diff --git a/hdr/KernelWS b/hdr/KernelWS index a16022f480ca1b3560e6e077d3f33862357a50bf..51232ee4dd8acac514c85f4ea31800b2a3cf6460 100644 --- a/hdr/KernelWS +++ b/hdr/KernelWS @@ -1478,7 +1478,8 @@ MOShasFIQ # 1 FIQclaim_interlock # 1 CallBack_Flag # 1 IRQ_CallBack_Flag * CallBack_Flag -MonitorLeadType # 1 ; some function of the monitor lead inputs, as yet undetermined +MonitorLeadType # 1 ; some function of the monitor lead inputs, as yet undetermined +MentionCMOSReset # 1 ; non zero reports CMOS resets prior to the start banner AlignSpace diff --git a/s/HeapMan b/s/HeapMan index e8fc100f42629a8b874f644726fe7538453081d1..0833f92bbe4ed5096eaf878c8cb7bb300fceef80 100644 --- a/s/HeapMan +++ b/s/HeapMan @@ -401,14 +401,6 @@ GoodHeapExit ; V cleared on entry to SWI dispatch ExitSWIHandler ; Like all good SWI handlers ] -;HeapInUse -; $HeapBadAsModuleBRA -; SetBorder R10, R11, 15, 0, 0 -; $HeapBadAsModuleKET - -; ADR R0, ErrorBlock_HeapFail_HeapLocked -; B NaffHeapExit - ; Errors MakeErrorBlock HeapBadReason MakeErrorBlock HeapFail_Init diff --git a/s/Kernel b/s/Kernel index 5a8c5596a949b41fdd9e7cad265608b94e3044de..44a34f4ad0e86abe3f64433b9c03bf39381b39ab 100644 --- a/s/Kernel +++ b/s/Kernel @@ -84,25 +84,6 @@ $label LDR $reg, =ZeroPage+VduDriverWorkSpace GBLA Module_BaseAddr Module_BaseAddr SETA 0 -; Command $cmd, $max, $min - declared in hdr.macros. - -; debug macro: set the border colour - - MACRO -$l SetBorder $reg1, $reg2, $red, $green, $blue, $delay - ! 0, "Setborder used" -$l LDR $reg1, =VIDC -; Note $reg, $green and $blue are 4 bit values - LDR $reg2, =&40000000+(($red)*&11)+(($green)*&1100)+(($blue)*&110000) - STR $reg2, [$reg1] - [ "$delay"<>"" - MOV $reg1, #$delay -10 - SUBS $reg1, $reg1, #1 - BNE %BT10 - ] - MEND - ; Fake a 26-bit pc, given a PSR currently in lr (or reg), and the 32-bit address on ; the stack. The stacked address is pulled, and the result is left in lr. diff --git a/s/Middle b/s/Middle index 208792478c5aa5d26b0a7097317df0ef84a2ac13..9996afc5d13b1ea0493e6359a49665d20c0a854d 100644 --- a/s/Middle +++ b/s/Middle @@ -1129,21 +1129,6 @@ exit_AOS ] MakeErrorBlock BadEnvNumber - [ {FALSE} - -testcallbackpending - CMP r1, #0 ; OK if only reading - CMPEQ r2, #0 - CMPEQ r3, #0 - LDRNEB r10, [r0, #CallBack_Flag-CallBackHandler] - TSTNE r10, #CBack_OldStyle - MOVEQ pc, r14 - SetBorder r0, r14, 15, 0, 0 - ADR r0, ErrorBlock_CallbackPending - B exit_AOS - MakeErrorBlock CallbackPending - ] - AOS_Table & ZeroPage+MemLimit ; MemoryLimit & 0 diff --git a/s/NewReset b/s/NewReset index 5fdcf1d84da1c1e136d7ba52f01531e3e57f1eb9..43e9ce2d6173114bc7cd27712c17fb9b58175d20 100644 --- a/s/NewReset +++ b/s/NewReset @@ -728,20 +728,6 @@ reset_loop TEQ R1, #SpriteSizeCMOS BHI reset_loop - [ {FALSE} - ; Oh, just leave it be - MOV R0, #VduCMOS - BL Read - [ IOMD_C_MonitorType = 0 :LAND: IOMD_C_PALNTSCType = 0 -; Force TV if we don't have a MonitorType auto-detect bit - TEQ R0, #(Sync_Separate :OR: MonitorType0) - | -; Force auto-detect of monitor stuff if we have a MonitorType auto-detect bit - TEQ R0, #(Sync_Auto :OR: MonitorTypeAuto) - ] - BNE cmos_reset - ] - ; Year should be >=1995, <=2037 (when 32 bit signed Unix time breaks) MOV R0, #YearCMOS+1 BL Read @@ -766,6 +752,7 @@ checkboot ; IF power-on bit set AND R/T/Del/Copy pressed THEN reset CMOS RAM ; note that memory cleared if POR, so key info has had plenty of time! + [ HAL LDR R0, =ZeroPage+HAL_StartFlags LDR R1, [R0] @@ -816,9 +803,12 @@ checkboot LDR R7, [R0, #KbdFlags] TST R7, #KbdFlag_R:OR:KbdFlag_T:OR:KbdFlag_Delete:OR:KbdFlag_Copy | - LDR R7, [R0, #R_Down_Flag] + LDR R7, [R0, #R_Down_Flag] ; Picks up R/T/Del/Copy flags all in one CMP R7, #0 ] + LDRNE R3, =ZeroPage + MOVNE R14, #1 + STRNEB R14, [R3, #MentionCMOSReset] BEQ no_cmos_reset ; power on bit checked again there [ :LNOT: STB @@ -835,10 +825,8 @@ checkboot ; ************************************************************************** [ HAL - ! 0, "Sort out SetBorder for CMOS reset" TST R7, #KbdFlag_Copy:OR:KbdFlag_Delete | - SetBorder R0, R1, 15, 0, 0 ; flash the border as warning! ASSERT (Del_Down_Flag - R_Down_Flag) = 2 ASSERT (Copy_Down_Flag - Del_Down_Flag) = 1 MOVS R3, R7, LSR #16 ; full reset or just system? @@ -2009,22 +1997,44 @@ SkipHardResetPart2 ; code executed on all types of reset STRNEB r0, [r0, #ErrorSemaphore] ; then allow errors to be translated ] - [ DoInitialiseMode :LOR: :LNOT: Embedded_UI + [ DoInitialiseMode :LOR: :LNOT: Embedded_UI BL InitialiseMode - [ :LNOT: Embedded_UI + ] + [ :LNOT: Embedded_UI + LDR R0, =ZeroPage + LDRB R14, [R0, #MentionCMOSReset] + TEQ R14, #0 + BEQ %FT12 + [ International + SWI XOS_WriteI+10 + BVS %FT09 + BL WriteS_Translated + = "CmosRst:CMOS RAM reset, press ESCAPE to continue",0 + ALIGN +09 + | + SWI XOS_WriteS + = 10,"CMOS RAM reset, press ESCAPE to continue",0 + ALIGN + ] +10 + SWI XOS_ReadEscapeState + BCC %BT10 + MOV R0, #124 + SWI XOS_Byte ; Clear the condition + SWI XOS_WriteI+12 ; Clear the screen +12 SWI XOS_WriteS = 10, "$SystemName ", 0 ; now RISC OS (no +) again ALIGN - LDR R0, =ZeroPage - LDR R0, [R0, #RAMLIMIT] - - Push "R0" MOV R0, #8 ORR R0, R0, #&500 SWI XOS_Memory ; returns amount of soft ROM (pages) in r1 MOVVS R1, #0 - Pull "R0" + + LDR R0, =ZeroPage + LDR R0, [R0, #RAMLIMIT] MLA R0, R1, R2, R0 ; convert pages to bytes and add in MOV R0, R0, LSR #20 ; /(1024*1024) down to megabytes @@ -2035,19 +2045,13 @@ SkipHardResetPart2 ; code executed on all types of reset SWI XOS_WriteS = "MB", 10,13, 10, 0 ; title complete ALIGN - ] - ] - [ StrongARM - [ Embedded_UI - ! 0,"Printing of processor type disabled" - | -; IMPORT ARM_PrintProcessorType BL ARM_PrintProcessorType - ] - ] + | + ! 0, "Banner & printing of processor type disabled" + ] -01 MOV r0, #0 ; Set DomainId to 0 every reset + MOV r0, #0 ; Set DomainId to 0 every reset [ ZeroPage = 0 STR r0, [r0, #DomainId] ; before calling anyone | @@ -2158,12 +2162,14 @@ HorologicalDelayLoop1 [ International SWI XOS_WriteI+10 - BLVC WriteS_Translated - = "MonType:Monitor type reconfigured.",10,13,10,0 + BVS %FT65 + BL WriteS_Translated + = "MonType:Monitor type reconfigured",10,13,10,0 ALIGN +65 | SWI XOS_WriteS - = 10,"Monitor type reconfigured.",10,13,10,0 + = 10,"Monitor type reconfigured",10,13,10,0 ALIGN ] ] @@ -2191,6 +2197,12 @@ MonitorKeypadTable ; internal key number, CMOS bits = &FF ALIGN 32 + [ International +MessageFileName DCB "Resources:$.Resources.Kernel.Messages",0 + ALIGN + ] + + [ StrongARM :LAND: :LNOT: HAL cputable DCD &6000,0,0 DCD &6100,1,0 @@ -2202,12 +2214,6 @@ cputable DCD &7501,7,0 DCD -1 - [ International -MessageFileName DCB "Resources:$.Resources.Kernel.Messages",0 - ALIGN - ] - - [ StrongARM :LAND: :LNOT: HAL Processor_Type MOV r0,#IOMD_Base LDRB r1,[r0,#IOMD_ID0] @@ -2347,9 +2353,11 @@ AutoBootCosNoKbd [ :LNOT: Embedded_UI [ International SWI XOS_WriteI+7 - BLVC WriteS_Translated + BVS %FT81 + BL WriteS_Translated = "NoKbd:No keyboard present - autobooting", 10,13,0 ALIGN +81 | SWI XOS_WriteS = 7, "No keyboard present - autobooting", 10,13,0 diff --git a/s/Super1 b/s/Super1 index a74fdb4b7238ab9b2f8fd7a0a293b250713ec5e2..82f39f2abc38b316a7d55ef3ec566a3c887dcafc 100644 --- a/s/Super1 +++ b/s/Super1 @@ -87,9 +87,11 @@ ESCAPE MOV R0, #&7E [ International SWI XOS_EnterOS ; GO into SVC mode to get some stack SWI OS_NewLine - BLVC WriteS_Translated + BVS %FT01 + BL WriteS_Translated = "Escape:Escape",10,13,0 ALIGN +01 WritePSRc 0, R0 ; Back to user mode. | SWI OS_WriteS