1. 09 Sep, 2017 4 commits
    • Jeffrey Lee's avatar
      Minor improvements · 3a1ef8f7
      Jeffrey Lee authored
        hdr/mymacros, s/ScsiFs05 - Remove some unused 26bit-only macros. Use REV instruction in RevBytes macro when possible. Replace most manual PSR manipulation with common macros.
        s/Hdr_fst, s/ScsiFs15 - Use Portable_Idle within 1s wait loop, to avoid thrashing the CPU
        Tested on Raspberry Pi
      Version 1.31. Tagged as 'SCSIFS-1_31'
    • Jeffrey Lee's avatar
      Fix memory corruption when encountering a floppy-type device with SCSI ID >= 4 · 09740560
      Jeffrey Lee authored
        s/ScsiFs20 - Fix UnlockMedia to perform the correct translation between SCSI ID and FileCore drive number
        Tested on Raspberry Pi
        Fixes issue reported on forums when many drives connected:
      Version 1.30. Tagged as 'SCSIFS-1_30'
    • Jeffrey Lee's avatar
      Strip some old code and options · 48d890c1
      Jeffrey Lee authored
        Since we only really care about the RISC OS 5 version of this module, there are various old switches stretching back 20+ years which can be removed to make the sources a bit easier on the eye:
        * OpticalMemorySupport (-> {TRUE})
        * IgnoreRecoveredError (-> {TRUE})
        * FloppySupport (-> {TRUE})
        * MediaLocking (-> {TRUE})
        * BigDisc (-> {TRUE})
        * AutoDetect (-> {TRUE})
        * HotPlug (-> {TRUE})
        Files changed:
        HelpText, hdr/mymacros, s/Fixes, s/Hdr_fst, s/ScsiFs00, s/ScsiFs05, s/ScsiFs15, s/ScsiFs20, s/ScsiFs50
        Resulting binary unchanged (for default options, at least)
      Version 1.29. Not tagged
    • Jeffrey Lee's avatar
      Tidy things up a bit · f7507077
      Jeffrey Lee authored
        s/ScsiFs00, ScsiFs05, ScsiFs15, ScsiFs20, ScsiFs50 - Add comments for some of the different IDs which are used. Add MaxDriveNo constant, and make use of it where appropriate. Make BlockSizes non-braindead.
        Cosmetic changes only, binary unchanged.
      Version 1.29. Not tagged
  2. 28 Nov, 2016 1 commit
  3. 06 Oct, 2013 2 commits
    • Robert Sprowson's avatar
      Internationalised · 452bbb0b
      Robert Sprowson authored
      In addition
       - simplify WrDec to just use OS_ConvertCardinal1 hence not need a division routine
       - change the Hide check to at least use Choices: correctly, if you must
       - macros Text and baddr eliminated
      Tested in an OMAP3 ROM build.
      Version 1.28. Tagged as 'SCSIFS-1_28'
    • Robert Sprowson's avatar
      Sources lined up to be more readable · 3b0a2e9a
      Robert Sprowson authored
      One pass through AsmTidy, then a manual inspection.
      Builds binary identical version. No tagged.
  4. 23 Aug, 2013 1 commit
    • Robert Sprowson's avatar
      Minor cleanups · 59434ba5
      Robert Sprowson authored
      * Upcall and OsByte symbols used from central headers
      * T and F swapped for ObjAsm built in variables
      * Deleted some unused CPU and hardware definitions
      * Put unused files in the attic
      Tested briefly, still worked.
      Version 1.27. Tagged as 'SCSIFS-1_27'
  5. 26 Jun, 2012 1 commit
    • Jeffrey Lee's avatar
      Don't source padding data from zero page · 29bce293
      Jeffrey Lee authored
        s/ScsiFs00, s/ScsiFs15, s/ScsiFs50 - When UseSpecialScatterBlk, pad writes out to device block size by using an empty block of RMA instead of the contents of zero page.
        Fixes crashes when high processor vectors are in use
      Version 1.26. Tagged as 'SCSIFS-1_26'
  6. 13 Apr, 2012 1 commit
    • Ben Avison's avatar
      Minor change in line with cleanup to FileCore · ca864265
      Ben Avison authored
        Removed confusingly-named DefectStruc symbol (actually the offset into
        the boot block where the disc record is held) - was only used in one place
        No code change - retagged as SCSIFS-1_25
      Version 1.25. Not tagged
  7. 21 Mar, 2012 1 commit
    • Ben Avison's avatar
      Support for FileCore API relaxations · ff4a4d5b
      Ben Avison authored
        * Previously, SCSIFS always set the "No directory state" startup option
          bit in FileCore_Create, even though from the PRM's description of the
          *Configure Dir/NoDir options, it should have been setting it according
          to the shared bit in CMOS byte &0B. However, since RISC OS 3.00, FileCore
          has not done anything with this information, so I'm retiring the bit.
        * No longer passes hard disc map sizes in R6 to FileCore_Create. This means
          it no longer reads them from CMOS, and nor does it update the CMOS when
          discs are mounted. This is safe because FileCore hasn't actually used
          these values since RISC OS 4.00. For consistency with ADFS (which stopped
          using its equivalent CMOS at RISC OS 5.00) the code is switched out via
          the BigDisc switch. This means we can free up a whole 4 bytes of CMOS!
        Tested briefly via a softload on an OMAP3 machine.
      Version 1.25. Tagged as 'SCSIFS-1_25'
  8. 19 Mar, 2012 1 commit
    • Ben Avison's avatar
      Reworked error code · 63e4ebc0
      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:SCSIFSErr, and a C version of the same, containing error definitions
        within the SCSIFS error block, derived from the error offsets from
        Hdr:FileCoreErr. hdr.MyErrors is now only used to list the errors for
        which an error block needs to be allocated for SCSIFS's own use.
        Only functional change is that *Configure SCSIFSdrive now returns the
        correct error number if an invalid drive is specified (previously the
        error number was miscalculated).
      Version 1.24. Tagged as 'SCSIFS-1_24'
  9. 27 Nov, 2011 1 commit
    • Jeffrey Lee's avatar
      Don't issue INQUIRY with only 5 bytes of response data · 76f47491
      Jeffrey Lee authored
        s/ScsiFs05 - Change ScanDrives2 to request 36 bytes of INQUIRY response data instead of just 5.
        This fixes an issue where some dodgy devices weren't responding to the inquiry command at all. Also CheckDriveAllowed will cause the module to ignore any drive that isn't capable of returning 36 bytes of inquiry data, so this change shouldn't cause previously working drives to suddenly stop working.
        Tested in softload form on Iyonix.
        TS-H552 DVD-RW no longer causes hang/softlock when connected.
      Version 1.23. Tagged as 'SCSIFS-1_23'
  10. 14 Oct, 2011 1 commit
  11. 04 Aug, 2011 1 commit
    • Jeffrey Lee's avatar
      Update to work with zero page relocation · 8c298058
      Jeffrey Lee authored
        s/DevVersion, s/ScsiFs05 - Update debugging code to use OS_ReadSysInfo 6 to get IRQsema ptr
        Tested on rev A2 BB-xM
      Version 1.21. Tagged as 'SCSIFS-1_21'
  12. 27 Jan, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix issues with large or oddly-sized SCSIFS transfers · 70f81720
      Jeffrey Lee authored
        s/ScsiFs15 - The code which fixes up the return values when a temp scatter block has been used was corrupting R7, causing later code to miscalculate the post-transfer disc address. Now fixed.
        s/ScsiFs15 - The code which handles splitting big transfers into 64K chunks was re-entering LowLevelOp with corrupt values of R5 & R6, leading to potential malfunction. Now fixed.
        Tested on Iyonix & rev A2 BB-xM.
        Fingers crossed for no more bugs here.
      Version 1.20. Tagged as 'SCSIFS-1_20'
  13. 12 Jan, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix XferMaxLen64K code to perform multiple SCSI_Ops instead of relying on the... · babeb281
      Jeffrey Lee authored
      Fix XferMaxLen64K code to perform multiple SCSI_Ops instead of relying on the caller to retry the operation until all the data has been transferred
        s/ScsiFs15 - Instead of relying on undocumented FileCore behaviour to ensure that long transfers are performed properly, SCSIFS now splits the transfer into chunks and loops internally until all the data has been transferred. This ensures the SCSIFS_DiscOp SWI works as expected.
        s/ScsiFs05 - Swap and ADR for ADRL, seems to be needed when enabling debug code.
        Tested as a module softload on an Iyonix.
        Fixes issue with DiscKnight complaining that perfectly good discs contain thousands of errors.
      Version 1.19. Tagged as 'SCSIFS-1_19'
  14. 15 Dec, 2010 1 commit
    • Jeffrey Lee's avatar
      Limit max transfer length to 64K, fix issues with transfer lengths being incorrectly modified · 2e97c8b1
      Jeffrey Lee authored
        s/ScsiFs00, s/ScsiFs15 - As a workaround for numerous USB devices that fail when asked to transfer large amounts of data, SCSIFS now limits the maximum transfer length to 64K.
        This length seems to match the limit used by most operating systems. If necessary this code can be turned off via the XferLenMax64K switch.
        Additionally, a couple of bugs with the CheckXferLen and UseSpecialScatterBlk code have been fixed:
        - When CheckXferLen (and XferLenMax64K) limit the block count in the CDB, the code now calculates a new value of R4 to send to the SCSI driver instead of using the original. This ensures there's no ambiguity in the transfer length.
        - After the SCSI op is completed, the returned value of R4 is then adjusted to represent the real amount of untransferred data from FileCore's perspective.
        - When the special scatter block is in use, the code now returns to FileCore with R3 pointing to the correct location in the source buffer, and with R4 adjusted to take into account the extra padding that had been inserted. Previously the old code would have returned with R3 and R4 left unmodified (i.e. R3 would have been pointing at SCSIFS's temp scatter list)
        Tested in ROM on a rev C2 beagleboard over the course of a few hours with the help of an automated test script.
        No more 'no sense' errors when attempting large block transfers to USB devices, and no sign of data corruption for large or small transfers.
        See the forums for more discussion of these issues: http://www.riscosopen.org/forum/forums/4/topics/470
      Version 1.18. Tagged as 'SCSIFS-1_18'
  15. 14 Jul, 2009 1 commit
  16. 27 Jun, 2005 1 commit
    • John Ballance's avatar
      Updated SCSIFS with a mechanism to ignore HotPlug SCSI drives that are not required. · 949de2a6
      John Ballance authored
      	Typically USB card readers contain several readers as different LUNs.
      	Usually a user is not interested in all readers and some can safely
      	be ignored. There is now a mechanism in SCSIFS to remember this.
      	(otherwise readers can occupy all the available icons, making it
      	impossible for a user to add other devices e.g. 'pens'.)
      	A new file, Boot:Choices.SCSIFS.Hide, is used to store data on
      	sub-devices for which no SCSIFS 'drive' is desired. This data
      	is the 8 byte Vendor + 16 byte Product + 4 byte Revision fields
      	(concatenated and LF terminated) returned by the SCSI Inquiry command.
      	If a device/LUN's inquiry completely mateches a file entry, no
      	SCSIFS drive will be created. A simple App will be created to manage
      	this file in due course.
      Admin:  TESTED AT Castle.. due for beta release.
      Version 1.16. Tagged as 'SCSIFS-1_16'
  17. 28 Apr, 2005 1 commit
  18. 05 Mar, 2005 2 commits
    • John Ballance's avatar
      Added note on SCSIFS_Partitions swi. · 864f5b17
      John Ballance authored
      	Committing correct files this time.
              previous version, 1.14 failed to include these
      Admin:  castle added IP. to be beta tested
      Version 1.14. Tagged as 'SCSIFS-1_14'
    • John Ballance's avatar
      Repaired operation with Filecore format. · 911cbc83
      John Ballance authored
      	Several other minor mods and bug fixes.
      	Doublechecks with second call to TestReady routine to
      	absorb 'Disc Empty' report from some USB
      	Mass Storage devices.
      	Builds in ROM
      Admin:  for beta release. tested at Castle. Castle added IP
      Version 1.14. Tagged as 'SCSIFS-1_14'
  19. 01 Feb, 2005 1 commit
  20. 31 Jan, 2005 1 commit
    • John Ballance's avatar
      fixed a memory leak /unstable callback removal in scsifs. · 1c87f2f1
      John Ballance authored
                Added in detect needed for dosfs partitions.. didnt seem to make it
                into cvs in 1.11.
                Added SWI_SCSIFSPartitions and Service_SCSIMounting to permit external
                partition manger to provide partition handling
      Admin:    tested at castle.. castle added IP
      Version 1.12. Tagged as 'SCSIFS-1_12'
  21. 23 May, 2003 2 commits
    • Kevin Bracey's avatar
      * Activated "floppy" (removable) support. · 15738a33
      Kevin Bracey authored
      * Added big disc support.
      * Added new error reporting scheme.
      * Added autoconfiguration, and new SCSIdriver hotplugging.
      * Added eject functionality (currently disabled due to issues with some USB
      * 32-bit compatible.
      Version 1.11. Tagged as 'SCSIFS-1_11'
    • Kevin Bracey's avatar
      created by srccommit. · 09e00a53
      Kevin Bracey authored
  22. 21 Nov, 1996 1 commit
  23. 05 Nov, 1996 1 commit