1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-03 06:29:36 +00:00

The RAM driver operates of course in bank #1 (not #2)

git-svn-id: svn://svn.cc65.org/cc65/trunk@2843 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-12-27 15:46:23 +00:00
parent f3b1ddfe8a
commit 1af46f9998

View File

@ -2,12 +2,12 @@
; Extended memory driver for the CBM510 additional RAM banks. Driver works ; Extended memory driver for the CBM510 additional RAM banks. Driver works
; without problems when linked statically. ; without problems when linked statically.
; ;
; Ullrich von Bassewitz, 2002-12-09 !!! UNTESTED !!! ; Ullrich von Bassewitz, 2002-12-09, 2003-12-27
; ;
.include "zeropage.inc" .include "zeropage.inc"
.include "em-kernel.inc" .include "em-kernel.inc"
.include "em-error.inc" .include "em-error.inc"
.include "cbm510.inc" .include "cbm510.inc"
@ -38,7 +38,7 @@
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
; Constants ; Constants
RAMBANK = 2 RAMBANK = 1
OFFS = 2 OFFS = 2
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
@ -63,15 +63,20 @@ pagecount: .res 1 ; Number of available pages
INSTALL: INSTALL:
lda #$FF lda #$FF
sta curpage ; Invalidate the current page sta curpage ; Invalidate the current page
sta pagecount ; Assume all memory available
ldx UsrMemTop+2 sec
cpx #RAMBANK ; Top of memory in bank 2? jsr $FF99 ; MEMTOP
cmp #RAMBANK ; Top of memory in bank 2?
bne @L1 ; No: We can use all the memory bne @L1 ; No: We can use all the memory
clc txa
adc UsrMemTop+1 sub #OFFS
@L1: sta pagecount tya
sbc #$00
sta pagecount
lda #<EM_ERR_OK @L1: lda #<EM_ERR_OK
ldx #>EM_ERR_OK ldx #>EM_ERR_OK
; rts ; Run into UNINSTALL instead ; rts ; Run into UNINSTALL instead
@ -112,12 +117,11 @@ MAP: sta curpage ; Remember the new page
sta IndReg sta IndReg
ldy #$00 ldy #$00
@L1: lda (ptr1),y @L1: .repeat 2
sta window,y
iny
lda (ptr1),y lda (ptr1),y
sta window,y sta window,y
iny iny
.endrepeat
bne @L1 bne @L1
stx IndReg stx IndReg
@ -154,12 +158,11 @@ COMMIT: lda curpage ; Get the current page
sta IndReg sta IndReg
ldy #$00 ldy #$00
@L1: lda window,y @L1: .repeat 2
sta (ptr1),y
iny
lda window,y lda window,y
sta (ptr1),y sta (ptr1),y
iny iny
.endrepeat
bne @L1 bne @L1
stx IndReg stx IndReg