web-dev-qa-db-ja.com

IBMフロッピーディスクのセクターの名前が1から8(0から7ではない)である理由を誰かが知っています。

私は現在、CP/M 2.2を搭載した8ビットZ80コンピューターでプログラミングしています(趣味として)。フロッピーディスクの形式はIBM、40トラック、トラックあたり8セクター、セクターあたり512バイトです。空き容量は、ディスクの各面で154Koです。

セクターに1から8のインデックスが付けられているのはなぜですか(コンピューターで通常見られるように、0から7ではありません)。

フロッピーディスクのカタログはトラック1(セクター1から4、64エントリ)にあります。

カタログはトラックゼロにあるのだろうか?

ゼロトラックはシステムを含めるために予約されていますか(トラック0と1はCP/Mフロッピーディスク上のシステムに予約されており、カタログはトラック2にあるため)?


たとえば、Apple IIでは、セクターはゼロ(0からF)で始まるため)これを尋ねました。

私が使用しているコンピューターはAMSTRAD CPC 6128(1985)です。これはZilog Z-80では8ビットで、CP/M OS2.2および3.0が利用可能です。

フロッピーディスクのフォーマットは非常にまれです:3インチ。 (3 1/2ではありません)。

3つのフォーマットが利用可能です:-CP/M:40トラック(0から39)トラックあたり9セクター(&41から&49という名前)各面に169Ko。 -データ:40トラック(0から39)トラックあたり9セクター(&C1から&C9という名前)各面に178Ko。 -IBM:40トラック(0から39)トラックあたり8セクター(1から8という名前)各面に154Koの空き領域。

3インチフロッピーディスクは、31/2フロッピーディスクとは異なります。サイドBを読むには:ディスケットを取り出して自分で回してから、ディスクドライブに再度挿入する必要があります。しかし、それは非常にうまく機能します。

トラックは0から39で始まります。セクターが1で始まる理由と、トラック0がIBM形式のディレクトリーに使用されない理由を知りたいだけです。

たとえば、CP/Mフォーマットは非常に単純です。トラック2のディレクトリ、トラック0と1のシステムCP/Mです。

私は経験豊富なアセンブリプログラマーであり、トラックと同様に、セクターがゼロから始まるのは論理だと思います。 AMSTRAD CPCコンピューターは51/4ディスクドライブも受け入れることができます。昨日購入しました。しかし、トラック、セクター、フォーマットはもちろん51/4ディスケットでも同じです。

オリヴィエ。

p.s:私の英語は申し訳ありません、それは私の母国語ではありません。 ^^

9
Olivier Briand

コンピュータに関することはゼロから始まるという誤解があると思います。

これはすべてのCベースの言語(C、C++、C#、Javaなど)に当てはまりますが、Cと同じくらい古い、またはCより古い一部の言語(FORTRANやCOBOLなど)には当てはまりません。

Z80はANSICの前に導入されたため、LISPよりもはるかに多くのCOBOLとFORTRANを実行することが期待されていました(これも非常に古いですが、ゼロベースのインデックスがあります)。

そのため、1ベースのインデックス作成は理にかなっています。

6
soandos

フロッピーディスクに関する最初の仕様は、IBM 3740の外観でIBMによって作成されたものであり、システム用に予約されているセクターがあることについては言及されていません。システムの唯一の予約はトラック00で、トラック01から76に格納されている情報のタイプを識別する「データセットラベル」のみが格納されます。これは、最初のセクターがセクター1であることを明確に定義しています。これは偶然ではなく、コンピュータの番号付けに対する自然な番号付けの問題。

人間が何かを数え始めるとき、それはゼロではなく1で始まることがわかります。たとえば、教室に135人の生徒がいるとします。数を数えると、次のようになります。1、2、3 ... 134、135。

したがって、その数値表現は次のようになります。1、2、3、... 134、135これまでのところ、同意しますよね?

ここで、0で表されていない数字を入力します。001、002、003、...、015、016、...、099、100、...、133、134、135のようになります。

これは[〜#〜] chs [〜#〜]で起こることです:,0,1--0,0,2--0,0,3 ... ==

Excelシートの行またはデータベースの自動数値フィールドが0ではなく1で始まり、誰もこれについて何も言っていないことは重要です。

David J. BradleyはBIOSをそのようにスケジュールしましたか?

はい、でも彼は外に出ていませんでした。

SECTOR 0は、他の理由で予約されてユーザーから隠されていない限り、使用できないという技術的な理由はありません。原則として、すべてがそれを指し示すのは自然な番号付けの問題です。

GA21-9152-2ファイル番号3740-00,15
IBM3740データ入力システム

12ページ
ディスクの初期化
...各ディスクには、不規則なトラックを置き換えるための2つのスペアトラックが含まれています。さらに、初期化機能は、ディスケットのセクターアドレスのシーケンスを変更する手段を提供します。通常、セクターのシーケンスは番号順(1、2、3、... 25,26)
です。

24ページ
ディスケットでのデータラベリング
初期化中に、データセットのデータセットラベルがディスケットのインデックストラック(トラック00)に磁気的に記録されます。このラベルの主な目的は、ディスケット上のデータセットの場所を示すことです

これは1973年のことでした。8インチディスケットにデータを記録しました。IBMPC5150は1981年8月12日に誕生しました...以前のデバイスとの互換性を維持する必要があったことを忘れてはなりません。

技術的な理由はまったくありませんでした。

3
APO69