1. 29 Apr, 2018 1 commit
    • Robert Sprowson's avatar
      Fix for abort loading on OS 3.50/3.60 · b5e4a24c
      Robert Sprowson authored
      The logic to detect if SWP is available relies on being able to write the procecssor vectors, which isn't possible on OS 3.50/3.60 directly. Since anything that ran those OS versions certainly has SWP, just skip the check.
      Tested on OS 3.60, no longer aborts.
      
      Version 0.19. Tagged as 'CallASWI-0_19'
      b5e4a24c
  2. 27 Aug, 2017 1 commit
  3. 09 Feb, 2017 1 commit
  4. 30 Jun, 2016 1 commit
    • Robert Sprowson's avatar
      Fix escape from OS_ReadLine32 · 7569ffe7
      Robert Sprowson authored
      On 26 bit systems this calls SWI OS_ReadLine internally, and thus pushes R14. However, on popping the carry flag isn't transferred for SLVK to give back to the user, so pressing Escape returns with C undefined.
      After the pop, transfer C into the returned flags.
      
      Version 0.16. Tagged as 'CallASWI-0_16'
      7569ffe7
  5. 28 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Fix pre-RISC OS 3.7 support · 4209a18b
      Jeffrey Lee authored
      Detail:
        s/CallASWI - Copy & paste error led to a key LDR going missing in the pre-RISC OS 3.7 code path of the module init, resulting in incorrect patching of some SWIs.
      Admin:
        Tested PlingSystem build under RISC OS 3.1
      
      
      Version 0.15. Tagged as 'CallASWI-0_15'
      4209a18b
  6. 24 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Add OS_PlatformFeatures 34 implementation. Fix unknown OS_PlatformFeatures... · 0ceb7ae0
      Jeffrey Lee authored
      Add OS_PlatformFeatures 34 implementation. Fix unknown OS_PlatformFeatures reason codes always raising an error.
      
      Detail:
        s/CPUFeatures - A copy of the kernel's s/CPUFeatures, to provide the OS_PlatformFeatures 34 implementation
        s/CallASWI:
        - Adjust OS_PlatformFeatures implementation so that it can be used on all OS versions supported by the module, instead of just pre-3.7
        - For 3.8+ allow unknown OS_PlatformFeatures reason codes to be passed on to the OS, otherwise generate our own error (and also fix bug in the error generation that would have resulted in the X bit being ignored, the same bug that was present in the kernel).
        - Hook up OS_PlatformFeatures 34, and indicate in OS_PlatformFeatures 0 that the error generation bug has been fixed.
      Admin:
        Tested on ARM2/250/3 RISC OS 3.1 (emulated) + StrongARM RISC OS 3.7 (native)
        Requires Kernel-5_35-4_79_2_325
      
      
      Version 0.14. Tagged as 'CallASWI-0_14'
      0ceb7ae0
  7. 26 Apr, 2016 1 commit
    • Jeffrey Lee's avatar
      Fix SWP detection · 7d4423fb
      Jeffrey Lee authored
      Detail:
        s/CallASWI - SWP detection rewritten to directly poke a replacement handler into the undefined instruction vector. This avoids:
        (a) SWP [sp] trashing the error handler pointer (Not an issue for CLib since it used an ascending stack in its SWP detection code)
        (b) If the SWP aborted, the XOS_EnterOS was corrupting the SVC stack before we're able to restore SP (CLib has the advantage that the SVC stack is empty)
        (c) A bug in FPEmulator versions 4.12-4.31 which prevents us from using OS_ChangeEnvironment to replace the undefined instruction handler
      Admin:
        Tested on RISC OS 3.1 running under ArcEm, ARM2 & ARM250 emulation
        (Admittedly, after fixing ArcEm's ARM2 emulation to abort on SWP)
      
      
      Version 0.13. Tagged as 'CallASWI-0_13'
      7d4423fb
  8. 23 Apr, 2016 1 commit
  9. 14 Oct, 2012 1 commit
    • Robert Sprowson's avatar
      Don't corrupt the reason code for Service_Reset · f33adbef
      Robert Sprowson authored
      The Service_Reset code called OS_Byte without preserving the calling registers so anyone downstream wouldn't see the right service call.
      Also, don't create a loop on OS_FSControl with an non fatal finalisation by checking the copy of the old caller isn't actually Our_FSControl again.
      
      Version 0.11. Tagged as 'CallASWI-0_11'
      f33adbef
  10. 24 Apr, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix OS_LeaveOS · c7dbdee4
      Jeffrey Lee authored
      Detail:
        s/CallASWI - OS_LeaveOS was clearing the bottom four bits of LR, as if it held the 32bit PSR. But on all released 26bit OS versions LR contains the 26bit PSR+return address, so depending on the alignment of the instruction OS_LeaveOS could end up returning to a point several instructions before the SWI, resulting in a crash or infinite loop.
      Admin:
        Tested on RISC OS 3.1
      
      
      Version 0.10. Tagged as 'CallASWI-0_10'
      c7dbdee4
  11. 27 Nov, 2011 4 commits
  12. 27 May, 2010 1 commit
  13. 12 Aug, 2005 1 commit
    • Steve Revill's avatar
      Makefile bug fix · f0f37461
      Steve Revill authored
      Detail:
        There was no LF at the end of the makefile so the first (only)
        dynamic dependency ended up on the end of the comment line.
      Admin:
        No code change.
      
      Version 0.04. Tagged as 'CallASWI-0_04'
      f0f37461
  14. 20 Dec, 2002 3 commits