diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/machine/trs80m3.cpp | 4 | ||||
-rw-r--r-- | src/mame/video/trs80m3.cpp | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/mame/machine/trs80m3.cpp b/src/mame/machine/trs80m3.cpp index 01d8ce05ecc..50ed486a217 100644 --- a/src/mame/machine/trs80m3.cpp +++ b/src/mame/machine/trs80m3.cpp @@ -354,9 +354,9 @@ WRITE8_MEMBER( trs80m3_state::port_ec_w ) m_maincpu->set_unscaled_clock(data & 0x40 ? MODEL4_MASTER_CLOCK/5 : MODEL4_MASTER_CLOCK/10); - m_mode = (m_mode & 0xde) | ((data & 4) ? 1 : 0) | ((data & 8) ? 0x20 : 0); + m_mode = (m_mode & 0xde) | (BIT(data, 2) ? 1 : 0) | (BIT(data, 3) ? 0x20 : 0); - m_cassette->change_state(( data & 2 ) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR ); + m_cassette->change_state(( data & 2 ) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR ); m_port_ec = data & 0x7e; } diff --git a/src/mame/video/trs80m3.cpp b/src/mame/video/trs80m3.cpp index 5bf75c72651..37b10716ee3 100644 --- a/src/mame/video/trs80m3.cpp +++ b/src/mame/video/trs80m3.cpp @@ -6,6 +6,13 @@ #include "includes/trs80m3.h" #include "screen.h" +/* Bit assignment for "m_mode" + d7 Page select + d5 enable alternate character set + d3 Invert characters with bit 7 set (1=invert) + d2 80/40 or 64/32 characters per line (1=80) + d0 80/64 or 40/32 characters per line (1=32) */ + WRITE8_MEMBER( trs80m3_state::port_88_w ) { /* This is for the programming of the CRTC registers. @@ -41,15 +48,15 @@ uint32_t trs80m3_state::screen_update_trs80m3(screen_device &screen, bitmap_ind1 uint8_t s_cols = cols; uint8_t mask = BIT(m_mode, 5) ? 0xff : 0xbf; /* Select Japanese or extended chars */ - if (m_mode & 1) + if (BIT(m_mode, 0)) { s_cols >>= 1; skip = 2; } - if ((m_mode & 0x7f) != m_size_store) + if (m_mode != m_size_store) { - m_size_store = m_mode & 5; + m_size_store = m_mode; screen.set_visible_area(0, s_cols*8-1, 0, rows*lines-1); } |