Rewrote cbm_open and cbm_read in assembler saving about 80 bytes total.
git-svn-id: svn://svn.cc65.org/cc65/trunk@1318 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
44
libsrc/cbm/cbm_open.s
Normal file
44
libsrc/cbm/cbm_open.s
Normal file
@@ -0,0 +1,44 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 22.06.2002
|
||||
;
|
||||
; Original C code by Marc 'BlackJack' Rintsch, 18.03.2001
|
||||
;
|
||||
; unsigned char __fastcall__ cbm_open (unsigned char lfn,
|
||||
; unsigned char device,
|
||||
; unsigned char sec_addr,
|
||||
; const char* name);
|
||||
; /* Opens a file. Works just like the BASIC command.
|
||||
; * Returns 0 if opening was successful, otherwise an errorcode (see table
|
||||
; * below).
|
||||
; */
|
||||
; {
|
||||
; cbm_k_setlfs(lfn, device, sec_addr);
|
||||
; cbm_k_setnam(name);
|
||||
; return _oserror = cbm_k_open();
|
||||
; }
|
||||
;
|
||||
|
||||
.export _cbm_open
|
||||
.import popa
|
||||
.import _cbm_k_setlfs, _cbm_k_setnam, _cbm_k_open
|
||||
.import __oserror
|
||||
|
||||
_cbm_open:
|
||||
pha
|
||||
txa
|
||||
pha ; Save name
|
||||
|
||||
jsr popa ; Get sec_addr
|
||||
jsr _cbm_k_setlfs ; Call SETLFS, pop all args
|
||||
|
||||
pla
|
||||
tax
|
||||
pla ; Get name
|
||||
jsr _cbm_k_setnam
|
||||
|
||||
jsr _cbm_k_open
|
||||
sta __oserror
|
||||
|
||||
rts
|
||||
|
||||
|
||||
Reference in New Issue
Block a user