Hardware-handshaking not working on either EaZy80 or Ztoid

141 views
Skip to first unread message

Paul dB

unread,
May 10, 2026, 7:26:38 PM (3 days ago) May 10
to retro-comp
I'm unable to get hardware handshaking to work on either EaZy80 Rev2 or Ztoid Rev0 boards. The /RTS output signal always stays LOW. Note I did need to accommodate for a schematic error.*

I used a K80W Rev21 board for comparison and hardware handshaking works fine on that one. And yes, I did have hardware-handshaking turned on in my terminal program (picocom) for all tests of /RTS & /CTS.

I'm using the default 'RCZ80_ez512_std.asm' config file for both EaZy80 and Ztoid boards. I'm wondering if it's possible that /RTS is being turned-off in UART.ASM for EaZy80 (and Ztoid)?

* The /RTS signals are crossed on the EaZy80 Rev2 and Ztoid Rev0
schematics, compared with K80W where the /RTS connections are correct.
(REF: Z84C90 (KIO) datasheet)

KIO CHIP OUTPUT               K80W SER.CONN.          EASY80R2 SER.CONN.
-----------------------------                ----------------------------          -----------------------------------
PIN29 (/RTSA) (PC4)           P3 PIN1                          P2 PIN1 (labeled /RTSB)
PIN14 (/RTSB) (PC3)           P2 PIN1                          P3 PIN1 (labeled /RTSA)

Here's a composite image with the results of enabling/disabling hardware-handshaking on the K80W:
K80W_RTS_WORKING.jpg

Any help greatly appreciated.
Thanks, Paul

T Gerbic

unread,
May 10, 2026, 9:14:11 PM (3 days ago) May 10
to retro-comp
One thing you might try is to use DTR/DSR as the handshaking signals. The USB chips usually have four signals on the chips but which are used and what they call them is not always consistent. 

Jaap van Ganswijk

unread,
May 11, 2026, 1:04:37 AM (3 days ago) May 11
to T Gerbic, retro-comp
We have found hardware handshaking to almost always be very messy and hard to debug and you need extra wires. We prefer the Xon/Xoff software handshaking, but it must be properly understood. These bytes can't  go through the normal buffering process but must get priority. Once an Xoff is received the device must stop sending it's normal output until it receives an Xon byte. Please note that some Uart's have an internal sending pipeline of say 16 bytes, which may complicate the process.

--
You received this message because you are subscribed to the Google Groups "retro-comp" group.
To unsubscribe from this group and stop receiving emails from it, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/482aa90b-1782-45c9-8a9e-b63eea9483dbn%40googlegroups.com.

Doug Jackson

unread,
May 11, 2026, 5:31:29 AM (3 days ago) May 11
to Jaap van Ganswijk, T Gerbic, retro-comp
I second the buffer issues with hardware handshaking, especially with USB dongles....

Paul dB

unread,
May 11, 2026, 11:34:16 AM (3 days ago) May 11
to retro-comp
The mystery is why does the _same_ KIO serial circuit (apart from the swapped /RTS wires) work on the K80W SBC and not on the EaZy80 or Ztoid SBCs. The composite image I attached to the OP shows RTS/CTS working on the K80W.

I've tested 2 EaZy80 boards and 2 Ztoid boards (Ztoid and EaZy80 have the same serial circuit and swapped signals), so it's obviously not a component or soldering mistake. That's why I'm trying to understand what in RomWBW could explain the why RTS/CTS is not working on the EaZy80 and Ztoid boards.

Here are the two serial circuits:
K80W_and_EAZY80_serial_combined.jpg

Wayne Warthen

unread,
May 11, 2026, 12:32:32 PM (2 days ago) May 11
to retro-comp
I am crazy busy with personal stuff right now, but will try to look into this in a couple days.

Thanks, Wayne

Paul de Bak

unread,
May 11, 2026, 12:35:39 PM (2 days ago) May 11
to Wayne Warthen, retro-comp
No problem Wayne. Please take your time.

Paul

You received this message because you are subscribed to a topic in the Google Groups "retro-comp" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/retro-comp/kyO5vGgp8po/unsubscribe.
To unsubscribe from this group and all its topics, send an email to retro-comp+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/retro-comp/5af23634-6e85-4797-adab-1f8a1cdbea6fn%40googlegroups.com.


--
Sent by way of Linux Mint

Paul dB

unread,
May 12, 2026, 8:09:29 AM (yesterday) May 12
to retro-comp
I _may_ have found the source of the problem with RTS/CTS not working on EaZy80 and Ztoid.

Bill's 'easymon512k-r03_released.asm' is missing the command to set bit D7 to 1 in KIO Command Register A. That would result in the 'SIO/PIA mux' not being set to use the extra modem control signals, i.e. /RTSA and /RTSB.

From 'Z84C90 KIO Serial/Parallel Counter/Timer Production Specification':

page 7:

    Command Logic Unit
        <snip>
    A third function of the Command Register allows the user to obtain use of the additional
    control signals of the SIO logic instead of the PIA port by programming bit D7 of the
    Command Register with a 1.


So from 'Table 2. KIO Registers' on page 14:

    Register 14: KIOACmd  equ 0eh    ;KIO command reg A
    Register 15: KIOBCmd  equ 0fh    ;KIO command reg B


page 27:

KIO Command Register

Command Register A is used to program software resets and to configure the internal
interrupt daisy chain priority (see Figure 31). This register should be programmed before
all others. The reset control bits are momentary; writing a 1 pulses an internal reset signal
to the appropriate device.

From 'Figure 31. KIO Command Register A' on the same page:

    Bit D7  SIO/PIA mux: 0=PIA, 1=SIO

Now to figure out how to read register KIOACmd and verify that bit D7 is actually 0 ...

Bill Shen

unread,
1:49 AM (22 hours ago) 1:49 AM
to retro-comp
Paul,
Sorry about not being responsive.  I've had medical issue since December last year and my recovery has been rather slow.  On top of that, the shutting down of retrobrewcomputers.org where most of my design information were stored has been very discouraging.  I'm trying to get back to retrocomputing, but one baby step at a time.  I can confirm Eazy80 can't receive files using XMODEM under RomWBW v3.6.  I'll try to solve the problem, but probably slowly. 

It is good to have a problem to focus my mind.
Bill

Paul dB

unread,
9:47 AM (14 hours ago) 9:47 AM
to retro-comp
Bill, sorry to hear about your medical issue. Here's hoping for a fast and complete recovery!
I'm glad I'm able to help in giving you a problem to focus on ;-)

Regarding the shutting down of retrobrewcomputers.org, in case you don't have a backup of your project pages (text & images), I have a number of these that I saved earlier on my harddisk that I can supply.

I just checked the Wayback Machine (https://web.archive.org/) for captures of your retrobrewcomputers.org pages. There are several, and the most recent capture (I believe) is this URL from 2025-08-02:

The captures of the links on the page are a bit of hit or miss, but the page itself can perhaps provide an "outline" of your projects to help you build up your github page.

Paul

Paul dB

unread,
2:04 PM (10 hours ago) 2:04 PM
to retro-comp
This looks like the cause of the problem:

Excerpt from kio.asm (starting line 57)
--------------------------------------------------------------

;HCS initialize KIO if NOT EZ512
;HCS      do not write to KIO command register, if EZ512
;HCS      because it is already done in monitor and will upset the bank register
#IF (SDMODE != SDMODE_EZ512)        ; Z80 PIO ON EAZY80-512
       ; INITIALIZE KIO
       LD A,%11111001                 ; RESET ALL DEVICES, SET DAISYCHAIN
;PdB           ^                                  D7 is NOT set for EZ512    (SIO/PIA mux: 0=PIA, 1=SIO)
;PdB                                               it not set in the monitor either
       OUT (KIO_KIOCMD),A        ; DO IT
#ENDIF


(Hope the spacing doesn't get messed up!)

Paul

Wayne Warthen

unread,
3:48 PM (8 hours ago) 3:48 PM
to retro-comp
Paul,

I have not had time to look at this closely, but I agree this could be the problem.

Thanks, Wayne

Paul dB

unread,
7:31 PM (4 hours ago) 7:31 PM
to retro-comp
I found something that seems odd (in the RomWBW source code); the code in both 'ez512_mon.bin' and 'zrc512_mon.bin' is identical (both contain the 'ZRC512 Monitor v0.3 10/15/23' code). As far as I understand, that monitor is configured for use with a CPLD, not a KIO, or ??

Paul
Reply all
Reply to author
Forward
0 new messages