summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2021-05-15 19:35:36 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2021-05-15 19:35:36 +1000
commit63783116f2a2546eeac99a15997674ffdfdc7cd8 (patch)
treebbd29f8fbeb05248104d1440aacdd05347d31376
parentcb48ece8f96ae30574630762d8bfd74f678c82cf (diff)
Machines promoted to working
---------------------------- Microbee Teleterm [Robbbert]
-rw-r--r--src/mame/drivers/mbee.cpp6
-rw-r--r--src/mame/machine/mbee.cpp7
2 files changed, 6 insertions, 7 deletions
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index ab2b254d0be..d576dcc184e 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -93,11 +93,7 @@ from Brett Selwood and Andrew Davies.
TODO/not working:
Keyboard:
- - 256tc: Paste ignores shift key
- All others: Paste drops most characters.
- - Teleterm: keyboard has problems. The schematic shows it using the old-style keyboard,
- however it actually uses the new keyboard with interrupts.
- The keyboard has issues in the Offsider Macro Key Editor.
FDC: (TODO: see if these bugs still exist)
- B drive doesn't work with most disks.
@@ -1149,7 +1145,7 @@ COMP( 1985, mbeepc85, mbee, 0, mbeepc, mbee, mbee_state, init_mbeei
COMP( 1985, mbeepc85b, mbee, 0, mbeepc, mbee, mbee_state, init_mbeeic, "Applied Technology", "Microbee PC85 (New version)", MACHINE_SUPPORTS_SAVE )
COMP( 1985, mbeepc85s, mbee, 0, mbeepc, mbee, mbee_state, init_mbeeic, "Applied Technology", "Microbee PC85 (Swedish)", MACHINE_SUPPORTS_SAVE )
COMP( 1986, mbeeppc, mbee, 0, mbeeppc, mbee, mbee_state, init_mbeeppc, "Applied Technology", "Microbee Premium PC85", MACHINE_SUPPORTS_SAVE )
-COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, init_mbeett, "Applied Technology", "Microbee Teleterm", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
+COMP( 1986, mbeett, mbee, 0, mbeett, mbee256, mbee_state, init_mbeett, "Applied Technology", "Microbee Teleterm", MACHINE_SUPPORTS_SAVE )
COMP( 1986, mbee56, mbee, 0, mbee56, mbee, mbee_state, init_mbee56, "Applied Technology", "Microbee 56k", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
COMP( 1986, mbee128, mbee, 0, mbee128, mbee128, mbee_state, init_mbee128, "Applied Technology", "Microbee 128k Standard", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
COMP( 1986, mbee128p, mbee, 0, mbee128p, mbee128, mbee_state, init_mbee128p, "Applied Technology", "Microbee 128k Premium", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/machine/mbee.cpp b/src/mame/machine/mbee.cpp
index 5990c8c17ce..aac736ed3d1 100644
--- a/src/mame/machine/mbee.cpp
+++ b/src/mame/machine/mbee.cpp
@@ -163,7 +163,8 @@ TIMER_DEVICE_CALLBACK_MEMBER( mbee_state::newkb_timer )
// put it in the queue
uint8_t code = (i << 3) | j | (BIT(pressed, j) ? 0x80 : 0);
m_newkb_q[m_newkb_q_pos] = code;
- if (m_newkb_q_pos < 19) m_newkb_q_pos++;
+ if (m_newkb_q_pos < (std::size(m_newkb_q)-1))
+ m_newkb_q_pos++;
}
}
m_newkb_was_pressed[i] = pressed;
@@ -184,11 +185,13 @@ uint8_t mbee_state::port18_r()
if (m_newkb_q_pos)
{
- m_newkb_q_pos--;
for (i = 0; i < m_newkb_q_pos; i++) m_newkb_q[i] = m_newkb_q[i+1]; // ripple queue
+ m_newkb_q[m_newkb_q_pos] = 0;
+ m_newkb_q_pos--;
}
m_b2 = 0; // clear irq
+ m_pio->port_b_write(pio_port_b_r());
return data;
}