2 NEC PC-98LT Emulator 'ePC-98LT'
3 NEC PC-98HA Emulator 'eHANDY98'
5 Author : Takeda.Toshiya
13 #include "../upd765a.h"
18 for(int i = 0; i < 4; i++) {
19 d_fdc->set_drive_type(i, DRIVE_TYPE_2HD);
26 void FLOPPY::write_io8(uint32_t addr, uint32_t data)
28 switch(addr & 0xffff) {
30 d_fdc->write_io8(1, data);
33 if(!(ctrlreg & 0x80) && (data & 0x80)) {
36 d_fdc->write_signal(SIG_UPD765A_FREADY, data, 0x40);
37 d_fdc->write_signal(SIG_UPD765A_MOTOR, data, 0x08);
42 if(!(modereg & 2) && (data & 2)) {
43 d_fdc->set_drive_type(0, DRIVE_TYPE_2HD);
44 d_fdc->set_drive_type(1, DRIVE_TYPE_2HD);
45 } else if((modereg & 2) && !(data & 2)) {
46 d_fdc->set_drive_type(0, DRIVE_TYPE_2DD);
47 d_fdc->set_drive_type(1, DRIVE_TYPE_2DD);
55 uint32_t FLOPPY::read_io8(uint32_t addr)
57 switch(addr & 0xffff) {
59 return d_fdc->read_io8(0);
61 return d_fdc->read_io8(1);
63 return (d_fdc->is_disk_inserted() ? 0x10 : 0) | 0x64;
65 return (modereg & 0x03) | 0x08;
70 #define STATE_VERSION 1
72 bool FLOPPY::process_state(FILEIO* state_fio, bool loading)
74 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
77 if(!state_fio->StateCheckInt32(this_device_id)) {
80 state_fio->StateUint8(ctrlreg);
81 state_fio->StateUint8(modereg);