2 SHARP MZ-700 Emulator 'EmuZ-700'
3 SHARP MZ-800 Emulator 'EmuZ-800'
4 SHARP MZ-1500 Emulator 'EmuZ-1500'
6 Author : Takeda.Toshiya
14 #define DATA_SIZE 0x10000
15 #define ADDR_MASK (DATA_SIZE - 1)
17 void RAMFILE::initialize()
20 data_buffer = (uint8_t *)malloc(DATA_SIZE);
21 memset(data_buffer, 0, DATA_SIZE);
24 void RAMFILE::release()
35 void RAMFILE::write_io8(uint32_t addr, uint32_t data)
39 data_buffer[(data_addr++) & ADDR_MASK] = data;
42 data_addr = (addr & 0xff00) | data;
47 uint32_t RAMFILE::read_io8(uint32_t addr)
51 return data_buffer[(data_addr++) & ADDR_MASK];
56 #define STATE_VERSION 1
58 void RAMFILE::save_state(FILEIO* state_fio)
60 state_fio->FputUint32(STATE_VERSION);
61 state_fio->FputInt32(this_device_id);
63 state_fio->Fwrite(data_buffer, DATA_SIZE, 1);
64 state_fio->FputUint32(data_addr);
67 bool RAMFILE::load_state(FILEIO* state_fio)
69 if(state_fio->FgetUint32() != STATE_VERSION) {
72 if(state_fio->FgetInt32() != this_device_id) {
75 state_fio->Fread(data_buffer, DATA_SIZE, 1);
76 data_addr = state_fio->FgetUint32();