El misterio con Borland Turbo BASIC 2.1

Hace unas semanas me encontré en Old-DOS.ru con un hecho retro que me pareció digno de ser investigado. Ofrecían para descargar una copia de Borland Turbo Basic en su versión 2.1 y fechada en 1989. Aquello me dejó intrigado, fui un gran amante y usuario de Turbo Basic primero con la «buggy» 1.0 de 1987 y después con la impresionante y mucho más estable fechada ese mismo año. Si existiera un Turbo BASIC posterior me habría enterado. Traduzco la observación en ruso que exponían al respecto: «Extraño por el número de versión (2.1) y la fecha (1989) de lanzamiento de TurboBasic. La primera vez que vino a mí en 1994. ¿Es esta una falsificación hábilmente hecha en los años 90? ¿O es una versión «filtrada» de Borland que nunca salió a la venta? desde todo en el mismo 1989, PowerBASIC apareció bajo los auspicios de Robert ‘Bob’ Zale.»

El paquete de Turbo BASIC 2.1 era solamente su ejecutable principal TB.EXE y el archivo de ayuda TBHELP.TBH, sin el resto de complementos, un hecho que sería explicable si fuera una versión en desarrollo o beta. Podría cuadrar, ya que cuando Bob Zale abandona Borland para fundar PowerBASIC termina lanzando su Power Basic 2.1 en 1990, posterior a aquel 1989 por tanto. Huelga decir que me hacía muchísima ilusión probar algo que en su época me había perdido, más aún si era tan poco conocido como parecía.

Lo primero que hice fue compilar un programa vacío (NONAME.BAS) con Turbo Basic 2.1 y hacerlo con la versión original del 1.1 genuino. El tamaño de los ejecutables era distinto, algo más pequeño el de TB 2.1, así que tenía buena pinta, no parecía un fake.

Con un editor hexadecimal revisé los NONAME.EXE que se habían generado, con el 1.1 figuraba la firma «TURBO BASIC/Copyright (c) 1987 by Borland International/All Rights Reserved RSZale», mientras que con el 2.1 «TURBO BASIC/Copyright (c) 1989 by Borland International/All Rights Reserved RSZale»; aquello seguía cuadrando.

De pronto me di cuenta de algo extraño, la ventana de splash que hacía las veces de «Acerca de» decía «Turbo Basic version 2.1», era lógico, pero había dos espacios entre «version» y «2.1». Sonaba a parche, como si alguien lo hubiera modificado con un editor hexadecimal como hacía yo con los juegos en mis tiempos. En la 1.1 original eso no ocurría, naturalmente.

El misterio con Borland Turbo BASIC 2.1

El misterio con Borland Turbo BASIC 2.1

Me dispuse a utilizar las mismas armas, así que con un editor binario busqué la ocurrencia de «version «, que se mostró sin problemas.

El misterio con Borland Turbo BASIC 2.1

Entonces la comparé con el ejecutable de Turbo Basic 1.1, no tenía el doble espaciado, pero había algo más interesante. La versión no estaba «hardcoded», sino que se obtenía de dos variables.

El misterio con Borland Turbo BASIC 2.1

Restauré la cadena como en el genuino, para que dijera «version %x.%x» y así ver que valores tenían esas variables.

El misterio con Borland Turbo BASIC 2.1

Fue sorprendente porque se identificaba como Turbo Basic 1.0, ¡Debería haberme dado cuenta! Había estado enfocado en ver las diferencias sobre el TB 1.1, pero habría pedido de vista al TB 1.0. De hecho cuando compilé NONAME.BAS no me di cuenta de ello, pero los resultados de la compilación eran mucho más sencillos en la «2.1»/1.0 que en la 1.1.

El misterio con Borland Turbo BASIC 2.1

El misterio con Borland Turbo BASIC 2.1

Aprovechando que tenía montado todo el entorno, decidí rescatar Power Basic 2.1 y ver cómo era. A simple vista se percibía que estaba mucho más avanzado que Turbo Basic 1.1, no menos como el «fake» 2.1. Tenía tantas mejoras que ello había introducido incompatibilidades y era incapaz de compilar el TBDEMO30.BAS sin modificaciones.

El misterio con Borland Turbo BASIC 2.1

El misterio con Borland Turbo BASIC 2.1

El misterio con Borland Turbo BASIC 2.1

¿Por qué entonces el TB.EXE de la 2.1 era más largo entonces? Pues bueno, porque quien modificó los años de copyright y la versión también rellenó de «f» todo el final del archivo.

El misterio con Borland Turbo BASIC 2.1

Finalmente se confirma lo que todos sabíamos, sólo existió Turbo Basic 1.0 (Abril 1987), 1.1 (Noviembre de 1987). Incluso la versión 1.01 que puede encontrarse en algunos lugares tiene toda la pinta de ser falsa, usando unas técnicas como las de esta 2.1.

11 comentarios en “El misterio con Borland Turbo BASIC 2.1”

  1. Muy interesante artículo, gracias mi amigo Guti.
    Un abrazo a mi amigo Sergi y a mi hermano de mi Isla Querida.
    Cuídense.

  2. Inteligente trabajo forense. En programación nadie tiene la última palabra y como en todo, ha habido y hay «magos» muy buenos en lo suyo, Siempre he usado y priorizado lo que llamo «Pequeñas joyas» , programitas minusculos pero muy resultones y eficientes en su tarea y que a veces hacen algo que mas nadie ofrece, creados por genios de la programación. Estos creadores de minisoftwares son los «Artistas Bauhauss y minimalistas» de este mundo tan amplio y desconocido para los profanos en la materia. Me asombra a veces que piezas de solo algunos kB de peso logren hacer tareas muy necesarias y que otros programas para lograrlo, dispongan de un bastante mas grande codigo de programación. Por poner un ejemplo que uso bastante en mi trabajo, está el «Smilla Enlarger» muy sencillo, rápido y eficiente.
    Una de mis premisas al instalar es que de dos programas que hagan lo mismo siempre seguiré al mas pequeño, al que menos recursos exija. Es un habito que tengo de la epoca que las PC tenian menos ram y potencia que cualquier movil de gama baja actual.

  3. Buenos dias-tardes para todos los amigos del blog. Ricardo, Sergi, Jostma, Kabe, Rebeka Smith, WR100, Vanessa, Aficionadoalosrelojes, Basilisa sin olvidar al creador del espacio Don Javier y al resto de los amigos. Pasen un buen Domingo y cuidense mucho!!.

    Pd: Es muy triste que los salvajes talibanes esten tomando por la fuerza Afganistán y ya hoy controlan mas del 50% del territorio del pais. Sumiendo a su desvalida poblacion en la oscuridad de sus prácticas trogloditas. Todos somos humanos y vecinos del mismo lugar, nuestro maltratado planeta.

  4. Actualización: Ya tomaron Kabul la capital de Afganistán y aunque por ahora no hay violencia, si se ven las grandes filas de autos con familias abandonando sus zonas por no caer bajo la opresión del Taliban.

    Nuevo terremoto de 7 grados en Haiti.

  5. Me pregunto: ¿y por qué esa «f» ahí? Tiene algún sentido? Muy bueno lo del hardcoded, es el quid del asunto, a mí me la habrían colado 😀 Genial lo de poner las dos variables ahí y ver qué hacía.
    (si esto lo lee alguien que no sea friki de la programación debe pensar que estamos para que nos encierren)

  6. Javier Gutiérrez Chamorro (Guti)

    ARB Cuentatiempos desgraciadamente estas cosas de bajo nivel se han ido perdiendo. Antaño que un ejecutable fuera 10 veces más gordo era preocupante, ahora nadie se daría cuenta.

    Julieta Hermida lo de las «F» al final no tiene ningún motivo. Estando fuera de la parte ejecutable podrían haber metido lo que quisieran. Supongo que quién hizo lo del fraude le gustó esa letra.

    Un placer Joanra.

    Gracias por mencionarme, y por el enlace Fanta56k. Un placer que te gustara el reportaje.

  7. Javier Gutiérrez Chamorro (Guti)

    Me alegra que haya quedado tan bien explicado pepe. Lo entendiste perfectamente. Un saludo, y bievenido.

Deja un comentario