summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author mahlemiut <bsr@xnet.co.nz>2015-11-04 13:21:07 +1300
committer mahlemiut <bsr@xnet.co.nz>2015-11-04 13:22:41 +1300
commit91debc7cc9177d440172b6f25e5bf0f5bb7cc07b (patch)
tree9762db6e09b5c396fdffcc9a545e8dc53f9bf569
parent54a6d912498078f04e2b75aa89ad6f9160bc707f (diff)
amstrad: CRTC status register is only readable on type 1 (UM6845R). Now returns 0xff on CPC (correct for MC6845) and the selected register for the Plus.
-rw-r--r--src/mame/machine/amstrad.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mame/machine/amstrad.c b/src/mame/machine/amstrad.c
index a59b7f8de56..ce5bad2335f 100644
--- a/src/mame/machine/amstrad.c
+++ b/src/mame/machine/amstrad.c
@@ -1855,7 +1855,12 @@ READ8_MEMBER(amstrad_state::amstrad_cpc_io_r)
switch(r1r0)
{
case 0x02:
- data = m_crtc->status_r( space, 0 );
+ // CRTC Type 1 (UM6845R) only!!
+ //data = m_crtc->status_r( space, 0 );
+ if ( m_system_type == SYSTEM_PLUS || m_system_type == SYSTEM_GX4000 ) // All Plus systems are Type 3 (AMS40489)
+ data = m_crtc->register_r( space, 0 );
+ else
+ data = 0xff; // Type 0 (HD6845S/UM6845) and Type 2 (MC6845) return 0xff
#if 0
/* CRTC Type 1 : Read Status Register
CRTC Type 3 or 4 : Read from selected internal 6845 register */
@@ -1874,7 +1879,7 @@ READ8_MEMBER(amstrad_state::amstrad_cpc_io_r)
break;
case 0x03:
/* All CRTC type : Read from selected internal 6845 register Read only */
- data = m_crtc->register_r( space, (offs_t)0 );
+ data = m_crtc->register_r( space, 0 );
break;
}
}