Quelqu'un sait pourquoi les secteurs de la disquette IBM sont nommés 1 à 8 (et non 0 à 7) [fermé]

9

Je programme maintenant sur un ordinateur Z80 8 bits avec CP / M 2.2 (comme passe-temps) et le format de la disquette est IBM, 40 pistes, 8 secteurs par piste, 512 octets par secteur. l'espace libre est de 154 Ko sur chaque face du disque.

Pourquoi les secteurs sont indexés de 1 à 8 (et non de zéro à sept, comme c'est généralement le cas avec les ordinateurs)?

Le catalogue de la disquette est sur la piste 1 (secteur 1 à 4, 64 entrées).

Je me demande si le catalogue est sur la voie zéro?

La piste zéro est-elle réservée à un système inclus (comme les pistes 0 et 1 sont réservées au système sur une disquette CP / M et le catalogue est sur la piste 2)?


J'ai posé cette question car par exemple, sur APPLE II, les secteurs commencent à zéro (0 à F).

L'ordinateur que j'utilise est un AMSTRAD CPC 6128 (1985). Il s'agit d'un 8 bits avec Zilog Z-80, avec CP / M OS 2.2 et 3.0 disponibles.

Le format de la disquette est assez rare: 3 pouces. (pas 3 1/2).

3 FORMATS sont disponibles: -CP / M: 40 pistes (0 à 39) 9 secteurs par piste (nommés & 41 à & 49) 169 Ko sur chaque face. -DATA: 40 pistes (0 à 39) 9 secteurs par piste (nommés & C1 à & C9) 178 Ko sur chaque face. -IBM: 40 pistes (0 à 39) 8 secteurs par piste (nommés 1 à 8) 154 Ko d'espace libre sur chaque face.

Une disquette de 3 pouces est différente d'une disquette 3 1/2. Pour lire la face B: je dois éjecter la disquette et la tourner moi-même puis la remettre dans le lecteur de disque! mais ça marche très bien.

Les pistes commencent de 0 à 39. Je suis juste curieux de savoir pourquoi les secteurs commencent à 1, et pourquoi la piste 0 n'est pas utilisée pour le répertoire au format IBM ...

Par exemple, le format CP / M est très simple: répertoire sur la piste 2, système CP / M sur la piste 0 et 1.

Je suis un programmeur d'assemblage expérimenté, et je pense qu'il serait logique que les secteurs commencent à zéro, comme le font les pistes. L'ordinateur AMSTRAD CPC peut également accepter un lecteur de disque 5 1/4. J'en ai acheté un hier. Mais les pistes, les secteurs et les formats seront bien sûr les mêmes sur 5 1/4 disquettes.

Olivier.

ps: désolé pour mon anglais, ce n'est pas ma langue maternelle. ^^

Olivier Briand
la source
Parfois, quelque chose est comme ça parce que c'est comme ça. (Et gardez à l'esprit que le format de la disquette remonte à certains systèmes de saisie de données clé à disque partiellement électromécaniques très tôt. Ce qui veut dire que les ingénieurs mécaniciens ont eu une main dans la conception aussi importante que les EE.)
Daniel R Hicks
40 titres êtes-vous sûr? Ce serait une disquette simple face de 5,25 ". Ou voulez-vous dire 40 cylindres et disquettes double face? BTW CP / M prend généralement en charge les disquettes 8" et 5,25 ", les disquettes simple et double face , les formats d'enregistrement simple et double densité , et un assortiment de tailles de secteurs (256, 512 et 1024 étaient courants). Le PC-DOS d'IBM a pris en charge les disquettes SS et DS 5.25 ", et aide à normaliser 512 octets par secteur.
sciure de bois
1
La question dans votre titre n'est pas liée aux «disquettes IBM», mais remonte aux contrôleurs de disquettes «standard» d'IBM 3740 et d'IBM System 34, qui sont devenus les normes pour les formats d'enregistrement simple et double densité. Les schémas de numérotation ont été conçus par des ingénieurs matériels et mis en œuvre pour des séquences de commandes, et non conçus par des ingénieurs logiciels ou des programmeurs.
sciure de bois
Il y a maintenant un échange de pile de calcul rétro pour des questions comme celle-ci.
CJ Dennis

Réponses:

6

Je pense que vous avez une idée fausse que les choses concernant les ordinateurs commencent à zéro.

Bien que ce soit le cas avec tous les langages basés sur C (C, C ++, C #, Java, etc.), cela N'EST PAS vrai pour certains langages aussi anciens ou plus anciens que C (comme FORTRAN et COBOL).

Étant donné que le Z80 a été introduit avant ANSI C, il devait fonctionner beaucoup plus COBOL et FORTRAN que Lisp (qui est également très ancien, mais a une indexation à base zéro).

En tant que telle, l'indexation basée sur un est logique.

soandos
la source
2
Le microprocesseur Zilog Z80 et les langages de programmation qu'il aurait pris en charge n'ont rien à voir avec les normes du contrôleur de disquette. Les disquettes ont été inventées avant l'apparition du Z80.
sciure de bois
1
@sawdust, cela a beaucoup plus à voir avec les normes en général à l'époque. Puisqu'au moment où beaucoup de choses devaient être indexées, les disquettes l'étaient aussi.
soandos
4
Votre "explication" ne tient pas compte du fait que le numéro de cylindre et le numéro de tête sont numérotés de zéro, pas un.
sciure de bois
3

La première spécification sur les disquettes a été faite par IBM avec l'apparition de l'IBM 3740 et ne mentionne pas qu'il existe des secteurs réservés au système. La seule réservation pour le système est la piste 00, qui ne stocke que les "Data Set Labels" qui identifient le type d'informations stockées dans les pistes 01 à 76. Elle définit clairement que le premier secteur est le SECTEUR 1. Ce n'est pas une coïncidence mais une question de numération naturelle par rapport à la numérotation de l'ordinateur.

Nous pouvons observer que lorsqu'un humain commence à compter quoi que ce soit, il ne commence pas par zéro mais un. Par exemple, imaginez qu'il y a 135 élèves dans une classe. Compter le nombre serait quelque chose comme ça: un, deux, trois ... cent trente quatre, cent trente cinq.

Sa représentation numérique serait donc: 1, 2, 3, ... 134, 135 Jusqu'à présent, nous sommes d'accord, non?

Maintenant, mettons les chiffres qui ne sont pas représentés par 0. Cela ressemblerait à ceci: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135

C'est ce qui se passe avec CHS : 0,0,1 - 0,0,2 - 0,0,3 ...

Il est significatif que les lignes dans les feuilles Excel ou les champs auto-numériques dans une base de données commencent par 1 et non par 0 et personne n'a rien dit à ce sujet.

David J. Bradley a-t-il programmé le BIOS de cette façon?

Oui, mais il n'était pas en dehors.

Il n'y a certainement aucune raison technique pour laquelle SECTOR 0 ne peut pas être utilisé sauf s'il est réservé et caché aux utilisateurs pour d'autres raisons. En principe, tout indique qu'il s'agit d'une numérotation naturelle.

GA21-9152-2 No de dossier 3740-00,15
IBM 3740 Data Entry System

page 12
INITIALISATION DES DISQUES
... Chaque disque contient deux pistes de rechange pour remplacer les pistes irrégulières. De plus, la fonction d'initialisation fournit un moyen de modifier la séquence d'adresse de secteur sur la disquette. Normalement, la séquence des secteurs est dans l'ordre numérique (1, 2, 3, ... 25,26)
.

page 24
ÉTIQUETAGE DES DONNÉES SUR LA DISKETTE
Pendant l'initialisation, l'étiquette de l'ensemble de données d'un ensemble de données est enregistrée magnétiquement sur la piste d'index (piste 00) de la disquette. Le but principal de cette étiquette est de montrer l'emplacement de l'ensemble de données sur la disquette

C'était en 1973. Il enregistrait des données sur une disquette 8 ". L'IBM PC 5150 est né le 12 août 1981 ... et nous ne pouvons pas oublier qu'ils devaient maintenir une certaine compatibilité avec les appareils précédents.

Il n'y avait définitivement aucune raison technique.

APO69
la source