通过 telnet 运行 MS-DOS 应用程序

通过 telnet 运行 MS-DOS 应用程序

是否可以通过 telnet 在 Windows 7 系统上运行 MS-DOS 应用程序?我们仍在使用的某些应用程序从未移植到较新的系统。现在公司希望将工作站迁移到 Linux,并让旧应用程序在 Windows Server 上运行。

答案1

是的。只要程序首先在命令提示符下运行(不要做像 TSR 这样的疯狂事情或直接点击串行端口)。

另外,仅供参考 - 如果它们真的很简单,您可能只需在 Linux 中运行它们:DOSemu http://www.n0nb.us/ham-linux/linux/dosemuold.html http://www.dosemu.org/

答案2

尝试这个 http://www.bttr-software.de/products/jhoffmann/#rmenu ... DOS 的 telnet 服务器。当然,它不能将 (MS-)DOS 变成多用户系统,因此任何时候都只能接受一个连接,但它可用于通过 telnet 远程控制运行 DOS 的计算机....

答案3

这里有一个在某些情况下可以奏效的解决方案,在 Google 搜索中很少提及,那就是使用 MS-DOS 自己的CTTY命令。我发现 MS-DOS 6.22 上有这个用途。CTTY自 MS-DOS 2.x 以来一直可用,因此下面的设置可能也可以用于 MS-DOS 5 或更早版本。此设置似乎不使用任何额外的常规内存。

此命令通过串行电缆将终端输入(键盘)和输出(屏幕)转发到另一台计算机。零调制解调器电缆(7 针连接)可用于此目的。对于访问 MS-DOS 终端服务器的 Windows 客户端,油灰效果很好。由于 OP 现在可能正在运行 Linux 工作站,screen因此这可能是最可靠的终端客户端,尽管还有其他几个终端客户端可能可以完成相同的工作(我确实遇到了一些问题picocom)。我在 Windows 和 Linux 上使用串行转 USB 适配器进行连接时没有遇到任何问题。

默认情况下,MS-DOS 将 COM 端口设置为 2400bps。我们可以将此速度提高到 19200bps,并使用当今常见的串行设置,方法是执行MODE COMx: 19,N,8,1,(替换x为实际使用的 COM 端口号;是的,第 4 个逗号后没有任何内容)。

使用串行电缆连接到 Linux 计算机后,即可运行screen /dev/ttyUSB1 19200,cs8(相应地替换要使用的实际串行端口路径)。使用 Windows 上的 PuTTY,选择串行作为连接类型,选择连接到串行电缆的 COM 端口并设置速度。我还设置了窗口 -> 翻译CP437当然,如果目标 DOS 的语言环境与美国不同,则这可以是不同的代码页。

在现代计算机准备就绪并连接到串行终端后,您应该只会看到一个空白屏幕。现在,在 MS-DOS 上键入CTTY COMx,您现在应该会看到 MS-DOS 提示符显示在screen/PuTTY 上。

现在,这个设置是否适用于原帖作者,这取决于目标实用程序或应用程序的编程方式。程序在 MS-DOS 上显示和接收文本的方法不止一种,而根据我的经验,我发现结果各不相同。

当启动某些实用程序(例如 MS-DOS 的大部分内置实用程序)时,所有内容都会显示在终端屏幕上,并且现代计算机上键入的所有基本键都会被接受为输入。另一方面,如果启动直接访问显卡的应用程序(例如),则EDIT.COM该应用程序会显示在 MS-DOS 自己的显示器上,并且可能需要 MS-DOS 自己的键盘。

我见过其他实用程序与 的兼容性很差CTTY,一半文本通过终端显示,其余文本显示在 DOS 监视器上。我见过其他几个实用程序在 DOS 监视器上显示文本,但只能从终端接受输入。鉴于这些经验,建议首先尝试目标实用程序/应用程序/TSR,以确定此设置是否适用于您的特定公司环境。

如果您发现贵公司的 MS-DOS 用途可以与此设置配合使用,那么工作人员应该能够通过 SSH 或 RDP 远程访问终端计算机以访问 MS-DOS,这是一个很好的奖励。您还可以使用现代计算机获得回滚和剪贴板。只要ANSI.SYS安装了 或等效程序,ASCII 转义序列(提示颜色等)也可以在终端客户端上正确显示。此设置的 DOS 端可以在启动时使用 自动初始化AUTOEXEC.BAT

有关CTTY和的更多信息MODE,请在 MS-DOS 提示符下键入help ctty或。help mode

笔记:我也尝试过在 Windows 98SE 的 MS-DOS 7 上使用CTTYMODE,但没有成功。最后在本文,我决定不再尝试。

笔记2:这个答案相当长,因为我确实没有找到任何网页描述使用此方法的任何经验,并且这个答案可能对任何其他偶然发现这个问题的读者有用。

相关内容