|
|
1.1 root 1: /*
2: / This header file defines the interface between the Macro SPITBOL compiler
3: / written in assembly langauge and the OS interface written in C.
4: / Communication between the two is handled via a set of global variables
5: / defined as externals below.
6: */
7:
8: /*
9: / Set up externals for all the compiler's registers.
10: */
11:
12: extern float reg_ra;
13: extern long reg_cp, reg_ia, reg_wa, reg_wb, reg_wc, reg_xr, reg_xl;
14:
15: /*
16: / Macros to fetch a value of appropriate type from a compiler register
17: */
18:
19: #define RA(type) ((type) reg_ra)
20: #define CP(type) ((type) reg_cp)
21: #define IA(type) ((type) reg_ia)
22: #define WA(type) ((type) reg_wa)
23: #define WB(type) ((type) reg_wb)
24: #define WC(type) ((type) reg_wc)
25: #define XR(type) ((type) reg_xr)
26: #define XL(type) ((type) reg_xl)
27:
28: /*
29: / Macros to set a value of appropriate type into a compiler register.
30: */
31:
32: #define SET_RA(val) reg_ra = (float) (val)
33: #define SET_CP(val) reg_cp = (long) (val)
34: #define SET_IA(val) reg_ia = (long) (val)
35: #define SET_WA(val) reg_wa = (long) (val)
36: #define SET_WB(val) reg_wb = (long) (val)
37: #define SET_WC(val) reg_wc = (long) (val)
38: #define SET_XR(val) reg_xr = (long) (val)
39: #define SET_XL(val) reg_xl = (long) (val)
40:
41: /*
42: / Return values to take exit N from interface
43: */
44:
45: #define EXIT_1 0
46: #define EXIT_2 4
47: #define EXIT_3 8
48: #define EXIT_4 12
49: #define EXIT_5 16
50: #define EXIT_6 20
51: #define EXIT_7 24
52: #define EXIT_8 28
53: #define EXIT_9 32
54:
55: /*
56: / Return value to do a normal return from interface.
57: */
58:
59: #define NORMAL_RETURN (-1)
60:
61: /*
62: / Define length of temporary string in tscblk. (Must be coordinated with
63: / vaxinter.s.
64: */
65:
66: #define TSCBLK_LENGTH 120
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.