mirror of
https://github.com/cc65/cc65.git
synced 2024-11-01 11:04:34 +00:00
38 lines
959 B
ArmAsm
38 lines
959 B
ArmAsm
;
|
|
; Ullrich von Bassewitz, 2003-04-15
|
|
;
|
|
; unsigned char ser_unload (void);
|
|
; /* Unload the currently loaded driver. */
|
|
|
|
|
|
.include "ser-kernel.inc"
|
|
.include "ser-error.inc"
|
|
.include "modload.inc"
|
|
|
|
.import ser_clear_ptr
|
|
.import return0, return1
|
|
|
|
|
|
|
|
_ser_unload:
|
|
lda _ser_drv
|
|
pha ; Save pointer to driver
|
|
ora _ser_drv+1
|
|
beq no_driver ; No driver
|
|
lda _ser_drv+1
|
|
pha
|
|
|
|
jsr _ser_uninstall ; Uninstall the driver
|
|
|
|
pla
|
|
tax
|
|
pla ; Get pointer to driver
|
|
jsr _mod_free ; Free the driver
|
|
.assert SER_ERR_OK = 0, error
|
|
jmp return0
|
|
|
|
no_driver:
|
|
pla ; Remove pushed junk
|
|
.assert SER_ERR_NO_DRIVER = 1, error
|
|
jmp return1
|