DOS 打印机文本输出在“新”计算机上出现错误字符

Ale*_*x J 9 printing legacy ms-dos

我正在尝试挽救最初在 486 DX2 计算机上运行的旧 DOS 6.2 应用程序。我已将硬盘驱动器移至相对较新的赛扬 633,除了我尝试使用任何标准打印命令打印到并行端口 (LPT1) 时,一切似乎都正常。信号被发送到打印机,但错误的字符出现在纸上。具体来说:

0123456789 prints correctly.
áéíóú prints correctly.
abcd prints ????
ABCD prints !"#$ (is 0x2 off)
Run Code Online (Sandbox Code Playgroud)

加载的控制台代码页是 850。有问题的打印机是 HP DeskJet 940C。不幸的是,我没有第二台并行端口打印机来测试。

当操作系统完全相同时,为什么会从一台计算机更改为另一台计算机,以及如何配置 DOS 以正确打印?

先感谢您。

mfi*_*nni 4

在新机器的 BIOS 中尝试不同的并行端口设置。将它们与 486 支持的内容进行比较(它可能不会告诉您;您可能需要在主板上查找文档。)

  • 诡异的。字符映射与打印机端口或电缆上的接触松动不一致。在这种情况下,áé 等也会是错误的。顺便说一句:Bios 设置为“正常”是最好的。其他的并不真正适合奔腾和更高版本的硬件。(它们是为非常慢的 CPU 系统设计的。386 对它们来说已经很快了……) (2认同)