[comp.lang.asm370] DCSS

BRUCE@UMDD.BITNET (Bruce Crabill) (01/08/88)

Talking to a DCSS is quite simple, you just use Diagnose X'64'.  Use the
LOADSYS function to attach it to your virtual machine (making sure that it
isn't overlaying something important like CMS) and branch to the appropriate
place in the DCSS.  Exactly how you use the DCSS is up to the person who
put the code in the DCSS.  I would recommend that if you are doing one from
scratch to use a branch vector table at the beginning of the DCSS.  This is
a table of branch statements (you could also use an ACON table) that contains
the proper address within the DCSS of the desired routine.  To use it, you
would branch into the branch table at a fixed offset for a given routine
(or load the ACON for a given entry point) and this would branch to the
proper location in the DCSS.  This has the advantage that the user code
doesn't have to change if you update the DCSS and things move around.
The segment loader could also be a bit fancier and do a FINDSYS to find the
starting address of the segment, in case you want to move it later.
If it is a shared DCSS, make sure that all of your code is reenterant.

                                       Bruce