V10/cmd/spitbol/cint/osint.h

/*
/   This header file defines the interface between the Macro SPITBOL compiler
/   written in assembly langauge and the OS interface written in C.
/   Communication between the two is handled via a set of global variables 
/   defined as externals below.
*/

/*
/   Set up externals for all the compiler's registers.
*/

extern float	reg_ra;
extern long	reg_cp, reg_ia, reg_wa, reg_wb, reg_wc, reg_xr, reg_xl;

/*
/   Macros to fetch a value of appropriate type from a compiler register
*/

#define RA(type)	((type) reg_ra)
#define CP(type)	((type) reg_cp)
#define IA(type)	((type) reg_ia)
#define WA(type)	((type) reg_wa)
#define WB(type)	((type) reg_wb)
#define WC(type)	((type) reg_wc)
#define XR(type)	((type) reg_xr)
#define XL(type)	((type) reg_xl)

/*
/   Macros to set a value of appropriate type into a compiler register.
*/

#define SET_RA(val)	reg_ra = (float) (val)
#define SET_CP(val)	reg_cp = (long) (val)
#define SET_IA(val)	reg_ia = (long) (val)
#define SET_WA(val)	reg_wa = (long) (val)
#define SET_WB(val)	reg_wb = (long) (val)
#define SET_WC(val)	reg_wc = (long) (val)
#define SET_XR(val)	reg_xr = (long) (val)
#define SET_XL(val)	reg_xl = (long) (val)

/*
/   Return values to take exit N from interface
*/

#define EXIT_1		0
#define EXIT_2		4
#define EXIT_3		8
#define EXIT_4		12
#define EXIT_5		16
#define EXIT_6		20
#define EXIT_7		24
#define EXIT_8		28
#define EXIT_9		32

/*
/    Return value to do a normal return from interface.
*/

#define NORMAL_RETURN	(-1)

/*
/   Define length of temporary string in tscblk.  (Must be coordinated with
/   vaxinter.s.
*/

#define TSCBLK_LENGTH	120