]> git.sur5r.net Git - cc65/commitdiff
added missing parameters to GetFile and SaveFile functions
authorizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 17 Apr 2003 16:22:17 +0000 (16:22 +0000)
committerizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 17 Apr 2003 16:22:17 +0000 (16:22 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2068 b7a2c559-68d2-44c3-8de9-860c34a00d81

doc/geos.sgml
include/geos/gfile.h
libsrc/geos/file/getfile.s
libsrc/geos/file/savefile.s

index 857de52687a4d093e17f3e7d879d4bce2a537ee1..4c7b76cf54739c8f3a9591cc149cf59d964f2390 100644 (file)
@@ -890,14 +890,14 @@ starting track and sector which may point either to start of a chain for VLIR or
 
 <sect3>GetFile
 <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>
 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
 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.
-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/
 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
 <p>
-<tt/char SaveFile (struct fileheader *myHeader)/
+<tt/char SaveFile (char skip, struct fileheader *myHeader)/
 <p>
 <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
-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
 difference - the first two bytes which are link to nonexistant next sector are replaced by a
 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/.
 
 <sect3>FreeFile
index e6f9c14d26ae75cc8d45c264376ef5b5f8eb5a93..75a606c51a0bf559c626a88c3b3471321abf844b 100644 (file)
@@ -17,11 +17,11 @@ struct filehandle *__fastcall__ GetNxtDirEntry(void);
 
 char __fastcall__ FindFTypes(char *buffer, char ftype, char fmaxnum, const char *classtxt);
 
-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);
 char __fastcall__ FindFile(const char *fname);
 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__ DeleteFile(const char *fname);
 char __fastcall__ RenameFile(const char *source, const char *target);
index b245493ab613dd501939c988cef5a7c5f870ea19..82ae9e0436f97ea95532caa4fc5bceebe274c2da 100644 (file)
@@ -4,7 +4,7 @@
 ;
 ; 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
            .import popa, popax, setoserror
@@ -26,5 +26,7 @@ _GetFile:
        stx r6H
        jsr popa
        sta r0L
+       jsr popa
+       sta r10L
        jsr GetFile
        jmp setoserror
index 85bc8c484a93729265cf7f9be0adbba803372261..78e9b3cce76b6c023d0a829c2bfa550d694eeb9b 100644 (file)
@@ -4,16 +4,19 @@
 ;
 ; 25.12.1999, 2.1.2003
 
-; char SaveFile  (struct fileheader *myHeader);
+; char SaveFile  (char skip, struct fileheader *myHeader);
 
            .import setoserror
+           .import popa
            .export _SaveFile
 
            .include "../inc/jumptab.inc"
            .include "../inc/geossym.inc"
-       
+
 _SaveFile:
        sta r9L
        stx r9H
+       jsr popa
+       sta r10L
        jsr SaveFile
        jmp setoserror