Example #1
0
SunriseIde* sunriseIdeCreate(int hdId)
{
    SunriseIde* ide = malloc(sizeof(SunriseIde));

    ide->hdide[0] = harddiskIdeCreate(diskGetHdDriveId(hdId, 0));
    ide->hdide[1] = harddiskIdeCreate(diskGetHdDriveId(hdId, 1));

    sunriseIdeReset(ide);

    return ide;
}
int romMapperSvi328RsIdeCreate(int hdId)
{
    DeviceCallbacks callbacks = { destroy, reset, saveState, loadState };
    DebugCallbacks dbgCallbacks = { getDebugInfo, NULL, NULL, NULL };
    RomMapperRsIde* rm;

    rm = malloc(sizeof(RomMapperRsIde));
    
    rm->deviceHandle = deviceManagerRegister(ROM_SVI328RSIDE, &callbacks, rm);
    rm->debugHandle = debugDeviceRegister(DBGTYPE_PORT, langDbgDevIdeSviRs(), &dbgCallbacks, rm);

    rm->i8255 = i8255Create( NULL, NULL,    writeA,
                             NULL, readB,   writeB,
                             NULL, readCLo, writeCLo,
                             NULL, readCHi, writeCHi,
                             rm);

    ioPortRegister(0x14, i8255Read, i8255Write, rm->i8255); // PPI Port A
    ioPortRegister(0x15, i8255Read, i8255Write, rm->i8255); // PPI Port B
    ioPortRegister(0x16, i8255Read, i8255Write, rm->i8255); // PPI Port C
    ioPortRegister(0x17, i8255Read, i8255Write, rm->i8255); // PPI Mode

    rm->hdide = harddiskIdeCreate(diskGetHdDriveId(hdId, 0));

    reset(rm);

    return 1;
}
Example #3
0
int romMapperGIdeCreate(int hdId) 
{
    DeviceCallbacks callbacks = {
        (DeviceCallback)destroy,
        (DeviceCallback)reset,
        (DeviceCallback)saveState,
        (DeviceCallback)loadState
    };
    DebugCallbacks dbgCallbacks = { (void(*)(void*,DbgDevice*))getDebugInfo, NULL, NULL, NULL };
    RomMapperGIde* rm;
    int portBase;

    rm = malloc(sizeof(RomMapperGIde));

    rm->deviceHandle = deviceManagerRegister(ROM_GIDE, &callbacks, rm);
    rm->debugHandle = debugDeviceRegister(DBGTYPE_PORT, langDbgDevIdeGide(), &dbgCallbacks, rm);

    portBase = (boardGetType() == BOARD_SVI) ? 0x40:0x60;

    ioPortRegister(portBase | 0x04, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x05, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x06, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x07, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x08, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x09, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0a, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0b, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0c, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0d, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0e, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);
    ioPortRegister(portBase | 0x0f, (IoPortRead)readIo, (IoPortWrite)writeIo, rm);

    rm->hdide = harddiskIdeCreate(diskGetHdDriveId(hdId, 0));

    reset(rm);

    return 1;
}