F.FMSGET - perform a specified FMS system call.

Usage:

mem_addr = f.fmsget( function, catfile );

Where:

function
is one of the following DRL FILACT/MME GEFSYE function codes.
16 - .H1SMC - Get first master
17 - .HNSMC - Get next master
18 - .HGCCF - Get current cat/file desc.
19 - .HGFCF - Get first cat/file desc.
20 - .HGNCF - Get next cat/file desc.
catfile
is the pointer to a cat/file list or a userid, as required by the selected function code.
mem_addr
contains the buffer pointer in the upper 18 bits, and the memory pointer returned from FMS in the lower 18 bits.

Description:

F.FMSGET performs a DRL FILACT or MME GEFSYE using the given subfunction code. If successful, the device is extracted from the FMS calling sequence and inserted in the llink descriptor kept by the FMS routines, allowing the user to call F.WHERE on the resulting value. The llink number is extracted from the buffer header.

If an error occurs, the status words are left in the external vector "f.stat", and the FMS error message (if any) will remain intact in the buffer until another call to F.GCAT or F.FMSGET occurs.

Notes:

You must check "f.stat" to determine if the call was successful. You cannot test the sign of the value returned.

If you get a "pack not mounted" status (4025) from a get first or get next call, FMS arranges that the value returned (i.e. "mem_addr") points to the three-word entry in the type 0 or 1 catalog block. You can use this information to build another get next call or to find the name of the pack that is not mounted.

See Also:

expl file system status

Copyright © 1996, Thinkage Ltd.