2 SHARP MZ-2800 Emulator 'EmuZ-2800'
4 Author : Takeda.Toshiya
12 void JOYSTICK::initialize()
15 joy_stat = emu->get_joy_buffer();
18 void JOYSTICK::write_io8(uint32_t addr, uint32_t data)
23 uint32_t JOYSTICK::read_io8(uint32_t addr)
26 int num = (mode & 0x40) ? 1 : 0;
31 if(!(mode & 0x04)) val &= ~0x20;
32 if(!(mode & 0x08)) val &= ~0x10;
33 dir = ((mode & 0x20) == 0);
35 if(!(mode & 0x01)) val &= ~0x20;
36 if(!(mode & 0x02)) val &= ~0x10;
37 dir = ((mode & 0x10) == 0);
42 if(joy_stat[num] & 0x08) val &= ~0x08;
43 if(joy_stat[num] & 0x04) val &= ~0x04;
44 if(joy_stat[num] & 0x02) val &= ~0x02;
45 if(joy_stat[num] & 0x01) val &= ~0x01;
49 if(joy_stat[num] & 0x10) val &= ~0x20;
50 if(joy_stat[num] & 0x20) val &= ~0x10;
54 #define STATE_VERSION 2
56 void JOYSTICK::save_state(FILEIO* state_fio)
58 state_fio->FputUint32(STATE_VERSION);
59 state_fio->FputInt32(this_device_id);
61 state_fio->FputUint32(mode);
64 bool JOYSTICK::load_state(FILEIO* state_fio)
66 if(state_fio->FgetUint32() != STATE_VERSION) {
69 if(state_fio->FgetInt32() != this_device_id) {
72 mode = state_fio->FgetUint32();