added missing parameters to GetFile and SaveFile functions

git-svn-id: svn://svn.cc65.org/cc65/trunk@2068 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
izydorst
2003-04-17 16:22:17 +00:00
parent 64c0bcb9ca
commit 2cba160622
4 changed files with 19 additions and 12 deletions

View File

@@ -890,14 +890,14 @@ starting track and sector which may point either to start of a chain for VLIR or
<sect3>GetFile <sect3>GetFile
<p> <p>
<tt/char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname)/ <tt/char __fastcall__ GetFile(char saveflag, char loadflag, const char *fname, const char *loadaddr, const char *datadname, char *datafname)/
<p> <p>
This routine loads and runs a given file <tt/fname/. The file must be one of following types: This routine loads and runs a given file <tt/fname/. The file must be one of following types:
<tt/SYSTEM, DESK_ACC, APPLICATION, APPL_DATA, PRINTER,/ or <tt/INPUT_DEVICE/. The execution <tt/SYSTEM, DESK_ACC, APPLICATION, APPL_DATA, PRINTER,/ or <tt/INPUT_DEVICE/. The execution
address is taken from file header. It is zero, then file is only loaded. Only the first chain address is taken from file header. It is zero, then file is only loaded. Only the first chain
from VLIR files is loaded. If <tt/flag/ has bit 0 set then load address is taken from <tt/loadaddr/ from VLIR files is loaded. If <tt/loadflag/ has bit 0 set then load address is taken from <tt/loadaddr/
and not from file header. In this case <tt/APPLICATION/ files will be only loaded, not executed. and not from file header. In this case <tt/APPLICATION/ files will be only loaded, not executed.
This does not apply to <tt/DESK_ACC/. If either bit 6 or 7 of <tt/flag/ are set, then 16 bytes from This does not apply to <tt/DESK_ACC/. If either bit 6 or 7 of <tt/loadflag/ are set, then 16 bytes from
<tt/datadname/ is copied to <tt/dataDiskName/ and 16 bytes from <tt/datafname/ goes to <tt/dataFileName/ <tt/datadname/ is copied to <tt/dataDiskName/ and 16 bytes from <tt/datafname/ goes to <tt/dataFileName/
in system case. If you don't use it it is safe to pass <tt/NULL/ to this function. in system case. If you don't use it it is safe to pass <tt/NULL/ to this function.
@@ -925,17 +925,19 @@ returned value is invalid.
<sect3>SaveFile <sect3>SaveFile
<p> <p>
<tt/char SaveFile (struct fileheader *myHeader)/ <tt/char SaveFile (char skip, struct fileheader *myHeader)/
<p> <p>
<tt/SaveFile/ will take care of everything needed to create a GEOS file, no matter VLIR of SEQ <tt/SaveFile/ will take care of everything needed to create a GEOS file, no matter VLIR of SEQ
structure. All you need to do is to place data in proper place and prepare a header which will structure. All you need to do is to place data in proper place and prepare a header which will
contain all information about a file. contain all information about a file. The <tt/skip/ parameter says how many directory pages you
want to skip before searching for a free slot for directory entry. In most cases you will put
<tt/0/ there.
You have to declare a <tt/struct fileheader/ and fill it with proper values. There is only one You have to declare a <tt/struct fileheader/ and fill it with proper values. There is only one
difference - the first two bytes which are link to nonexistant next sector are replaced by a difference - the first two bytes which are link to nonexistant next sector are replaced by a
pointer to the DOS filename of the file. pointer to the DOS filename of the file.
When saving files two most important fields in <tt/struct fileheader/ are <tt/fileheader.load_address/ When saving sequential files two most important fields in <tt/struct fileheader/ are <tt/fileheader.load_address/
and <tt/fileheader.end_address/. and <tt/fileheader.end_address/.
<sect3>FreeFile <sect3>FreeFile

View File

@@ -17,11 +17,11 @@ struct filehandle *__fastcall__ GetNxtDirEntry(void);
char __fastcall__ FindFTypes(char *buffer, char ftype, char fmaxnum, const char *classtxt); char __fastcall__ FindFTypes(char *buffer, char ftype, char fmaxnum, const char *classtxt);
char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, char __fastcall__ GetFile(char saveflag, char loadflag, const char *fname,
const char *datadname, char *datafname); const char *loadaddr, const char *datadname, char *datafname);
char __fastcall__ FindFile(const char *fname); char __fastcall__ FindFile(const char *fname);
char __fastcall__ ReadFile(struct tr_se *myTrSe, char *buffer, unsigned flength); char __fastcall__ ReadFile(struct tr_se *myTrSe, char *buffer, unsigned flength);
char __fastcall__ SaveFile(struct fileheader *myHeader); char __fastcall__ SaveFile(char skip, struct fileheader *myHeader);
char __fastcall__ FreeFile(struct tr_se myTable[]); char __fastcall__ FreeFile(struct tr_se myTable[]);
char __fastcall__ DeleteFile(const char *fname); char __fastcall__ DeleteFile(const char *fname);
char __fastcall__ RenameFile(const char *source, const char *target); char __fastcall__ RenameFile(const char *source, const char *target);

View File

@@ -4,7 +4,7 @@
; ;
; 4.4.2003 ; 4.4.2003
; char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname); ; char __fastcall__ GetFile(char saveflag, char loadflag, const char *fname, const char *loadaddr, const char *datadname, char *datafname);
.export _GetFile .export _GetFile
.import popa, popax, setoserror .import popa, popax, setoserror
@@ -26,5 +26,7 @@ _GetFile:
stx r6H stx r6H
jsr popa jsr popa
sta r0L sta r0L
jsr popa
sta r10L
jsr GetFile jsr GetFile
jmp setoserror jmp setoserror

View File

@@ -4,16 +4,19 @@
; ;
; 25.12.1999, 2.1.2003 ; 25.12.1999, 2.1.2003
; char SaveFile (struct fileheader *myHeader); ; char SaveFile (char skip, struct fileheader *myHeader);
.import setoserror .import setoserror
.import popa
.export _SaveFile .export _SaveFile
.include "../inc/jumptab.inc" .include "../inc/jumptab.inc"
.include "../inc/geossym.inc" .include "../inc/geossym.inc"
_SaveFile: _SaveFile:
sta r9L sta r9L
stx r9H stx r9H
jsr popa
sta r10L
jsr SaveFile jsr SaveFile
jmp setoserror jmp setoserror