I have rewritten the Rainbow driver to use Z80SIO instead of Z80DART as well as hardware flow control.
Now at least, the mouse resets (ser_mouse.cpp -> routine: input_rts).
https://www.dropbox.com/s/6ya3qj96f0k6rax/Z80SIO_with_MS_MOUSE_-_Windows_1.x.jpg?dl=0Then, unexpected bytes appear. Instead of the expected identifier ($4D = "M") i observe $3b (binary 0111011).
Parameters are 7,N,1, 1200 baud (set by Windows at startup for both directions).
Is my code correct?
https://www.dropbox.com/s/so2vyytgkcz8azl/2017%2007%2016%20-%20rainbow.cpp?dl=0Routines and statements added:
READ8_MEMBER(rainbow_state::comm_control_r)
WRITE8_MEMBER(rainbow_state::comm_control_w)
WRITE_LINE_MEMBER( rainbow_state::rs232_dcd_w )
WRITE_LINE_MEMBER( rainbow_state::rs232_dsr_w )
WRITE_LINE_MEMBER( rainbow_state::rs232_cts_w )
WRITE_LINE_MEMBER( rainbow_state::rs232_ri_w )
MCFG_RS232_DCD_HANDLER(WRITELINE(rainbow_state, rs232_dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(rainbow_state, rs232_dsr_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(rainbow_state, rs232_cts_w))
MCFG_RS232_RI_HANDLER(WRITELINE(rainbow_state, rs232_ri_w))
I can also provide a ready-made CHD with Windows 1.x if somebody wants to test drive.
Thanks for having a look.