From ba7a9d75eee9e824160496f73aa302a1da8a33e5 Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Tue, 21 Aug 2012 19:50:30 +0000 Subject: [PATCH] (MESS) vip: Fixed VP-700 Tiny BASIC ROM mapping and VP-620 ASCII keyboard. [Curt Coder] --- src/mess/drivers/vip.c | 20 ++++++++++---------- src/mess/machine/vp620.c | 7 +++++-- src/mess/machine/vp620.h | 2 +- src/mess/machine/vp700.c | 2 +- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index f2f1a6e0af2..0bfee806247 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -56,7 +56,7 @@ Notes: TODO: - - Tiny BASIC + - ASCII keyboard - cassette loading - 20K RAM for Floating Point BASIC - VP-111 has 1K RAM, no byte I/O, no expansion @@ -266,16 +266,13 @@ READ8_MEMBER( vip_state::read ) UINT8 data = m_exp->program_r(space, offset, cs, cdef, &minh); - if (!minh) + if (cs) { - if (cs) - { - data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; - } - else - { - data = m_ram->pointer()[offset & m_ram->mask()]; - } + data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; + } + else if (!minh) + { + data = m_ram->pointer()[offset & m_ram->mask()]; } return data; @@ -708,6 +705,9 @@ void vip_state::machine_reset() // internal speaker m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0); + + // clear byte I/O latch + m_byteio_data = 0; } diff --git a/src/mess/machine/vp620.c b/src/mess/machine/vp620.c index 8f6791d5d2a..df2d6595bff 100644 --- a/src/mess/machine/vp620.c +++ b/src/mess/machine/vp620.c @@ -25,7 +25,10 @@ const device_type VP620 = &device_creator; WRITE8_MEMBER( vp620_device::kb_w ) { m_keydata = data; - + + m_slot->inst_w(0); + m_slot->inst_w(1); + m_keystb = ASSERT_LINE; } @@ -96,7 +99,7 @@ UINT8 vp620_device::vip_in_r() // vip_ef3_r - EF3 flag read //------------------------------------------------- -int vp620_device::vip_ef3_r() +int vp620_device::vip_ef4_r() { int state = m_keystb; diff --git a/src/mess/machine/vp620.h b/src/mess/machine/vp620.h index cd7bb568d23..c34f8f71d87 100644 --- a/src/mess/machine/vp620.h +++ b/src/mess/machine/vp620.h @@ -44,7 +44,7 @@ protected: // device_vip_byteio_port_interface overrides virtual UINT8 vip_in_r(); - virtual int vip_ef3_r(); + virtual int vip_ef4_r(); private: UINT8 m_keydata; diff --git a/src/mess/machine/vp700.c b/src/mess/machine/vp700.c index 6a6fa91609c..289ad626063 100644 --- a/src/mess/machine/vp700.c +++ b/src/mess/machine/vp700.c @@ -72,7 +72,7 @@ UINT8 vp700_device::vip_program_r(address_space &space, offs_t offset, int cs, i { UINT8 data = 0xff; - if (cs) + if (offset < 0x1000) { *minh = 1;