Filing system numbers

From BeebWiki
Revision as of 05:38, 16 March 2017 by Jgharston (talk | contribs) (Added selection code that includes TAPE/ROM.)
Jump to: navigation, search

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

Jgharston 22:13, 1 September 2007 (BST) Jgharston (talk) 04:38, 16 March 2017 (UTC)