Commit a4d790ff authored by Robert Sprowson's avatar Robert Sprowson
Browse files

Fold in old fixes.

From 1989, probably safe to keep them. Binary unchanged.

Version 3.47. Tagged as 'FileCore-3_47'
parent d52791ba
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "3.46"
Module_Version SETA 346
Module_MajorVersion SETS "3.47"
Module_Version SETA 347
Module_MinorVersion SETS ""
Module_Date SETS "25 Nov 2011"
Module_ApplicationDate SETS "25-Nov-11"
Module_ComponentName SETS "FileCore"
Module_ComponentPath SETS "castle/RiscOS/Sources/FileSys/FileCore"
Module_FullVersion SETS "3.46"
Module_HelpVersion SETS "3.46 (25 Nov 2011)"
Module_FullVersion SETS "3.47"
Module_HelpVersion SETS "3.47 (25 Nov 2011)"
END
/* (3.46)
/* (3.47)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 3.46
#define Module_MajorVersion_CMHG 3.47
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 25 Nov 2011
#define Module_MajorVersion "3.46"
#define Module_Version 346
#define Module_MajorVersion "3.47"
#define Module_Version 347
#define Module_MinorVersion ""
#define Module_Date "25 Nov 2011"
......@@ -18,6 +18,6 @@
#define Module_ComponentName "FileCore"
#define Module_ComponentPath "castle/RiscOS/Sources/FileSys/FileCore"
#define Module_FullVersion "3.46"
#define Module_HelpVersion "3.46 (25 Nov 2011)"
#define Module_LibraryVersionInfo "3:46"
#define Module_FullVersion "3.47"
#define Module_HelpVersion "3.47 (25 Nov 2011)"
#define Module_LibraryVersionInfo "3:47"
......@@ -871,8 +871,7 @@ DoCheckMap
MOVNE R3, R2
BNE %BT20 ;recurse down if dir
30
[ fix_5
; need to treat big dirs as a special case
; need to treat big dirs as a special case
BL ReadIndDiscAdd ;(R3,R4->LR)
MOV R1, LR
BL ReadIntAtts ;check if it's a dir
......@@ -880,10 +879,6 @@ DoCheckMap
BICNE R1, R1, #&ff ;yes then need to pretend isn't for reading size
BL MeasureFileAllocSize_GotMap ;(R1,R3,R4->R0)
MOVS R1, R0
|
BL ReadLen ;(R4->LR)
MOVS R1, LR
]
[ BigDir
BL TestBigDir
BNE %FT01
......
......@@ -64,6 +64,17 @@ NewErrors SETL {TRUE}
GBLL ExtraSkew ; Extra skew in F/G format floppies to suit Tungsten better
ExtraSkew SETL {TRUE}
GBLL UseRMAForFCBs ; Whether RMA or System heap is used for fcbs
UseRMAForFCBs SETL {TRUE}
GBLL FixTBSAddrs ; Updated semantics of scatter list to allow background transfer
FixTBSAddrs SETL {TRUE} ; to/from top-bit set logical addresses
ScatterListNegThresh * &10000
GBLL FixTruncateOnBigDiscs
FixTruncateOnBigDiscs SETL {TRUE}
GBLL Dev ; Extra code to do postmortem when things go bang
Dev SETL {FALSE}
......
......@@ -47,7 +47,6 @@ GetHAL SETS ""
GET VersionASM
GET DebugOpts.s
GET Fixes.s
GET MyMacros.s
GET Defns.s
GET FileCore00.s
......
......@@ -698,7 +698,7 @@ RetryDriveOp ROUT
LDRB R8, Interlocks
; Check the drive number - this covers fix_2 completely
; Check the drive number
MOV r7, r1
MOV r1, r2, LSR #(32-3)
BL CheckDriveNumber
......
......@@ -535,8 +535,6 @@ MeasureFileAllocSize ROUT
]
Pull "r1,r3,r5,r6,r7,r8,r9,r10,r11,pc"
[ fix_5
; ===========================
; MeasureFileAllocSize_GotMap
; ===========================
......@@ -640,7 +638,6 @@ MeasureFileAllocSize_GotMap ROUT
01
]
Pull "r1,r3,r5,r6,r7,r8,r9,r10,r11,pc"
]
; ==========
; MapDiscAdd
......
......@@ -826,15 +826,10 @@ RemoveDirEntry
]
Push "R0-R2,LR"
;return space to map
[ fix_5
BL ReadIndDiscAdd ;(R3,R4->LR)
MOV R1, LR
BL MeasureFileAllocSize_GotMap ;(R1,R3,R4->R0)
MOV R1, R0
|
BL ReadLen
MOV R1, LR
]
BL ReadIndDiscAdd
MOV R2, LR
BL ReturnWholeSpace ;(R1-R5->R0)
......
; Copyright 1996 Acorn Computers Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
; http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;
;>Fixes Modification history of FileCore since V 2.00 (15 Sep 1988)
GBLA max_fix
max_fix SETA 5
MACRO
fcfix $number,$state,$description
GBLL fix_$number
fix_$number SETL {TRUE}
[ fix_$number
! 0,"Apply fix $number $description"
]
MEND
; VERSION 2.00
fcfix 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
fcfix 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
fcfix 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
fcfix 4,{TRUE},ProcessBlock calling in service reset
;16-May-90 BCockburn & RManby
;
; VERSION 2.05
;
; VERSION 2.41 (RISC OS 3.10)
;
fcfix 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.
; (Note - the WinniesAsFloppies flag has been removed).
fcfix 6,{FALSE},SWI LayoutStructure can't handle defects >512M
; FileCore_LayoutStructure takes &20000000 as the defect list end, when the
; PRM says -1. We use a second defect list, terminated by &40000000, just
; after the first one, as held in the boot block. defects in the second
; list are thus sector numbers. this occurs for all discs where the BigFlag
; field is set in the disc record passed
; This flag determins whether RMA or System heap is used for fcbs
GBLL UseRMAForFCBs
UseRMAForFCBs SETL {TRUE}
; updated semantics of scatter list to allow background transfer
; to/from top-bit set logical addresses
GBLL FixTBSAddrs
FixTBSAddrs SETL {TRUE}
ScatterListNegThresh * &10000
GBLL FixTruncateOnBigDiscs
FixTruncateOnBigDiscs SETL {TRUE}
END
......@@ -881,19 +881,12 @@ DoService_Reset
STRB R0, Interlocks
LDRB LR, MaxFileBuffers ;IF drivers can run in background
TEQS LR, #0
[ fix_4
BEQ %FT11
LDR R0, FloppyProcessBlk
BL %FT95
LDR R0, WinnieProcessBlk
|
BNE %FT11
LDRB R0, FloppyProcessBlk
BL %FT95
LDRB R0, WinnieProcessBlk
]
LDR R0, WinnieProcessBlk
TSTS R0, #BadPtrBits
BLEQ %FT95
......
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