Fixed ram2e bug clobbering beginning of RAM disk
This commit is contained in:
parent
2260b3edbb
commit
bb0113ae56
28
ram2e.c
28
ram2e.c
|
@ -55,6 +55,16 @@ static char auxram_detect() {
|
||||||
__asm__("sta $C009"); // Store in ALTZP
|
__asm__("sta $C009"); // Store in ALTZP
|
||||||
__asm__("sta $C073"); // Set RW bank 0
|
__asm__("sta $C073"); // Set RW bank 0
|
||||||
|
|
||||||
|
// Save RW bank 0 $00-03
|
||||||
|
__asm__("lda $00");
|
||||||
|
__asm__("pha");
|
||||||
|
__asm__("lda $01");
|
||||||
|
__asm__("pha");
|
||||||
|
__asm__("lda $02");
|
||||||
|
__asm__("pha");
|
||||||
|
__asm__("lda $03");
|
||||||
|
__asm__("pha");
|
||||||
|
|
||||||
// Store 00 FF 55 AA in RW bank 0 ZP
|
// Store 00 FF 55 AA in RW bank 0 ZP
|
||||||
__asm__("lda #$00");
|
__asm__("lda #$00");
|
||||||
__asm__("sta $00");
|
__asm__("sta $00");
|
||||||
|
@ -81,11 +91,29 @@ static char auxram_detect() {
|
||||||
|
|
||||||
// Found aux ram card
|
// Found aux ram card
|
||||||
__asm__("sta $C008"); // Don't store in ALTZP
|
__asm__("sta $C008"); // Don't store in ALTZP
|
||||||
|
// Restore RW bank 0 $00-03
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $03");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $02");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $01");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $00");
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// Not found
|
// Not found
|
||||||
noramworks:
|
noramworks:
|
||||||
__asm__("sta $C008"); // Don't store in ALTZP
|
__asm__("sta $C008"); // Don't store in ALTZP
|
||||||
|
// Restore RW bank 0 $00-03
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $03");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $02");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $01");
|
||||||
|
__asm__("pla");
|
||||||
|
__asm__("sta $00");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue