Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

509 lines
18 KiB

  1. //***************************************************************************
  2. // Decoder board register header
  3. //
  4. //***************************************************************************
  5. //===========================================================================
  6. // PCI I/F REGISTERS
  7. //===========================================================================
  8. #define PCIF_CNTL 0x00 // PCI I/F control
  9. #define PCIF_INTF 0x04 // Interrupt flags
  10. #define PCIF_MADRLL 0x08 // DMA address low-low
  11. #define PCIF_MADRLH 0x09 // DMA address low-high
  12. #define PCIF_MADRHL 0x0a // DMA address high-low
  13. #define PCIF_MADRHH 0x0b // DMA address high-high
  14. #define PCIF_MTCLL 0x0c // DMA counter low-low
  15. #define PCIF_MTCLH 0x0d // DMA counter low-high
  16. #define PCIF_MTCHL 0x0e // DMA counter high-low
  17. #define PCIF_MTCHH 0x0f // DMA counter high-high
  18. #define PCIF_CPLT 0x10 // Color palette
  19. #define PCIF_CPCNT 0x11 // Color palette control
  20. #define PCIF_VMODE 0x14 // video mode
  21. #define PCIF_HSCNT 0x15 // HSYNC count
  22. #define PCIF_VSCNT 0x16 // VSYNC count
  23. #define PCIF_HSVS 0x17 // HS/VS porarity
  24. #define PCIF_EEPROM 0x20 // EEPROM access
  25. #define PCIF_PSCNT 0x22 // PS coontrol
  26. #define PCIF_TEST 0x23 // test control
  27. #define PCIF_SCNT 0x24 // serial access control
  28. #define PCIF_SW 0x25 // serial write
  29. #define PCIF_SR 0x26 // serial read
  30. #define PCIF_SNOLL 0x28 // board serial # LL
  31. #define PCIF_SNOLH 0x29 // board serial # LH
  32. #define PCIF_SNOMM 0x2a // board serial # MM
  33. #define PCIF_SNOHL 0x2b // board serial # HL
  34. #define PCIF_SNOHH 0x2c // board serail # HH
  35. //===========================================================================
  36. // MPEG DECODER(TC81201F) REGISTERS
  37. //===========================================================================
  38. #define TC812_DATA1 0x80 // data1
  39. #define TC812_DATA2 0x81 // data2
  40. #define TC812_DATA3 0x82 // data3
  41. #define TC812_DATA4 0x83 // data4
  42. #define TC812_DATA5 0x84 // data5
  43. #define TC812_DATA6 0x85 // data6
  44. #define TC812_DATA7 0x86 // data7
  45. #define TC812_CMDR1 0x87 // command1
  46. //#define TC812_CMDR2 0x88 // command2
  47. #define TC812_DSPL 0x8b // filter
  48. #define TC812_STT1 0x8e // status1
  49. #define TC812_STT2 0x8f // status2
  50. #define TC812_IRF 0x90 // interrupt flags
  51. #define TC812_IRM 0x91 // interrupt masks
  52. #define TC812_DEF 0x92 // decode end flag
  53. #define TC812_WEF 0x93 // packet end flag
  54. #define TC812_ERF 0x94 // error interrupt flag
  55. #define TC812_UOF 0x96 // under/over flow flag
  56. #define TC812_DEM 0x97 // Decode end mask (R/W)
  57. #define TC812_WEM 0x98 // Packet end mask (R/W)
  58. #define TC812_ERM 0x99 // Error interrupt mask (R/W)
  59. #define TC812_UOM 0x9B // Under/Over flow mask (R/W)
  60. #define TC812_UDAT 0x9C // User data read (R)
  61. #define TC812_BST 0x9D // Bit stream write (R/W)
  62. #define TC812_UAR 0x9E // User area data read (R)
  63. #define TC812_IVEC 0x9F // Interrupt vector (R/W)
  64. //======= Command Definitions (values for CMDR1 register) =============
  65. #define V_SET_SYS 0x01 // Set System decode mode
  66. #define V_GET_SYS 0x21 // Get System decode mode
  67. #define V_SET_DEC_MODE 0x02 // Set decode mode
  68. #define V_GET_DEC_MODE 0x22 // Get decode mode
  69. #define V_SET_INT_ID 0x03 // Set internal decode stream id
  70. #define V_GET_INT_ID 0x23 // Get internal decode stream id
  71. #define V_SET_PRSO_ID 0x04 // Set PRSO stream id
  72. #define V_GET_PRSO_ID 0x24 // Get PRSO stream id
  73. #define V_SET_USER_ID 0x06 // Set USER1/2 stream id
  74. #define V_GET_USER_ID 0x26 // Get USER1/2 stream id
  75. #define V_SET_UOF_SIZE 0x07 // Set under/overflow size
  76. #define V_GET_UOF_SIZE 0x27 // Get under/overflow size
  77. #define V_GET_STD_CODE 0x29 // Get STD buffer size
  78. #define V_SET_STCA 0x0B // Set STCA value
  79. #define V_GET_STCA 0x2B // Get STCA value
  80. #define V_SET_STCS 0x0C // Set STCS value
  81. #define V_GET_STCS 0x2C // Get STCS value
  82. #define V_GET_STCC 0x2D // Get STCC value
  83. #define V_GET_SCR 0x2E // Get SCR value
  84. #define V_SET_STCR_END 0x0D // Set STC/SCR read end
  85. #define V_USER1_CLEAR 0x0F // USER1 area clear
  86. #define V_USER2_CLEAR 0x10 // USER2 area clear
  87. #define V_SET_PVSIN 0x11 // Set PVSIN enable
  88. #define V_GET_PVSIN 0x31 // Get PVSIN state
  89. #define V_SET_WRITE_MEM 0x13 // Set write mem mode
  90. #define V_WRITE_MEMORY 0x14 // Write memory
  91. #define V_READ_MEMORY 0x34 // Read memory
  92. #define V_STOP_MEMORY 0x15 // Stop memory access
  93. #define V_SET_DECODE 0x41 // Start decode
  94. #define V_GET_DECODE 0x61 // Stop decode
  95. #define V_TRICK_NORMAL 0x42 // Play normal mode
  96. #define V_TRICK_FAST 0x43 // Play fast mode
  97. #define V_TRICK_SLOW 0x44 // Play slow mode
  98. #define V_TRICK_FREEZE 0x45 // Play freeze mode
  99. #define V_TRICK_STILL 0X46 // Play still mode
  100. #define V_GET_TRICK 0x67 // Get trick mode
  101. #define V_STD_CLEAR 0x48 // STD buffer clear
  102. #define V_SET_UDATA 0x4F // Set USER data mode
  103. #define V_GET_UDATA 0x6F // Get USER data mode
  104. #define V_SET_DTS 0x50 // Set DTS
  105. #define V_GET_DTS 0x70 // Get DTS
  106. #define V_SET_PTS 0x51 // Set PTS
  107. #define V_GET_PTS 0x71 // Get PTS
  108. #define V_SET_SEEMLES 0x55 // Set seemless mode
  109. #define V_SET_VFMODE 0x58 // Set video frame mode
  110. #define V_SET_STD_SIZE 0x59 // Set STD buffer size
  111. #define V_GET_STD_SIZE 0x79 // Get STD buffer size
  112. #define V_SET_USER_SIZE 0x5B // Set USER area size
  113. #define V_GET_USER_SIZE 0x7B // Get USER area size
  114. #define V_SET_MEM_MAP 0x5F // Set memory mapping
  115. #define V_SET_VCD 0x5C // Set Video-CD static mode
  116. #define V_CHK_DEC_STATE 0x5D // Check decode state
  117. #define V_GET_DEC_STATE 0x7D // Get Decoding state
  118. #define V_UF_CURB 0x5E // Under-flow curb mode
  119. #define V_SET_DMODE 0x81 // Set display mode
  120. #define V_GET_DMODE 0xA1 // Get display mode
  121. #define V_SET_HOFFSET 0x82 // Set horizontal offset
  122. #define V_GET_HOFFSET 0xA2 // Get horizontal offset
  123. #define V_SET_VOFFSET 0x83 // Set virtical offset
  124. #define V_GET_VOFFSET 0xA3 // Get virtical offset
  125. #define V_SET_HAREA 0x84 // Set horizontal area
  126. #define V_GET_HAREA 0xA4 // Get horizontal area
  127. #define V_SET_VAREA 0x85 // Set horizontal area
  128. #define V_GET_VAREA 0xA5 // Get horizontal area
  129. #define V_GET_V_DTS 0xB0 // Get decoding DTS value
  130. #define V_RESET 0xC1 // Reset & set default mode
  131. //===========================================================================
  132. // VIDEO PROCESSOR(TC90A09F) REGISTERS
  133. //===========================================================================
  134. #define SUBP_RESET 0x40 // Sub-Pic Reset
  135. #define SUBP_COMMAND 0x41 // Command
  136. #define SUBP_STSINT 0x42 // Status & Interrupt mask
  137. //#define SUBP_OFFSET 0x43 // Offset
  138. #define SUBP_STCHH 0x44 // STC 32:25
  139. #define SUBP_STCHL 0x45 // STC 24:17
  140. #define SUBP_STCLH 0x46 // STC 16:09
  141. #define SUBP_STCLL 0x47 // STC 08:01
  142. #define SUBP_LCINFHH 0x48 // LCINF 32:25
  143. #define SUBP_LCINFHL 0x49 // LCINF 24:17
  144. #define SUBP_LCINFLH 0x4A // LCINF 16:09
  145. #define SUBP_LCINFLL 0x4B // LCINF 08:01
  146. #define SUBP_PCINFSHH 0x4C // PCINFS 47:40
  147. #define SUBP_PCINFSHL 0x4D // PCINFS 39:32
  148. #define SUBP_PCINFSMH 0x4E // PCINFS 31:24
  149. #define SUBP_PCINFSML 0x4F // PCINFS 23:16
  150. #define SUBP_PCINFSLH 0x50 // PCINFS 15:08
  151. #define SUBP_PCINFSLL 0x51 // PCINFS 07:01
  152. #define SUBP_PCINFEHH 0x52 // PCINFE 47:40
  153. #define SUBP_PCINFEHL 0x53 // PCINFE 39:32
  154. #define SUBP_PCINFEMH 0x54 // PCINFE 31:24
  155. #define SUBP_PCINFEML 0x55 // PCINFE 23:16
  156. #define SUBP_PCINFELH 0x56 // PCINFE 15:08
  157. #define SUBP_PCINFELL 0x57 // PCINFE 07:01
  158. #define SUBP_MODE 0x58 // Audio word alignment
  159. #define SUBP_STCCNT 0x59 // STC Count
  160. #define SUBP_SPID 0x5A // Sub-Pic sub-stream id
  161. #define SUBP_ASEL 0x5B // Audio select(sub/stream id?)
  162. #define SUBP_CC1 0x5C // Closed caption data1
  163. #define SUBP_CC2 0x5D // Closed caption data2
  164. #define SUBP_AAID 0x5E // Audio-A (sub)stream id
  165. #define SUBP_ABID 0x5F // Audio-B (sub)stream id
  166. #define VPRO_RESET 0x60 // V-PRO Reset
  167. #define VPRO_VMODE 0x61 // Video mode & US caption
  168. #define VPRO_CPSET 0x62 // Color palette setting
  169. #define VPRO_CPSP 0x63 // Color palette (Sub-pic)
  170. #define VPRO_AVM 0x64 // Analog video mode
  171. #define VPRO_DVEN 0x65 // Digital output
  172. #define VPRO_CPG 0x66 // Copy guard
  173. #define VPRO_CAGC 0x68 // AGC puls(Composit)
  174. #define VPRO_YAGC 0x69 // AGC puls(Y)
  175. #define VPRO_LAGC 0x6A // AGC low-bit
  176. #define VPRO_CPOSD 0x6B // Color palette (OSD)
  177. //===========================================================================
  178. // VIDEO ANALOG COPY GUARD PROCESSOR(TC6802AF) REGISTERS
  179. //===========================================================================
  180. #define CPGD_RESET 0xA0 // Reset
  181. #define CPGD_VMODE 0xA1 // Video mode
  182. #define CPGD_CPSET 0xA2 // Color palette setteing
  183. #define CPGD_CPSP 0xA3 // Color palette
  184. #define CPGD_AVM 0xA4 // Analog video mode
  185. #define CPGD_DVEN 0xA5 // Digital output
  186. #define CPGD_CPG 0xA6 // Copy guard setting
  187. #define CPGD_CAGC 0xA8 // AGC(Composit)
  188. #define CPGD_YAGC 0xA9 // AGC(Y)
  189. #define CPGD_LAGC 0xAA // AGC(low bit)
  190. #define CPGD_CDG 0xAB // CDG
  191. #define CPGD_BSTLN 0xAC // Burst Inv number
  192. #define CPGD_BSTSE 0xAD // Burst Inv timing
  193. #define CPGD_BSTLSL 0xAE // Burst Inv line(Low)
  194. #define CPGD_BSTLSH 0xAF // Burst Inv line(High)
  195. #define CPGD_CGMSAL 0xB0 // CGMS-A(Low)
  196. #define CPGD_CGMSAM 0xB1 // CGMS-A(Middle)
  197. #define CPGD_CGMSAH 0xB2 // CGMS-A(High)
  198. #define CPGD_BSTINT 0xB3 // Color burst interval
  199. #define CPGD_BSTONY 0xB4 // Burst(Y)
  200. //***************************************************************************
  201. // M I S S I O L I N O U S D E F I N I T I O N S
  202. //***************************************************************************
  203. //===========================================================================
  204. // MPEG (SUB-)STREAM ID
  205. //===========================================================================
  206. #define STRMID_MPEG_AUDIO 0xc0
  207. #define STRMID_MPEG_VIDEO 0xe0
  208. #define STRMID_PRIVATE_1 0xbd
  209. #define STRMID_PRIVATE_2 0xbf
  210. #define SUB_STRMID_SUBP 0x20
  211. #define SUB_STRMID_VBI 0x48
  212. #define SUB_STRMID_AC3 0x80
  213. #define SUB_STRMID_SRSV_DTS 0x88
  214. #define SUB_STRMID_SRSV_SDDS 0x90
  215. #define SUB_STRMID_PCM 0xa0
  216. #define SUB_STRMID_PCI 0x00
  217. #define SUB_STRMID_DSI 0x01
  218. //===========================================================================
  219. // STREAM MODE
  220. //===========================================================================
  221. #define STREAM_MODE_VELS 0x01
  222. #define STREAM_MODE_PES 0x03
  223. #define STREAM_MODE_PS 0x07
  224. #define STREAM_MODE_DVD 0x0F
  225. #define STREAM_MODE_VCD 0x10
  226. //===========================================================================
  227. // PLAY STOP STATE
  228. //===========================================================================
  229. #define STOP_KEEP 0x01
  230. #define STOP_FLASH 0x02
  231. //===========================================================================
  232. // UFLOW EVENT STATE
  233. //===========================================================================
  234. #define EVENT_FATAL_UFLOW 0x01
  235. #define EVENT_NORMAL_UFLOW 0x02
  236. //===========================================================================
  237. // AUDIO MUTE STATE
  238. //===========================================================================
  239. #define AUDIO_MUTE_ON 0x00
  240. #define AUDIO_MUTE_OFF 0x01
  241. //===========================================================================
  242. // AUDIO OUT MODE
  243. //===========================================================================
  244. #define AUDIO_OUT_DIGITAL 0x00
  245. #define AUDIO_OUT_ANALOG 0x01
  246. //===========================================================================
  247. // AUDIO COPY PROTECT
  248. //===========================================================================
  249. #define AUDIO_COPY_ON 0x00
  250. #define AUDIO_COPY_OFF 0x01
  251. //===========================================================================
  252. // SUBPIC MUTE STATE
  253. //===========================================================================
  254. #define SUBPIC_MUTE_ON 0x00
  255. #define SUBPIC_MUTE_OFF 0x01
  256. //===========================================================================
  257. // SUBPIC Hi-LITE STATE
  258. //===========================================================================
  259. #define SUBPIC_HLITE_ON 0x00
  260. #define SUBPIC_HLITE_OFF 0x01
  261. //===========================================================================
  262. // OSD MUTE STATE
  263. //===========================================================================
  264. #define OSD_MUTE_ON 0x00
  265. #define OSD_MUTE_OFF 0x01
  266. //===========================================================================
  267. // OSD BLINK STATE
  268. //===========================================================================
  269. #define OSD_BLINK_ON 0x00
  270. #define OSD_BLINK_OFF 0x01
  271. //===========================================================================
  272. // OSD REVERSE STATE
  273. //===========================================================================
  274. #define OSD_REVERSE_ON 0x00
  275. #define OSD_REVERSE_OFF 0x01
  276. //===========================================================================
  277. // VIDEO MUTE STATE
  278. //===========================================================================
  279. #define VIDEO_MUTE_ON 0x00
  280. #define VIDEO_MUTE_OFF 0x01
  281. //===========================================================================
  282. // LETTER BOX STATE
  283. //===========================================================================
  284. #define LETTER_BOX_ON 0x00
  285. #define LETTER_BOX_OFF 0x01
  286. //===========================================================================
  287. // PAN-SCAN STATE
  288. //===========================================================================
  289. #define PANSCAN_ON 0x00
  290. #define PANSCAN_OFF 0x01
  291. //===========================================================================
  292. // DECODE FALSE STATE
  293. //===========================================================================
  294. #define VIDEO_NO_DATA 0x01
  295. //===========================================================================
  296. // COLOR PALTTE SELECTION
  297. //===========================================================================
  298. #define PALETTE_Y 0x01
  299. #define PALETTE_CB 0x02
  300. #define PALETTE_CR 0x03
  301. //===========================================================================
  302. // ANALOG IMAGE COPY GURAD MODE
  303. //===========================================================================
  304. #define APS_TYPE_OFF 0x00
  305. #define APS_TYPE_1 0x01
  306. #define APS_TYPE_2 0x02
  307. #define APS_TYPE_3 0x03
  308. //===========================================================================
  309. // FREEZE COUNTER STATE
  310. //===========================================================================
  311. #define FREEZE_ONCE 0x00
  312. #define FREEZE_PLURAL 0x01
  313. //===========================================================================
  314. // I-PICTURE INTERRUPT SWITCH
  315. //===========================================================================
  316. #define IPIC_SW_ON 0x00
  317. #define IPIC_SW_OFF 0x01
  318. //===========================================================================
  319. // FLAG for CATCH_IPIC return OK or not
  320. //===========================================================================
  321. #define IPIC_RET_ON 0x00
  322. #define IPIC_RET_OFF 0x01
  323. //***************************************************************************
  324. // S T R U C T U R E D E F I N I T I O N S
  325. //***************************************************************************
  326. //===========================================================================
  327. // AUDIO_MODE structure
  328. //===========================================================================
  329. /*
  330. AUDIO_MODE_STRUC STRUC
  331. dwATYPE dd ?
  332. dwAFS dd ?
  333. dwAQUANT dd ?
  334. dwACOPY dd ?
  335. dwACHANNEL dd ?
  336. AUDIO_MODE_STRUC ENDS
  337. */
  338. #define AUDIO_TYPE_AC3 0x01
  339. #define AUDIO_TYPE_MPEG_F1 0x02
  340. #define AUDIO_TYPE_MPEG_F2 0x03
  341. #define AUDIO_TYPE_PCM 0x04
  342. #define AUDIO_FS_32 0x01
  343. #define AUDIO_FS_44 0x02
  344. #define AUDIO_FS_48 0x03
  345. #define AUDIO_FS_96 0x04
  346. #define AUDIO_QUANT_16 0x01
  347. #define AUDIO_QUANT_20 0x02
  348. #define AUDIO_QUANT_24 0x03
  349. #define AUDIO_CGMS_03 0x03 // No Copying is permitted.
  350. #define AUDIO_CGMS_02 0x02 // One generation of copies may be made
  351. #define AUDIO_CGMS_00 0x00 // Copying is permitted without restriction
  352. //===========================================================================
  353. // PLAY_MODE structure
  354. //===========================================================================
  355. /*
  356. PLAY_MODE_STRUC STRUC
  357. dwPLAYTYPE dd ?
  358. dwPLAYFlags dd ?
  359. PLAY_MODE_STRUC ENDS
  360. */
  361. #define PLAY_MODE_NORMAL 0x01
  362. #define PLAY_MODE_FAST 0x02
  363. #define PLAY_MODE_SLOW 0x03
  364. #define PLAY_MODE_FREEZE 0x04
  365. #define PLAY_MODE_STILL 0x05
  366. #define FAST_ONLYI 0x01
  367. #define FAST_IANDP 0x02
  368. //===========================================================================
  369. // SUBP_HLITE structure
  370. //===========================================================================
  371. /*
  372. SUBP_HLITE_STRUC STRUC
  373. dwHLITE_TYPE dd ?
  374. dwHLITE_Y dw ?
  375. dwHLITE_H dw ?
  376. dwHLITE_X dw ?
  377. dwHLITE_W dw ?
  378. dwHLITE_COLOR dd ?
  379. SUBP_HLITE_STRUC ENDS
  380. */
  381. #define SUBPIC_HLITE_ON 0x00
  382. #define SUBPIC_HLITE_OFF 0x01
  383. //===========================================================================
  384. // VBUFF_SIZE structure
  385. //===========================================================================
  386. /*
  387. VBUFF_SIZE_STRUC STRUC
  388. dwVBUFF_WHOLE dd ?
  389. dwVBUFF_STD dd ?
  390. VBUFF_SIZE_STRUC ENDS
  391. */
  392. //===========================================================================
  393. // VDVD_VER structure
  394. //===========================================================================
  395. /*
  396. VDVD_VER_STRUC STRUC
  397. bVER_MAJOR db ?
  398. bVER_MINOR db ?
  399. VDVD_VER_STRUC ENDS
  400. */
  401. //===========================================================================
  402. // DISPLAY_MODE structure
  403. //===========================================================================
  404. /*
  405. DISPLAY_MODE_STRUC STRUC
  406. dwDISP_MODE dd ?
  407. dwASPECT_RATIO dd ?
  408. DISPLAY_MODE_STRUC ENDS
  409. */
  410. #define DISPLAY_MODE_NTSC 0x01
  411. #define DISPLAY_MODE_PAL 0x02
  412. #define ASPECT_04_03 0x00
  413. #define ASPECT_16_09 0x01
  414. //===========================================================================
  415. // OSD_CHAR structure
  416. //===========================================================================
  417. /*
  418. OSD_CHAR_STRUC STRUC
  419. dwCHAR_CODE dd ?
  420. dwOSD_LINE dd ?
  421. dwOSD_COLUM dd ?
  422. dwOSD_FLAGS dd ?
  423. OSD_CHAR_STRUC ENDS
  424. */