From c84929d7e23d3368ee34a7651223384b2c848ffe Mon Sep 17 00:00:00 2001
From: Jeffrey Lee <jlee@gitlab.riscosopen.org>
Date: Tue, 1 Sep 2015 22:30:55 +0000
Subject: [PATCH] Fix IOMD build

Detail:
  s/ChangeDyn - Differing zero page workspace layout between HiProcVecs {TRUE} and {FALSE} means the difference between FreePoolDANode being a valid 8 bit immediate constant or not. Just use a long-form LDR instead since the code in question isn't performance-critical.
Admin:
  Tested briefly under RPCEmu


Version 5.35, 4.79.2.286. Tagged as 'Kernel-5_35-4_79_2_286'
---
 VersionASM  | 6 +++---
 VersionNum  | 8 ++++----
 s/ChangeDyn | 4 ++--
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/VersionASM b/VersionASM
index 25f6886..7dd1a28 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.285"
+Module_MinorVersion     SETS    "4.79.2.286"
 Module_Date             SETS    "01 Sep 2015"
 Module_ApplicationDate  SETS    "01-Sep-15"
 Module_ComponentName    SETS    "Kernel"
 Module_ComponentPath    SETS    "castle/RiscOS/Sources/Kernel"
-Module_FullVersion      SETS    "5.35 (4.79.2.285)"
-Module_HelpVersion      SETS    "5.35 (01 Sep 2015) 4.79.2.285"
+Module_FullVersion      SETS    "5.35 (4.79.2.286)"
+Module_HelpVersion      SETS    "5.35 (01 Sep 2015) 4.79.2.286"
                         END
diff --git a/VersionNum b/VersionNum
index a8b2b42..a0eac04 100644
--- a/VersionNum
+++ b/VersionNum
@@ -5,12 +5,12 @@
  *
  */
 #define Module_MajorVersion_CMHG        5.35
-#define Module_MinorVersion_CMHG        4.79.2.285
+#define Module_MinorVersion_CMHG        4.79.2.286
 #define Module_Date_CMHG                01 Sep 2015
 
 #define Module_MajorVersion             "5.35"
 #define Module_Version                  535
-#define Module_MinorVersion             "4.79.2.285"
+#define Module_MinorVersion             "4.79.2.286"
 #define Module_Date                     "01 Sep 2015"
 
 #define Module_ApplicationDate          "01-Sep-15"
@@ -18,6 +18,6 @@
 #define Module_ComponentName            "Kernel"
 #define Module_ComponentPath            "castle/RiscOS/Sources/Kernel"
 
-#define Module_FullVersion              "5.35 (4.79.2.285)"
-#define Module_HelpVersion              "5.35 (01 Sep 2015) 4.79.2.285"
+#define Module_FullVersion              "5.35 (4.79.2.286)"
+#define Module_HelpVersion              "5.35 (01 Sep 2015) 4.79.2.286"
 #define Module_LibraryVersionInfo       "5:35"
diff --git a/s/ChangeDyn b/s/ChangeDyn
index ab46d3e..0e052e7 100644
--- a/s/ChangeDyn
+++ b/s/ChangeDyn
@@ -4302,7 +4302,7 @@ InitDynamicAreas Entry "r0-r12"
         STMIA   lr, {r0-r8}
         LDR     r0, =ZeroPage
  [ FreePoolAddress < SysHeapStart
-        ADD     lr, r0, #FreePoolDANode             ; cf comments above/below - what was old code? KJB
+        LDR     lr, =ZeroPage+FreePoolDANode    ; cf comments above/below - what was old code? KJB
  ]
         STR     lr, [r0, #DAList]               ; store pointer to 1st node on list (either free pool or sys heap)
 
@@ -4463,7 +4463,7 @@ DynArea_AddrLookup_loop
 
         SUB     sp, sp, #4                      ; Store the initial list on the stack
         LDR     r5, =ZeroPage
-        ADD     r6, r5, #FreePoolDANode
+        LDR     r6, =ZeroPage+FreePoolDANode
         STR     sp, [r6, #DANode_PMP]
         MOV     r0, #1
         STR     r0, [r6, #DANode_PMPMaxSize]
-- 
GitLab