Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
static void destroy(RomMapperNet* rm)
{
    deviceCount--;

    if (rm->ym2151 != NULL) {
        ym2151Destroy(rm->ym2151);
    }
    if (rm->ym2148 != NULL) {
        ym2148Destroy(rm->ym2148);
    }

    if (rm->ykIo != NULL) {
        ykIoDestroy(rm->ykIo);
    }

    slotUnregister(rm->slot, rm->sslot, rm->startPage);

    debugDeviceUnregister(rm->debugHandle);
    deviceManagerUnregister(rm->deviceHandle);

    if (rm->romData != NULL) {
        free(rm->romData);
    }
    free(rm);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
static void destroy(Ram1kBMirrored* rm)
{
    debugDeviceUnregister(rm->debugHandle);

    slotUnregister(rm->slot, rm->sslot, 0);
    deviceManagerUnregister(rm->deviceHandle);

    free(rm);
}
static void destroy(RomMapperOpcodeSaveRam* rm)
{
    sramSave(rm->saveRamFilename, rm->saveRam, sizeof(rm->saveRam), NULL, 0);

    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    free(rm);
}
static void destroy(RomMapperOpcodeSlotManager* rm)
{
    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    ioPortUnregister(0x41);

    free(rm);
}
Ejemplo n.º 7
0
static void destroy(RomMapperF4device* rm)
{
    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    ioPortUnregister(0xf4);

    free(rm);
}
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 9
0
static void destroy(RomMapperTurboRPcm* rm)
{
    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);
    dacDestroy(rm->dac);

    ioPortUnregister(0xa4);
    ioPortUnregister(0xa5);

    free(rm);
}
Ejemplo n.º 10
0
static void destroy(RomMapperSvi328Col80* svi328col80)
{

    ioPortUnregister(0x50);
    ioPortUnregister(0x51);
    ioPortUnregister(0x58);

    deviceManagerUnregister(svi328col80->deviceHandle);
    debugDeviceUnregister(svi328col80->debugHandle);

    free(svi328col80);
}
Ejemplo n.º 11
0
static void destroy(RomMapperOpcodeMegaRam* rm)
{
    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    ioPortUnregister(0x48);
    ioPortUnregister(0x49);
    ioPortUnregister(0x4a);
    ioPortUnregister(0x4b);

    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);
}
Ejemplo n.º 13
0
static void destroy(RomMapperKanji12* rm)
{
    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    ioPortUnregister(0xd9);
    ioPortUnregister(0xd8);
    ioPortUnregister(0xda);
    ioPortUnregister(0xdb);

    free(rm->romData);
    free(rm);
}
Ejemplo n.º 14
0
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(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);
}
Ejemplo n.º 16
0
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(RomMapperRsIde* rm)
{
    ioPortUnregister(0x14);
    ioPortUnregister(0x15);
    ioPortUnregister(0x16);
    ioPortUnregister(0x17);

    deviceManagerUnregister(rm->deviceHandle);
    debugDeviceUnregister(rm->debugHandle);

    harddiskIdeDestroy(rm->hdide);
    i8255Destroy(rm->i8255);

    free(rm);
}
Ejemplo n.º 18
0
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);
}
Ejemplo n.º 19
0
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);
}
Ejemplo n.º 20
0
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);
}
Ejemplo n.º 21
0
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);
}
Ejemplo n.º 22
0
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);
}
Ejemplo n.º 23
0
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);
}
Ejemplo n.º 24
0
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);
}
Ejemplo n.º 25
0
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);
}
Ejemplo n.º 26
0
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);
}
Ejemplo n.º 27
0
void r800DebugDestroy()
{   
    debugDeviceUnregister(dbg->debugHandle);
    free(dbg);
}