DRLDRL - execute a TSS system call.

(GCOS-8 Only)

Usage:

#include <t.drls.h>
extern unsigned sy_reg[8];
drldrl( drlno[, drlarg]* )

Where:

unsigned drlno;
is the system call number.
unsigned drlarg;
are any in-line argument words that need to follow the DRL instruction.
sy_reg
is an eight word buffer with a register image. Before the system call is executed, the AQ register is loaded from this, and after the call, and SREG is executed to capture the register results. The include file <t.drls.h> defines two macros "drl_a" and "drl_q" to refer to "sy_reg[4]" and "sy_reg[5]" to allow you to easily set the A and Q register input arguments for the DRL.

Description:

"drldrl()" gives the TSS programmer direct access to the operating system functions. For most applications there is no need for this since there are utility routines in the library that execute DRL instructions as appropriate.

Examples:

#include <t.drls.h>
#include <stdio.h>
#include <stdlib.h>
main() {
    auto int dinfo[9];
    drldrl(T_CFIO, ((unsigned)dinfo) | 3);
    if (dinfo[7])
        printf("Next drun is %5_s for userid %.12_s\n",
               (void *)&dinfo[7], (void *)&dinfo[3]);
    exit(0);
}

Notes:

The include file <t.drls.h> also defines the DRL names, using the "t." names (as produced by the T.DRLS GMAP macro), with the name in uppercase, and the '.' replaced by an underscore (e.g. T_DIO).

Copyright © 1996, Thinkage Ltd.