問題タブ [floppy]

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

boot - OS 開発 - qemu を使用したフロッピー ドライブからの起動

私は BrokenThorn の OS 開発チュートリアルを読んでおり、現在、第 2 段階のブートローダーの作成と読み込みに取り組んでいます。チュートリアルはWindows用ですが、Linux(Ubuntu 13.04)でやっています。

これは私がやったことです:

  • コマンドでファイルfloppy.imgを作成~/Documents/floppyしましたmkfs.vfat
  • boot.asmnasm を使用してファイルごとにコンパイルすると、boot.bin
  • 次に、このコマンドを実行しました:dd if=boot.bin of=~/Documents/floppy/floppy.img bs=512 count=1

したがって、最初の段階のブートローダーを含むフロッピー イメージがあります。qemuを使用して起動すると、正常に動作します。

ただし、第 2 段階のブートローダーを作成した後 (私が正しければ)、第 2 段階をマウントしてfloppy.img、マウントされたファイルシステムにコピーする必要があります。このような場合、 qemu を使用してマウントされたフロッピーを起動するにはどうすればよいでしょうか? それは可能ですか?そうでない場合、第 2 段階のブートローダーを使用するにはどうすればよいですか。

私はこれが初めてなので、愚かな仮定/質問を許してください。

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

assembly - 2 番目のシリンダーのフロッピー イメージへの書き込みが奇妙な結果になる

フロッピー イメージの 2 番目のシリンダーのセクターに書き込もうとしています。テストのために、2 番目のシリンダーの最初のセクターに 1 ~ 9 の数字を書き込んでみました。

ロジックは、シリンダーに 18 セクターがあり、各セクターが 512 バイトである場合、この結果はバイト 9216/0x2400 (最初のシリンダーの 18 番目のセクターであるバイト 8704/0x2200 に続く) に表示されるはずです。奇妙なことにhexdump、シーケンスで結果を確認した後、代わりにバイト 18432/0x4800 に存在します。

フロッピーの 1 番目と 2 番目のシリンダーが (アセンブリ プログラムの観点から) 連続していない理由を理解したいと思います。

NASM アセンブリ プログラム:

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

assembly - 512 バイトを超える自分のブート可能なフロッピーを使用する方法

アセンブリ言語を勉強しています。起動可能なグラフィック ゲームを作成するためにhttp://mikeos.berlios.de/write-your-own-os.htmlの手順に従いましたが、問題があります。512 以上を使用することはできません。私のプログラムのメモリのバイト。

どうすればこの問題を解決できますか?

助けていただければ幸いです。

ここに私のコード(まだ512バイト未満):http://pastebin.com/i6ehx8dT

編集:私は私の問題を解決します。アセンブリ言語 16 ビットで作成されたフロッピー ブートローダーの最小例: http://pastebin.com/x1SawyjN

最後に、このリンクは非常に役に立ちました: http://www.nondot.org/sabre/os/files/Booting/nasmBoot.txt

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

gcc - アセンブリ: 最初のトラックの後のセクターを読み取れません

オペレーティング システムの一部として、この読み取りセクター関数を作成しました。

BIOS デバイス ID から読み取るには、セクター アドレスが必要です。しかし、セクター 19 (ヘッド: 0、トラック: 1、セクター 2) から読み取るように設定すると、0x1000:0x0000 の結果はそのセクターを超えている可能性があります (16 進ビューアーで数回確認しました)。

また、セクタ 19 を含むように複数のセクタを読み込んだ場合、前述のアドレスで、0x1000:(512*19) にコピーされたセクタ 19 は問題なく読み込めます。

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

disk - フロッピー ディスク セクタの番号付け方法

フロッピー ディスクのセクタがどのように並べられているのか疑問に思っていました。現在、フロッピー ディスク (fat12 でフォーマットされた高密度) のルート ディレクトリにアクセスするプログラムを作成しています。セクタ 13h でデバッグを使用してロードできますが、アセンブリではヘッド 1 トラックにあります。 0 セクター 2 なぜセクター 13h であり、ヘッド 0 トラック 1 セクター 1 ではないのですか?

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

operating-system - カスタムバージョンのmikeOSのブータブルフラッシュドライブを作成

Hyper-V を使用して Windows XP マシンを実行しており、仮想フロッピー ドライブもマウントしています。次のコードを使用して、bootloader.bin を仮想フロッピー ドライブに書き込みます。

これは、仮想フロッピー ドライブでうまく機能しています。NASM を使用して asm ファイルをコンパイルしています。ただし、カスタム OS をフラッシュ ドライブに新しい kernel.bin と共に取得したいと考えています。これで、mikeOS ソースに ISO イメージがあることがわかりましたが、独自のブートリーダーを使用しているため、従来の方法を使用してフラッシュ ドライブにそれを取得することはできません。

この OS を任意の x86 PC で動作させる方法を探しています。ストレージを移行する方法が必要です。また、この目的で CD-R を使用したくありません。メモリは書き換え可能である必要があります。