1. 26 Feb, 2020 1 commit
  2. 18 Nov, 2017 1 commit
    • Jeffrey Lee's avatar
      Remove legacy 700us DRQ timeout for write ops · e527e619
      Jeffrey Lee authored
        Early versions of the ATA spec mandated that drives should assert DRQ within 700us of a write command being issued. However later versions of the spec have dropped this limit, and some devices (e.g. CF cards) are known to regularly exceed the limit.
        Remove the 700us timeout from ADFS, so that these devices can operate correctly.
        s/Adfs14 - Modify DRQ timeout check so that it will fall back to polling from TickerV if the initial 700us loop times out.
        s/StaticsIDE - Add extra word to workspace, so that the TickerV routine can still timeout the operation
        Tested on IOMD (~4M FSBash ops), Tungsten (~500K FSBash ops)
        Fixes "disc error 20" seen when using IDE-CF adapter on RiscPC, thanks to reasarch by Jon Abbot:
      Version 3.54. Tagged as 'ADFS-3_54'
  3. 15 Jul, 2017 1 commit
    • Robert Sprowson's avatar
      Calculate the offset to the hardware-dependent information · b95e07bc
      Robert Sprowson authored
      Don't assume that the disc address to MiscOp_Mount is always &C00, in order to locate the hardware-dependent information (see PRM 2-215), calculate the offset properly. This fixes a problem that FileCore 3.74 triggered where the LBA flag was no longer being recovered now the alignment of the request in R2 has changed, causing some drives to no longer mount if they also don't support CHS addressing.
      Strictly speaking there's no guarantee that FileCore is even asking for the boot block at all; ADFS should read the sectors itself before fulfilling the request, but historically it's always assumed that the boot block was being read, so let sleeping dogs lie.
      Ref https://www.riscosopen.org/forum/forums/4/topics/9390
      Version 3.53. Tagged as 'ADFS-3_53'
  4. 23 May, 2016 1 commit
    • Robert Sprowson's avatar
      Export a few extra bits · 8eb13bdf
      Robert Sprowson authored
      CDFSSoftATAPI 1.35 and later uses symbols instead of magic numbers for ADFS_IDEDeviceInfo and ADFS_ATAPIOp, export them here so this combination builds.
      Version 3.52. Tagged as 'ADFS-3_52'
  5. 10 Jan, 2016 2 commits
    • Jeffrey Lee's avatar
      Preserve R12 across HAL device calls · c5bab079
      Jeffrey Lee authored
        s/Adfs50 - Ensure R12 is preserved across HAL device calls, the calling conventions allow the HAL to clobber it
        Tested on Iyonix
        Fixes abort during ROM init
      Version 3.51. Retagged as 'ADFS-3_51'
    • Jeffrey Lee's avatar
      Preserve R12 across HAL device calls · c10bb669
      Jeffrey Lee authored
        s/Adfs12, s/IDEDetect - Ensure R12 is preserved over HAL device calls, the calling conventions allow the HAL to clobber it
        Tested on Iyonix
        Fixes abort during ROM init
      Version 3.51. Tagged as 'ADFS-3_51'
  6. 06 Jan, 2016 1 commit
    • Robert Sprowson's avatar
      Build fix · 74deb4a5
      Robert Sprowson authored
      Last minute new label 'Errfree' was not assembled in when FloppyPCI was true.
      Retagged as ADFS-3_50.
  7. 05 Jan, 2016 1 commit
    • Robert Sprowson's avatar
      Use HAL device for PATA IDE controller, and a few minor fixes · 606d918f
      Robert Sprowson authored
      ADFS 3 is currently both a filing system and a hardware poker, so have it own the PATA device for now as a stepping stone to a PATADriver module; export the header.
      No longer call HAL entries, look for the HAL device, activate, and call that instead. At API 0.00 it just has the exact same 3 functions as the previous HAL entries only refactored to pass a device pointer in R0.
        Export, include, and reserve workspace.
        Refactor function calls.
        Unrelated correction to pluralisation of 'Sectors'.
        Hunt for the IDE controller device.
        Fix oflaofla error if run on a non HAL machine - OS_Hardware errors but the ErrXFree code label expects the error pointer in R9 not R0.
      Tested in an IOMD build.
      Version 3.50. Tagged as 'ADFS-3_50'
  8. 28 Oct, 2015 1 commit
  9. 28 Mar, 2013 1 commit
    • Jeffrey Lee's avatar
      Replace a couple of magic numbers with constants · 26c40bae
      Jeffrey Lee authored
        s/StaticsIDE - Add definitions for the "IORDY supported" & "No 48bit DMA" flags
        s/Adfs14, s/IDEDetect - Replace a couple of magic numbers with the more descriptive named flags
        Tested in RiscPC ROM softload
      Version 3.48. Retagged as 'ADFS-3_48'
  10. 27 Jan, 2013 1 commit
  11. 23 Oct, 2012 1 commit
    • Robert Sprowson's avatar
      Allow background ops again · 9da5fa02
      Robert Sprowson authored
        Earlier tidy up 3.44->3.45 had erroneously cleared the background transfer bit, so they were being rejected leading to various things hanging while they never completed.
        Safety NOP after mode change before banked register use for consistency with other mode changes in ADFS.
        Documented CMOS bits, use ADFSSWI_Base from Hdr:SWIs, assert local definition matches FileCore.
      Floppy *and* harddiscs tested this time.
      Version 3.47. Tagged as 'ADFS-3_47'
  12. 21 Oct, 2012 4 commits
    • Robert Sprowson's avatar
      Minor typo correction · ad1ab43a
      Robert Sprowson authored
      Retagged as ADFS-3_46.
    • Robert Sprowson's avatar
      Reinstate floppies on IOMD platform · 6f1f3934
      Robert Sprowson authored
        Remove redundant header file.
        Group the options a bit more simply, use {TRUE} and {FALSE}.
        Use defines instead of magic numbers.
        Organise the offsets from the floppy controller to cover both PCI and IO based controllers.
        Only do the dummy read from the PBI on Tungsten.
        Implement the FIQ equivalent of the 'FlpUseVerify' command switch, modern controllers (!) have a built in verify rather than using a sector read, but the verify command has no data phase and the FIQ handler was sitting waiting for a sector that never arrives.
        Rationalise FlpDRQmask and FlpDRQmaskbit.
        Rationalise the calls to OS_Hardware by rejigging the assembly time switches.
        Reinstate the non HAL version of IRQ enable for reference.
        On RPCEmu 0.8.8 and 0.8.9 the emulator hangs during the four set of DCB's used to autodetect the drive (Recalibrate/Seek/Seek/Sense) which seems to be due to the way the emulator splits CPU time to floppy emulation time, to avoid this we wait 128us (real time) which is enough emulated time for the controller to have changed state. You probably just want to *CONFIGURE FLOPPIES 0 though.
      Tested om A7000, ARM610, StrongARM manipulating a veriety of disc densities for read and write. Also ran the "Test/TestADFS" test program.
      RPCEmu 0.8.8 and 0.8.9 boots still, but no attempt has been made to use emulated floppies.
      Version 3.46. Tagged as 'ADFS-3_46'
    • Robert Sprowson's avatar
      Tabs expanded · e7c1bd3c
      Robert Sprowson authored
      Assembler source uses spaces round here in general, follow suit.
      Not tagged.
    • Robert Sprowson's avatar
      Tidy up pass · 8dd5e237
      Robert Sprowson authored
        Redundant header files trimmed
        Get OsWords and OsBytes
        Switches rationalised
        Removed ARM810 support
        Unused MEMC flag removed
        Use defines instead of magic numbers
        Make use of FileCore exported bit fields
        {TRUE} and {FALSE} used with objasm
        Use AND of the opmask instead of BIC of all the flags except the opmask
        Unused MEMC flag no longer initialised
        Make use of FileCore exported bit fields
        Service call table reordered so the Ursula despatch doesn't incur a branch
        OsByte defines used
        Removed those definitions now duplicating FileCore's exports
        All options brought under one roof
        Now uses VersionNum directly
        Redundant switches deleted
        Removed used of 'Version' header
      Version 3.45. Tagged as 'ADFS-3_45'
  13. 13 Apr, 2012 1 commit
    • Ben Avison's avatar
      Minor bugfix to MiscOp 1 for '765 floppy disc driver · 138040d0
      Ben Avison authored
        If the sequence number did not have the expected value on entry (i.e. the
        caller had missed at least one state change) then the driver always reported
        Changed, even for floppy drives without a working disc changed line. This
        was the only time when Changed was reported for such drives - now it reports
        MaybeChanged in this case, which is consistent with the 1772 floppy driver.
        Also removed the confusingly-named (and unused) symbols DefectStruc and
        DefectCheck, in line with similar changes to SCSIFS and FileCore.
        Untested, but should be a safe change.
      Version 3.44. Tagged as 'ADFS-3_44'
  14. 21 Mar, 2012 1 commit
    • Ben Avison's avatar
      Retired FileCore_Create "No directory state" startup option · 61dadf8c
      Ben Avison authored
        Despite what the PRM says about *Configure options Dir and NoDir, the
        CMOS bit which they control was actually read by the filing systems and
        passed to FileCore via register R3 passed to FileCore_Create. In practice,
        only ADFS appears to have done this correctly. However, since RISC OS 3.00,
        FileCore has not managed the CSD (this function being taken over by
        FileSwitch) so this option hasn't actually done anything for the last
        21 years! Given that the other FileCore filing systems have managed fine
        without the Dir/NoDir option being set correctly, I think the time has come
        to stop using this part of the FileCore_Create API, which means we can free
        up a bit of CMOS.
        Builds but not tested, but a very low-risk change.
      Version 3.43. Tagged as 'ADFS-3_43'
  15. 19 Mar, 2012 1 commit
    • Ben Avison's avatar
      Reworked error code · 2720c90b
      Ben Avison authored
        Now uses Hdr:FileCoreErr rather than containing its own definitions of the
        low-level FileCore error numbers. Autogenerates and exports a new header,
        Hdr:ADFSErr, and a C version of the same, containing error definitions
        within the ADFS error block, derived from the error offsets from
        Hdr:FileCoreErr plus the ADFS-specific errors. s.AdfsErrors is now only
        used to list the errors for which an error block needs to be allocated for
        ADFS's own use.
        No changes to the binary.
      Version 3.42. Tagged as 'ADFS-3_42'
  16. 14 Oct, 2011 1 commit
    • Robert Sprowson's avatar
      Update to use some of the exported FileCore headers. · 069303ab
      Robert Sprowson authored
      There are still a large number of local copies that should be visited, but this change at least allows it to assemble again FileCore-3_45.
      Tungsten and IOMD variants assemble, but others untested.
      Version 3.41. Tagged as 'ADFS-3_41'
  17. 07 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 6589f4d7
      Jeffrey Lee authored
        s/ADFS, s/Adfs00, s/Adfs50 - Use OS_ReadSysInfo 6 to get ESC_Status location and store it in module workspace
        s/Adfs05 - Updated debug code to use OS_ReadSysInfo 6 to get IRQsema location. Updated CheckEscape to use local ESC_Status pointer, and updated it to only be compiled if it's actually needed
        s/Adfs10, s/Adfs14, s/Adfs15, s/Adfs17 - Use local ESC_Status pointer
        Tested (with low processor vectors) in Iyonix ROM softload
        Note that FIQ handlers haven't been updated to support high vectors, since they aren't currently used on any hardware capable of using high vectors
      Version 3.40. Tagged as 'ADFS-3_40'
  18. 18 Jul, 2011 1 commit
    • Jeffrey Lee's avatar
      Update IOMD HAL build to use OS_Memory 9 instead of HAL_ControllerAddress for... · fff2a575
      Jeffrey Lee authored
      Update IOMD HAL build to use OS_Memory 9 instead of HAL_ControllerAddress for finding the floppy controller
        s/Adfs19 - The (currently disabled) floppy code now uses OS_Memory 9 to look for controller 34 instead of the less-portable (and allocation clashing) HAL_ControllerAddress (to look for controller 6).
        Compiles but untested. IOMD floppy support is broken at the moment anyway.
      Version 3.39. Tagged as 'ADFS-3_39'
  19. 22 Jun, 2011 1 commit
    • Jeffrey Lee's avatar
      IOMD/HAL build fixes · 013c01da
      Jeffrey Lee authored
        s/Adfs12 - Don't use DefaultIDEHardware in HAL builds, use the proper addresses instead
        s/Adfs19 - Make floppy code use HAL_ControllerAddress to get 82C710 address in non-PCI, non-Podule, HAL builds. However floppy code is currently disabled in this configuration because it hangs the machine when floppy access is attempted.
        s/Consts, s/StaticsIDE - Get rid of some bad address constants for HAL builds
        Tested in Iyonix & IOMD ROM softloads.
      Version 3.38. Tagged as 'ADFS-3_38'
  20. 06 Dec, 2010 1 commit
    • Ben Avison's avatar
      Reintroduced support for IOMD machines · a2d689f9
      Ben Avison authored
        There was no "Ver" file for Machine=32, and the code for build switch
        settings appropriate for IOMD had not been kept up-to-date with various
        changes to the module which were made to support Tungsten. This version
        provides working IDE support for IOMD HAL builds, although there are
        still some issues with floppy support. Tungsten builds should be
        functionally identical.
        Tested on a Risc PC. Joint development effort by Tom Walker and Ben Avison.
      Version 3.37. Tagged as 'ADFS-3_37'
  21. 19 Jan, 2010 1 commit
    • ROOL's avatar
      Incremented version number, no other change. · 63753fc1
      ROOL authored
      Previous changes were untagged, but incrementing the version number gives
      us a tag we can associate with the official RISC OS 5.16 release.
      Version 3.36. Tagged as 'ADFS-3_36'
  22. 15 Jun, 2009 1 commit
    • Ben Avison's avatar
      Build change · d4ba6c08
      Ben Avison authored
        CPU version is no longer specified in the makefile - it's better to inherit
        it from the build environment now that we actually set it appropriately.
        Not tested. Binary should be unchanged - this only affects the warnings
        generated during assembly.
      Version 3.35. Not tagged
  23. 11 Jun, 2009 1 commit
    • Ben Avison's avatar
      GET file pathnames changed · 451a6518
      Ben Avison authored
        Uses suffixed file extensions for compatiblity with both objasm and asasm.
        Supplied by Peter Naulls, tested at ROOL
      Version 3.35. Not tagged
  24. 03 Dec, 2003 1 commit
  25. 03 Apr, 2003 1 commit
    • Kevin Bracey's avatar
      * DMA support completed. · 664368e8
      Kevin Bracey authored
      * Selects PIO/DMA/Ultra DMA modes appropriate for each device.
      * DMA support added to ADFS_IDEUserOp, but not yet ADFS_ATAPIOp.
      * WinIDEMaxSectorsPerTransfer increased to 256.
      * Floppy driver reattaches to DMA Manager if it's reinitialised.
      Version 3.35. Tagged as 'ADFS-3_35'
  26. 28 Jan, 2003 1 commit
  27. 17 Jan, 2003 1 commit
    • Kevin Bracey's avatar
      * ADFS_DiscOp64 and ADFS_ATAPIOp added. · d980237a
      Kevin Bracey authored
      * New FileCore error passing scheme supported.
      * PCI floppy support functional.
      * 48-bit LBA support added for ADFS_IDEUserOp and accessing beyond the
        first 128GB of a drive - not thoroughly tested.
      * IDE autodetection improved
      Version 3.34. Tagged as 'ADFS-3_34'
  28. 18 Sep, 2002 1 commit
  29. 17 Nov, 2000 1 commit
    • Ben Avison's avatar
      Loading to/saving from top-bit-set addresses should now work. · 28968ea5
      Ben Avison authored
        The problem was in the API definition of the scatter lists used in
        background data transfer. These consist of a sequence of word pairs,
        holding addresses and lengths; any negative (ie top-bit-set) address word
        is defined to mean that the list continues at an location that is offset
        by that amount. To get around this, the check is now made not on whether
        the address word is negative, but on whether it is equal to or greater
        than (less negative than) &FFFF0000. This means that accesses to these
        addresses will still fail, but such addresses should be reserved for
        system use anyway.
        Tested briefly.
      Version 3.33. Tagged as 'ADFS-3_33'
  30. 11 Jul, 2000 2 commits
    • Kevin Bracey's avatar
      Ursula_RiscPC branch merged. · 83c6bab3
      Kevin Bracey authored
        The Ursula_RiscPC branch contained version 3.30 of ADFS, which had
        minimal updates for Ursula, such as the service call table. This
        version, incorporating changes on the Ursula branch up to
        the Ursula_RiscPC_bp tag, is now merged on to the trunk as 3.32.
        This leaves version 3.31 on the Ursula branch, unmerged. This contains
        unfinished support for auto-detection of IDE drives and support for
        Phoebe hardware.
      Version 3.32. Tagged as 'ADFS-3_32'
    • Kevin Bracey's avatar
      created by srccommit. · eee8692b
      Kevin Bracey authored
  31. 29 Oct, 1998 1 commit
  32. 09 May, 1997 1 commit
  33. 02 May, 1997 1 commit
  34. 01 May, 1997 2 commits