mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
hds200: Add rom banking
This commit is contained in:
parent
9e229dd40e
commit
3928edfe97
@ -20,10 +20,14 @@
|
|||||||
- XTAL 22.680 MHz and 35.640 MHz (video)
|
- XTAL 22.680 MHz and 35.640 MHz (video)
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Everything
|
- Z80DMA/SCN2674 hookup
|
||||||
|
- Keyboard
|
||||||
|
- RS232 ports
|
||||||
|
- Sound? (if supported)
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
-
|
- The PCB has a large unpopulated area. Possibly this is used for the
|
||||||
|
200G variant.
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
@ -54,13 +58,15 @@ public:
|
|||||||
m_dma(*this, "dma"),
|
m_dma(*this, "dma"),
|
||||||
m_screen(*this, "screen"),
|
m_screen(*this, "screen"),
|
||||||
m_avdc(*this, "avdc"),
|
m_avdc(*this, "avdc"),
|
||||||
m_duart(*this, "duart%u", 0U)
|
m_duart(*this, "duart%u", 0U),
|
||||||
|
m_rombank(*this, "rombank")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void hds200(machine_config &config);
|
void hds200(machine_config &config);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void mem_map(address_map &map);
|
void mem_map(address_map &map);
|
||||||
@ -71,6 +77,7 @@ private:
|
|||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
required_device<scn2674_device> m_avdc;
|
required_device<scn2674_device> m_avdc;
|
||||||
required_device_array<scn2681_device, 2> m_duart;
|
required_device_array<scn2681_device, 2> m_duart;
|
||||||
|
required_memory_bank m_rombank;
|
||||||
|
|
||||||
void duart0_out_w(uint8_t data);
|
void duart0_out_w(uint8_t data);
|
||||||
void duart1_out_w(uint8_t data);
|
void duart1_out_w(uint8_t data);
|
||||||
@ -83,7 +90,8 @@ private:
|
|||||||
|
|
||||||
void hds200_state::mem_map(address_map &map)
|
void hds200_state::mem_map(address_map &map)
|
||||||
{
|
{
|
||||||
map(0x0000, 0x5fff).rom().region("maincpu", 0);
|
map(0x0000, 0x3fff).rom().region("maincpu", 0);
|
||||||
|
map(0x4000, 0x5fff).bankr(m_rombank);
|
||||||
map(0x6800, 0x6fff).ram(); // nvram?
|
map(0x6800, 0x6fff).ram(); // nvram?
|
||||||
map(0x8000, 0xbfff).ram();
|
map(0x8000, 0xbfff).ram();
|
||||||
map(0xc000, 0xffff).noprw(); // expansion ram
|
map(0xc000, 0xffff).noprw(); // expansion ram
|
||||||
@ -130,11 +138,23 @@ void hds200_state::duart0_out_w(uint8_t data)
|
|||||||
|
|
||||||
void hds200_state::duart1_out_w(uint8_t data)
|
void hds200_state::duart1_out_w(uint8_t data)
|
||||||
{
|
{
|
||||||
|
// 76543--- unknown
|
||||||
|
// -----2-- rombank
|
||||||
|
// ------10 unknown
|
||||||
|
|
||||||
logerror("duart1_out_w: %02x\n", data);
|
logerror("duart1_out_w: %02x\n", data);
|
||||||
|
|
||||||
|
m_rombank->set_entry(!BIT(data, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
void hds200_state::machine_start()
|
void hds200_state::machine_start()
|
||||||
{
|
{
|
||||||
|
m_rombank->configure_entries(0, 2, memregion("maincpu")->base() + 0x4000, 0x2000);
|
||||||
|
}
|
||||||
|
|
||||||
|
void hds200_state::machine_reset()
|
||||||
|
{
|
||||||
|
m_rombank->set_entry(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -203,4 +223,4 @@ ROM_END
|
|||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||||
COMP( 198?, hds200, 0, 0, hds200, 0, hds200_state, empty_init, "Human Designed Systems", "HDS200", MACHINE_IS_SKELETON )
|
COMP( 198?, hds200, 0, 0, hds200, 0, hds200_state, empty_init, "Human Designed Systems", "HDS200", MACHINE_NOT_WORKING | MACHINE_NO_SOUND )
|
||||||
|
Loading…
Reference in New Issue
Block a user