2 Systems Formulate BUBCOM80 Emulator 'eBUBCOM80'
4 Author : Takeda.Toshiya
12 void MEMBUS::initialize()
16 memset(ram, 0x00, sizeof(ram));
17 memset(boot, 0xff, sizeof(boot));
18 memset(basic, 0xff, sizeof(basic));
20 if(!read_bios(_T("IPL.ROM"), boot, sizeof(boot))) {
21 read_bios(_T("BOOT.ROM"), boot, sizeof(boot));
23 read_bios(_T("BASIC.ROM"), basic, sizeof(basic));
25 set_memory_rw(0x0000, 0xffff, ram);
37 void MEMBUS::write_io8(uint32_t addr, uint32_t data)
41 basic_addr.b.l = data;
44 basic_addr.b.h = data;
50 ram_selected = ((data & 0x80) != 0);
56 uint32_t MEMBUS::read_io8(uint32_t addr)
60 return basic[basic_addr.w.l];
65 void MEMBUS::write_dma_data8(uint32_t addr, uint32_t data)
67 ram[addr & 0xffff] = data;
70 uint32_t MEMBUS::read_dma_data8(uint32_t addr)
72 return ram[addr & 0xffff];
75 void MEMBUS::update_bank()
77 set_memory_r(0x0000, 0x07ff, ram_selected ? ram : boot);
80 #define STATE_VERSION 1
82 bool MEMBUS::process_state(FILEIO* state_fio, bool loading)
84 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
87 if(!state_fio->StateCheckInt32(this_device_id)) {
90 if(!MEMORY::process_state(state_fio, loading)) {
93 state_fio->StateBuffer(ram, sizeof(ram), 1);
94 state_fio->StateUint32(basic_addr.d);
95 state_fio->StateBool(ram_selected);