static BYTE REGPARM1 rex_io2_read(WORD addr) { if ((addr & 0xff) < 0xc0) { /* disable cartridge rom */ cartridge_config_changed(2, 2, CMODE_READ); } else { /* enable cartridge rom */ cartridge_config_changed(0, 0, CMODE_READ); } return 0; }
/* Resets the card */ void mmc64_reset(void) { mmc64_active = 0; mmc64_spi_mode = 0; mmc64_extrom = 0; mmc64_flashmode = 0; mmc64_cport = 0; mmc64_speed = 0; mmc64_cardsel = 0; mmc64_biossel = 0; mmc64_extexrom = 0x04; mmc64_extgame = 0x02; if (mmc64_clockport_enabled != 1) { mmc64_clockport_enabled = 1; #ifdef HAVE_TFE tfe_clockport_changed(); #endif } if (mmc64_enabled) { #if USEPASSTHROUGHHACK export.exrom = 1; mem_pla_config_changed(); #else cartridge_config_changed(0, 0, CMODE_READ); #endif }
void stardos_config_init(void) { stardos_install_kernal(); cnt_de61=0; cnt_dfa1=0; cartridge_config_changed(2, 2, CMODE_READ); }
void stardos_config_setup(BYTE *rawcart) { memcpy(roml_banks, &rawcart[0], 0x2000); memcpy(stardos_kernal, &rawcart[0x2000], 0x2000); cartridge_config_changed(2, 2, CMODE_READ); }
static void dqbb_change_config(void) { if (dqbb_enabled) { if (dqbb_off) { cartridge_config_changed(2, 2, CMODE_READ); } else { if (dqbb_a000_mapped) { cartridge_config_changed(1, 1, CMODE_READ); } else { cartridge_config_changed(0, 0, CMODE_READ); } } } else { cartridge_config_changed(2, 2, CMODE_READ); } }
void stb_config_setup(BYTE *rawcart) { /* copy banks 0 and 1 */ memcpy(roml_banks, rawcart, 0x4000); /* turn on normal config: bank 0 */ cartridge_config_changed(0, 0, CMODE_READ); }
static void REGPARM2 dsm_io1_store(WORD addr, BYTE value) { DBG(("io1 w %04x %02x\n", addr, value)); if (addr == 0) { cartridge_config_changed(2, 2, CMODE_READ); DBG(("Diashow Maker disabled\n")); } }
static BYTE REGPARM1 dsm_io1_read(WORD addr) { DBG(("io1 r %04x\n", addr)); if (addr == 0) { cartridge_config_changed(2, 2, CMODE_READ); DBG(("Diashow Maker disabled\n")); } return 0; /* invalid */ }
void REGPARM2 actionreplay_io1_store(WORD addr, BYTE value) { if (ar_active) { cartridge_config_changed((BYTE)(value & 3), value, CMODE_WRITE); if (value & 4) ar_active = 0; } }
static void stb_io(WORD addr) { switch (addr & 3) { /* normal config: bank 0 visible */ case 0: case 1: cartridge_config_changed(0, 0, CMODE_READ); break; /* bank 1 visible, gets copied to RAM during reset */ case 2: cartridge_config_changed(0 | (1 << CMODE_BANK_SHIFT), 0 | (1 << CMODE_BANK_SHIFT), CMODE_READ); break; /* RAM visible, which contains bank 1 */ case 3: cartridge_config_changed(2, 2, CMODE_READ); break; } }
void comal80_config_setup(BYTE *rawcart) { memcpy(&roml_banks[0x0000], &rawcart[0x0000], 0x2000); memcpy(&romh_banks[0x0000], &rawcart[0x2000], 0x2000); memcpy(&roml_banks[0x2000], &rawcart[0x4000], 0x2000); memcpy(&romh_banks[0x2000], &rawcart[0x6000], 0x2000); memcpy(&roml_banks[0x4000], &rawcart[0x8000], 0x2000); memcpy(&romh_banks[0x4000], &rawcart[0xa000], 0x2000); memcpy(&roml_banks[0x6000], &rawcart[0xc000], 0x2000); memcpy(&romh_banks[0x6000], &rawcart[0xe000], 0x2000); cartridge_config_changed(0, 0, CMODE_READ); }
BYTE REGPARM1 stardos_io2_read(WORD addr) { if(addr==0xdfa1) { ++cnt_dfa1; if(cnt_dfa1>0xff) { /* disable bank 0 at $8000 */ cartridge_config_changed(2, 2, CMODE_READ); cnt_de61=0; } } return vicii_read_phi1(); }
void REGPARM2 delaep7x8_io1_store(WORD addr, BYTE value) { BYTE bank, config, test_value; /* Each bit of the register set to low activates a respective EPROM, $FF switches off EXROM */ config = (value==0xff) ? 2 : 0; cartridge_config_changed(config, config, CMODE_WRITE); bank = 0; test_value = (~value); while (test_value!=0) { bank++; test_value=(test_value>>1); } if (bank!=0) cartridge_romlbank_set(bank-1); }
void warpspeed_config_init(void) { cartridge_config_changed(1, 1, CMODE_READ); }
static void REGPARM2 mach5_io2_store(WORD addr, BYTE value) { DBG(("%04x io2 st %04x %02x\n", reg_pc, addr, value)); cartridge_config_changed(2, 2, CMODE_WRITE); }
static void REGPARM2 mach5_io1_store(WORD addr, BYTE value) { DBG(("io1 st %04x %02x\n", addr, value)); cartridge_config_changed(0, 0, CMODE_WRITE); }
void mach5_config_setup(BYTE *rawcart) { memcpy(roml_banks, rawcart, 0x2000); cartridge_config_changed(0, 0, CMODE_READ); }
void mach5_config_init(void) { cartridge_config_changed(0, 0, CMODE_READ); }
void REGPARM2 warpspeed_io1_store(WORD addr, BYTE value) { cartridge_config_changed(1, 1, CMODE_WRITE); }
void dsm_freeze(void) { DBG(("Diashow Maker: freeze\n")); cartridge_config_changed(0, 0, CMODE_READ | CMODE_RELEASE_FREEZE); }
void dsm_config_setup(BYTE *rawcart) { memcpy(roml_banks, rawcart, DSM_CART_SIZE); cartridge_config_changed(0, 0, CMODE_READ); }
void westermann_config_init(void) { cartridge_config_changed(1, 1, CMODE_READ); }
void westermann_config_setup(BYTE *rawcart) { memcpy(roml_banks, rawcart, 0x2000); memcpy(romh_banks, &rawcart[0x2000], 0x2000); cartridge_config_changed(1, 1, CMODE_READ); }
static BYTE REGPARM1 westermann_io2_read(WORD addr) { cartridge_config_changed(0, 0, CMODE_READ); return 0; }
void actionreplay_config_init(void) { ar_active = 1; cartridge_config_changed(0, 0, CMODE_READ); }
void delaep7x8_config_init(void) { cartridge_config_changed(0, 0, CMODE_READ); cartridge_romlbank_set(0); }
void actionreplay_config_setup(BYTE *rawcart) { memcpy(roml_banks, rawcart, 0x8000); memcpy(romh_banks, rawcart, 0x8000); cartridge_config_changed(0, 0, CMODE_READ); }
void comal80_config_init(void) { cartridge_config_changed(1, 1, CMODE_READ); }
void delaep7x8_config_setup(BYTE *rawcart) { cartridge_config_changed(0, 0, CMODE_READ); cartridge_romlbank_set(0); }
void stb_config_init(void) { /* turn on normal config: bank 0 */ cartridge_config_changed(0, 0, CMODE_READ); }