mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
vt52: Add bell (not working now) (nw)
This commit is contained in:
parent
449f853d2f
commit
e665b95e65
@ -26,6 +26,7 @@ vt5x_cpu_device::vt5x_cpu_device(const machine_config &mconfig, device_type type
|
||||
, m_ut_flag_callback(*this)
|
||||
, m_ruf_callback(*this)
|
||||
, m_key_up_callback(*this)
|
||||
, m_bell_callback(*this)
|
||||
, m_bbits(bbits)
|
||||
, m_ybits(ybits)
|
||||
, m_pc(0)
|
||||
@ -44,6 +45,7 @@ vt5x_cpu_device::vt5x_cpu_device(const machine_config &mconfig, device_type type
|
||||
, m_write_ff(false)
|
||||
, m_flag_test_ff(false)
|
||||
, m_m2u_ff(false)
|
||||
, m_bell_ff(false)
|
||||
, m_load_pc(false)
|
||||
, m_qa_e23(0)
|
||||
, m_icount(0)
|
||||
@ -89,6 +91,7 @@ void vt5x_cpu_device::device_resolve_objects()
|
||||
m_ut_flag_callback.resolve_safe(0);
|
||||
m_ruf_callback.resolve_safe();
|
||||
m_key_up_callback.resolve_safe(1);
|
||||
m_bell_callback.resolve_safe();
|
||||
}
|
||||
|
||||
void vt5x_cpu_device::device_start()
|
||||
@ -133,6 +136,7 @@ void vt5x_cpu_device::device_start()
|
||||
save_item(NAME(m_write_ff));
|
||||
save_item(NAME(m_flag_test_ff));
|
||||
save_item(NAME(m_m2u_ff));
|
||||
save_item(NAME(m_bell_ff));
|
||||
save_item(NAME(m_load_pc));
|
||||
save_item(NAME(m_qa_e23));
|
||||
}
|
||||
@ -298,7 +302,9 @@ void vt5x_cpu_device::execute_tw(u8 inst)
|
||||
break;
|
||||
|
||||
case 0060:
|
||||
// CBFF (TODO)
|
||||
// CBFF
|
||||
m_bell_ff = !m_bell_ff;
|
||||
m_bell_callback(m_bell_ff);
|
||||
break;
|
||||
|
||||
case 0100:
|
||||
@ -330,6 +336,8 @@ void vt5x_cpu_device::execute_tw(u8 inst)
|
||||
m_write_ff = (m_mode_ff || m_ac >= m_ram_do) && !m_done_ff;
|
||||
else
|
||||
m_write_ff = (inst & 0162) == 0022 || (inst & 0162) == 0062 || (inst & 0162) == 0122;
|
||||
|
||||
// DONE is set by any RAM write, not just LD
|
||||
if (m_write_ff)
|
||||
m_done_ff = true;
|
||||
}
|
||||
@ -470,7 +478,7 @@ void vt5x_cpu_device::execute_th(u8 inst)
|
||||
|
||||
case 0160:
|
||||
// M0: TOSJ (TODO)
|
||||
// M1: KEYJ (TODO)
|
||||
// M1: KEYJ
|
||||
if (m_mode_ff)
|
||||
m_load_pc = m_key_up_callback(m_ac) & 1;
|
||||
break;
|
||||
|
@ -23,6 +23,7 @@ public:
|
||||
auto ut_flag_callback() { return m_ut_flag_callback.bind(); }
|
||||
auto ruf_callback() { return m_ruf_callback.bind(); }
|
||||
auto key_up_callback() { return m_key_up_callback.bind(); }
|
||||
auto bell_callback() { return m_bell_callback.bind(); }
|
||||
|
||||
protected:
|
||||
// construction/destruction
|
||||
@ -66,6 +67,7 @@ protected:
|
||||
devcb_read_line m_ut_flag_callback;
|
||||
devcb_write_line m_ruf_callback;
|
||||
devcb_read8 m_key_up_callback;
|
||||
devcb_write_line m_bell_callback;
|
||||
|
||||
// register dimensions
|
||||
const u8 m_bbits;
|
||||
@ -90,6 +92,7 @@ protected:
|
||||
bool m_write_ff;
|
||||
bool m_flag_test_ff;
|
||||
bool m_m2u_ff;
|
||||
bool m_bell_ff;
|
||||
bool m_load_pc;
|
||||
bool m_qa_e23;
|
||||
s32 m_icount;
|
||||
|
@ -23,7 +23,9 @@
|
||||
//#include "bus/rs232/rs232.h"
|
||||
#include "cpu/vt50/vt50.h"
|
||||
#include "machine/ay31015.h"
|
||||
#include "sound/spkrdev.h"
|
||||
#include "screen.h"
|
||||
#include "speaker.h"
|
||||
|
||||
class vt52_state : public driver_device
|
||||
{
|
||||
@ -202,12 +204,16 @@ void vt52_state::vt52(machine_config &mconfig)
|
||||
m_maincpu->ut_flag_callback().set(FUNC(vt52_state::xrdy_eoc_r));
|
||||
m_maincpu->ruf_callback().set(m_uart, FUNC(ay51013_device::write_rdav));
|
||||
m_maincpu->key_up_callback().set(FUNC(vt52_state::key_r));
|
||||
m_maincpu->bell_callback().set("bell", FUNC(speaker_sound_device::level_w));
|
||||
|
||||
AY51013(mconfig, m_uart); // TR1402 or equivalent
|
||||
|
||||
screen_device &screen(SCREEN(mconfig, "screen", SCREEN_TYPE_RASTER));
|
||||
screen.set_raw(13.824_MHz_XTAL, 900, 0, 720, 256, 0, 192);
|
||||
screen.set_screen_update(FUNC(vt52_state::screen_update));
|
||||
|
||||
SPEAKER(mconfig, "mono").front_center();
|
||||
SPEAKER_SOUND(mconfig, "bell").add_route(ALL_OUTPUTS, "mono", 0.05);
|
||||
}
|
||||
|
||||
ROM_START(vt52)
|
||||
|
Loading…
Reference in New Issue
Block a user