memmap0s.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:15k
源码类别:

DVD

开发平台:

C/C++

  1. //====================================================================================
  2. // memmap0s.h
  3. // 8200 16Mb memory mapping
  4. // Creator  : Potatooo
  5. // Maintain : Jeff (720) / Terry (8200)
  6. // -----------------------------------------------------------------------------------
  7. // Revision History   
  8. //          2003.02.12   re-order all memory addr. for 
  9. //                       a.easy to chk in stack overflow
  10. //                       b.let a little difference between 16MBits and 32MBits 
  11. //          2003.02.17   correct nes game/cd+g/servo buffer
  12. //          2003.03.05   a.add de-interlace and slow backward
  13. //                       b.move memory map to memmap0b.txt
  14. //====================================================================================
  15. #include "set.h"
  16. //====================================================================================
  17. // Decode mode memory config
  18. //====================================================================================
  19. #define P_VIDEO_COMPRESS        (RF_COMPRESS_888 
  20.                                 |RF_COMPRESS_DITHER_OFF 
  21.                                 |RF_COMPRESS_CHROMA_FULL)
  22. #define GN_VIDEO_COMPRESS       (P_VIDEO_COMPRESS)
  23. #define GP_VIDEO_COMPRESS       (P_VIDEO_COMPRESS)
  24. #define GS_VIDEO_COMPRESS       (P_VIDEO_COMPRESS)
  25. //====================================================================================
  26. // task stack Allocation 
  27. //====================================================================================
  28. #define A_MAIN_TASK_TOP         (1) //1.3
  29. #define MAIN_TASK_SIZE          (1) //1.7 , terry,2004/7/26 02:52PM
  30. #define A_MAIN_TASK_BOM         3
  31. #define DBG_STACK_SIZE          2
  32. #define A_DBG_TASK_BOM          2048            // put it at 2046~2047k range
  33. #define A_DBG_TASK_TOP          (A_DBG_TASK_BOM-DBG_STACK_SIZE)
  34. //====================================================================================
  35. // Memory Allocation Start
  36. //====================================================================================
  37. #define MEM_START 0
  38. #define SDRAM_CS_ST 7 // (A_CDYA + CDSIZE)
  39. //----------------------
  40. //first segment
  41. //----------------------
  42. #define A_IOPYA                 (MEM_START + 0)                         // 0
  43. #define IOP_SIZE                2
  44. #define A_CDYA                  (A_IOPYA + IOP_SIZE + MAIN_TASK_SIZE)   // 3
  45. #define CDSIZE                  4
  46. #define SDRAM_CS_SZ             25
  47. /* sizes */
  48. #ifdef SUPPORT_OSDSRT
  49.     #ifdef NEW_DISPLAY_GOTO_OSD
  50.         #define OSDSIZE             (3+20)
  51.     #else
  52.         #define OSDSIZE             (6+20)
  53.     #endif
  54. #else
  55.     #ifdef NEW_DISPLAY_GOTO_OSD
  56.         #define OSDSIZE             3
  57.     #else
  58.         #define OSDSIZE             6
  59.     #endif
  60. #endif
  61. // 2004/07/16 yltseng
  62. #ifdef USE_NAV_BUF_16M_DECREASE_SUBPICTURE
  63.     #define SUPSIZE             30
  64. #else
  65.     #define SUPSIZE             52
  66. #endif
  67. #define SERVO_SIZE              20
  68. #define JPEG_SERVO_SIZE         127
  69. #define DVDV_SERVO_SIZE         127
  70. #define DSP_SIZE                64      // 2004/11/18 yltseng
  71. #ifndef MEMCFG_MOVE_OSDSUP
  72. /* TYPE0: OSD/SUP at top */
  73. #define A_OSDYA                 (SDRAM_CS_ST + SDRAM_CS_SZ)             // 32
  74. #define A_DSP24YA               (A_OSDYA+OSDSIZE)                       // 38
  75. #define A_SUPYA                 (A_DSP24YA+DSP_SIZE)                       // 102
  76. #define A_SERVO_YA              (A_SUPYA+SUPSIZE)                       // 154
  77. #define A_DVD_SERVO_YA          A_SERVO_YA                             
  78. #define A_JPEG_SERVO_YA         A_DVD_SERVO_YA
  79. #define END_SEG1                (A_DVD_SERVO_YA+DVDV_SERVO_SIZE)        // 281
  80. #else
  81. /* TYPE1: OSD/SUP dynamically */
  82.     #ifdef MOVE_PAL_AUDYA
  83. #define A_SERVO_YA              (SDRAM_CS_ST + SDRAM_CS_SZ)
  84. #define A_DSP24YA               (A_SERVO_YA + DVDV_SERVO_SIZE)             // 32
  85.     #else
  86. #define A_DSP24YA               (SDRAM_CS_ST + SDRAM_CS_SZ)             // 32
  87. #define A_SERVO_YA              (A_DSP24YA+DSP_SIZE)                    // 105
  88.     #endif
  89. #define A_DVD_SERVO_YA          (A_SERVO_YA)
  90. #define A_JPEG_SERVO_YA         (A_DVD_SERVO_YA)
  91.     #ifdef MOVE_PAL_AUDYA
  92. #define END_SEG1                (A_DSP24YA+DSP_SIZE)
  93.     #else
  94. #define END_SEG1                (A_DVD_SERVO_YA+DVDV_SERVO_SIZE)        // 232
  95.     #endif
  96. #endif
  97. #define VFBMA                   END_SEG1                                // 232 or 281
  98. //--------------------------
  99. // second segment (DVD/VCD/CD)
  100. //--------------------------
  101. //PAL D1 (576-line)
  102. #define LUMA_SIZE               405             // PAL D1 luma size 
  103. #define CHROMA_SIZE             203             // PAL D1 chroma size 
  104. #define EVBSZ                   235
  105. #define P_LUMA_SIZE             LUMA_SIZE       // PAL D1 luma size 
  106. #define P_CHROMA_SIZE           CHROMA_SIZE     // PAL D1 chroma size 
  107. #define N_LUMA_SIZE             338             // NTSC D1 luma size 
  108. #define N_CHROMA_SIZE           169             // NTSC D1 chroma size 
  109. #define B_LUMA_SIZE             248             // PAL D1 B666 luma size 22MB 
  110. #define B_CHROMA_SIZE           203             // PAL D1 B666 chroma size full-map 
  111. #define M_LUMA_SIZE             270             // PAL 2/3D1 luma size 
  112. #define M_CHROMA_SIZE           135             // PAL 2/3D1 chroma size 
  113. #define P_REF0_LUMA             (A_DVD_SERVO_YA+DVDV_SERVO_SIZE)                        // 281      232
  114. #define P_REF0_LUMA_END         (P_REF0_LUMA + LUMA_SIZE - 1)
  115. #define P_REF0_CHROMA           (P_REF0_LUMA_END + 1)
  116. #define P_REF0_CHROMA_END       (P_REF0_CHROMA + CHROMA_SIZE - 1)
  117. #define P_REF1_LUMA             (P_REF0_CHROMA_END + 1)
  118. #define P_REF1_LUMA_END         (P_REF1_LUMA + LUMA_SIZE - 1)
  119. #define P_REF1_CHROMA           (P_REF1_LUMA_END + 1)
  120. #define P_REF1_CHROMA_END       (P_REF1_CHROMA + CHROMA_SIZE - 1)
  121. #define P_BIDIR_LUMA            (P_REF1_CHROMA_END + 1)
  122. #ifdef  MB22
  123. #define P_BIDIR_LUMA_END        (P_BIDIR_LUMA + B_LUMA_SIZE - 1)        // MB22 
  124. #else
  125. #define P_BIDIR_LUMA_END        (P_BIDIR_LUMA + LUMA_SIZE - 1)          // full-map
  126. #endif
  127. #define P_BIDIR_CHROMA          (P_BIDIR_LUMA_END + 1)
  128. #define P_BIDIR_CHROMA_END      (P_BIDIR_CHROMA + CHROMA_SIZE - 1)
  129. #ifdef MOVE_PAL_AUDYA   
  130.     #define P_EVBYA             (A_DBG_TASK_BOM)
  131. #else    
  132.     #define P_EVBYA             (P_BIDIR_CHROMA + CHROMA_SIZE + 1)      // 2057 (+1 for debug task )
  133. #endif
  134. #define P_EVBSZ                 EVBSZ
  135. #define P_SUPYA                 (P_EVBYA+P_EVBSZ)
  136. #define P_OSDYA                 (P_SUPYA+SUPSIZE)
  137. #ifdef MOVE_PAL_AUDYA           // 2004/11/18 yltseng
  138.     #define P_DSP24YA           (P_OSDYA+OSDSIZE)
  139. #endif    
  140. // N: NTSC D1 (no preview mode)
  141. #define N_REF0_LUMA             VFBMA // 281      232
  142. #define N_REF0_LUMA_END         (N_REF0_LUMA + N_LUMA_SIZE - 1)
  143. #define N_REF0_CHROMA           (N_REF0_LUMA_END + 1)
  144. #define N_REF0_CHROMA_END       (N_REF0_CHROMA + N_CHROMA_SIZE - 1)
  145. #define N_REF1_LUMA             (N_REF0_CHROMA_END + 1)
  146. #define N_REF1_LUMA_END         (N_REF1_LUMA + N_LUMA_SIZE - 1)
  147. #define N_REF1_CHROMA           (N_REF1_LUMA_END + 1)
  148. #define N_REF1_CHROMA_END       (N_REF1_CHROMA + N_CHROMA_SIZE - 1)
  149. #define N_BIDIR_LUMA            (N_REF1_CHROMA_END + 1)
  150. #define N_BIDIR_LUMA_END        (N_BIDIR_LUMA + N_LUMA_SIZE - 1)
  151. #define N_BIDIR_CHROMA          (N_BIDIR_LUMA_END + 1)
  152. #define N_BIDIR_CHROMA_END      (N_BIDIR_CHROMA + N_CHROMA_SIZE - 1)
  153. #define N_EVBYA                 (N_BIDIR_CHROMA_END + 1)
  154. #define N_EVBSZ                 EVBSZ
  155. #define N_END_SEG2              (N_EVBYA + N_EVBSZ)                     // 1802     1753
  156. // M: PAL 2/3 D1 (with preview mode)
  157. #define M_REF0_LUMA             (VFBMA + 0) // 281      232
  158. #define M_REF0_LUMA_END         (M_REF0_LUMA + M_LUMA_SIZE - 1)
  159. #define M_REF0_CHROMA           (M_REF0_LUMA_END + 1)
  160. #define M_REF0_CHROMA_END       (M_REF0_CHROMA + M_CHROMA_SIZE - 1)
  161. #define M_REF1_LUMA             (M_REF0_CHROMA_END + 1)
  162. #define M_REF1_LUMA_END         (M_REF1_LUMA + M_LUMA_SIZE - 1)
  163. #define M_REF1_CHROMA           (M_REF1_LUMA_END + 1)
  164. #define M_REF1_CHROMA_END       (M_REF1_CHROMA + M_CHROMA_SIZE - 1)
  165. #define M_BIDIR_LUMA            (M_REF1_CHROMA_END + 1)
  166. #define M_BIDIR_LUMA_END        (M_BIDIR_LUMA + LUMA_SIZE - 1)
  167. #define M_BIDIR_CHROMA          (M_BIDIR_LUMA_END + 1)
  168. #define M_BIDIR_CHROMA_END      (M_BIDIR_CHROMA + CHROMA_SIZE - 1)
  169. #define M_EVBYA                 (M_BIDIR_CHROMA_END + 1)
  170. #define M_EVBSZ                 EVBSZ
  171. #define M_END_SEG2              (M_EVBYA + M_EVBSZ)
  172. #define MN_SUPYA                (N_EVBYA+EVBSZ)
  173. //second segment (JPEG)
  174. //using pal: 720x576 ,block mode
  175. #define GP_LUMA_SIZE            414
  176. #define GP_CHROMA_SIZE          207
  177. #define GP_REF0_LUMA            (VFBMA + 0)
  178. #define GP_REF0_CHROMA         (GP_REF0_LUMA + GP_LUMA_SIZE) 
  179. #define GP_REF1_LUMA         (GP_REF0_CHROMA + GP_CHROMA_SIZE)   
  180. #define GP_REF1_CHROMA          (GP_REF1_LUMA + GP_LUMA_SIZE) 
  181. #define GP_END                  (GP_REF1_CHROMA + GP_CHROMA_SIZE + 80) //add 80k from JPEG_CDBUF_SIZE for supporting progressive jpeg
  182. #define GN_REF0_LUMA            (GP_REF0_LUMA)
  183. #define GN_REF1_LUMA            (GP_REF1_LUMA)
  184. #define GN_REF0_CHROMA          (GP_REF0_CHROMA)
  185. #define GN_REF1_CHROMA          (GP_REF1_CHROMA)
  186. #define GN_END                  (GP_END)
  187. //#define P_JPEG_PS             (GP_END)
  188. //#define JPEG_PS_SIZE          (814+200+42)
  189. #define P_JPEG_PS               (GP_REF1_LUMA)
  190. #define JPEG_PS_SIZE            (700)//(A_AUDYA + AUDSIZE - GP_REF1_LUMA) //(414+207+814+200+42)
  191. //third segment (MP3 GUI)
  192. //small: 352x288,block mode
  193. #define GS_LUMA_SIZE            99
  194. #define GS_CHROMA_SIZE          50
  195. #define GS_REF0_LUMA            (VFBMA + 0)
  196. #define GS_REF1_LUMA         (GS_REF0_LUMA)
  197. #define GS_REF0_CHROMA         (GS_REF0_LUMA + GS_LUMA_SIZE)
  198. #define GS_REF1_CHROMA          (GS_REF1_LUMA + GS_LUMA_SIZE)
  199. #define GS_END             (GS_REF1_CHROMA + GS_CHROMA_SIZE)
  200. #define A_UDF_WORK_BUF          (GS_END)
  201. #define UDF_WORK_BUF_SIZE       (80)
  202. #define MOVE_WMA_DSP_CODEC_ADDR // 2004/11/18 yltseng
  203. //wma decoder,address
  204. #define DSP_WMA_SIZE            130
  205. #define A_DSP24_WMA_YA          (A_UDF_WORK_BUF+UDF_WORK_BUF_SIZE)      
  206. #ifdef MEMCFG_MOVE_OSDSUP
  207.     #define A_MP3ID3YA          (A_DSP24_WMA_YA+DSP_WMA_SIZE)
  208. #endif
  209. //-------------------------------------
  210. //4th segment
  211. //-------------------------------------
  212. #define DRV1N2_ST               (A_DSP24YA)//(A_PCMYA)  // 2004/11/18 yltseng
  213. #define DRV1_2_CODESIZE         (36)
  214. #define AP2N3_ST                (0)             //NONO 2004-4-10 23:22
  215. #define AP3_CODESIZE            (0)
  216. #define AP2_CODESIZE            (0)
  217. #define AP1_ST                  (0)                 //2598//NONO 2004-4-10 23:22
  218. #define AP_CODESIZE             (0)
  219. #define DVD_NAV_CODE            (2048)
  220. #define DVD_CODE_SIZE           (0)
  221. #define JPEG_CODE_SIZE          (8)
  222. #ifndef MEMCFG_MOVE_OSDSUP                              // 2004/11/18 yltseng
  223.     #define JPEG_CODE_YA        (A_SUPYA)
  224. #else
  225.     #define JPEG_CODE_YA        (DRV1N2_ST+DRV1_2_CODESIZE)
  226. #endif
  227. //-------------------------------------
  228. //5th segment for De-Interlace buffer
  229. //-------------------------------------
  230. // MP4 video buffer size
  231. #ifdef SUPPORT_MP4_SUBTITLE
  232.     #define A_AVIEVBSZ          (140)
  233. #else
  234.     #define A_AVIEVBSZ          (200)
  235. #endif
  236. // MP4 code
  237. #define A_MP4_CODE_YA           (N_EVBYA+A_AVIEVBSZ)
  238. #define MP4_CODE_SIZE           (0)
  239. // MVC buffer
  240. #define MVC_BUF_YA              (A_MP4_CODE_YA+MP4_CODE_SIZE)
  241. #define MVC_BUF_SIZE            (30)
  242. #define A_FILE_BUF_YA            (MVC_BUF_YA+MVC_BUF_SIZE)
  243. #ifdef SUPPORT_MP4_SUBTITLE
  244.     #define A_FILE_BUF_SIZE      (97)
  245. #else
  246.     #define A_FILE_BUF_SIZE      (57)
  247. #endif
  248. // FS buffer
  249. #ifdef SUPPORT_FILE_SYSTEM_MODE
  250.     #define FS9660_SIZE         (9)
  251.     #define P_FS9660YA          (P_SUPYA+SUPSIZE-FS9660_SIZE)
  252.     #ifdef SUPPORT_MP4
  253.         #define N_FS9660YA      (A_FILE_BUF_YA+A_FILE_BUF_SIZE)
  254.     #else
  255.         #define N_FS9660YA      (MN_SUPYA+SUPSIZE-FS9660_SIZE)
  256.     #endif
  257. #else
  258.     #define FS9660YA            (GP_END+1)
  259.     #define FS9660_SIZE         (114)
  260. #endif
  261. // OSD
  262. #if defined( SUPPORT_FILE_SYSTEM_MODE ) && defined( SUPPORT_MP4 )
  263.     #define MN_OSDYA            ( N_FS9660YA + FS9660_SIZE )
  264. #else
  265.     #define MN_OSDYA            ( MN_SUPYA + SUPSIZE )
  266. #endif
  267. #ifdef SUPPORT_FILE_SYSTEM_MODE
  268. #define CDROM_CODE_YA           (GP_END)
  269. #else
  270. #define CDROM_CODE_YA (FS9660YA+FS9660_SIZE)
  271. #endif
  272. #define CDROM_CODE_SIZE         (60)
  273. #define SSAVER_YA               (CDROM_CODE_YA+CDROM_CODE_SIZE)
  274. #define SSAVER_PIC_SIZE         (31)
  275. #define TEMPYA             (SSAVER_YA)
  276. #define JPEG_YA                 (SSAVER_YA+SSAVER_PIC_SIZE)
  277. #define JPEG_CDBUF_SIZE         (300-80) //reduce 80k for progressive jpeg
  278. // 2004/07/16 yltseng
  279. #ifdef USE_NAV_BUF_16M_DECREASE_SUBPICTURE
  280.     #define N_NAVYA             (MN_OSDYA+OSDSIZE)
  281.     #define P_NAVYA             (P_OSDYA+OSDSIZE)
  282.     #ifdef DVDRELEASE
  283.         #define MAX_BUF_SIZE    (2048-N_NAVYA)
  284.     #else
  285.         #define MAX_BUF_SIZE    (2047-N_NAVYA)
  286.     #endif
  287. #else
  288.     #ifdef SUPPORT_FILE_SYSTEM_MODE
  289.         #define N_NAVYA         (MN_SUPYA)
  290.         #define P_NAVYA         (P_SUPYA)
  291.         #define MAX_BUF_SIZE    (30)
  292.     #else
  293.         #define N_NAVYA         (JPEG_YA+JPEG_CDBUF_SIZE+10)
  294.         #define P_NAVYA         (P_SUPYA)
  295.         #define MAX_BUF_SIZE    (40)
  296.     #endif
  297. #endif
  298. //free code size
  299. #define FREE_CODE_YA            (N_NAVYA+MAX_BUF_SIZE)
  300. #define FREE_CODESIZE (0)
  301. #define WMA_CODE_SIZE           (10)
  302. #define A_WMA_CODE_YA           (GP_END-WMA_CODE_SIZE)
  303. #define SUPSIZE2                (0)
  304. #define A_SUPYA2                (A_DVD_SERVO_YA + DVDV_SERVO_SIZE)
  305. #define A_DEINTLACE_YA          (A_SUPYA2 + SUPSIZE2)
  306. #define DEINTLACE_BUF_SIZE      (627)
  307. /*#define ASVU_BUF1               (P_REF1_LUMA)
  308. #define ASVU_BUF1_SIZE          (1216)
  309. #define ASVU_BUF2               (A_DVD_SERVO_YA + DVDA_SERVO_SIZE)
  310. #define ASVU_BUF2_SIZE          (858)
  311. #define COMP_OSD_FONT           1000000000000000000000
  312. #define OSD_FONT_SIZE           (42)
  313. #define OSD0_TEMP_YA             1000000000000*/
  314. //third segment (Game , RGB color index)
  315. //small: 256*240 ,linear mode
  316. #define GG_REF0_FRAME           (VFBMA + 0)
  317. #define GG_REF1_FRAME           (VFBMA + 70)
  318. #define GG_REF1_FRAME_END       (GG_REF1_FRAME + 70)
  319. #define GAME_OSD_FRAME_START    (GG_REF0_FRAME)
  320. #define GAME_PARAMETER_START    (GG_REF1_FRAME_END)
  321. #define GAME_PARAMETER_SIZE     (1)
  322. #define MAX_GAME_BUF            (100)         //driver size
  323. #define GAMEYA                  (GAME_PARAMETER_START + GAME_PARAMETER_SIZE + 100) //100K for work space
  324. #define GAME_STACK  (GAME_PARAMETER_START + GAME_PARAMETER_SIZE + 200) //100K for driver
  325. #define GAME_STACK_SIZE (9)
  326. #define GAME_FILE_START         (GAME_STACK + GAME_STACK_SIZE)     //NES game file buffer
  327. #define MAX_GAME_FILE_SIZE      (1024)  //max NES game file content size(1M Bytes)
  328. #define GAME_CALL_ENTRY         (SDRAM_BASE + GAMEYA * 1024)
  329. #define OSD_BASE_USE_ADDR P_BIDIR_CHROMA//P_BIDIR_LUMA
  330. #ifdef SUPPORT_CD_TEXT
  331.     #define CD_TEXT_YA          N_BIDIR_CHROMA
  332.     #define CD_TEXT_SIZE        N_CHROMA_SIZE
  333. #endif