2 NEC PC-9801VX Emulator 'ePC-9801VX'
3 NEC PC-9801RA Emulator 'ePC-9801RA'
4 NEC PC-98XA Emulator 'ePC-98XA'
5 NEC PC-98XL Emulator 'ePC-98XL'
6 NEC PC-98RL Emulator 'ePC-98RL'
8 Author : Takeda.Toshiya
15 #if defined(SUPPORT_32BIT_ADDRESS)
25 d_cpu->set_address_mask(0x000fffff);
29 void CPUREG::write_io8(uint32_t addr, uint32_t data)
40 d_cpu->set_address_mask(0x000fffff);
43 //#if defined(SUPPORT_32BIT_ADDRESS)
44 // d_cpu->set_address_mask(0xffffffff);
46 d_cpu->set_address_mask(0x00ffffff);
49 #if defined(SUPPORT_32BIT_ADDRESS)
53 // d_cpu->set_address_mask(0xffffffff);
54 d_cpu->set_address_mask(0x00ffffff);
57 d_cpu->set_address_mask(0x000fffff);
65 uint32_t CPUREG::read_io8(uint32_t addr)
72 // value |= 0x80; // 1 = PC-9801NA, 0 = PC-9801NA/C
73 // value |= 0x80; // 1 = PC-9821modelS1, 0 = PC-9821modelS2
74 // value |= 0x80; // 1 = PC-9821CemodelS1, 0 = PC-9821CemodelS2
75 // value |= 0x80; // 1 = PC-9821Xt, 0 = PC-9821Xa
76 // value |= 0x80; // CPU MODE, 1 = High/Low, 0 = Middle (PC-9821Ap/As/Ae/Af)
77 // value |= 0x40; // ODP, 1 = Existing (PC-9821Ts)
78 #if defined(SUPPORT_SCSI_IF)
79 // value |= 0x40; // Internal 55-type SCSI-HDD, 0 = Existing
81 #if defined(SUPPORT_SASI_IF)
82 // value |= 0x20; // Internal 27-type SASI-HDD, 0 = Existing
84 // value |= 0x10; // Unknown
85 value |= 0x08; // RAM access, 1 = Internal-standard/External-enhanced RAM, 0 = Internal-enhanced RAM
86 // value |= 0x04; // Refresh mode, 1 = Standard, 0 = High speed
87 #if defined(HAS_I86) || defined(HAS_V30)
88 value |= 0x02; // CPU mode, 1 = V30, 0 = 80286/80386
90 value |= 0x01; // RAM access, 1 = Internal RAM, 0 = External-enhanced RAM
93 return ((d_cpu->get_address_mask() & (1 << 20)) ? 0x00 : 0x01) | 0xfe;
94 #if defined(SUPPORT_32BIT_ADDRESS)
97 #if defined(SUPPORT_HIRESO) && !defined(_PC98RL)
98 value |= 0x10; // SASI-HDD, 1 = DMA ch0, 0 = DMA ch1
101 value |= 0x02; // NMI, 1 = Enabled
103 return ((d_cpu->get_address_mask() & (1 << 20)) ? 0x00 : 0x01) | value;
109 #define STATE_VERSION 1
111 bool CPUREG::process_state(FILEIO* state_fio, bool loading)
113 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
116 if(!state_fio->StateCheckInt32(this_device_id)) {
119 state_fio->StateBool(nmi_enabled);