Está en la página 1de 49

Controlador de Floppy Disk

Alejandro Furfaro
Progrmacin Sistemas Operativos o

28 de Abril de 2011 - 1c2011

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

1 / 49

Temario
1

El Floppy Disk Introduccin o El Floppy Disk Drive (FDD) El Floppy Disk Controller (FDC) Arquitectura del FDC Registros del 765 Registros agregados en la AT y PS/2 Registros Agregados en la PS/2 Programacin del FDC o Fases del Controlador Comandos Guias de programacin o Handshake en la fase de Comandos y Resultados

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

2 / 49

El Floppy Disk

Introduccin o

Que es un controlador de Floppy disk

El controlador de Floppy Disk est basado en un viejo controlador de a NEC: el PD765. Intel introdujo a posteriori un par de controladores mas modernos pero compatibles: el 82072A utilizado en las PCs basadas en procesadores 80286 y posteriores y el 82077A para los modelos denominados IBM PS/2. Este curso abarca el hardware de PCs. Por lo tanto no nos enfocaremos demasiado en las particularidades de los sistemas PS/2 ya que estos sistemas no han perdurado.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

3 / 49

El Floppy Disk

Introduccin o

Diagrama General

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

4 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Componentes
El Drive (disquetera) tiene cinco componentes bsicos a Cabezas de Lecura/Escritura: Se trata de un arreglo de dos cabezas similiares a las cabezas lectoras de cintas, ubicadas a ambos lados del disco. Se mueven en conjunto. Motor del Drive: Se trata de un pequeo motor de Corriente Cont n nua que engrana al disco en una ranura de su centro metlico y lo hace girar a t picamente a 360 Rotaciones por minuto (RPM). Motor paso a paso (Stepper): Calibrado con un eje a rosca, hace mover con precisin el ensamble de cabezas de lectura/escritura a la pista exacta o que ha seleccionado en controlador. El armado de cabezas est mecnicamente ensamblado al eje de este motor. a a Estructura Mecnica: Conjunto de piezas mecnicas que abren la pequea a a n ventana del disquete para que las cabezas puedan acceder a la supercie magnetica del disco, mas el botn que permite eyectar el disco, etc. o Circuiter Toda la electrnica necesaria para manejar las seales que se a: o n leen y escriben en el disco, para accionar elctricamente a los dos motores y e regular su velocidad y detencin y ubicar las cabezas en el disco. o
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 5 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Cabezal de Lectura Escritura

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

6 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Ceros y Unos: Inversiones de ujo magntico e


Para entender como se graba la informacin en la supercie de un disco no o hay que pensar en trminos de unos y ceros , ya que no es posible e magnetizar o desmagnetizar la supercie. La distancia sobre la que se graba la informacin no es uniforme, de acuerdo o a que pista se quiera grabar. No se puede denir un per odo de tiempo jo para grabar un uno o un cero. Es posible, sin embargo, grabar inversiones de ujo. Son pequeos gaps de n no magnetizacin que separan dos supercies magnetizadas con diferente o polaridad.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

7 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Mtodos de grabacin e o
FM (Modulacin de Frecuencia): o Graba un pulso de clock por cada bit. Se usa en los oppys viejos de Simple Densidad.

MFM (Frecuencia Modulada Modicada): Los clocks solo se graban entre dos ceros consecutivos.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

8 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Estructura de pista y sector


Al principio la divisin entre sectores de una pista se efectuaba por hardware: o ard Sectoring. En la parte mas interna de la supercie del disco una serie de oricios permit leer un led que estaba debajo de la supercie a un sensor a ubicado encima de la supercie. Cada lectura de luz inicaba el inicio de un sector. Con el tiempo los discos evolucionaron y solo requieren un oricio al inicio del sector 0 para indicar una referencia y luego se agrega informacin o adicional a cada bloque de datos para delimitar el resto de los sectores. Esta tcnica se denomina Soft Sectoring. e

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

9 / 49

El Floppy Disk

El Floppy Disk Drive (FDD)

Soft Sectoring
Vlido para MFM (los viejos oppys tienen a otra conformacin en cantidad de bytes y o en sus valores) Los bytes 0xa1 tienen una transicin clock o perdida entre los bit 4 and 5 y precongura el CRC. EL CRC es un algoritmo mas sosticado que el checksum En estos controladores se utiliza un polinomio estandarizado por el CCITT: g (x) = 1 + x 5 + x 12 + x 16 El algoritmo ver al contenido a analizar a como un ujo continuo de bits (stream), tomando de a 16 (mismo grado del polinomio), y xoreando amos valores. El polinomio se desplaza a la derecha a travs e del stream, hasta llegar al nal.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

10 / 49

El Floppy Disk

El Floppy Disk Controller (FDC)

Diagrama interno

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

11 / 49

El Floppy Disk

El Floppy Disk Controller (FDC)

Mapeo del Controlador en el espacio de E/S


La conguracin mas general ocupa seis direcciones de Entrada o Salida. Cada equipo viene con dos controladores de Floppy disk. A continuacin las direcciones que presenta el FDC al procesador o dentro del mapa de E/S.
Register Base Address Status Register A (PS/2) Status Register B (PS/2) Digital Output Register (DOR) Main Status Register Data Rate Select Register (DSR) (PS/2) Data Register Digital Input Register (DIR) Conguration Control Register (DIR) Primary Address 0x3F0 0x3F0 0x3F1 0x3F2 0x3F4 0x3F4 0x3F5 0x3F7 0x3F7 Secondary Address 0x370 0x370 0x371 0x372 0x374 0x374 0x375 0x377 0x377 Write (W)Read (R) R R W R W R/W R W

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

12 / 49

Arquitectura del FDC

Ideas...

enum F l o p p y R e g i s t e r s { STATUS REGISTER A STATUS REGISTER B DIGITAL OUTPUT REGISTER TAPE DRIVE REGISTER MAIN STATUS REGISTER DATARATE SELECT REGISTER DATA FIFO DIGITAL INPUT REGISTER CONFIGURATION CONTROL REGISTER };

= = = = = = = = =

0 x3F0 , 0 x3F1 , 0 x3F2 , 0 x3F3 , 0 x3F4 , 0 x3F4 , 0 x3F5 , 0 x3F7 , 0 x3F7

// r e a d o n l y // r e a d o n l y

// r e a d o n l y // w r i t e o n l y // r e a d o n l y // w r i t e o n l y

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

13 / 49

Arquitectura del FDC

Registros del 765

Digital Output Register (DOR)

Bit MOT EN3, MOT EN2, MOT EN1, MOT EN0

DMA GATE

RESET

DRIVE SEL0

SEL1,

DRIVE

Descripcin o Control de Motor para oppy drive D, C, B, A. 1=Start motor 0=Stop motor. Se setea el bit correspondiente a la vez que se escribe el nmero de Drive en los bits DRIVE SEL1, DRIVE u SEL0. Es de prctica setear el conjunto MOT ENi junto con a DRIVE SEL0 y DriveSEL 1, de una sola vez. Habilita las interfaces de DMA e IRQ. 1=Enabled, 0=Disabled. Cuando se deshabilita, los terminales DACK, DRQ, TC, e INT se ponen en three state (Impedancia infnita) Controller reset. No afecta a este registro, pero inicializa el resto del controlador incluida la FIFO. 1=Controller enabled 0=Execute controller reset Drive select. 00=drive 0 (A) 01=drive 1 (B) 10=drive 2 (C) 11=drive 3 (D)

Notas: Un drive no puede ser seleccionado (Bits 0 y 1) a menos que su motor est ON. e La mayoria de los sistemas no soporta los drives C y D. Cuando RESET = 0, no se aceptan comandos y se env un reset general a todos los sistemas y registros del a FDC (excepto a DOR) Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 14 / 49

Arquitectura del FDC

Registros del 765

Ejemplos de acceso al DOR

Arrancar el motor del drive A, utilizando DMA e Interrupciones, Controlador habilitado, y Seleccionar drive 00)
mov a l , 00000001 b mov dx , 0 x 3 f 2 out dx , a l

Resetear el controlador:
mov a l , 00000000 b mov dx , 0 x 3 f 2 out dx , a l

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

15 / 49

Arquitectura del FDC

Registros del 765

Issues: Velocidad del Motor


Cuando encendemos un motor de un oppy drive, el controlador se toma algunos milisegundos para estabilizar la velocidad del motor, al valor necesario para la transferencia de datos. Si bien la electrnica del contolador puede manejar variaciones considerables en la o velocidad de rotacin, todo tiene un l o mite. Si inmediatamente luego de encender el motor nos ponemos a leer o escribir datos, obtendremos un bonito error ya que el PLL no lograr estabilizar la seal de datos. a n Una vez completado el acceso (lectura o escritura), t picamente se espera 2 seg en apagar el motor. Si se busca un control mas inteligente se pollea hasta que la cabeza se pose nuevamente en el track 0 del disco. Mas tiempo puede generar en el usuario la idea de que el oppy an u est trabajando. a Se lo deja ON ya que el driver no sabe si hay en la FIFO encoladas mas operaciones dde lectura / escritura pendientes. As no deber stas esperar a an e estabilizar la velocidad nuevamente. 300 millisegundos de delay al encender el motor de un oppy de 3.5, deber ser a mas que suciente. En general con 50 mseg. alcanza
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 16 / 49

Arquitectura del FDC

Registros del 765

Main Status Register (MSR)

Bit RQM

DIO

NDMA CMD BUSY

DRV3 BUSY, DRV2 BUSY, DRV1 BUSY, DRRV0 BUSY

Descripcin o Indica al procesador si es posible ejecutar una transferencia de datos con el FDC. 1=Data Register Ready 0=Data Register Not Ready Indica la direccin de la prxima transferencia. o o Solo es signicativo si RQM=1. 1=Lectura (Controlador > CPU), 0=Escritura (CPU > Controlador) Modo No DMA. 1=Controller no est en modo a DMA, 0=Controlador en modo DMA Comando en proceso. Se pone en 1 hasta que el comando termine, incluida la fase de resultado. Si no hay fase de resultado (SEEK, RECALIBRATE, por ej.), vuelve a cero luego de culminada la fase de ejecucin. Si est en 0 no hay comando en o a curso de ejecuccin. o Drive Busy. Estos bits se setean solo cuando un drive est en la porcin SEEK de un comando, a o (inclutendo RECALIBRATE).

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

17 / 49

Arquitectura del FDC

Registros del 765

Ejemplos de acceso al MSR

Testear si el controlador est listo para recibir un comando o un dato, a requiere conocer RQM, y DIO.
mrqloop : mov dx , 03 f 4 h i n a l , dx and a l , 11000000 b cmp a l , 10000000 b j n e mrqloop

Puede ser que se requiere chaequear otras opciones y no solo la dosponibilidad para un comando y entonces solo hay que modicar la mscara de bits de la and. a

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

18 / 49

Arquitectura del FDC

Registros del 765

Data register (FIFO)


Es un registro de 8 bits provee acceso indirecto al stack de registros. Como un comando puede tener hasta 9 bytes de largo, el primero de los cuales indica al controlador cuantos mas bytes debe esperar, este registro en modo FIFO puede buerear el comando completo. El controlador env estos bytes del comando al registro que a corresponde en el stack evitndole al programador usar un a ndice de registros por cada comando. El controlador i82077A e particular, tiene un buer con un umbral programmable que permite transferirle varios bytes a la vez, para acelerar las transferencias de comandos y datos, mejorando el tiempo de respuesta en relacin al PD765. o Si lo que enviamos es un comando, puede haber retornos de valores dentro de la fase de resultados del comando.
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 19 / 49

Arquitectura del FDC

Registros agregados en la AT y PS/2

Digital Input Register (DIR)


DIR para PCs AT

DSKCHG monitorea el pin homnimo del FDC y reeja el valor o opuesto que lee del cable del disco, sin importar el valor de INVERT DIR para PS/2

DRATE SEL1-0 retornan el valor actual de la velocidad de datos seleccionada HIGH DENS es 0 siempre que se haya seleccionado una velocidad de trasnferencia de 500 Kbps o 1 Mbps.
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 20 / 49

Arquitectura del FDC

Registros agregados en la AT y PS/2

Conguration Control Register (CRR)


En los modelos compatibles para PCs AT se llama DSR.

Los bits remanentes van en 0. Data Rate como en la tabla al pie. CCR para PS/2

NOPREC es puesto a 0 luego de un RESET por hardware

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

21 / 49

Arquitectura del FDC

Registros Agregados en la PS/2

Status Register A (SRA)

Bit INT PENDING DRV2 STEP TRK0 HDSL INDX WP DIR

Descripcin o Indica al procesador si el controlador tiene una IRQ pendiente de atencin (activa). 1=Activa, 0=No activa o 1=Un solo drive conectado, 0=DOs drives conectados 1=Pulso enviado al stepper, 0=No se envi pulso al stepper o 1=La cabeza est encima del track 0, 0La cabeza est en a a cualquier otra pista del disco Selector de Cabezal.0=head0, 1=Head1 Index Mark Detected. 0= Detectada, 1=No detectada. Write Protection. 0=Disco protegido contra escritura, 1=Disco No protegido contra escritura. Direccin de la cabeza. 0=Hacia cilindros externos (Numricao e mente menores), 1=Hacia cilindros internos (Numricamente e mayores).

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

22 / 49

Arquitectura del FDC

Registros Agregados en la PS/2

Status Register B (SRB)

Bit DS0 WDAT RDAT WE MOT1, MOT0

Descripcin o Drive 0 Seleccionado. 1=Drive0, 0=Cualquier otro Write Data. 1=Se puede transferir datos al drive, 0=No se puede transferir datos al drive. Read Data.1=Se puede leer datos del drive, 0=No se puede leer datos desde el drvive. Write Enabled. 1=La cabeza est activada para escrituras, a 0La cabeza est ubicada para lectura. a Motor of drive 1, 0.0=Motor apagado, 1=Motor encendido

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

23 / 49

Programacin del FDC o

Fases del Controlador

Mquina de estados a

Fase de Comandos Luego de un reset o cuando se enciende el equipo, el FDC ingresa en esta fase. Fase de Ejecucin Es en la fase que ocurren las transferencias de datos, o producto de los comandos enviados en la fase previa. Fase de Resultados Se ingresa aqui lugo de generada la Interrupcin, para o devolver los resultados de las transferencias.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

24 / 49

Programacin del FDC o

Fases del Controlador

Fase de Comandos

Los comandos se denen en la seccin previa y consisten en diferentes o secuencias de bytes que deben ser enviados en el orden establecido. Antes de escribir un comando el sofware debe examinar los bits MSR.RQM, y MSR.DIO que deben estar en 1 y 0 respevtivamente para poder acceder. A menos que se haya enviado un comando ilegal, luego de recibido correctamente el ultimo byte MSR.RQM se pone en 0 y se ingresa en la fase siguiente, denida para cada comando (Transferencia o Resultado). Durante esta fase se deshabilita la FIFO Read del controlador

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

25 / 49

Programacin del FDC o

Fases del Controlador

Fase de Ejecucin o
Todos los comandos recibidos en la fase anterior puede ejecutarse en Modo DMA o NO-DMA. Dependiendo de ello se solicita al procesador transferir un byte activando el pin INT o DRQ.
Transferencias NO-DMA desde la FIFO hacia la CPU.Cuando el FIFO contiene (16-umbral) bytes listos para transferir, se setea MSR.RQM, y se activa el pin INT. Cuando se vac la FIFO, INT y MSR.RQM, se desactivan a solos. Transferencias NO-DMA desde la CPU hacia la FIFO.Se setea MSR.RQM, y se activa el pin INT como respuesta al comando. Cuando el FIFO contiene (16-umbral) bytes listos para transferir, (full) se desactivan solos. Transferencias DMA desde la FIFO hacia la CPU.Cuando el FIFO contiene (16-umbral) bytes listos para transferir, se activa el pin DRQ. El Controlador de DMA termina de leer el ultimo byte transferencia y activa el pin DACK del controlador. Al recibir DACK el FDC desactiva DRQ. Transferencias DMA desde la CPU hacia la FIFO.Cuando el FDC est listo a para la transferencia luego de haber recibido el comando activa DRQ. El Controlador de DMA activa los pines de escritura y DACK y escribe un byte en la FIFO. El FDC deja el pin DRQ activo hasta que la FIFO est llena. e
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 26 / 49

Programacin del FDC o

Fases del Controlador

Fase de Resultados

Los bits MSR.RQM y MSR DIO deben estar en 1 antes de que el resultado se lea de la FIFO. Una vez le el resultado vuelven al estado 1 0 respectivamente. do Adems se pone en 0 MSR.CMD BSY para indicar que el a controlador est desocupado. a

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

27 / 49

Programacin del FDC o

Comandos

Estructura

Los comandos se env al FDC en la Fase de comandos. an Cada comando tiene un set de parmetros que se escriben en el FDC a como una secuencia de bytes. El FDC analiza el primer byte del comando para chequear que se trate de un comando vlido. a Si es vlido toma el resto, procede a ejecutarlo y devuelve una fase de a estados y un set de resultados.

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

28 / 49

Programacin del FDC o

Comandos

Informacin de estado de un comando: ST0 o

7 IC1
Bit ICx

6 IC0

5 SE

4 UC

2 H

1 US1

0 US0

SE EC

H DSx

Descripcin o Interrupt Code. 00 = Terminacin normal del comando. 01 = Terminao cin anornal: el comando se inici pero no puedo terminar. 10 = Comando o o Invlido. 11 = Terminacin anormal causada por polling.. a o Seek End. El FDC completo un comando SEEK o RECALIBRATE, o un comando READ o WRITE que implicaron un seek. Equipment Check. El Pin TRK0 no pudo seterase en 1, luego de 80 pulsos al stepper en un comando RECALIBRATE, o si un comando SEEK RELATIVE llev el cabezal mas all del Track 0. o a No se utiliza, normalmente devuelve 0. Head Address. Devuelve la direccin del Cabezal en uso. o Drive Select.Devuelve el nmero de Drive seleccionado u

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

29 / 49

Programacin del FDC o

Comandos

Informacin de estado de un comando: ST1 o


7 EN
Bit EN

5 DE

4 OR

2 ND

1 NW

0 MA

DE OR ND

NW

MA

Descripcin o End Of Cilynder. Indica que el FDC intent acceder a un sector mas all del o a nal de una pista. Puede setearse en respuesta a una ausencia de Terminal Count desde el DMA en respuesta a un comando READ o WRITE. No se utiliza, normalmente devuelve 0. Data Error. El FDC detect un error en el CRC del campo ID o en el campo o de Datos del sector. Overrun / Underrun. Se pone en 1 para indicar que el procesador o el DMA Controller no ha atendido al FDC y en consecuencia se pis o perdi un dato. o o No se utiliza, normalmente devuelve 0. No Data. Vale 1 si: los comandos READ DATA READ DELETED DATA no encuentran el sector que se les especic, o si el comando READ ID no o puede leer el ID del sector sin error, o si READ TRACK no puede encontrar la secuencia de sectores correcta No Writable. Este bit devuelve 1, si mientras el FDC est ejecuntando un a comando WRITE DATA, WRITE DELETED DATA, o FORMAT TRACK, el pin WP se pone en 1. Missing Address Mark. Indica que el FDC no encuentra el ID Address Mark de la pista especicada, luego de recibir por dos veces por el pin IDX el pulso Index, o si no puede detectar la marca de direccin de la pista. o
Controlador de Floppy Disk 28 de Abril de 2011 30 / 49

Alejandro Furfaro (PSO - DC)

Programacin del FDC o

Comandos

Informacin de estado de un comando: ST2 o


7
Bit CM

6 CM

5 DD

4 WC

1 BC

0 MD

DD WC BC

MD

Descripcin o No se utiliza, normalmente devuelve 0. Control Mark. Indica que o bien a consecuencia de un comando READ DATA se encontr una marca de direccin de dato borrado, o bien que un READ o o DELETED DATA encontr una marca de direccin de datos. o o Data Error in Data Field. El FDC detect un error en el CRC del campo de o Datos del sector. Wrong Cylinder. La direccin de pista le del ID del sector no coincide con o da la mantenida por el FDC. No se utiliza, normalmente devuelve 0. No se utiliza, normalmente devuelve 0. La direccin de pista le del ID del sector no coincide con la mantenida por o da el FDC, y es igual a 0xFF que indica pista errnea con un error de hardware o de acuerdo con el formato de soft-sectoring de IBM. Missing Address Data Mark. Indica que no se puede detectar la marca de direccn de dato o la marca de direccin de dato borrado. o o

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

31 / 49

Programacin del FDC o

Comandos

Informacin de estado de un comando: ST3 o

7
Bit WP T0 HD DSx

6 WP

4 T0

2 HD

1 DS1

0 DS0

Descripcin o No se utiliza, normalmente devuelve 0. Write Protected. Indica el estado del bit WP. No se utiliza, normalmente devuelve 1. Track 0. Indica el estado del pin T0. No se utiliza, normalmente devuelve 1. Head address. Indica el estado del pin HDSEL. Drive Select. Indica el estado de los pines DS1 y DS0 .

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

32 / 49

Programacin del FDC o

Comandos

READ DATA: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

33 / 49

Programacin del FDC o

Comandos

READ DELETED DATA: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

34 / 49

Programacin del FDC o

Comandos

READ TRACK: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

35 / 49

Programacin del FDC o

Comandos

READ: Desarrollo del comando


Descripcin o Multi Track. Cuando es 1, habilita al FDC a tomar ambas pistas de cada lado como un cilindro unico, considerando a todos los sectores como una pista unica. Util en tranferencias multisector. MFM Mtodo de grabacin de la informacin: 1=MFM (Doble densidad), e o o 0=FM. SK Skip Bit. 1 implica que saltear en operaciones READ cualquier dato con a marca de datos borrado. HDS Selecciona cabeza 0 o 1 de acurdo a su valor (0 o 1) DSx Seleccionan el drive (00=Drive 0... 11=Drive3) Byte C H R N EOT GPL DTL Descripcin o Nro. de cilindro (0-255) Cabezal (0 o 1) Nro.de sector Tamao del sector (00:128 bytes, 01:256 bytes, 02:512 bytes, 03:1024 bytes, n .... 07:16Kbytes) End Of Track. Nro de sector nal de la pista actual GAP Length. Tamao del GAP 3 n Tamao especial de sector. Si N=00, DTL permite controlar la cantidad n de bytes a transferir. Si N DPL se lee el sector completo y se chequea su CRC pero solo se pasan DPL bytes al procesador. Si N != 00 DPL no tiene signicado y debe valer 0xFF
Controlador de Floppy Disk 28 de Abril de 2011 36 / 49

Bit MT

Alejandro Furfaro (PSO - DC)

Programacin del FDC o

Comandos

READ: Respuesta

Luego de los bytes ST0, ST1, y ST2, el comando READ devuelve los valores de las direcciones de Cilindro, Cabezal, Sector, y el tamao de n sector que recibi en el comando. Es para poder veriacr en el software o que se est leyendo lo mismo que se solicit. a o
Byte C H R N Descripcin o Nro. de cilindro (0-255) Cabezal (0 o 1) Nro.de sector Tamao del sector (00:128 bytes, 01:256 bytes, 02:512 bytes, 03:1024 bytes, n .... 07:16Kbytes)

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

37 / 49

Programacin del FDC o

Comandos

WRITE DATA: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

38 / 49

Programacin del FDC o

Comandos

WRITE DELETED DATA: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

39 / 49

Programacin del FDC o

Comandos

WRITE: Desarrollo del comando


Descripcin o Multi Track. Cuando es 1, habilita al FDC a tomar ambas pistas de cada lado como un cilindro unico, considerando a todos los sectores como una pista unica. Util en tranferencias multisector. MFM Mtodo de grabacin de la informacin: 1=MFM (Doble densidad), e o o 0=FM. HDS Selecciona cabeza 0 o 1 de acurdo a su valor (0 o 1) DSx Seleccionan el drive (00=Drive 0... 11=Drive3) Byte C H R N EOT GPL DTL Descripcin o Nro. de cilindro (0-255) Cabezal (0 o 1) Nro.de sector Tamao del sector (00:128 bytes, 01:256 bytes, 02:512 bytes, 03:1024 bytes, n .... 07:16Kbytes) End Of Track. Nro de sector nal de la pista actual GAP Length. Tamao del GAP 3 n Tamao especial de sector. Si N=00, DTL permite controlar la cantidad n de bytes a transferir. Si N DPL se lee el sector completo y se chequea su CRC pero solo se pasan DPL bytes al procesador. Si N != 00 DPL no tiene signicado y debe valer 0xFF Bit MT

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

40 / 49

Programacin del FDC o

Comandos

WRITE: Respuesta

Luego de los bytes ST0, ST1, y ST2, el comando WRITE devuelve los valores de las direcciones de Cilindro, Cabezal, Sector, y el tamao de n sector que recibi en el comando. Es para poder veriacr en el software o que se escribi lo mismo que se solicit. o o
Byte C H R N Descripcin o Nro. de cilindro (0-255) Cabezal (0 o 1) Nro.de sector Tamao del sector (00:128 bytes, 01:256 bytes, 02:512 bytes, 03:1024 bytes, n .... 07:16Kbytes)

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

41 / 49

Programacin del FDC o

Comandos

VERIFY: Formato

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

42 / 49

Programacin del FDC o

Comandos

VERIFY: Desarrollo del comando


Bit MT Descripcin o Multi Track. Cuando es 1, habilita al FDC a tomar ambas pistas de cada lado como un cilindro unico, considerando a todos los sectores como una pista unica. Util en tranferencias multisector. Mtodo de grabacin de la informacin: 1=MFM (Doble densidad), 0=FM. e o o Skip Bit. 1 implica que saltear en operaciones READ cualquier dato con a marca de datos borrado. Enable Count. Cuando este bit es 1 el parmetro DTL de la respuesta se a debe interpretar como SC (Nmero de sectores por track). u Selecciona cabeza 0 o 1 de acurdo a su valor (0 o 1) Seleccionan el drive (00=Drive 0... 11=Drive3)

MFM SK EC HDS DSx Byte C H R N

Descripcin o Nro. de cilindro (0-255) Cabezal (0 o 1) Nro.de sector Tamao del sector (00:128 bytes, 01:256 bytes, 02:512 bytes, 03:1024 bytes, .... n 07:16Kbytes) EOT End Of Track. Nro de sector nal de la pista actual GPL GAP Length. Tamao del GAP 3 n DTL/EC Tamao especial de sector. Si N=00, DTL permite controlar la cantidad de n bytes a transferir. Si N DPL se lee el sector completo y se chequea su CRC pero solo se pasan DPL bytes al procesador. Si N != 00 DPL no tiene signicado y debe valer 0xFF
Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk 28 de Abril de 2011 43 / 49

Programacin del FDC o

Comandos

RECALIBRATE, SEEK, y SENSE DRIVE STATUS: Formatos

Bit HDS DSx Byte NCN

Descripcin o Selecciona cabeza 0 o 1 de acurdo a su valor (0 o 1) Seleccionan el drive (00=Drive 0... 11=Drive3) Descripcin o Nuevo Nro. de cilindro (0-255). Es el cilindro en el que se quiere posicionar las cabezas.
Controlador de Floppy Disk 28 de Abril de 2011 44 / 49

Alejandro Furfaro (PSO - DC)

Guias de programacin o

Handshake en la fase de Comandos y Resultados

Antes de enviar un comando o un parmetro a

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

45 / 49

Guias de programacin o

Handshake en la fase de Comandos y Resultados

Para leer un resultado hay que:

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

46 / 49

Guias de programacin o

Handshake en la fase de Comandos y Resultados

Inicializacin del 82077A o

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

47 / 49

Guias de programacin o

Handshake en la fase de Comandos y Resultados

Comandos SEEK y RECALIBRATE

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

48 / 49

Guias de programacin o

Handshake en la fase de Comandos y Resultados

Operacions Read y Write

Alejandro Furfaro (PSO - DC)

Controlador de Floppy Disk

28 de Abril de 2011

49 / 49

También podría gustarte