使用 86ComSh

本文将介绍如何以 86ComSh 来开启 FreeDOS 的主机画面重定向(Console Redirection)功能。

一、86ComSh 介绍

在 DuinOS 上启动 FreeDOS 的 Console Redirection 功能可透过 86ComSh 加上 MODE 与 CTTY 实现。86ComSh 是一个使用 86Duino DOS SDK 写成的程式,执行档放在 TOOLS 目录下,原始码则放在 TOOLS\SRC\86ComSh 目录(在原始码目录下 make 指令,可直接编译出 86UsbSh 执行档)。MODE 是 FreeDOS 的外部指令,用来设定装置的状态。CTTY 是 FreeDOS 的内部指令,用来指定作为标准输出/输入的装置。

86ComSh 需要一个参数,用来指定开启的序列埠,例如当参数为 1,表示要 86ComSh 开启 86Duino 的 Serial1(COM1),其它序列埠以此类推。开启序列埠后,即可使用 MODE 及 CTTY 指令设置 FreeDOS 的 Console Redirection 功能(MODE 及 CTTY 用法请自行参阅 FreeDOS 官方文件)。DuinOS 内建一个 86ComSh.BAT 档,已包含所有设定 Console Redirection 的步骤。

FreeDOS 的 Console Redirection 有一些使用限制,例如无法执行图形化的程式(像是大部份 DOS 游戏)。另外,应避免执行到与 Console Redirection 使用相同序列埠的 DOS 程式,以免造成冲突,产生无法预期的执行结果。

二、在开机时启用 Console Redirection

使用者可修改 AUTOEXEC.BAT 在开机时启用 Console Redirection,步骤如下。

把包含 DuinOS 的 SD 卡插入电脑:

sd_reader

开启 SD 卡中的 AUTOEXEC.BAT 档进行编辑:

sd_reader

找到 CALL TOOLS\86UsbSh.BAT 并在其开头加上 REM 关闭 86UsbSh:

sd_reader

找到 CALL TOOLS\86ComSh.BAT,并删掉其开头的 REM,让这行指令开机时被执行:

sd_reader

86ComSh.BAT 后面接的两个参数是用来指定 Console Redirection 使用的序列埠及鲍率。第一个参数是序列埠编号,上例中的 1 代表使用 COM1;第二个参数是鲍率,上例中的 1152 代表使用 115200 bps 鲍率。举例来说,如果希望改以 COM2 及 9600 bps 鲍率进行 Console Redirection,则将上例中的 CALL TOOLS\86ComSh.BAT 1 1152 改成 CALL TOOLS\86ComSh.BAT 2 96 即可。

AUTOEXEC.BAT 修改完毕后,存档并取出 SD 卡。

三、Console Redirection 使用方式

以下假设您以 COM1 及 115200 bps 鲍率进行 Console Redirection,来说明 Console Redirection 的使用方式。

您需准备一条 USB-to-UART (TTL) 转接线来连接电脑与 86Duino:

sd_reader

把 USB-to-UART (TTL) 转接线的 RX 接到 86Duino 的 COM1 的 TX 脚,USB-to-UART (TTL) 转接线的 TX 接到 86Duino 的 COM1 的 RX 脚,GND 接到 86Duino 的任意 GND 脚,即完成连接:

sd_reader

sd_reader

接着把 USB-to-UART (TTL) 转接线的 USB 端插上电脑:

sd_reader

sd_reader

假设您的电脑已安装好此 USB-to-UART (TTL) 转接线的驱动程式,您应可从装置管理员中的 连接埠(COM 与 LPT) 看到此 USB-to-UART (TTL) 转接线的序列埠名称,本例为 COM11:

sd_reader

开启串列埠连线软体接收由 86Duino 传来的 Console Redirection 画面。下面我们以 PuTTY 做为本例的串列埠连线软体。

开启 PuTTY,Connection type 选择 Serial,Serial line 填入序列埠名称(本例为 COM11),Speed 填入与 Console Redirection 一致的鲍率(本例为 115200),填完后按下 Open 按钮:

sd_reader

按下 Open 后您会在 PuTTY 视窗内看到一行 C:\,此即是由 86Duino 传来的 DOS 画面,此时您便可键入任何 DOS 命列进行操作(例如 dir):

sd_reader

您可在 PuTTY 视窗内看到 DOS 命令的执行结果:

sd_reader


黑客天地主页面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.