Actualizar XF551 con Hyper-XF

1. Introducción

El firmware Hyper-XF 1.0 es una actualización para la disquetera ATARI XF551, hay dos versiones:


  1. Versión 1.0A para la XF original con unidad de 5,25".
  2. Versión 1.0B para la XF convertida con unidad de 3,5".

Después de la instalación, que es posible sin soldadura, hay muchas funciones adicionales disponibles:


  • Lectura de disquete más rápido. (Ultra e Hiper velocidad)
  • Controlador de hiper velocidad desde el arranque de la unidad.
  • Administración de particiones. (2 en 5.25", 4 particiones en 3.5")
  • Menú de arranque para iniciar desde las particiones o controlador hiper velocidad.
  • Mejora del reconocimiento de la doble densidad.
  • Comandos para la lectura de discos de doble densidad de ATARI ST o PC. (¡Falta programa, sin desarrollarse!)
  • Comandos para el análisis de pistas.
  • Comando para formatear un formato especial arbitrario (Conocido como sector skewing).
  • Comandos para copiar discos protegidos contra copias.

Además, por supuesto, se han eliminado los muchos pequeños errores del firmware XF551 original. Por otro lado, se ha omitido la función (Escribir con verificación); el Hyper-XF siempre escribe en el disquete sin verificar. Verificar es muy lento de todos modos y, por lo tanto, ya no lo usa ningún DOS. Desafortunadamente, no es posible formatear en alta densidad.


Después de encender, el Hyper-XF se comporta de la misma manera que el XF551 normal, las únicas diferencias son las siguientes:


  • El Hyper-XF ahora también reconoce discos de doble densidad al leer.
  • Los discos pueden estar en las tres densidades (simple, mediano y doble) se puede formatear a doble cara.
  • En lugar de XF-High-Speed, se admiten Ultra e Hiper velocidad.

2. Instalación del Hyper-XF

El firmware Hyper-XF está presente en un chip EPROM de 8KB y es un reemplazo de la ROM XF551 original. Justo en la etiqueta de las ROM Hyper-XF, puede leer el número de versión: A es para unidades de 5,25" y B para unidades de 3,5".

Advertencia

¡Nunca utilice la versión B con una unidad de 5,25"!

A la instalación se avanza de la siguiente manera:


  • Desatornillar los cuatro tornillos de la superficie inferior del XF551.
  • Quitar la parte superior de plástico del XF551.
  • Desatornillar los cuatro tornillos que conectan el ángulo metálico del disco de 5,25" con la parte inferior del XF551.
  • Levantar con cuidado el conjunto del disco hacia un lado, para que pueda ver un chip con 28 pines.
  • Si es necesario quite el cable plano (¡pero recuerde la polaridad!).
  • Levante el chip con los 28 pines con un destornillador con cuidado desde su base (se recomienda un extractor de chip IC tipo U).

  • Coloque la EPROM con Hyper-XF en la base.

Nota

No toque los pines de la EPROM con los dedos, para evitar la polaridad magnética (y la posible destrucción de los chips)

  • La muesca en uno de los lados estrechos de la ROM Hyper-XF debe encajar a la vista frontal del conjunto impulsor. Una instalación incorrecta puede causar mal funcionamiento o incluso destrucción de la EPROM.
  • Ahora instale la unidad vuelva a montarlo y atorníllelo.
  • Compruebe si el cable plano en el accionamiento el conjunto se asienta correctamente, luego tome la tapa de plástico nuevamente y colóquela a la unidad y vuelva a atornillar. Así se completa la instalación.

Para una prueba encienda el XF, al encender, el cabezal de escritura debe moverse un poco hacia adentro y otra vez moverse hacia afuera, si no hay un error presente. Tenga presente dejar la unidad como número 1, esto es mover el interruptor DIP en su parte trasera (ambos interruptores hacia abajo)


Ahora encienda su ATARI XL/XE (sin un disco en el XF551) si aparece el menú de arranque con el aviso de derechos de autor, el Hyper-XF está en pleno funcionamiento como muestra la siguiente imagen.


3. Cambios para una unidad de 3,5"

El XF551 se puede convertir en una unidad de 3,5" sin soldar, necesitas:


  • Una disquetera de 3,5"
  • Un marco de montaje de 5,25" para unidades de 3,5"
  • Un adaptador de bus Shugart para conectar el cable plano de la unidad de 5,25" a la unidad de 3,5"
  • Un cable de conexión de alimentación para conectar la fuente de alimentación a la unidad de 3,5"
  • Posible extensión de cable plano para unidades de 3,5" (aprox. 20 cm)

Solo necesita la extensión del cable de cinta si tiene un XF551 antiguo con una unidad Mitsumi (reconocible por el LED de motor rectangular), con estas unidades XF, el cable de cinta en el XF es demasiado corto para conectarlo a una unidad de 3,5". Normalmente cuando compra el marco de montaje, también recibirá los tornillos necesarios, el conector y el cable de conexión de alimentación.

Atención

Al comprar la unidad, asegúrese de que esté configurada como unidad A: (no B:), de lo contrario tendrá que mover o incluso volver a soldar un puente en la unidad para que el XF funcione correctamente.

La instalación es la siguiente:


  • Fije la unidad de 3,5" al marco de montaje con los 4–6 tornillos proporcionados.
  • Desatornille los cuatro tornillos en la parte inferior del XF551.
  • Levantar la tapa de la carcasa.
  • Desconecte el cable plano y el cable de alimentación de la unidad de 5,25". (tenga en cuenta la polaridad de antemano)
  • Desatornille los cuatro tornillos que sujetan la unidad de 5,25" a los soportes metálicos y guarde la unidad de 5,25".
  • Ahora instale el Hyper-XF 1.0B en el XF, consulte el capítulo 2.
  • Fije la unidad de 3,5" a los soportes metálicos con los cuatro tornillos.
  • Enchufe el enchufe del adaptador en la tira de conexión en la parte posterior de la unidad de 3,5".
  • Enchufe el cable plano en el enchufe del adaptador.

Atención

Preste atención a la polaridad: El cable marcado en rojo en el cable plano debe conectarse en el pin de conexión 1 de la unidad de 3,5". El pin 1 generalmente está marcado con 1 en la placa de circuito de la unidad de 3,5".

  • Enchufe el cable de conexión de alimentación al cable de alimentación de la unidad de 5,25" y conéctelo a la unidad de 3,5". Esto solo es posible en una polaridad, así que no use la fuerza.
  • Poner la tapa de la carcasa y atornillar

Esto completa la conversión; proceda como se describe en el Capítulo 2 para una prueba.

4. Ultra-Speed

Hyper-XF utiliza el protocolo Ultra-Speed ​​​​en lugar del XF-High-Speed, lo que aumenta la transferencia de datos entre la computadora y la unidad de 19200 bps a 55000 bps. La extensión Speedy 1050 también utiliza ultravelocidad y ahora se ha convertido en EL estándar en el área de ATARI. Por lo tanto, Ultra-Speed ​​​​también es compatible con todas las extensiones OS para XL/XE (por ejemplo, QMEG-OS, SPOS, US+OS) y muchas versiones de DOS (XDOS, Bibo-DOS, Turbo-DOS, Sparta-DOS). Esto significa que el XF es el doble de rápido en todas las densidades de escritura que en funcionamiento normal.


Sin embargo, para utilizar la alta tasa de transferencia de datos, los disquetes deben formatearse en un «formato de alta velocidad» especial como con el XF551 normal. Esto sucede automáticamente cuando el sistema operativo o DOS envía el comando de formato ultrarrápido a la unidad (QMEG-OS 4.0 lo hace). De lo contrario, debe usar un programa que permita formatear con «Ultra-Speed ​​​​Sector-Skew» (para Sparta-DOS puede usar XINIT.COM).

5. Hyper-Speed

Si no (quiere) usar un SO o DOS con soporte para Ultra-Speed, también puede usar Hyper-Speed. Hyper-Speed ​​​​es un nuevo protocolo y es tan rápido como Ultra-Speed ​​​​pero tiene dos ventajas:


En primer lugar, muchas versiones de DOS compatibles con XF551 se parchean fácilmente para usar Hyper-Speed. Publicaré algunos parches para versiones conocidas de DOS en la revista ABBUC.


En segundo lugar, el firmware Hyper-XF incluye un controlador Hyper-Speed ​​que se puede cargar en ATARI antes de arrancar desde un disquete. Para hacer esto, inicie su computadora sin un disquete en la unidad. (Por supuesto, el Hyper-XF debe configurarse como la unidad N°1). Aparece el siguiente menú en la pantalla:



Ahora inserte un disquete y presione una de las teclas en el menú al lado de «BOOT ?" especificó las siguientes acciones:


Tecla 1 El controlador Hyper-Speed ​​​​se carga y se coloca en la RAM del XL/XE en la mitad superior de la página 1 ($100-$17F), luego el disquete insertado se inicia en Hyper-Speed.


Tecla 6 Igual que la anterior, pero el controlador de Hyper-Speed se carga en la mitad superior de la página 6 ($600-$67F).


Tecla ESC Solo se inicia el disco insertado.


El BOOT ERROR que se muestra es intencional, por cierto, porque es la única forma de hacer que ATARI arranque el disquete insertado.


El programa cargado desde el disco puede, por supuesto, sobrescribir el controlador de Hyper-Speed en la memoria en la página 1 o en la página 6. En este caso, la computadora fallará. Simplemente pruebe ambas variantes, por lo general 1 funciona. En 6 fallan bastantes programas que no siguen las pautas de ATARI para mantener libres los programas de ayuda del usuario.


Lo mismo se aplica al formateo que a la ultravelocidad: para utilizar la Hyper-Speed, los disquetes deben formatearse de forma especial. Esto sucede automáticamente cuando el comando de formato se envía desde DOS en Hyper-Speed ​​(todos los parches de DOS mencionados anteriormente lo hacen).


Video de ejemplo de carga de un diskette en NormalHyper



6. Formato de disquete

El Hyper-XF admite un total de doce formatos diferentes a través de los comandos de formato estándar que utiliza cada DOS.


Se puede formatear en Densidad Simple (SD), Densidad Media (MD) o Densidad Doble (DD). Todos los formatos se pueden crear a una cara o a dos caras: con el formato a una cara solo se formatean 40 pistas, incluso con unidades de 3,5", con el formato a dos caras siempre se formatea todo el disco. Además, cada El formato se puede utilizar en la variante Normal o en la variante ultra velocidad ​​para ser formateado.


Para las unidades de 3,5", es mejor usar disquetes DD, los disquetes HD funcionarán si el orificio HD está cerrado con cinta adhesiva, pero pueden causar errores de lectura más adelante (yo mismo no he tenido ningún problema todavía). En alta densidad 1,4 MB no se puede formatear.

7. Detección de densidad

El Hyper-XF siempre reconoce la densidad del disco insertado cuando lee un sector. Si llama al directorio en un DOS sin soporte XF después de cambiar los discos de SD o MD a DD o viceversa, esto solo funciona en el segundo intento. Cambiar de SD a MD o viceversa es fácil porque la longitud del sector no cambia.
Con las versiones de DOS que leen el sector 1 al abrir un archivo (Sparta-DOS), por otro lado, no hay problemas con la detección de densidad.


Sin embargo, el Hyper-XF ofrece la opción de instalar un contacto en la cubierta de la unidad para que la detección de densidad funcione de forma totalmente automática, como con el 1050. Sin embargo, para la instalación, se debe soldar en el XF:


Conecte el pin 35 del 8040/8050 (el chip con los 40 pines) en el XF a tierra (por ejemplo, el pin 14 del 1772 o el pin 20 del 8040/8050) a través de un botón. El botón debe montarse en el mecanismo de la plataforma de modo que el botón esté cerrado cuando la palanca de la plataforma esté abierta. Por ejemplo, el botón de cabeza de hongo, número de pedido 704687, de la gama Conrad es adecuado para unidades de 5,25".

8. Particiones y modos de funcionamiento

El Hyper-XF ofrece un total de ocho modos operativos diferentes que determinan cómo accede el Hyper-XF a los disquetes. Para cambiar el modo operativo, inicie el Hyper-XF sin un disquete y aparecerá el menú de inicio. El modo de funcionamiento ajustado actualmente se muestra a la derecha de «MODE=". Presionando cualquiera de las teclas ABCDMFSX cambia el modo. Luego, un disquete insertado se puede iniciar con las teclas ESC, 1 o 6.


Están disponibles los siguientes modos de funcionamiento:


Modo X: (modo XF)
Este modo está activo después de encender el Hyper-XF. Corresponde al funcionamiento normal del XF551.


Modo S: (modo estándar ST/PC/HDI)
Se utiliza para acceder a discos de dos caras en el antiguo formato estándar, por ejemplo, como lo utiliza el HDI. En este modo, los disquetes en formato ST o PC también se pueden leer con comandos especiales, pero no es posible escribir.
El modo S difiere del modo X solo en el formato de la parte posterior del disco (el XF551 almacena los sectores en la parte posterior (al revés), por ejemplo, en un disco DD de 5,25", el sector actual es 721 en formato S en la pista 0, sector 1, en formato X en la pista 39, sector 18).

Advertencia

Hyper-XF no verifica en qué modo se formateó un disco. Por lo tanto, utilice el modo S solo cuando sea absolutamente necesario (p. ej., para leer un disco DD de dos caras formateado con HDI) y luego vuelva inmediatamente al modo X.

Modo M: (Multi)
En este modo, el XF divide el disquete insertado en particiones. Puede almacenar el contenido de un lado del disco de 5,25" (ya sea SD, MD o DD) en cada partición y editarlo con cualquier DOS. Con discos de 5,25", hay dos particiones (A y B) disponibles, con 3 disquetes de 5" Los discos tienen cuatro particiones (A, B, C y D).
Se accede a las particiones mediante números de unidad ascendentes (dependiendo de la configuración del interruptor en la parte posterior de la unidad). Si, por ejemplo, el XF se establece como unidad Nº 1, las particiones A a D se direccionan con una unidad de 3,5" con D1: a D4:. En consecuencia, con unidades de 5,25", las particiones se direccionan a través de D1: y D2: A y B dirigidos.
Hay, por así decirlo, dos o cuatro unidades disponibles, que se combinan en un disco. Esto le permite acceder a todo el disquete con cualquier DOS y, en particular, las particiones también se pueden formatear en diferentes densidades.


O puede copiar los lados del disco de datos de Alternate Reality – The Dungeon en un disco de 3,5" con una copiadora de discos que le permite seleccionar varios números de unidad, lo que hace innecesario cambiar los discos durante la reproducción.

Atención

Bajo el número de unidad para la partición A (D1: en el ejemplo anterior), también puede acceder a todo el disco como en el modo X. Esto evita cambios frecuentes entre los modos X y M. Si desea formatear todas las particiones con la misma densidad, puede formatear el disco para la partición A de doble cara, que es más rápido. Hyper-XF no puede reconocer automáticamente los disquetes particionados. Por lo tanto, debe tener cuidado, por ejemplo, de no escribir en la partición B si se inserta un disco sin particiones.

Modo F: (Formato-Multi)
Corresponde al modo M, pero Hyper-XF verifica automáticamente la densidad de la partición con cada cambio de partición. Esto hace posible cambiar entre particiones con diferentes formatos sin software especial.

Atención

Si las particiones tienen un formato diferente, se desactiva un contacto integrado en la solapa de la unidad para la detección automática de densidad, ya que el disco no se cambió.

Modo A,B,C,D: (Modos de partición)
Con esto, se puede acceder a la partición A a D correspondiente bajo el número de unidad establecido en la parte posterior de la unidad. Para las unidades de 5,25", C y D corresponden a las particiones A y B. Por ejemplo, si el XF está configurado como la unidad Nº1, puede usar esto para iniciar cualquier partición deseada.

9. Comandos SIO

Todos los comandos Hyper-XF SIO se explican en los siguientes capítulos. Esto es de particular interés para los programadores con conocimientos de lenguaje de máquina que desean escribir utilidades para Hyper-XF.


Primero algunas explicaciones: Un lado del disco tiene 40 pistas (con 3,5": 80 pistas). Al formatear, cada pista suele dividirse en 18 sectores (con MD hay 26 sectores).


Pista lógica y número de sector: La pista lógica número va de 0 a 79 (3,5": de 0 a 159). Si el número de pista lógica es superior a 39 (3,5": superior a 79), el Hyper-XF accede automáticamente a la pista correcta en la segunda cara del disco. El sector lógico no. siempre corresponde al número de sector físico en el modo S, pero en todos los demás modos, los sectores (y las pistas) se almacenan «al revés» en la parte posterior del disco para que sean compatibles con el XF551 original. Por ejemplo, para SD y DD: El sector 1 corresponde al sector físico 18, el sector 2 corresponde al sector físico 17, etc.
El Hyper-XF siempre espera que la información de la pista y el sector sea lógica, lo que significa que el programador no tiene que hacer ninguna conversión.


Número de sector actual: La numeración secuencial normal de todos los sectores que comienzan con 1. La siguiente conversión se aplica a SD y DD, para MD se debe reemplazar el 18 por 26: lfd.Secnr = log.Tracknr * 18 + log.Secnr


A continuación, para todos los comandos SIO respectivamente:

  • El byte de comando ($302)
  • La dirección de datos de E/S ($303: 0=Sin datos, $40=Recibir, $80=Enviar)
  • El número de bytes de datos ($308/9)
  • Los bytes AUX1/AUX2 ($30A/B) especificados

10. Comandos XF551

10.1. Comando: R ($52)

Función: Leer sector (Read Sector), E/S de datos: recibe 128/256 bytes.


AUX1: Número de sector actual (byte bajo).
AUX2: Sector actual no. (byte alto).
o
AUX1: Pista lógica no.
AUX2 : $C0 más sector lógico no.
o
AUX1: Pista lógica no.
AUX2: $FF (lee el sector de reserva).


Lee el sector especificado del disco. Se envían 128 (para SD y MD) o 256 bytes (para DD) a la computadora. En los sectores actuales 1 a 3, solo se envían 128 bytes en DD también.


El sector deseado también se puede especificar en forma de pista lógica y número de sector. especificado (AUX2>=$C0). Si AUX2=$FF, el llamado sector de reserva (ver comando e) se lee de la pista especificada. Los valores de AUX2 $FC a $FE están reservados para funciones internas (menú de arranque) del Hyper-XF.

10.2. Comando: P ($50)

Función: Escribir sector (Put Sector), E/S de datos: enviar 128/256 bytes).
AUX1/2: Como con el comando R.


Escribe los datos en el sector especificado en el disquete. De lo contrario corresponde al comando R.

10.3. Comando: W ($57)

Función: Escribir sector (Write Sector).


Corresponde al comando P.

10.4. Comando: S ($53)

Función: Leer estado, E/S de datos: Recibir 4 bytes.
AUX1 : Sin sentido.
AUX2: Nivel de comprobación de densidad:

«S» ($53) = Solo estado (sin cheque)
«T» ($54) = Probar motor (Marcar solo cuando el motor está apagado)
«U» ($55) = Incondicional (Marcar en cualquier caso) de lo contrario = verificar el error (verificar solo si hay un error)

AUX2 se puede utilizar para especificar si Hyper-XF debe comprobar la densidad del disco insertado y cuándo. Esto es interesante si la unidad no incorpora detección de densidad. La unidad envía 4 bytes que contienen el estado actual de la unidad:


1er byte = Estado de la unidad.


Bit 0: Último comando incorrecto.
Bit 1: Último bloque de datos incorrecto.
Bit 2: Falló el último acceso de lectura/escritura del disco.
Bit 3: Disco protegido contra escritura.
Bit 4: El motor sigue funcionando.
Bit 5: Doble Densidad.
Bit 6: El siguiente comando de formato da formato a doble cara.
Bit 7: Densidad media.


El bit 3 solo es válido si el sector deseado estaba presente en el disco la última vez que se accedió al disco. El bit 6 se puede configurar mediante el comando O y se restablece después de cada uno de los seis comandos RPWutc para evitar un formateo incorrecto.


2do byte = Estado del controlador de disquete (FDC).


Bit 0: /BUSY El controlador sigue funcionando.
Bit 1: /DRQ Solicitud de datos FDC sin respuesta.
Bit 2: /LD Los datos del controlador se perdieron.
Bit 3: /CRC Error de suma de comprobación .
Bit 4: /RNF Sector no encontrado.
Bit 5: /RT Tipo de registro «Eliminado».
Bit 6: /WP Solo lectura.
Bit 7: /OPEN No hay disco en la unidad.


Este byte indica qué errores ocurrieron cuando se accedió por última vez a un sector del disco. Todos los bits están activos bajos. El bit 7 solo es válido si se ha integrado la detección automática de densidad en el XF. Esto también se puede usar para consultar una amplia variedad de sectores de error, las siguientes variantes son posibles:


$FF OK $FB LD
$F7 CRC $F3 LD+CRC
$DF RT $DB LD+RT
$D7 RT+CRC $D3 LD+CRC+RT
$EF RNF
$E7 RNF+CRC


3er byte = Valor de tiempo de espera de formateo ($D9)


Este byte también se puede utilizar para consultar si la unidad a la que se dirige es una Hyper-XF. Los cuatro bits inferiores también contienen la tasa de transferencia SIO para ultra y alta velocidad (vea también el comando ?).


4to byte = Modo de funcionamiento y tipo de accionamiento


Bit 7: Reservado (siempre 0)
Bit 6: 0 = unidad de 5,25» o 1 = unidad de 3,5»
Bit 5: Reservado (siempre 0)
Bit 4: Ejecutar verificación de densidad la próxima vez que se acceda al disco
Bit 3: Reservado (siempre 0)
Bit 210: Modo de funcionamiento: ABCDMFSX

Valor: 01234567

El bit 4 siempre se establece si el sector deseado no se encontró durante el último acceso al disco. Esto solo puede suceder si el sector está defectuoso, el disco no está formateado o no hay ningún disco en la unidad. Con el comando S, se realiza una verificación de densidad si AUX2 no es igual a «S».

10.5. Comando: ! ($21)

Función: Formatear disco/partición en SD o DD, E/S de datos: recibe 128/256 bytes.
AUX1/2 : Sin sentido.


Formatea un disquete o una partición, según el modo operativo establecido.


La densidad (SD o DD) y el número de páginas (una cara/dos caras) deben configurarse primero con el comando O. Si la densidad se establece en MD, se formateará en SD. Siempre se formatea con Verify para detectar discos defectuosos tan pronto como se formatean.

10.6. Comando: " ($22)

Función: Formatear disco/partición a MD, E/S de datos: Recibir 128 bytes.
AUX1/2 : Sin sentido.


Formatee siempre el disco en MD. El número de páginas debe configurarse primero con el comando O. De lo contrario corresponde al comando !.

10.7. Comando: N ($4E)

Función: Lectura del bloque de configuración (bloque de configuración iNput),E/S de datos: Recibir 12 bytes.
AUX1/2 : Sin sentido.


Los 12 bytes de la tabla de configuración PERCOM que se configuraron por última vez con el comando O se envían a la computadora:


Byte 0: Número de pistas (40 u 80)
Byte 1: Tasa de paso en ms (6 o 3)
Byte 2: Sectores por pista HI (siempre 0)
Byte 3: Sectores por pista LO (18 o 26)
Byte 4: Recuento de páginas (0 o 1)
Byte 5: Procedimiento de formateo (0=FM, 4=MFM)
Byte 6: Bytes por sector HI (0 o 1)
Byte 7: Bytes por sector LO (128 o 0)
Byte 8: Accionamiento activo (siempre 255)
Byte 9–11: No utilizado (siempre 0)

10.8. Comando: O ($4F)

Función: Escribir bloque de configuración (bloque de configuración de salida), E/S de datos: enviar 12 bytes.
AUX1/2 : Sin sentido.


Los 12 bytes del bloque de configuración se envían a la unidad. Consulte el comando N para conocer el significado de los bytes. El comando O se usa antes de formatear con el ! y " para configurar correctamente la densidad y el número de páginas. El Hyper-XF determina el formato a partir de los bytes 5, 6 y 7, todos los demás bytes se ignoran. No obstante, siempre se deben configurar los bytes 0 y 2–7.


Después de ejecutar uno de los comandos RPWutc, el byte 5 del bloque de configuración siempre se restablece a 0. Esto evita formatear accidentalmente un disco de doble cara. El byte 5 no tiene efecto en la lectura y escritura de sectores del disco.

11. Comandos rápidos

11.1. Comando: ? ($3F)

Función: Leer byte de velocidad SIO, E/S de datos: Recibir 1 byte.
AUX1/2 : Sin sentido.


Se envía un byte a la computadora ($09) con el cual la computadora se establece en la tasa de transferencia de datos alta (ultra o hipervelocidad). Esto se hace ingresando el byte en $D204.
Con el protocolo de ultravelocidad, el comando debe transmitirse junto con los datos a una velocidad de datos alta. Con hipervelocidad, el byte de comando debe enviarse con los bits 5 y 7 configurados, y después de recibir el byte ACK de comando, debe cambiarse a la velocidad de datos alta.
Excepto por la velocidad de datos más alta y la configuración del bit 5 en el byte de comando, la hipervelocidad corresponde a la alta velocidad original del XF551.

11.2. Comando: Espacio ($20)

Función: Formatear disco/partición en segundo plano, E/S de datos: sin datos.
AUX1/2: si AUX1=$11 y AUX2=$04 se formatea en MD.


Corresponde al comando ! con las siguientes diferencias:


Si AUX1=$11 y AUX2=4, se formatea en MD. Después de formatear la primera pista, la calculadora devuelve COMPLETO. La computadora ahora puede continuar funcionando mientras la unidad aún se está formateando. El comando S se puede usar más tarde para determinar si el formateo fue exitoso.
Este comando es útil para una copia de disco, por ejemplo, para formatear el disco de destino en otra unidad mientras se lee el disco de origen.

11.3. Comando: f ($66)

Función: Formatear disco con orden de sector específico, E/S de datos: Enviar 128 bytes.
AUX1/2 : Sin sentido.


Se envían 128 bytes a la unidad. Los primeros 12 bytes corresponden al bloque de configuración (ver comando O), los siguientes 18 o 26 bytes determinan el orden en el que se almacenan los sectores lógicos en las pistas. El orden de sector óptimo difiere según la densidad, por ejemplo, los órdenes para el formato de velocidad normal son los siguientes:


SD: 1,3,5,7,9,11,13,15,17,2,4,6,8,10,12,14,16,18 (sesgo de sector=10)
DD: 6,12,18,5,11,17,4,10,16,3,9,15,2,8,14,1,7,13 (sesgo de sector=16)

12. Comandos de Hyper XF

12.1. Comando: c ($63)

Función: Establecer el modo de funcionamiento (modo de configuración), E/S de datos: sin datos.
AUX1: Bit 2–0: Modo de funcionamiento (01234567 corresponde a ABCDMFSX).

Bit 4: 1 = verificación de densidad en el próximo acceso al disco.

AUX2 : Sin significado.


Esto establece el modo de funcionamiento.

12.2. Comando: e ($65)

Función: Formato universal (formato extendido), E/S de datos: Enviar 128 bytes.
AUX1: Número lógico de la pista a formatear

$FF = formatear todo el disco/partición
$FE = como $FF, pero formato en segundo plano

AUX2: Bit 7: 1=sin, 0=formato con verificación


Se puede crear cualquier formato en el disquete con este comando. Además de la información en AUX1 y AUX2, se debe enviar a la unidad un bloque de formato de 128 bytes con los siguientes datos de formato:


Byte 0–11: bloque de configuración, ver comando O


Byte 10: Byte de desviación de sector
Bit 0–4: Orden de sector

0 = tomar el relevo de la tabla de sectores
1-$19= especificación de desviación del sector (indica cuántos sectores entre deben ser dos sectores numerados secuencialmente)
$1A = Calcular para velocidad normal
$1B = para velocidad normal (optimizada)
$1C = optimizado para velocidad warp
$1D = optimizado para ultravelocidad
$1E = optimizado para formato HDI
$1F = optimizado para transmisión turbo

Bit 65: Establecer sector de reserva

00 = no dejar espacio para el sector de repuesto
01 = formato con espacio para sector de repuesto
10 = formato con sector extra de repuesto irrelevante si bit 0–4 >=$1A

Bit 7: Reservado, debe ser 0


Byte 11: Byte de longitud de sector

$00 = Adoptar longitudes de sector de la tabla de longitudes
$01 = Calcular longitudes de sector según los bits 5–6 del byte 10
$20-$DF = especificación directa de las longitudes de sector en bytes FM

Bytes 12–56: Tabla de sectores
Cada byte de esta tabla corresponde a un sector:
Bit 0–4: Número de sector
Bit 765: Estado de error del sector:

101 = Sector con error de LD
110 = Sector con error RNF+CRC
Otro = Sector sin errores

Valores especiales en la tabla de sectores:

$C0 = Brecha de formato (solo permitido si el byte 11 = 0)
$00 = Marca el final de la tabla de sectores

Bytes 60–103: Tabla de longitud
Indica la longitud en bytes FM para cada sector o espacio de la tabla de sectores. Un byte FM corresponde a 1 byte en SD y 2 bytes en MD y DD en el disquete. Se permiten longitudes de $20-$DF para un sector, longitudes de 1-$FF para un hueco. Un sector consta siempre de 32 bytes de FM para el encabezado del sector y normalmente de 64 o 128 bytes de FM para los datos del sector. También puede haber algunos bytes vacíos. La suma de todos los bytes en la tabla de longitud no debe exceder 3232.


Si hay un valor incorrecto en alguna parte del bloque de formato, esto se reconoce con un error 144 antes de que arranque el motor.

12.3. Comando: g ($67)

Función: Analizar pista (Obtener información de la pista), E/S de datos: Recibir 128 bytes.
AUX1: Pista lógica no.
AUX2: Nivel de análisis:


$00 = escaneo completo
$ 20 = encabezados de sector de verificación solamente
Otro = sólo comprobar el contenido del sector (AUX2 debe contener el sesgo de sector del disco, ver el byte 10 del bloque de formato)


Este comando analiza la pista especificada. La unidad envía 128 bytes a la computadora, cuya estructura corresponde exactamente al bloque de formato del comando e.
La densidad de la pista no se comprueba, por lo que se debe establecer la densidad correcta antes del comando g.


Lo siguiente se aplica al bloque de formato recibido:
Los bytes 10 y 11 son siempre 0.
Los bits 7–5 de los bytes de la tabla de sectores tienen el siguiente significado:


000 = sector OK y vacío (lleno de ceros)
001 = error TR
010 = error CRC
011 = error RT+CRC
* 100 = el sector es corto (tiene muy pocos bytes de datos), tiene uno Error CRC y posiblemente otro error RT
* 101 = error LD, posiblemente también error CRC y/o RT
* 110 = error RNF+CRC
111 = Sector OK y no vacío


La verificación del encabezado del sector solo detecta los sectores de error marcados con * y determina las longitudes de los sectores.
El resto lo determina la verificación de contenido del sector.


Por cierto, el bloque de formato obtenido con el comando g se puede usar como entrada para el comando e sin modificación. Se utiliza junto con los comandos t y u para copiar disquetes protegidos contra copias.

12.4. Comando: t ($74)

Función: Leer sector de error en SD y MD (leer pista), E/S de datos: Recibir 128/129/256 bytes.
AUX1: Pista lógica no.
AUX2: Bit 4–0: sector lógico no.
Bit 765: modo de lectura


000 = Lectura normal (solo SD/MD)
001 = Ignorar errores RT/CRC/LD (solo SD/MD)
010 = Ignorar errores RT/CRC/LD (solo SD/MD) y enviar el estado del controlador como primer byte
100 = Leer la primera mitad de un sector de 512 bytes
110 = Leer la segunda mitad


Con este comando, los sectores de error en SD y MD se pueden leer rápidamente; el Hyper-XF no vuelve a intentarlo en caso de error, como ocurre con el comando R. Se envían 128 bytes a la computadora, con la variante 010 son 129 bytes. Además, los sectores de 512 bytes de un disco DD se pueden leer en dos mitades por ATARI ST o una PC.

12.5. Comando: u ($75)

Función: Escribir sector de error en SD y MD (Actualizar Sector), E/S de datos: Enviar 128 bytes.
AUX1: Pista lógica no.
AUX2: Bit 4–0: sector lógico no.

Bit 765: Tipo de error:
000 = Normales
001 = RT
010 = CRC
011 = RT+CRC
100 = LD sin CRC
101 = LD+RT sin CRC
110 = Sector corto (el último byte de datos contiene número de bytes a escribir)
111 = Sector corto con RT

Escribe un sector de error en el disco. Se envían 128 bytes a la unidad.

13. Descarga Firmware

Archivos binarios para grabar en la eprom 27C64A:


  • Archivo rom del firmware original rev. 7.7
  • Archivo rom del Hyper-FX 1.0A
  • Archivo rom del Hyper-FX 1.0B

14. Bibliografía

Se tradujo desde el manual original en alemán publicado en la revista ABBUC, porque la traducción en ingles aun tiene palabras en alemán y esto hace que algunos párrafos no se entiendan bien.

Comentarios