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