1*3d8817e4Smiod("cs" 0x0
2*3d8817e4Smiod (("size") (1 byte) ("size"))
3*3d8817e4Smiod
4*3d8817e4Smiod (("hd") (1 byte) ("hd"))
5*3d8817e4Smiod (("hs") (1 byte) ("hs"))
6*3d8817e4Smiod (("un") (1 byte) ("un"))
7*3d8817e4Smiod (("us") (1 byte) ("us"))
8*3d8817e4Smiod
9*3d8817e4Smiod (("sc") (1 byte) ("sc"))
10*3d8817e4Smiod (("ss") (1 byte) ("ss"))
11*3d8817e4Smiod (("er") (1 byte) ("er"))
12*3d8817e4Smiod (("ed") (1 byte) ("ed"))
13*3d8817e4Smiod
14*3d8817e4Smiod (("sh") (1 byte) ("sh"))
15*3d8817e4Smiod (("ob") (1 byte) ("ob"))
16*3d8817e4Smiod (("rl") (1 byte) ("rl"))
17*3d8817e4Smiod (("du") (1 byte) ("du"))
18*3d8817e4Smiod
19*3d8817e4Smiod (("dps") (1 byte) ("dps"))
20*3d8817e4Smiod (("dsy") (1 byte) ("dsy"))
21*3d8817e4Smiod (("dty") (1 byte) ("dty"))
22*3d8817e4Smiod (("dln") (1 byte) ("dln"))
23*3d8817e4Smiod
24*3d8817e4Smiod (("dso") (1 byte) ("dso"))
25*3d8817e4Smiod (("dus") (1 byte) ("dus"))
26*3d8817e4Smiod (("dss") (1 byte) ("dss"))
27*3d8817e4Smiod (("dbt") (1 byte) ("dbt"))
28*3d8817e4Smiod
29*3d8817e4Smiod (("dpp") (1 byte) ("dpp"))
30*3d8817e4Smiod (("dfp") (1 byte) ("dfp"))
31*3d8817e4Smiod (("den") (1 byte) ("den"))
32*3d8817e4Smiod (("dds") (1 byte) ("dds"))
33*3d8817e4Smiod
34*3d8817e4Smiod (("dar") (1 byte) ("dar"))
35*3d8817e4Smiod (("dpt") (1 byte) ("dpt"))
36*3d8817e4Smiod (("dul") (1 byte) ("dul"))
37*3d8817e4Smiod (("dse") (1 byte) ("dse"))
38*3d8817e4Smiod
39*3d8817e4Smiod (("dot") (1 byte) ("dot")))
40*3d8817e4Smiod
41*3d8817e4Smiod
42*3d8817e4Smiod("hd" 0x04
43*3d8817e4Smiod (("module type") (4 bits) ("mt")
44*3d8817e4Smiod  (("MTYPE_ABS_LM" 	"0")
45*3d8817e4Smiod   ("MTYPE_REL_LM" 	"1")
46*3d8817e4Smiod   ("MTYPE_OMS_OR_LMS" 	"2")
47*3d8817e4Smiod   ("MTYPE_UNSPEC" 	"0xf")))
48*3d8817e4Smiod (("spare")(4 bits) ("spare1"))
49*3d8817e4Smiod (("creation date")( chars 12 bytes)( "cd"))
50*3d8817e4Smiod (("number of units") (2 bytes) ("nu"))
51*3d8817e4Smiod (("code") (1 byte) ("code"))
52*3d8817e4Smiod (("version") (chars 4 bytes) ("ver"))
53*3d8817e4Smiod (("address update") (1 byte) ("au"))
54*3d8817e4Smiod (("segment identifier") (1 bit) ("si"))
55*3d8817e4Smiod (("address field length") (4 bits) ("afl"))
56*3d8817e4Smiod (("spare")(3 bits) ("spare2"))
57*3d8817e4Smiod (("space size within segment") (1 byte) ("spcsz"))
58*3d8817e4Smiod (("segment size")  	(1 byte) ("segsz"))
59*3d8817e4Smiod (("segment shift") 	(1 byte) ("segsh"))
60*3d8817e4Smiod (("entry point") 	(1 byte) ("ep"))
61*3d8817e4Smiod (cond "ptr->ep"
62*3d8817e4Smiod       (cond "ptr->mt != MTYPE_ABS_LM"
63*3d8817e4Smiod	     (("unit appearance number") (2 bytes) ("uan"))
64*3d8817e4Smiod	     (("section appearance number") (2 bytes) ("sa")))
65*3d8817e4Smiod       (cond "segmented_p"
66*3d8817e4Smiod	     (("segment address") (segsize bytes) ("sad")))
67*3d8817e4Smiod       (("address") (addrsize bytes) ("address")))
68*3d8817e4Smiod (("os name") (chars variable bytes) ("os"))
69*3d8817e4Smiod (("sys name") (chars variable bytes) ("sys"))
70*3d8817e4Smiod (("module name") (chars variable bytes) ("mn"))
71*3d8817e4Smiod (("cpu") (chars variable bytes) ("cpu")))
72*3d8817e4Smiod
73*3d8817e4Smiod
74*3d8817e4Smiod("hs" 0x05
75*3d8817e4Smiod (("neg number") (2 bytes) ("neg")))
76*3d8817e4Smiod
77*3d8817e4Smiod
78*3d8817e4Smiod("un" 0x06
79*3d8817e4Smiod (("format") (2 bits) ("format")
80*3d8817e4Smiod  (("FORMAT_LM" "0")
81*3d8817e4Smiod   ("FORMAT_OM" "1")
82*3d8817e4Smiod   ("FORMAT_OMS_OR_LMS" "2")))
83*3d8817e4Smiod (("spare") (6 bits) ("spare1"))
84*3d8817e4Smiod (("number of sections") (2 bytes) ("nsections"))
85*3d8817e4Smiod (("number of external refs") (2 bytes) ("nextrefs"))
86*3d8817e4Smiod (("number of external defs") (2 bytes) ("nextdefs"))
87*3d8817e4Smiod (("unit name") (chars variable byte) ("name"))
88*3d8817e4Smiod (("tool name") (chars variable byte) ("tool"))
89*3d8817e4Smiod (("creation date") (chars 12 bytes) ("tcd"))
90*3d8817e4Smiod (("linker name") (chars variable byte) ("linker"))
91*3d8817e4Smiod (("creation date") (chars 12 bytes) ("lcd")))
92*3d8817e4Smiod
93*3d8817e4Smiod
94*3d8817e4Smiod("us" 0x07
95*3d8817e4Smiod (("negotiation number") (2 bytes) ("neg")))
96*3d8817e4Smiod
97*3d8817e4Smiod
98*3d8817e4Smiod("sc" 0x08
99*3d8817e4Smiod (("format") (2 bits) ("format"))
100*3d8817e4Smiod (("spare") (6 bits) ("spare"))
101*3d8817e4Smiod (("segment address") (segsize bytes) ("segadd"))
102*3d8817e4Smiod (("address") (addrsize bytes) ("addr"))
103*3d8817e4Smiod (("length") (addrsize bytes) ("length"))
104*3d8817e4Smiod (("alignment") (addrsize bytes) ("align"))
105*3d8817e4Smiod (("contents") (4 bits) ("contents")
106*3d8817e4Smiod  (("CONTENTS_CODE" "0")
107*3d8817e4Smiod   ("CONTENTS_DATA" "1")
108*3d8817e4Smiod   ("CONTENTS_STACK" "2")
109*3d8817e4Smiod   ("CONTENTS_DUMMY" "3")
110*3d8817e4Smiod   ("CONTENTS_SPECIAL" "4")
111*3d8817e4Smiod   ("CONTENTS_NONSPEC" "0xf")))
112*3d8817e4Smiod (("concat") (4 bits) ("concat")
113*3d8817e4Smiod  (("CONCAT_SIMPLE" "0")
114*3d8817e4Smiod   ("CONCAT_SHAREDC" "1")
115*3d8817e4Smiod   ("CONCAT_DUMMY" "2")
116*3d8817e4Smiod   ("CONCAT_GROUP" "3")
117*3d8817e4Smiod   ("CONCAT_SHARED" "4")
118*3d8817e4Smiod   ("CONCAT_PRIVATE" "5")
119*3d8817e4Smiod   ("CONCAT_UNSPEC" "0xf")))
120*3d8817e4Smiod (("read") (2 bits) ("read"))
121*3d8817e4Smiod (("write") (2 bits) ("write"))
122*3d8817e4Smiod (("exec") (2 bits) ("exec"))
123*3d8817e4Smiod (("initialized") (2 bits) ("init"))
124*3d8817e4Smiod (("mode") (2 bits) ("mode"))
125*3d8817e4Smiod (("spare") (6 bits) ("spare1"))
126*3d8817e4Smiod (("name") (chars variable byte) ("name")))
127*3d8817e4Smiod
128*3d8817e4Smiod
129*3d8817e4Smiod("ss" 0x09
130*3d8817e4Smiod (("neg number") (2 bytes) ("neg")))
131*3d8817e4Smiod
132*3d8817e4Smiod
133*3d8817e4Smiod("er" 0x0c
134*3d8817e4Smiod (("symbol type") (2 bits) ("type")
135*3d8817e4Smiod  (("ER_ENTRY" "0")
136*3d8817e4Smiod   ("ER_DATA" "1")
137*3d8817e4Smiod   ("ER_NOTDEF" "2")
138*3d8817e4Smiod   ("ER_NOTSPEC" "3")))
139*3d8817e4Smiod (("spare") (6 bits) ("spare"))
140*3d8817e4Smiod (("symbol name") (chars variable byte) ("name")))
141*3d8817e4Smiod
142*3d8817e4Smiod
143*3d8817e4Smiod("ed" 0x14
144*3d8817e4Smiod (("section appearance number") (2 bytes) ("section"))
145*3d8817e4Smiod (("symbol type") (3 bits) ("type")
146*3d8817e4Smiod  (("ED_TYPE_ENTRY" "0")
147*3d8817e4Smiod   ("ED_TYPE_DATA" "1")
148*3d8817e4Smiod   ("ED_TYPE_CONST" "2")
149*3d8817e4Smiod   ("ED_TYPE_NOTSPEC" "7")))
150*3d8817e4Smiod (("spare") (5 bits) ("spare"))
151*3d8817e4Smiod (cond "ptr->type==ED_TYPE_ENTRY || ptr->type==ED_TYPE_DATA"
152*3d8817e4Smiod       (("symbol address") (addrsize bytes) ("address")))
153*3d8817e4Smiod (cond "ptr->type==ED_TYPE_CONST"
154*3d8817e4Smiod       (("constant value") (addrsize bytes) ("constant")))
155*3d8817e4Smiod (("symbol name") (chars variable byte) ("name")))
156*3d8817e4Smiod
157*3d8817e4Smiod
158*3d8817e4Smiod("sh" 0x1a
159*3d8817e4Smiod (("unit appearance number") (2 bytes) ("unit"))
160*3d8817e4Smiod (("section appearance number") (2 bytes) ("section")))
161*3d8817e4Smiod
162*3d8817e4Smiod
163*3d8817e4Smiod("ob" 0x1c
164*3d8817e4Smiod (("starting address flag") (1 bit) ("saf"))
165*3d8817e4Smiod (("compression flag") (1 bit) ("cpf"))
166*3d8817e4Smiod (("spare") (6 bits) ("spare"))
167*3d8817e4Smiod (cond "ptr->saf"
168*3d8817e4Smiod       ( ("starting address") (addrsize bytes) ("address")))
169*3d8817e4Smiod (cond "ptr->cpf"
170*3d8817e4Smiod       (("comp reps") (addrsize bytes) ("compreps")))
171*3d8817e4Smiod (("data") (barray counted byte) ("data")))
172*3d8817e4Smiod
173*3d8817e4Smiod
174*3d8817e4Smiod("rl" 0x20
175*3d8817e4Smiod (("boundary of relocatable area") (4 bits) ("boundary"))
176*3d8817e4Smiod (("address polarity") (1 bit) ("apol"))
177*3d8817e4Smiod (("segment number") (1 bit) ("segment"))
178*3d8817e4Smiod (("sign of relocation") (1 bit) ("sign"))
179*3d8817e4Smiod (("check range") (1 bit) ("check"))
180*3d8817e4Smiod (("reloc address") (addrsize bytes) ("addr"))
181*3d8817e4Smiod
182*3d8817e4Smiod (("bit loc") (1 byte) ("bitloc"))
183*3d8817e4Smiod (("field length") (1 byte) ("flen"))
184*3d8817e4Smiod (("bcount") (1 byte) ("bcount"))
185*3d8817e4Smiod (("operator") (1 byte) ("op")
186*3d8817e4Smiod  (("OP_RELOC_ADDR" "1")
187*3d8817e4Smiod   ("OP_SEC_REF" "0")
188*3d8817e4Smiod   ("OP_EXT_REF" "2")))
189*3d8817e4Smiod (cond "ptr->op == OP_EXT_REF"
190*3d8817e4Smiod       (("symbol number") (2 bytes) ("symn"))	)
191*3d8817e4Smiod
192*3d8817e4Smiod (cond "ptr->op == OP_SEC_REF"
193*3d8817e4Smiod       (("section number") (2 bytes) ("secn"))
194*3d8817e4Smiod       (("const opcode") (1 byte) ("copcode_is_3"))
195*3d8817e4Smiod       (("addend length") (1 byte) ("alength_is_4"))
196*3d8817e4Smiod       (("addend") (4 byte) ("addend"))
197*3d8817e4Smiod       (("plus opcode") (1 byte) ("aopcode_is_0x20")))
198*3d8817e4Smiod
199*3d8817e4Smiod (cond "ptr->op == OP_RELOC_ADDR"
200*3d8817e4Smiod       (("dunno") (2 bytes) ("dunno")))
201*3d8817e4Smiod
202*3d8817e4Smiod (("end")  (1 byte) ("end")))
203*3d8817e4Smiod
204*3d8817e4Smiod
205*3d8817e4Smiod("du" 0x30
206*3d8817e4Smiod (("format") (2 bits) ("format"))
207*3d8817e4Smiod (("optimized") (1 bit) ("optimized"))
208*3d8817e4Smiod (("stackfrmt") (2 bits) ("stackfrmt"))
209*3d8817e4Smiod (("spare") (3 bits) ("spare"))
210*3d8817e4Smiod (("unit number") (2 bytes) ("unit"))
211*3d8817e4Smiod (("sections") (2 bytes) ("sections"))
212*3d8817e4Smiod (repeat "ptr->sections"
213*3d8817e4Smiod	 (("section appearance number") (2 bytes) ("san"))
214*3d8817e4Smiod	 (("address") (addrsize bytes) ("address"))
215*3d8817e4Smiod	 (("section length") (addrsize bytes) ("length")))
216*3d8817e4Smiod (("tool name") (chars variable byte) ("tool"))
217*3d8817e4Smiod (("creation date") (chars 12 bytes) ("date")))
218*3d8817e4Smiod
219*3d8817e4Smiod
220*3d8817e4Smiod("dsy" 0x34
221*3d8817e4Smiod (("symbol type") (7 bits) ("type")
222*3d8817e4Smiod  (("STYPE_VAR" "0")
223*3d8817e4Smiod   ("STYPE_LAB" "1")
224*3d8817e4Smiod   ("STYPE_PROC" "2")
225*3d8817e4Smiod   ("STYPE_FUNC" "3")
226*3d8817e4Smiod   ("STYPE_TYPE" "4")
227*3d8817e4Smiod   ("STYPE_CONST" "5")
228*3d8817e4Smiod   ("STYPE_ENTRY" "6")
229*3d8817e4Smiod   ("STYPE_MEMBER" "7")
230*3d8817e4Smiod   ("STYPE_ENUM" "8")
231*3d8817e4Smiod   ("STYPE_TAG" "9")
232*3d8817e4Smiod   ("STYPE_PACKAGE" "10")
233*3d8817e4Smiod   ("STYPE_GENERIC" "11")
234*3d8817e4Smiod   ("STYPE_TASK" "12")
235*3d8817e4Smiod   ("STYPE_EXCEPTION" "13")
236*3d8817e4Smiod   ("STYPE_PARAMETER" "14")
237*3d8817e4Smiod   ("STYPE_EQUATE" "15")
238*3d8817e4Smiod   ("STYPE_UNSPEC" "0x7f")))
239*3d8817e4Smiod (("assignment info") (1 bit) ("assign"))
240*3d8817e4Smiod (("symbol id") (2 bytes) ("snumber"))
241*3d8817e4Smiod (("symbol name") (chars variable bytes) ("sname"))
242*3d8817e4Smiod (("nesting level") (2 bytes) ("nesting"))
243*3d8817e4Smiod (cond "ptr->assign"
244*3d8817e4Smiod       (("assignment type") (1 byte)  ("ainfo")
245*3d8817e4Smiod	(("AINFO_REG" "1")
246*3d8817e4Smiod	 ("AINFO_STATIC_EXT_DEF" "2")
247*3d8817e4Smiod	 ("AINFO_STATIC_EXT_REF" "3")
248*3d8817e4Smiod	 ("AINFO_STATIC_INT" "4")
249*3d8817e4Smiod	 ("AINFO_STATIC_COM" "5")
250*3d8817e4Smiod	 ("AINFO_AUTO" "6")
251*3d8817e4Smiod	 ("AINFO_CONST" "7")
252*3d8817e4Smiod	 ("AINFO_UNSPEC" "0xff")))
253*3d8817e4Smiod       (("data length") (addrsize bytes) ("dlength"))
254*3d8817e4Smiod       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
255*3d8817e4Smiod            || ptr->ainfo == AINFO_STATIC_INT
256*3d8817e4Smiod            || ptr->ainfo == AINFO_STATIC_COM"
257*3d8817e4Smiod	     (("section number")  (2 bytes) ("section")))
258*3d8817e4Smiod       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
259*3d8817e4Smiod            || ptr->ainfo == AINFO_STATIC_INT
260*3d8817e4Smiod            || ptr->ainfo == AINFO_STATIC_COM
261*3d8817e4Smiod            || ptr->ainfo == AINFO_AUTO"
262*3d8817e4Smiod	     (("address") (addrsize bytes) ("address")))
263*3d8817e4Smiod       (cond "ptr->ainfo == AINFO_REG"
264*3d8817e4Smiod	     (("register name") (chars variable bytes) ("reg")))
265*3d8817e4Smiod       (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
266*3d8817e4Smiod	    || ptr->ainfo == AINFO_STATIC_EXT_REF"
267*3d8817e4Smiod	     (("external name") (chars variable bytes) ("ename")))
268*3d8817e4Smiod       (cond "ptr->ainfo == AINFO_CONST"
269*3d8817e4Smiod	     (("constant") (chars variable bytes) ("constant"))))
270*3d8817e4Smiod (cond "ptr->type == STYPE_MEMBER"
271*3d8817e4Smiod       (("assignment unit") (1 bit) ("bitunit"))
272*3d8817e4Smiod       (("spare") (7 bits) ("spare2"))
273*3d8817e4Smiod       (("field length") (addrsize bytes) ("field_len"))
274*3d8817e4Smiod       (("field offset") (addrsize bytes) ("field_off"))
275*3d8817e4Smiod       (cond "ptr->bitunit"
276*3d8817e4Smiod	     (("bit offset") (addrsize bytes) ("field_bitoff"))))
277*3d8817e4Smiod (cond "ptr->type== STYPE_ENUM"
278*3d8817e4Smiod       (("value length") (1 byte) ("evallen"))
279*3d8817e4Smiod       (("value") (4 bytes) ("evalue")))
280*3d8817e4Smiod (cond "ptr->type == STYPE_CONST"
281*3d8817e4Smiod       (("value") (chars variable bytes) ("cvalue")))
282*3d8817e4Smiod (cond "ptr->type == STYPE_EQUATE"
283*3d8817e4Smiod       (("value length") (1 byte) ("qvallen"))
284*3d8817e4Smiod       (("value") (4 bytes) ("qvalue"))
285*3d8817e4Smiod       (("basic type") (1 byte) ("btype"))
286*3d8817e4Smiod       (("size information") (addrsize bytes) ("sizeinfo"))
287*3d8817e4Smiod       (("sign") (2 bits) ("sign"))
288*3d8817e4Smiod       (("floating point type") (6 bits) ("flt_type")))
289*3d8817e4Smiod (("source file number") (2 bytes) ("sfn"))
290*3d8817e4Smiod (("source line number") (2 bytes) ("sln"))
291*3d8817e4Smiod (("negotiation number") (2 bytes) ("neg"))
292*3d8817e4Smiod (cond "ptr->type == STYPE_TAG"
293*3d8817e4Smiod       (("magic") (1 byte) ("magic"))))
294*3d8817e4Smiod
295*3d8817e4Smiod
296*3d8817e4Smiod
297*3d8817e4Smiod("dul" 0x52
298*3d8817e4Smiod (("max declaration type flag") (1 bit) ("max_variable"))
299*3d8817e4Smiod (("max spare") (7 bits) ("maxspare"))
300*3d8817e4Smiod (cond "ptr->max_variable == 0"
301*3d8817e4Smiod       (("maximum") (addrsize bytes) ("max"))
302*3d8817e4Smiod       (("max mode") (chars variable bytes) ("maxmode")))
303*3d8817e4Smiod
304*3d8817e4Smiod (("min declaration type flag") (1 bit) ("min_variable"))
305*3d8817e4Smiod (("min spare") (7 bits) ("minspare"))
306*3d8817e4Smiod (cond "ptr->min_variable == 0"
307*3d8817e4Smiod       (("minimum") (addrsize bytes) ("min"))
308*3d8817e4Smiod       (("min mode") (chars variable bytes) ("minmode"))))
309*3d8817e4Smiod
310*3d8817e4Smiod
311*3d8817e4Smiod("dty" 0x36
312*3d8817e4Smiod (("end flag") (1 bit) ("end"))
313*3d8817e4Smiod (("spare") (7 bits) ("spare"))
314*3d8817e4Smiod (cond "!ptr->end"
315*3d8817e4Smiod       (("negotiation") (2 bytes) ("neg"))))
316*3d8817e4Smiod
317*3d8817e4Smiod
318*3d8817e4Smiod("dbt" 0x44
319*3d8817e4Smiod (("basic type") (1 byte) ("btype")
320*3d8817e4Smiod  (("BTYPE_VOID" "0")
321*3d8817e4Smiod   ("BTYPE_UNDEF" "1")
322*3d8817e4Smiod   ("BTYPE_CHAR" "2")
323*3d8817e4Smiod   ("BTYPE_INT" "3")
324*3d8817e4Smiod   ("BTYPE_FLOAT" "4")
325*3d8817e4Smiod   ("BTYPE_BIT" "5")
326*3d8817e4Smiod   ("BTYPE_STRING" "6")
327*3d8817e4Smiod   ("BTYPE_DECIMAL" "7")
328*3d8817e4Smiod   ("BTYPE_ENUM" "8")
329*3d8817e4Smiod   ("BTYPE_STRUCT" "9")
330*3d8817e4Smiod   ("BTYPE_TYPE" "10")
331*3d8817e4Smiod   ("BTYPE_TAG" "11")
332*3d8817e4Smiod   ("BTYPE_UNSPEC" "0xff")))
333*3d8817e4Smiod (("size info") (addrsize bytes) ("bitsize"))
334*3d8817e4Smiod (("sign") (2 bits) ("sign")
335*3d8817e4Smiod  (("SIGN_SIGNED" "0")
336*3d8817e4Smiod   ("SIGN_UNSIGNED" "1")
337*3d8817e4Smiod   ("SIGN_UNSPEC" "3")))
338*3d8817e4Smiod (("floating point type") (6 bits) ("fptype")
339*3d8817e4Smiod  (("FPTYPE_SINGLE" "0")
340*3d8817e4Smiod   ("FPTYPE_DOUBLE" "1")
341*3d8817e4Smiod   ("FPTYPE_EXTENDED" "2")
342*3d8817e4Smiod   ("FPTYPE_NOTSPEC" "0x3f")))
343*3d8817e4Smiod (cond "ptr->btype==BTYPE_TAG || ptr->btype == BTYPE_TYPE"
344*3d8817e4Smiod       (("symbol id") (2 bytes) ("sid")))
345*3d8817e4Smiod (("negotiation") (2 bytes) ("neg")))
346*3d8817e4Smiod
347*3d8817e4Smiod("dar" 0x4e
348*3d8817e4Smiod (("element length" ) (addrsize bytes) ("length"))
349*3d8817e4Smiod (("dims") (1 byte) ("dims"))
350*3d8817e4Smiod (repeat "ptr->dims"
351*3d8817e4Smiod	 (("variable flag") (1 bit) ("variable")
352*3d8817e4Smiod	  (("VARIABLE_FIXED" "0")
353*3d8817e4Smiod	   ("VARIABLE_VARIABLE" "1")))
354*3d8817e4Smiod
355*3d8817e4Smiod	 (("subscript type") (1 bit) ("subtype")
356*3d8817e4Smiod	  (("SUB_INTEGER" "0")
357*3d8817e4Smiod	   ("SUB_TYPE"    "1")))
358*3d8817e4Smiod
359*3d8817e4Smiod	 (("spare") (6 bits) ("spare"))
360*3d8817e4Smiod
361*3d8817e4Smiod	 (cond "ptr->subtype[n] == SUB_TYPE"
362*3d8817e4Smiod	       (("sub symbol id") (2 bytes) ("sid")))
363*3d8817e4Smiod
364*3d8817e4Smiod	 (cond "ptr->subtype[n] == SUB_INTEGER"
365*3d8817e4Smiod	       (("max declaration type flag") (1 bit) ("max_variable"))
366*3d8817e4Smiod	       (("max spare") (7 bits) ("maxspare"))
367*3d8817e4Smiod	       ;; FIXME: next field should be conditional on max_variable,
368*3d8817e4Smiod	       (("maximum") (addrsize bytes) ("max"))
369*3d8817e4Smiod
370*3d8817e4Smiod	       (("min declaration type flag") (1 bit) ("min_variable"))
371*3d8817e4Smiod	       (("min spare") (7 bits) ("minspare"))
372*3d8817e4Smiod	       ;; FIXME: next field should be conditional on min_variable
373*3d8817e4Smiod	       (("minimum") (addrsize bytes) ("min"))))
374*3d8817e4Smiod (("negotiation") (2 bytes) ("neg")))
375*3d8817e4Smiod
376*3d8817e4Smiod
377*3d8817e4Smiod("dso" 0x3a
378*3d8817e4Smiod (("function name") (2 bytes) ("sid"))
379*3d8817e4Smiod (("sp update count") (4 bytes) ("spupdates"))
380*3d8817e4Smiod (repeat "ptr->spupdates"
381*3d8817e4Smiod	 (("update address") (addrsize bytes) ("address"))
382*3d8817e4Smiod	 (("offset") (addrsize bytes) ("offset"))))
383*3d8817e4Smiod
384*3d8817e4Smiod("dln" 0x38
385*3d8817e4Smiod (("number of lines") (2 bytes) ("nln"))
386*3d8817e4Smiod (repeat "ptr->nln"
387*3d8817e4Smiod	 (("source file number") (2 bytes) ("sfn"))
388*3d8817e4Smiod	 (("source line number") (2 bytes) ("sln"))
389*3d8817e4Smiod	 (("section number") (2 bytes) ("section"))
390*3d8817e4Smiod	 (("from address") (addrsize bytes) ("from_address"))
391*3d8817e4Smiod	 (("to address") (addrsize bytes) ("to_address"))
392*3d8817e4Smiod	 (("call count") (2 bytes) ("cc"))
393*3d8817e4Smiod	 )
394*3d8817e4Smiod (("neg") (2 bytes) ("neg")))
395*3d8817e4Smiod
396*3d8817e4Smiod("dpp" 0x46
397*3d8817e4Smiod (("start/end") (1 bit) ("end"))
398*3d8817e4Smiod (("spare") (7 bits) ("spare"))
399*3d8817e4Smiod (cond "!ptr->end"
400*3d8817e4Smiod       (("params") (1 byte) ("params"))
401*3d8817e4Smiod       (("neg number") (2 bytes) ("neg"))))
402*3d8817e4Smiod
403*3d8817e4Smiod("den" 0x4a
404*3d8817e4Smiod (("start/end") (1 bit) ("end"))
405*3d8817e4Smiod (("spare") (7 bits) ("spare"))
406*3d8817e4Smiod (cond "!ptr->end"
407*3d8817e4Smiod       (("neg number") (2 bytes) ("neg"))))
408*3d8817e4Smiod
409*3d8817e4Smiod("dfp" 0x48
410*3d8817e4Smiod (("start/end flag") (1 bit) ("end"))
411*3d8817e4Smiod (("spare") (7 bits) ("spare"))
412*3d8817e4Smiod (cond "!ptr->end"
413*3d8817e4Smiod       (("number of parameters") (1 byte) ("nparams"))
414*3d8817e4Smiod       (("neg number") (2 bytes) ("neg"))))
415*3d8817e4Smiod
416*3d8817e4Smiod("dds" 0x4c
417*3d8817e4Smiod (("start/end") (1 bit) ("end"))
418*3d8817e4Smiod (("spare") (7 bits) ("spare"))
419*3d8817e4Smiod (cond "!ptr->end"
420*3d8817e4Smiod       (("neg number") (2 bytes) ("neg"))))
421*3d8817e4Smiod
422*3d8817e4Smiod("dpt" 0x50
423*3d8817e4Smiod (("neg number") (2 bytes) ("neg"))
424*3d8817e4Smiod (("dunno") (1 byte) ("dunno")))
425*3d8817e4Smiod
426*3d8817e4Smiod("dse" 0x54
427*3d8817e4Smiod (("neg number") (2 bytes) ("neg"))
428*3d8817e4Smiod (("dunno") (1 byte) ("dunno")))
429*3d8817e4Smiod
430*3d8817e4Smiod("dot" 0x56
431*3d8817e4Smiod (("unknown") (1 byte) ("unknown")))
432*3d8817e4Smiod; FIXME: unknown field should be repeated symbol number?
433*3d8817e4Smiod
434*3d8817e4Smiod
435*3d8817e4Smiod("dss" 0x42
436*3d8817e4Smiod (("type") (1 byte) ("type"))
437*3d8817e4Smiod (("external/internal") (1 bit) ("internal"))
438*3d8817e4Smiod (("spare") (7 bits) ("spare"))
439*3d8817e4Smiod (cond "!ptr->internal"
440*3d8817e4Smiod       (  ("package name") (chars variable byte) ("package")))
441*3d8817e4Smiod (cond "ptr->internal"
442*3d8817e4Smiod       (("symbol id") (2 bytes) ("id")))
443*3d8817e4Smiod (("record type") (2 bytes) ("record"))
444*3d8817e4Smiod (("rules") (chars variable byte) ("rules"))
445*3d8817e4Smiod (("number of symbols") (2 bytes) ("nsymbols"))
446*3d8817e4Smiod (("unknown" ) (2 bytes) ("fixme")))
447*3d8817e4Smiod
448*3d8817e4Smiod("pss" 0x40
449*3d8817e4Smiod (("negotiation number") (2 bytes) ("efn"))
450*3d8817e4Smiod (("number of source files") (2 bytes) ("ns"))
451*3d8817e4Smiod (repeat "ptr->ns"
452*3d8817e4Smiod	 (("directory reference bit") (1 bit) ("drb"))
453*3d8817e4Smiod	 (("spare") (7 bits) ("spare"))
454*3d8817e4Smiod	 (("completed file name") (chars variable byte) ("fname"))
455*3d8817e4Smiod	 (cond "ptr->drb[n]"
456*3d8817e4Smiod	       (("directory apperance number") (2 bytes) ("dan"))))
457*3d8817e4Smiod
458*3d8817e4Smiod (("number of directories") (2 bytes) ("ndir"))
459*3d8817e4Smiod (repeat "ptr->ndir"
460*3d8817e4Smiod	 (("directory name") (chars variable bytes) ("dname"))))
461*3d8817e4Smiod
462*3d8817e4Smiod
463*3d8817e4Smiod; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared
464*3d8817e4Smiod; to deal with that.
465*3d8817e4Smiod; ("tr" 0x7f)
466*3d8817e4Smiod
467*3d8817e4Smiod
468*3d8817e4Smiod("dus" 0x40
469*3d8817e4Smiod (("negotiation number") (2 bytes) ("efn"))
470*3d8817e4Smiod (("number of source files") (2 bytes) ("ns"))
471*3d8817e4Smiod (repeat "ptr->ns"
472*3d8817e4Smiod	 (("directory reference bit") (1 bit) ("drb"))
473*3d8817e4Smiod	 (("spare") (7 bits) ("spare"))
474*3d8817e4Smiod	 (("completed file name") (chars variable byte) ("fname"))
475*3d8817e4Smiod	 (cond "ptr->drb[n]"
476*3d8817e4Smiod	       (("directory apperance number") (2 bytes) ("dan"))))
477*3d8817e4Smiod (("number of directories") (2 bytes) ("ndir"))
478*3d8817e4Smiod (repeat "ptr->ndir"
479*3d8817e4Smiod	 (("directory name") (chars variable bytes) ("dname"))))
480*3d8817e4Smiod
481*3d8817e4Smiod
482*3d8817e4Smiod("dps" 0x32
483*3d8817e4Smiod (("start/end flag") (1 bit) ("end"))
484*3d8817e4Smiod (("block type") (7 bits) ("type")
485*3d8817e4Smiod  (("BLOCK_TYPE_COMPUNIT" "0")
486*3d8817e4Smiod   ("BLOCK_TYPE_PROCEDURE" "2")
487*3d8817e4Smiod   ("BLOCK_TYPE_FUNCTION" "3")
488*3d8817e4Smiod   ("BLOCK_TYPE_BLOCK" "4")
489*3d8817e4Smiod   ("BLOCK_TYPE_BASIC" "9")))
490*3d8817e4Smiod (cond "!ptr->end"
491*3d8817e4Smiod       (("optimization") (1 byte) ("opt"))
492*3d8817e4Smiod       (("section number") (2 bytes) ("san"))
493*3d8817e4Smiod       (("address") (addrsize bytes) ("address"))
494*3d8817e4Smiod       (("block size") (addrsize bytes) ("block_size"))
495*3d8817e4Smiod       (("nesting") (1 byte) ("nesting"))
496*3d8817e4Smiod       (cond "ptr->type == BLOCK_TYPE_PROCEDURE
497*3d8817e4Smiod	    || ptr->type == BLOCK_TYPE_FUNCTION"
498*3d8817e4Smiod	     (("return address") (1 bit) ("retaddr"))
499*3d8817e4Smiod	     (("interrupt function flag") (1 bit) ("intrflag"))
500*3d8817e4Smiod	     (("stack update flag") (1 bit) ("stackflag"))
501*3d8817e4Smiod	     (("intra page JMP") (1 bit) ("intrpagejmp"))
502*3d8817e4Smiod	     (("spare") (4 bits) ("spare")))
503*3d8817e4Smiod       (("neg number") (2 bytes) ("neg"))))
504*3d8817e4Smiod
505