summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/psion5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/psion5.cpp')
-rw-r--r--src/mame/drivers/psion5.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/mame/drivers/psion5.cpp b/src/mame/drivers/psion5.cpp
index c9c205b4f50..f58c4902bdd 100644
--- a/src/mame/drivers/psion5.cpp
+++ b/src/mame/drivers/psion5.cpp
@@ -7,7 +7,6 @@
Driver by Ryan Holtz, ported from work by Ash Wolf
TODO:
- - Touch inputs
- Audio
- UART support
- Probably more
@@ -55,7 +54,7 @@
#define LOG_ALL_IRQ (LOG_IRQ | LOG_EOI_WRITES | LOG_INT_WRITES | LOG_EOI_READS | LOG_INT_READS)
#define LOG_ALL (LOG_UNKNOWNS | LOG_IRQ | LOG_DISPLAY | LOG_WRITES | LOG_READS)
-#define VERBOSE (0)
+#define VERBOSE (LOG_CODEC_READS | LOG_CODEC_WRITES | LOG_BUZZER_WRITES)
#include "logmacro.h"
void psion5mx_state::machine_start()
@@ -129,6 +128,10 @@ void psion5mx_state::device_timer(emu_timer &timer, device_timer_id id, int para
{
case TID_TIMER1:
update_timer(0);
+ if (BIT(m_buzzer_ctrl, 1))
+ {
+ m_speaker->level_w(BIT(m_timer_value[0], 15));
+ }
break;
case TID_TIMER2:
update_timer(1);
@@ -372,6 +375,7 @@ READ32_MEMBER(psion5mx_state::periphs_r)
break;
case REG_BZCONT:
+ data = m_buzzer_ctrl;
LOGMASKED(LOG_BUZZER_READS, "%s: peripheral read, BZCONT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
break;
@@ -611,6 +615,11 @@ WRITE32_MEMBER(psion5mx_state::periphs_w)
break;
case REG_BZCONT:
+ m_buzzer_ctrl = data;
+ if (!BIT(m_buzzer_ctrl, 1))
+ {
+ m_speaker->level_w(BIT(m_buzzer_ctrl, 0));
+ }
LOGMASKED(LOG_BUZZER_WRITES, "%s: peripheral write, BZCONT = %08x & %08x\n", machine().describe_context(), data, mem_mask);
break;
@@ -937,6 +946,10 @@ void psion5mx_state::psion5mx(machine_config &config)
screen.set_visarea(0, 640-1, 0, 240-1);
PALETTE(config, m_palette, FUNC(psion5mx_state::palette_init), 16);
+
+ /* sound hardware */
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
}
/* ROM definition */
@@ -949,4 +962,4 @@ ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1999, psion5mx, 0, 0, psion5mx, psion5mx, psion5mx_state, empty_init, "Psion", "Series 5mx", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NO_SOUND | MACHINE_SUPPORTS_SAVE )
+COMP( 1999, psion5mx, 0, 0, psion5mx, psion5mx, psion5mx_state, empty_init, "Psion", "Series 5mx", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE )