Difference between revisions of "Filing system numbers"
(Added filing system selection code.) |
(Added selection code that includes TAPE/ROM.) |
||
Line 1: | Line 1: | ||
− | [[Category:Filing]] | + | [[Category:Filing]]__NOTOC__ |
Each filing system has a unique number that identifies it and allows it to | Each filing system has a unique number that identifies it and allows it to | ||
− | be selected. | + | be selected. The following is a list of currently defined filing system |
numbers. | numbers. | ||
− | 0 No current filing system | + | 0 No current filing system 20 RawKbd: 40 BBScanFS: |
− | 1 1200 baud cassette | + | 1 1200 baud cassette 21 DeskFS: 41 BroadcastLoaderUtils |
− | 2 300 baud cassette | + | 2 300 baud cassette 22 Computer Concepts RomFS: 42 ChunkFS |
− | 3 ROM filing system, ROM: | + | 3 ROM filing system, ROM: 23 RamFS:, RAM: 43 DOSFS:, MSDOSFS:, MSDOS: |
− | 4 Disk filing system, DISK: | + | 4 Disk filing system, DISK: 24 RISCiXFS:, UnixFS: 44 NoRiscFS: |
− | 5 Network, NET: (CoProFS) | + | 5 Network, NET: (CoProFS) 25 Streamer, DigiTape 45 Nexus filing system |
− | 6 Telesoftware | + | 6 Telesoftware 26 SCSIFS:, SCSI: 46 ResourceFS |
− | 7 IEEE filing system, IEEEFS: | + | 7 IEEE filing system, IEEEFS: 27 Digitiser, TVFS: 47 PipeFS |
− | 8 Acorn ADFS | + | 8 Acorn ADFS 28 Scanner, ScanFS: 48 NexusFilerFS |
− | 9 Host filing system, HostFS: | + | 9 Host filing system, HostFS: 29 MultiFS:, Petrov DOSFS 49 IDEFS: |
− | 10 Videodisk filing system, VFS: | + | 10 Videodisk filing system, VFS: 30 Fax: 50 CCPrintFS |
− | 11 CoProFS, Acorn WDFS | + | 11 CoProFS, Acorn WDFS 31 Z88: 51 VideoDigitiserFS |
− | 12 Acacia RamFS, NetPrint: | + | 12 Acacia RamFS, NetPrint: 32 SCSIDeskFS: 52 SoundDigitiserFS |
− | 13 Null: | + | 13 Null: 33 NFS: (UNIX Network FS) 53 Device: |
− | 14 Printer: | + | 14 Printer: 34 Serial2: 54 Parallel: |
− | 15 Serial: | + | 15 Serial: 35 DFSDeskFS: 55 VCMNetFS |
− | 16 Harston ADFS | + | 16 Harston ADFS 36 DayIBMFS: 56 ArcFS: |
− | 17 Vdu: | + | 17 Vdu: 37 CDFS: 57 NexusPrintFS |
− | 18 RawVdu: | + | 18 RawVdu: 38 ChipFS:, CFS:, RISCardFS: 58 PIA |
− | 19 Kbd: | + | 19 Kbd: 39 pcfs: 59 RSDosFS |
− | + | 60 dbFS 101 Computer Concepts PrintQueueFS 128 SPSTFS | |
− | + | 61 PCompress: 102 LanMan 134 FastSpool | |
− | + | 66 SparkFS: 104 OmniPrint 136 FlashFS | |
− | + | 71 BeebItFS: 105 AppleFS 141 BDFS | |
− | + | 77 MirrorFS: 111 IOmega ZipFS:, iZipFS: 142 raFS: | |
− | + | 79 FTP: 115 ATAFS: 145 lprFS | |
− | + | 86 FontFS: 118 CacheFS 148 CDRFS | |
− | + | 91 Memphis 121 MenonFS 152 ParaFS | |
− | + | 96 AddressDevice 123 IZipFS 156 LanMan98 | |
− | + | 99 ShareFS 158 CDROMFS | |
− | + | 92 LFS: (65Link) 162 TFTP: | |
− | + | 170 ZIDEFS: | |
− | 61 PCompress: | + | 192 SDFS: |
− | 66 SparkFS: 136 FlashFS | + | 205 AudioFS |
− | 71 BeebItFS: | ||
− | 77 MirrorFS: | ||
− | 79 FTP: | ||
− | 86 FontFS: | ||
− | 91 Memphis | ||
− | 96 AddressDevice | ||
− | 99 ShareFS | ||
− | 92 LFS: (65Link) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Reading filing system numbers=== | ===Reading filing system numbers=== | ||
− | The current filing system number is returned by OSARGS 0,0. | + | The current filing system number is returned by [[OSARGS|OSARGS 0,0]]. A filing system |
− | A filing system number can be converted to its name on RISC OS | + | number can be converted to its name on RISC OS systems using: |
− | systems using | ||
SYS "OS_FSControl",33,fsnumber%,buffer,buflen | SYS "OS_FSControl",33,fsnumber%,buffer,buflen | ||
Line 74: | Line 56: | ||
CALL OSBYTE | CALL OSBYTE | ||
− | The TAPE and ROM filing systems cannot be selected with service call &12, they | + | The TAPE and ROM filing systems cannot be selected with service call &12, |
− | have to be selected with [[OSBYTE &8C|OSBYTE 140,speed]] for TAPE and | + | they have to be selected with [[OSBYTE &8C|OSBYTE 140,speed]] for TAPE and |
− | [[OSBYTE &8D|OSBYTE 141]] for ROM | + | [[OSBYTE &8D|OSBYTE 141]] for ROM: |
− | Y% | + | REM Select filing system Y%, must not be zero |
− | X% | + | REM ----------------------------------------- |
− | IF Y%< | + | DEFPROCfs(Y%):LOCAL X%,A% |
− | CALL OSBYTE | + | IF Y%<4:A%=139.5+Y%/2:X%=Y%+1 ELSE A%=143:X%=18 |
+ | CALL &FFF4:ENDPROC | ||
+ | |||
+ | ; Select filing system in Y, must not be zero | ||
+ | ; ------------------------------------------- | ||
+ | .SelectFS | ||
+ | LDA #143:LDX #18 ; 143 for service call | ||
+ | CPY #4:BCS SelectFS2 ; Select via sideways ROM | ||
+ | TYA:TAX:INX ; X=TAPE speed | ||
+ | LSR A:ADC #139 ; 140/141 for TAPE/ROM | ||
+ | .SelectFS2 | ||
+ | JMP OSBYTE | ||
===Notes=== | ===Notes=== | ||
Line 87: | Line 80: | ||
being set is used to indicate that no temporary filing system is available. | being set is used to indicate that no temporary filing system is available. | ||
− | CoProFS can be set to any number between 1 and 15 with <code>*OPT | + | CoProFS can be set to any number between 1 and 15 with <code>*OPT 7,num</code>. |
− | 7,num</code>. | + | It defaults to 5 (which clashes with NetFS). It is recommended to make |
− | recommended to make CoProFS use 11 with <code>*OPT 7,11</code>. | + | CoProFS use 11 with <code>*OPT 7,11</code>. |
− | HADFS can be set to any number between 5 and 16 with <code>*OPT | + | HADFS can be set to any number between 5 and 16 with <code>*OPT 2,num</code>. |
− | 2,num</code>. | + | It defaults to 16. |
WDFS (filing system 11) appears to be a preliminary allocation by Acorn for | WDFS (filing system 11) appears to be a preliminary allocation by Acorn for | ||
Line 103: | Line 96: | ||
When a DOS disk or partition is opened as an image file, the returned filing | When a DOS disk or partition is opened as an image file, the returned filing | ||
system number is 0. | system number is 0. | ||
+ | |||
+ | ==See also== | ||
+ | * [http://mdfs.net/Comp/BBC/ProgTips/SelectFS Selecting filing systems] at mdfs.net | ||
[[User:Jgharston|Jgharston]] 22:13, 1 September 2007 (BST) | [[User:Jgharston|Jgharston]] 22:13, 1 September 2007 (BST) | ||
+ | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 04:38, 16 March 2017 (UTC) |
Revision as of 05:38, 16 March 2017
Each filing system has a unique number that identifies it and allows it to be selected. The following is a list of currently defined filing system numbers.
0 No current filing system 20 RawKbd: 40 BBScanFS: 1 1200 baud cassette 21 DeskFS: 41 BroadcastLoaderUtils 2 300 baud cassette 22 Computer Concepts RomFS: 42 ChunkFS 3 ROM filing system, ROM: 23 RamFS:, RAM: 43 DOSFS:, MSDOSFS:, MSDOS: 4 Disk filing system, DISK: 24 RISCiXFS:, UnixFS: 44 NoRiscFS: 5 Network, NET: (CoProFS) 25 Streamer, DigiTape 45 Nexus filing system 6 Telesoftware 26 SCSIFS:, SCSI: 46 ResourceFS 7 IEEE filing system, IEEEFS: 27 Digitiser, TVFS: 47 PipeFS 8 Acorn ADFS 28 Scanner, ScanFS: 48 NexusFilerFS 9 Host filing system, HostFS: 29 MultiFS:, Petrov DOSFS 49 IDEFS: 10 Videodisk filing system, VFS: 30 Fax: 50 CCPrintFS 11 CoProFS, Acorn WDFS 31 Z88: 51 VideoDigitiserFS 12 Acacia RamFS, NetPrint: 32 SCSIDeskFS: 52 SoundDigitiserFS 13 Null: 33 NFS: (UNIX Network FS) 53 Device: 14 Printer: 34 Serial2: 54 Parallel: 15 Serial: 35 DFSDeskFS: 55 VCMNetFS 16 Harston ADFS 36 DayIBMFS: 56 ArcFS: 17 Vdu: 37 CDFS: 57 NexusPrintFS 18 RawVdu: 38 ChipFS:, CFS:, RISCardFS: 58 PIA 19 Kbd: 39 pcfs: 59 RSDosFS 60 dbFS 101 Computer Concepts PrintQueueFS 128 SPSTFS 61 PCompress: 102 LanMan 134 FastSpool 66 SparkFS: 104 OmniPrint 136 FlashFS 71 BeebItFS: 105 AppleFS 141 BDFS 77 MirrorFS: 111 IOmega ZipFS:, iZipFS: 142 raFS: 79 FTP: 115 ATAFS: 145 lprFS 86 FontFS: 118 CacheFS 148 CDRFS 91 Memphis 121 MenonFS 152 ParaFS 96 AddressDevice 123 IZipFS 156 LanMan98 99 ShareFS 158 CDROMFS 92 LFS: (65Link) 162 TFTP: 170 ZIDEFS: 192 SDFS: 205 AudioFS
Reading filing system numbers
The current filing system number is returned by OSARGS 0,0. A filing system number can be converted to its name on RISC OS systems using:
SYS "OS_FSControl",33,fsnumber%,buffer,buflen
which returns a null-terminated string in buffer, or "" if not known.
Selecting filing system
The filing system number can be used to select the filing system by making service call &12.
A%=143:X%=18:Y%=filingsystemnumber CALL OSBYTE
The TAPE and ROM filing systems cannot be selected with service call &12, they have to be selected with OSBYTE 140,speed for TAPE and OSBYTE 141 for ROM:
REM Select filing system Y%, must not be zero REM ----------------------------------------- DEFPROCfs(Y%):LOCAL X%,A% IF Y%<4:A%=139.5+Y%/2:X%=Y%+1 ELSE A%=143:X%=18 CALL &FFF4:ENDPROC ; Select filing system in Y, must not be zero ; ------------------------------------------- .SelectFS LDA #143:LDX #18 ; 143 for service call CPY #4:BCS SelectFS2 ; Select via sideways ROM TYA:TAX:INX ; X=TAPE speed LSR A:ADC #139 ; 140/141 for TAPE/ROM .SelectFS2 JMP OSBYTE
Notes
The filing system number on 8-bit systems must be less than &80, as bit 7 being set is used to indicate that no temporary filing system is available.
CoProFS can be set to any number between 1 and 15 with *OPT 7,num
.
It defaults to 5 (which clashes with NetFS). It is recommended to make
CoProFS use 11 with *OPT 7,11
.
HADFS can be set to any number between 5 and 16 with *OPT 2,num
.
It defaults to 16.
WDFS (filing system 11) appears to be a preliminary allocation by Acorn for the Winchester Disk Filing System before ADFS was designed with hard drive support.
Some documentation lists Acacia RamFS as having filing system number 16. This is incorrect, it is actually 12.
When a DOS disk or partition is opened as an image file, the returned filing system number is 0.
See also
- Selecting filing systems at mdfs.net
Jgharston 22:13, 1 September 2007 (BST) Jgharston (talk) 04:38, 16 March 2017 (UTC)