Difference between revisions of "Filing system numbers"

From BeebWiki
Jump to: navigation, search
(Added latest RISC OS Open additions.)
(Added filing system selection code.)
Line 59: Line 59:
  
 
===Reading filing system numbers===
 
===Reading filing system numbers===
The current filing system number is returned by OSARGS 0,0. A filing system
+
The current filing system number is returned by OSARGS 0,0.
can be selected by its number using Service call 18.  A filing system number
+
A filing system number can be converted to its name on RISC OS
can be converted to its name on ARM systems, using
+
systems using
  
 
         SYS "OS_FSControl",33,fsnumber%,buffer,buflen
 
         SYS "OS_FSControl",33,fsnumber%,buffer,buflen
  
 
which returns a null-terminated string in buffer, or "" if not known.
 
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 calls|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 &8C|OSBYTE 140,speed]] for TAPE and
 +
[[OSBYTE &8D|OSBYTE 141]] for ROM.
 +
 +
  Y%=filing system number
 +
  X%=speed for TAPE
 +
  IF Y%<3 THEN A%=140 ELSE IF Y%=3 THEN A%=141 ELSE A%=143:X%=18
 +
  CALL OSBYTE
  
 
===Notes===
 
===Notes===

Revision as of 17:09, 26 February 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        30 Fax:
   1 1200 baud cassette              31 Z88:
   2 300 baud cassette               32 SCSIDeskFS:
   3 ROM filing system, ROM:         33 NFS: (UNIX Network FS)
   4 Disk filing system, DISK:       34 Serial2:
   5 Network, NET: (CoProFS)         35 DFSDeskFS:
   6 Telesoftware                    36 DayIBMFS:
   7 IEEE filing system, IEEEFS:     37 CDFS:
   8 Acorn ADFS                      38 ChipFS:, CFS:, RISCardFS:
   9 Host filing system, HostFS:     39 pcfs:
  
  10 Videodisk filing system, VFS:   40 BBScanFS:
  11 CoProFS, Acorn WDFS             41 BroadcastLoaderUtils
  12 Acacia RamFS, NetPrint:         42 ChunkFS
  13 Null:                           43 DOSFS:, MSDOSFS:, MSDOS:
  14 Printer:                        44 NoRiscFS:
  15 Serial:                         45 Nexus filing system
  16 Harston ADFS                    46 ResourceFS
  17 Vdu:                            47 PipeFS
  18 RawVdu:                         48 NexusFilerFS
  19 Kbd:                            49 IDEFS:
  
  20 RawKbd:                         50 CCPrintFS
  21 DeskFS:                         51 VideoDigitiserFS
  22 Computer Concepts RomFS:        52 SoundDigitiserFS
  23 RamFS:, RAM:                    53 Device:
  24 RISCiXFS:, UnixFS:              54 Parallel:
  25 Streamer, DigiTape              55 VCMNetFS
  26 SCSIFS:, SCSI:                  56 ArcFS:
  27 Digitiser, TVFS:                57 NexusPrintFS
  28 Scanner, ScanFS:                58 PIA
  29 MultiFS:, Petrov DOSFS          59 RSDosFS
  
  60 dbFS                           128 SPSTFS 
  61 PCompress:                     134 FastSpool 
  66 SparkFS:                       136 FlashFS
  71 BeebItFS:                      141 BDFS
  77 MirrorFS:                      142 raFS:
  79 FTP:                           145 lprFS
  86 FontFS:                        148 CDRFS 
  91 Memphis                        152 ParaFS  
  96 AddressDevice                  156 LanMan98
  99 ShareFS                        158 CDROMFS
  92 LFS: (65Link)                  162 TFTP:
 101 Computer Concepts PrintQueueFS 170 ZIDEFS:
 102 LanMan                         192 SDFS:
 104 OmniPrint                      205 AudioFS
 105 AppleFS                      
 111 IOmega ZipFS:, iZipFS:        
 115 ATAFS:                       
 118 CacheFS
 121 MenonFS
 123 IZipFS

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.

 Y%=filing system number
 X%=speed for TAPE
 IF Y%<3 THEN A%=140 ELSE IF Y%=3 THEN A%=141 ELSE A%=143:X%=18
 CALL 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.

Jgharston 22:13, 1 September 2007 (BST)