Added em_use
git-svn-id: svn://svn.cc65.org/cc65/trunk@1719 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -79,6 +80,13 @@ PAGECOUNT:
|
||||
ldx pagecount+1
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
; The GeoRAM cartridge does not copy but actually map the window, so USE is
|
||||
; identical to MAP.
|
||||
|
||||
USE = MAP
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; MAP: Map the page in a/x into memory and return a pointer to the page in
|
||||
; a/x. The contents of the currently mapped page (if any) may be discarded
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -114,6 +115,15 @@ MAP: sta curpage
|
||||
ldx #>window ; Return the window address
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
|
||||
USE: sta curpage
|
||||
stx curpage+1 ; Remember the page
|
||||
lda #<window
|
||||
ldx #>window ; Return the window
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; COMMIT: Commit changes in the memory window to extended storage.
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -138,6 +139,15 @@ MAP: sta curpage
|
||||
ldx #>window ; Return the window address
|
||||
done: rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
|
||||
USE: sta curpage
|
||||
stx curpage+1 ; Remember the page
|
||||
lda #<window
|
||||
ldx #>window ; Return the window
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; COMMIT: Commit changes in the memory window to extended storage.
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -79,6 +80,13 @@ PAGECOUNT:
|
||||
ldx pagecount+1
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
; The GeoRAM cartridge does not copy but actually map the window, so USE is
|
||||
; identical to MAP.
|
||||
|
||||
USE = MAP
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; MAP: Map the page in a/x into memory and return a pointer to the page in
|
||||
; a/x. The contents of the currently mapped page (if any) may be discarded
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -109,6 +110,14 @@ MAP: sta curpage ; Remember the new page
|
||||
ldx #>window ; Return the window address
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
|
||||
USE: sta curpage ; Remember the page
|
||||
lda #<window
|
||||
ldx #>window ; Return the window
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; COMMIT: Commit changes in the memory window to extended storage.
|
||||
|
||||
@@ -249,7 +258,7 @@ common: ldy #EM_COPY_COUNT+1
|
||||
|
||||
; Done
|
||||
|
||||
@L4: rts
|
||||
@L4: rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; COPYTO: Copy from linear into extended memory. A pointer to a structure
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
.word DEINSTALL
|
||||
.word PAGECOUNT
|
||||
.word MAP
|
||||
.word USE
|
||||
.word COMMIT
|
||||
.word COPYFROM
|
||||
.word COPYTO
|
||||
@@ -137,6 +138,15 @@ MAP: sta curpage
|
||||
ldx #>window ; Return the window address
|
||||
done: rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; USE: Tell the driver that the window is now associated with a given page.
|
||||
|
||||
USE: sta curpage
|
||||
stx curpage+1 ; Remember the page
|
||||
lda #<window
|
||||
ldx #>window ; Return the window
|
||||
rts
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; COMMIT: Commit changes in the memory window to extended storage.
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ S_OBJS = em-kernel.o \
|
||||
em_map.o \
|
||||
em_pagecount.o \
|
||||
em_unload.o \
|
||||
em_use.o
|
||||
|
||||
|
||||
all: $(C_OBJS) $(S_OBJS)
|
||||
|
||||
@@ -23,13 +23,14 @@ _em_drv: .res 2 ; Pointer to driver
|
||||
; Jump table for the driver functions.
|
||||
.data
|
||||
emd_vectors:
|
||||
emd_install: jmp $0000
|
||||
emd_deinstall: jmp $0000
|
||||
emd_pagecount: jmp $0000
|
||||
emd_map: jmp $0000
|
||||
emd_commit: jmp $0000
|
||||
emd_copyfrom: jmp $0000
|
||||
emd_copyto: jmp $0000
|
||||
emd_install: jmp return0
|
||||
emd_deinstall: jmp return0
|
||||
emd_pagecount: jmp return0
|
||||
emd_map: jmp return0
|
||||
emd_use: jmp return0
|
||||
emd_commit: jmp return0
|
||||
emd_copyfrom: jmp return0
|
||||
emd_copyto: jmp return0
|
||||
|
||||
; Driver header signature
|
||||
.rodata
|
||||
|
||||
17
libsrc/em/em_use.s
Normal file
17
libsrc/em/em_use.s
Normal file
@@ -0,0 +1,17 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 2002-11-29
|
||||
;
|
||||
; void* __fastcall__ em_use (unsigned page);
|
||||
; /* Tell the driver that the memory window is associated with a given page.
|
||||
; * This call is very similar to em_map. The difference is that the driver
|
||||
; * does not necessarily transfer the current contents of the extended
|
||||
; * memory into the returned window. If you're going to just write to the
|
||||
; * window and the current contents of the window are invalid or no longer
|
||||
; * use, this call may perform better than em_map.
|
||||
; */
|
||||
|
||||
|
||||
.include "em-kernel.inc"
|
||||
|
||||
_em_use = emd_use ; Use driver entry
|
||||
|
||||
Reference in New Issue
Block a user