Commit 799120d5 authored by Ben Avison's avatar Ben Avison
Browse files

Bugfixes to OS_Bytes 13 and 14.

Detail:
  Event numbers greater than 31 are possible, it's just that OS_GenerateEvent
  doesn't bother cheking the event semaphores for them. However, the value
  returned in R1 from these OS_Bytes always indicated that such events were
  disabled. This suggests that OS_GenerateEvent was not always so, but the
  initials in comments there suggest the change was about RISC OS 3.0.
  The OS_Bytes now correctly reflect OS_GenerateEvent behaviour.
  Another bug fix is that once the event semaphores had saturated at 255,
  OS_Byte 13 was still happy to decrement the semaphore, so for example 256
  enables followed by 255 disables would have disabled the event.
Admin:
  Not tested.

Version 5.35, 4.79.2.70. Tagged as 'Kernel-5_35-4_79_2_70'
parent 297a95c2
......@@ -13,11 +13,11 @@
GBLS Module_ComponentPath
Module_MajorVersion SETS "5.35"
Module_Version SETA 535
Module_MinorVersion SETS "4.79.2.69"
Module_MinorVersion SETS "4.79.2.70"
Module_Date SETS "21 Jun 2004"
Module_ApplicationDate SETS "21-Jun-04"
Module_ComponentName SETS "Kernel"
Module_ComponentPath SETS "RiscOS/Sources/Kernel"
Module_FullVersion SETS "5.35 (4.79.2.69)"
Module_HelpVersion SETS "5.35 (21 Jun 2004) 4.79.2.69"
Module_FullVersion SETS "5.35 (4.79.2.70)"
Module_HelpVersion SETS "5.35 (21 Jun 2004) 4.79.2.70"
END
......@@ -5,12 +5,12 @@
*
*/
#define Module_MajorVersion_CMHG 5.35
#define Module_MinorVersion_CMHG 4.79.2.69
#define Module_MinorVersion_CMHG 4.79.2.70
#define Module_Date_CMHG 21 Jun 2004
#define Module_MajorVersion "5.35"
#define Module_Version 535
#define Module_MinorVersion "4.79.2.69"
#define Module_MinorVersion "4.79.2.70"
#define Module_Date "21 Jun 2004"
#define Module_ApplicationDate "21-Jun-04"
......@@ -18,6 +18,6 @@
#define Module_ComponentName "Kernel"
#define Module_ComponentPath "RiscOS/Sources/Kernel"
#define Module_FullVersion "5.35 (4.79.2.69)"
#define Module_HelpVersion "5.35 (21 Jun 2004) 4.79.2.69"
#define Module_FullVersion "5.35 (4.79.2.70)"
#define Module_HelpVersion "5.35 (21 Jun 2004) 4.79.2.70"
#define Module_LibraryVersionInfo "5:35"
......@@ -395,7 +395,7 @@ Osbyte0C
Osbyte0D ROUT
Osbyte0E ROUT
CMP R1, #32 ; if illegal event number
MOVCS R2, #0 ; then return + say was disabled
MOVCS R2, #&FF ; then return + say was enabled
BCS %FT10
ADD R3, WsPtr, #:INDEX: EventSemaphores
......@@ -405,8 +405,8 @@ Osbyte0E ROUT
SUBEQ R0, R2, #1 ; decrement semaphore
ADDNE R0, R2, #1 ; increment semaphore
CMP R0, #&100 ; C=1 => wrapped, so don't store back
STRCCB R0, [R3, R1]
CMP R2, #&FF ; Z=1 => already saturated, so don't store back
STRNEB R0, [R3, R1]
10
MOV R1, R2 ; R1 = R2 = old semaphore
MyOsbyte
......
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