+/*
+ * Definitions used in assembly-language progams
+ */
+
+#include "../h/config.h"
+
+#define r(i) (1<<(i))
+#define F_NQUAL 0x80000000
+#define F_VAR 0x40000000
+#define F_TVAR 0x20000000
+#define F_PTR 0x10000000
+#define TYPEMASK 63
+#define MAXSTRING 257
+#define T_INTEGER 1
+#define T_LONGINT 1
+#define T_REAL 3
+#define T_CSET 4
+#define T_FILE 5
+#define T_PROC 6
+#define T_LIST 7
+#define T_TABLE 8
+#define T_RECORD 9
+#define T_TELEM 10
+#define T_LISTB 11
+#define T_TVSUBS 12
+#define T_TVTBL 14
+#define T_TVPOS 15
+#define T_TVRAND 16
+#define T_TVTRACE 17
+#define T_ESTACK 18
+#define T_EBLOCK 19
+#ifdef SETS
+#define T_SET 20
+#define T_SELEM 21
+#endif SETS
+
+#define Global(x) .globl x
+#define DummyFcn(x) .globl x; x: halt
+#define DummyData(x) .globl x; x: .long 0
+#define DummyRef(x) .long x
+#define gfp r10
+#define efp r11
+#define ipc r9
+
+#ifdef PORT
+#define F_NQUAL
+#define F_VAR
+#define F_TVAR
+#define F_PTR
+
+#define TYPEMASK
+#define MAXSTRING
+
+#define T_INTEGER
+#define T_LONGINT
+#define T_REAL
+#define T_CSET
+#define T_FILE
+#define T_PROC
+#define T_LIST
+#define T_TABLE
+#define T_RECORD
+#define T_TELEM
+#define T_LISTB
+#define T_TVSUBS
+#define T_TVTBL
+#define T_TVPOS
+#define T_TVRAND
+#define T_TVTRACE
+#define T_ESTACK
+#define T_EBLOCK
+#ifdef SETS
+#define T_SET
+#define T_SELEM
+#endif SETS
+
+#define gfp
+#define efp
+#define ipc
+#define Global(x)
+#define DummyFcn(x)
+#define DummyData(x)
+#define DummyRef(x)
+
+#endif PORT
+
+
+#define OFFSETMASK (~(F_NQUAL|F_VAR|F_TVAR))
+
+#define D_VAR F_VAR|F_NQUAL
+#define D_TVAR F_VAR|F_TVAR|F_NQUAL
+#define D_NULL 0
+#define D_INTEGER T_INTEGER|F_NQUAL
+#define D_LONGINT T_LONGINT|F_PTR|F_NQUAL
+#define D_REAL T_REAL|F_PTR|F_NQUAL
+#define D_CSET T_CSET|F_PTR|F_NQUAL
+#define D_FILE T_FILE|F_PTR|F_NQUAL
+#define D_PROC T_PROC|F_PTR|F_NQUAL
+#define D_LIST T_LIST|F_PTR|F_NQUAL
+#define D_TABLE T_TABLE|F_PTR|F_NQUAL
+#define D_RECORD T_RECORD|F_PTR|F_NQUAL
+#define D_TELEM T_TELEM|F_PTR|F_NQUAL
+#define D_LISTB T_LISTB|F_PTR|F_NQUAL
+#define D_TVSUBS T_TVSUBS|D_TVAR
+#define D_TVTBL T_TVTBL|D_TVAR
+#define D_TVPOS T_TVPOS|D_TVAR
+#define D_TVRAND T_TVRAND|D_TVAR
+#define D_TVTRACE T_TVTRACE|D_TVAR
+#define D_ESTACK T_ESTACK|F_PTR|F_NQUAL
+#define D_EBLOCK T_EBLOCK|F_PTR|F_NQUAL
+#ifdef SETS
+#define D_SET T_SET|F_PTR|F_NQUAL
+#define D_SELEM T_SELEM|F_PTR|F_NQUAL
+#endif SETS