web-dev-qa-db-ja.com

コマンドの出力をファイルMS-DOS 1.xに保存します。

のようだ [COMMAND]>[FILE]は、MS-DOSの初期のバージョンでは機能しません。私はMS-DOS 1.25を使用しており、上記の式はinvalid argument

更新:DOS 1.xでは機能しないのは事実であるため、仮想ボックスの一部の機能を使用してその出力を取得したり、一部のログファイルから出力を取得したりすることが可能です。

27
Blake

仮想マシンのデバッグ機能(またはgdb /その他)を使用して、メモリを直接読み取ることができます。 ms-dosにはメモリ保護機能もマルチタスクシステムもないため、仮想マシンのメモリを読み取ったり、入力用に仮想マシンのvgaを読み取ったりすることができます。

ドキュメント コマンドが存在すると言います

info vgatext -- print the contents of the VGA framebuffer formatted as standard text mode

出力を取得するための正しい構文は、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実行

調査するいくつかのオプションは次のとおりです。

  • アプリケーションのメモリ内容をダンプするためのデバッグスクリプトの作成方法を見つける

  • quemu/dosbox/virtualboxのデバッグ用vgaドライバー/シリアルポート/メモリダンプソリューションを見つける

  • おそらく誰かがこの目的のためにそこに書き戻した80年代の古いユーティリティプログラムを見つける

  • ここにfreedosタグを追加します(または大きなstackoverflowで質問を移動/繰り返します。一部の教祖はこのような問題について知っているはずです)

何か面白いものを見つけたら後で更新しますが、1.25を使用している理由の詳細をいくつか教えていただけますか?このプログラムは新しいバージョンのmsdosで動作しますか?少額の料金でこのプログラムを新しいバージョンにパッチアップする(またはasmでファイル出力を追加する)ことに熱心な若いアセンブリハッカーを見つけることができると思います

5
strangeqargo

MS-DOSの初期のバージョンでは、[COMMAND]> [FILE]が機能しないようです。

私は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ディスプレイドライバー
  • アプリケーションプログラムによるメモリの動的な割り当て、変更、および解放のサポート
  • カスタマイズされたユーザーコマンドインタープリター(シェル)のサポート
  • アプリケーションソフトウェアの通貨、時刻、および日付形式の変更を支援するシステムテーブル(国際サポートとして知られています)

ソース レイダンカンによる高度なMS-DOSプログラミング


代わりに何ができますか?

可能な回避策は、画面を(テキストとして)キャプチャし、出力を解析することです。

この質問への回答 DOSでの画面キャプチャ 調査の開始点となるいくつかのTSR(Terminate but Stay Resident)プログラムをリストします。

40
DavidPostill