Utilizar tarjetas CF (CompactFlash) como almacenamiento rápido en equipos antiguos

Destacado

Utilizar tarjetas CF a modo de almacenamiento rápido en equipos antiguos es más que una tendencia en el mundillo de la retroinformática.

En equipos obsoletos, que ya son lentos de por sí, cualquier cosa que hagamos para mejorar la velocidad es bienvenida. En este sentido, las tarjetas CF presentan una gran ventaja y es que integran un controlador IDE (el tipo de disco duro anterior a los SATA y el más común en equipos vintage). Esto hace que, si ya tenemos la tarjeta, sólo necesitemos un adaptador de IDE 40 pines a CF (si el equipo es de escritorio) o un adaptador IDE 44 pines a CF (si es un portátil).

Estos adaptadores son realmente baratos, normalmente por debajo de los 10 Euros :

Adaptador ide portátil a CF

También existen otros adaptadores más «chulos» en función de nuestras necesidades, como por ejemplo poder acceder a la tarjeta CF sin necesidad de abrir el ordenador :

Adaptador IDE 3.5″ a CF para panel posterior

Adaptador IDE 3.5″ para frontal caja, ranura de 3.5″

Ahora que ya tenemos idea sobre los tipos de adaptadores que más nos convienen, hay algunas cosas que es necesario saber sobre las tarjetas CF. Normalmente encontraremos de varios tipos / categorías. Yo recomiendo lo siguiente :

Escoger una que sea de grado industrial. Este tipo de tarjetas, además de soportar un rango de temperaturas y un tiempo medio entre fallos muy superior a las convencionales, suele :

  • Soportar modos de transferencia UDMA (ultra DMA) : esto acelera mucho las transferencias respecto a los modos PIO. El modo de acceso UDMA normalmente se habilita en la BIOS del ordenador.
  • Venir por defecto con el modo «fixed disk» activo. Esto hace que la BIOS del PC lo reconozca sin problemas como un disco duro convencional y puede ahorrarnos dolores de cabeza a la hora de instalar el -o los- SO (Win2K y XP se niegan a ser instalados en almacenamiento extraíble).

Otra cosa que no suele tenerse en cuenta a la hora de escoger una tarjeta es la velocidad de transferencia. Eso lo sabremos si miramos bien la ficha del fabricante. Yo no recomendaría escoger una por debajo de 200x. Una tarjeta 133x tiene una transferencia de 133 * 150 kB/s = 19950 kB / s = 20 Mb/s.

Yo tuve -y digo tuve porque ahora ya no la tengo- instalada en mi Amiga 1200 una Compact Flash Transcend 133x que me dio muchísimos problemas -principalmente corrupción del sistema de archivos y fallos en el arranque- hasta que la sustituí por un disco duro de portátil de 20 Gb. Si hubiera tenido en cuenta lo que acabo de comentar (y aprendí después), otro gallo hubiera cantado.

Amiga : Instalación del sistema en una tarjeta de memoria Compact Flash

Destacado

Hace un tiempo decidí actualizar mi Amiga 1200 sustituyendo su disco duro por una tarjeta de memoria Compact Flash; había visto que muchos usuarios tenían esa configuración y respecto al disco duro de 2.5″ que tenía instalado en mi Amiga la configuración presentaba las ventajas siguientes :

  • Mayor velocidad de ejecución y carga
  • Menor consumo

Como casi todo lo relacionado con el Amiga, el proceso no iba a ser trivial. Para empezar y como base para el mismo, recomiendo los siguientes dos tutoriales de YouTube; en ellos se describe cómo configurar una tarjeta de memoria CF como si fuera el disco duro principal del sistema :

Lo bueno del proceso es que se realiza por completo en el emulador WinUAE bajo Windows mediante un lector de tarjetas USB, lo que acelera las cosas. Una vez todo funciona correctamente en el emulador, ya se puede conectar la tarjeta CF al adaptador IDE del Amiga 1200 o a la controladora FastAta / Powerflyer (Elbox).

En mi caso, utilicé una configuración estándar de A1200, preparada para arrancar las imágenes del Workbench3.1 e Install3.1 desde los dispositivos DF0 y DF1 de WinUAE. Durante el particionamiento con HDtoolbox, decidí cambiar el sistema de archivos estándar (FFS) por pfs3 (Performance Filesystem III), en concreto el PFS3 AIO handler; en Abime hay varios hilos (hilo1, hilo2) que describen los parámetros a usar para el sistema de ficheros pfs3. Después de mucho probar y leer, particioné especificando los detalles siguientes :

FileSystem = PFS\03 = 0x50465303
Mask = 0x7FFFFFFE
MaxTransfer = 0x1FE00 (to avoid issues)
BlockSize = 512
Buffers = 200

 

Puede que HDToolbox -el HDToolbox de AmigaOS 3.1 es realmente antiguo- no detecte correctamente la configuración de una tarjeta CF de 16 Gb, que es esta :

  • Cylinders 31045
  • Heads 16
  • Blocks per Track 63
  • Blocks per Cylinder 1008

Aunque no la detecte correctamente, sí aceptará los parámetros de cilindros, cabezales, bloques y pistas. Además, siempre puede utilizarse la utilidad FixHddSize para «fijar» el tamaño de la unidad.

Hasta aquí había logrado particionar correctamente la tarjeta CF y había copiado el contenido de la partición principal del disco duro de mi Amiga físico a la primera partición de la tarjeta CF (mediante descompresión de una copia de seguridad en formato .lha que había hecho previamente). En mi caso, una vez recuperada la copia en la tarjeta CF, no arrancaba en WinUAE : eso era debido a que se estaba cargando el driver de la controladora Elbox en el fichero startup-sequence, así que hay que deshabilitar esa linea para poder «funcionar» en WinUAE y volver a habilitarla antes de trasladar la tarjeta CF al Amiga real. Si no se tiene una controladora Elbox, entonces no hay que hacer nada y el AmigaOS funcionará desde la tarjeta CF tanto en WinUAE como en el Amiga real.

Vale, entonces ¿por qué la tarjeta no funciona en mi Amiga físico pero si en el emulador? 

La diferencia principal que hay entre mi A1200 y uno de serie es la controladora Elbox Powerflyer. De hecho, mi Amiga carga el driver de la misma en las primeras líneas del fichero SYS:/S/startup-sequence :

Al conectar la tarjeta CF como dispositivo master a la controladora PowerFlyer, obtenía el siguiente mensaje de error :

DH0: Read attempt outside partition

Aquí daban con la clave del tema. En mi Amiga físico tenía el anterior disco duro configurado en modo PIO5 pero ese setting no funciona para la tarjeta CF, así que ejecuto la utilidad ATA3Prefs en Sys:/Prefs en mi Amiga real y especifico PIO3, modo no-split, hago clic en «Use» y seguidamente en «Save». Se hace una copia de seguridad de toda la partición SYS: del Amiga Real y se restaura en la primera partición de la tarjeta CF mediante directoryOpus4 desde WinUAE. Al trasladar la tarjeta CF de nuevo al Amiga físico funciona perfectamente.