]> git.sur5r.net Git - cc65/blob - libsrc/serial/ser_unload.s
Two fixes from Stefan Haubenthal
[cc65] / libsrc / serial / ser_unload.s
1 ;
2 ; Ullrich von Bassewitz, 2003-04-15
3 ;
4 ; unsigned char __fastcall__ ser_unload (void);
5 ; /* Unload the currently loaded driver. */
6
7
8         .import         ser_clear_ptr
9
10         .include        "ser-kernel.inc"
11         .include        "ser-error.inc"
12         .include        "modload.inc"
13
14
15 _ser_unload:
16         lda     _ser_drv
17         ora     _ser_drv+1
18         beq     no_driver               ; No driver
19
20         lda     _ser_drv
21         pha
22         lda     _ser_drv+1
23         pha                             ; Save pointer to driver
24
25         jsr     _ser_uninstall          ; Deinstall the driver
26                  
27         pla
28         tax     
29         pla                             ; Get pointer to driver
30         jmp     _mod_free               ; Free the driver
31
32 no_driver:
33         tax                             ; X = 0
34         lda     #<SER_ERR_NO_DRIVER
35         rts
36