From 6af85ea270f346f086708fcbdd9592e375f18dd8 Mon Sep 17 00:00:00 2001 From: Robert Sprowson <rsprowson@gitlab.riscosopen.org> Date: Sun, 15 Jan 2012 08:22:22 +0000 Subject: [PATCH] Add a NOP after the mode change in MoreSWIs.s to sync with CallASWI module. Add two more DebugTX in the reset sequence to announce power on reset and CMOS reset code paths. In STB land the range of permitted dates is extended from 2020 (a bit close!) to 2037 when Unix time wraps. Version 5.35, 4.79.2.133. Tagged as 'Kernel-5_35-4_79_2_133' --- VersionASM | 10 +++++----- VersionNum | 14 +++++++------- s/MoreSWIs | 2 +- s/NewReset | 33 +++++++++++---------------------- 4 files changed, 24 insertions(+), 35 deletions(-) diff --git a/VersionASM b/VersionASM index 9fa655c..bed39b4 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.132" -Module_Date SETS "05 Jan 2012" -Module_ApplicationDate SETS "05-Jan-12" +Module_MinorVersion SETS "4.79.2.133" +Module_Date SETS "15 Jan 2012" +Module_ApplicationDate SETS "15-Jan-12" Module_ComponentName SETS "Kernel" Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel" -Module_FullVersion SETS "5.35 (4.79.2.132)" -Module_HelpVersion SETS "5.35 (05 Jan 2012) 4.79.2.132" +Module_FullVersion SETS "5.35 (4.79.2.133)" +Module_HelpVersion SETS "5.35 (15 Jan 2012) 4.79.2.133" END diff --git a/VersionNum b/VersionNum index a981fad..7dd36f7 100644 --- a/VersionNum +++ b/VersionNum @@ -5,19 +5,19 @@ * */ #define Module_MajorVersion_CMHG 5.35 -#define Module_MinorVersion_CMHG 4.79.2.132 -#define Module_Date_CMHG 05 Jan 2012 +#define Module_MinorVersion_CMHG 4.79.2.133 +#define Module_Date_CMHG 15 Jan 2012 #define Module_MajorVersion "5.35" #define Module_Version 535 -#define Module_MinorVersion "4.79.2.132" -#define Module_Date "05 Jan 2012" +#define Module_MinorVersion "4.79.2.133" +#define Module_Date "15 Jan 2012" -#define Module_ApplicationDate "05-Jan-12" +#define Module_ApplicationDate "15-Jan-12" #define Module_ComponentName "Kernel" #define Module_ComponentPath "castle/RiscOS/Sources/Kernel" -#define Module_FullVersion "5.35 (4.79.2.132)" -#define Module_HelpVersion "5.35 (05 Jan 2012) 4.79.2.132" +#define Module_FullVersion "5.35 (4.79.2.133)" +#define Module_HelpVersion "5.35 (15 Jan 2012) 4.79.2.133" #define Module_LibraryVersionInfo "5:35" diff --git a/s/MoreSWIs b/s/MoreSWIs index 12311a7..2bf0e53 100644 --- a/s/MoreSWIs +++ b/s/MoreSWIs @@ -52,7 +52,7 @@ XOS_SubstituteArgs_code XOS_SubstituteArgs32_code ROUT WritePSRc SVC_mode, R12 ; enable IRQs - + NOP Push "R0-R8, lr" ADD R8, R4, R3 diff --git a/s/NewReset b/s/NewReset index 6f9817b..282bb00 100644 --- a/s/NewReset +++ b/s/NewReset @@ -711,7 +711,7 @@ kbdwait BNE kbdwait kbdthere ] - ] + ] [ ValidateCMOS ; Do a POR if some super-critical values are shagged or if checksum is invalid. @@ -750,30 +750,17 @@ reset_loop BNE cmos_reset ] -; Year should be >=1995, <=2020 -; (2020 is arbitrary, but everything breaks soon after that) +; Year should be >=1995, <=2037 (when 32 bit signed Unix time breaks) MOV R0, #YearCMOS+1 BL Read - TEQ R0, #19 - BNE check20 - -; 20th century: year should be 95 to 99 - MOV R0, #YearCMOS - BL Read - CMP r0,#95 - BLT cmos_reset - CMP r0,#99 - BHI cmos_reset - B checkboot - -check20 - TEQ R0, #20 - BNE cmos_reset - -; 21st century: year should <= 20 - MOV R0, #YearCMOS + MOV R1, R0 + MOV R0, #YearCMOS+0 BL Read - CMP R0, #20 + MOV R2, #100 + MLA R0, R2, R1, R0 + LDR R1, =1995 + SUB R0, R0, R1 + CMP R0, #2037 - 1995 BHI cmos_reset checkboot @@ -794,6 +781,7 @@ checkboot BNE cmos_reset TST R1, #OSStartFlag_POR BEQ no_cmos_reset ; not a power on reset + DebugTX "POR detected" [ CheckProtectionLink TST R1, #OSStartFlag_NoCMOSReset BNE no_cmos_reset @@ -873,6 +861,7 @@ cmos_reset [ STB ADD sp, sp, #4 ; junk CannotReset flag from stack ] + DebugTX "Reset CMOS" MOVNE R0, #0 ; even the econet station number MOVEQ R0, #1 | -- GitLab