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)
23 d_cpu->set_address_mask(0x000fffff);
27 void CPUREG::write_io8(uint32_t addr, uint32_t data)
38 d_cpu->set_address_mask(0x000fffff);
41 //#if defined(SUPPORT_32BIT_ADDRESS)
42 // d_cpu->set_address_mask(0xffffffff);
44 d_cpu->set_address_mask(0x00ffffff);
47 #if defined(SUPPORT_32BIT_ADDRESS)
51 // d_cpu->set_address_mask(0xffffffff);
52 d_cpu->set_address_mask(0x00ffffff);
55 d_cpu->set_address_mask(0x000fffff);
63 uint32_t CPUREG::read_io8(uint32_t addr)
70 // value |= 0x80; // 1 = PC-9801NA, 0 = PC-9801NA/C
71 // value |= 0x80; // 1 = PC-9821modelS1, 0 = PC-9821modelS2
72 // value |= 0x80; // 1 = PC-9821CemodelS1, 0 = PC-9821CemodelS2
73 // value |= 0x80; // 1 = PC-9821Xt, 0 = PC-9821Xa
74 // value |= 0x80; // CPU MODE, 1 = High/Low, 0 = Middle (PC-9821Ap/As/Ae/Af)
75 // value |= 0x40; // ODP, 1 = Existing (PC-9821Ts)
76 #if defined(SUPPORT_SCSI_IF)
77 // value |= 0x40; // Internal 55-type SCSI-HDD, 0 = Existing
79 #if defined(SUPPORT_SASI_IF)
80 // value |= 0x20; // Internal 27-type SASI-HDD, 0 = Existing
82 // value |= 0x10; // Unknown
83 value |= 0x08; // RAM access, 1 = Internal-standard/External-enhanced RAM, 0 = Internal-enhanced RAM
84 // value |= 0x04; // Refresh mode, 1 = Standard, 0 = High speed
85 #if defined(HAS_I86) || defined(HAS_V30)
86 value |= 0x02; // CPU mode, 1 = V30, 0 = 80286/80386
88 value |= 0x01; // RAM access, 1 = Internal RAM, 0 = External-enhanced RAM
91 return ((d_cpu->get_address_mask() & (1 << 20)) ? 0x00 : 0x01) | 0xfe;
92 #if defined(SUPPORT_32BIT_ADDRESS)
95 #if defined(SUPPORT_HIRESO) && !defined(_PC98RL)
96 value |= 0x10; // SASI-HDD, 1 = DMA ch0, 0 = DMA ch1
99 value |= 0x02; // NMI, 1 = Enabled
101 return ((d_cpu->get_address_mask() & (1 << 20)) ? 0x00 : 0x01) | value;
107 #define STATE_VERSION 1
109 bool CPUREG::process_state(FILEIO* state_fio, bool loading)
111 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
114 if(!state_fio->StateCheckInt32(this_device_id)) {
117 state_fio->StateBool(nmi_enabled);