Using ON...GOSUB in an MFS Dispatch Routine

The first method uses the BASIC+ ON … GOSUB statement to branch to a local subroutine for each file operation. The CODE argument provides the index value for the ON…GOSUB statement. The GOSUB portion is followed by a list of 28 statement labels. Each statement label identifies the logic within the body of the MFS program for a particular file operation.

A typical statement begins like this:

ON CODE GOSUB READ.RECORD, READO.RECORD, WRITE.RECORD, DELETE.RECORD, LOCK.RECORD …

For example, if a record lock operation is being executed, the value of CODE will be 5. The ON … GOSUB statement will branch to the fifth statement label, in this case LOCK.RECORD.

Very frequently, the MFS is concerned with only a small number of file operations, such as READ.RECORD and WRITE.RECORD. In this case, the logic for most remaining operations can be lumped under a single label in the MFS. The MFS might "stack" statement labels that have code in common, as in this example:

READ.RECORD

   (record read logic here)

  RETURN

CREATE.FILE:

RENAME.FILE:

DELETE.FILE:

("do nothing" logic here)

RETURN