Commit 70f81720 authored by Jeffrey Lee's avatar Jeffrey Lee
Browse files

Fix issues with large or oddly-sized SCSIFS transfers

Detail:
  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.
Admin:
  Tested on Iyonix & rev A2 BB-xM.
  Fingers crossed for no more bugs here.


Version 1.20. Tagged as 'SCSIFS-1_20'
parent babeb281
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "1.19"
Module_Version SETA 119
Module_MajorVersion SETS "1.20"
Module_Version SETA 120
Module_MinorVersion SETS ""
Module_Date SETS "12 Jan 2011"
Module_ApplicationDate SETS "12-Jan-11"
Module_Date SETS "27 Jan 2011"
Module_ApplicationDate SETS "27-Jan-11"
Module_ComponentName SETS "SCSIFS"
Module_ComponentPath SETS "castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS"
Module_FullVersion SETS "1.19"
Module_HelpVersion SETS "1.19 (12 Jan 2011)"
Module_FullVersion SETS "1.20"
Module_HelpVersion SETS "1.20 (27 Jan 2011)"
END
/* (1.19)
/* (1.20)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 1.19
#define Module_MajorVersion_CMHG 1.20
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 12 Jan 2011
#define Module_Date_CMHG 27 Jan 2011
#define Module_MajorVersion "1.19"
#define Module_Version 119
#define Module_MajorVersion "1.20"
#define Module_Version 120
#define Module_MinorVersion ""
#define Module_Date "12 Jan 2011"
#define Module_Date "27 Jan 2011"
#define Module_ApplicationDate "12-Jan-11"
#define Module_ApplicationDate "27-Jan-11"
#define Module_ComponentName "SCSIFS"
#define Module_ComponentPath "castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS"
#define Module_FullVersion "1.19"
#define Module_HelpVersion "1.19 (12 Jan 2011)"
#define Module_LibraryVersionInfo "1:19"
#define Module_FullVersion "1.20"
#define Module_HelpVersion "1.20 (27 Jan 2011)"
#define Module_LibraryVersionInfo "1:20"
......@@ -405,8 +405,8 @@ DontNeedScatBlk
SUB R4, R4, R9 ; Forget the padding
TEQ R4, #0 ; Preserve V
MOVMI R4, #0 ; Clamp R4 if we managed to transfer everything we were originally asked to
SUB R7, R7, R4 ; Get amount transferred
ADD R3, R6, R7 ; And calculate the correct value of R3 to return
SUB R3, R7, R4 ; Get amount transferred
ADD R3, R6, R3 ; And calculate the correct value of R3 to return
10
]
......@@ -443,6 +443,8 @@ DontNeedScatBlk
[ Debug3
mess EQ,"Looping back round to transfer rest of data",NL
]
ADDEQ R5,R13,#5*4
LDMEQIA R5,{R5-R6} ; Recover disc record, defect list
BEQ LowLevelOp2
10
]
......
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