Suele ocurrir que hayamos perdido el material en soporte magnético (ya sean cintas o disquetes) de programas desarrollados en los años 80. Si entonces fuimos algo cuidadosos (cosa habitual, porque era fácil tener problemas con los soportes y los lectores de la época) es posible que conservemos el código en formato papel, más parecido al pergamino que otra cosa. Llegados a este caso, y si queremos recuperar esas joyas de la historia (o que simplemente les tengamos cierto cariño), no tenemos más remedio que optar por una de dos opciones: a) ponernos como locos a copiar código (tarea nada agradecida, sobre todo con presbicia, que sin duda tendremos si el código de los 80 es nuestro), b) echar mano de la tecnología para automatizar en lo posible el proceso.
Cuando empece a recuperar el material de los 80 para MSX seguí el camino "a", no por falta de usar tecnología, sino porque en su día no di con la combinación adecuada y de forma fiable. Ahora sí lo he conseguido con la "b", de forma bastante fiable, robusta y práctica. Lo que no quita para que el proceso no sea ni mucho menos automático, pero sí mucho más productivo que la otra opción.
Para ilustrar el proceso vamos a partir del programa de matriculación de alumnos del I.B. Jiménez de la Espada que desarrollé sobre 1985-1986 en lenguaje MBASIC para el ordenador Apple IIe con sistema operativo CP/M. Fue el primer programa de matriculación que se utilizó en el instituto, y yo debería de tener unos 16 años. De entonces conservo un tocho de papeles que son los listados de los programas, que intuyo que son versiones finales, y lo sabré cuando finalice al 100% el proceso de recuperación. El aspecto de los mismos es el siguiente:
Pues bien, en esta entrega voy a describir el proceso que he seguido para recuperar dichos códigos. Aunque en este ejemplo utilizo código BASIC de un Apple II, el proceso es aplicable a otros sistemas de la época, y lo estoy utilizando también tanto para BASIC y ensamblador Z80 de MSX.
Como se puede observar en la imagen anterior, se trata de una impresión matricial, donde el papel está amarronado (en este caso habiendo estado muy bien conservado, sin que le diera la luz), y con la tinta bastante descolorida. Lo primero antes de nada es tratarlo digitalmente para conseguir un mayor contraste. Para este trabajo he utilizado la herramienta Graphic Converter, que es una especie de Photoshop en pequeño, y cuya herramienta "Niveles Automáticos" produce el siguiente resultado:
El siguiente paso es utilizar un programa OCR para extraer el texto de la imagen. En la actualidad hay OCRs a patadas, muchos de ellos gratuitos y con una calidad de reconocimiento bastante aceptable. El problema que presentan la mayoría es que no están preparados para reconocer este tipo de caracteres, y producen resultados tan malos que no sirven para nada. Y en esas estaba atascado hasta que por casualidad leí que Google tenía un OCR gratuito integrado en su herramienta. Me pongo a ello. Subo la imagen a una carpeta de mi Drive de Google. La selecciono y la abro con la herramienta Google Docs. Esta detecta automáticamente que es una imagen y extrae de la misma todo el texto en bruto, sin saltos de línea y dejando un único espacio en blanco, produciendo el siguiente resultado:

























