問題タブ [sector]

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 投票する
8 に答える
189042 参照

windows-7 - Windows のセクター サイズを確認するにはどうすればよいですか?

Windows 7 で物理セクター サイズを確認するにはどうすればよいですか (たとえば、従来の 512 バイト セクターではなく 4,096 バイト セクターのAdvanced Formatドライブがある場合)。

ファイルをクリックしてプロパティを取得すると、 NTFS Cluster Sizeがわかりますが、これはハード ドライブのセクターサイズとは異なります。

: Windows 7 (および Windows Vista SP1) は 4096 Advanced Format ハード ドライブの存在を認識しているため、Windows 7 についてお尋ねします。

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

windows - Windows: CD-R セクタに直接書き込む

CD-R のセクターに直接書き込むことができるライブラリまたは Windows API 関数はありますか? Windows API によって提供される ReadFile 関数を使用してドライブからセクターを読み取ることができますが、ドライブで WriteFile 関数を使用しても、ディスクが使用中としてマークされるだけのようです (CD で WriteFile が使用されるプログラムを実行した後)。 R、システムを再起動するまで、ファイルをディスクに書き込んだり取り出したりすることができません)。システムを再起動すると、ディスクにデータがありません。書き込みアクセス用にディスク ドライブを開き、ディスク ドライブ ハンドルを指定して WriteFile 関数を呼び出しても、システム エラーは発生しません。

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

assembly - CD からのセクタのロード

私は OS 設計に不慣れで、これまでに 1 つの「OS」(実際にはただ 1 つのブートセクタ) を設計し、別個のブートローダーと「カーネル」(まだ非常に単純) を作成しようと決心しました。私の質問は単純ですが、グーグルで検索してこのサイトを検索することで、なんとか私を逃れました(わかりました、同様の質問が1つ見つかりましたが、答えは漠然としていて、私がそれを使用できるようにすることでした)。

int 0x13 AH=02 を見てきましたが、それはトラックを使用していますが、これは CD では使用されていないと思います。拡張読み取りセクター (AH=0x42) を使用する必要があることをどこかで見ましたが、どのセクターを読み取るかを指定できる場所と、そのセクターを RAM のどこに配置する必要があるかがわからないため、その使用方法がわかりません。 .

質問は次のとおりです。El Torito no エミュレーションを使用する CD からセクタをロードするにはどうすればよいですか。私はこれが初めてなので、答えを「最も単純な形式」にして、いくつかのコードを提供していただければ幸いです。前もって感謝します!

編集:

必要かどうかわかりませんが、私は NASM 構文を使用しているので、NASM で答えていただければ助かります。

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

c - セクターのあるフロッピーからブロックを読み取る方法は?

OS前の状態からフロッピーを読み取る必要があり、読み取る機能がありますが、4番目のセクターを超えて読み取ることができないようです...

理由はありますか?ブロックからの変換が間違っていますか?

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

assembly - アセンブリ - 仮想ディスクの次のセクターを読み取る

人生で少なくとも一度は世界中のプログラマーとして、私は自分の「革命的」な新しい唯一のオペレーティング システムを作ろうとしています。:D

さて、私は仮想エミュレーター (Oracle VM Virtual Box) を使用しています。そのために、vmdk ディスクを使用して、新しい unknwon オペレーティング システムを作成します。私は vmdk が好きです。それらは単なるファイルなので、仮想ハードディスクの最初の 512 バイトにブートローダーを貼り付けることができます。

今、この仮想ディスクの次のセクターを読み取ろうとしています。そこに、メッセージを表示する単純なカーネルを貼り付けます。

2 つの質問があります。

  • 2 番目のセグメント (最初の 512 バイトはブートローダによって占められています) を正しく読み取っていますか? コード:

    ここで、CF を確認した後、エラー メッセージが表示されます。ただし、INT 13, 1 を使用して最後のステータス メッセージを取得すると、AL は 0 になるため、エラーは保存されません。

  • シンプルなカーネルを vmdk 内の正しい場所に貼り付けていますか? 私がしているのは、ファイルの 512 番目のバイトの後に貼り付けることです。最初の 512 バイトは、私が言ったように、ブートローダーです。ファイルは次のようになります。

    /li>

これが、カーネルを 2 番目のセクターに追加しようとしている方法です。これの何が悪いと思いますか?ありがとう!

アップデート

OK、エラーは発生しませんが、ロードされたコードが実行されていません。ウィンドウにポイントが表示されます。

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

c++ - 高度なフォーマットのハードディスクの Windows XP での物理セクター サイズ

ハード ディスクが Windows XP で高度なフォーマットであるかどうかを判断するために、ハード ディスクの物理セクター サイズを取得する必要があります。

を使ってみましたSTORAGE_ACCESS_ALIGNMENT_DESCRIPTORが、Windows XPには対応していません。私が使用するどの方法でも、4096 ではなく 512 が返されます。これには、返される値が 512 だけである WMI が含まれます。

私は C++ でコーディングしており、実際の物理セクター サイズを見つけるのに役立つ方法を教えていただければ非常にありがたいです。

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

string - アセンブリ内の文字列バッファと BIOS 割り込み

ハードディスクのセクター 2 に文字列を書き込もうとしています。失敗しているようです。これが私が現時点で持っているコードです:

君たちありがとう!

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

c++ - Finding a point that is interior to a sector

SOLVED: See my answer.

I'm trying to find a point that is interior to an arc so when a floodfill occurs it does not accidentally fill an area outside the arc. As long as the absolute value of the distance between the two angles: start and end; are less than PI this works (There are a couple extreme edge cases where the drawn lines are so close that the point picked is part of those lines, but that's for a different day...).

The problem I'm having is when the absolute value of the distance between the start and end angles is greater than PI the flood occurs on the exterior of the arc instead of the interior. One example of many is: if the arc starts at 0 and ends at 3PI/2 the absolute value of the distance is 3PI/2, the flood occurs between the angles as if the absolute value distance were PI/2 and floods the entire screen except the pac-man-shaped arc.

EDIT:

To avoid confusion, here is the definition of an arc according to allegro (and trigonometry in general):

void arc(BITMAP *bmp, int x, y, fixed ang1, ang2, int r, int color);

Draws a circular arc [minus the initial/terminal sides or center point] with centre [sic] x, y and radius r, in an anticlockwise [sic] direction starting from the angle a1 and ending when it reaches a2....Zero is to the right of the centre [sic] point, and larger values rotate anticlockwise [sic] from there.

Square brackets are my notation.

I've already taken care of converting from allegro's (stupid) use of fixed integers to the proper radian values.

END EDIT

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

c++ - プログラムでISOファイルの特定のLBAのセクターを読み書きする方法は?

C++ またはその他のネイティブ プログラミング言語を使用して、論理ブロック アドレッシング (LBA) を使用して ISO 上のセクターを読み書きしたいと考えています。たとえば、ISO ファイルのカスタム LBA を読みたいとします。これは可能ですか?

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

assembly - セクターを読み取るブートローダー

もちろん、0番目のセクターに配置されるブートローダーを作成しています。ブートローダの許容サイズである 512 バイトのみの制限のため、ブートローダの直後のセクタである 1 番目のセクタを読み取るようにしています。1 番目のセクターの情報量が 512 バイトを超えても読み取ることができますか、それともコンピューターが 3 番目のセクターの読み取りを開始するように指定する必要がありますか?