Commit a290d023 authored by John Ballance's avatar John Ballance
Browse files

Small changes to enable interaction with PartMan module

Detail:
  Changes are compile time enabled with the compile time option
  PartitionManager set TRUE
Admin:


Version 1.29. Tagged as 'SCSIFS-1_29'
parent 452bbb0b
......@@ -28,12 +28,14 @@ new Service Call is issued:
Service_SCSIMounting &20104
R2 = SCSIFS disc icon (0..7) which is about to be mounted.
R3 = SCSI ID for this drive proposed
If a helper App wishes to mount a partition other than the base one
it should issue SWI SCSIFS_Partitions with
R0 = 0
R1 = SCSIFS disc icon (0..7) (R2 from the service call)
R2 = Desired sector offset to disc image base.
R3 = SCSI ID for this drive
This SWI MUST be issued immediately. On return from the service call
SCSIFS will use this value to mount the disc.
\ No newline at end of file
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "1.28"
Module_Version SETA 128
Module_MajorVersion SETS "1.29"
Module_Version SETA 129
Module_MinorVersion SETS ""
Module_Date SETS "06 Oct 2013"
Module_ApplicationDate SETS "06-Oct-13"
Module_Date SETS "28 Nov 2016"
Module_ApplicationDate SETS "28-Nov-16"
Module_ComponentName SETS "SCSIFS"
Module_ComponentPath SETS "castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS"
Module_FullVersion SETS "1.28"
Module_HelpVersion SETS "1.28 (06 Oct 2013)"
Module_FullVersion SETS "1.29"
Module_HelpVersion SETS "1.29 (28 Nov 2016)"
END
/* (1.28)
/* (1.29)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 1.28
#define Module_MajorVersion_CMHG 1.29
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 06 Oct 2013
#define Module_Date_CMHG 28 Nov 2016
#define Module_MajorVersion "1.28"
#define Module_Version 128
#define Module_MajorVersion "1.29"
#define Module_Version 129
#define Module_MinorVersion ""
#define Module_Date "06 Oct 2013"
#define Module_Date "28 Nov 2016"
#define Module_ApplicationDate "06-Oct-13"
#define Module_ApplicationDate "28-Nov-16"
#define Module_ComponentName "SCSIFS"
#define Module_ComponentPath "castle/RiscOS/Sources/FileSys/SCSIFS/SCSIFS"
#define Module_FullVersion "1.28"
#define Module_HelpVersion "1.28 (06 Oct 2013)"
#define Module_LibraryVersionInfo "1:28"
#define Module_FullVersion "1.29"
#define Module_HelpVersion "1.29 (28 Nov 2016)"
#define Module_LibraryVersionInfo "1:29"
......@@ -58,6 +58,10 @@ HotPlug SETL AutoDetect :LAND: {TRUE}
GBLL AllowPartitions
AllowPartitions SETL {TRUE}
[ :LNOT: :DEF: PartitionManager
GBLL PartitionManager
PartitionManager SETL {FALSE}
]
GBLL Ejecting
Ejecting SETL {FALSE}
......@@ -72,6 +76,7 @@ international_help SETL {TRUE} ; Default to RISC OS 3.60+ international
GBLL Dev
Dev SETL test_version
;Debug message switches
[ Dev
GBLL Debug
......@@ -206,6 +211,9 @@ Service_SCSIAttached * &20102
Service_SCSIDetached * &20103
[ AllowPartitions
Service_SCSIMounting * &20104
]
[ PartitionManager
XPartMan_MorePartitions * &79AC0
]
AREA |!!!SCSIFSModule|, CODE, READONLY, PIC
......@@ -405,8 +413,12 @@ MsgFileBlock a4 4*4
AttCBCount # 1
DetCBCount # 1
Dieing # 1
[ AllowPartitions
allowdupID # 1 ; next time through the loop will use same scsi id
|
myalign # 1
]
]
;Low level workspace
Winnies # 1
......
......@@ -461,11 +461,21 @@ ScanLoop
BNE ScanNext
[ HotPlug
[ AllowPartitions
LDRB R8, allowdupID
TEQ R8, #0
MOVNE R8, #0
STRNEB R8,allowdupID
BNE BypassCheck ; partitions reuse same scsi drive
]
MOV R8, R1 ; check we've not already
BL MapDevToDrv ; spotted this drive
TEQ R1, #8
MOV R1, R8
BNE ScanNext
[ AllowPartitions
BypassCheck
]
]
; I don't use SCSI_Initialise 2 as it will report errors from
......@@ -541,6 +551,16 @@ AddRemovable
]
]
ScanNext
[ PartitionManager
Push "R2"
MOV R2, #1
SWI XPartMan_MorePartitions
TEQ R2, #0 ; SWI returns 0 if more partitions to mount
MOVEQ r2, #1
STREQB R2, allowdupID
Pull "R2" ; SWI returns 1 if no more, or error if swi not there
BEQ ScanLoop
]
ADD R1, R1, #&20 ; move to next LUN
TST R1, #&100
BEQ ScanLoop
......
......@@ -113,11 +113,13 @@ DoMount ROUT
05
]
[ AllowPartitions
Push "R0, R1,R2"
Push "R0, R1,R2,R3"
MOV R2, R2, LSR #(32-3) ; disc number requested
DrvRecPtr R1, R2
LDRB R3, [R1, #:INDEX:DevNo]
LDR R1, =Service_SCSIMounting
SWI OS_ServiceCall ; announce our intentions
Pull "R0,R1,R2"
Pull "R0,R1,R2,R3"
]
[ FloppySupport
TSTS R2, #bit31
......
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