region detection, cd states wip, fixes, stuff
[picodrive.git] / Pico / cd / LC89510.h
1 #ifndef _LC89510_H\r
2 #define _LC89510_H\r
3 \r
4 #ifdef __cplusplus\r
5 extern "C" {\r
6 #endif\r
7 \r
8 typedef struct\r
9 {\r
10         unsigned char Buffer[(32 * 1024 * 2) + 2352];\r
11 //      unsigned int Host_Data;         // unused\r
12 //      unsigned int DMA_Adr;           // 0A\r
13 //      unsigned int Stop_Watch;        // 0C\r
14         unsigned int COMIN;\r
15         unsigned int IFSTAT;\r
16         union\r
17         {\r
18                 struct\r
19                 {\r
20                         unsigned char L;\r
21                         unsigned char H;\r
22                         unsigned short unused;\r
23                 } B;\r
24                 int N;\r
25         } DBC;\r
26         union\r
27         {\r
28                 struct\r
29                 {\r
30                         unsigned char L;\r
31                         unsigned char H;\r
32                         unsigned short unused;\r
33                 } B;\r
34                 int N;\r
35         } DAC;\r
36         union\r
37         {\r
38                 struct\r
39                 {\r
40                         unsigned char B0;\r
41                         unsigned char B1;\r
42                         unsigned char B2;\r
43                         unsigned char B3;\r
44                 } B;\r
45                 unsigned int N;\r
46         } HEAD;\r
47         union\r
48         {\r
49                 struct\r
50                 {\r
51                         unsigned char L;\r
52                         unsigned char H;\r
53                         unsigned short unused;\r
54                 } B;\r
55                 int N;\r
56         } PT;\r
57         union\r
58         {\r
59                 struct\r
60                 {\r
61                         unsigned char L;\r
62                         unsigned char H;\r
63                         unsigned short unused;\r
64                 } B;\r
65                 int N;\r
66         } WA;\r
67         union\r
68         {\r
69                 struct\r
70                 {\r
71                         unsigned char B0;\r
72                         unsigned char B1;\r
73                         unsigned char B2;\r
74                         unsigned char B3;\r
75                 } B;\r
76                 unsigned int N;\r
77         } STAT;\r
78         unsigned int SBOUT;\r
79         unsigned int IFCTRL;\r
80         union\r
81         {\r
82                 struct\r
83                 {\r
84                         unsigned char B0;\r
85                         unsigned char B1;\r
86                         unsigned char B2;\r
87                         unsigned char B3;\r
88                 } B;\r
89                 unsigned int N;\r
90         } CTRL;\r
91         unsigned int CDC_Decode_Reg_Read;\r
92 } CDC;\r
93 \r
94 typedef struct\r
95 {\r
96 //      unsigned short Fader;   // 34\r
97 //      unsigned short Control; // 36\r
98 //      unsigned short Cur_Comm;// unused\r
99 \r
100         // "Receive status"\r
101         unsigned short Status;\r
102         unsigned short Minute;\r
103         unsigned short Seconde;\r
104         unsigned short Frame;\r
105         unsigned char  Ext;\r
106 } CDD;\r
107 \r
108 \r
109 void LC89510_Reset(void);\r
110 unsigned short Read_CDC_Host(int is_sub);\r
111 void Update_CDC_TRansfer(int which);\r
112 void CDC_Update_Header(void);\r
113 \r
114 unsigned char CDC_Read_Reg(void);\r
115 void CDC_Write_Reg(unsigned char Data);\r
116 \r
117 void CDD_Export_Status(void);\r
118 void CDD_Import_Command(void);\r
119 \r
120 #ifdef __cplusplus\r
121 };\r
122 #endif\r
123 \r
124 #endif\r
125 \r