One bug nailed (boot vectors are *whatever exists in regular 0-0xffff range").

This commit is contained in:
Angelo Salese 2015-01-28 00:20:38 +01:00
parent 6e0a315ce0
commit c652a6efe2
4 changed files with 11 additions and 7 deletions

View File

@ -75,8 +75,8 @@ void m4510_device::device_reset()
nomap = true;
// Wild guess, this setting makes the cpu start executing some code in the c65 driver
map_offset[1] = 0x30000;
map_enable = 0x80;
//map_offset[1] = 0x2e000;
//map_enable = 0x80;
m65ce02_device::device_reset();
}
@ -86,7 +86,7 @@ bool m4510_device::memory_translate(address_spacenum spacenum, int intention, of
{
address = map(address);
}
return true;
}

View File

@ -220,8 +220,8 @@ protected:
// inline helpers
static inline bool page_changing(UINT16 base, int delta) { return ((base + delta) ^ base) & 0xff00; }
static inline UINT16 set_l(UINT16 base, UINT8 val) { return (base & 0xff00) | val; }
static inline UINT16 set_h(UINT16 base, UINT8 val) { return (base & 0x00ff) | (val << 8); }
static inline UINT16 set_l(UINT16 base, UINT16 val) { return (base & 0xff00) | val; }
static inline UINT16 set_h(UINT16 base, UINT16 val) { return (base & 0x00ff) | (val << 8); }
inline void dec_SP() { SP = set_l(SP, SP-1); }
inline void inc_SP() { SP = set_l(SP, SP+1); }

View File

@ -342,9 +342,10 @@ bra_ce_rel
prefetch();
bra_rw2
printf("PC=%04x\n",PC);
TMP = read_pc();
TMP = set_h(TMP, read_pc());
PC += TMP;
PC += TMP - 1;
prefetch();
brk_ce_imp
@ -734,11 +735,14 @@ jmp_ce_ind
jsr_ce_adr
TMP = read_pc();
write(SP, PC>>8);
printf("a %04x\n",SP);
dec_SP_ce();
write(SP, PC);
printf("b %04x\n",SP);
dec_SP_ce();
TMP = set_h(TMP, read_pc());
PC = TMP;
printf("%04x\n",TMP);
prefetch();
jsr_iax

View File

@ -125,7 +125,7 @@ WRITE8_MEMBER(c65_state::vic4567_dummy_w)
printf("CONTROL A %02x\n",data);
m_VIC3_ControlA = data;
break;
default:
default:
if(!space.debugger_access())
printf("%02x %02x\n",offset,data);
break;