summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2021-05-20 16:06:40 +0200
committer hap <happppp@users.noreply.github.com>2021-05-20 16:06:53 +0200
commit200d0b75cd25d20997a5654ea2dc242705df2180 (patch)
tree1bf283aec1048c45831746005c3070ba653a9360
parent5c1520fcfd7632f9fd5f3fa77579ce31b734c16b (diff)
saitek_osa: add embedded screen
-rw-r--r--src/devices/bus/saitek_osa/expansion.cpp19
-rw-r--r--src/devices/bus/saitek_osa/expansion.h7
-rw-r--r--src/mame/drivers/saitek_leonardo.cpp2
-rw-r--r--src/mame/drivers/saitek_renaissance.cpp4
-rw-r--r--src/mame/layout/saitek_leonardo.lay3
-rw-r--r--src/mame/layout/saitek_renaissance.lay3
6 files changed, 35 insertions, 3 deletions
diff --git a/src/devices/bus/saitek_osa/expansion.cpp b/src/devices/bus/saitek_osa/expansion.cpp
index b984d4b937c..afae7b15a56 100644
--- a/src/devices/bus/saitek_osa/expansion.cpp
+++ b/src/devices/bus/saitek_osa/expansion.cpp
@@ -63,6 +63,20 @@ void saitekosa_expansion_device::device_start()
}
//-------------------------------------------------
+// device_add_mconfig - add device configuration
+//-------------------------------------------------
+
+void saitekosa_expansion_device::device_add_mconfig(machine_config &config)
+{
+ // optional embedded screen
+ auto &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(60);
+ screen.set_size(100, 100);
+ screen.set_visarea_full();
+ screen.set_screen_update(FUNC(saitekosa_expansion_device::screen_update));
+}
+
+//-------------------------------------------------
// host to module interface
//-------------------------------------------------
@@ -102,6 +116,11 @@ void saitekosa_expansion_device::ack_w(int state)
m_ack = state;
}
+u32 saitekosa_expansion_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ return (m_module) ? m_module->screen_update(screen, bitmap, cliprect) : UPDATE_HAS_NOT_CHANGED;
+}
+
//**************************************************************************
// MODULE INTERFACE
diff --git a/src/devices/bus/saitek_osa/expansion.h b/src/devices/bus/saitek_osa/expansion.h
index 2e6727d3f1b..35449118b84 100644
--- a/src/devices/bus/saitek_osa/expansion.h
+++ b/src/devices/bus/saitek_osa/expansion.h
@@ -29,6 +29,8 @@
#pragma once
+#include "screen.h"
+
//**************************************************************************
// TYPE DEFINITIONS
@@ -76,11 +78,14 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
+ virtual void device_add_mconfig(machine_config &config) override;
private:
devcb_write_line m_stb_handler;
devcb_write_line m_rts_handler;
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
// input pins state
u8 m_data = 0;
int m_nmi = 0;
@@ -102,6 +107,8 @@ public:
virtual void nmi_w(int state) { }
virtual void ack_w(int state) { }
+ virtual u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { return UPDATE_HAS_NOT_CHANGED; }
+
protected:
device_saitekosa_expansion_interface(const machine_config &mconfig, device_t &device);
diff --git a/src/mame/drivers/saitek_leonardo.cpp b/src/mame/drivers/saitek_leonardo.cpp
index 4b8bebda759..e985306a4de 100644
--- a/src/mame/drivers/saitek_leonardo.cpp
+++ b/src/mame/drivers/saitek_leonardo.cpp
@@ -173,7 +173,7 @@ void leo_state::exp_stb_w(int state)
void leo_state::exp_rts_w(int state)
{
- // ?
+ // NAND with ACK-P? (not used by module)
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
diff --git a/src/mame/drivers/saitek_renaissance.cpp b/src/mame/drivers/saitek_renaissance.cpp
index 396fc2e3db0..7bda77e4416 100644
--- a/src/mame/drivers/saitek_renaissance.cpp
+++ b/src/mame/drivers/saitek_renaissance.cpp
@@ -184,7 +184,7 @@ void ren_state::exp_stb_w(int state)
void ren_state::exp_rts_w(int state)
{
- // ?
+ // NAND with ACK-P? (not used by module)
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(100));
}
@@ -342,7 +342,7 @@ void ren_state::ren(machine_config &config)
m_lcd_pwm->set_refresh(attotime::from_hz(30));
m_lcd_pwm->output_x().set(FUNC(ren_state::lcd_pwm_w));
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
+ auto &screen(SCREEN(config, "screen", SCREEN_TYPE_SVG));
screen.set_refresh_hz(60);
screen.set_size(873/2, 1080/2);
screen.set_visarea_full();
diff --git a/src/mame/layout/saitek_leonardo.lay b/src/mame/layout/saitek_leonardo.lay
index 088c8de124a..d63bfd10283 100644
--- a/src/mame/layout/saitek_leonardo.lay
+++ b/src/mame/layout/saitek_leonardo.lay
@@ -502,5 +502,8 @@ license:CC0
<element name="8.7" ref="ledrr" blend="add"><bounds x="40" y="90" width="2" height="1" /></element>
<element name="9.7" ref="ledrg" blend="add"><bounds x="40" y="90" width="2" height="1" /></element>
+ <!-- analyst's screen -->
+ <screen index="0"><bounds x="70" y="90" width="10" height="10" /></screen>
+
</view>
</mamelayout>
diff --git a/src/mame/layout/saitek_renaissance.lay b/src/mame/layout/saitek_renaissance.lay
index 3e457dbc001..f84f21f42db 100644
--- a/src/mame/layout/saitek_renaissance.lay
+++ b/src/mame/layout/saitek_renaissance.lay
@@ -486,5 +486,8 @@ license:CC0
<element name="9.2" ref="ledr"><bounds x="12" y="90" width="2" height="1" /></element>
<element name="9.3" ref="ledr"><bounds x="16" y="90" width="2" height="1" /></element>
+ <!-- analyst's screen -->
+ <screen index="1"><bounds x="70" y="90" width="10" height="10" /></screen>
+
</view>
</mamelayout>