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. ^^
Respuestas:
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.
fuente
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.
fuente