tpr.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*Structure definitions from tprbuilder source; slightly modified
  2. to work under C++
  3. */
  4. typedef unsigned char Boolean;
  5. /* global enumerations */
  6. enum SectionType_ { SECTION_NONE, SECTION_SETTINGS, SECTION_LIBOPTS,
  7. SECTION_FILEEDIT, SECTION_FILES };
  8. typedef enum SectionType_ SectionType;
  9. /* definitions */
  10. typedef struct tprsettings tprSettings;
  11. struct tprsettings
  12. {
  13. Boolean archive; // we want to build an archive
  14. Boolean quill; // we want to build a Quill project
  15. Boolean pack; // we want to pack the executable
  16. Boolean bsr_patch; // use BSR patches
  17. Boolean debug_info; // pass -g option to tigcc
  18. Boolean std_lib; // link against tigcc.a
  19. Boolean use_data_var;
  20. Boolean copy_data_var;
  21. Boolean copy_data_var_arc;
  22. Boolean optimize_nops;
  23. Boolean optimize_returns;
  24. Boolean optimize_branches;
  25. Boolean optimize_moves;
  26. Boolean optimize_tests;
  27. Boolean optimize_calcs;
  28. Boolean remove_unused;
  29. Boolean outputbin;
  30. Boolean fargo;
  31. Boolean flash_os;
  32. Boolean cut_ranges;
  33. Boolean reorder_sections;
  34. Boolean merge_constants;
  35. Boolean initialize_bss;
  36. QString pack_name;
  37. QString prj_name;
  38. QString cc_switches;
  39. QString as_switches;
  40. QString a68k_switches;
  41. QString cmd_line;
  42. QString post_build;
  43. QString data_var;
  44. };
  45. enum tprreloctypes {
  46. RT_NONE, // AMS (relocs) / Direct (ROM_CALLs) / None (BSS), not for DataVar
  47. RT_PRECOMP, // ROM_CALLs only: Precomputed (Optimized)
  48. RT_KERNEL, // Kernel
  49. RT_COMPRESSED, // Compressed
  50. RT_FLINE // ROM_CALLs only: F-Line
  51. };
  52. typedef enum tprreloctypes tprRelocType;
  53. typedef struct tprlibopts tprLibOpts;
  54. struct tprlibopts
  55. {
  56. Boolean use_ti89;
  57. Boolean use_ti92p;
  58. Boolean use_v200;
  59. Boolean opt_calc_consts;
  60. Boolean use_kernel;
  61. Boolean use_preos;
  62. Boolean use_minams;
  63. Boolean unofficial_os;
  64. Boolean use_fline_jumps;
  65. Boolean use_4b_fline_jumps;
  66. Boolean use_internal_fline_emu;
  67. Boolean use_return_value;
  68. Boolean enable_error_return;
  69. Boolean save_screen;
  70. Boolean opt_rom_calls;
  71. int minams;
  72. tprRelocType reloc_format;
  73. tprRelocType rom_call_format;
  74. tprRelocType bss_ref_format;
  75. tprRelocType data_ref_format;
  76. };
  77. typedef struct
  78. {
  79. tprSettings settings;
  80. tprLibOpts libopts;
  81. QStringList h_files;
  82. QStringList c_files;
  83. QStringList s_files;
  84. QStringList asm_files;
  85. QStringList o_files;
  86. QStringList a_files;
  87. QStringList txt_files;
  88. QStringList oth_files;
  89. } TPRDataStruct;
  90. #define loadTPR(fileName) (loadTPRIndirect(fileName,&TPRData))
  91. extern TPRDataStruct TPRData;
  92. short loadTPRIndirect(QString &fileName,TPRDataStruct *dest);
  93. QString loadFileText(const char *fileName);