似乎[COMMAND]>[FILE]
在MS-DOS的早期版本中不起作用。我正在使用MS-DOS 1.25,以上表达式给出了该语句invalid argument
。
更新:由于确实在DOS 1.x中不起作用,因此可以使用virtual box的某些功能来获取输出,或者说可以从某些日志文件中获取输出。
似乎[COMMAND]>[FILE]
在MS-DOS的早期版本中不起作用。我正在使用MS-DOS 1.25,以上表达式给出了该语句invalid argument
。
更新:由于确实在DOS 1.x中不起作用,因此可以使用virtual box的某些功能来获取输出,或者说可以从某些日志文件中获取输出。
Answers:
您可以使用虚拟机调试工具(或gdb /其他工具)直接读取内存。ms-dos没有内存保护,也不是一个多任务系统,因此您可以读取虚拟机内存,可以读取虚拟机vga作为输入。
文档说存在命令
info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode
获取输出的正确语法是:run VirtualBox --debug --startvm msdos1.25
,然后在调试器控制台中:
info vgatext
复制粘贴的输出:
The COMPAQ Personal Computer DOS
Version 1.11
(C) Copyright COMPAQ Computer Corp. 1982
(C) Copyright Microsoft 1981, 82
A>
--------------------------------------------------------------------------------
VBoxDbg>
因此,您可以编写一个调试程序脚本,该脚本将钩住程序内存中的内存值,并在程序执行输出时转储vga屏幕,或者您可以编写脚本来暂停cpu,一致地保存内容,如果输出发生更改,保存更新的内容并继续cpu运行
要调查的一些选项是:
查找如何编写调试脚本以转储应用程序的内存内容
为quemu / dosbox / virtualbox找到一些调试vga驱动程序/串行端口/内存转储解决方案
从80年代找到一些旧的实用程序,也许有人为此写了回去
在此处添加freedos标记(甚至在大型stackoverflow上移动/重复您的问题,我想有些专家应该了解类似这样的问题
如果发现有趣的内容,我将在稍后进行更新,但是您能否透露一些有关为什么使用1.25的详细信息,该程序是否可以在更新版本的msdos上运行?我敢打赌,您可以找到一些年轻的汇编黑客,他们急切地希望将该程序修补到较新的版本(或使用asm添加文件输出),但需要支付少量费用
info vgatext
所有您需要做的工作就是为调试器编写正确的脚本,这似乎很
我正在使用MS-DOS 1.25,上面的表达式给出了该语句无效的参数
那是正确的。v1.25中没有您想做的事情。
v2.0中添加了命令重定向(以及许多其他改进)。
MS-DOS 2.0版(等效于PC-DOS 2.0)于1983年3月首次发布。回想起来,它是一个新的操作系统(尽管非常注意保持与MS-DOS版本1的兼容性)。它包含许多重要的创新和增强的功能,包括下一页列出的功能。
- 同时支持大容量软盘和硬盘
- 许多类似UNIX / XENIX的功能,包括分层文件结构,文件句柄,I / O重定向,管道和过滤器
- 后台打印(后台打印)
- 卷标签,以及其他文件属性
- 可安装的设备驱动程序
- 用户可自定义的系统配置文件,用于控制其他设备驱动程序的加载,系统磁盘缓冲区的数量等
- 维护可用于在程序之间传递信息的环境块
- 可选的ANSI显示驱动程序,该程序允许程序以独立于硬件的方式定位光标并控制显示特征
- 支持应用程序动态分配,修改和释放内存
- 支持定制的用户命令解释器(shell)
- 系统表可协助应用软件修改其货币,时间和日期格式(称为国际支持)
可能的解决方法是捕获屏幕(作为文本)并解析输出。
您可以安装C并编写一个程序来接受dos命令,然后在shell中运行它们并记录结果。我建议您使用Borland Turbo C 2.01。如果您想编写代码,也可以用Quickbasic编写代码。
https://archive.org/details/msdos_borland_turbo_c_2.01
就个人而言,我将使用DOS 5.5或6,因为还会得到一些其他东西。