DOSBox:debug.exe 读取文件 - 不正确地处理命令

DOSBox: debug.exe reads file - processes commands incorrectly

我正在尝试在 64 位系统上通过 debug.exe 使用 DOSBox。如果我手动输入命令,它工作得很好。当我使用以下文件重定向输入时:

debug < [file]

没用。除了第一行,每一行都显示类似这样的错误:

DOSBox 最终会挂起并崩溃。有什么办法可以解决这个问题吗?

我试图作为命令处理的输入文件是:

a 100
jmp 145
db 'Hello, World!', 0D, 0A, 'Press any key to continue . . .$'

a 145
mov ah, 09
mov dx, 102
int 21
mov ah, 08
int 21
int 20

rcx
100
n hello.com
w
q

我可以重现您在这种情况下看到的行为:

  • DOSBox 0.74 在 Windows 和 Linux
  • DEBUG.EXE 从 Windows XP 复制到 DOSBox
  • 来自不同版本 MS-DOS 的
  • DEBUG.EXE 会导致包括意外挂起在内的问题。请参阅此 了解另一个相关问题。

我从 Softpedia 的 FreeDOS that works as expected. I have made DEBUG.COM available for download from my website. Alternatively you can download the ZIP File 中找到了 DEBUG.COM 的一个版本并提取了 DEBUG.COM

当我 运行 DEBUG.COM 我得到这个:

S:\>debug.com <hello.asm
-a 100
0BFB:0100 jmp 145
0BFB:0102 db 'Hello, World!', 0D, 0A, 'Press any key to continue . . .$'
0BFB:0131
-a 145
0BFB:0145 mov ah, 09
0BFB:0147 mov dx, 102
0BFB:014A int 21
0BFB:014C mov ah, 08
0BFB:014E int 21
0BFB:0150 int 20
0BFB:0152
-rcx
CX 0000
:100
-n hello.com
-w
Writing 00100 bytes
-q

S:\>hello
Hello, World!

使用 DEBUG.EXE 脚本重定向在 DosBox 0.74 中遇到同样的问题。发现当重定向到 DEBUG.EXE 时,可以通过将脚本文件中的行尾字符从 [CR][LF] 更改为 [CR] 来修复它。

将您的文件粘贴到 Scite 编辑器并查看行尾字符显示:

100{CR][LF] jmp 145[CR][LF]....等等

我使用 Scite 中的一个选项将 EOL 字符单独更改为 [CR],得到

100{CR] jmp 145[CR]....等等

保存了文件,并且能够毫无问题地将其重定向到 DEBUG.EXE。 不确定为什么 [CR][LF] 会导致 DEBUG.EXE 出现问题,但希望这会有所帮助。

DEBUG.COM 可以毫无故障地处理任一 EOL 序列,因此使用它是有意义的,尤其是使用它的扩展功能。但是似乎可以使用 DEBUG.EXE,通过此修复,FWIW。 Scite 编辑器是一个简洁的工具。

我发现了同样的问题 运行 Dosbox 中调试的脚本文件。 但我找到了另一个编辑器:Notepad2。大小运行并改变颜色以突出显示汇编程序单词。 不过必须使用调试版本 1.25。

比起迈克尔·佩奇。我正在尽一切努力让 MS-DEBUG 的 FreeDos 克隆的输出保存到文本文件中。但阻碍输出重定向的不是路径、速度或内存分配。这确实是换行和光标 return 的组合。我很快写了一个程序来取出光标 return 并留下换行符。它现在重定向!我也可以去掉换行符并保留光标 returns,DEBUG 也重定向到文件。小故障是我必须在 DosBox window 之外访问 Windows 或关闭 DosBox window,以便输出的 DEBUG 代码在目录列表中可见。

这就是我将 DEBUG 输出重定向到文件的方式:

调试 < game.dbg > game.lst