static void via_store(WORD addr, BYTE value) { vic20_cpu_last_data = value; if (addr & 0x10) { /* $911x (VIA2) */ via2_store(addr, value); } if (addr & 0x20) { /* $912x (VIA1) */ via1_store(addr, value); } vic20_mem_v_bus_store(addr); }
static inline void io_store(io_source_list_t *list, WORD addr, BYTE value) { io_source_list_t *current = list->next; vic20_cpu_last_data = value; while (current) { if (current->device->store != NULL) { if (addr >= current->device->start_address && addr <= current->device->end_address) { current->device->store((WORD)(addr & current->device->address_mask), value); } } current = current->next; } vic20_mem_v_bus_store(addr); }
void cartridge_store_ram123(WORD addr, BYTE value) { vic20_cpu_last_data = value; switch (mem_cartridge_type) { case CARTRIDGE_VIC20_GENERIC: generic_ram123_store(addr, value); break; case CARTRIDGE_VIC20_FP: vic_fp_ram123_store(addr, value); break; case CARTRIDGE_VIC20_MEGACART: megacart_ram123_store(addr, value); break; case CARTRIDGE_VIC20_FINAL_EXPANSION: finalexpansion_ram123_store(addr, value); break; } vic20_mem_v_bus_store(addr); }
static void store_dummy_v_bus(WORD addr, BYTE value) { vic20_cpu_last_data = value; vic20_mem_v_bus_store(addr); }
static void ram_store_v_bus(WORD addr, BYTE value) { vic20_cpu_last_data = value; vic20_mem_v_bus_store(addr); mem_ram[addr & (VIC20_RAM_SIZE - 1)] = value; }
void zero_store(WORD addr, BYTE value) { vic20_cpu_last_data = value; vic20_mem_v_bus_store(addr); mem_ram[addr & 0xff] = value; }