initial import
[picodrive.git] / Pico / cd / cd_sys.h
diff --git a/Pico/cd/cd_sys.h b/Pico/cd/cd_sys.h
new file mode 100644 (file)
index 0000000..34c9126
--- /dev/null
@@ -0,0 +1,97 @@
+#ifndef _CD_SYS_H\r
+#define _CD_SYS_H\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+\r
+#define INT_TO_BCDB(c)                                                                         \\r
+((c) > 99)?(0x99):((((c) / 10) << 4) + ((c) % 10));\r
+\r
+#define INT_TO_BCDW(c)                                                                         \\r
+((c) > 99)?(0x0909):((((c) / 10) << 8) + ((c) % 10));\r
+\r
+#define BCDB_TO_INT(c)                                                                         \\r
+(((c) >> 4) * 10) + ((c) & 0xF);\r
+\r
+#define BCDW_TO_INT(c)                                                                         \\r
+(((c) >> 8) * 10) + ((c) & 0xF);\r
+\r
+\r
+typedef struct\r
+{\r
+  unsigned char M;\r
+  unsigned char S;\r
+  unsigned char F;\r
+} _msf;\r
+\r
+typedef struct\r
+{\r
+       unsigned char Type;\r
+       unsigned char Num;\r
+       _msf MSF;\r
+} _scd_track;\r
+\r
+typedef struct\r
+{\r
+       unsigned char First_Track;\r
+       unsigned char Last_Track;\r
+       _scd_track Tracks[100];\r
+} _scd_toc;\r
+\r
+typedef struct {\r
+       unsigned int Status_CDD;\r
+       unsigned int Status_CDC;\r
+       _scd_toc TOC;\r
+       int Cur_LBA;\r
+       unsigned int Cur_Track;\r
+} _scd;\r
+\r
+\r
+extern int CD_Timer_Counter;\r
+\r
+\r
+void LBA_to_MSF(int lba, _msf *MSF);\r
+int Track_to_LBA(int track);\r
+\r
+\r
+void Check_CD_Command(void);\r
+\r
+int  Init_CD_Driver(void);\r
+void End_CD_Driver(void);\r
+int  Insert_CD(char *buf, char *iso_name);\r
+void Stop_CD(void);\r
+void Change_CD(void);\r
+void Reset_CD(void);\r
+\r
+int Get_Status_CDD_c0(void);\r
+int Stop_CDD_c1(void);\r
+int Get_Pos_CDD_c20(void);\r
+int Get_Track_Pos_CDD_c21(void);\r
+int Get_Current_Track_CDD_c22(void);\r
+int Get_Total_Lenght_CDD_c23(void);\r
+int Get_First_Last_Track_CDD_c24(void);\r
+int Get_Track_Adr_CDD_c25(void);\r
+int Play_CDD_c3(void);\r
+int Seek_CDD_c4(void);\r
+int Pause_CDD_c6(void);\r
+int Resume_CDD_c7(void);\r
+int Fast_Foward_CDD_c8(void);\r
+int Fast_Rewind_CDD_c9(void);\r
+int CDD_cA(void);\r
+int Close_Tray_CDD_cC(void);\r
+int Open_Tray_CDD_cD(void);\r
+\r
+int CDD_Def(void);\r
+\r
+//void Write_CD_Audio(short *Buf, int rate, int channel, int lenght);\r
+//void Update_CD_Audio(int **Buf, int lenght);\r
+\r
+\r
+#ifdef __cplusplus\r
+};\r
+#endif\r
+\r
+#endif\r
+\r