Пример #1
0
void digimax_userport_store(WORD addr, BYTE value)
{
    switch (addr & 0x1f) {
        case 0:
            digimax_userport_address = value;
            break;
        case 1:
            if (digimax_cart_enabled() && digimax_is_userport()) {
                digimax_userport_sound_store(value);
            }
            break;
        case 2:
            digimax_userport_direction_A = value;
            break;
        case 3:
            digimax_userport_direction_B = value;
            break;
    }
}
Пример #2
0
static int set_digimax_enabled(int value, void *param)
{
    int val = value ? 1 : 0;

    if (!digimax_sound_chip.chip_enabled && val) {
        if (!digimax_is_userport()) {
            if (c64export_add(&export_res) < 0) {
                return -1;
            }
            digimax_list_item = io_source_register(&digimax_device);
        }
        digimax_sound_chip.chip_enabled = 1;
    } else if (digimax_sound_chip.chip_enabled && !val) {
        if (digimax_list_item != NULL) {
            c64export_remove(&export_res);
            io_source_unregister(digimax_list_item);
            digimax_list_item = NULL;
        }
        digimax_sound_chip.chip_enabled = 0;
    }
    return 0;
}