diff --git a/VersionASM b/VersionASM index 4d125dad80bb863aa2d414d6c06a5ba98f901b38..4182f3c4255f5927436057f3a284c4fc0cb89f39 100644 --- a/VersionASM +++ b/VersionASM @@ -6,9 +6,9 @@ GBLS Module_MinorVersion GBLS Module_Date GBLS Module_FullVersion -Module_MajorVersion SETS "4.78" -Module_Version SETA 478 +Module_MajorVersion SETS "4.79" +Module_Version SETA 479 Module_MinorVersion SETS "" -Module_Date SETS "06 May 1999" -Module_FullVersion SETS "4.78" +Module_Date SETS "07 May 1999" +Module_FullVersion SETS "4.79" END diff --git a/VersionNum b/VersionNum index c3c024454ca026163b34f4b3614db7ce3e6bcc5e..b4e55de902b920ab02917fa6dcabcd8389926be0 100644 --- a/VersionNum +++ b/VersionNum @@ -1,15 +1,15 @@ -/* (4.78) +/* (4.79) * * This file is automatically maintained by srccommit, do not edit manually. * */ -#define Module_MajorVersion_CMHG 4.78 +#define Module_MajorVersion_CMHG 4.79 #define Module_MinorVersion_CMHG -#define Module_Date_CMHG 06 May 1999 +#define Module_Date_CMHG 07 May 1999 -#define Module_MajorVersion "4.78" -#define Module_Version 478 +#define Module_MajorVersion "4.79" +#define Module_Version 479 #define Module_MinorVersion "" -#define Module_Date "06 May 1999" +#define Module_Date "07 May 1999" -#define Module_FullVersion "4.78" +#define Module_FullVersion "4.79" diff --git a/hdr/ModHand b/hdr/ModHand index 841754e820475a68b41daa5df15ae89fa711c250..79cf00fac2ca4c876d434379c81a4b57359c757e 100644 --- a/hdr/ModHand +++ b/hdr/ModHand @@ -39,6 +39,7 @@ OldOpt SETA {OPT} ; 29-Jul-87 APT LookupName ; 17-Aug-87 APT EnumerateROM_Modules ; 23-Jan-91 TMD EnumerateROM_ModulesWithInfo +; 07-May-99 KJB FindEndOfROM_ModuleChain ModHandReason_Run * 0 ModHandReason_Load * 1 @@ -61,6 +62,7 @@ ModHandReason_AddPoduleModule * 17 ModHandReason_LookupName * 18 ModHandReason_EnumerateROM_Modules * 19 ModHandReason_EnumerateROM_ModulesWithInfo * 20 +ModHandReason_FindEndOfROM_ModuleChain * 21 ; Real module offsets diff --git a/s/ModHand b/s/ModHand index f5917fff656e0b5f97a210046f031cce583afffb..f6cd122e56f18f3c40b74b3c5d2744c4a4792d6b 100644 --- a/s/ModHand +++ b/s/ModHand @@ -547,6 +547,7 @@ ModuleHandler ROUT ModuleDispatchEntry LookupName ModuleDispatchEntry EnumerateROM_Modules ModuleDispatchEntry EnumerateROM_ModulesWithInfo + ModuleDispatchEntry FindEndOfROM_ModuleChain NaffSWI ; Set V and return ADR R0, ErrorBlock_BadModuleReason @@ -1598,6 +1599,33 @@ Module_EnumerateROM_ModulesWithInfo ROUT Pull "r8, r9, lr" ; restore registers ExitSWIHandler ; and exit +;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +; FindEndOfROM_ModuleChain +; +; In : R1 = -1 => ROM +; = other => reserved +; +; Out: R1 = preserved +; R2 -> first word after ROM module chain + +Module_FindEndOfROM_ModuleChain ROUT + CMP r1, #-1 ; Only works for the system ROM at present + ADRNEL r0, ErrorBlock_BadParameters + [ International + Push "lr",NE + BLNE TranslateError + Pull "lr",EQ + ] + BNE SLVK_SetV + + ADRL r2, SysModules_Info + 4 ; Step through until the end of the module chain +10 LDR r11, [r2, #-4] + TEQ r11, #0 + ADDNE r2, r2, r11 + BNE %BT10 + + ExitSWIHandler ; and exit + ;************************************************************* ; Support routines. ;