summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/tk80bs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/tk80bs.cpp')
-rw-r--r--src/mame/drivers/tk80bs.cpp41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/mame/drivers/tk80bs.cpp b/src/mame/drivers/tk80bs.cpp
index f8c7ce114bc..a5b0caa08f6 100644
--- a/src/mame/drivers/tk80bs.cpp
+++ b/src/mame/drivers/tk80bs.cpp
@@ -32,29 +32,28 @@ TODO:
class tk80bs_state : public driver_device
{
public:
- tk80bs_state(const machine_config &mconfig, device_type type, const char *tag) :
- driver_device(mconfig, type, tag),
- m_p_videoram(*this, "videoram"),
- m_maincpu(*this, "maincpu"),
- m_ppi(*this, "ppi"),
- m_gfxdecode(*this, "gfxdecode"),
- m_palette(*this, "palette")
- {
- }
+ tk80bs_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_p_videoram(*this, "videoram")
+ , m_maincpu(*this, "maincpu")
+ , m_ppi(*this, "ppi")
+ , m_gfxdecode(*this, "gfxdecode")
+ , m_palette(*this, "palette")
+ { }
void tk80bs(machine_config &config);
private:
uint8_t ppi_custom_r(offs_t offse);
+ void machine_start() override;
void ppi_custom_w(offs_t offset, uint8_t data);
void kbd_put(u8 data);
uint8_t port_a_r();
uint8_t port_b_r();
uint32_t screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- required_shared_ptr<uint8_t> m_p_videoram;
- void tk80bs_mem(address_map &map);
-
+ void mem_map(address_map &map);
uint8_t m_term_data;
+ required_shared_ptr<uint8_t> m_p_videoram;
required_device<cpu_device> m_maincpu;
required_device<i8255_device> m_ppi;
required_device<gfxdecode_device> m_gfxdecode;
@@ -111,7 +110,7 @@ void tk80bs_state::ppi_custom_w(offs_t offset, uint8_t data)
}
}
-void tk80bs_state::tk80bs_mem(address_map &map)
+void tk80bs_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x07ff).rom();
@@ -155,8 +154,14 @@ void tk80bs_state::kbd_put(u8 data)
m_term_data = data;
}
+void tk80bs_state::machine_start()
+{
+ save_item(NAME(m_term_data));
+}
+
+
/* F4 Character Displayer */
-static const gfx_layout tk80bs_charlayout =
+static const gfx_layout charlayout =
{
8, 8,
512,
@@ -168,7 +173,7 @@ static const gfx_layout tk80bs_charlayout =
};
static GFXDECODE_START( gfx_tk80bs )
- GFXDECODE_ENTRY( "chargen", 0x0000, tk80bs_charlayout, 0, 1 )
+ GFXDECODE_ENTRY( "chargen", 0x0000, charlayout, 0, 1 )
GFXDECODE_END
@@ -176,7 +181,7 @@ void tk80bs_state::tk80bs(machine_config &config)
{
/* basic machine hardware */
I8080(config, m_maincpu, XTAL(1'000'000)); //unknown clock
- m_maincpu->set_addrmap(AS_PROGRAM, &tk80bs_state::tk80bs_mem);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tk80bs_state::mem_map);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
@@ -221,11 +226,11 @@ ROM_START( tk80bs )
ROMX_LOAD( "lv2basic.11",0xd000, 0x2000, BAD_DUMP CRC(3df9a3bd) SHA1(9539409c876bce27d630fe47d07a4316d2ce09cb), ROM_BIOS(2))
ROMX_LOAD( "bsmon.11", 0xf000, 0x0ff6, BAD_DUMP CRC(fca7a609) SHA1(7c7eb5e5e4cf1e0021383bdfc192b88262aba6f5), ROM_BIOS(2))
- ROM_REGION( 0x1000, "chargen", ROMREGION_ERASEFF )
+ ROM_REGION( 0x1000, "chargen", 0 )
ROM_LOAD( "font.rom", 0x0000, 0x1000, BAD_DUMP CRC(94d95199) SHA1(9fe741eab866b0c520d4108bccc6277172fa190c))
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, tk80bs_state, empty_init, "NEC", "TK-80BS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW)
+COMP( 1980, tk80bs, tk80, 0, tk80bs, tk80bs, tk80bs_state, empty_init, "NEC", "TK-80BS", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )