1313#define HostOS 0x01
1414// #endif
1515
16+ #if !defined(FILE_TYPE )
17+ #define FILE_TYPE FsFile
18+ #endif
19+
1620#if defined CORE_TEENSY
1721#define HostOS 0x04
1822#endif
2630/* Memory abstraction functions */
2731/*===============================================================================*/
2832bool _RamLoad (char * filename , uint16 address ) {
29- File32 f ;
33+ FILE_TYPE f ;
3034 bool result = false;
3135
3236 if (f = SD .open (filename , FILE_READ )) {
@@ -40,7 +44,7 @@ bool _RamLoad(char* filename, uint16 address) {
4044
4145/* Filesystem (disk) abstraction fuctions */
4246/*===============================================================================*/
43- File32 rootdir , userdir ;
47+ FILE_TYPE rootdir , userdir ;
4448#define FOLDERCHAR '/'
4549
4650typedef struct {
@@ -60,31 +64,29 @@ typedef struct {
6064 uint8 al [16 ];
6165} CPM_DIRENTRY ;
6266
63- static DirFat_t fileDirEntry ;
64-
6567bool _sys_exists (uint8 * filename ) {
6668 return (SD .exists ((const char * )filename ));
6769}
6870
69- File32 _sys_fopen_w (uint8 * filename ) {
71+ FILE_TYPE _sys_fopen_w (uint8 * filename ) {
7072 return (SD .open ((char * )filename , O_CREAT | O_WRITE ));
7173}
7274
73- int _sys_fputc (uint8 ch , File32 & f ) {
75+ int _sys_fputc (uint8 ch , FILE_TYPE & f ) {
7476 return (f .write (ch ));
7577}
7678
77- void _sys_fflush (File32 & f ) {
79+ void _sys_fflush (FILE_TYPE & f ) {
7880 f .flush ();
7981}
8082
81- void _sys_fclose (File32 & f ) {
83+ void _sys_fclose (FILE_TYPE & f ) {
8284 f .close ();
8385}
8486
8587int _sys_select (uint8 * disk ) {
8688 uint8 result = FALSE;
87- File32 f ;
89+ FILE_TYPE f ;
8890
8991 digitalWrite (LED , HIGH ^ LEDinv );
9092 if (f = SD .open ((char * )disk , O_READ )) {
@@ -98,7 +100,7 @@ int _sys_select(uint8* disk) {
98100
99101long _sys_filesize (uint8 * filename ) {
100102 long l = -1 ;
101- File32 f ;
103+ FILE_TYPE f ;
102104
103105 digitalWrite (LED , HIGH ^ LEDinv );
104106 if (f = SD .open ((char * )filename , O_RDONLY )) {
@@ -110,13 +112,12 @@ long _sys_filesize(uint8* filename) {
110112}
111113
112114int _sys_openfile (uint8 * filename ) {
113- File32 f ;
115+ FILE_TYPE f ;
114116 int result = 0 ;
115117
116118 digitalWrite (LED , HIGH ^ LEDinv );
117119 f = SD .open ((char * )filename , O_READ );
118120 if (f ) {
119- f .dirEntry (& fileDirEntry );
120121 f .close ();
121122 result = 1 ;
122123 }
@@ -125,7 +126,7 @@ int _sys_openfile(uint8* filename) {
125126}
126127
127128int _sys_makefile (uint8 * filename ) {
128- File32 f ;
129+ FILE_TYPE f ;
129130 int result = 0 ;
130131
131132 digitalWrite (LED , HIGH ^ LEDinv );
@@ -145,7 +146,7 @@ int _sys_deletefile(uint8* filename) {
145146}
146147
147148int _sys_renamefile (uint8 * filename , uint8 * newname ) {
148- File32 f ;
149+ FILE_TYPE f ;
149150 int result = 0 ;
150151
151152 digitalWrite (LED , HIGH ^ LEDinv );
@@ -165,7 +166,7 @@ void _sys_logbuffer(uint8* buffer) {
165166#ifdef CONSOLELOG
166167 puts ((char * )buffer );
167168#else
168- File32 f ;
169+ FILE_TYPE f ;
169170 uint8 s = 0 ;
170171 while (* (buffer + s )) // Computes buffer size
171172 ++ s ;
@@ -181,7 +182,7 @@ void _sys_logbuffer(uint8* buffer) {
181182bool _sys_extendfile (char * fn , unsigned long fpos )
182183{
183184 uint8 result = true;
184- File32 f ;
185+ FILE_TYPE f ;
185186 unsigned long i ;
186187
187188 digitalWrite (LED , HIGH ^ LEDinv );
@@ -204,7 +205,7 @@ bool _sys_extendfile(char* fn, unsigned long fpos)
204205
205206uint8 _sys_readseq (uint8 * filename , long fpos ) {
206207 uint8 result = 0xff ;
207- File32 f ;
208+ FILE_TYPE f ;
208209 uint8 bytesread ;
209210 uint8 dmabuf [BlkSZ ];
210211 uint8 i ;
@@ -234,7 +235,7 @@ uint8 _sys_readseq(uint8* filename, long fpos) {
234235
235236uint8 _sys_writeseq (uint8 * filename , long fpos ) {
236237 uint8 result = 0xff ;
237- File32 f ;
238+ FILE_TYPE f ;
238239
239240 digitalWrite (LED , HIGH ^ LEDinv );
240241 if (_sys_extendfile ((char * )filename , fpos ))
@@ -256,7 +257,7 @@ uint8 _sys_writeseq(uint8* filename, long fpos) {
256257
257258uint8 _sys_readrand (uint8 * filename , long fpos ) {
258259 uint8 result = 0xff ;
259- File32 f ;
260+ FILE_TYPE f ;
260261 uint8 bytesread ;
261262 uint8 dmabuf [BlkSZ ];
262263 uint8 i ;
@@ -297,7 +298,7 @@ uint8 _sys_readrand(uint8* filename, long fpos) {
297298
298299uint8 _sys_writerand (uint8 * filename , long fpos ) {
299300 uint8 result = 0xff ;
300- File32 f ;
301+ FILE_TYPE f ;
301302
302303 digitalWrite (LED , HIGH ^ LEDinv );
303304 if (_sys_extendfile ((char * )filename , fpos )) {
@@ -325,7 +326,7 @@ static uint16 fileExtentsUsed = 0;
325326static uint16 firstFreeAllocBlock ;
326327
327328uint8 _findnext (uint8 isdir ) {
328- File32 f ;
329+ FILE_TYPE f ;
329330 uint8 result = 0xff ;
330331 bool isfile ;
331332 uint32 bytes ;
@@ -339,7 +340,6 @@ uint8 _findnext(uint8 isdir) {
339340 f .getName ((char * )& findNextDirName [0 ], 13 );
340341 isfile = !f .isDirectory ();
341342 bytes = f .size ();
342- f .dirEntry (& fileDirEntry );
343343 f .close ();
344344 if (!isfile )
345345 continue ;
@@ -440,7 +440,7 @@ uint8 _findfirstallusers(uint8 isdir) {
440440}
441441
442442uint8 _Truncate (char * filename , uint8 rc ) {
443- File32 f ;
443+ FILE_TYPE f ;
444444 int result = 0 ;
445445
446446 digitalWrite (LED , HIGH ^ LEDinv );
0 commit comments