(nw) trs80m3 : fixed a small bug

This commit is contained in:
Robbbert 2018-07-21 22:36:49 +10:00
parent 06ee590873
commit 10f9ec6fcc
2 changed files with 12 additions and 5 deletions

View File

@ -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_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; m_port_ec = data & 0x7e;
} }

View File

@ -6,6 +6,13 @@
#include "includes/trs80m3.h" #include "includes/trs80m3.h"
#include "screen.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 ) WRITE8_MEMBER( trs80m3_state::port_88_w )
{ {
/* This is for the programming of the CRTC registers. /* 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 s_cols = cols;
uint8_t mask = BIT(m_mode, 5) ? 0xff : 0xbf; /* Select Japanese or extended chars */ 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; s_cols >>= 1;
skip = 2; 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); screen.set_visible_area(0, s_cols*8-1, 0, rows*lines-1);
} }