Alguien sabe por qué los sectores del disquete de IBM se denominan del 1 al 8 (y no del 0 al 7) [cerrado]

9

Ahora estoy programando en una computadora Z80 de 8 bits con CP / M 2.2 (como hobby) y el formato del disquete es IBM, 40 pistas, 8 sectores por pista, 512 bytes por sector. el espacio libre es 154 Ko en cada cara del disco.

¿Por qué los sectores están indexados del 1 al 8 (y no del cero al siete, como suele verse con las computadoras)?

El catálogo del disquete se encuentra en la pista 1 (sector 1 a 4, 64 entradas).

Me pregunto si el catálogo está en la pista cero.

¿La pista cero está reservada para incluir un sistema (como las pistas 0 y 1 están reservadas para el sistema en un disquete CP / M y el catálogo está en la pista 2)?


Pregunté esto porque, por ejemplo, en APPLE II, los sectores comienzan en cero (0 a F).

La computadora que uso es una AMSTRAD CPC 6128 (1985). Es un 8 bits con Zilog Z-80, con CP / M OS 2.2 y 3.0 disponibles.

El formato del disquete es bastante raro: 3 pulgadas. (no 3 1/2).

Hay 3 FORMATOS disponibles: -CP / M: 40 pistas (0 a 39) 9 sectores por pista (nombrados & 41 a & 49) 169 Ko en cada cara. -DATA: 40 pistas (0 a 39) 9 sectores por pista (nombrados & C1 a & C9) 178 Ko en cada cara. -IBM: 40 pistas (0 a 39) 8 sectores por pista (llamados 1 a 8) 154 Ko de espacio libre en cada cara.

Un disquete de 3 pulgadas es diferente de un disquete de 3 1/2. Para leer el lado B: ¡Tengo que expulsar el disquete y girarlo yo mismo y luego volver a colocarlo en la unidad de disco! pero funciona muy bien

Las pistas comienzan en 0 a 39. Tengo curiosidad por saber por qué los sectores comienzan en 1 y por qué la pista 0 no se utiliza para el directorio en el formato de IBM ...

Por ejemplo, el formato CP / M es muy simple: directorio en la pista 2, sistema CP / M en la pista 0 y 1.

Soy un programador de ensamblaje experimentado, y creo que sería lógico que los sectores comiencen en cero, como lo hacen las pistas. La computadora AMSTRAD CPC también puede aceptar una unidad de disco de 5 1/4. Compré uno ayer. Pero las pistas, los sectores y los formatos serán los mismos, por supuesto, en 5 1/4 disquettes.

Olivier

PD: lo siento por mi inglés, no es mi lengua materna. ^^

Olivier Briand
fuente
A veces, algo es así porque así es. (Y tenga en cuenta que el formato de disquete se remonta a algunos de los primeros sistemas de entrada de datos de clave a disco parcialmente electromecánicos. Es decir, los ingenieros mecánicos tuvieron una mano tan grande en el diseño como los EE.)
Daniel R Hicks
40 pistas estás seguro? Eso sería un disquete de 5.25 "de una sola cara . ¿O quiere decir 40 cilindros y disquetes de doble cara? Por cierto, CP / M típicamente soportaba disquetes de 8" y 5.25 " , disquetes de una y dos caras , formatos de grabación de densidad simple y doble , y una variedad de tamaños de sector (256, 512 y 1024 eran comunes). El PC-DOS de IBM soportaba disquetes SS y DS de 5.25 "y ayuda a estandarizar 512 bytes por sector.
aserrín
1
La pregunta en su título no está vinculada al "disquete de IBM", sino que se remonta a los controladores de disquete "estándar" de IBM 3740 e IBM System 34, que se convirtieron en los estándares para formatos de grabación de densidad simple y doble. Los esquemas de numeración fueron diseñados por ingenieros de hardware e implementados para secuencias de comandos, y no diseñados por ingenieros de software o programadores.
aserrín
Ahora hay un intercambio de pila de computación retro para preguntas como esta.
CJ Dennis

Respuestas:

6

Creo que tienes una idea errónea de que las cosas con respecto a las computadoras comienzan en cero.

Si bien este es el caso con todos los lenguajes basados ​​en C (C, C ++, C #, Java, etc.) NO es cierto para algunos lenguajes que son tan antiguos o más antiguos que C (como FORTRAN y COBOL).

Dado que el Z80 se introdujo antes de ANSI C, se esperaba que ejecutara mucho más COBOL y FORTRAN que Lisp (que también es muy antiguo, pero tiene una indexación basada en cero).

Como tal, la indexación basada en uno tiene sentido.

soandos
fuente
2
El microprocesador Zilog Z80 y los lenguajes de programación que podría haber admitido no tienen nada que ver con los estándares del controlador de disquete. Los disquetes se inventaron antes de que apareciera el Z80.
aserrín
1
@sawdust, tiene mucho más que ver con los estándares en general en ese momento. Como en ese momento se esperaba que muchas cosas fueran indexadas, los disquetes también lo estaban.
soandos
44
Su "explicación" no tiene en cuenta el hecho de que el número del cilindro y el número de la cabeza están numerados desde cero, no uno.
aserrín
3

La primera especificación de los disquetes fue realizada por IBM con la aparición del IBM 3740 y no menciona que hay sectores reservados para el sistema. La única reserva para el sistema es la pista 00, que almacena solo las "Etiquetas de conjunto de datos" que identifican el tipo de información almacenada en las pistas 01 a 76. Define claramente que el primer sector es SECTOR 1. Esto no es una coincidencia sino un cuestión de numeración natural contra la numeración de la computadora.

Podemos observar que cuando un humano comienza a contar algo, no comienza con cero sino con uno. Por ejemplo, imagine que hay 135 estudiantes en un salón de clases. Contar el número sería algo así: uno, dos, tres ... ciento treinta y cuatro, ciento treinta y cinco.

Su representación numérica sería así: 1, 2, 3, ... 134, 135 Hasta ahora estamos de acuerdo, ¿verdad?

Ahora pongamos los dígitos que no están representados por 0. Se vería así: 001, 002, 003, ..., 015, 016, ..., 099, 100, ..., 133, 134, 135

Esto es lo que sucede con CHS : 0,0,1 - 0,0,2 - 0,0,3 ...

Es significativo que las filas en las hojas de Excel o los campos auto-numéricos en una base de datos comiencen por 1 y no por 0 y nadie ha dicho nada al respecto.

¿David J. Bradley programó el BIOS de esa manera?

Sí, pero no estaba fuera de juego.

Definitivamente no existe una razón técnica por la que SECTOR 0 no se pueda usar a menos que esté reservado y oculto a los usuarios por otras razones. En principio, todo apunta a que es una cuestión de numeración natural.

GA21-9152-2 Archivo Nº 3740-00,15
Sistema de entrada de datos IBM 3740

página 12
INICIALIZACIÓN DEL DISCO
... Cada disco contiene dos pistas de repuesto para reemplazar cualquier pista irregular. Además, la función de inicialización proporciona un medio para alterar la secuencia de dirección de sector en el disquete. Normalmente, la secuencia de sectores está en orden numérico (1, 2, 3, ... 25,26)
.

página 24
ETIQUETADO DE DATOS EN EL DISCO
Durante la inicialización, la etiqueta del conjunto de datos para un conjunto de datos se graba magnéticamente en la pista de índice (pista 00) del disquete. El objetivo principal de esta etiqueta es mostrar la ubicación del conjunto de datos en el disquete

Esto fue en 1973. Grabó datos en un disquete de 8 ". La PC 5150 de IBM nació el 12 de agosto de 1981 ... y no podemos olvidar que tuvieron que mantener cierta compatibilidad con los dispositivos anteriores.

Definitivamente no había ninguna razón técnica.

APO69
fuente