disassem.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. ***************************************************************************
  3. dcc project disassembler header
  4. (C) Mike van Emmerik
  5. ***************************************************************************
  6. */
  7. #pragma once
  8. #include "bundle.h"
  9. #include <fstream>
  10. #include <vector>
  11. #include <QString>
  12. #include <QTextStream>
  13. struct LLInst;
  14. struct Function;
  15. struct Disassembler
  16. {
  17. protected:
  18. int pass;
  19. int g_lab;
  20. //bundle &cCode;
  21. QIODevice *m_disassembly_target;
  22. QTextStream m_fp;
  23. std::vector<std::string> m_decls;
  24. std::vector<std::string> m_code;
  25. public:
  26. Disassembler(int _p) : pass(_p)
  27. {
  28. g_lab=0;
  29. }
  30. public:
  31. void disassem(Function *ppProc);
  32. void disassem(Function *ppProc, int i);
  33. void dis1Line(LLInst &inst, int loc_ip, int pass);
  34. };
  35. /* Definitions for extended keys (first key is zero) */
  36. #define EXT 0x100 /* "Extended" flag */
  37. #ifdef __UNIX__
  38. #define KEY_DOWN EXT+'B'
  39. #define KEY_LEFT EXT+'D'
  40. #define KEY_UP EXT+'A'
  41. #define KEY_RIGHT EXT+'C'
  42. #define KEY_NPAGE EXT+'J' /* Enter correct value! */
  43. #define KEY_PPAGE EXT+'K' /* Another guess! */
  44. #endif
  45. /* "Attributes" */
  46. #define A_NORMAL 'N' /* For Dos/Unix */
  47. #define A_REVERSE 'I'
  48. #define A_BOLD 'B'
  49. #define LINES 24
  50. #define COLS 80