0004-add-missed-sysroff-file.patch 16 KB

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