Herramientas de usuario

Herramientas del sitio


es:disquete_3_pulgadas

El disquete o disco flexible

discos_de_3_pulgadas.jpg

¿QUÉ ES UN DISCO?

A estas alturas todo el mundo debe haber visto alguna vez un disco de música (disco de vinilo). Su forma peculiar lo define claramente: plano, redondo y con un agujero central. Pues bien, la apariencia externa de un disco de ordenador o disquete es básicamente la misma. Los usuarios de discos de tres pulgadas pueden no creerlo, ya que sus disquetes están encapsulados en una estructura plástica rectangular que los protege, pero por dentro siguen siendo redondos.

disco_vinilo.jpg

Si embargo, el parecido entre un disco musical y otro de ordenador acaban aquí. Los discos de ordenador no guardan la información sobre un único surco espiral, y el material con el que están hechos no es el vinilo, sino una superficie plástica flexible recubierta de una capa adhesiva que sirve para fijar una sustancia magnetizable. Es ésta la que guarda la información digital bajo la forma de distintas orientaciones magnéticas de sus partículas.

El disco apareció como sustituto de las cintas magnéticas, que por su lentitud en el acceso, debido principalmente a la forma de colocar la información, no daban las suficientes prestaciones a los usuarios de ordenadores.

En principio, tal y como está un disco recién fabricado, no es en absoluto utilizable de un modo práctico por un ordenador. Esto se debe a que, para poder guardar la información y luego poder acceder fácilmente a ella, necesitamos una cierta organización previa. Para que se entienda, podemos comprar un disco virgen (tal y como está recién fabricado) con un armario-estantería en el que nos faltan precisamente los estantes. Por muy grande y robusto que sea el armario, sino podemos agrupar, separar y clasificar las cosas que queramos guardar en él, a la hora de buscar algo podemos tener serios problemas.

MODOS DE PROTECCIÓN DE UN DISCO

Los discos llevan unos orificios de protección contra escritura, cuando se cierra un orificio de protección contra escritura, puede escribirse sobre esa cara del disco y el disco se llama desprotegido contra escritura. Por el contrario si el orificio está abierto estará protegido contra escritura.

Estas protecciones según el formato del disco pueden activarse con la uña desplazando la pestaña del obturador hacia arriba (desprotegido) o hacia abajo (protegido). En otros necesitaremos la ayuda de de un bolígrafo u otro objeto para desplazar la pestaña lateralmente para proteger o desproteger el disco.

modos_de_proteccion_de_un_disco.jpg

FORMATEAR UN DISCO

Pues bien, formatear o inicializar un disco no es más que poner estanterías en el armario y etiquetar dichas estanterías, de forma que podamos acceder con rapidez y de forma organizada a lo que estemos buscando. En un disco no hablamos de estanterías, sino de sectores, y en lugar de etiquetas hablaremos de marcas de índice y del campo de identificación de los sectores o campo ID.

La superficie magnética del disco es físicamente continua, por lo que necesitaremos realizar una cierta versión de ella. La primera consideración que realizamos es la del disco como un conjunto de pistas concéntricas. Normalmente, tanto en los disquetes de tres pulgadas como en los de cinco y cuarto se delimitan cuarenta pistas por cada cara, numeradas de cero a cuarenta y nueve. Como excepción, los discos formateados en la unidad B de un PCW 8512 o PCW 8256 ampliado constarán de ochenta pistas por cada cara. En cualquier caso, siempre se considera la pista más exterior como la pista cero y la más interior como la de numeración más elevada.

La siguiente división que realizaremos será la de partir cada pista en varios fragmentos que llamaremos sectores. De este modo, cada disco se divide en pistas, y cada pista en sectores. Volviendo al ejemplo de nuestro armario, cada estantería horizontal equivaldría a una pista, y cada separación vertical que pongamos en una estantería horizontal marcaría la separación entre dos sectores.

estructura_de_un_disco.jpg

Toda esta complicación persigue un fin práctico que vamos a explicar con nuestro armario. Supongamos que lo vamos a utilizar para guardar discos. Para ello, contamos con una lista con los nombres de los cantantes de los cuales poseemos algún disco. Junto al nombre de cada cantante consta el número de estantería horizontal (pista) y el número de separación vertical (sector) en la que podremos encontrar un disco de ese cantante. De este modo, si pretendemos separar toda la colección de Plácido Domingo para dejársela a un amigo, no necesitaremos recorrer toda nuestra discoteca buscando de disco en disco. Lo que haremos será recurrir a nuestra lista y dirigirnos directamente a los estantes donde se encuentra alguno de sus discos. Si el número de discos que caben en cada estante es lo bastante reducido, la búsqueda nos llevará poco tiempo. Sin embargo, hacer los estantes demasiado pequeños puede representar inconvenientes que trataremos más adelante.

Los discos flexible poseen un agujero llamado perforación de índice, que permite situar el comienzo de una pista. Un diodo luminoso y un sensor óptico permiten determinar cuándo se ha localizado dicha perforación.

ESTRUCTURA DE UN DISCO

Todos los discos tienen dos estructuras: física y lógica. La estructura física es el propio disco, es decir, qué forma tiene, tipo de material magnético, etc. Y la lógica, es como realmente queda estructurado el disco después de haberlo formateado.

despiece_de_un_disco_de_3_pulgadas.jpg

  • La estructura física del disco

Un disco flexible es el medio magnético en el que guardamos nuestros programas. datos, textos, etc. Su forma es la de una corona circular. Al inicializarlo se divide en una serie de zonas concéntricas, a las que llamaremos pistas, cada una de las cuales se subdivide a su vez en subzonas llamadas sectores. Con los formatos de disco que utilizan los CPC y PCW cada sector puede contener 512 bytes de información, aunque este número puede alterarse, como veremos más adelante.

El número de pistas y sectores de un disco es variable: los disco de 3“ de simple densidad con formato CPC o PCW tienen 40 pistas y 9 sectores por pista (aunque también estos números pueden ser modificados), con lo que consta de 360 sectores en total y su capacidad es de 180 K (por cara).

Las pistas están numeradas del 0 al 39 y los sectores del 0 al 8 (la pista 0 es la exterior), aunque a nivel físico las pistas tienen distinta numeración para distinguir los formatos. Pero esto no afecta al manejo lógico, como veremos a continuación.

el_interior_de_un_disco_de_3_pulgadas.jpg

A veces no todo el espacio disponible en el disco puede ser utilizado por el usuario, sino que la primera o primeras pistas contienen un programa cargador del sistema operativo. Estas pistas reciben el nombre de pistas reservadas.

El conjunto de características que distinguen a unos discos de otros (número de pistas, número de sectores por pista, etc). recibe el nombre de formato de disco. Los ordenadores CPC reconocen dos formatos de disco:

  • Formato de sistema.
  • Formato de datos.

Además de éstos, el PCW reconoce también los siguientes:

  • Formato de sistema disco A.
  • Formato de sistema disco B.
  • Formato disco M.

En la siguiente tabla damos las características de casi todos estos formatos de disco.

estructura_del_dpb1.jpg

Sobre este punto hay que hacer la siguiente aclaración: Si inicializamos un disco en el PCW con el programa DISCKIT, obtendremos un disco con formato de sistema (ya sea de simple o doble densidad). Si embargo, el sistema operativo también puede leer y escribir en discos con los formatos CPC. Todos estos formatos pueden ser también utilizados por el LocoScript.

  • La estructura lógica

Como es bien sabido, el CP(M (excluido el CPC) se divide en dos partes: el BIOS y el BDOS. Desde ambas se puede manejar el disco, pero de dos formas muy distintas.

El BIOS es la parte de bajo nivel y usa la división en pistas y sectores. En el CP/M 2.2 el BIOS no usa sectores físicos, sino sectores lógicos, que reciben el nombre de registros y tienen siempre 128 bytes; en el CP/M plus usa los sectores físicos. En la siguiente tabla se pueden ver subrutinas del BIOS para el manejo de discos.

funciones_del_bdos_2.jpg

El BDOS maneja el disco usando bloques o registros. Los bloques pueden tener de 1K a 16K (en el caso de los discos de simple densidad de PCW y CPC tienen 1K y el doble densidad del PCW tienen 2K). Los registros tienen siempre 128 bytes, por razones de compatibilidad con versiones anteriores de CP/M (antiguamente los sectores físicos de los discos solían ser de 128 bytes).

Los bloques se numeran empezando por el 0 a partir de la primera pista no reservada: los primeros bloques (dos en los discos de simple densidad y cuatro en los de doble densidad) contienen el directorio, cuya estructura describiremos más adelante.

El directorio contiene el nombre de los ficheros que existen en el disco, junto con los bloques que ocupan cada uno.

Para leer o escribir en un fichero se usan registros de 128 bytes. El CP/M tiene funciones para hacer lectura y escritura tanto aleatoria como secuencial; no obstante, este método sólo permite el acceso a los registros que componen un fichero y nunca se puede acceder ni a las pistas reservadas ni a la zona del directorio, ni a los bloques no ocupados, por lo que si queremos acceder a dichas zonas hemos de usar el BIOS, por lo que no hablaremos aquí de las funciones del BDOS para el manejo de discos. Sí que hay que utilizar el BDOS, sin embargo, para llamar al BIOS, porque, al estar distribuido el sistema operativo en diferentes bancos de memoria, no se puede hacer directamente (este problema no existe en el CP/M 2.2, ya que el sistema operativo y la TPA están en un sólo banco). La función del BDOS que tenemos que utilizar es la de 32 hexadecimal, cuyas condiciones de entrada y salida se pueden ver en la siguiente tabla.

funciones_del_bdos_1.jpg

Un editor de sectores se usa principalmente para acceder directamente a la zona del directorio, por lo que vamos a estudiarla con más detalle.

El editor de sectores e sun programa que mediante unas instrucciones cambia el contenido de un disco. De esta forma podremos, por ejemplo, poner vidas infinitas a un juego, recuperar información perdida y otras muchas utilidades. Un ejemplo de editor de discos es el extendido y conocido Knife.

Cada bloque de directorio se divide en entradas de 32 bytes, cada una de las cuales tiene la estructura detallada en la siguiente tabla.

estructura_del_fcb.jpg

Destacaremos varias cosas en ella:

A) El número de usuario puede valer de 0 a 15; esto permite tener los ficheros divididos en 16 zonas distintas (LocoScript, por ejemplo, deja los grupo 0 al 7 para usuario y los otros 8 grupos para el limbo).

Cuando se borra un fichero se cambia el número de usuario a E5; esto permite recuperar un fichero que se acaba de borrar, sin más que cambiar, mediante un editor de sectores, dicho número por el deseado. Para que la recuperación sea posible no se debe haber escrito nada en el disco después del borrado, ya que en otro caso los bloques que usaba el fichero borrado pueden haber sido usados para grabar un nuevo fichero, en cuyo caso el fichero borrado es irrecuperable.

Además de los anteriores, pueden aparecer números de usuario del 16 al 32 si se ha definido etiqueta para el disco y palabras de acceso (password). No es recomendable hacerlo, porque dichos discos no son compatibles con LocoScript ni con AMSDOS.

B) Cada entrada de directorio puede contener a lo sumo 16 K (16 bytes para bloques por 1K/bloque); por tanto, todo fichero con un tamaño mayor de 16 K ocupará varias “extensiones”, que se diferencia en el byte de extensión (las extensiones se numeran 0, 1, 2, …). Si se quiere desborrar un fichero de más de 16 K se deben buscar y desborrar todas sus extensiones.

C) Si el número máximo de bloque es mayor que 255 (cosa que ocurre en los discos de doble densidad del PCW), los números de bloque ocupan 2 bytes (en orden bajo-alto). Por ejemplo, si un fichero ocupa los bloques 3 y 4 en la correspondiente lista de bloques aparecerá 03 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00.

Esto hay que tenerlo en cuenta, por ejemplo, si se quiere editar un bloque defectuoso de un fichero. Además se ha de tener en cuenta el tope de 16 K por extensión, que hace que los bloques deban ser al menos de 2K (caso de los discos de doble densidad del PCW).

D) Los atributos de un fichero se almacenan en el bit superior de los 8 bytes del nombre y los 3 del tipo (en todas sus extensiones).

Los atributos de las cuatro primeras letras del nombre pueden ser usados libremente por el usuario; los correspondientes a las otras cuatro son usados por el CP/M plus para el manejo del fichero (en el CP/M 2.2 están reservados para su uso por el CP/M plus): Los tres del tipo son, por orden, los siguientes:

  • Atributo de sólo lectura.
  • Atributo de sistema.
  • Atributo de archivo.

Por tanto, los tres bytes correspondientes al tipo de un fichero de tipo COM de sólo lectura serán C3(=80+43),4F,4D. Esto hay que tenerlo en cuenta a la hora de buscar un fichero; también se puede emplear para cambiar los atributos del fichero, pero para eso es más cómodo emplear el programa SET.

Para pode adaptarse a los diferentes formatos, el BDOS guarda en una tabla las características de cada uno de ellos. Esta tabla recibe el nombre de bloque de parámetros del disco (DPB), y podemos acceder a ella a través de la llamada 1F al BDOS; vista anteriormente en la tabla al igual que su estructura.

ESTRUCTURA DEL DIRECTORIO CP/M

En el caso de un disquete, cuando salvamos un programa el Sistema Operativo mira en la lista para ver qué sectores hay libres, escribe en ellos el programa y actualiza la lista, incluyendo en ella el nombre del programa y los números de sector y pista que ocupa. A la lista mencionada se la conoce con el nombre de Directorio del disco, y presenta la peculiaridad de que se guarda dentro del propio disco, normalmente en las primeras pistas, dependiendo su situación exacta del formato que tenga cada disco.

En algunos casos la primera o primeras pistas del disco están reservadas, precisamente para albergar parte del Sistema Operativo. Así, en los Amstrad CPC, las pistas cero y uno están reservadas. En los PCW sólo está reservada la pista cero. En cualquier caso, tras la última pista reservada comienza el directorio, cuyo tamaño depende de la capacidad del disco.

En el CP/M, tanto en su versión 2.2 como en el CP/M Plus, cada entrada de directorio (cada nombre de cantante con las direcciones de sus discos) ocupa treinta y dos bytes, que se distribuyen de la forma siguiente:

  • Byte 0: Indica el área de usuario a la que pertenece el fichero. Si su valor es hexadecimal E5, se trata de un fichero borrado.
  • Bytes 1 a 11: Contienen los caracteres ASCII que forman el nombre y la extención del fichero. No se incluye en el directorio del punto que separa los ochos caracteres del nombre de los tres del tipo.
  • Byte 12: Indica el número de extensión. Como veremos en seguida, cada entrada de directorio puede indicar un máximo de dieciséis bloques, por lo que sólo podríamos manejar ficheros de hasta 16 x 1024 = 16 KBytes. Para evitar esta limitación, cuando un fichero ocupa más de 16 K se divide en tantos grupos de 16 K como sea necesario, y se utiliza una entrada de directorio para cada grupo. A estos grupos se les llama extensiones (en inglés, extents), ocupando cada extensión una entrada de directorio y recibiendo todas el mismo nombre y el mismo número de usuario. Pues bien, este byte 12 indica el número de extensión. Las extensiones se comienzan a numerar a partir de cero.
  • Byte 13: No se utiliza.
  • Byte 14: Se utiliza como parte del contador de extensiones cuando es necesario. Dada la capacidad normal de los disquetes, con un máximo de 720 K, no es necesario utilizarlo, ya que el byte 12 puede contar hasta 256 extensiones = 4096 K.
  • Byte 15: Indica el número de registros que forman un fichero. Para CP/M un registro está formado por 128 bytes, por lo que un sector de 512 bytes caben 4 registros.
  • Bytes 16 a 31: Estos dieciséis bytes indican cada uno el número de un bloque utilizado por el fichero. En los CPC y el disco A del PCW cada cada bloque es de 1K, esto es, 2 sectores de 512 bytes. En el disco B del PCW cada bloque es de 2 K, que son 4 sectores de 512 bytes. Si nos referimos a sectores de 512 bytes es porque tanto en los CPC como en los PCW, al formatear el disco se fragmenta cada pista en nueve sectores de 512 bytes.

En lo referente al tamaño de las extensiones, resulta evidente que en el caso de un disco B de PCW, al ser cada bloque de 2 K, como podemos direccionar por cada entrada de directorio hasta 16 bloques, las extensiones tendrán un tamaño de 2 x 16 = 32 K.

Resumiendo lo visto hasta ahora, vemos que CP/M trabaja básicamente a dos niveles, el de registros de 128 bytes, que es la unidad de información que consideran las rutinas de lectura y escritura de disco, y el de bloques de uno a dos Kilobytes, que es la unidad de información que utiliza el directorio. hay que tener en cuenta que el Sistema Operativo AMSDOS utiliza la misma estructura de directorios que el CP/M, por lo que lo dicho hasta ahora se puede aplicar también a este S.O.

Puede resultar paradójico que los sectores del disco sean de 512 bytes y el CP/M utilice registros de 128 bytes, pero este se debe a motivos históricos y se ha mantenido así para asegurar la compatibilidad con el software escrito anteriormente.

EL BLOQUE DE PARÁMETROS DE DISCO (DPB)

El Sistema Operativo incorpora una serie de rutinas que realizan la adaptación entre la estructura física del disco (sectores de 512 bytes con unos números de identificación que dependen de cada formato) y la estructura lógica del disco (registros de 128 bytes). Estas rutinas utilizan una tabla de datos que definen las características del formato del disco que se está utilizando en ese momento. A esta tabla se la conoce como DPB (Bloque de Parámetros de Disco), y su estructura está en la siguiente tabla.

tabla_parametros_de_disco.jpg

CONTROLADOR DEL DISCO FLEXIBLE

Los ordenadores Amstrad utilizan un chip FDC 765 de NEC. Se trata de un controlador de disco flexible (Floppy Disc Controller) muy potente y que puede funcionar tanto en modo DMA (acceso a directorio a memoria, independientemente del microprocesador) como de forma dependiente del microprocesador. En los Amstrad, por limitaciones del hardware, no se trabaja en el modo DMA (excepto en los PC 1512).

Una característica de este controlador es que con solo darle unos pocos datos, se encarga él solo de formatear una pista completa.

nec_d765ac_chip.jpg

LOS TRES FORMATOS DE DISCO

Los Amstrad CPC y PCW pueden utilizar tres formatos de disco. El conocido como sistema, que utilizan los CPC para soporte del CP/M, se caracteriza por disponer de nueve sectores de 512 bytes en cada pista, numerados de este modo: 41 46 42 47 43 48 44 49 45 (estos números son hexadecimales).

El formato del sistema que utiliza el PCW se caracteriza por disponer de nueve sectores de 512 bytes numerados: 01 06 02 07 03 08 04 09 05 y el formato DATA o de datos que consta también de nueve sectores de 512, numerados C1 C6 C2 C7 C3 C8 C4 C9 C5.

ARRANCANDO EN PRIMERA

Muchas veces se habrán leído frases relativas a “arrancar en frío el Sistema Operativo”. Esto se refiere simplemente a una operación tan sencilla como encender el ordenador e introducir el disco que contiene el Sistema Operativo.

¿Qué ocurre cuando hacemos esto? Muy sencillo. En el interior del ordenador, grabado en ROM, hay un pequeño programa que se encarga de reconocer el formato del disco leyendo una ID (Identificador) de sector de la pista cero. Si el formato es el adecuado, carga el primer sector de la pista cero y lo ejecuta.

En este primer sector se encuentran las instrucciones necesarias y suficientes para cargar en la memoria la parte necesaria de las pistas reservadas para el sistema, y que contienen precisamente eso, el Sistema Operativo. Una vez cargado, se sitúan las diversas partes del S.O. en un sitio y se da el control de la situación al Sistema Operativo. En el caso de los Amstrad PCW y de los CPC con el CP/M Plus, el Sistema Operativo no se toma de las pistas reservadas, sino de un fichero con extensión “EMS”, abreviatura de Early Morning Start-up (Arranque por la mañana temprano).

Ese sector de la pista reservada se conoce como Boot-sector (sector de botado), y se carga en la dirección hexadecimal 0100. Como una vez cargado se ejecuta una instrucción JP 0100, podemos utilizar una rutina diseñada por nosotros y guardada en el sector de botado para arrancar un programa.

La única limitación que presenta esta forma de arranque es que la rutina contenida en el sector de botado no puede sobrepasar el tamaño del sector, que en el caso de los CPC y PCW es de 512 bytes.

Como podemos comprobar, los Sistemas Operativos forman un mundo muy complejo.

es/disquete_3_pulgadas.txt · Última modificación: 2017/02/12 16:37 por jevicac