Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. ; Structures describing fasm symbol files.
  2. define FAS_SIGNATURE 1A736166h
  3. virtual at 0
  4. fas_header:
  5. .signature      dd      ?       ; Signature 1A736166h.
  6. .major          db      ?       ; Major version of flat assembler.
  7. .minor          db      ?       ; Minor version of flat assembler.
  8. .headersize     dw      ?       ; Length of header.
  9. .input          dd      ?       ; Offset of input file name in the strings table.
  10. .output         dd      ?       ; Offset of output file name in the strings table.
  11. .strings_offs   dd      ?       ; Offset of strings table.
  12. .strings_size   dd      ?       ; Length of strings table.
  13. .symbols_offs   dd      ?       ; Offset of symbols table.
  14. .symbols_size   dd      ?       ; Length of symbols table.
  15. .preproc_offs   dd      ?       ; Offset of preprocessed source.
  16. .preproc_size   dd      ?       ; Length of preprocessed source.
  17. .asm_offs       dd      ?       ; Offset of assembly dump.
  18. .asm_size       dd      ?       ; Length of assembly dump.
  19. .section_offs   dd      ?       ; Offset of section names table.
  20. .section_size   dd      ?       ; Length of section names table.
  21. .symref_offs    dd      ?       ; Offset of symbol references dump.
  22. .symref_size    dd      ?       ; Length of symbol references dump.
  23. .size:
  24. end virtual
  25.  
  26. virtual at 0
  27. preproc_line_header:
  28. ; When the line was loaded from source, this field contains
  29. ; either zero (if it is the line from the main input file), or
  30. ; an offset inside the preprocessed source to the name of file,
  31. ; from which this line was loaded (the name of file is zero-ended
  32. ; string).
  33. ; When the line was generated by macroinstruction, this field
  34. ; contains offset inside the preprocessed source to the
  35. ; pascal-style string specifying the name of macroinstruction,
  36. ; which generated this line.
  37. .source_name    dd      ?
  38. ; Bits 0-30 contain the number of this line.
  39. ; If the highest bit is zeroed, this line was loaded from source.
  40. ; If the highest bit is set, this line was generated by
  41. ; macroinstruction.
  42. .line_number    dd      ?
  43. ; If the line was loaded from source, this field contains
  44. ; the position of the line inside the source file, from which it
  45. ; was loaded.
  46. ; If line was generated by macroinstruction, this field contains
  47. ; the offset of preprocessed line, which invoked the
  48. ; macroinstruction. If line was generated by instantaneous macro,
  49. ; this field is equal to the next one.
  50. .line_offset    dd      ?
  51. ; If the line was generated by macroinstruction, this field
  52. ; contains offset of the preprocessed line inside the definition
  53. ; of macro, from which this one was generated.
  54. .line_macro_offs dd     ?
  55. ; The tokenized contents of line.
  56. .contents:
  57. end virtual
  58.  
  59. virtual at 0
  60. asm_row:
  61. .out_offs       dd      ?       ; Offset in output file.
  62. .preproc_offs   dd      ?       ; Offset of line in preprocessed source.
  63. .this           dq      ?       ; Value of $ address.
  64. .extended_sib   dd      ?       ; Extended SIB for the $ address, the first two bytes
  65.                                 ; are register codes and the second two bytes are
  66.                                 ; corresponding scales.
  67. ; If the $ address is relocatable, this field contains
  68. ; information about section or external symbol, to which
  69. ; it is relative - otherwise this field is zero.
  70. ; When the highest bit is cleared, the address is
  71. ; relative to a section, and the bits 0-30 contain
  72. ; the index (starting from 1) in the table of sections.
  73. ; When the highest bit is set, the address is relative
  74. ; to an external symbol, and the bits 0-30 contain the
  75. ; the offset of the name of this symbol in the strings
  76. ; table.
  77. .this_base      dd      ?
  78. .this_type      db      ?       ; Type of $ address value (as in table 2.2).
  79. .code_type      db      ?       ; Type of code - possible values are 16, 32, and 64.
  80. ; If the bit 0 is set, then at this point the assembly
  81. ; was taking place inside the virtual block, and the
  82. ; offset in output file has no meaning here.
  83. ; If the bit 1 is set, the line was assembled at the
  84. ; point, which was not included in the output file for
  85. ; some other reasons (like inside the reserved data at
  86. ; the end of section).
  87. .flags          db      ?
  88. .this_high      db      ?       ; The higher bits of value of $ address.
  89. .sizeof:
  90. end virtual
  91.