mirror of
https://github.com/holub/mame
synced 2025-04-28 19:14:55 +03:00
l9nibble: Better guess at CPU type (nw)
This commit is contained in:
parent
2515997eee
commit
4d69553e25
@ -40,17 +40,17 @@
|
|||||||
Tech notes...
|
Tech notes...
|
||||||
|
|
||||||
About the unknown ICs:
|
About the unknown ICs:
|
||||||
DIP64 (U101) CPU with Xtal tied to pins 30 % 31. --> TMS9900? (ROM 9)
|
DIP64 (U101) CPU with Xtal tied to pins 30 % 31. --> NEC uPD78C11? (ROM 9)
|
||||||
DIP40 (U64) CPU or sound IC driving 128k (ROM 10) data? (pin 20 tied to GND)
|
DIP40 (U64) CPU or sound IC driving 128k (ROM 10) data? (pin 20 tied to GND)
|
||||||
|
|
||||||
|
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "cpu/tms9900/tms9980a.h"
|
#include "cpu/upd7810/upd7811.h"
|
||||||
//#include "cpu/tms9900/tms9900.h"
|
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
#include "video/mc6845.h"
|
#include "video/mc6845.h"
|
||||||
|
//#include "video/ramdac.h"
|
||||||
#include "emupal.h"
|
#include "emupal.h"
|
||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
@ -70,9 +70,9 @@ public:
|
|||||||
void nibble(machine_config &config);
|
void nibble(machine_config &config);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
required_shared_ptr<uint16_t> m_videoram;
|
required_shared_ptr<uint8_t> m_videoram;
|
||||||
tilemap_t *m_bg_tilemap;
|
tilemap_t *m_bg_tilemap;
|
||||||
DECLARE_WRITE16_MEMBER(nibble_videoram_w);
|
DECLARE_WRITE8_MEMBER(nibble_videoram_w);
|
||||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||||
|
|
||||||
virtual void machine_start() override;
|
virtual void machine_start() override;
|
||||||
@ -83,7 +83,6 @@ private:
|
|||||||
INTERRUPT_GEN_MEMBER(nibble_interrupt);
|
INTERRUPT_GEN_MEMBER(nibble_interrupt);
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<gfxdecode_device> m_gfxdecode;
|
required_device<gfxdecode_device> m_gfxdecode;
|
||||||
void nibble_cru_map(address_map &map);
|
|
||||||
void nibble_map(address_map &map);
|
void nibble_map(address_map &map);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ private:
|
|||||||
* Video Hardware *
|
* Video Hardware *
|
||||||
*************************/
|
*************************/
|
||||||
|
|
||||||
WRITE16_MEMBER(nibble_state::nibble_videoram_w)
|
WRITE8_MEMBER(nibble_state::nibble_videoram_w)
|
||||||
{
|
{
|
||||||
COMBINE_DATA(m_videoram+offset);
|
COMBINE_DATA(m_videoram+offset);
|
||||||
m_bg_tilemap->mark_tile_dirty(offset*2);
|
m_bg_tilemap->mark_tile_dirty(offset*2);
|
||||||
@ -108,7 +107,7 @@ TILE_GET_INFO_MEMBER(nibble_state::get_bg_tile_info)
|
|||||||
---- ---- color code.
|
---- ---- color code.
|
||||||
---- ---- seems unused.
|
---- ---- seems unused.
|
||||||
*/
|
*/
|
||||||
uint8_t code = m_videoram[tile_index/2] >> (tile_index & 1 ? 0 : 8);
|
uint8_t code = m_videoram[tile_index];
|
||||||
|
|
||||||
SET_TILE_INFO_MEMBER(0 /* bank */, code, 0 /* color */, 0);
|
SET_TILE_INFO_MEMBER(0 /* bank */, code, 0 /* color */, 0);
|
||||||
}
|
}
|
||||||
@ -157,16 +156,11 @@ void nibble_state::machine_reset()
|
|||||||
|
|
||||||
void nibble_state::nibble_map(address_map &map)
|
void nibble_state::nibble_map(address_map &map)
|
||||||
{
|
{
|
||||||
// ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
|
||||||
map(0x0000, 0xbfff).rom();
|
map(0x0000, 0xbfff).rom();
|
||||||
map(0xc000, 0xc3ff).w(FUNC(nibble_state::nibble_videoram_w)).share("videoram"); // placeholder
|
map(0xdc00, 0xdfff).ram().w(FUNC(nibble_state::nibble_videoram_w)).share("videoram");
|
||||||
// AM_RANGE(0xff00, 0xff01) AM_DEVWRITE("crtc", mc6845_device, address_w)
|
// RAMDAC at 0xec40?
|
||||||
// AM_RANGE(0xff02, 0xff03) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
|
map(0xecc8, 0xecc8).w("crtc", FUNC(mc6845_device::address_w));
|
||||||
}
|
map(0xecc9, 0xecc9).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
|
||||||
|
|
||||||
|
|
||||||
void nibble_state::nibble_cru_map(address_map &map)
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -311,10 +305,9 @@ GFXDECODE_END
|
|||||||
|
|
||||||
MACHINE_CONFIG_START(nibble_state::nibble)
|
MACHINE_CONFIG_START(nibble_state::nibble)
|
||||||
|
|
||||||
TMS9900(config, m_maincpu, MASTER_CLOCK/4);
|
UPD7811(config, m_maincpu, MASTER_CLOCK / 3); // type guessed; clock not verified
|
||||||
m_maincpu->set_addrmap(AS_PROGRAM, &nibble_state::nibble_map);
|
m_maincpu->set_addrmap(AS_PROGRAM, &nibble_state::nibble_map);
|
||||||
m_maincpu->set_addrmap(AS_IO, &nibble_state::nibble_cru_map);
|
//m_maincpu->set_vblank_int("screen", FUNC(nibble_state::nibble_interrupt));
|
||||||
m_maincpu->set_vblank_int("screen", FUNC(nibble_state::nibble_interrupt));
|
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -343,7 +336,8 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
ROM_START( l9nibble )
|
ROM_START( l9nibble )
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "09.u123", 0x00000, 0x10000, CRC(dfef685d) SHA1(0aeb4257e408e8549df629a0cdb5f2b6790e32de) ) // tms9900 code?
|
ROM_LOAD( "u101", 0x00000, 0x01000, NO_DUMP ) // first 4K of code likely contained in undumped internal ROM (with U123 banked over it?)
|
||||||
|
ROM_LOAD( "09.u123", 0x00000, 0x10000, CRC(dfef685d) SHA1(0aeb4257e408e8549df629a0cdb5f2b6790e32de) )
|
||||||
|
|
||||||
ROM_REGION( 0x80000, "gfx", 0 )
|
ROM_REGION( 0x80000, "gfx", 0 )
|
||||||
ROM_LOAD( "01.u139", 0x00000, 0x10000, CRC(aba06e58) SHA1(5841beec122613eed2ba9f48cb1d51bfa0ff450c) )
|
ROM_LOAD( "01.u139", 0x00000, 0x10000, CRC(aba06e58) SHA1(5841beec122613eed2ba9f48cb1d51bfa0ff450c) )
|
||||||
|
Loading…
Reference in New Issue
Block a user