2 Systems Formulate BUBCOM80 Emulator 'eBUBCOM80'
4 Author : Takeda.Toshiya
13 void MEMBUS::initialize()
17 memset(ram, 0x00, sizeof(ram));
18 memset(boot, 0xff, sizeof(boot));
19 memset(basic, 0xff, sizeof(basic));
21 if(!read_bios(_T("IPL.ROM"), boot, sizeof(boot))) {
22 read_bios(_T("BOOT.ROM"), boot, sizeof(boot));
24 read_bios(_T("BASIC.ROM"), basic, sizeof(basic));
26 set_memory_rw(0x0000, 0xffff, ram);
38 void MEMBUS::write_io8(uint32_t addr, uint32_t data)
42 basic_addr.b.l = data;
45 basic_addr.b.h = data;
51 ram_selected = ((data & 0x80) != 0);
57 uint32_t MEMBUS::read_io8(uint32_t addr)
61 return basic[basic_addr.w.l];
66 void MEMBUS::write_dma_data8(uint32_t addr, uint32_t data)
68 ram[addr & 0xffff] = data;
71 uint32_t MEMBUS::read_dma_data8(uint32_t addr)
73 return ram[addr & 0xffff];
76 void MEMBUS::update_bank()
78 set_memory_r(0x0000, 0x07ff, ram_selected ? ram : boot);
81 #define STATE_VERSION 1
83 bool MEMBUS::process_state(FILEIO* state_fio, bool loading)
85 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
88 if(!state_fio->StateCheckInt32(this_device_id)) {
91 if(!MEMORY::process_state(state_fio, loading)) {
94 state_fio->StateBuffer(ram, sizeof(ram), 1);
95 state_fio->StateUint32(basic_addr.d);
96 state_fio->StateBool(ram_selected);