static void write(RomMapperMsxAudio* rm, UInt16 address, UInt8 value) { address &= 0x7fff; #if 0 // FS-CA1 port select, bit 0:c0/c1, bit 1:c2/c3 if (rm->is_fs_ca1&&address==0x7fff&&rm->y8950) { if (value&1) { ioPortRegister(0xc0, y8950Read, y8950Write, rm->y8950); ioPortRegister(0xc1, y8950Read, y8950Write, rm->y8950); } else if (ioPortGetRef(0xc0)==rm->y8950&&ioPortGetRef(0xc1)==rm->y8950) { ioPortUnregister(0xc0); ioPortUnregister(0xc1); } if (value&2) { ioPortRegister(0xc2, y8950Read, y8950Write, rm->y8950); ioPortRegister(0xc3, y8950Read, y8950Write, rm->y8950); } else if (ioPortGetRef(0xc2)==rm->y8950&&ioPortGetRef(0xc3)==rm->y8950) { ioPortUnregister(0xc2); ioPortUnregister(0xc3); } } #endif // bankswitch if (address==0x7ffe) rm->bankSelect = value & 3; address &= 0x3fff; if (rm->bankSelect == 0 && address >= 0x3000) { rm->ram[address - 0x3000] = value; } }
static void destroy(RomMapperS1990* rm) { deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); ioPortUnregister(0xe4); ioPortUnregister(0xe5); free(rm); }
static void destroy(RomMapperTurboRPcm* rm) { deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); dacDestroy(rm->dac); ioPortUnregister(0xa4); ioPortUnregister(0xa5); free(rm); }
static void destroy(RomMapperSvi727* rm) { ioPortUnregister(0x78); ioPortUnregister(0x79); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); free(rm->charData); free(rm); }
static void destroy(RomMapperSvi328Col80* svi328col80) { ioPortUnregister(0x50); ioPortUnregister(0x51); ioPortUnregister(0x58); deviceManagerUnregister(svi328col80->deviceHandle); debugDeviceUnregister(svi328col80->debugHandle); free(svi328col80); }
static void destroy(RomMapperOpcodeMegaRam* rm) { deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); ioPortUnregister(0x48); ioPortUnregister(0x49); ioPortUnregister(0x4a); ioPortUnregister(0x4b); free(rm); }
static void sg1000IoPortDestroy(void* dummy) { int i; for (i=0x40; i<0x80; i++) ioPortUnregister(i); for (i=0xC0; i<0x100; i+=2) ioPortUnregister(i); ioPortUnregister(0xc1); ioPortUnregister(0xdd); }
static void destroy(RamMapperIo* rm) { ioPortUnregister(0xfc); ioPortUnregister(0xfd); ioPortUnregister(0xfe); ioPortUnregister(0xff); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); free(mapperIo); mapperIo = NULL; }
static void destroy(RomMapperKanji12* rm) { deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); ioPortUnregister(0xd9); ioPortUnregister(0xd8); ioPortUnregister(0xda); ioPortUnregister(0xdb); free(rm->romData); free(rm); }
static void destroy(void* arg) { RomMapperFMPAK* rm = (RomMapperFMPAK*)arg; ioPortUnregister(0x7c); ioPortUnregister(0x7d); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); free(rm->romData); free(rm); }
static void destroy(RomMapperGoudaSCSI* rm) { ioPortUnregister(PORT_BASE + 0); ioPortUnregister(PORT_BASE + 1); ioPortUnregister(PORT_BASE + 2); debugDeviceUnregister(rm->debugHandle); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); wd33c93Destroy(rm->wd33c93); free(rm->romData); free(rm); }
static void destroy(RomMapperKonamiKeyboardMaster* rm) { ioPortUnregister(0x00); ioPortUnregister(0x20); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); vlm5030Destroy(rm->vlm5030); free(rm->romData); free(rm->voiceData); free(rm); }
static void destroy(RomMapperRsIde* rm) { ioPortUnregister(0x14); ioPortUnregister(0x15); ioPortUnregister(0x16); ioPortUnregister(0x17); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); harddiskIdeDestroy(rm->hdide); i8255Destroy(rm->i8255); free(rm); }
static void destroy(SonyHBI55* rm) { ioPortUnregister(0xb0); ioPortUnregister(0xb1); ioPortUnregister(0xb2); ioPortUnregister(0xb3); sramSave(sramCreateFilename("HBI-55.SRAM"), rm->sram, 0x1000, NULL, 0); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); i8255Destroy(rm->i8255); free(rm); }
void rtcDestroy(RTC* rtc) { debugDeviceUnregister(rtc->debugHandle); ioPortUnregister(0xb4); ioPortUnregister(0xb5); if (rtc->cmosName[0]) { FILE* file = archFileOpen(rtc->cmosName, "w"); fwrite(rtc->registers, 1, sizeof(rtc->registers), file); fclose(file); } free(rtc); }
static void destroy(Microsol* rm) { ioPortUnregister(0xd0); ioPortUnregister(0xd1); ioPortUnregister(0xd2); ioPortUnregister(0xd3); ioPortUnregister(0xd4); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); wd2793Destroy(rm->fdc); free(rm->romData); free(rm); }
static void destroy(RomMapperOpcodeSlotManager* rm) { deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); ioPortUnregister(0x41); free(rm); }
static void destroy(SviPPI* ppi) { ioPortUnregister(0x98); ioPortUnregister(0x99); ioPortUnregister(0x96); ioPortUnregister(0x97); ioPortUnregister(0x9A); audioKeyClickDestroy(ppi->keyClick); deviceManagerUnregister(ppi->deviceHandle); debugDeviceUnregister(ppi->debugHandle); dacDestroy(ppi->dac); i8255Destroy(ppi->i8255); free(ppi); }
static void destroy(RomMapperMegaRAM* rm) { ioPortUnregister(0x8e); slotUnregister(rm->slot, rm->sslot, rm->startPage); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); free(rm->ramData); free(rm); }
static void destroy(RomMapperMsxAudio* rm) { if (rm->midi) { philipsMidiDestroy(rm->midi); } ioPortUnregister(0x00); ioPortUnregister(0x01); ioPortUnregister(0x04); ioPortUnregister(0x05); ioPortUnregister(rm->ioBase + 0); ioPortUnregister(rm->ioBase + 1); if (rm->y8950) { if (ioPortGetRef(0xc0)==rm->y8950&&ioPortGetRef(0xc1)==rm->y8950) { ioPortUnregister(0xc0); ioPortUnregister(0xc1); } if (ioPortGetRef(0xc2)==rm->y8950&&ioPortGetRef(0xc3)==rm->y8950) { ioPortUnregister(0xc2); ioPortUnregister(0xc3); } } deviceCount--; if (rm->y8950 != NULL) { y8950Destroy(rm->y8950); } if (rm->sizeMask != -1) { slotUnregister(rm->slot, rm->sslot, rm->startPage); } debugDeviceUnregister(rm->debugHandle); deviceManagerUnregister(rm->deviceHandle); if (rm->romData != NULL) { free(rm->romData); } free(rm); }
static void destroy(RomMapperOpcodeModule* rm) { int i; deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); ay8910Destroy(rm->ay8910); for (i = 0; i < 16; i++) { ioPortUnregister(0x60 + i); } free(rm); }
static void destroy(MSXMidi* msxMidi) { ioPortUnregister(0xe8); ioPortUnregister(0xe9); ioPortUnregister(0xea); ioPortUnregister(0xeb); ioPortUnregister(0xec); ioPortUnregister(0xed); ioPortUnregister(0xee); ioPortUnregister(0xef); midiIoDestroy(msxMidi->midiIo); i8251Destroy(msxMidi->i8251); i8254Destroy(msxMidi->i8254); deviceManagerUnregister(msxMidi->deviceHandle); debugDeviceUnregister(msxMidi->debugHandle); free(msxMidi); }
static void destroy(Svi328Fdc* rm) { ioPortUnregister(0x30); ioPortUnregister(0x31); ioPortUnregister(0x32); ioPortUnregister(0x33); ioPortUnregister(0x34); ioPortUnregister(0x38); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); wd2793Destroy(rm->fdc); free(rm); }
static void destroy(MSXRs232* msxRs232) { ioPortUnregister(0x80); ioPortUnregister(0x81); ioPortUnregister(0x82); ioPortUnregister(0x84); ioPortUnregister(0x85); ioPortUnregister(0x86); ioPortUnregister(0x87); i8251Destroy(msxRs232->i8251); i8254Destroy(msxRs232->i8254); slotUnregister(msxRs232->slot, msxRs232->sslot, msxRs232->startPage); deviceManagerUnregister(msxRs232->deviceHandle); debugDeviceUnregister(msxRs232->debugHandle); free(msxRs232->romData); free(msxRs232); }
static void destroy(RomMapperMoonsound* rm) { ioPortUnregister(0x7e); ioPortUnregister(0x7f); ioPortUnregister(0xc4); ioPortUnregister(0xc5); ioPortUnregister(0xc6); ioPortUnregister(0xc7); if (rm->moonsound != NULL) { moonsoundDestroy(rm->moonsound); } deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); free(rm); }
static void destroy(RomMapperSvi328Rs232* rs232) { switch (rs232->connector) { case SVI328_MODEM: ioPortUnregister(0x20); ioPortUnregister(0x21); ioPortUnregister(0x22); ioPortUnregister(0x23); ioPortUnregister(0x24); ioPortUnregister(0x25); ioPortUnregister(0x26); ioPortUnregister(0x27); break; case SVI328_RS232: ioPortUnregister(0x28); ioPortUnregister(0x29); ioPortUnregister(0x2A); ioPortUnregister(0x2B); ioPortUnregister(0x2C); ioPortUnregister(0x2D); ioPortUnregister(0x2E); ioPortUnregister(0x2F); break; } i8250Destroy(rs232->i8250); archUartDestroy(); deviceManagerUnregister(rs232->deviceHandle); debugDeviceUnregister(rs232->debugHandle); free(rs232); }
static void destroy(RomMapperGIde* rm) { int portBase; portBase = (boardGetType() == BOARD_SVI) ? 0x40:0x60; ioPortUnregister(portBase | 0x04); ioPortUnregister(portBase | 0x05); ioPortUnregister(portBase | 0x06); ioPortUnregister(portBase | 0x07); ioPortUnregister(portBase | 0x08); ioPortUnregister(portBase | 0x09); ioPortUnregister(portBase | 0x0a); ioPortUnregister(portBase | 0x0b); ioPortUnregister(portBase | 0x0c); ioPortUnregister(portBase | 0x0d); ioPortUnregister(portBase | 0x0e); ioPortUnregister(portBase | 0x0f); deviceManagerUnregister(rm->deviceHandle); debugDeviceUnregister(rm->debugHandle); harddiskIdeDestroy(rm->hdide); free(rm); }