Difference between revisions of "FSCV"

From BeebWiki
Jump to: navigation, search
(Entry points: location)
(Implementations: EDOS)
Line 76: Line 76:
 
* *OPT 3:<br>CFS: set interblock gap for BPUT output<br>HDFS: ROM number for LOAD/SAVE<br>HADFS: set secondary filing system number
 
* *OPT 3:<br>CFS: set interblock gap for BPUT output<br>HDFS: ROM number for LOAD/SAVE<br>HADFS: set secondary filing system number
 
* *OPT 4: specify boot option
 
* *OPT 4: specify boot option
* *OPT 5:<br>HADFS: set number of channels (early versions only)<br>ANFS: run FindLib on logon<br>SWEH: set debug level
+
* *OPT 5:<br>HADFS: set number of channels (early versions only)<br>ANFS: run FindLib on logon<br>SWEH: set debug level<br>EDOS: display *OPT settings 1,6,7,8,9
* *OPT 6:<br>HADFS: use internal device drivers for drive n<br>ANFS: claim workspace<br>SWEH: set transmission delay
+
* *OPT 6:<br>HADFS: use internal device drivers for drive n<br>ANFS: claim workspace<br>SWEH: set transmission delay<br>EDOS: set density
* *OPT 7:<br>HADFS: use external device drivers for drive n<br>ADFS: set user options
+
* *OPT 7:<br>HADFS: use external device drivers for drive n<br>ADFS: set user options<br>EDOS: set number of volume catalogues
 +
* *OPT 8:<br>EDOS: set track stepping
 +
* *OPT 9:<br>EDOS: set paged ROM/RAM socket active during disc operations
 
* *OPT 40: some systems implement *OPT40,d to select double-stepping on drive d.
 
* *OPT 40: some systems implement *OPT40,d to select double-stepping on drive d.
 
* *OPT 80: some systems implement *OPT80,d to select single-stepping on drive d.
 
* *OPT 80: some systems implement *OPT80,d to select single-stepping on drive d.
Line 84: Line 86:
 
* [http://mdfs.net/Tube/Serial TubeHost] implements FSC &FF so that a client filing system can indicate a Shift-Break or a Tube Client Startup has occured.
 
* [http://mdfs.net/Tube/Serial TubeHost] implements FSC &FF so that a client filing system can indicate a Shift-Break or a Tube Client Startup has occured.
  
Some systems search the only current directory with *RUN and search the current directory and the current library library with */name and *name.
+
Some systems search only the current directory with *RUN and search the current directory and the current library library with */name and *name.
  
 
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 22:50, 9 March 2015 (UTC)
 
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 22:50, 9 March 2015 (UTC)

Revision as of 21:11, 15 August 2019

Filing system control

Specification

This vector is only called by the operating system, and should not be called directly. This list just shows the full list of calls.

Specification

  On entry: On exit:
A = function code Return value, or preserved if function not supported
X,Y =>command string or byte parameters   Any returned data
Functions
&00 *OPT command. X and Y hold parameters.
&01 EOF on channel X being checked with OSBYTE &7F. On exit, X=&00 if not at EOF, X<>&00 otherwise. If X=&00, (ie, EOF#0) action is implementation specific.
&02 */ command. XY points to the command text.
&03 Unrecognised OSCLI. XY points to the command text. The command has already been offered to the paged ROMs via service call &04, and none have responded.
&04 *RUN command. XY points to filename.
&05 *CAT command. XY points to any pathname.
&06 A new filing system is about to take over. This call is generated by filing systems themselves before they start their initialisation.
&07 File handle range request. Lowest returned in X, highest in Y.
&08 OSCLI command being processed. This is used to facilitate the *ENABLE command.
&09 *EX command. XY points to any pathname.
&0A *INFO command. XY points to the object name.
&0B *RUN from library. XY points to the filename.
&0C *RENAME command. XY points to the object names after the command.

Extensions

FSCV can be extended (eg by TubeHost) so that any other calls <&80 pass a string pointed to by X,Y, and calls >&7F pass and receive two bytes of data in X,Y.

Functions
&FF Startup, X=Reset type, Y=0 to boot filing system, Y<>0 for no boot. On return, Y b0-b1=boot action to perform. Typically Y on entry is &00 for SHift-Break, &08 for Break and &FF for CoPro Client starting up.

Calling from BBC BASIC

  • =EOF#ch on 8-bit systems calls OSBYTE 127, which calls FSC &01.

Special handles

Z88 allows:

  • =EOF#-1, returns -1 for expanded and 0 for unexpanded.

Some systems allow:

  • =EOF#0, returns <>0 if the keyboard buffer is not empty and 0 if empty.

Entry points

There is no entry point to FSC. It is called by other parts of the system in response to other calls, and should not be called directly via the vector.

FSCV is a vector at address &021E. A paged ROM may claim FSCV by storing &FF2D at &021E, the address of its routine at offset &2D of the extended vector table, and its paged ROM slot number at offset &2F; then issuing service call &0F.

Implementations

  • *OPT 0: resets options to default values.
  • *OPT 1: set message reporting level
  • *OPT 2:
    CFS/RFS: set error level
    HDFS: set number of disk retries
    HADFS: set primary filing system number
  • *OPT 3:
    CFS: set interblock gap for BPUT output
    HDFS: ROM number for LOAD/SAVE
    HADFS: set secondary filing system number
  • *OPT 4: specify boot option
  • *OPT 5:
    HADFS: set number of channels (early versions only)
    ANFS: run FindLib on logon
    SWEH: set debug level
    EDOS: display *OPT settings 1,6,7,8,9
  • *OPT 6:
    HADFS: use internal device drivers for drive n
    ANFS: claim workspace
    SWEH: set transmission delay
    EDOS: set density
  • *OPT 7:
    HADFS: use external device drivers for drive n
    ADFS: set user options
    EDOS: set number of volume catalogues
  • *OPT 8:
    EDOS: set track stepping
  • *OPT 9:
    EDOS: set paged ROM/RAM socket active during disc operations
  • *OPT 40: some systems implement *OPT40,d to select double-stepping on drive d.
  • *OPT 80: some systems implement *OPT80,d to select single-stepping on drive d.
  • TubeHost implements FSC &FF so that a client filing system can indicate a Shift-Break or a Tube Client Startup has occured.

Some systems search only the current directory with *RUN and search the current directory and the current library library with */name and *name.

Jgharston (talk) 22:50, 9 March 2015 (UTC)