+++ /dev/null
-\r
-#include "core.h"\r
-\r
-void decode_fat(ushort *fat, bool backup)\r
-{\r
- int i, j = 0;\r
- uchar *img;\r
-\r
- if(backup) img = (uchar *)ADR_DISKIMG + 0x00001400;\r
- else img = (uchar *)ADR_DISKIMG + 0x00000200;\r
-\r
- for(i = 0; i < 2880; i += 2){\r
- fat[i + 0] = (img[j + 0] | img[j + 1] << 8) & 0xfff;\r
- fat[i + 1] = (img[j + 1] >> 4 | img[j + 2] << 4) & 0xfff;\r
- j += 3;\r
- }\r
- return;\r
-}\r
-\r
-void load_file(uint finfo_no, uchar *buf)\r
-{\r
- int i;\r
- uchar *img;\r
- uint size;\r
- ushort clustno;\r
-\r
- if(finfo_no > 224) return;\r
-\r
- img = (uchar *)ADR_DISKIMG + 0x00003e00;\r
- size = system.io.file.list[finfo_no].size;\r
- clustno = system.io.file.list[finfo_no].clustno;\r
-\r
-\r
- for(;;){\r
- if(size <= 512){\r
- for(i = 0; i < size; i++){\r
- buf[i] = img[clustno * 512 + i];\r
- }\r
- break;\r
- }\r
- for(i = 0; i < 512; i++){\r
- buf[i] = img[clustno * 512 + i];\r
- }\r
- size -= 512;\r
- buf += 512;\r
- clustno = system.io.file.fat[clustno];\r
- \r
- }\r
-}\r
-\r
-uint search_file(char *name)\r
-{\r
- int i, j;\r
- uchar s[12];\r
-\r
- for(j = 0; j < 11; j++){\r
- s[j] = ' ';\r
- }\r
- j = 0;\r
- for(i = 0; j < 11 && name[i] != 0x00; i++){\r
- if(name[i] == '.' && j <= 8){\r
- j = 8;\r
- } else{\r
- s[j] = name[i];\r
- if('a' <= s[j] && s[j] <= 'z'){\r
- s[j] -= 0x20;\r
- }\r
- j++;\r
- }\r
- }\r
- for(i = 0; i < 224; ){\r
- if(system.io.file.list[i].name[0] == 0x00) break;\r
- if((system.io.file.list[i].type & 0x18) == 0){\r
- for(j = 0; j < 11; j++){\r
- if(system.io.file.list[i].name[j] != s[j]) goto next_file;\r
- }\r
- break; \r
- }\r
-next_file:\r
- i++;\r
- }\r
- if(i < 224 && system.io.file.list[i].name[0] != 0x00){\r
- return i;\r
- } else {\r
- return 0xFFFFFFFF;\r
- }\r
-}\r