void AY8910Write(int a, int data) { struct AY8910 *PSG = &AYPSG; if (a & 1) { /* Data port */ AYWriteReg(PSG->register_latch, data); } else { /* Register port */ PSG->register_latch = data & 0x0f; } }
void AY8910Write(INT32 chip, INT32 a, INT32 data) { struct AY8910 *PSG = &AYPSG[chip]; #if defined FBA_DEBUG #ifdef __GNUC__ if (!DebugSnd_AY8910Initted) bprintf(PRINT_ERROR, _T("AY8910Write called without init\n")); if (chip > num) bprintf(PRINT_ERROR, _T("AY8910Write called with invalid chip number %x\n"), chip); #endif #endif if (a & 1) { /* Data port */ AYWriteReg(chip,PSG->register_latch,data); } else { /* Register port */ PSG->register_latch = data & 0x0f; } }
void cgenie_state::machine_reset() { address_space &space = m_maincpu->space(AS_PROGRAM); UINT8 *ROM = memregion("maincpu")->base(); /* reset the AY8910 to be quiet, since the cgenie BIOS doesn't */ AYWriteReg(0, 0, 0); AYWriteReg(0, 1, 0); AYWriteReg(0, 2, 0); AYWriteReg(0, 3, 0); AYWriteReg(0, 4, 0); AYWriteReg(0, 5, 0); AYWriteReg(0, 6, 0); AYWriteReg(0, 7, 0x3f); AYWriteReg(0, 8, 0); AYWriteReg(0, 9, 0); AYWriteReg(0, 10, 0); /* wipe out color RAM */ memset(&ROM[0x0f000], 0x00, 0x0400); /* wipe out font RAM */ memset(&ROM[0x0f400], 0xff, 0x0400); if( ioport("DSW0")->read() & 0x80 ) { logerror("cgenie floppy discs enabled\n"); } else { logerror("cgenie floppy discs disabled\n"); } /* copy DOS ROM, if enabled or wipe out that memory area */ if( ioport("DSW0")->read() & 0x40 ) { if ( ioport("DSW0")->read() & 0x80 ) { space.install_read_bank(0xc000, 0xdfff, "bank10"); space.nop_write(0xc000, 0xdfff); membank("bank10")->set_base(&ROM[0x0c000]); logerror("cgenie DOS enabled\n"); memcpy(&ROM[0x0c000],&ROM[0x10000], 0x2000); } else { space.nop_readwrite(0xc000, 0xdfff); logerror("cgenie DOS disabled (no floppy image given)\n"); } } else { space.nop_readwrite(0xc000, 0xdfff); logerror("cgenie DOS disabled\n"); memset(&memregion("maincpu")->base()[0x0c000], 0x00, 0x2000); } /* copy EXT ROM, if enabled or wipe out that memory area */ if (ioport("DSW0")->read() & 0x20 && m_cart->exists()) { m_maincpu->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart)); logerror("cgenie EXT enabled\n"); } else { space.nop_readwrite(0xe000, 0xefff); logerror("cgenie EXT disabled\n"); } m_cass_level = 0; m_cass_bit = 1; }