|
|
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.