7 /* Variables common with generator : */
9 protdescr *prototype[ MAXPROT+1 ]; /* prototypes */
10 word ipradr; /* address of primitive types descriptions */
11 word temporary; /* address of global temporary variables */
12 word strings; /* base for string constants */
13 word lastprot; /* the last used prototype number */
14 word freem; /* first free cell in M */
15 word currfile = 2; /* current file virtual address */
17 /* Interpreter own variables : */
19 memory M; /* main memory for code and data */
20 union value *param; /* for comunication with standard procs */
22 /* offset conversion table for compactification */
23 int offset[] = { DUMMY, SL, DL, CL, CHD, VIRTSC };
25 /* signal to number conversion table */
26 /* -1 stands for an unrecoverable error which cannot be serviced by handler */
62 /* Primitive type appetites for moveparams() : */
70 APREF, /* COROUTINE */
75 word ic; /* instruction counter */
76 word lastic; /* previous ic for redecoding after compact. */
77 int opcode; /* opcode of L-code instruction */
78 word a1, a2, a3; /* arguments of L-code instructions */
80 /* kernel variables for the running system: */
82 word memorysize = DEFMEMSIZE; /* code and data memory size */
83 word c1, c2; /* pointers to current object */
84 word dispoff; /* DISPLAY offset in process object */
85 word disp2off; /* indirect DISPLAY offset in process object */
86 word display; /* DISPLAY address - physical addresses */
87 word display2; /* DISPLAY address - indirect addresses */
88 word mainprog; /* main block object */
89 word mnoff; /* offset of variable main */
92 bool infmode = FALSE; /* default: no compactification message */
93 bool debug = FALSE; /* TRUE if trace is printed */
94 FILE *tracefile; /* output file for trace */
96 jmp_buf contenv; /* for continue execution */