Commit 9a0d7b54 authored by Steve Revill's avatar Steve Revill
Browse files

Added a couple of new sub-reason codes to OS_ReadSysInfo 6;

  Optimised the default IrqV handler.
Detail:
  * OS_ReadSysInfo 6 tells grubby programs lots of grubby info. This
    has been extended to include:

      18 - relocated base of OS SWI despatch table
      19 - relocated base of IRQ device head nodes
      20 - relocated end of IRQ device head nodes
      21 - top of the IRQ stack

    These values are known to be useful for debugging purposes.

  * The default IrqV handler gets the device number times three on
    entry in R0. It then went through a loop subtracting three and
    incrementing a counter to divide by three.

    This has been replaced by four ARM instructions which should
    give the same results (three to divide by three and one to set
    R0 to zero - as the old code did).

    If the device number is outside the range 0..31, the new code
    may produce inaccurate results, but this should not happen.
Admin:
  Not tested ;)

Version 5.43. Tagged as 'Kernel-5_43'
parent 937403d6
......@@ -11,14 +11,14 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.42"
Module_Version SETA 542
Module_MajorVersion SETS "5.43"
Module_Version SETA 543
Module_MinorVersion SETS ""
Module_Date SETS "10 Apr 2001"
Module_ApplicationDate2 SETS "10-Apr-01"
Module_ApplicationDate4 SETS "10-Apr-2001"
Module_Date SETS "25 May 2001"
Module_ApplicationDate2 SETS "25-May-01"
Module_ApplicationDate4 SETS "25-May-2001"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.42"
Module_HelpVersion SETS "5.42 (10 Apr 2001)"
Module_FullVersion SETS "5.43"
Module_HelpVersion SETS "5.43 (25 May 2001)"
END
/* (5.42)
/* (5.43)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 5.42
#define Module_MajorVersion_CMHG 5.43
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 10 Apr 2001
#define Module_Date_CMHG 25 May 2001
#define Module_MajorVersion "5.42"
#define Module_Version 542
#define Module_MajorVersion "5.43"
#define Module_Version 543
#define Module_MinorVersion ""
#define Module_Date "10 Apr 2001"
#define Module_Date "25 May 2001"
#define Module_ApplicationDate2 "10-Apr-01"
#define Module_ApplicationDate4 "10-Apr-2001"
#define Module_ApplicationDate2 "25-May-01"
#define Module_ApplicationDate4 "25-May-2001"
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "RiscOS/Sources/Kernel"
#define Module_FullVersion "5.42"
#define Module_HelpVersion "5.42 (10 Apr 2001)"
#define Module_FullVersion "5.43"
#define Module_HelpVersion "5.43 (25 May 2001)"
......@@ -1691,25 +1691,29 @@ MachineAddressNVRAMError
ExitSWIHandler
osri6_table
DCD CamEntriesPointer ;0
DCD MaxCamEntry ;1
DCD PageFlags_Unavailable ;2
DCD PhysRamTable ;3
DCD ARMA_Cleaner_flipflop ;4
DCD TickNodeChain ;5
DCD ROMModuleChain ;6
DCD DAList ;7
DCD AppSpaceDANode ;8
DCD Module_List ;9
DCD ModuleSHT_Entries ;10
DCD ModuleSWI_HashTab ;11
DCD IOSystemType ;12
DCD L1PT ;13
DCD L2PT ;14
DCD UNDSTK ;15
DCD SVCSTK ;16
DCD SysHeapStart ;17
osri6_maxvalue * 17
DCD CamEntriesPointer ;0
DCD MaxCamEntry ;1
DCD PageFlags_Unavailable ;2
DCD PhysRamTable ;3
DCD ARMA_Cleaner_flipflop ;4
DCD TickNodeChain ;5
DCD ROMModuleChain ;6
DCD DAList ;7
DCD AppSpaceDANode ;8
DCD Module_List ;9
DCD ModuleSHT_Entries ;10
DCD ModuleSWI_HashTab ;11
DCD IOSystemType ;12
DCD L1PT ;13
DCD L2PT ;14
DCD UNDSTK ;15
DCD SVCSTK ;16
DCD SysHeapStart ;17
DCD JTABLE-SWIRelocation ;18 - relocated base of OS SWI despatch table
DCD DefaultIRQ1V+(Devices-DefaultIRQ1Vcode) ;19 - relocated base of IRQ device head nodes
DCD DefaultIRQ1V+(DeviceTables-DefaultIRQ1Vcode) ;20 - relocated end of IRQ device head nodes
DCD IRQSTK ;21 - top of the IRQ stack
osri6_maxvalue * (.-4-osri6_table) :SHR: 2
; OS_ReadSysInfo 7 - read 32-bit Abort information for last unexpected abort
......
......@@ -1060,12 +1060,13 @@ NOIRQ ROUT
MOV r10, #VIDC
STR r14, [r10]
]
01 SUBS r0, r0, #3
ADDGE r12, r12, #1
BGT %BT01 ; r12 := r0 DIV 3
ADD R12, R0, R0, LSL #3 ; r12 := 9*R0
ADD R12, R12, R0, LSL #1 ; r12 := 11*R0
MOV R12, R12, LSR #5 ; r12 := r0/3
CMP R12, #8
MOVLO R0, #IOCIRQMSKA
MOVHS R0, #0
BLO %FT03
CMP R12, #16
......
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