mmvm.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef _MMVM_H
  2. #define _MMVM_H
  3. #include "wwstruct.h"
  4. extern "C" {
  5. #include "../cpu/mytypes.h"
  6. #include "../cpu/global.h"
  7. #include "../cpu/cpu.h"
  8. }
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #define MEMORYSIZE (1 * 1024 * 1024)
  13. #define ELISA_FONTFILE TEXT("elisa100.fnt")
  14. #define SRAMWORK_SEG 0x1000
  15. #define APP_CSEG 0x3000
  16. #define FIRST_DSEG 0x1000
  17. #define FINAL_DSEG 0x2000
  18. #define STACK_SEG 0xF000
  19. #define DIRENT_NUM 4
  20. #define DIRENT_ROOT 0
  21. #define DIRENT_KERN 1
  22. #define DIRENT_ROM0 2
  23. #define DIRENT_RAM0 3
  24. typedef struct {
  25. char className[32];
  26. char name[32];
  27. char version[32];
  28. char description[32];
  29. char **depends;
  30. } MMVM_ILInfo, *LPMMVM_ILInfo;
  31. typedef struct {
  32. WW_FARPTR il;
  33. MMVM_ILInfo ilinfo;
  34. WW_FARPTR proc;
  35. MMVM_ILInfo procinfo;
  36. WW_FARPTR fs;
  37. MMVM_ILInfo fsinfo;
  38. } MMVM_IL, *LPMMVM_IL;
  39. typedef struct {
  40. WW_FENT_T fent;
  41. TCHAR commandline[MAX_WW_ARG];
  42. BOOL loadended;
  43. BOOL maincalled;
  44. } MMVM_APPINFO, *LPMMVM_APPINFO;
  45. typedef struct {
  46. LPBYTE memory;
  47. LPMMVM_IL il;
  48. WW_FARPTR cwfs;
  49. LPWW_SRAMWork swork;
  50. LPMMVM_APPINFO appinfo;
  51. int lcdseg;
  52. } MMVM, *LPMMVM;
  53. extern LPMMVM mmvm;
  54. BOOL CreateVM();
  55. void InitVM();
  56. void UpdateVM();
  57. void OpenDlgAndRun();
  58. void OpenAndRun(LPCTSTR filename, LPCTSTR cmdline);
  59. void LoadAndRun();
  60. BOOL LoadFXFile(LPCTSTR filename, WORD addr, WW_FENT_T *fentp);
  61. void RunWWApp();
  62. void Restart();
  63. void StopExecution(DWORD wait);
  64. LPBYTE GetArgAddr(int pos);
  65. void ILReturn();
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif // #ifndef _MMVM_H