xref: /csrg-svn/usr.bin/pascal/src/objfmt.h (revision 2088)
1736Speter /* Copyright (c) 1979 Regents of the University of California */
2736Speter 
3*2088Smckusic /* static	char sccsid[] = "@(#)objfmt.h 1.4 01/08/81"; */
4736Speter 
5736Speter #ifdef OBJ
6736Speter 	/*
7736Speter 	 *	the creation time, the size and the magic number of the obj file
8736Speter 	 */
9736Speter     struct pxhdr {
10736Speter 	    int	maketime;
11736Speter 	    int	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 */
171210Speter #   define PX_INTRP "/usr/ucb/px"		/* the interpreter's name */
18*2088Smckusic #   define INDX 1				/* amt to shift display index */
19736Speter #endif OBJ
20736Speter 
21736Speter     /*
22736Speter      *	the file of error messages created by mkstr
23736Speter      */
24736Speter #ifdef OBJ
25736Speter #   define	ERR_STRNGS	"/usr/lib/pi2.0strings"
26736Speter #   define	ERR_PATHLEN	9
27736Speter #endif OBJ
28736Speter #ifdef PC
29736Speter #   define	ERR_STRNGS	"/usr/lib/pc2.0strings"
30736Speter #   define	ERR_PATHLEN	9
31736Speter #endif PC
32736Speter 
33736Speter 	    /*
34736Speter 	     *	these are because of varying sizes of pointers
35736Speter 	     */
36736Speter #ifdef VAX
37736Speter #	define PTR_AS O_AS4
38736Speter #	define PTR_RV O_RV4
39736Speter #	define PTR_IND O_IND4
40736Speter #	define PTR_DCL unsigned long		/* for pointer variables */
41736Speter #	define SHORTADDR 32768			/* maximum short address */
42736Speter #	define TOOMUCH 65536			/* maximum variable size */
43736Speter #	define MAXSET 65536			/* maximum set size */
44736Speter 	    /*
45736Speter 	     * Offsets due to the structure of the runtime stack.
46736Speter 	     * DPOFF1	is the amount of fixed storage in each block allocated
47736Speter 	     * 		as local variables for the runtime system.
48736Speter 	     *		since locals are allocated negative offsets,
49736Speter 	     *		-DPOFF1 is the last used implicit local offset.
50736Speter 	     * DPOFF2	is the size of the block mark.
51736Speter 	     *		since arguments are allocated positive offsets,
52736Speter 	     *		DPOFF2 is the end of the implicit arguments.
53736Speter 	     *		for obj, the first argument has the highest offset
54736Speter 	     *		from the stackpointer.  and the block mark is an
55736Speter 	     *		implicit last parameter.
56736Speter 	     *		for pc, the first argument has the lowest offset
57736Speter 	     *		from the argumentpointer.  and the block mark is an
58736Speter 	     *		implicit first parameter.
59736Speter 	     */
60736Speter #	ifdef OBJ
61736Speter #	    define DPOFF1		0
62736Speter #	    define DPOFF2		32
63736Speter #	    define INPUT_OFF		-8	/* offset of `input' */
64736Speter #	    define OUTPUT_OFF		-4	/* offset of `output' */
65736Speter #	endif OBJ
66736Speter #	ifdef	PC
67736Speter #	    define DPOFF1	( sizeof rtlocs - sizeof rtlocs.unwind )
68736Speter #	    define DPOFF2	( sizeof (long) )
69736Speter #	    define INPUT_OFF	0
70736Speter #	    define OUTPUT_OFF	0
71736Speter #	endif PC
72736Speter #	define MAGICNUM 0403			/* obj magic number */
73736Speter #endif VAX
74736Speter 
75736Speter #ifdef PDP11
76736Speter #	define PTR_AS O_AS2
77736Speter #	define PTR_RV O_RV2
78736Speter #	define PTR_IND O_IND2
79736Speter #	define PTR_DCL char *
80736Speter #	define TOOMUCH 50000
81736Speter #	define SHORTADDR 65536
82736Speter #	define MAXSET 65536			/* maximum set size */
83736Speter #	define DPOFF2 16
84736Speter #	define INPUT_OFF -2
85736Speter #	define OUTPUT_OFF -4
86736Speter #	define MAGICNUM 0404
87736Speter #endif PDP11
88