added memory mapping routines to CRT memory layout
This commit is contained in:
1 parent
9c29c86a6d
commit
cb2ec4e9f3
2 files changed
+37
-6
No files matched your search
@@ -36,6 +36,7 @@
|
||||
|
||||
;; #ALIAS# map_end = KERNAL_0.map_end
|
||||
;; #ALIAS# map_NORMAL = KERNAL_0.map_NORMAL
|
||||
;; #ALIAS# map_BASIC_1 = KERNAL_0.map_BASIC_1
|
||||
|
||||
;; #ALIAS# M65_MODEGET = KERNAL_0.M65_MODEGET
|
||||
;; #ALIAS# M65_MODESET = KERNAL_0.M65_MODESET
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
; bit 0 - 1 = flash mode activated by jumper
|
||||
|
||||
|
||||
crt_init_fail:
|
||||
|
||||
+panic P_ERR_ROM_MISMATCH
|
||||
|
||||
crt_init:
|
||||
|
||||
; Setup the cart
|
||||
@@ -44,8 +48,7 @@ crt_init:
|
||||
|
||||
; Bank-in the first ROM bank
|
||||
|
||||
lda #%00000000
|
||||
sta $DE00
|
||||
jsr map_BASIC_1
|
||||
|
||||
; Check if ROM revision matches the cartridge
|
||||
|
||||
@@ -53,18 +56,45 @@ crt_init:
|
||||
@1:
|
||||
iny
|
||||
lda $E4B9, y ; Kernal ROM revision address
|
||||
cmp $9FEC, y
|
||||
cmp $9FEC, y ; cartridge ROM revision address
|
||||
bne crt_init_fail
|
||||
cmp #$00
|
||||
bne @1
|
||||
|
||||
; Unmap cartridge memory XXX provide separate map functions
|
||||
; FALLTROUGH
|
||||
|
||||
map_NORMAL:
|
||||
|
||||
; Unmap cartridge memory
|
||||
|
||||
php
|
||||
pha
|
||||
|
||||
lda #%00000010
|
||||
|
||||
; FALLTROUGH
|
||||
|
||||
map_NORMAL_common:
|
||||
|
||||
sta $DE00
|
||||
|
||||
pla
|
||||
plp
|
||||
|
||||
rts
|
||||
|
||||
crt_init_fail:
|
||||
map_BASIC_1:
|
||||
|
||||
+panic P_ERR_ROM_MISMATCH
|
||||
php
|
||||
pha
|
||||
|
||||
lda #%00000000
|
||||
beq map_NORMAL_common
|
||||
|
||||
map_KERNAL_1:
|
||||
|
||||
php
|
||||
pha
|
||||
|
||||
lda #%00010000
|
||||
bne map_NORMAL_common
|
||||
Reference in new issue
Block a user