RE:因为 MS 在很多事情上都重视“向后兼容性”,在这种情况下,我怀疑如果人们没有标准的 80 宽窗口,它会以某种方式让人们感到不安,这是一种错误的信念。
不过,向后兼容性非常糟糕。我不认为微软对他们的实施非常彻底,我相信微软是确保新版本不能在旧版本上运行的海报男孩。在 COMMAND.COM 下很多东西都不能正常工作,这大大破坏了它的实用性,更不用说你必须输入 DOSONLY 才能使某些程序正常运行,而且微软一直在删除有用的命令。老实说,我无法想象微软非常重视“向后兼容性”。
此外,我认为行长标准为 80 列的真正原因是因为大多数命令行程序等在假设用户被限制在 80 列提示符下运行,这意味着增加宽度可能会导致格式错误或更糟的是可能会完全破坏程序。
正如 jmucchiello 所提到的,如果您愿意,MODE 可以很好地调整窗口大小。
配置系统设备。
串口:MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]
设备状态:MODE [设备] [/STATUS]
重定向打印:MODE LPTn[:]=COMm[:]
选择代码页:MODE CON[:] CP SELECT=yyy
代码页状态:MODE CON[:] CP [/STATUS]
显示模式:MODE CON[:] [COLS=c] [LINES=n]
打字速度:MODE CON[:] [RATE=r DELAY=d]
如果您在 CONFIG.NT 上启用了 DOSONLY,但是,当您打开 COMMAND.COM 时,它将从 cmd.exe 继承正确的 DOS 样式的行分辨率,但您不能从 COMMAND.COM 内部调用 MODE。如果您希望在 COMMAND.COM 中调整大小,则必须使用 16 位汇编指令,如下所示:
80x50 线分辨率(无帧缓冲,无 SVGA,几乎普遍支持。)
调试
A100
MOV AX,1112
智力 10
智力 20
G
问
132x60 线分辨率(无帧缓冲,需要 SVGA。不适用于 ATI gfx 卡,通常适用于 nVidia gfx 卡,但始终适用于 Intel 集成 gfx 卡。)
调试
A100
MOV AX,4F02
MOV BX,010C
智力 10
智力 20
G
问
如果您在 COMMAND.COM 上输入此内容,它将为您提供指定的分辨率。 (警告:如果您的显示器足够古老,不支持该模式,您可能会毁掉它。旁注:如果您可以运行 Windows,您的显示器应该没问题。免责声明:强调应该,并且您已被警告,所以如果您的显示器出现故障,这不是我的问题。;-) 但是,如果您在未启用 DOSONLY 的情况下使用它,COMMAND.COM 将在应用程序后立即调整回原来的大小(在这种情况下,除非您将其写入文件并执行,DEBUG) 退出。
或者,您可以使用 FreeDOS 的 MODE.COM,它将在 COMMAND.COM 设置为 DOSONLY 下正常运行。您可以从官方网站(freedos.org)的磁盘映像中提取它,也可以通过http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/dos/mode/2005/ 获取它。
Eric Auer 2003-2005 的新 FreeDOS 模式。许可证:GPL。 (2005 年 5 月 12 日版本)
MODE [device] [/STA[TUS]](显示一个或所有设备的状态)
MODE LPTn[:] cols[,[lines][,retry]] (cols or cpi, 6/8 lpi, retry p or n)
MODE LPTn[:] [COLS=...] [LINES=...] [RETRY=...] (重试:p 无限/n 无)
MODE LPTn[:]=[COMn[:]|NUL](将打印机数据重定向到串口或NUL)
MODE COMn[:] 波特、奇偶校验、数据、停止、重试(允许为空值)
MODE COMn[:] [BAUD[HARD]=...] [PARITY=...] [DATA=...] [STOP=...] [RETRY=...]
波特可以缩写为唯一前缀,奇偶校验可以是o/e/n/s/m,
后 2 平均空间/标记,数据可以是 5..8,停止 1..2。重试被忽略!
计划:重试 b/e/r -> 忙/错误/如果忙则准备好,p/n 无限/不重试。
MODE CON[:] [CP|CODEPAGE] [/STA[TUS]](必须加载 FreeDOS DISPLAY)
MODE CON[:] [CP|CODEPAGE] REF[RESH](需要显示)
MODE CON[:] [CP|CODEPAGE] SEL[ECT]=number(需要显示)
MODE CON[:] [CP|CODEPAGE] PREP[ARE]=((codepage) 文件名) (需要显示)
使用 PREP=((,cp2,cp3,,cp5) ...) 在其他缓冲区中准备代码页。
MODE [40|80|BW40|BW80|CO40|CO80|MONO][,rows](行可以是 25、28、43 或 50)
如果您只想更改字体,请使用 8、14 或 16 作为“行”值。
MODE [CO40|CO80|...],[R|L][,T](CGA左/右移位,T为交互模式)
模式 CON[:] [NUMLOCK|CAPSLOCK|SCROLLLOCK|SWITCHAR]=值
值可以是:+ 或 - 用于锁或用于 switchar 的字符。
MODE CON[:] [COLS=...] [LINES=...](可能的值取决于您的硬件)
MODE CON[:] [RATE=...] [DELAY=...](默认速率 20,默认延迟 1)
速率可以是 1..32 表示 2..30 字符/秒,延迟可以是 1..4 表示 1/4..4/4 秒。
出于与我提供的 ASM 代码相同的原因,除非您在 COMMAND.COM 中执行它并将 DOSONLY 添加到您的 CONFIG.NT 文件中,否则一旦 MODE.COM 退出,窗口将立即恢复到之前的大小。
最后,正如其他人所说,也可以通过右键单击命令提示符的标题栏并修改属性 -> 布局来修改这些设置。同样,您可以为 CMD.EXE 和批处理文件的任何快捷方式设置分辨率(右键单击快捷方式 -> 属性 -> 布局)。这仅适用于 CMD.EXE,但不适用于 COMMAND.COM。