IBMフロッピーディスクのセクターの名前が1から8(0から7ではなく)になっている理由を誰かが知っている[終了]


9

現在、CP / M 2.2の8ビットZ80コンピューターでプログラミングをしています(趣味として)。フロッピーディスクのフォーマットはIBM、40トラック、8セクター/トラック、512バイト/セクターです。空き領域は、ディスクの各面で154 Koです。

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

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

トラック0のカタログは何でしょうか。

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


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

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

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

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

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

トラックは0から39で始まります。なぜセクターが1で始まるのか、なぜトラック0がIBM形式のディレクトリに使用されないのか知りたくて...

たとえば、CP / M形式は非常にシンプルです。トラック2のディレクトリ、トラック0および1のシステムCP / Mです。

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

オリビエ。

PS:私の英語は申し訳ありませんが、私の母国語ではありません。^^


時々それがそうであるのでそれがそうであるので何かが時々それである。(そして、フロッピー形式は一部の非常に初期の部分的な電気機械式のキーからディスクへのデータ入力システムにさかのぼります。つまり、機械エンジニアは設計においてEEと同じくらいの力を持っていました。)
Daniel R Hicks

40トラックはよろしいですか?それは片面 5.25インチフロッピーディスクです。それとも、40シリンダーと両面フロッピーディスクを意味しますか?BTW CP / Mは、通常、8インチと5.25インチフロッピーの両方、片面両面のフロッピーディスク、単密度と倍密度の記録フォーマットをサポートします。 IBMのPC-DOSはSSとDS 5.25インチの両方のフロッピーをサポートしており、セクターごとに512バイトを標準化するのに役立ちます。
おがくず

1
タイトルの質問は「IBMフロッピーディスク」とは関係ありませんが、単密度および倍密度記録フォーマットの標準となったIBM 3740およびIBM System 34 の「標準」フロッピーディスクコントローラーに戻ります。番号付けスキームは、ハードウェアエンジニアが設計し、コマンドシーケンス用に実装したものであり、ソフトウェアエンジニアやプログラマーが設計したものではありません。
おがくず

このような質問のためのRetro Computing Stack Exchangeがあります。
CJデニス

回答:


6

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

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

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

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


2
Zilog Z80マイクロプロセッサとそれがサポートしている可能性のあるすべてのプログラミング言語は、フロッピーコントローラの標準には関係ありません。フロッピーはZ80が登場する前に発明されました。
おがくず

1
@sawdust、それは当時の一般的な標準とはるかに関係があります。当時、多くのものが1つのインデックスに登録されると予想されていたため、フロッピーもそうでした。
soandos

4
「説明」では、シリンダー番号とヘッド番号が1ではなくゼロから番号付けされているという事実を考慮していません。
おがくず

3

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

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

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

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

これはCHSで何が起こるかです:0,0,1-0,0,2-0,0,3 ...

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

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

はい、しかし彼は外にいませんでした。

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

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

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

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

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

確かに技術的な理由はありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.