Interface to an Alternate VSAM Emulator

CMS provides the support necessary to define and access an alternate VSAM emulator. Instead of using the VSE/VSAM support provided by CMS, you can write your own emulator or use some other VSAM emulator.

Note: Programs that intend to use an alternate VSAM emulator must be OS/VSAM programs.
To define an alternate VSAM emulator use the FILEDEF command. For example, if you have an emulator named FAST, you could use the following FILEDEF command:
FILEDEF VSAM SUBSYS FAST
The emulator (in this case, FAST) must already exist as a nucleus extension, be available as a module, or a be member of a loadlib. For more information on the SUBSYS option of FILEDEF, see z/VM: CMS Commands and Utilities Reference.
For the OPEN, CLOSE, and TCLOSE macros, the interface branches and returns by BALR to the origin of the alternate VSAM emulator module. On the call entry, the register contents are as follows:
R1
Standard subcommand PLIST address
R2
Address emulator nucleus extension SCBLOCK
R12
Entry point address
R13
24-word save area address
R14
Return address
R15
Entry point address
The parameter list pointed to by R1 may have one of two formats.
For OPEN requests:
This diagram shows the parameter list pointed to by R1 may have one of two formats.
For CLOSE or TCLOSE requests:
This diagram is described in the surrounding text.
The emulator's OPEN processing initializes the appropriate fields within the ACB according to the file processing macros (for example, GET, PUT, POINT, and so on).

The connection to the emulator is established as a result of issuing the FILEDEF command. The connection is an address pointer, at displacement 256 (X'100') within the OS/CVT simulated by CMS, to the origin of the emulator module. The address pointer is used by the control block manipulation macros (GENCB, MODCB, TESTCB, and so on) to establish the base address of the branch vector defined by OS/VSAM interface. The macros then branch directly to the appropriate branch table entry for the function being executed.