示例#1
0
文件: c64.c 项目: martinpiper/VICE
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    /* and cartridge */
    cartridge_detach_image();

    ciacore_shutdown(machine_context.cia1);
    ciacore_shutdown(machine_context.cia2);
    tpicore_shutdown(machine_context.tpi1);

    /* close the video chip(s) */
    vicii_shutdown();

    reu_shutdown();
    georam_shutdown();
    ramcart_shutdown();
    plus60k_shutdown();
    plus256k_shutdown();
    c64_256k_shutdown();
    mmc64_shutdown();

#ifdef HAVE_TFE
    /* Shutdown the TFE.  */
    tfe_shutdown();
#endif

    if (vsid_mode) {
        vsid_ui_close();
    }

    c64ui_shutdown();
}
示例#2
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    /* and cartridge */
    cartridge_detach_image(-1);

    ciacore_shutdown(machine_context.cia1);
    ciacore_shutdown(machine_context.cia2);

    cartridge_shutdown();

#ifdef HAVE_MOUSE
    mouse_shutdown();
#endif

    /* close the video chip(s) */
    vicii_shutdown();
    vdc_shutdown();

    sid_cmdline_options_shutdown();

    c128ui_shutdown();
}
示例#3
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    /* and cartridge */
    cartridge_detach_image(-1);

    ciacore_shutdown(machine_context.cia1);
    ciacore_shutdown(machine_context.cia2);

    /* close the video chip(s) */
    vicii_shutdown();

    plus60k_shutdown();
    plus256k_shutdown();
    c64_256k_shutdown();

    cartridge_shutdown();

#ifdef HAVE_MOUSE
    mouse_shutdown();
#endif

    c64ui_shutdown();
}
示例#4
0
文件: plus4.c 项目: SMTDDR/droidsound
void machine_specific_shutdown(void)
{
    tape_image_detach_internal(1);

    ted_shutdown();

    cs256k_shutdown();
    h256k_shutdown();

    plus4ui_shutdown();
}
示例#5
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    ciacore_shutdown(machine_context.cia1);
    tpicore_shutdown(machine_context.tpi1);
    tpicore_shutdown(machine_context.tpi2);

    /* close the video chip(s) */
    vicii_shutdown();

    cbm5x0ui_shutdown();
}
示例#6
0
文件: vic20.c 项目: martinpiper/VICE
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    viacore_shutdown(machine_context.via1);
    viacore_shutdown(machine_context.via2);
    viacore_shutdown(machine_context.ieeevia1);
    viacore_shutdown(machine_context.ieeevia2);

    /* close the video chip(s) */
    vic_shutdown();

    vic20ui_shutdown();
}
示例#7
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    viacore_shutdown(machine_context.via);

    /* close the video chip(s) */
    petdww_shutdown();
    pethre_shutdown();
    crtc_shutdown();

    petreu_shutdown();

    petui_shutdown();
}
示例#8
0
void machine_specific_shutdown(void)
{
    tape_image_detach_internal(1);

    ted_shutdown();
    speech_shutdown();

    cs256k_shutdown();
    h256k_shutdown();

#ifdef HAVE_MOUSE
    mouse_shutdown();
#endif

    if (!console_mode) {
        plus4ui_shutdown();
    }
}
示例#9
0
文件: cbm2.c 项目: markjreed/vice-emu
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    ciacore_shutdown(machine_context.cia1);
    tpicore_shutdown(machine_context.tpi1);
    tpicore_shutdown(machine_context.tpi2);

    /* close the video chip(s) */
    crtc_shutdown();

#ifdef HAVE_MOUSE
    mouse_shutdown();
#endif

    cbm2ui_shutdown();
}
示例#10
0
文件: cbm2.c 项目: martinpiper/VICE
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    ciacore_shutdown(machine_context.cia1);
    tpicore_shutdown(machine_context.tpi1);
    tpicore_shutdown(machine_context.tpi2);

    /* close the video chip(s) */
    if (cbm2_isC500) {
        vicii_shutdown();
    } else {
        crtc_shutdown();
    }

    cbm2ui_shutdown();
}
示例#11
0
文件: c128.c 项目: QaDeS/droidsound
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    /* and cartridge */
    cartridge_detach_image(-1);

    ciacore_shutdown(machine_context.cia1);
    ciacore_shutdown(machine_context.cia2);

    cartridge_shutdown();

    /* close the video chip(s) */
    vicii_shutdown();
    vdc_shutdown();

    c128ui_shutdown();
}
示例#12
0
文件: tape.c 项目: SMTDDR/droidsound
int tape_deinstall(void)
{
    if (!tape_is_initialized) {
        return -1;
    }

    if (tape_image_dev1->name != NULL &&
        tape_image_dev1->type == TAPE_TYPE_T64) {
        tape_image_detach_internal(1);
    }

    tape_traps_deinstall();

    tape_traps = NULL;

    tape_is_initialized = 0;

    return 0;
}
示例#13
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    ciacore_shutdown(machine_context.cia1);
    tpicore_shutdown(machine_context.tpi1);
    tpicore_shutdown(machine_context.tpi2);

    /* close the video chip(s) */
    vicii_shutdown();

#if defined(__BEOS__) || defined(USE_SDLUI) || defined(USE_GNOMEUI) || defined(USE_XAWUI) || (__OS2__) || defined(AMIGA_SUPPORT)
    /* FIXME make this available on other ports too */
    cbm5x0ui_shutdown();
#else
    /* ...and remove this */
    cbm2ui_shutdown();
#endif
}
示例#14
0
void machine_specific_shutdown(void)
{
    /* and the tape */
    tape_image_detach_internal(1);

    /* and cartridge */
    cartridge_detach_image(-1);

    viacore_shutdown(machine_context.via1);
    viacore_shutdown(machine_context.via2);
    viacore_shutdown(machine_context.ieeevia1);
    viacore_shutdown(machine_context.ieeevia2);

#ifdef HAVE_MOUSE
    mouse_shutdown();
#endif

    /* close the video chip(s) */
    vic_shutdown();

    vic20ui_shutdown();
}
示例#15
0
int tape_snapshot_read_module(snapshot_t *s)
{
    BYTE major_version, minor_version;
    snapshot_module_t *m;
    unsigned int snap_type;
    char snap_module_name[] = "TAPE";
    tap_t *tap;
    t64_t *t64;


    if (tape_snapshot_read_tapimage_module(s) < 0
        || tape_snapshot_read_t64image_module(s) < 0)
        return -1;


    m = snapshot_module_open(s, snap_module_name,
                             &major_version, &minor_version);

    if (m == NULL) {
        /* no tape attached */
        tape_image_detach_internal(1);
        return 0;
    }

    if (0
        || SMR_B_INT(m, (int *)&tape_image_dev1->read_only) < 0 
        || SMR_B_INT(m, (int *)&snap_type) < 0) 
    {
        snapshot_module_close(m);
        return -1;
    }

    if (snap_type != tape_image_dev1->type) {
        /* attached image type is not correct */
        log_error(tape_snapshot_log,
            "No tape image attached or type not correct.");
        snapshot_module_close(m);
        return -1;
    }

    switch (tape_image_dev1->type) {
        case TAPE_TYPE_T64:
            t64 = (t64_t*)tape_image_dev1->data;
            break;
        case TAPE_TYPE_TAP:
            tap = (tap_t*)tape_image_dev1->data;
            if (tap == NULL
                || SMR_DW(m, (DWORD*)&tap->size) < 0
                || SMR_B(m, &tap->version) < 0
                || SMR_B(m, &tap->system) < 0
                || SMR_DW(m, (DWORD*)&tap->current_file_seek_position) < 0
                || SMR_DW(m, (DWORD*)&tap->offset) < 0
                || SMR_DW(m, (DWORD*)&tap->cycle_counter) < 0
                || SMR_DW(m, (DWORD*)&tap->cycle_counter_total) < 0
                || SMR_DW(m, (DWORD*)&tap->counter) < 0
                || SMR_DW(m, (DWORD*)&tap->mode) < 0
                || SMR_DW(m, (DWORD*)&tap->read_only) < 0
                || SMR_DW(m, (DWORD*)&tap->has_changed) < 0)
            {
                snapshot_module_close(m);
                return -1;
            }

            break;
        default:
            break;
    }

    snapshot_module_close(m);

    if (datasette_read_snapshot(s) < 0)
        return -1;

    return 0;
}