Cómo copiar archivos desde una laptop de hace 30 años
(unterminated.com)- Había que preservar unas breves grabaciones de audio que quedaban en una Apple PowerBook Duo 280c de 1994, pero como estaban bloqueadas todas las vías —salida de audio, disquete, red y adaptador de disco—, la transmisión por fax se convirtió en la ruta alternativa
- Con el editor hexadecimal de ResEdit se abrió el archivo de audio como texto hexadecimal, se pegó en Microsoft Word y luego se envió usando la función de fax del cuadro de diálogo de impresión
- La recepción quedó a cargo del módem integrado y la app de fax de una ThinkPad T60 con Windows XP, y en lugar de conectar directamente ambas laptops con una línea telefónica, hizo falta un circuito simulador de línea telefónica basado en una batería de 9 V
- El método de convertir las imágenes de fax TIF de vuelta mediante OCR dejó crackles y pops en el audio por reconocimientos erróneos como 0/C, 9/4 y 0/D, además de errores de omisión e inserción
- Al final, se creó una herramienta llamada FaxToBinary que analiza directamente la cuadrícula de caracteres monoespaciados y aprende manualmente los patrones de caracteres, recuperando un archivo de audio que coincidía byte por byte con el original
Rutas de copia bloqueadas
- El dispositivo objetivo era una PowerBook Duo 280c de 1994, y en su interior había algunas grabaciones de audio breves que se quería preservar
- Por suerte, la laptop todavía arrancaba; el disco duro giraba si se le daba un golpecito suave, y los archivos de audio podían reproducirse por la bocina interna
- Los métodos habituales de copia fueron quedando bloqueados uno por uno
- No había jack de audio, lo que dificultaba hacer una copia analógica de buena calidad
- El disco duro interno usaba SCSI con un conector poco común, y tampoco estaba claro si un sistema moderno podría leer fácilmente el antiguo sistema de archivos HFS
- Al conectar una disquetera externa, la computadora dejaba de funcionar, y tampoco se encontró la causa de la falla
- Había un puerto AppleTalk y un conector telefónico, pero no había software de red instalado
- HTTP no quedó definido hasta 1996, y esa laptop tampoco tenía el software de acceso telefónico que habría estado disponible en la época
- En cambio, quedaban un marcador telefónico y software de fax, lo que permitió usar el módem como vía alternativa
Convertir un archivo en un documento de fax
- La laptop tenía instalado, junto con algunos juegos, el editor de recursos ResEdit, y con el editor hexadecimal de esa herramienta era posible ver el contenido bruto de un archivo en hexadecimal
- ResEdit no tenía función de impresión, así que había que mover el texto hexadecimal a otra app
- El archivo de audio de ejemplo medía 37,928 bytes, y como cada byte se mostraba como dos caracteres hexadecimales, la representación de texto tenía el doble de longitud
- Como había un límite en el tamaño que podía manejarse de una vez, el archivo se copió por partes, procesándolo en bloques de 12288 bytes, es decir 0x3000, para recordar fácilmente los offsets
- El texto hexadecimal copiado al portapapeles podía pegarse tal cual en un documento de Microsoft Word, y Word sí ofrecía función de impresión
- Todos los archivos medían menos de 100 KB, y se estima que la velocidad de copia manual mediante el portapapeles de ResEdit a Word fue de unos 316 bytes/s en promedio
Crear una línea telefónica simulada entre dos laptops
- La computadora receptora era una ThinkPad T60 con módem de acceso telefónico integrado, y la app de fax de Windows XP podía guardar los faxes entrantes como imágenes TIF multipágina
- El método de conectar directamente las dos laptops con un cable telefónico falló
- La PowerBook marcaba, pero la ThinkPad no contestaba
- La opción “Ignore Dial Tone” tampoco tuvo efecto
- El voltaje que proporciona la red telefónica fija real era importante para que los módems funcionaran, y el problema se resolvió con un circuito simulador de línea telefónica
- Este circuito podía construirse con componentes electrónicos comunes y una batería de 9 V, y proporcionaba una línea telefónica simulada entre ambas laptops
- Por requisitos de la FCC, el envío de fax necesitaba una portada; después de agregarla, la transmisión avanzó
- Al principio, tras rasterizar, el tiempo estimado de envío era de 24 minutos, pero al reducir el tamaño de la fuente se acortó a 6 páginas y 7 minutos, y el fax fue recibido por la ThinkPad a 14400 bps
Los errores que deja el OCR
- El fax recibido por la ThinkPad era una imagen TIF, y para convertirlo de vuelta en un archivo binario primero se intentó convertirlo a PDF y usar OCR
- La imagen de fax parecía favorable para OCR
- El texto había sido generado por computadora, con alineación y formas constantes
- Solo se usaban 16 tipos de caracteres: 0-9 y A-F
- Usaba Courier, una fuente monoespaciada común
- Se podía seleccionar el texto resultante del OCR, copiarlo a un editor hexadecimal y guardarlo como archivo binario
- Audacity estimó que el formato de audio del archivo resultante era PCM unsigned de 8 bits, little-endian, 22050 Hz, mono, y también mostró la forma de onda
- La reproducción era aceptable en general, pero las caídas repentinas en la forma de onda se escuchaban como crackles o pops causados por errores de transcripción del OCR
- Incluso probando varios programas de OCR y cambiando tamaño y tipo de fuente, no se llegó al 100% de precisión
- Confundía 0 con C, 9 con 4, y 0 con D
- A veces omitía caracteres o insertaba caracteres nuevos
Recuperación byte por byte con FaxToBinary
- Como el texto de la imagen de fax se generó con una fuente monoespaciada, todo el documento podía tratarse como una cuadrícula de caracteres con espaciado uniforme
- Al ajustar el punto inicial, el offset de caracteres y el interlineado, era posible capturar y analizar cada carácter por separado
- La herramienta propia permitía comprobar en una vista previa a la izquierda si los parámetros de tamaño y offset eran correctos, y si no había deriva al desplazarse por los caracteres o cambiar de línea, podía iniciarse el procesamiento
- El reconocimiento de caracteres funcionaba con un método simple de aprendizaje manual
- Para cada patrón único visto por primera vez, el usuario indicaba qué carácter era
- Si después encontraba un carácter con la misma forma, recordaba la respuesta anterior y la reutilizaba
- El código fuente de la herramienta está disponible como FaxToBinary.zip
- Tras un poco de aprendizaje manual, la herramienta generó el archivo; el audio se reprodujo suavemente, sin pops, y la copia coincidía byte por byte con el original
- Después de recuperar los archivos, también se ejecutó DOOM en esa PowerBook
2 comentarios
Solo una idea.
ihexosrecordincluyen checksum.zmodem.Opiniones de Hacker News
Tuve un problema parecido al hacer OCR de dumps hexadecimales de viejas revistas de computación, y lo resolví creando una herramienta para verificar los resultados del OCR.
Al ingresar el resultado del OCR y separar los números, muestra los caracteres recortados del original agrupados por categoría, de modo que una persona pueda detectar rápidamente a simple vista clasificaciones erróneas, como un “3” metido en el grupo de los “8”.
https://blog.qiqitori.com/2023/03/ocring-hex-dumps-or-other-...
https://blog.qiqitori.com/2023/03/ai-day-in-retroland-prolog...
Escribí dos artículos relacionados, y la herramienta también está enlazada en ellos. Eso sí, la usabilidad de la herramienta es apenas un poquito mejor que la de sendmail.
No sé si esa vieja laptop Apple tenía un entorno de programación o algo parecido a Microsoft Word de la época, pero creo que habría habido una forma mejor sin recurrir a hackear hardware.
Una mejor opción habría sido usar el puerto serial en lugar de enviar un fax por el puerto de módem. Los adaptadores serial-USB son fáciles de conseguir.
Básicamente, en una segunda pasada se buscan los valores atípicos de cada grupo de caracteres, se reclasifican temporalmente en otro grupo y, si mejoran las puntuaciones de similitud de los grupos relacionados, se conserva el cambio; luego se repite hasta que ya no haya mejoras.
Por ejemplo, se podría encontrar el “3 que menos se parece a los demás 3”, ponerlo temporalmente entre los “8” y, si mejoran las puntuaciones de “qué tanto se parecen entre sí los fragmentos de 3” y “qué tanto se parecen entre sí los fragmentos de 8”, mantener ese cambio.
Sin embargo, si el documento mezcla varias tipografías, podría ser contraproducente: por ejemplo, agrupar juntos los “3” de fuentes distintas y arruinar la puntuación de similitud del grupo.
¿Esa laptop no tenía puerto serial (COM)? En esa época era casi universal y, según este sitio [1], tenía dos.
Con Zmodem habría sido sencillo resolverlo, y parece que también ya había software de terminal.
[1] https://everymac.com/systems/apple/powerbook_duo/specs/mac_p...
Eso sí, del lado de la PowerBook se necesitaba algo capaz de recibir por serial. ClarisWorks definitivamente podía hacerlo, y es muy probable que Office tuviera una función similar de “recibir documento”.
O también se podía “imprimir” al puerto serial y capturar la salida serial. En la práctica sería una transferencia de texto unidireccional, pero para lo que quería hacer el autor era suficiente.
Aun así, el método de enviar por fax y luego hacer OCR está bastante genial.
No recuerdo que la laptop tuviera instalada una app de terminal, aunque quizá no busqué lo suficiente.
Al principio pensé que iba a fotografiar la pantalla de la laptop vieja y hacer OCR, pero el método real resultó mucho más divertido.
Aun así, quizá habría sido más rápido poner una fuente grande y dedicar 24 minutos a la transferencia. Es posible que escribir el software de OCR actualizado le haya llevado más de 24 minutos.
Pero entonces no habría sido divertido.
Lo omití en el artículo para mantenerlo conciso, pero en realidad probé varias fuentes y tamaños de letra, página por página, e hice revisión manual; no hubo grandes mejoras.
[0] https://social.immibis.com/notice/AeWSRvyKlhBB2hANoe
Cuando era joven, una vez tuve que sacar una base de datos dBase 2 de una desktop CP/M hacia una PC portátil con MS-DOS.
Configuré un cable serial, ejecuté PROCOMM en la PC, puse ambos puertos en 9600/n/8/1 y, mientras imprimía desde dBase 2, hice que PROCOMM registrara la sesión en un archivo.
Si lo dejaba correr sin pausas demasiado largas para escribir en el disquete, se perdían caracteres, así que controlé el flujo desde el lado de CP/M con ctrl-s/q.
En ese entonces parecía que nadie había encontrado una forma de hacerlo así.
Aun así, si tenía instalado un módem, recuerdo que también debería haber tenido software de terminal.
AppleTalk es lo más cercano a la respuesta correcta. Los drivers venían integrados y Apple mantuvo muy bien la compatibilidad durante mucho tiempo.
Tuve un problema parecido al mover archivos entre un IIGS y equipos modernos: también se puede con un emulador de disquetera, SCSI o serial crudo, pero si pones en medio una Mac que tenga tanto AppleTalk como Ethernet, puedes mover toda la jerarquía de archivos arrastrando y soltando entre el dispositivo de destino basado en AppleTalk y un recurso compartido como SMB, así que es simple.
SCSI también suele ser fácil de convertir si sabes qué conector y tipo de unidad es, y estás dispuesto a encadenar algunos adaptadores. Recuerdo que las unidades SCSI de 2,5 pulgadas usaban conectores de la familia SCA, y mientras respetes las reglas de terminación simple/diferencial, hay adaptadores SCSI para conectar casi cualquier cosa entre sí.
El problema es encontrar un sistema operativo o herramienta que lea el sistema de archivos de las Mac antiguas; probablemente alguna de las utilerías que leen imágenes crudas podía leer y escribir imágenes de disco.
Es muy probable que conectarlo a otro lado para copiar los datos hubiera sido bastante simple. Trabajo en un lugar donde a menudo tratamos hardware de más de 30 años de esta forma, y la clave es salir del marco de una solución de software.
Esto no es un problema de software; en su mayor parte requiere otro tipo de especialización.
Yo también pensé en la conversión SCSI, y aunque el autor dijo que no estaba seguro de si podría leer un volumen HFS, Linux ya tiene drivers HFS desde hace décadas.
En este caso, como se trata de una PowerBook Duo y un disco SCSI, se necesita un dispositivo como una Duo Dock[2], un adaptador HDI-30[3] y una combinación de cables, convertidores y controladores para conectar un dispositivo SCSI paralelo a un sistema moderno.
Si tienes un equipo con ranura PCI Express o un gabinete Thunderbolt PCI Express, recomiendo un adaptador LSI Logic Ultra320, que cuesta menos de 50 dólares en eBay. Es fácil conseguir drivers para macOS, Linux y Windows.
Cuando todo esté listo, conecta las Mac con un cable SCSI y mantén presionada la tecla T durante el arranque de la PowerBook para entrar al modo de disco de destino; si el sistema operativo pregunta si quieres formatear un disco que no puede leer, asegúrate de responder que no.
Para acceder al sistema de archivos HFS, en macOS lo más completo y sencillo parece ser crear una imagen de disco cruda, hacerle una copia de seguridad, instalar Mac OS 9 en qemu, adjuntar la imagen, convertir HFS a HFS+ in situ con Alsoft PlusMaker y luego montar la imagen en el macOS actual.
Como extra, también obtienes un sistema Mac OS 9 emulado en el que puedes ejecutar la mayoría de las apps del disco duro original de la PowerBook en una Mac moderna.
[1] https://developer.apple.com/library/archive/technotes/tn/tn1...
[2] https://en.wikipedia.org/wiki/PowerBook_Duo#Docking_stations
[3] https://www.amazon.com/dp/B0081SAIS2/
[4] https://www.broadcom.com/support/download-search?pg=Legacy+P...
[5] https://wiki.qemu.org/Documentation/GuestOperatingSystems/Ma...
[6] https://www.macintoshrepository.org/19-plusoptimizer-plusmak...
[7] https://www.macintoshrepository.org/809-stuffit-deluxe-1-5-x...
[8] https://www.macintoshrepository.org/1724-toast-5-titanium
Me gusta porque parece un examen práctico de teoría de la información
“Transmite un archivo de 32,000 bytes por el canal que quieras. Todos los canales son malos de alguna manera. Tienes un smartphone, un puerto serial y una computadora. La computadora no tiene compilador, pero puedes usar cualquier función básica. Quedan descartadas las soluciones que requieran más bytes de entrada que el archivo a transmitir, por ejemplo scripts. No hay límite de tiempo, pero gana la solución más rápida. Empieza.”
No sé si con una Mac vieja me habría ido mejor que al autor. Pero si se pudieran reemplazar caracteres visualmente parecidos, como 3 y 8, por otros muy distinguibles, como 8→Z, tienta pensar que quizá lo más rápido sería fotografiar la pantalla con el smartphone y hacer OCR
Creo que System 7 tenía AppleScript, así que tal vez habría sido posible algún paso de sustitución parecido a sed
Instalar hfsprogs, montar el disco y extraer los archivos necesarios, y listo
El conector propietario podría ser un problema y requerir algún rodeo como soldar algo al vuelo, pero por suerte los equipos antiguos suelen funcionar bastante bien incluso así
Sinceramente, es una ventaja de la gente de hardware
Por eso buscaría una codificación que hiciera que los errores fueran extremadamente raros. Si tuviera que volcar todo el disco de la laptop, creo que sería mejor dejarla encendida una semana una sola vez que usar un método más rápido pero propenso a errores
Con un cálculo simple, enviar 320 MB en una semana da 530 bytes por segundo. Si se muestra la pantalla a 4 Hz y se graba con el smartphone, se puede asumir que no habrá cuadros perdidos ni artefactos raros; serían unos 135 bytes por cuadro, es decir 1080 bits
Si divides una pantalla de 8.4 pulgadas y 640×480 en cuadrados de 16×16 píxeles, obtienes unas 1000 celdas de alrededor de 0.5 cm. Mostrando cada celda en blanco y negro durante 0.25 segundos, los artefactos de la cámara no afectarían mucho los datos y se estaría casi en el ancho de banda necesario
Como no se hace OCR de caracteres, se reducen los problemas mencionados arriba, pero primero habría que meter ese programa en la máquina
La parte donde decía que el disco duro interno era SCSI con un conector raro y parecía difícil de adaptar en realidad apuntaba a una solución: usar el bus SCSI
SCSI es un protocolo de bus mastering en el que varios maestros pueden compartir el bus, así que se pueden conectar dos computadoras al mismo bus SCSI al mismo tiempo y acceder juntas al dispositivo de disco. No conviene confiar en escribir simultáneamente al sistema de archivos, pero un disco entero de esa época hoy no es más que un archivo grande, así que bastaba con volcarlo completo
Las inconsistencias de un sistema de archivos abierto serían más o menos como una recuperación tras fallo, y no habrían afectado a archivos guardados desde hacía tiempo
El viejo HFS también habría sido muy fácil de montar en Linux con loopback gracias a las virtudes del estilo open source/New Jersey
Todavía tengo la imagen completa del disco de una vieja Mac SE20 de 1988 y la monto de vez en cuando. También la saqué por bus SCSI. Creo que el 20 se refería a los MHz del procesador 68020, pero casualmente también traía un disco de 20 MB, y la SE30 del año siguiente era parecida
La parte que usaba software de fax me recordó una idea que se me había ocurrido antes pero nunca llegué a implementar. Si en la portada del fax se ponía algo como un gran código QR que codificara el formato .DOC del documento, se podría haber enviado incluso con una máquina de fax común y, si el receptor era un módem de computadora, recibir el documento en su formato original y luego cortar el resto de la transmisión de fax mediante el handshake
Creo que habría sido una forma suave de dejar atrás la vieja tecnología de fax
Hace algunos años pasé bastante tiempo intentando pasar archivos entre una Macintosh Plus y una computadora moderna
En ese momento usé dos unidades ZIP de 100 MB, una SCSI para la Mac Plus y otra USB para la computadora moderna, y más tarde usé una conexión por puerto serial con software de terminal [1]
Hoy existe una opción mejor y barata: BlueSCSI[2]. Es un emulador de disco duro SCSI que puede montar archivos .img almacenados en una tarjeta SD como discos HDD, y también admite emulación de CD y de tarjeta de red
Después de copiar los archivos a una de esas unidades virtuales, se pueden extraer en un equipo moderno con un explorador HFS o un emulador
[1] https://blog.rekawek.eu/2016/12/08/mac-plus#hard-drive
[2] https://bluescsi.com/
Fue una lectura realmente fascinante y, con mis conocimientos limitados de computación, demasiado compleja
Alrededor de 1993~1994, si recuerdo el orden de otros acontecimientos, tuve la oportunidad de “arreglar” una laptop IBM que no arrancaba. Era gruesa, pesada y grande, pero la pantalla tenía apenas el tamaño de un disquete de 3,5 pulgadas
Nunca vi una laptop así ni en fotos ni en ningún otro lado, así que supongo que incluso para los estándares de la época ya era algo más viejo. Si alguien sabe qué era, me encantaría ver una foto
Me la dio una especie de tío/mentor geek del barrio, bastante desfasado de su época, para que intentara arreglarla, y la tuve varios días sobre el escritorio presumiéndola. Creo que probablemente la arreglé de una forma tonta y simple, cambiando el AUTOEXEC.BAT y cargando WordStar. Lo único que necesitaba era WordStar en DOS, ni siquiera Windows 3.x
Es muy probable que esa laptop se la hubieran dado unos misioneros cristianos que visitaban la iglesia local de mi pueblo
Tengo otra historia de reparación de computadoras, pero tendría que recordar y escribir los detalles. Incluye dormir en un cuartel militar en la montaña, tener un guardia armado al ir a orinar y volver a casa atendiendo a una mujer embarazada en una ambulancia. Esa “misión” fue con un amigo vecino de la infancia, pero él falleció, y aquel tío anacrónico también falleció. No tienen relación entre sí
Aunque esa pantalla habría sido un poco más grande que un disquete de 3,5 pulgadas, y ni siquiera tenía disquetera de 3,5 pulgadas, solo soportaba 5,25 pulgadas. La Osborne 1 u otras computadoras portátiles de principios de los 80 tenían pantallas más pequeñas, pero probablemente no corrían DOS
Otro candidato es la PC Convertible: https://en.wikipedia.org/wiki/IBM_PC_Convertible
Si tenía “software de fax”, casi seguro también tenía un emulador de terminal, y se podrían haber enviado los archivos sin corromperlos con algo como ZMODEM
Fue doloroso leerlo, como ver a alguien usar un cuchillo para mantequilla en vez de un destornillador de precisión