mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
New skeleton LINK RM480Z
This commit is contained in:
parent
2b13832d36
commit
3ffb5e1707
@ -170,12 +170,18 @@ static MACHINE_CONFIG_START( rm380z, rm380z_state )
|
||||
MCFG_GENERIC_KEYBOARD_CB(WRITE8(rm380z_state, keyboard_put))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( rm480z, rm380z )
|
||||
MCFG_SCREEN_MODIFY("screen")
|
||||
MCFG_SCREEN_SIZE(64*8, 24*11)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 24*11-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm480z)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
/* ROM definitions */
|
||||
|
||||
ROM_START( rm380z34d )
|
||||
ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 )
|
||||
ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 )
|
||||
ROM_LOAD( "cos34d-f.bin", 0x0000, 0x1000, CRC(eb128b40) SHA1(c46f358fb76459987e41750d052995563f2f7d53))
|
||||
// chargen ROM is undumped, afaik
|
||||
ROM_REGION( 0x1680, "chargen", 0 )
|
||||
@ -199,15 +205,22 @@ ROM_START( rm380z )
|
||||
// chargen ROM is undumped, afaik
|
||||
ROM_REGION( 0x1680, "chargen", 0 )
|
||||
ROM_LOAD( "ch3.raw", 0x0000, 0x1680, BAD_DUMP CRC(c223622b) SHA1(185ef24896419d7ff46f71a760ac217de3811684))
|
||||
// The characters on the 480Z are very close (or identical) to the 380Z ones
|
||||
//ROM_REGION( 0x2000, "chargen", 0 )
|
||||
//ROM_LOAD( "CG06.BIN", 0x0000, 0x2000, CRC(15d40f7e) SHA1(a7266357eb9be849f77a97ff3013b236c0af8289))
|
||||
ROM_END
|
||||
|
||||
ROM_START( rm480z )
|
||||
ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 )
|
||||
ROM_LOAD( "cos40b-m.bin", 0x0000, 0x1000, CRC(1f0b3a5c) SHA1(0b29cb2a3b7eaa3770b34f08c4fd42844f42700f))
|
||||
ROM_LOAD( "cos40b-m_f600-f9ff.bin", 0x1000, 0x400, CRC(e3397d9d) SHA1(490a0c834b0da392daf782edc7d51ca8f0668b1a))
|
||||
ROM_LOAD( "cos40b-m_1c00-1dff.bin", 0x1400, 0x200, CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff))
|
||||
ROM_REGION( 0x2000, "chargen", 0 )
|
||||
ROM_LOAD( "cg06.bin", 0x0000, 0x2000, CRC(15d40f7e) SHA1(a7266357eb9be849f77a97ff3013b236c0af8289) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/* Driver */
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
|
||||
COMP(1978, rm380z, 0, 0, rm380z, rm380z, rm380z_state, rm380z, "Research Machines", "RM-380Z, COS 4.0B", MACHINE_NO_SOUND_HW)
|
||||
COMP(1978, rm380z, 0, 0, rm380z, rm380z, rm380z_state, rm380z, "Research Machines", "RM-380Z, COS 4.0B", MACHINE_NO_SOUND_HW)
|
||||
COMP(1978, rm380z34d, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34d, "Research Machines", "RM-380Z, COS 3.4D", MACHINE_BTANB_FLAGS)
|
||||
COMP(1978, rm380z34e, rm380z, 0, rm380z, rm380z, rm380z_state, rm380z34e, "Research Machines", "RM-380Z, COS 3.4E", MACHINE_BTANB_FLAGS)
|
||||
COMP(1981, rm480z, rm380z, 0, rm480z, rm380z, rm380z_state, rm380z34e, "Research Machines", "LINK RM-480Z", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
|
||||
|
||||
|
@ -60,12 +60,9 @@ private:
|
||||
|
||||
int writenum;
|
||||
|
||||
protected:
|
||||
virtual void machine_reset() override;
|
||||
virtual void machine_start() override;
|
||||
|
||||
public:
|
||||
|
||||
uint8_t m_port0;
|
||||
uint8_t m_port0_mask;
|
||||
uint8_t m_port0_kbd;
|
||||
@ -96,6 +93,7 @@ public:
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
|
||||
public:
|
||||
rm380z_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_maincpu(*this, RM380Z_MAINCPU_TAG),
|
||||
@ -136,6 +134,7 @@ public:
|
||||
void config_memory_map();
|
||||
void update_screen(bitmap_ind16 &bitmap);
|
||||
uint32_t screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_rm480z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
TIMER_CALLBACK_MEMBER(static_vblank_timer);
|
||||
};
|
||||
|
||||
|
@ -31705,6 +31705,7 @@ rltennis // (c) 1993 TCH
|
||||
rm380z //
|
||||
rm380z34d //
|
||||
rm380z34e //
|
||||
rm480z //
|
||||
|
||||
@source:rmhaihai.cpp
|
||||
rmhaihai // (c) 1985 Alba
|
||||
|
@ -404,3 +404,40 @@ void rm380z_state::update_screen(bitmap_ind16 &bitmap)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This needs the attributes etc from above to be added
|
||||
uint32_t rm380z_state::screen_update_rm480z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
uint8_t *chargen = memregion("chargen")->base();
|
||||
uint8_t y,ra,chr,gfx;
|
||||
uint16_t sy=0,ma=0,x;
|
||||
|
||||
for (y = 0; y < RM380Z_SCREENROWS; y++)
|
||||
{
|
||||
for (ra = 0; ra < 11; ra++)
|
||||
{
|
||||
uint16_t *p = &bitmap.pix16(sy++);
|
||||
|
||||
for (x = ma; x < ma + 64; x++)
|
||||
{
|
||||
gfx = 0;
|
||||
if (ra < 10)
|
||||
{
|
||||
chr = m_vramchars[x];
|
||||
gfx = chargen[(chr<<4) | ra ];
|
||||
}
|
||||
/* Display a scanline of a character */
|
||||
*p++ = BIT(gfx, 7);
|
||||
*p++ = BIT(gfx, 6);
|
||||
*p++ = BIT(gfx, 5);
|
||||
*p++ = BIT(gfx, 4);
|
||||
*p++ = BIT(gfx, 3);
|
||||
*p++ = BIT(gfx, 2);
|
||||
*p++ = BIT(gfx, 1);
|
||||
*p++ = BIT(gfx, 0);
|
||||
}
|
||||
}
|
||||
ma+=64;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user