Z80 dart Ring Indicator and cpc_rs232 commented line
Posted: Sat Jan 30, 2021 2:15 am
Hi.
I've been looking into the cpc_rs232 amstrad/pace interface and the COMMSTAR Rom software. It seems that the software won't run due to the ring indicator bit 4 of RR0 being high when it's expected to be 0. The software works if RR0 bit 4 is set low.
Line 55 in /devices/bus/cpc/cpc_rs232.cpp where channel a ring indicator handler is set is
This is commented out. If this is uncommented then all works. I've tried a few different pieces of mid 80's comms software and all is good.
Reading between the lines of forum posts back in 2014. It seems that the z80 dart emulation has been improved since then and I think now's the time to reinstate that line.
I am new to Mamedev and haven't raised a pull request before. I can do so, but given that someone has already uncommented that line, I thought I'd post here to ask what was best.
Thanks
The lines in the cpc_ser/COMMSTAR1.ROM that read the z80 dart RR0 are:
I've been looking into the cpc_rs232 amstrad/pace interface and the COMMSTAR Rom software. It seems that the software won't run due to the ring indicator bit 4 of RR0 being high when it's expected to be 0. The software works if RR0 bit 4 is set low.
Line 55 in /devices/bus/cpc/cpc_rs232.cpp where channel a ring indicator handler is set is
Code: Select all
// m_rs232->ri_handler().set(m_dart, FUNC(z80dart_device::ria_w));
Reading between the lines of forum posts back in 2014. It seems that the z80 dart emulation has been improved since then and I think now's the time to reinstate that line.
I am new to Mamedev and haven't raised a pull request before. I can do so, but given that someone has already uncommented that line, I thought I'd post here to ask what was best.
Thanks
The lines in the cpc_ser/COMMSTAR1.ROM that read the z80 dart RR0 are:
Code: Select all
LD BC,&FADD ;;F102: ... 01 DD FA
LD A,&18 ;;F105: >. 3E 18
OUT (C),A ;;F107: .y ED 79
LD A,&10 ;;F109: >. 3E 10
OUT (C),A ;;F10B: .y ED 79
LD A,&00 ;;F10D: >. 3E 00
OUT (C),A ;;F10F: .y ED 79
IN E,(C) ;;F111: .X ED 58. --- READ REGISTER 0 Expecting 6C getting 7C
LD A,&56 ;;F113: >V 3E 56
AND E ;;F115: . A3
CP &44 ;;F116: .D FE 44 -- replace with &56 to work with &7C
LD A,E ;;F118: { 7B
SCF ;;F119: 7 37
CCF ;;F11A: ? 3F
RET NZ ;;F11B: . C0