DOSBox: debug.exe reads file - processes commands incorrectly

僤鯓⒐⒋嵵緔 提交于 2019-11-28 12:06:17

问题


I'm trying to use DOSBox with debug.exe on a 64-bit system. It works perfectly fine if I enter the commands manually. When I redirect input from a file with:

debug < [file]

it doesn't work. On every line except for the first it displays an error similar to this:

DOSBox will eventually hang and crash. Is there any way to fix this?

The input file I am trying to process as commands is:

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

回答1:


I can reproduce the behavior you are seeing in this scenario:

  • DOSBox 0.74 on Windows and Linux
  • DEBUG.EXE from Windows XP copied to DOSBox
  • DEBUG.EXE from various versions of MS-DOS will cause problem including unexpected hangs. See this Stackoverflow question for another related problem.

I found a version of DEBUG.COM from FreeDOS that works as expected. I have made DEBUG.COM available for download from my website. Alternatively you can download the ZIP File from Softpedia and extract DEBUG.COM.

When I run DEBUG.COM I get this:

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!



回答2:


Had same problem in DosBox 0.74 with DEBUG.EXE script redirection. Discovered that it could be fixed by changing the end-of-line characters in the script file from [CR][LF] to just [CR] when redirecting into DEBUG.EXE.

Pasting your file into the Scite editor and viewing the line-end characters showed this:

a 100{CR][LF] jmp 145[CR][LF].... et cetera

I used an option in Scite to change the EOL characters to [CR] alone, getting

a 100{CR] jmp 145[CR].... et cetera

saved the file, and was able to redirect it into DEBUG.EXE with no problem. Not sure why [CR][LF] causes the issue with DEBUG.EXE, but hope this helps.

DEBUG.COM handles either EOL sequence with no glitch, so makes sense to use it instead, especially with its extended features. But one can use DEBUG.EXE it seems, with this fix, FWIW. The Scite editor is a neat tool.

|improve this answer

来源:https://stackoverflow.com/questions/36230551/dosbox-debug-exe-reads-file-processes-commands-incorrectly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!