X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fz80if.c;h=cb0fa9b11b9f7317022082c64b72ad1367c30446;hb=bc3aea8e705ec38bdeca7f31fa069c37dd7217d3;hp=10c438abce2dda097f2c213cb1a9b085be8b4ea1;hpb=b4db550e41b2aa277f570d7bff890c8e8ee1831f;p=picodrive.git diff --git a/pico/z80if.c b/pico/z80if.c index 10c438a..cb0fa9b 100644 --- a/pico/z80if.c +++ b/pico/z80if.c @@ -1,3 +1,11 @@ +/* + * PicoDrive + * (C) notaz, 2007-2010 + * + * This work is licensed under the terms of MAME license. + * See COPYING file in the top-level directory. + */ + #include #include "pico_int.h" #include "memory.h" @@ -71,25 +79,28 @@ void z80_init(void) void z80_reset(void) { #ifdef _USE_DRZ80 - memset(&drZ80, 0, 0x54); + drZ80.Z80I = 0; + drZ80.Z80IM = 0; + drZ80.Z80IF = 0; + drZ80.z80irqvector = 0xff0000; // RST 38h + drZ80.Z80PC_BASE = drZ80.Z80PC = z80_read_map[0] << 1; + // others not changed, undefined on cold boot +/* drZ80.Z80F = (1<<2); // set ZFlag drZ80.Z80F2 = (1<<2); // set ZFlag drZ80.Z80IX = 0xFFFF << 16; drZ80.Z80IY = 0xFFFF << 16; - drZ80.Z80I = 0; - drZ80.Z80IM = 0; // 1? - drZ80.z80irqvector = 0xff0000; // RST 38h - drZ80.Z80PC_BASE = drZ80.Z80PC = z80_read_map[0] << 1; +*/ // drZ80 is locked in single bank drz80_sp_base = (PicoAHW & PAHW_SMS) ? 0xc000 : 0x0000; drZ80.Z80SP_BASE = z80_read_map[drz80_sp_base >> Z80_MEM_SHIFT] << 1; if (PicoAHW & PAHW_SMS) drZ80.Z80SP = drZ80.Z80SP_BASE + 0xdff0; // simulate BIOS + // XXX: since we use direct SP pointer, it might make sense to force it to RAM, + // but we'll rely on built-in stack protection for now #endif #ifdef _USE_CZ80 Cz80_Reset(&CZ80); - Cz80_Set_Reg(&CZ80, CZ80_IX, 0xffff); - Cz80_Set_Reg(&CZ80, CZ80_IY, 0xffff); if (PicoAHW & PAHW_SMS) Cz80_Set_Reg(&CZ80, CZ80_SP, 0xdff0); #endif