]> git.sur5r.net Git - cc65/blob - libsrc/cbm/sysrename.s
fixed optimization bug where array index is 16-bit, e.g. arr16[i & 0x7f7f]
[cc65] / libsrc / cbm / sysrename.s
1 ;
2 ; Ullrich von Bassewitz, 2009-02-22
3 ;
4 ; unsigned char __fastcall__ _sysrename (const char *oldpath, const char *newpath);
5 ;
6
7         .export         __sysrename
8
9         .import         fnparse, fnadd, fnparsename
10         .import         opencmdchannel, closecmdchannel
11         .import         writefndiskcmd, readdiskerror
12         .import         popptr1
13
14         .import         fncmd, fnunit
15         .importzp       ptr1
16
17
18 ;--------------------------------------------------------------------------
19 ; __sysrename:
20
21 .proc   __sysrename
22
23         jsr     fnparse         ; Parse first filename, pops newpath
24         bne     done
25
26         lda     #'='
27         jsr     fnadd
28
29         jsr     popptr1
30         ; ldy     #0              Y=0 guaranteed by popptr1
31         jsr     fnparsename     ; Parse second filename
32         bne     done
33
34         ldx     fnunit
35         jsr     opencmdchannel
36         bne     done
37
38         lda     #'r'            ; Rename command
39         sta     fncmd
40         jsr     writefndiskcmd
41
42 ;       ldx     fnunit
43 ;       jsr     readdiskerror
44
45         pha
46         ldx     fnunit
47         jsr     closecmdchannel
48         pla
49
50 done:   rts
51
52 .endproc
53
54