問題タブ [16-bit]

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 に答える
302 参照

winapi - 16ビットアプリケーションを起動できなくなりました

C ++で記述されたWin32マクロアプリケーションでいくつかの問題をデバッグして解決しようとしていますが、最も奇妙な問題が発生しています。

16ビットプログラムを起動してから、データの入力をシミュレートする必要があり、ShellExecuteを2年以上使用しています。この実際のコードにはまったく触れていませんが、現在は機能しません。

私はやっていShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);ます。これは何年もの間完璧に機能していましたが、突然、機能しなくなりました。ACCESS_DENIEDエラーコードが表示されます。私はグーグルで検索しましたが、これは16ビットアプリの起動に関するかなり一般的な問題のようです。

ワークステーションXPSP2環境はまったく変更されておらず、少し前に再構築するまで実際に機能していました(何度も再構築しました)。

コードはウィンドウプロシージャ関数内にあり、WinMain関数でプログラムを取り出して起動すると機能しますが、コードはウィンドウプロシージャ内にある必要があります...

私は多くの選択肢を試しましたが、それらはすべて同じ問題を引き起こします。

これに関する最大の問題は、それが機能していたことです。その後、コードと環境の両方に変更を加えることなく、機能しないことが突然決定されました。実際、変更のテストの約半分で、機能しなくなると考えていました。

プログラムを起動しないと何もできませんので、助けてください。これは、私がデバッグしているコードの最初のステップです。

0 投票する
6 に答える
6222 参照

c - 16bit raw PCM ファイルの書き込みに関する問題

小さな実験的な音楽作品として、標準 C で曲をプログラムしようとしています。コードは、Audacity にインポートできる生の PCM ファイルを出力します。現時点ではすべてが期待どおりに動作しますが、現在使用している 8 ビットではなく、各サンプルを 16 ビットとして書き込もうとすると問題が発生します。

書き込まれる時点まで、現在のサンプルは float として計算され、その境界はほぼ符号付き 8 ビット整数の範囲内に保たれます。次に、次のサンプルのプロセスを繰り返す前に、8 ビット整数として書き込まれます。これは正常に機能し、適切に再生されます。この問題は、16 ビットの生の PCM ファイルとして書き込もうとしたときに発生します。fwrite を使用して結果の 16 ビット整数を書き込むと、fwrite を使用して float を 256 倍し、結果を整数にコピーします。これは、インポート時に期待される結果をもたらさず、期待していたものの非常に歪んだバージョンになります。

問題は書き込み段階でのみ発生するため、以下に有効なコードを追加しました。

ワーキング 8 ビット コード:

16 ビット コードが機能しない:

明らかな何かが欠けているだけかもしれませんが、何時間もかけて解決しようとしています。前もって感謝します!

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

assembly - ハードウェア割り込み一覧

ハードウェア割り込みのリストはありますか? 私は 16 ビット アプリをコーディングしていて、いくつかの INT をチェックしたかったのですが、Google で役立つものが見つかりませんでした。それに関するドキュメントを提供してもらえますか? できれば詳細を添えて。

有効なリクエストではない場合は申し訳ありませんが、この質問に合う唯一の場所だと思います

前もって感謝します

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

nasm - nasmでコンピューターをシャットダウンする

nasm からコンピューターへの電源をシャットダウンまたは停止することは可能ですか (違いはありますか?)。これを使用して再起動できることはわかっています:

シャットダウンに相当するものはありますか?16ビットOSを自作しています。

0 投票する
7 に答える
18841 参照

64-bit - 16、32、および 64 ビット アーキテクチャとは何ですか?

マイクロプロセッサやオペレーティング システムの場合、16 ビット、32 ビット、および 64 ビット アーキテクチャは何を意味しますか?

General Purpose Registerマイクロプロセッサの場合、それはs の最大サイズまたは s のサイズIntegerまたは s の数Address-lineまたは s の数Data Bus lineまたは何を意味しますか?

DOS is a 16-bit OS「 」、「 」などとはどういう意味Windows in a 32-bit OSですか...?

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

c# - ushort での C# ビット単位のシフト (UInt16)

16 ビット整数 (ushort / UInt16) でビットごとの左シフトを実行する必要がありますが、C# のビットごとの演算子は int (32 ビット) にのみ適用されるようです。ushort で << を使用する方法、または少なくとも簡単な回避策で同じ結果を得るにはどうすればよいですか?

0 投票する
6 に答える
2399 参照

c - 16 ビット C コンパイラはどのように機能しましたか?

ポインター演算などを使用する C のメモリ モデルは、フラットなアドレス空間をモデル化しているように見えます。16 ビット コンピュータは、セグメント化されたメモリ アクセスを使用していました。16 ビット C コンパイラは、この問題にどのように対処し、C プログラマの観点からフラットなアドレス空間をシミュレートしたのでしょうか? たとえば、次のコードを 8086 でコンパイルすると、おおよそどのアセンブリ言語命令になりますか?

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

installation - 16 ビット インストーラーの代わりに、プログラムに短いファイル名が必要ですか?

古いゲーム (Westwood Monopoly CD-ROM) を持っていますが、これは 16 ビット インストーラしかないため、Windows 7 x64 では実行できません。これを回避するために、Inno Setup を使用して新しいインストーラーを作成することにしました。ゲーム自体は 32 ビットですが、LFN に対応しておらず、Vista/7 で動作しますが、Inno Setup でビルドしたインストーラーが Windows 95 互換性をチェックした状態で実行されていないと、ゲームがクラッシュします。

互換モードをオンにして生成されたフォルダーと、互換性設定をチェックせずに生成されたフォルダーの間に、ファイルまたは属性の違いはありません。ただし、ゲームは互換モードでインストールされたフォルダーでのみ実行されます。ゲームの exe (Monopoly.exe) 自体は、互換モード オプションを有効にすることはできません。または、コンピューターの AI のいずれかを保存、読み込み、または選択しようとすると、ゲームが終了します。プレーヤー ファイル。インストーラーに互換モードを設定せずに作成したフォルダ内のMonopoly.exeで95互換モードをオンにすると、ゲームは読み込まれますが、上記の理由でプレイできなくなります。

私の推測では、Windows 95 の設定では短いファイル名が強制的に作成されますが、それがないと、短いファイル名の情報が存在しないため、ゲームはそのファイルを見つけることができません。検出された Windows のバージョンに基づいて別の exe をコピーできるようにする必要があるため、インストーラーに互換モードを設定することは理想的な解決策ではありません (Aero によって画面の一部が切り取られるため、16 進数で編集された exe を使用します。より大きなデフォルト サイズ)。

だから私の質問はこれです:Innoセットアップにコピー時に短いファイル名情報を強制的に作成させる方法はありますか、それとも終了後にコマンドでそれを追加する方法はありますか(つまり、ゲームができるように壊れたフォルダを修復します)そのファイルを見つけます)?

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

cocoa - CGBitmapContextと16ビット画像を手伝ってください

私はここで私が間違っていることを知りたいです。私はCGImageRefsの初心者なので、アドバイスがあれば役に立ちます。

別のビットマップからのピクセルの加重和をピクセル値として持つビットマップイメージを作成しようとしています。両方のビットマップはチャネルあたり16ビットです。どういうわけか、これを8ビット画像で動作させるのに問題はありませんでしたが、16ビットでは惨めに失敗します。私の推測では、私は物事を正しく設定していないだけです。データ型としてCGFloats、float、UInt16sを使用してみましたが、何も機能しませんでした。入力画像にはアルファチャネルがありません。私が得る出力画像は、色付きの雪のように見えます。

ヘッダーからの関連するもの:

次を使用して、入力ビットマップ(CGImageSourceCreateImageAtIndex(source、0、NULL)で作成されたCGImageRef)のコンテキストを作成します。

出力ビットマップのコンテキストも同じ方法で作成されます。以下を使用して、inBitmapをinContextに描画します。

次に、inBaseAddressとoutBaseAddressを次のように初期化します。

次に、outBaseAddressにinBaseAddressの値を入力します。

簡単なチェックとして、私は試しました:

これは機能し、少なくともビットマップデータへのコンテキストとポインタが機能していることを意味します。

ご入力いただきありがとうございます。これは、8ビット画像で問題なく機能したため、かなり苛立たしいものでした。

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

c - DirectSound でステレオ PCM を再生する

DirectSound を使用して作成した単純な 16 ビット PCM プレーヤーがあります。しかし、再生すると、両方ではなく 1 つのスピーカーだけが再生されるようです。

正確に投稿するコードがわからないので、必要な場合は教えてください。以下を使用してサウンド バッファを作成し、次を使用してストリームをロックすると言えます。