--- /dev/null
+/***********************************************************\r
+ * *\r
+ * This source was taken from the Gens project *\r
+ * Written by Stéphane Dallongeville *\r
+ * Copyright (c) 2002 by Stéphane Dallongeville *\r
+ * Modified/adapted for PicoDrive by notaz, 2007 *\r
+ * *\r
+ ***********************************************************/\r
+\r
+#ifndef _LC89510_H\r
+#define _LC89510_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+typedef struct\r
+{\r
+ unsigned char Buffer[(32 * 1024 * 2) + 2352];\r
+// unsigned int Host_Data; // unused\r
+// unsigned int DMA_Adr; // 0A\r
+// unsigned int Stop_Watch; // 0C\r
+ unsigned int COMIN;\r
+ unsigned int IFSTAT;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char L;\r
+ unsigned char H;\r
+ unsigned short unused;\r
+ } B;\r
+ int N;\r
+ } DBC;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char L;\r
+ unsigned char H;\r
+ unsigned short unused;\r
+ } B;\r
+ int N;\r
+ } DAC;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char B0;\r
+ unsigned char B1;\r
+ unsigned char B2;\r
+ unsigned char B3;\r
+ } B;\r
+ unsigned int N;\r
+ } HEAD;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char L;\r
+ unsigned char H;\r
+ unsigned short unused;\r
+ } B;\r
+ int N;\r
+ } PT;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char L;\r
+ unsigned char H;\r
+ unsigned short unused;\r
+ } B;\r
+ int N;\r
+ } WA;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char B0;\r
+ unsigned char B1;\r
+ unsigned char B2;\r
+ unsigned char B3;\r
+ } B;\r
+ unsigned int N;\r
+ } STAT;\r
+ unsigned int SBOUT;\r
+ unsigned int IFCTRL;\r
+ union\r
+ {\r
+ struct\r
+ {\r
+ unsigned char B0;\r
+ unsigned char B1;\r
+ unsigned char B2;\r
+ unsigned char B3;\r
+ } B;\r
+ unsigned int N;\r
+ } CTRL;\r
+ unsigned int Decode_Reg_Read;\r
+} CDC;\r
+\r
+typedef struct\r
+{\r
+// unsigned short Fader; // 34\r
+// unsigned short Control; // 36\r
+// unsigned short Cur_Comm;// unused\r
+\r
+ // "Receive status"\r
+ unsigned short Status;\r
+ unsigned short Minute;\r
+ unsigned short Seconde;\r
+ unsigned short Frame;\r
+ unsigned char Ext;\r
+ unsigned char pad[3];\r
+} CDD;\r
+\r
+\r
+PICO_INTERNAL_ASM unsigned short Read_CDC_Host(int is_sub);\r
+PICO_INTERNAL void LC89510_Reset(void);\r
+PICO_INTERNAL void Update_CDC_TRansfer(int which);\r
+PICO_INTERNAL void CDC_Update_Header(void);\r
+\r
+PICO_INTERNAL unsigned char CDC_Read_Reg(void);\r
+PICO_INTERNAL void CDC_Write_Reg(unsigned char Data);\r
+\r
+PICO_INTERNAL void CDD_Export_Status(void);\r
+PICO_INTERNAL void CDD_Import_Command(void);\r
+\r
+#ifdef __cplusplus\r
+};\r
+#endif\r
+\r
+#endif\r
+\r