1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-01 08:29:37 +00:00

added GetFile implementation

git-svn-id: svn://svn.cc65.org/cc65/trunk@2038 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
izydorst 2003-04-04 14:41:06 +00:00
parent c415dc82d9
commit 2ff9fd615b
4 changed files with 47 additions and 2 deletions

View File

@ -885,6 +885,20 @@ you can pass address of <tt/dirEntryBuf/.
Functions described here are common for SEQ and VLIR structures because arguments passed are
starting track and sector which may point either to start of a chain for VLIR or data for SEQ.
<sect3>GetFile
<p>
<tt/char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname)/
<p>
This rougine 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/
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
<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.
<sect3>ReadFile
<p>
<tt/char ReadFile (struct tr_se *myTrSe, char *buffer, int fLength)/

View File

@ -2,7 +2,7 @@
GEOS filesystem functions
ported to small C on 25.12.1999
by Maciej 'YTM/Alliance' Witkowiak
by Maciej 'YTM/Elysium' Witkowiak
*/
#ifndef _GFILE_H
@ -17,6 +17,7 @@ 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__ FindFile(const char *fname);
char __fastcall__ ReadFile(struct tr_se *myTrSe, char *buffer, int flength);
char __fastcall__ SaveFile(struct fileheader *myHeader);

View File

@ -12,7 +12,7 @@ S_OBJS = get1stdirentry.o getnxtdirentry.o\
deleterecord.o insertrecord.o appendrecord.o readrecord.o writerecord.o\
updaterecordfile.o\
findfile.o followchain.o getfhdrinfo.o readfile.o savefile.o freefile.o\
deletefile.o renamefile.o findftypes.o readbyte.o
deletefile.o renamefile.o findftypes.o readbyte.o getfile.o
all: $(S_OBJS)

View File

@ -0,0 +1,30 @@
;
; Maciej 'YTM/Elysium' Witkowiak
;
; 4.4.2003
; char __fastcall__ GetFile(char flag, const char *fname, const char *loadaddr, const char *datadname, char *datafname);
.export _GetFile
.import popa, popax, setoserror
.include "../inc/jumptab.inc"
.include "../inc/geossym.inc"
_GetFile:
sta r3L
stx r3H
jsr popax
sta r2L
stx r2H
jsr popax
sta r7L
stx r7H
jsr popax
sta r6L
stx r6H
jsr popa
sta r0L
jsr GetFile
jmp setoserror