問題タブ [watcom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
824 参照

c# - C#でWatcomDBを開く

そのため、データを取得する必要があるため、C#を介してwatcom dbファイルを開くことができるかどうかを尋ねられましたが、AccessもSQLServerもそれをインポートできないようです。

どこから始めたらいいのかわからない...

私が与えられたのは.DBファイルとそれらの漠然とした指示だけです。

ありがとう

0 投票する
3 に答える
1320 参照

c - 16 ビット DOS での XMS 割り当て

ネクロマンシーの試みをお許しください。ただし、実際には 16 ビット DOS 用のコードを書く必要があります (!)。ソフトウェアの一部が 16 ビット プラットフォーム用にビルドされたときに正しく実行されることを確認する必要があり、XP ワークステーションが実際に 16 ビット DOS アプリを実行できることを発見しました。これにより、既存のバッチ テスト システムを使用できるようになります。

いずれの場合も、ソフトウェアは 1 つのライブラリと 1 つのデータベースで構成されます。小規模なデータベース (最大 150kB) は、静的グローバル配列として定義するか、または で割り当てられたバッファーにファイルから読み取ることができるhalloc()ため、ライブラリとテスト ツールが正しく構築されていることはかなり確信しています。

ただし、最大 1.8Mb までのより大きなデータベースをテストすることもできます。これは大きすぎて正常に割り当てることができないため、XMS メモリを割り当てるための小さなサポート ライブラリを作成しました。これにより、小さなおもちゃのプログラムで最大 16Mb のデータを正常に割り当て、使用 (つまり、データの書き込みと読み取り)、および解放することができます。ただし、「実際の」アプリケーションで XMS 機能を使用すると、次のエラーが発生します。

このエラーをグーグルで調べても、関連する結果はほとんど得られませんでした。このタイプのエラーは通常、さまざまなマルウェアのせいにされているようです。

コードベースは厳密な C90 であり、DOS ビルドに現在使用されているコンパイラは、「ラージ」メモリ モデルを使用する OpenWatcom 1.9 です。ビルド中に警告やエラーは発生しません。

XMS サポート ライブラリは次のとおりです。xmsmalloc() の呼び出し後にエラーが発生するようです。

いくつかの具体的な質問:

  1. エラー メッセージに関する詳細情報はどこで入手できますか (OP はオペコードを意味すると思いますが、他のフィールドはどうでしょうか?)
  2. 私が見つけた XMS API リファレンスは、Windows XP で実行している場合でも適用できますか?それとも、参照すべき新しいバージョンはありますか?
  3. インライン アセンブラでシステム状態を台無しにすることはできますか? どうすれば解決できますか?
  4. これを解決する方法について何か良いアイデアはありますか? :-) DOS エクステンダには 32 ビット モードが必要なようですが、この演習の要点は 16 ビット モードを使用することです。
0 投票する
6 に答える
9682 参照

c++ - オープンワトコムのメリットとデメリット

StackOverflow に関するいくつかの投稿では、可能な場合は複数の (この場合は C/C++) コンパイラをサポートすることをお勧めしました。これにより、より標準に準拠したコードを作成する必要があり、バグの発見に役立ちます。

そこで、プロジェクトにサポートを追加できる追加の無料の C/C++ コンパイラを探していました (C/C++ で書かれています (両方の言語を組み合わせて))。Open Watcom が興味深い候補であることがわかりました。

私の質問は、Open Watcom C/C++ コンパイラーと他のコンパイラー (gcc/g++、Visual C++ など) を比較した場合の長所と短所は何ですか?

0 投票する
3 に答える
1180 参照

c - c プログラミング言語の dos.h のリファレンスはどこにありますか?

dos.hAPIのリファレンス/ドキュメントを探しています。(特に openwatcom 固有のバージョンの場合)。

ドキュメントはどこで入手できますか?

0 投票する
2 に答える
1869 参照

c - リアルモードOSの16ビット.comCプログラム

私はリアルモードのOSに取り組んでおり、アセンブリで書き込み、NASMを使用してフラットな.bin実行可能ファイルにコンパイルしています。
OSの一部をCで記述したいので、文字列にアクセスして最初の文字を出力する実験プログラム(ctest.c)を記述しました。

を使用してOpenWatcomv1.9でこれをコンパイルしまし wcl ctest.c -lr -l=COM た。これにより、ctest.comが作成されます。NASMアセンブリで記述したカーネルは、このプログラムを0x2010:0x0000にロードし、DSとESを0x2000:0x0000に設定してから、0x2010:0x0000にジャンプします。これが、アセンブリで記述され、。でコンパイルされた.COMプログラムを呼び出す方法ですnasm -f bin test.asm -o test.com
OSを(Bochsを使用して)テストすると、ctest.comが正常に読み込まれますが、msg[]の一部ではない意味のない文字が出力されます。
誰かがこれについて何か提案がありますか?文字列が間違った場所で初期化されているだけだと思います。これを16ビットOSとして残しておきたいです。
ありがとう!

0 投票する
1 に答える
2096 参照

assembly - 単純な DOS プログラム (ASM) をリンクすると、WLINK がスタック セグメントがないことを警告する

NASM マニュアルの例に基づいて、次のプログラム (.EXEではなく)をアセンブルしてリンクしようとしています。.COM

次のコマンドでアセンブルします (標準出力には何も生成しませんが、生成しますtest.obj)。

次のコマンドでリンクします (これは OpenWatcom 1.9 WLINK です)。

これにより、次の出力が得られます(警告を含む):

マニュアルには次のように記載されています。

上記のコードは、64 バイトの初期化されていないスタック スペースを含むスタック セグメントを宣言し、その先頭にある「stacktop」をポイントします。ディレクティブ セグメント スタック スタックは、`stack` と呼ばれるセグメントを定義し、タイプも `STACK` です。後者はプログラムを正しく実行するために必要ではありませんが、プログラムに「STACK」タイプのセグメントがない場合、リンカは警告またはエラーを発行する可能性があります。

私は何が欠けていますか?

0 投票する
1 に答える
2411 参照

c - WatcomコンパイラによってCから16ビットの実行可能BINARYRAW形式を生成するにはどうすればよいですか?

で16ビットの実行可能BINARYRAW形式を生成したいWatcom C compiler。リアルモードで実行されるヘッダーのないEXEファイルのようなもの。

私はLargeメモリモデルを使用しているため、コードセグメントとデータセグメントが異なる可能性があり、64Kバイトを超える可能性があります。

私はこれが好きです:

上記のコードをコンパイルするために、以下のバッチファイルを実行します。

build.batWatcomコンパイラとリンカによって生成された次のメッセージを実行した後:

出力ファイルは正常に生成されました。

しかし、私の質問は次のとおりです。

W1014警告を解決するにはどうすればよいですか?

また、初期CS値を指定する方法はありますか?

0 投票する
1 に答える
216 参照

c - WatcomエラーE1127「パラメータリストに必要なタイプ」を開きます

次のスタイルの宣言のヘッダーがあります。

コンパイルしようとすると、エラーE1127「パラメータリストに必要なタイプ」が生成され、直後にE1022:「int32_t」の近くにデータ型がないかスペルミスがあります。

スイッチ-za99を使用して、実装されたC99拡張機能をすでに有効にしています。最新バージョンのOpenWatcom(v1.9)を使用しています。このプロジェクトはLinux上のgccでうまくコンパイルされたと思います。

これらの宣言の何が問題になっていますか?エラーメッセージすらわかりません。私は何をすべきか?

0 投票する
1 に答える
1778 参照

c - Watcomインラインアセンブリドキュメント

公式マニュアルでは不十分であることがわかったため、Open Watcomリンカー、インラインアセンブリ、およびCコンパイラに関するマニュアルとドキュメントを検索しました。私は特にCとアセンブリに焦点を当てています。チュートリアルや本などへのリンクをいただければ幸いです。

0 投票する
3 に答える
762 参照

c - 32 ビット Open Watcom C での FAR ジャンプ命令の生成

別の ISR (Interrupt Service Routine) にジャンプするには、far jump 命令を生成する必要があります。私は 32 ビットの FreeDOS アプリケーションを開発しています。

OW のマニュアル ( cguide.pdfおよびclr.pdf ) を読んだ後、警告やエラーなしで正常にコンパイルされる 2 つの方法を見つけました。

私が考え出した他のアプローチは次のとおりです。

さて、私の質問は、上記の 2 つの方法のどちらがより正しいか、または優れているかということです。アイデアや意見はありますか?

これを達成する他の方法はありますか?