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