;>Fixes   Modification history of FileCore since V 2.00 (15 Sep 1988)

        MACRO
        fix     $number,$state,$description
        GBLL    fix_$number
        [ test_version
fix_$number SETL $state
        |
         [ $number <= max_fix
fix_$number SETL {TRUE}
         |
fix_$number SETL {FALSE}
         ]
        ]
        [ fix_$number
        ! 0,"Apply fix $number $description"
        ]
        MEND


; VERSION 2.00


        fix     1,{TRUE},Fix LDR to LDRB in *Defect
;25-Oct-88      NReeves
;When *Defect reads the number of winnies from workspace it uses LDR rather
;than LDRB. This means when *Defect is used on a floppy it has a 50% chance
;of producing a spurious 'File Core error' after successfully mapping out
;the defect. There is also a small chance of corrupting other parts of the RMA.


; VERSION 2.01
; the date was left at 15-Sep-88 since the change was done by patching the ROM


        fix     2,{TRUE},Fix address exceptions in DiscOp when Winnies=0
;4-Dec-89       RCManby
;If FileCore was used with Winnies=0 and FileCore_DiscOp called for drive 4..7
;filecore would give an address exception in WaitForControllerFree. This was
;because WinnieProcessBlk would be unallocated (and set to &FC000003).
;We now check the specified drive type and the appropriate Winnies/Floppies
;count and report BadDriveErr early on in RetryDriveOp


; VERSION 2.02
; released dated 06-Dec-89

        fix     3,{TRUE},Fix address exceptions on 8th floppy disc when Winnies=0
;12-Jan-90      RCManby
;If FileCore was used with Winnies=0 and Buffers<>0 (ie read ahead and write
;behind enabled), opening a file on the eighth floppy shown to Filecore
;would cause the TickerV code to give an address exception.
;Due to a bug in MyOpenFile (ORRLO instead of ORRLS), the disc record for
;this floppy was mistaken for that of a winnie. This ment that the
;FcbFloppyFlag in FcbFlags was cleared, which lead to the clearing of the
;NoOpenWinnie bit in Interlocks.
;On finding NoOpenWinnie clear, TickerEntry picked up WinnieProcessBlk
;and passed it to BackgroundOps. Since WinnieProcessBlk isn't claimed when
;Winnies=0 (its set to &FC000003), BackgroundOps exploded.


; VERSION 2.03
; released dated 22-Jan-90




        fix     4,{TRUE},ProcessBlock calling in service reset
;16-May-90      BCockburn & RManby
;

; VERSION 2.05
;

; VERSION 2.41 (RISC OS 3.10)
;

        fix     5,{TRUE},File allocation length estimation in Delete and CheckMap

; This flags those section of code adjusted to treat winnies as floppies.
; These changes are based upon previous changes made during the development
; of version 2.05, in particular the decoupling of winnie disc numbers from
; winnie drive numbers. In summary WinniesAsFloppies changes are to do with
; applying the floppywritebehind algorithms symetrically to winnies.
        GBLL    WinniesAsFloppies
WinniesAsFloppies SETL Module_Version >= 205

; This flag determins whether RMA or System heap is used for fcbs
        GBLL    UseRMAForFCBs
UseRMAForFCBs   SETL {TRUE}

        END
