xref: /csrg-svn/usr.bin/pascal/src/objfmt.h (revision 3171)
1736Speter /* Copyright (c) 1979 Regents of the University of California */
2736Speter 
3*3171Smckusic /* static char sccsid[] = "@(#)objfmt.h 1.6 03/10/81"; */
4736Speter 
5736Speter #ifdef OBJ
6736Speter 	/*
7736Speter 	 *	the creation time, the size and the magic number of the obj file
8736Speter 	 */
9736Speter     struct pxhdr {
102948Smckusic 	    long	maketime;
112948Smckusic 	    long	objsize;
12736Speter 	    short	magicnum;
13736Speter     };
14736Speter 
15736Speter #   define	HEADER_BYTES	1024		/* the size of px_header */
161210Speter #   define PX_HEADER "/usr/lib/px_header"	/* px_header's name */
172948Smckusic #   define PI_COMP "/usr/ucb/pi"		/* the compiler's name */
181210Speter #   define PX_INTRP "/usr/ucb/px"		/* the interpreter's name */
192088Smckusic #   define INDX 1				/* amt to shift display index */
20736Speter #endif OBJ
21736Speter 
22736Speter     /*
23736Speter      *	the file of error messages created by mkstr
24736Speter      */
25736Speter #ifdef OBJ
26736Speter #   define	ERR_STRNGS	"/usr/lib/pi2.0strings"
27736Speter #   define	ERR_PATHLEN	9
282948Smckusic #   define	HOW_STRNGS	"/usr/lib/how_pi\0"
292948Smckusic #   define	HOW_PATHLEN	9
30736Speter #endif OBJ
31736Speter #ifdef PC
32736Speter #   define	ERR_STRNGS	"/usr/lib/pc2.0strings"
33736Speter #   define	ERR_PATHLEN	9
342948Smckusic #   define	HOW_STRNGS	"/usr/lib/how_pc\0"
352948Smckusic #   define	HOW_PATHLEN	9
36736Speter #endif PC
37736Speter 
38736Speter 	    /*
39736Speter 	     *	these are because of varying sizes of pointers
40736Speter 	     */
41736Speter #ifdef VAX
42736Speter #	define PTR_AS O_AS4
43736Speter #	define PTR_RV O_RV4
44736Speter #	define PTR_IND O_IND4
452948Smckusic #	define PTR_CON O_CON4
462948Smckusic #	define PTR_DUP O_SDUP4
47*3171Smckusic #	define CON_INT O_CON24
48*3171Smckusic #	define INT_TYP (nl + T4INT)
49736Speter #	define PTR_DCL unsigned long		/* for pointer variables */
50736Speter #	define SHORTADDR 32768			/* maximum short address */
51736Speter #	define TOOMUCH 65536			/* maximum variable size */
52736Speter #	define MAXSET 65536			/* maximum set size */
53736Speter 	    /*
54736Speter 	     * Offsets due to the structure of the runtime stack.
55736Speter 	     * DPOFF1	is the amount of fixed storage in each block allocated
56736Speter 	     * 		as local variables for the runtime system.
57736Speter 	     *		since locals are allocated negative offsets,
58736Speter 	     *		-DPOFF1 is the last used implicit local offset.
59736Speter 	     * DPOFF2	is the size of the block mark.
60736Speter 	     *		since arguments are allocated positive offsets,
61736Speter 	     *		DPOFF2 is the end of the implicit arguments.
62736Speter 	     *		for obj, the first argument has the highest offset
63736Speter 	     *		from the stackpointer.  and the block mark is an
64736Speter 	     *		implicit last parameter.
65736Speter 	     *		for pc, the first argument has the lowest offset
66736Speter 	     *		from the argumentpointer.  and the block mark is an
67736Speter 	     *		implicit first parameter.
68736Speter 	     */
69736Speter #	ifdef OBJ
70736Speter #	    define DPOFF1		0
71736Speter #	    define DPOFF2		32
72736Speter #	    define INPUT_OFF		-8	/* offset of `input' */
73736Speter #	    define OUTPUT_OFF		-4	/* offset of `output' */
74736Speter #	endif OBJ
75736Speter #	ifdef	PC
76736Speter #	    define DPOFF1	( sizeof rtlocs - sizeof rtlocs.unwind )
77736Speter #	    define DPOFF2	( sizeof (long) )
78736Speter #	    define INPUT_OFF	0
79736Speter #	    define OUTPUT_OFF	0
80736Speter #	endif PC
81736Speter #	define MAGICNUM 0403			/* obj magic number */
82736Speter #endif VAX
83736Speter 
84736Speter #ifdef PDP11
85736Speter #	define PTR_AS O_AS2
86736Speter #	define PTR_RV O_RV2
87736Speter #	define PTR_IND O_IND2
882948Smckusic #	define PTR_CON O_CON2
892948Smckusic #	define PTR_DUP O_SDUP2
90*3171Smckusic #	define CON_INT O_CON2
91*3171Smckusic #	define INT_TYP (nl + T2INT)
92736Speter #	define PTR_DCL char *
93736Speter #	define TOOMUCH 50000
94736Speter #	define SHORTADDR 65536
952948Smckusic #	define MAXSET 65536		/* maximum set size */
962948Smckusic #	define DPOFF1 0
972948Smckusic #	define DPOFF2 18		/* sizeof(struct stack) */
98736Speter #	define INPUT_OFF -2
99736Speter #	define OUTPUT_OFF -4
100736Speter #	define MAGICNUM 0404
101736Speter #endif PDP11
102