Jemand weiß, warum die Sektoren der IBM-Diskette 1 bis 8 (und nicht 0 bis 7) heißen [geschlossen]


9

Ich programmiere jetzt auf einem 8-Bit-Z80-Computer mit CP / M 2.2 (als Hobby) und das Diskettenformat ist IBM, 40 Spuren, 8 Sektoren pro Spur, 512 Bytes pro Sektor. Der freie Speicherplatz beträgt 154 Ko auf jeder Seite der Festplatte.

Warum sind die Sektoren von 1 bis 8 indiziert (und nicht von 0 bis 7, wie dies normalerweise bei Computern der Fall ist)?

Der Katalog der Diskette befindet sich auf Spur 1 (Sektor 1 bis 4, 64 Einträge).

Ich frage mich, ob der Katalog auf Spur Null ist.

Ist die Nullspur für die Aufnahme eines Systems reserviert (da Spur 0 und 1 für das System auf einer CP / M-Diskette reserviert sind und der Katalog auf Spur 2 ist)?


Ich habe dies gefragt, weil zum Beispiel bei APPLE II Sektoren bei Null beginnen (0 bis F).

Der Computer, den ich benutze, ist ein AMSTRAD CPC 6128 (1985). Es ist ein 8-Bit mit Zilog Z-80, mit CP / M OS 2.2 und 3.0 verfügbar.

Das Diskettenformat ist ziemlich selten: 3 Zoll. (nicht 3 1/2).

Es stehen 3 FORMATE zur Verfügung: -CP / M: 40 Spuren (0 bis 39) 9 Sektoren pro Spur (mit den Namen & 41 bis & 49) 169 Ko auf jeder Seite. -DATEN: 40 Spuren (0 bis 39) 9 Sektoren pro Spur (mit den Namen & C1 bis & C9) 178 Ko auf jeder Seite. -IBM: 40 Spuren (0 bis 39) 8 Sektoren pro Spur (mit 1 bis 8 bezeichnet) 154 Ko freier Speicherplatz auf jeder Seite.

Eine 3-Zoll-Diskette unterscheidet sich von einer 3 1/2 -Diskette. So lesen Sie die Seite B: Ich muss die Diskette auswerfen und selbst drehen und dann wieder in das Laufwerk einlegen! aber es funktioniert sehr gut.

Die Spuren beginnen bei 0 bis 39. Ich bin nur gespannt, warum Sektoren bei 1 beginnen und warum die Spur 0 nicht für das Verzeichnis im IBM-Format verwendet wird ...

Das CP / M-Format ist beispielsweise sehr einfach: Verzeichnis auf Spur 2, System-CP / M auf Spur 0 und 1.

Ich bin ein erfahrener Assembler-Programmierer, und ich denke, es wäre logisch, dass Sektoren wie Tracks bei Null beginnen. Der AMSTRAD CPC-Computer kann auch ein 5 1/4 Festplattenlaufwerk aufnehmen. Ich habe gestern einen gekauft. Aber Tracks, Sektoren und Formate werden natürlich auf 5 1/4 Disquettes gleich sein.

Olivier.

ps: Entschuldigung für mein Englisch, es ist nicht meine Muttersprache. ^^


Manchmal ist etwas so wie es ist, weil es so ist. (Und denken Sie daran, dass das Diskettenformat auf einige sehr frühe, teilweise elektromechanische Key-to-Disk-Dateneingabesysteme zurückgeht. Das heißt, Maschinenbauingenieure hatten eine ebenso große Hand im Design wie EEs.)
Daniel R Hicks

40 Tracks bist du sicher? Das wäre eine einseitige 5,25 - Zoll-Diskette. Oder meinen Sie 40 Zylinder und doppelseitige Disketten? Übrigens unterstützt CP / M normalerweise sowohl 8- Zoll- als auch 5,25- Zoll-Disketten, ein- und doppelseitige Disketten, Aufnahmeformate mit einfacher und doppelter Dichte . und eine Reihe von Sektorgrößen (256, 512 und 1024 waren üblich). IBMs PC-DOS unterstützte sowohl SS- als auch DS 5,25-Zoll-Disketten und half bei der Standardisierung von 512 Bytes pro Sektor.
Sägemehl

1
Die Frage im Titel nicht auf „IBM Diskette“ gebunden, sondern an den „Standard“ Diskette geht Controller 34, von dem IBM 3740 und IBM System, das die Standards wurde für Einzel- und Doppel Dichten Aufzeichnungsformate. Die Nummerierungsschemata wurden von Hardware- Ingenieuren entworfen und für Befehlssequenzen implementiert und nicht von Software-Ingenieuren oder Programmierern.
Sägemehl

Für Fragen wie diese gibt es jetzt einen Retro Computing Stack Exchange .
CJ Dennis

Antworten:


6

Ich denke, Sie haben ein Missverständnis, dass Dinge in Bezug auf Computer bei Null beginnen.

Während dies bei allen C-basierten Sprachen (C, C ++, C #, Java usw.) der Fall ist, gilt dies NICHT für einige Sprachen, die so alt oder älter als C sind (wie FORTRAN und COBOL).

Da das Z80 vor ANSI C eingeführt wurde, wurde erwartet, dass es viel mehr COBOL und FORTRAN ausführt als Lisp (das ebenfalls sehr alt ist, aber eine auf Null basierende Indizierung aufweist).

Daher ist die einbasierte Indizierung sinnvoll.


2
Der Zilog Z80-Mikroprozessor und alle von ihm unterstützten Programmiersprachen haben nichts mit den Standards des Diskettencontrollers zu tun. Disketten wurden erfunden, bevor der Z80 auftauchte.
Sägemehl

1
@sawdust, es hat viel mehr mit Standards im Allgemeinen zu der Zeit zu tun. Da zu der Zeit erwartet wurde, dass viele Dinge indiziert werden, waren es auch Disketten.
Soandos

4
Ihre "Erklärung" berücksichtigt nicht die Tatsache, dass die Zylindernummer und die Kopfnummer von Null und nicht von Eins nummeriert sind.
Sägemehl

3

Die erste Spezifikation für Disketten wurde von IBM mit dem Erscheinen des IBM 3740 erstellt und erwähnt nicht, dass Sektoren für das System reserviert sind. Die einzige Reservierung für das System ist Spur 00, in der nur die "Datensatzetiketten" gespeichert sind, die den in den Spuren 01 bis 76 gespeicherten Informationstyp identifizieren. Sie definiert klar, dass der erste Sektor SEKTOR 1 ist. Dies ist kein Zufall, sondern a Frage der natürlichen Nummerierung gegen die Nummerierung des Computers.

Wir können beobachten, dass ein Mensch, wenn er anfängt, etwas zu zählen, nicht mit Null beginnt, sondern mit Eins. Stellen Sie sich zum Beispiel vor, dass sich 135 Schüler in einem Klassenzimmer befinden. Die Zahl zu zählen wäre ungefähr so: Eins, zwei, drei ... einhundertvierunddreißig, einhundertfünfunddreißig.

Seine numerische Darstellung wäre also: 1, 2, 3, ... 134, 135 Soweit sind wir uns einig, richtig?

Setzen wir nun die Ziffern, die nicht durch 0 dargestellt werden. Es würde so aussehen: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135

Dies ist, was mit CHS passiert : 0,0,1 - 0,0,2 - 0,0,3 ...

Es ist wichtig, dass die Zeilen in den Excel-Tabellen oder die automatisch numerischen Felder in einer Datenbank mit 1 und nicht mit 0 beginnen, und niemand hat etwas dazu gesagt.

Hat David J. Bradley das BIOS so geplant?

Ja, aber er war nicht draußen.

Es gibt definitiv keinen technischen Grund, warum SECTOR 0 nur verwendet werden kann, wenn es aus anderen Gründen für Benutzer reserviert und verborgen ist. Grundsätzlich deutet alles darauf hin, dass es sich um eine natürliche Nummerierung handelt.

GA21-9152-2 Datei - Nr 3740-00,15
IBM 3740 Dateneingabesystem

Seite 12
Festplatteninitialisierung
... Jede Scheibe enthält zwei Ersatzspuren keine unregelmäßigen Spuren zu ersetzen. Darüber hinaus bietet die Initialisierungsfunktion eine Möglichkeit, die Reihenfolge der Sektoradressen auf der Diskette zu ändern. Normalerweise ist die Reihenfolge der Sektoren in numerischer Reihenfolge (1, 2, 3, ... 25,26)
.

Seite 24
DATENKENNZEICHNUNG AUF DER DISKETTE
Während der Initialisierung wird die Datensatzbezeichnung für einen Datensatz magnetisch auf der Indexspur (Spur 00) der Diskette aufgezeichnet. Der Hauptzweck dieses Etiketts besteht darin, den Speicherort des Datensatzes auf der Diskette anzuzeigen

Dies war im Jahr 1973. Es zeichnete Daten auf einer 8-Zoll-Diskette auf. Der IBM PC 5150 wurde am 12. August 1981 geboren ... und wir können nicht vergessen, dass sie eine gewisse Kompatibilität mit den vorherigen Geräten aufrechterhalten mussten.

Es gab definitiv keinen technischen Grund.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.