amalgamation
[picodrive.git] / Pico / cd / cd_sys.c
index 5bcd3cf..c0001d2 100644 (file)
@@ -1,8 +1,17 @@
+/***********************************************************\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
 #include <stdio.h>\r
-#include "cd_sys.h"\r
-#include "cd_file.h"\r
 \r
 #include "../PicoInt.h"\r
+#include "cd_sys.h"\r
+#include "cd_file.h"\r
 \r
 #define cdprintf dprintf\r
 //#define cdprintf(x...)\r
 #define PLAYING                0x0100          // PLAYING audio track CDD status\r
 \r
 \r
-/*\r
-int CDDA_Enable;\r
-\r
-int CD_Audio_Buffer_L[8192];\r
-int CD_Audio_Buffer_R[8192];\r
-int CD_Audio_Buffer_Read_Pos = 0;\r
-int CD_Audio_Buffer_Write_Pos = 2000;\r
-int CD_Audio_Starting;\r
-*/\r
-\r
 static int CD_Present = 0;\r
-// int CD_Timer_Counter = 0; // TODO: check refs\r
-\r
 \r
 \r
 #define CHECK_TRAY_OPEN                                \\r
@@ -65,27 +62,13 @@ if (!CD_Present)                                    \
 }\r
 \r
 \r
-#if 0\r
-static void MSB2DWORD(unsigned int *d, unsigned char *b)\r
-{\r
-       unsigned int  retVal;\r
-\r
-       retVal = (unsigned int )b[0];\r
-       retVal = (retVal<<8) + (unsigned int )b[1];\r
-       retVal = (retVal<<8) + (unsigned int )b[2];\r
-       retVal = (retVal<<8) + (unsigned int )b[3];\r
-\r
-       *d = retVal;\r
-}\r
-#endif\r
-\r
 static int MSF_to_LBA(_msf *MSF)\r
 {\r
        return (MSF->M * 60 * 75) + (MSF->S * 75) + MSF->F - 150;\r
 }\r
 \r
 \r
-void LBA_to_MSF(int lba, _msf *MSF)\r
+PICO_INTERNAL void LBA_to_MSF(int lba, _msf *MSF)\r
 {\r
        if (lba < -150) lba = 0;\r
        else lba += 150;\r
@@ -139,7 +122,7 @@ static void Track_to_MSF(int track, _msf *MSF)
 }\r
 \r
 \r
-int Track_to_LBA(int track)\r
+PICO_INTERNAL int Track_to_LBA(int track)\r
 {\r
        _msf MSF;\r
 \r
@@ -148,7 +131,7 @@ int Track_to_LBA(int track)
 }\r
 \r
 \r
-void Check_CD_Command(void)\r
+PICO_INTERNAL void Check_CD_Command(void)\r
 {\r
        cdprintf("CHECK CD COMMAND");\r
 \r
@@ -192,19 +175,19 @@ void Check_CD_Command(void)
 }\r
 \r
 \r
-int Init_CD_Driver(void)\r
+PICO_INTERNAL int Init_CD_Driver(void)\r
 {\r
        return 0;\r
 }\r
 \r
 \r
-void End_CD_Driver(void)\r
+PICO_INTERNAL void End_CD_Driver(void)\r
 {\r
-       FILE_End();\r
+       Unload_ISO();\r
 }\r
 \r
 \r
-void Reset_CD(void)\r
+PICO_INTERNAL void Reset_CD(void)\r
 {\r
        Pico_mcd->scd.Cur_Track = 0;\r
        Pico_mcd->scd.Cur_LBA = -150;\r
@@ -219,9 +202,6 @@ int Insert_CD(char *iso_name, int is_bin)
 {\r
        int ret = 0;\r
 \r
-//     memset(CD_Audio_Buffer_L, 0, 4096 * 4);\r
-//     memset(CD_Audio_Buffer_R, 0, 4096 * 4);\r
-\r
        CD_Present = 0;\r
        Pico_mcd->scd.Status_CDD = NOCD;\r
 \r
@@ -245,14 +225,15 @@ void Stop_CD(void)
 }\r
 \r
 \r
-void Change_CD(void)\r
+/*\r
+PICO_INTERNAL void Change_CD(void)\r
 {\r
        if (Pico_mcd->scd.Status_CDD == TRAY_OPEN) Close_Tray_CDD_cC();\r
        else Open_Tray_CDD_cD();\r
 }\r
+*/\r
 \r
-\r
-int Get_Status_CDD_c0(void)\r
+PICO_INTERNAL int Get_Status_CDD_c0(void)\r
 {\r
        cdprintf("Status command : Cur LBA = %d", Pico_mcd->scd.Cur_LBA);\r
 \r
@@ -270,7 +251,7 @@ int Get_Status_CDD_c0(void)
 }\r
 \r
 \r
-int Stop_CDD_c1(void)\r
+PICO_INTERNAL int Stop_CDD_c1(void)\r
 {\r
        CHECK_TRAY_OPEN\r
 \r
@@ -293,7 +274,7 @@ int Stop_CDD_c1(void)
 }\r
 \r
 \r
-int Get_Pos_CDD_c20(void)\r
+PICO_INTERNAL int Get_Pos_CDD_c20(void)\r
 {\r
        _msf MSF;\r
 \r
@@ -325,7 +306,7 @@ int Get_Pos_CDD_c20(void)
 }\r
 \r
 \r
-int Get_Track_Pos_CDD_c21(void)\r
+PICO_INTERNAL int Get_Track_Pos_CDD_c21(void)\r
 {\r
        int elapsed_time;\r
        _msf MSF;\r
@@ -359,7 +340,7 @@ int Get_Track_Pos_CDD_c21(void)
 }\r
 \r
 \r
-int Get_Current_Track_CDD_c22(void)\r
+PICO_INTERNAL int Get_Current_Track_CDD_c22(void)\r
 {\r
        cdprintf("Status CDD = %.4X  Status = %.4X", Pico_mcd->scd.Status_CDD, Pico_mcd->cdd.Status);\r
 \r
@@ -388,7 +369,7 @@ int Get_Current_Track_CDD_c22(void)
 }\r
 \r
 \r
-int Get_Total_Lenght_CDD_c23(void)\r
+PICO_INTERNAL int Get_Total_Lenght_CDD_c23(void)\r
 {\r
        CHECK_TRAY_OPEN\r
 \r
@@ -412,7 +393,7 @@ int Get_Total_Lenght_CDD_c23(void)
 }\r
 \r
 \r
-int Get_First_Last_Track_CDD_c24(void)\r
+PICO_INTERNAL int Get_First_Last_Track_CDD_c24(void)\r
 {\r
        CHECK_TRAY_OPEN\r
 \r
@@ -435,7 +416,7 @@ int Get_First_Last_Track_CDD_c24(void)
 }\r
 \r
 \r
-int Get_Track_Adr_CDD_c25(void)\r
+PICO_INTERNAL int Get_Track_Adr_CDD_c25(void)\r
 {\r
        int track_number;\r
 \r
@@ -469,7 +450,7 @@ int Get_Track_Adr_CDD_c25(void)
 }\r
 \r
 \r
-int Play_CDD_c3(void)\r
+PICO_INTERNAL int Play_CDD_c3(void)\r
 {\r
        _msf MSF;\r
        int delay, new_lba;\r
@@ -527,7 +508,7 @@ int Play_CDD_c3(void)
 }\r
 \r
 \r
-int Seek_CDD_c4(void)\r
+PICO_INTERNAL int Seek_CDD_c4(void)\r
 {\r
        _msf MSF;\r
 \r
@@ -565,7 +546,7 @@ int Seek_CDD_c4(void)
 }\r
 \r
 \r
-int Pause_CDD_c6(void)\r
+PICO_INTERNAL int Pause_CDD_c6(void)\r
 {\r
        CHECK_TRAY_OPEN\r
        CHECK_CD_PRESENT\r
@@ -588,7 +569,7 @@ int Pause_CDD_c6(void)
 }\r
 \r
 \r
-int Resume_CDD_c7(void)\r
+PICO_INTERNAL int Resume_CDD_c7(void)\r
 {\r
        CHECK_TRAY_OPEN\r
        CHECK_CD_PRESENT\r
@@ -630,7 +611,7 @@ int Resume_CDD_c7(void)
 }\r
 \r
 \r
-int Fast_Foward_CDD_c8(void)\r
+PICO_INTERNAL int Fast_Foward_CDD_c8(void)\r
 {\r
        CHECK_TRAY_OPEN\r
        CHECK_CD_PRESENT\r
@@ -651,7 +632,7 @@ int Fast_Foward_CDD_c8(void)
 }\r
 \r
 \r
-int Fast_Rewind_CDD_c9(void)\r
+PICO_INTERNAL int Fast_Rewind_CDD_c9(void)\r
 {\r
        CHECK_TRAY_OPEN\r
        CHECK_CD_PRESENT\r
@@ -672,7 +653,7 @@ int Fast_Rewind_CDD_c9(void)
 }\r
 \r
 \r
-int Close_Tray_CDD_cC(void)\r
+PICO_INTERNAL int Close_Tray_CDD_cC(void)\r
 {\r
        CD_Present = 0;\r
        //Clear_Sound_Buffer();\r
@@ -698,7 +679,7 @@ int Close_Tray_CDD_cC(void)
 }\r
 \r
 \r
-int Open_Tray_CDD_cD(void)\r
+PICO_INTERNAL int Open_Tray_CDD_cD(void)\r
 {\r
        CHECK_TRAY_OPEN\r
 \r
@@ -726,7 +707,7 @@ int Open_Tray_CDD_cD(void)
 }\r
 \r
 \r
-int CDD_cA(void)\r
+PICO_INTERNAL int CDD_cA(void)\r
 {\r
        CHECK_TRAY_OPEN\r
        CHECK_CD_PRESENT\r
@@ -747,7 +728,7 @@ int CDD_cA(void)
 }\r
 \r
 \r
-int CDD_Def(void)\r
+PICO_INTERNAL int CDD_Def(void)\r
 {\r
        Pico_mcd->cdd.Status = Pico_mcd->scd.Status_CDD;\r
 \r