summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-02-11 18:05:26 -0500
committer AJR <ajrhacker@users.noreply.github.com>2019-02-11 18:05:26 -0500
commit645fde9e6c0c356b55a967f3a5cda03514f73242 (patch)
tree13c4e2188baf3b52e5deecf071a030d19fab9eb0
parente856dea0fb5c2d897326c5962507fcfd9855244c (diff)
lnw80: Fix configuration (nw)
-rw-r--r--src/mame/drivers/trs80.cpp21
-rw-r--r--src/mame/includes/trs80.h3
2 files changed, 15 insertions, 9 deletions
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 3a98bb6827b..b9d3997be2d 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -158,6 +158,7 @@ lnw80: works
#include "emu.h"
#include "includes/trs80.h"
+#include "machine/com8116.h"
#include "sound/ay8910.h"
#include "screen.h"
#include "speaker.h"
@@ -204,7 +205,7 @@ void trs80_state::m1_io(address_map &map)
map.global_mask(0xff);
map.unmap_value_high();
map(0xe8, 0xe8).rw(FUNC(trs80_state::port_e8_r), FUNC(trs80_state::port_e8_w));
- map(0xe9, 0xe9).portr("E9").w(m_brg, FUNC(com8116_device::stt_str_w));
+ map(0xe9, 0xe9).portr("E9").w("brg", FUNC(com8116_device::stt_str_w));
map(0xea, 0xea).rw(FUNC(trs80_state::port_ea_r), FUNC(trs80_state::port_ea_w));
map(0xeb, 0xeb).rw(m_uart, FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit));
map(0xff, 0xff).rw(FUNC(trs80_state::port_ff_r), FUNC(trs80_state::port_ff_w));
@@ -255,9 +256,12 @@ void trs80_state::lnw80_io(address_map &map)
{
map.global_mask(0xff);
map.unmap_value_high();
- m1_io(map);
- map(0xe9, 0xe9).nopw();
+ map(0xe8, 0xe8).rw(FUNC(trs80_state::port_e8_r), FUNC(trs80_state::port_e8_w));
+ map(0xe9, 0xe9).portr("E9");
+ map(0xea, 0xea).rw(FUNC(trs80_state::port_ea_r), FUNC(trs80_state::port_ea_w));
+ map(0xeb, 0xeb).rw(m_uart, FUNC(ay31015_device::receive), FUNC(ay31015_device::transmit));
map(0xfe, 0xfe).rw(FUNC(trs80_state::lnw80_fe_r), FUNC(trs80_state::lnw80_fe_w));
+ map(0xff, 0xff).rw(FUNC(trs80_state::port_ff_r), FUNC(trs80_state::port_ff_w));
}
void trs80_state::radionic_mem(address_map &map)
@@ -555,9 +559,9 @@ MACHINE_CONFIG_START(trs80_state::model1) // model I, level II
OUTPUT_LATCH(config, m_cent_data_out);
m_centronics->set_output_latch(*m_cent_data_out);
- COM8116(config, m_brg, 5.0688_MHz_XTAL); // BR1941L
- m_brg->fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp));
- m_brg->ft_handler().set(m_uart, FUNC(ay31015_device::write_tcp));
+ com8116_device &brg(COM8116(config, "brg", 5.0688_MHz_XTAL)); // BR1941L
+ brg.fr_handler().set(m_uart, FUNC(ay31015_device::write_rcp));
+ brg.ft_handler().set(m_uart, FUNC(ay31015_device::write_tcp));
AY31015(config, m_uart);
m_uart->read_si_callback().set("rs232", FUNC(rs232_port_device::rxd_r));
@@ -615,6 +619,11 @@ MACHINE_CONFIG_START(trs80_state::lnw80)
MCFG_SCREEN_RAW_PARAMS(3.579545_MHz_XTAL * 3, 682, 0, 480, 264, 0, 192) // 10.738MHz generated by tank circuit (top left of page 2 of schematics)
// LNW80 Theory of Operations gives H and V periods as 15.750kHz and 59.66Hz, probably due to rounding the calculated ~15.7468kHz to 4 figures
MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_lnw80)
+
+ config.device_remove("brg");
+ CLOCK(config, m_uart_clock, 19200 * 16);
+ m_uart_clock->signal_handler().set(m_uart, FUNC(ay31015_device::write_rcp));
+ m_uart_clock->signal_handler().append(m_uart, FUNC(ay31015_device::write_tcp));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(trs80_state::radionic)
diff --git a/src/mame/includes/trs80.h b/src/mame/includes/trs80.h
index 58ce67f4c52..4bfc3d9f98e 100644
--- a/src/mame/includes/trs80.h
+++ b/src/mame/includes/trs80.h
@@ -15,7 +15,6 @@
#include "imagedev/snapquik.h"
#include "machine/ay31015.h"
#include "machine/clock.h"
-#include "machine/com8116.h"
#include "machine/i8255.h"
#include "bus/rs232/rs232.h"
#include "machine/buffer.h"
@@ -44,7 +43,6 @@ public:
, m_uart(*this, "uart")
, m_uart_clock(*this, "uart_clock")
, m_ppi(*this, "ppi") // Radionic only
- , m_brg(*this, "brg")
, m_fdc(*this, "fdc")
, m_floppy0(*this, "fdc:0")
, m_floppy1(*this, "fdc:1")
@@ -139,7 +137,6 @@ private:
optional_device<ay31015_device> m_uart;
optional_device<clock_device> m_uart_clock;
optional_device<i8255_device> m_ppi;
- optional_device<com8116_device> m_brg;
optional_device<fd1793_device> m_fdc;
optional_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;