;
; Ullrich von Bassewitz, 2004-03-21
;
-; unsigned char __fastcall__ mouse_unload (void);
+; unsigned char mouse_unload (void);
; /* Uninstall, then unload the currently loaded driver. */
- .import mouse_clear_ptr
-
.include "mouse-kernel.inc"
.include "modload.inc"
+ .import return0
-_mouse_unload:
- lda _mouse_drv
- ora _mouse_drv+1
- beq no_driver ; No driver
- lda _mouse_drv
- pha
- lda _mouse_drv+1
- pha ; Save pointer to driver
- jsr _mouse_uninstall ; Uninstall the driver
+_mouse_unload:
+ lda _mouse_drv
+ pha ; Save pointer to driver
+ ora _mouse_drv+1
+ beq no_driver ; No driver
+ lda _mouse_drv+1
+ pha
- pla
- tax
- pla ; Get pointer to driver
- jmp _mod_free ; Free the driver
+ jsr _mouse_uninstall ; Uninstall the driver
-no_driver:
- tax ; X = 0
- lda #<MOUSE_ERR_NO_DRIVER
- rts
+ pla
+ tax
+ pla ; Get pointer to driver
+ jsr _mod_free ; Free the driver
+ jmp return0 ; Return MOUSE_ERR_OK
+no_driver:
+ tax ; X = 0
+ pla ; Remove pushed junk
+ lda #<MOUSE_ERR_NO_DRIVER
+ rts