ivang78 / xmodem

Implementation of XModem (Send/Receive) and YModem (Send only). Useful to exchange files from modern PC to CP/M computer.
2 stars 0 forks source link

Workflow for running xmodem #1

Open pamoroso opened 4 months ago

pamoroso commented 4 months ago

I'm trying to use the xmodem program to send files from my Chromebox to the Z80-MBC2, a Z80 homebrew computer that runs CP/M. However, I'm not sure I'm doing things right.

I control the Z80-MBC2 under Crostini Linux (the Linux container of ChromeOS) via the USB serial line /dev/ttyUSB0. On Linux I start Minicom to connect to CP/M on the Z80-MBC2. Then I go through these steps:

  1. run xmodem FILENAME /r /x1 on CP/M
  2. press Ctrl-A J to suspend Minicom and access the Linux shell
  3. start xmodem from Linux
  4. select /dev/ttyUSB0 and the file to transfer on xmodem
  5. click Send on xmodem

However, after a dozen seconds xmodem displays this error:

Sync TIMEOUT
Send error.

xmodem-error

If I return to Minicom and the CP/M session by executing fg from Linux, XMODEM on CP/M is still waiting for data.

What's the intended workflow for using xmodem? Am I going through the correct steps? xmodem can't apparently be run from the command line, for example like the sx and rx programs Minicom can call directly for transferring files via XModem.

ivang78 commented 4 months ago

Hi Paolo!

I'm at vacation and can not check your issue now, sorry. I do not try to use xmodem with console port, my Z80 computer has separate Z80SIO port for communication. After vacation i'll check and answer you!

пт, 3 мая 2024 г., 15:36 Paolo Amoroso @.***>:

I'm trying to use the xmodem program to send files from my Chromebox to the Z80-MBC2, a Z80 homebrew computer that runs CP/M. However, I'm not sure I'm doing things right.

I control the Z80-MBC2 under Crostini Linux (the Linux container of ChromeOS) via the USB serial line /dev/ttyUSB0. On Linux I start Minicom to connect to CP/M on the Z80-MBC2. Then I go through these steps:

  1. run xmodem FILENAME /r /x1 on CP/M
  2. press Ctrl-A J to suspend Minicom and access the Linux shell
  3. start xmodem from Linux
  4. select /dev/ttyUSB0 and the file to transfer on xmodem
  5. click Send on xmodem

However, after a dozen seconds xmodem displays this error:

Sync TIMEOUT Send error.

xmodem-error.png (view on web) https://github.com/ivang78/xmodem/assets/10342479/70bcc04d-c8e1-43c7-9022-320fceadca37

If I return to Minicom and the CP/M session by executing fg from Linux, XMODEM on CP/M is still waiting for data.

What's the intended workflow for using xmodem? Am I going through the correct steps? xmodem can't apparently be run from the command line, for example like the sx and rx programs Minicom can call directly for transferring files via XModem.

— Reply to this email directly, view it on GitHub https://github.com/ivang78/xmodem/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANQRH3HDXPMM7ZBMPZZEMGLZAOADDAVCNFSM6AAAAABHFOF6LKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGI3TONJZGE3DMMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

pamoroso commented 4 months ago

No worries, enjoy your vacation. Thanks.

ivang78 commented 3 months ago

Hi Paolo, Sorry for a long lag for reply. As i see, Z80MBC2's CP/M has no RDR device. That means the /X1 option of XMODEM.COM was unuseful. Try to use CON device instead with /X0 option. Than, after you run XMODEM.COM FILE /X0 /R on your CP/M computer and get message "Receiving via CON with CRC" from it, you have 30 seconds to hold minicom and start sending file with XModem on your PC. According to XModem protocol it trys to receive 'C' or NAK byte from CP/M for 30 seconds, if not received it shows 'Sync ERROR' and stops. If everything OK XModem on PC shows 'Sync OK' at diagnostics window. After sending each packet XModem shows 'waitACK OK'. I guess it can helps.

пт, 3 мая 2024 г. в 18:57, Paolo Amoroso @.***>:

No worries, enjoy your vacation. Thanks.

— Reply to this email directly, view it on GitHub https://github.com/ivang78/xmodem/issues/1#issuecomment-2093293866, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANQRH3BV7TZ4EOCERWRTCFDZAOXX5AVCNFSM6AAAAABHFOF6LKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJTGI4TGOBWGY . You are receiving this because you commented.Message ID: @.***>

pamoroso commented 3 months ago

Very usefl information, thanks. But this time it's me who's going to travel, so I won't have a chance to try this until next week.

Thanks again, much appreciated.

pamoroso commented 3 months ago

I finally had a chance of trying your workflow but without success. After initiating the file transfer from xmodem on Linux nothing happens for a few tens of seconds, then this error appears:

SyncTIMEOUT Send error

xmodem-timeout

ivang78 commented 3 months ago

Hi Paolo,

I am sorry, i have no ideas what to check else. My CP/M computer has internal terminal hardware (voltage level converters and microcontreller), connected to first Z80DART UART and second free UART with external connector to link with PC. For this setup everything works ok. To reproduce your setup i need to desolder terminal hardware from UART, it will be not be a simple task :(

вт, 28 мая 2024 г., 18:05 Paolo Amoroso @.***>:

I finally had a chance of trying your workflow but without success. After initiating the file transfer from xmodem on Linux nothing happens for a few tens of seconds, then this error appears:

SyncTIMEOUT Send error

xmodem-timeout.png (view on web) https://github.com/ivang78/xmodem/assets/10342479/f174633f-603e-4161-ac0a-723ad1dd57bf

— Reply to this email directly, view it on GitHub https://github.com/ivang78/xmodem/issues/1#issuecomment-2135461933, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANQRH3FCYBGB6NTSL2IO2PDZESMLRAVCNFSM6AAAAABHFOF6LKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZVGQ3DCOJTGM . You are receiving this because you commented.Message ID: @.***>

pamoroso commented 3 months ago

No problem, no need to desolder any hardware. I have a workaround for transferring files from Linux to CP/M without XMODEM.

Thanks again for your help, I really appreciate it.