1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-22 12:30:41 +00:00

Renamed _em_deinstall -> _em_uninstall, emd_deinstall -> emd_uninstall.

Make _em_install and _em_uninstall user callable.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1962 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-02-10 23:01:13 +00:00
parent 97e7ce86ae
commit ca71d94e00
3 changed files with 23 additions and 31 deletions

View File

@ -4,8 +4,7 @@
; Common functions of the extended memory API. ; Common functions of the extended memory API.
; ;
.export _em_install, _em_deinstall .export em_clear_ptr
.import return0 .import return0
.importzp ptr1 .importzp ptr1
@ -24,7 +23,7 @@ _em_drv: .res 2 ; Pointer to driver
.data .data
emd_vectors: emd_vectors:
emd_install: jmp return0 emd_install: jmp return0
emd_deinstall: jmp return0 emd_uninstall: jmp return0
emd_pagecount: jmp return0 emd_pagecount: jmp return0
emd_map: jmp return0 emd_map: jmp return0
emd_use: jmp return0 emd_use: jmp return0
@ -86,23 +85,19 @@ set: sta emd_vectors,x
rts rts
;---------------------------------------------------------------------------- ;----------------------------------------------------------------------------
; void __fastcall__ em_deinstall (void); ; unsigned char __fastcall__ em_uninstall (void);
; /* Deinstall the driver before unloading it */ ; /* Uninstall the currently loaded driver and return an error code.
; * Note: This call does not free allocated memory.
; */
_em_deinstall: _em_uninstall:
jsr emd_deinstall ; Call driver routine jsr emd_uninstall ; Call driver routine
; Point all jump vectors to return0 em_clear_ptr: ; External entry point
lda #0
ldx #0 sta _em_drv
@L1: inx ; Skip JMP opcode sta _em_drv+1 ; Clear the driver pointer
lda #<return0
jsr set
lda #>return0
jsr set
cpx #(EMD_HDR_JUMPCOUNT*3)
bne @L1
rts
tax
rts ; Return zero

View File

@ -6,10 +6,10 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2002 Ullrich von Bassewitz */ /* (C) 2002-2003 Ullrich von Bassewitz */
/* Wacholderweg 14 */ /* Römerstrasse 52 */
/* D-70597 Stuttgart */ /* D-70794 Filderstadt */
/* EMail: uz@musoftware.de */ /* EMail: uz@cc65.org */
/* */ /* */
/* */ /* */
/* This software is provided 'as-is', without any expressed or implied */ /* This software is provided 'as-is', without any expressed or implied */
@ -51,7 +51,7 @@ unsigned char __fastcall__ em_load_driver (const char* name)
/* Check if we do already have a driver loaded. If so, remove it. */ /* Check if we do already have a driver loaded. If so, remove it. */
if (em_drv != 0) { if (em_drv != 0) {
em_deinstall (); em_uninstall ();
} }
/* Now open the file */ /* Now open the file */

View File

@ -5,6 +5,8 @@
; /* Unload the currently loaded driver. */ ; /* Unload the currently loaded driver. */
.import em_clear_ptr
.include "em-kernel.inc" .include "em-kernel.inc"
.include "em-error.inc" .include "em-error.inc"
.include "modload.inc" .include "modload.inc"
@ -14,18 +16,13 @@ _em_unload:
ora _em_drv+1 ora _em_drv+1
beq no_driver ; No driver beq no_driver ; No driver
jsr _em_deinstall ; Deinstall the driver jsr emd_uninstall ; Deinstall the driver
lda _em_drv lda _em_drv
ldx _em_drv+1 ldx _em_drv+1
jsr _mod_free ; Free the driver jsr _mod_free ; Free the driver
lda #0 jmp em_clear_ptr ; Clear the driver pointer, return zero
sta _em_drv
sta _em_drv+1 ; Clear the driver pointer
tax
rts ; Return zero
no_driver: no_driver:
tax ; X = 0 tax ; X = 0