mirror of
https://github.com/cc65/cc65.git
synced 2025-01-28 00:30:12 +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:
parent
c415dc82d9
commit
2ff9fd615b
@ -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)/
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
||||
|
30
libsrc/geos/file/getfile.s
Normal file
30
libsrc/geos/file/getfile.s
Normal 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
|
Loading…
x
Reference in New Issue
Block a user