2 NEC PC-98LT Emulator 'ePC-98LT'
3 NEC PC-98HA Emulator 'eHANDY98'
5 Author : Takeda.Toshiya
13 #include "../upd765a.h"
20 for(int i = 0; i < 4; i++) {
21 d_fdc->set_drive_type(i, DRIVE_TYPE_2HD);
28 void FLOPPY::write_io8(uint32_t addr, uint32_t data)
30 switch(addr & 0xffff) {
32 d_fdc->write_io8(1, data);
35 if(!(ctrlreg & 0x80) && (data & 0x80)) {
38 d_fdc->write_signal(SIG_UPD765A_FREADY, data, 0x40);
39 d_fdc->write_signal(SIG_UPD765A_MOTOR, data, 0x08);
44 if(!(modereg & 2) && (data & 2)) {
45 d_fdc->set_drive_type(0, DRIVE_TYPE_2HD);
46 d_fdc->set_drive_type(1, DRIVE_TYPE_2HD);
47 } else if((modereg & 2) && !(data & 2)) {
48 d_fdc->set_drive_type(0, DRIVE_TYPE_2DD);
49 d_fdc->set_drive_type(1, DRIVE_TYPE_2DD);
57 uint32_t FLOPPY::read_io8(uint32_t addr)
59 switch(addr & 0xffff) {
61 return d_fdc->read_io8(0);
63 return d_fdc->read_io8(1);
65 return (d_fdc->is_disk_inserted() ? 0x10 : 0) | 0x64;
67 return (modereg & 0x03) | 0x08;
72 #define STATE_VERSION 1
74 bool FLOPPY::process_state(FILEIO* state_fio, bool loading)
76 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
79 if(!state_fio->StateCheckInt32(this_device_id)) {
82 state_fio->StateUint8(ctrlreg);
83 state_fio->StateUint8(modereg);