voidstar78
Veteran Member
I'm aware of Kermit and ZModem, but I decided to take a deeper look specifically into YModem Batch.
SyncTerm kept crashing when I tried its YModem. And I found a bug in ZOC's YModem when using it at low speeds (which the author has since fixed now in their version 9).
But experimenting with Telix, QModem, Procomm, TeleMate, Conex, and a few other terminals - each one is slightly different in how it handles YModem. For example, TeleMate uploaded via YModem fine, but on download is padded the received file to multiples of 128 byte block sizes. Procomm's YModem was actually kind of broke. And many of these terminals didn't support actively selecting multiple files (one of the benefits of using YModem Batch) -- you had to shell to DOS and write down the filenames. Telix was mostly OK, except on receiving a 0-byte file, it wouldn't actually save it to a file. So little inconsistencies like that (relative to receiving the file from a x64 Wintel system and ZOC). I tried szsr under Cygiwn or MSYS2 but not much success (but didn't try too hard).
The "YModem Spec" document floating around from 1988 was also still unclear on a few things. So, I just recorded a working ymodem transfer, and dug through the interactions. That analysis is attached, and some other test artifacts are archived here:
github.com
I see how today we could make an improved protocol - but lots of existing legacy software is out there that supports ymodem (well at least for MS-DOS).
Piece parts to a work-in-progress project.
SyncTerm kept crashing when I tried its YModem. And I found a bug in ZOC's YModem when using it at low speeds (which the author has since fixed now in their version 9).
But experimenting with Telix, QModem, Procomm, TeleMate, Conex, and a few other terminals - each one is slightly different in how it handles YModem. For example, TeleMate uploaded via YModem fine, but on download is padded the received file to multiples of 128 byte block sizes. Procomm's YModem was actually kind of broke. And many of these terminals didn't support actively selecting multiple files (one of the benefits of using YModem Batch) -- you had to shell to DOS and write down the filenames. Telix was mostly OK, except on receiving a 0-byte file, it wouldn't actually save it to a file. So little inconsistencies like that (relative to receiving the file from a x64 Wintel system and ZOC). I tried szsr under Cygiwn or MSYS2 but not much success (but didn't try too hard).
The "YModem Spec" document floating around from 1988 was also still unclear on a few things. So, I just recorded a working ymodem transfer, and dug through the interactions. That analysis is attached, and some other test artifacts are archived here:
GitHub - voidstar78/ymodem: Notes on a modern implementation of YModem Batch for RS-232 ports
Notes on a modern implementation of YModem Batch for RS-232 ports - voidstar78/ymodem
I see how today we could make an improved protocol - but lots of existing legacy software is out there that supports ymodem (well at least for MS-DOS).
Piece parts to a work-in-progress project.


