lnw80: Fix configuration (nw)

This commit is contained in:
AJR 2019-02-11 18:05:26 -05:00
parent e856dea0fb
commit 645fde9e6c
2 changed files with 15 additions and 9 deletions

View File

@ -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)

View File

@ -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;