• Re: Linux -> CP/M XMODEM transfer timeout

    From Ivan Ilyichev@ilyichev.ivan@gmail.com to comp.os.cpm on Thu Jan 11 03:52:59 2024
    From Newsgroup: comp.os.cpm

    -#-e-+-C-+-+-|, 21 -+-A-+-A 2022rC>-|. -# 19:15:14 UTC+3, Paolo Amoroso:
    I'm troubleshooting a file transfer issue with sending files via XMODEM from a Linux system to a Z80-MBC2[1] CP/M system. The Z80-MBC2 is a great 8 MHz Z80 homebrew computer kit that can boot a number of operating systems, including CP/M 2.2 and CP/M 3.0.

    On the Z80-MBC2, under CP/M 3.0 I execute the command XMODEM TEST.TXT /R. Then, on the Linux side, from a Minicom session I initiate a file transfer and select the TEST.TXT file. Minicom shows these status messages, nothing happens, and the file is not transferred:

    Xmodem sectors/kbytes sent: 0/ 0k
    Retry 0: Timeout on sector ACK
    Retry 0: Timeout on sector ACK
    Retry 0: Timeout on sector ACK
    ...

    However, I can successfully transfer to the board very short files, e.g. a few tens of bytes. Transferring files from the board to Linux works fine.

    XMODEM TEST.TXT /X0 /R doesn't help, as well as changing Minicom's XMODEM send command to sx -B 128 -vv.

    Although the Z80-MBC2 requires a recent firmware version to make XMODEM transfers to the Z80 board work[2], I have the right version and the issue may be unrelated. I'm also reasonably sure it's not something hardware related, as I got a professionally assembled and tested Z80-MBC2 unit.

    Any insight, advice, or troubleshooting steps to suggest?

    Some more details on my setup. The Z80-MBC2 is connected via serial USB (115200 bps, 8N1, no hardware flow control; only 115200 bps supported) to an i7 ASUS Chromebox 3. I control the Z80 from the Minicom terminal emulator under Crostini, which is the Linux container of chromeOS.


    [1] https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer
    [2] https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer/log/160375-new-ios-for-xmodem-support
    Hi! If the problem still exists. I wrote special version of XModem software for PC (both for Linux and Windows, might be compiled via Lazarus 3.0) than impements an adjustable delay after each byte, sent to remote CP/M computer. It lets CP/M with fast UART chip like Z80DART or Z80SIO, working at 115.2 kbps or faster, receive files without errors. At CP/M side i tested XMODEM.COM and QTERM.COM, both work ok. The repo is here: https://github.com/ivang78/xmodem .
    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Paolo Amoroso@info@paoloamoroso.com to comp.os.cpm on Thu Jan 11 17:19:50 2024
    From Newsgroup: comp.os.cpm

    On Thu, 11 Jan 2024 03:52:59 -0800 (PST)
    Ivan Ilyichev <ilyichev.ivan@gmail.com> wrote:

    Hi! If the problem still exists. I wrote special version of XModem
    software for PC (both for Linux and Windows, might be compiled via
    Lazarus 3.0) than impements an adjustable delay after each byte, sent
    to remote CP/M computer. It lets CP/M with fast UART chip like

    Thanks, I'll definitely check it out.

    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Paolo Amoroso@info@paoloamoroso.com to comp.os.cpm on Fri Jan 12 14:13:25 2024
    From Newsgroup: comp.os.cpm

    On Thu, 11 Jan 2024 03:52:59 -0800 (PST)
    Ivan Ilyichev <ilyichev.ivan@gmail.com> wrote:

    work ok. The repo is here: https://github.com/ivang78/xmodem .

    The supplied Linux binary requires glibc 2.34 while my Linux
    system based on Debian Bullseye provides version 2.31.

    So I guess I need to build XMODEM from source with Free Pascal, right?
    Do I need the full Lazarus or is Free Pascal enough?

    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Ivan Ilyichev@ilyichev.ivan@gmail.com to comp.os.cpm on Tue Jan 16 04:32:44 2024
    From Newsgroup: comp.os.cpm

    Hi Paolo!

    (I repeat mail message, may be useful for all)

    To compile binary for your system:
    At first you must install Freepascal and Lazarus IDE from its site: https://www.lazarus-ide.org/index.php?page=downloads
    Then install Lazserial component
    https://github.com/JurassicPork/TLazSerial/ as described at its
    readme. It is necessary to work with COM port.


    work ok. The repo is here: https://github.com/ivang78/xmodem .
    The supplied Linux binary requires glibc 2.34 while my Linux
    system based on Debian Bullseye provides version 2.31.

    So I guess I need to build XMODEM from source with Free Pascal, right?
    Do I need the full Lazarus or is Free Pascal enough?

    --- Synchronet 3.21d-Linux NewsLink 1.2