Commits (1)
  • Robert Sprowson's avatar
    Fix for stuck in loop doing background transfers to floppies · f0a359a8
    Robert Sprowson authored
    FileCore80.s: The check for whether write behind could proceed only succeeded for fixed discs ('winnie'), but failed for floppies. So, on trying to flush to close the file being written you'd get stuck in a loop trying to write the buffers.
    Commands.s: Magic number swapped for defect list marker
    
    Tested with fsbash, and a simple BASIC program writing 128x1K to a floppy.
    
    Version 3.61. Tagged as 'FileCore-3_61'
    f0a359a8
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "3.60"
Module_Version SETA 360
Module_MajorVersion SETS "3.61"
Module_Version SETA 361
Module_MinorVersion SETS ""
Module_Date SETS "04 May 2013"
Module_ApplicationDate SETS "04-May-13"
Module_Date SETS "19 Jun 2013"
Module_ApplicationDate SETS "19-Jun-13"
Module_ComponentName SETS "FileCore"
Module_ComponentPath SETS "castle/RiscOS/Sources/FileSys/FileCore"
Module_FullVersion SETS "3.60"
Module_HelpVersion SETS "3.60 (04 May 2013)"
Module_FullVersion SETS "3.61"
Module_HelpVersion SETS "3.61 (19 Jun 2013)"
END
/* (3.60)
/* (3.61)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 3.60
#define Module_MajorVersion_CMHG 3.61
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 May 2013
#define Module_Date_CMHG 19 Jun 2013
#define Module_MajorVersion "3.60"
#define Module_Version 360
#define Module_MajorVersion "3.61"
#define Module_Version 361
#define Module_MinorVersion ""
#define Module_Date "04 May 2013"
#define Module_Date "19 Jun 2013"
#define Module_ApplicationDate "04-May-13"
#define Module_ApplicationDate "19-Jun-13"
#define Module_ComponentName "FileCore"
#define Module_ComponentPath "castle/RiscOS/Sources/FileSys/FileCore"
#define Module_FullVersion "3.60"
#define Module_HelpVersion "3.60 (04 May 2013)"
#define Module_LibraryVersionInfo "3:60"
#define Module_FullVersion "3.61"
#define Module_HelpVersion "3.61 (19 Jun 2013)"
#define Module_LibraryVersionInfo "3:61"
......@@ -2143,7 +2143,7 @@ UpdateBadBlockList ROUT
ASSERT SzDefectList = 1 :SHL: 9
ADD R0, R0, LR, LSL #9
MOV R4, #512*1024*1024 ; 512 meg
MOV R4, #DefectList_End
LDRB LR, [R5, #DiscRecord_Log2SectorSize] ; get sector size
MOV R4, R4, LSR LR
CMP R2, R4 ; is the defect in the first or second list?
......
......@@ -2461,8 +2461,9 @@ BackgroundOps ROUT
; Skip if on wrong controller
LDRB LR, [Fcb,#FcbFlags]
EOR LR, R5, LR
TST LR, #FcbFloppyFlag
ANDS LR, LR, #FcbFloppyFlag
MOVNE LR, #FloppyLock :SHL: 30
EORS LR, R5, LR
[ DebugG
BEQ %FT01
DLINE "wrong controller"
......