From 11c59f7ea0a8aa2828d62e534370b3167f1ec916 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Tue, 10 Nov 2020 23:28:46 -0800
Subject: [PATCH] Add original XMODEM send/receive protocol options.

Previously, SyncTERM only supported the more modern XMODEM-1K uploads and XMODEM-CRC downloads. This commit adds support for XMODEM-128 uploads and XMODEM-Checksum downloads.
---
 src/syncterm/term.c | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 4c2064e45b..01cc931066 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -818,7 +818,8 @@ void begin_upload(struct bbslist *bbs, BOOL autozm, int lastch)
 	char	*opts[6]={
 			 "ZMODEM"
 			,"YMODEM"
-			,"XMODEM"
+			,"XMODEM-1K"
+			,"XMODEM-128"
 			,"ASCII"
 			,"Raw"
 			,""
@@ -888,9 +889,12 @@ void begin_upload(struct bbslist *bbs, BOOL autozm, int lastch)
 				xmodem_upload(bbs, fp, path, XMODEM|SEND, lastch);
 				break;
 			case 3:
-				ascii_upload(fp);
+				xmodem_upload(bbs, fp, path, XMODEM|SEND|XMODEM_128B, lastch);
 				break;
 			case 4:
+				ascii_upload(fp);
+				break;
+			case 5:
 				raw_upload(fp);
 				break;
 			default:
@@ -912,7 +916,8 @@ void begin_download(struct bbslist *bbs)
 			 "ZMODEM"
 			,"YMODEM-g"
 			,"YMODEM"
-			,"XMODEM"
+			,"XMODEM-CRC"
+			,"XMODEM-CHKSUM"
 			,""
 		};
 	struct	text_info txtinfo;
@@ -924,10 +929,10 @@ void begin_download(struct bbslist *bbs)
 
     gettextinfo(&txtinfo);
     savscrn = savescreen();
-		setfont(0, FALSE, 1);
-		setfont(0, FALSE, 2);
-		setfont(0, FALSE, 3);
-		setfont(0, FALSE, 4);
+    setfont(0, FALSE, 1);
+    setfont(0, FALSE, 2);
+    setfont(0, FALSE, 3);
+    setfont(0, FALSE, 4);
 
 	init_uifc(FALSE, FALSE);
 
@@ -951,6 +956,10 @@ void begin_download(struct bbslist *bbs)
 			if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename",path,sizeof(path),0)!=-1)
 				xmodem_download(bbs, XMODEM|CRC|RECV,path);
 			break;
+		case 4:
+			if(uifc.input(WIN_MID|WIN_SAV,0,0,"Filename",path,sizeof(path),0)!=-1)
+				xmodem_download(bbs, XMODEM|RECV,path);
+			break;
 	}
 	hold_update=old_hold;
 	uifcbail();
-- 
GitLab