heathkit/tlb.cpp: Use layout to mask border and create a visible bezel (#12010)

This commit is contained in:
Mark Garlanger 2024-03-02 09:28:04 -06:00 committed by GitHub
parent 308b6f0f30
commit c15059824a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 103 additions and 1 deletions

View File

@ -14,6 +14,9 @@
#include "tlb.h"
#include "bus/rs232/rs232.h"
#include "h19.lh"
namespace {
class h19_state : public driver_device
@ -45,6 +48,8 @@ static void tlb_options(device_slot_interface &device)
void h19_state::h19(machine_config &config)
{
config.set_default_layout(layout_h19);
HEATH_TLB_CONNECTOR(config, m_tlbc, tlb_options, "heath");
m_tlbc->serial_data_callback().set("dte", FUNC(rs232_port_device::write_txd));
m_tlbc->dtr_callback().set("dte", FUNC(rs232_port_device::write_dtr));

View File

@ -56,6 +56,9 @@
#include "softlist_dev.h"
#include "h89.lh"
// Single Step
#define LOG_SS (1U << 1)
@ -834,6 +837,8 @@ static void intr_ctrl_options(device_slot_interface &device)
void h89_base_state::h89_base(machine_config &config)
{
config.set_default_layout(layout_h89);
// basic machine hardware
Z80(config, m_maincpu, H89_CLOCK);
m_maincpu->set_m1_map(&h89_base_state::map_fetch);

View File

@ -1074,7 +1074,7 @@ void heath_tlb_device::device_add_mconfig(machine_config &config)
// MC 6845 uses a character clock, divide the DOT clock by 8.
MC6845(config, m_crtc, BASE_DOT_CLOCK / 8);
m_crtc->set_screen("screen");
m_crtc->set_show_border_area(true);
m_crtc->set_show_border_area(false);
m_crtc->set_char_width(8);
m_crtc->set_update_row_callback(FUNC(heath_tlb_device::crtc_update_row));
// frame pulse

46
src/mame/layout/h19.lay Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
Heath H19 with a border
-->
<mamelayout version="2">
<element name="front_gray"><rect><color red="0.50" green="0.50" blue="0.50" /></rect></element>
<element name="dark_gray"><rect><color red="0.30" green="0.30" blue="0.30" /></rect></element>
<element name="border">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="800" height="600" viewBox="0 0 800 600">
<path d="M50,25 C100,10 700,10 750,25 L800,0 L0,0 z" fill="#7f7f7f" stroke="#7f7f7f" stroke-width="3" />
<path d="M50,25 C10,150 10,450 50,575 L0,600 L0,0 z" fill="#7f7f7f" stroke="#7f7f7f" stroke-width="3" />
<path d="M50,575 C100,590 700,590 750,575 L800,600 L0,600 z" fill="#7f7f7f" stroke="#7f7f7f" stroke-width="3" />
<path d="M750,25 C790,150 790,450 750,575 L800,600 L800,0 z" fill="#7f7f7f" stroke="#7f7f7f" stroke-width="3" />
</svg>
]]></data></image>
</element>
<element name="inner">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="800" height="600" viewBox="0 0 800 600">
<path d="M70,40 C100,20 700,20 730,40 L800,0 L0,0 z" fill="#2f2f2f" stroke="#2f2f2f" stroke-width="3" />
<path d="M70,560 C100,580 700,580 730,560 L800,600 L0,600 z" fill="#9f9f9f" stroke="#9f9f9f" stroke-width="3" />
<path d="M70,40 C30,150 30,450 70,560 L0,600 L0,0 z" fill="#5f5f5f" stroke="#5f5f5f" stroke-width="3" />
<path d="M730,40 C770,150 770,450 730,560 L800,600 L800,0 z" fill="#5f5f5f" stroke="#5f5f5f" stroke-width="3" />
</svg>
]]></data></image>
</element>
<view name="Screen">
<bounds left="0" top="0" right="800" bottom="600" />
<element ref="inner"><bounds x="0" y="0" width="800" height="600" /></element>
<element ref="border"><bounds x="0" y="0" width="800" height="600" /></element>
<screen index="0">
<bounds x="80" y="50" width="640" height="500" />
</screen>
</view>
</mamelayout>

46
src/mame/layout/h89.lay Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
Heath H89 with a border
-->
<mamelayout version="2">
<element name="front_gray"><rect><color red="0.50" green="0.50" blue="0.50" /></rect></element>
<element name="dark_gray"><rect><color red="0.30" green="0.30" blue="0.30" /></rect></element>
<element name="border">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="800" height="600" viewBox="0 0 800 600">
<path d="M50,25 C100,10 700,10 750,25 L800,0 L0,0 z" fill="#7f7f7f" stroke="#7f7f7f" />
<path d="M50,25 C10,150 10,450 50,575 L0,600 L0,0 z" fill="#7f7f7f" stroke="#7f7f7f" />
<path d="M50,575 C100,590 700,590 750,575 L800,600 L0,600 z" fill="#7f7f7f" stroke="#7f7f7f" />
<path d="M750,25 C790,150 790,450 750,575 L800,600 L800,0 z" fill="#7f7f7f" stroke="#7f7f7f" />
</svg>
]]></data></image>
</element>
<element name="inner">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="800" height="600" viewBox="0 0 800 600">
<path d="M70,40 C100,20 700,20 730,40 L800,0 L0,0 z" fill="#2f2f2f" stroke="#2f2f2f" />
<path d="M70,560 C100,580 700,580 730,560 L800,600 L0,600 z" fill="#9f9f9f" stroke="#9f9f9f" />
<path d="M70,40 C30,150 30,450 70,560 L0,600 L0,0 z" fill="#5f5f5f" stroke="#5f5f5f" />
<path d="M730,40 C770,150 770,450 730,560 L800,600 L800,0 z" fill="#5f5f5f" stroke="#5f5f5f" />
</svg>
]]></data></image>
</element>
<view name="Screen">
<bounds left="0" top="0" right="800" bottom="600" />
<element ref="inner"><bounds x="0" y="0" width="800" height="600" /></element>
<element ref="border"><bounds x="0" y="0" width="800" height="600" /></element>
<screen index="0">
<bounds x="80" y="50" width="640" height="500" />
</screen>
</view>
</mamelayout>