]> git.sur5r.net Git - cc65/blob - libsrc/em/em_unload.s
Fixed a bug
[cc65] / libsrc / em / em_unload.s
1 ;
2 ; Ullrich von Bassewitz, 2002-11-29
3 ;
4 ; unsigned char __fastcall__ em_unload (void);
5 ; /* Unload the currently loaded driver. */
6
7
8         .include        "em-kernel.inc"
9         .include        "em-error.inc"
10         .include        "modload.inc"
11
12 _em_unload:
13         lda     _em_drv
14         ora     _em_drv+1
15         beq     no_driver               ; No driver
16
17         jsr     _em_deinstall           ; Deinstall the driver
18
19         lda     _em_drv
20         ldx     _em_drv+1
21         jsr     _mod_free               ; Free the driver
22
23         lda     #0
24         sta     _em_drv
25         sta     _em_drv+1               ; Clear the driver pointer
26
27         tax
28         rts                             ; Return zero
29
30 no_driver:
31         tax                             ; X = 0
32         lda     #EM_ERR_NO_DRIVER
33         rts
34