added memory mapping routines to CRT memory layout

This commit is contained in:
FeralChild64 committed 2020-10-21 20:55:16 +02:00
1 parent 9c29c86a6d
commit cb2ec4e9f3
2 files changed
+37 -6

No files matched your search

+1
View File
@@ -36,6 +36,7 @@
;; #ALIAS# map_end = KERNAL_0.map_end ;; #ALIAS# map_end = KERNAL_0.map_end
;; #ALIAS# map_NORMAL = KERNAL_0.map_NORMAL ;; #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_MODEGET = KERNAL_0.M65_MODEGET
;; #ALIAS# M65_MODESET = KERNAL_0.M65_MODESET ;; #ALIAS# M65_MODESET = KERNAL_0.M65_MODESET
@@ -35,6 +35,10 @@
; bit 0 - 1 = flash mode activated by jumper ; bit 0 - 1 = flash mode activated by jumper
crt_init_fail:
+panic P_ERR_ROM_MISMATCH
crt_init: crt_init:
; Setup the cart ; Setup the cart
@@ -44,8 +48,7 @@ crt_init:
; Bank-in the first ROM bank ; Bank-in the first ROM bank
lda #%00000000 jsr map_BASIC_1
sta $DE00
; Check if ROM revision matches the cartridge ; Check if ROM revision matches the cartridge
@@ -53,18 +56,45 @@ crt_init:
@1: @1:
iny iny
lda $E4B9, y ; Kernal ROM revision address lda $E4B9, y ; Kernal ROM revision address
cmp $9FEC, y cmp $9FEC, y ; cartridge ROM revision address
bne crt_init_fail bne crt_init_fail
cmp #$00 cmp #$00
bne @1 bne @1
; Unmap cartridge memory XXX provide separate map functions ; FALLTROUGH
map_NORMAL:
; Unmap cartridge memory
php
pha
lda #%00000010 lda #%00000010
; FALLTROUGH
map_NORMAL_common:
sta $DE00 sta $DE00
pla
plp
rts 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