@@ -61,19 +61,30 @@ class ipc_state : public driver_device
61
61
void ipc (machine_config &config);
62
62
63
63
private:
64
+ void board_common (machine_config &config);
64
65
void io_map (address_map &map) ATTR_COLD;
65
- void mem_map (address_map &map) ATTR_COLD;
66
+ void ipb_mem_map (address_map &map) ATTR_COLD;
67
+ void ipc_mem_map (address_map &map) ATTR_COLD;
66
68
67
69
virtual void machine_reset () override ATTR_COLD;
68
70
required_device<cpu_device> m_maincpu;
69
71
};
70
72
71
73
72
- void ipc_state::mem_map (address_map &map)
74
+ void ipc_state::ipb_mem_map (address_map &map)
75
+ {
76
+ map.unmap_value_high ();
77
+ map (0x0000 , 0x7fff ).ram ();
78
+ map (0xe800 , 0xe7ff ).rom ().region (" roms" , 0 );
79
+ map (0xf800 , 0xffff ).rom ().region (" roms" , 0x800 );
80
+ }
81
+
82
+
83
+ void ipc_state::ipc_mem_map (address_map &map)
73
84
{
74
85
map.unmap_value_high ();
75
86
map (0x0000 , 0xdfff ).ram ();
76
- map (0xe800 , 0xefff ).rom ().region (" roms" , 0 );
87
+ map (0xe800 , 0xe7ff ).rom ().region (" roms" , 0 );
77
88
map (0xf800 , 0xffff ).rom ().region (" roms" , 0x800 );
78
89
}
79
90
@@ -100,10 +111,25 @@ void ipc_state::machine_reset()
100
111
void ipc_state::ipc (machine_config &config)
101
112
{
102
113
/* basic machine hardware */
103
- I8085A (config, m_maincpu, XTAL (19'660'800 ) / 4 );
104
- m_maincpu->set_addrmap (AS_PROGRAM, &ipc_state::mem_map );
114
+ I8085A (config, m_maincpu, XTAL (8'000'000 ) / 2 );
115
+ m_maincpu->set_addrmap (AS_PROGRAM, &ipc_state::ipc_mem_map );
105
116
m_maincpu->set_addrmap (AS_IO, &ipc_state::io_map);
117
+ board_common (config);
118
+ }
119
+
106
120
121
+ void ipc_state::ipb (machine_config &config)
122
+ {
123
+ /* basic machine hardware */
124
+ I8080A (config, m_maincpu, XTAL (23'400'000 ) / 9 );
125
+ m_maincpu->set_addrmap (AS_PROGRAM, &ipc_state::ipb_mem_map);
126
+ m_maincpu->set_addrmap (AS_IO, &ipc_state::io_map);
127
+ board_common (config);
128
+ }
129
+
130
+
131
+ void ipc_state::board_common (machine_config &config)
132
+ {
107
133
pit8253_device &pit (PIT8253 (config, " pit" , 0 ));
108
134
pit.set_clk <0 >(XTAL (19'660'800 ) / 16 );
109
135
pit.set_clk <1 >(XTAL (19'660'800 ) / 16 );
@@ -151,6 +177,6 @@ ROM_END
151
177
152
178
/* Driver */
153
179
154
- /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
155
- COMP ( 19 ?? , ipb, 0 , 0 , ipc , ipc, ipc_state, empty_init, " Intel" , " iPB " , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
156
- COMP( 19 ?? , ipc, ipb, 0 , ipc, ipc, ipc_state, empty_init, " Intel" , " iPC " , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
180
+ /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
181
+ COMP ( 1977 , ipb, 0 , 0 , ipb , ipc, ipc_state, empty_init, " Intel" , " Integrated Processor Board " , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
182
+ COMP( 1979 , ipc, ipb, 0 , ipc, ipc, ipc_state, empty_init, " Intel" , " Integrated Processor Card " , MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
0 commit comments