Archivo de la categoría Retro

Watcom C++ y Sieve para DOS



Hace unos años redacté Sieve en C, una macro-comparativa del rendimiento de diferentes compiladores de C/C++ para Windows ejecutando una implementación de la Criba de Eratóstenes o Sieve. Unos días atrás publiqué Visual C++ 2008 vs Visual C++ 2017, y volvió a picarme el gusanillo sobre lo que ha evolucionado la calidad del código generado por los compiladores.

A ello se ha sumado el anuncio por parte de Walter Bright que DigitalMars C++ es ahora código libre. DigitalMars es la continuación del clásico Symantec C++, y a su vez del legendario Zortech C++.

(adsbygoogle = window.adsbygoogle || []).push({});

El proceso ha sido bastante sencillo.…

Continuar leyendo...

DEP Terry Colligan



Muchos ya no recordaréis a Terrance “Terry” Colligan, el fundador de Rational Systems luego renombrada a Tenberry Software y que entre otras cosas desarrolló el extensor DOS DOS/4G que se recordaría por su versión recortada DOS/4GW incluida con Watcom C.

Doom, Descent, Duke Nukem 3D, Mortal Kombat o Rise of the Robots entre otros fueron los títulos que explotaron toda la potencia de los 32 bits gracias al trabajo de Terry.

Nacido un 25 de julio de 1947 en Arizona, había cumplido 70 años en el momento de fallecer a la edad de 70 años el pasado 18 de mayo de 2018. Extrañamente he tenido que ser yo, junto con Rugxulo el que nos hayamos percatado del triste acontecimiento 3 meses después.…

Continuar leyendo...

ThunderBYTE Antivirus para Windows NT



Hace 10 años escribía ThunderBYTE Antivirus, un artículo en el que hablaba del revolucionario antivirus TBAV.

Navegando por la Wikipedia me topé con el artículo oficial de TBAV, un artículo bastante malo y lleno de anotaciones, un reflejo del poco interés que suscita este software. Lo que más me llamó la atención es que como referencia se menciona un artículo en The Tech Box en 2012, 4 años después que el mío.

esimeon, el autor que firma el artículo en The Tech Box, robó direvtamente la captura de pantalla de TBAV que publiqué en mi blog, algo que pese a estar prohibido por la licencia Creative Commons es desgraciadamente bastante habitual.…

Continuar leyendo...

Evolución ZIP



Desde PowerArchiver 2017 no escribía nada acerca de compresión, una de mis pasiones desde que empecé con la informática junto a los antivirus.

Hoy voy a hablar otra vez sobre Optimización de archivos .ZIP, esta vez, en cuanto a la evolución del software.

En tiempos en que al menos en España, triunfaba LHARC y ARC, y todavía quedaban rastros de ZOO estaba PKZIP. La herramienta de compresión escrita por Phil Katz en PKWare como evolución de su anterior creación PKARC / PKPAK era para mi increíble, con una velocidad de ejecución nunca antes vista.

En 1989 aparece PKZIP 0.8, e iría evolucionando hasta el final de su vida, al menos bajo DOS, en 1999 con PKZIP 2.50.…

Continuar leyendo...

Libros de programación



Fernando se dio cuenta de algo curioso, he escrito muchísimo sobre libros, y más aún sobre programación, en especial de la vieja escuela, o las batallitas del abuelo cebolleta como yo las llamo. El caso es que nunca hay escrito sobre ambas disciplinas a la vez. Es decir, sobre libros y sobre programación. En su Guía de referencia rápida para programadores, “Funciones del MS-DOS” y “La ROM BIOS de IBM” de Ray Duncan me retó a hacerlo, así que ahí voy…

En Al principio fue el libro resumía la importancia clave del material impreso por aquella época de los años 80 y 90.…

Continuar leyendo...

REBOOT para DOS



Disfruté bastante haciendo UPTIME 2.0 para DOS, así que me puse unos minutos, y desarrollé REBOOT.

Esta sencilla utilidad para DOS de 126 bytes en un archivo .COM, se encarga de lanzar un reboot o reinicio de equipos basados en DOS. En realidad, es un reinicio en caliente, o warm boot, similar al que obtendríamos pulsando Ctrl-Alt-Supr.

He usado ASMC, pero debería poderse ensamblar sin problemas con JWASM, UASM, o incluso MASM. La implementación es sencilla, salta a la dirección de memoria FFFF:0000, que almacena la rutina de reinicio de la BIOS. Dicha rutima, asume que en la posición 0040:0072 hay un entero de 16 bits que indica la forma de reboot.…

Continuar leyendo...

smart.inc



De TASM, Turbo Assembler, recuerdo una directiva que me encantaba, era SMART, y la agregaba a todos mis programas, porque increíblemente, no se podía activar desde la linea de comandos.

El modo SMART, realizaba ciertas optimizaciones sobre el código ensamblador, por ejemplo era capaz de convertir algo como:

shr ax, 2

En:

shr ax, 1 shr ax, 1

Os parecerá una absurdidad, pero lo cierto es que los procesadores anteriores al 80188 y 80186, como los 8086 y 8088, sólo permitían realizar desplazamientos de bits de una posición. Lo que hacía TASM cuando el procesador de destino no soportaba esa operación, era transparentemente transformarlo.…

Continuar leyendo...

EasyCode Visual Assembler



Con Uptime en ensamblador, volví a adentrarme en el maravilloso mundo de los ensambladores, que tantos buenos recuerdos me había traído.

Os comenté, que actualmente existen gran variedad de herramientas de este tipo, muchas de ellas, derivadas de Openwatcom Assembler (WASM), como UASM, ASMC o el difunto JWASM. Lo cierto es que si no fuera por OpenWatcom, y sin contar el pionero NASM (Netwide Assembler), todavía seguiríamos usando assemblers comerciales como Borland Turbo Assembler (TASM) o Microsoft Macro Assembler (MASM).

Lejos quedan los tiempos en que teníamos Arrowsoft A86/A386 y poco más.…

Continuar leyendo...

Uptime 2 para DOS



No hace mucho que os hablaba de Uptime para DOS, y que publiqué la versión 1.00 y la 1.10, un sencillo programa escrito en FAST, y que replicaba el comando uptime de UNIX.

El desarrollo empezó muy bien, con una eficiencia casi de ensamblador, pero contando con la ventaja de las estructuras de alto nivel. Hasta que me topé con el impedimento de las conversiones entre números de 16 y 32 bit, y con el maldito bug de mod32.

Entonces me planteé escribir la versión 2.00 en ensamblador. Menos de 150 lineas en código FAST, no parecían gran cosa en ensamblador. Así que comencé con JWASM (Japheth’s Watcom Assembler), un ensamblador y enlazador al mismo tiempo, compatible con MASM, de código abierto y que se contruyó sobre la base de Open Watcom Assembler (WASM / OWASM).…

Continuar leyendo...

Uptime para DOS



Al hablar de FAST, me entraron ganas de recordar viejos tiempos, así que un poco como con Bell/beep en ensamblador, decidí implementar algo sencillito que accediera al hardware de bajo nivel.

Lo más tedioso de ensamblador, es que no tienes ninguna biblioteca que tenga implementadas conversiones de números para mostrarlos en pantalla (binario a ASCII), o como en este caso de BCD (Binary Coded Decimal) a binario. En eso FAST Compiler, me iba a ayudar bastante.

En el grupo de desarrollo de FreeDOS, ha habido recientemente cierto interés, en portar aplicaciones UNIX a DOS, algo que implica una gran inversión de tiempo para familiarizarse con la implementación original, y que no me interesaba.…

Continuar leyendo...