aboutsummaryrefslogtreecommitdiff
path: root/Source/System.c
diff options
context:
space:
mode:
authorXavier ASUS <xavi92psx@gmail.com>2018-11-18 20:03:35 +0100
committerXavier ASUS <xavi92psx@gmail.com>2018-11-18 20:03:35 +0100
commit2ccc0f5edd5f8e61bd0760f30b2d66f2d977b2bf (patch)
tree332a528b512d7e53ac913eb72b1e48bcbe760cad /Source/System.c
parent4c0028bfcc5da708e47a349f060954e67fb9c2d7 (diff)
Added "const" qualifier to some functions.
"cdrom:\ and ;1" are automatically inserted into file name, in order to save memory space. Some minor optimizations.
Diffstat (limited to 'Source/System.c')
-rw-r--r--Source/System.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/Source/System.c b/Source/System.c
index f6f8f25..d17a704 100644
--- a/Source/System.c
+++ b/Source/System.c
@@ -478,7 +478,7 @@ void SystemCheckTimer(bool* timer, uint64_t* last_timer, uint8_t step)
* @return: true if file has been loaded successfully, false otherwise.
*
* ****************************************************************************************/
-bool SystemLoadFileToBuffer(char* fname, uint8_t* buffer, uint32_t szBuffer)
+bool SystemLoadFileToBuffer(const char* fname, uint8_t* buffer, uint32_t szBuffer)
{
#ifdef SERIAL_INTERFACE
uint8_t fileSizeBuffer[sizeof (uint32_t)] = {0};
@@ -501,8 +501,12 @@ bool SystemLoadFileToBuffer(char* fname, uint8_t* buffer, uint32_t szBuffer)
memset(buffer,0,szBuffer);
+ static char completeFileName[256];
+
+ snprintf(completeFileName, sizeof (completeFileName), "cdrom:\\%s;1", fname);
+
#ifdef SERIAL_INTERFACE
- Serial_printf("#%s@", fname);
+ Serial_printf("#%s@", completeFileName);
SerialRead(fileSizeBuffer, sizeof (uint32_t) );
@@ -538,7 +542,9 @@ bool SystemLoadFileToBuffer(char* fname, uint8_t* buffer, uint32_t szBuffer)
SystemDisableVBlankInterrupt();
- f = fopen(fname, "r");
+ Serial_printf("Opening %s...\n", completeFileName);
+
+ f = fopen((char*)completeFileName, "r");
if (f == NULL)
{
@@ -571,7 +577,7 @@ bool SystemLoadFileToBuffer(char* fname, uint8_t* buffer, uint32_t szBuffer)
#endif // SERIAL_INTERFACE
- Serial_printf("File \"%s\" loaded successfully!\n",fname);
+ Serial_printf("File \"%s\" loaded successfully!\n",completeFileName);
return true;
}
@@ -587,7 +593,7 @@ bool SystemLoadFileToBuffer(char* fname, uint8_t* buffer, uint32_t szBuffer)
* @return: true if file has been loaded successfully, false otherwise.
*
* ****************************************************************************************/
-bool SystemLoadFile(char*fname)
+bool SystemLoadFile(const char* fname)
{
return SystemLoadFileToBuffer(fname,file_buffer,sizeof (file_buffer));
}
@@ -1208,7 +1214,7 @@ void SystemGetFileBasename(const char* fileName, char* str, const size_t sz)
i++; // Skip '\\' character.
- for (; fileName[i] != ';'; i++)
+ for (; fileName[i]; i++)
{
str[j++] = fileName[i];
}