Commit 91e05a7e authored by Robert Sprowson's avatar Robert Sprowson

Fix for writes spanning a fragment

FileCore80.s: Revision 4.14 accidentally lost the calculation at line 1324 after FragLeft, so when a large write occurred it didn't get split either side of the fragment, and then an impossibly long scatter list would be emitted.
Tidied some DebugG debug messages.

Version 3.59. Tagged as 'FileCore-3_59'
parent cf85a5d6
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "3.58"
Module_Version SETA 358
Module_MajorVersion SETS "3.59"
Module_Version SETA 359
Module_MinorVersion SETS ""
Module_Date SETS "01 Apr 2013"
Module_ApplicationDate SETS "01-Apr-13"
Module_Date SETS "06 Apr 2013"
Module_ApplicationDate SETS "06-Apr-13"
Module_ComponentName SETS "FileCore"
Module_ComponentPath SETS "castle/RiscOS/Sources/FileSys/FileCore"
Module_FullVersion SETS "3.58"
Module_HelpVersion SETS "3.58 (01 Apr 2013)"
Module_FullVersion SETS "3.59"
Module_HelpVersion SETS "3.59 (06 Apr 2013)"
END
/* (3.58)
/* (3.59)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 3.58
#define Module_MajorVersion_CMHG 3.59
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 01 Apr 2013
#define Module_Date_CMHG 06 Apr 2013
#define Module_MajorVersion "3.58"
#define Module_Version 358
#define Module_MajorVersion "3.59"
#define Module_Version 359
#define Module_MinorVersion ""
#define Module_Date "01 Apr 2013"
#define Module_Date "06 Apr 2013"
#define Module_ApplicationDate "01-Apr-13"
#define Module_ApplicationDate "06-Apr-13"
#define Module_ComponentName "FileCore"
#define Module_ComponentPath "castle/RiscOS/Sources/FileSys/FileCore"
#define Module_FullVersion "3.58"
#define Module_HelpVersion "3.58 (01 Apr 2013)"
#define Module_LibraryVersionInfo "3:58"
#define Module_FullVersion "3.59"
#define Module_HelpVersion "3.59 (06 Apr 2013)"
#define Module_LibraryVersionInfo "3:59"
......@@ -128,12 +128,11 @@ ReadBuffersWork # 0
]
LDRB R11,[R6,#DiscRecord_SecsPerTrk]
[ BigDisc
LDRB LR, [R6,#DiscRecord_Heads]
[ BigDisc
MUL LR, R11,LR ; sectors per cylinder
|
MOV R11,R11,LSL R10
LDRB LR, [R6,#DiscRecord_Heads]
MUL LR, R11,LR ; bytes per cylinder - need to change to sectors?
]
......@@ -1319,6 +1318,7 @@ WriteBuffersWork # 0
MOV FileOff, R2
BL FragLeft ;(FileOff,Fcb->LR,Z)
ADD FragEnd, R2, LR
CMPS FragEnd, TransferEnd
MOVLS TransferEnd, FragEnd
......@@ -2107,10 +2107,7 @@ BackgroundFileCacheOp
[ DebugG
BEQ %FT01
DREG R6,,cc
Push "r0"
MOV r0, lr
DREG r0, "", cc
Pull "r0"
DREG LR,,cc
DLINE "direct (add,len)"
01
]
......@@ -2156,9 +2153,6 @@ BackgroundFileCacheOp
ORR R1, R1, #DiscOp_Op_BackgroundOp_Flag :OR: DiscOp_Op_IgnoreEscape_Flag :OR: DiscOp_Op_ScatterList_Flag
ADD R3, R4, #ProcessPairs
LDR R5, [SP,#4*4] ;entry FileOff
[ DebugG
DREG R5, "Fileoff : "
]
LDR R10, [Fcb, #FcbIndDiscAdd]
MOV R10, R10, LSR #(32-3)
DiscRecPtr R10,R10
......@@ -3476,7 +3470,7 @@ UpdateProcess ROUT
DLINE "ptr add len old: Updating needed"
]
; Some sort of updateing needed - lock the file cache and make lessvalid
; Some sort of updating needed - lock the file cache and make lessvalid
LDRB R2, Interlocks ;If updating needed ensure file cache claimed
ORR LR, R2, #FileCacheLock
STRB LR, Interlocks
......
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