fixed some portability issues
[picodrive.git] / Pico / cd / cd_sys.c
index 5bcd3cf..581583b 100644 (file)
@@ -1,11 +1,18 @@
+/***********************************************************\r
+ *                                                         *\r
+ * This source file 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 DEBUG_CD\r
 \r
 #define TRAY_OPEN      0x0500          // TRAY OPEN CDD status\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 +60,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 +120,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 +129,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 +173,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 +200,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 +223,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 +249,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 +272,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 +304,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 +338,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 +367,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 +391,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 +414,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 +448,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 +506,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 +544,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 +567,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 +609,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 +630,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,14 +651,14 @@ 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
 \r
        Pico_mcd->scd.Status_CDC &= ~1;                 // Stop CDC read\r
 \r
-       printf("tray close\n");\r
+       elprintf(EL_STATUS, "tray close\n");\r
 \r
        if (PicoMCDcloseTray != NULL)\r
                CD_Present = PicoMCDcloseTray();\r
@@ -698,13 +677,13 @@ 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
        Pico_mcd->scd.Status_CDC &= ~1;                 // Stop CDC read\r
 \r
-       printf("tray open\n");\r
+       elprintf(EL_STATUS, "tray open\n");\r
 \r
        Unload_ISO();\r
        CD_Present = 0;\r
@@ -726,7 +705,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 +726,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