diff --git a/c64/aliases/,aliases_config.s b/c64/aliases/,aliases_config.s index 6d97e40c..953c5ee7 100644 --- a/c64/aliases/,aliases_config.s +++ b/c64/aliases/,aliases_config.s @@ -102,9 +102,9 @@ // Check that memory model and ROM layout configurations is correct { -//#if ROM_LAYOUT_M65 && !CONFIG_CPU_M65_45GS02 -// .error "Mega65 ROM layout requires CONFIG_CPU_M65_45GS02" -//#endif +#if ROM_LAYOUT_M65 && !CONFIG_CPU_M65_45GS02 + .error "Mega65 ROM layout requires CONFIG_CPU_M65_45GS02" +#endif //#if ROM_LAYOUT_M65 && !CONFIG_MB_MEGA_65 // .error "Mega65 ROM layout requires CONFIG_MB_MEGA_65" //#endif diff --git a/c64/kernal/banking/4000.mega65_kernal_1.s b/c64/kernal/banking/4000.mega65_kernal_1.s index ffaaf370..fbe3311a 100644 --- a/c64/kernal/banking/4000.mega65_kernal_1.s +++ b/c64/kernal/banking/4000.mega65_kernal_1.s @@ -1,13 +1,28 @@ -#if (ROM_LAYOUT_M65 && SEGMENT_KERNAL_1) // // Definitions for communication with Mega65 segment KERNAL_1 // -// XXX this is for testing only +#if (ROM_LAYOUT_M65 && SEGMENT_KERNAL_0) + + // Labels for jumps + + +.label KERNAL_1__TESTROUTINE = $4000 + + +#elif (ROM_LAYOUT_M65 && SEGMENT_KERNAL_1) + + // Jumptable (OpenROMs private!) + + + jmp TESTROUTINE + + +TESTROUTINE: rts -#endif // ROM layout +#endif diff --git a/c64/kernal/banking/mega65_mapping.s b/c64/kernal/banking/mega65_mapping.s new file mode 100644 index 00000000..d4f037f1 --- /dev/null +++ b/c64/kernal/banking/mega65_mapping.s @@ -0,0 +1,51 @@ +#if (ROM_LAYOUT_M65 && SEGMENT_KERNAL_0) + +// +// ROM mapping routines for Mega65 +// + + +map_NORMAL: + + pha + phx + phy + phz + + lda #$00 + tax + tay + taz + + // FALLTROUGH + +map_end: + + map + eom + + plz + ply + plx + pla + + rts + + +map_KERNAL_1: + + pha + phx + phy + phz + + lda #$00 + tay + taz + + ldx #$42 // XXX map 8KB from 0x20000 to 0x4000 - somehow does not seem to work + + bne map_end + + +#endif // ROM layout