Archivo de la categoría Programación

FileOptimizer



Ha pasado algo más de un año desde TBClamAV, y ya me empezaba a entrar el gusanillo de desarrollar otra cosa. Además, a pesar de lo capaz que era TBClamAV, obtuvo menos éxito del que me esperaba. Quiero creer que por la decreciente popularidad de The Bat!.

De manera que me propuse crear FileOptimizer o File Optimizer, un optimizador de archivos nativo para Windows, gratuito y de código abierto, que consiguiera reducir el tamaño de los mismos, sin pérdidas de calidad (lossless), a lo sumo, y de manera configurable, puede eliminar los metatags, pero ese es el único cambio que en apariencia externa realiza sobre los archivos, a pesar que a nivel interno se efectúen gran cantidad de manipulaciones.…

Continuar leyendo...

DOS en la actualidad (II)



Pasamos al mundo de aplicaciones que podemos usar sobre DOS:

Programación
Como decía al principio, es sin duda el punto fuerte de DOS, con buenos entornos de programación para los lenguajes más habituales, y para los que no tanto también.

Basic: QuickBasic/Microsoft Basic PDS/Visual Basic, Turbo/Power Basic

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

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

C/C++: Borland C++ 3.1, Turbo C++ 4, OpenWatcom C++, DigitalMars C++ 8.52
(adsbygoogle = window.adsbygoogle || []).push({});

Ensamblador: Microsoft Macro Assembler (MASM), Netwide Assembler (NASM), Borland Turbo Assembler (TASM).…

Continuar leyendo...

Outlaw (II)



Nos planteamos pasar a Watcom C++ 10.5, necesitamos sobre todo menos lío con la gestión de XMS, pero lo que en realidad nos gusta es su rendimiento. Sin embargo, tenemos tanto código específico para Borland de cara a exprimirlo al máximo, y tanto ensamblador en modo real, que hacerlo vendría a ser casi como empezar de cero. Por no hablar de eliminar otra vez las dependencias de XMS, y buscar nuevas librerías sustitutivas. Tiempo después nos sorprendería que si bien títulos punteros y que admirábamos como Mortal Kombat, lo usaban, Street Fighter II, nuestro preferido, lo hacía con Borland C++.…

Continuar leyendo...

Outlaw (I)



En 1995 comenzamos a desarrollar una biblioteca de funciones gráficas para modo 13h de MCGA/VGA (320×200 con 256 colores). Por aquella época lo que más nos motivaba era la prestación pura, así que no es de extrañar que estuviera escrita casi al completo en ensamblador. Las primeras versiones hacían uso del juego de instrucciones básico del 8088/8086, pero en seguida nos dimos cuenta que si queríamos ir en serio, debería obtener el rendimiento extra que daban primero las instrucciones del 286, y luego del 386, llegando incluso a jugar con el scheduler del Pentium. El nombre que le dimos fue glib.…

Continuar leyendo...

Letras degradadas



A mediados de los 90, empezaron a popularizarse en juegos comerciales, y demos, las tipografías degradadas. A principios de 1991, yo ya lo había implementado. Vi diferentes variantes desde las bitono, con la mitad superior de cada letra de un color, y la mitad inferior de otro color, que era requerido en CGA, EGA y VGA con 16 colores o menos, y la variante que degradaba verticalmente todos los píxeles.

Las diferencias, aparte de los años de antelación son que yo lo hice con QuickBASIC 4.5, de manera que aunque funcionaba, distaba mucho de ser eficiente, y en un PC/XT de la época se podía imprimir una pantalla de texto a resolución MCGA/VGA 320×200 con 256 colores en aproximadamente 1 segundo.…

Continuar leyendo...

Quick C, Quick Pascal y Quick BASIC



La gama Quick de Microsoft fueron productos para programadores en general bastante efímeros en el tiempo (1985 – 1990), y que se definían por combinar un entorno de usuario amigable, junto con un precio más o menos asequible.

Usaban la interfaz de usuario conocida de Works, Edit, Macro Assembler, Fortran, Word, … Integraban la mayoría de características necesarias en un sólo paquete, siendo las respuesta natural a la amenaza que causaban los Turbo de Borland.

Irónicamente, esos entornos de usuario integrados, y que en general se incluyeron en la familia Quick, pasarían a formar parte posteriormente de las gamas profesionales.…

Continuar leyendo...

Take Command 14



Se ha lanzado la nueva versión 14.0 de Take Command, que a pesar del tiempo, sigue mejorando y actualizándose.

La lista de novedades no es muy grande para ser sinceros, y podría ser más una versión 13.10. Aparte de las nuevas funciones que ya son tradición para cada nueva versión, se incluye el nuevo comando TPIPE, un filtro mejorado para realizar conversiones de archivos, búsquedas y reemplazos.

Por lo demás los cambios son poco visibles, parece ser que se ha reescrito la interacción con internet, pero es algo indistinguible para el usuario.



Continuar leyendo...

Turbo C, el entorno agradecido



De mediados de los 80, y casi durante 10 años, la mayoría de juegos comerciales se desarrollaban en todo o en parte usando Borland Turbo C.

En 1986, y coincidiendo con el lanzamiento de Turbo C 1.0, C representaba un lenguaje conocido, potente, y con fácil acceso al hardware del sistema, que lo hacía ideal para el desarrollo de software que requería aprovechar al máximo el hardware, y sus capacidades multimedia, como era el caso de los juegos.

Por esa época, y aunque todavía había desarrollos escritos totalmente en ensamblador, la creciente complejidad de los mismos comenzó a agradecer el uso de herramientas de más alto nivel.…

Continuar leyendo...

RawCopy, Neverlock y Locksmith



Si durante los 80, el enfoque para atacar las protecciones anticopia en el software de PC eran los copiones o copiadores como Copywrite y Copy II PC, enseguida se vieron limitados por nuevas protecciones anticopia, y que ya no siempre estaban vinculadas al soporte físico que era lo que estas herramientas conseguían saltarse.

Las nuevas protecciones de los 90, iban desde páginas de códigos que venían incluidas en el manual original, y se solicitaban al iniciar el juego, hasta las vinculadas a marcas en el disco original. En ambos casos, era protecciones comprobadas por software, y que por tanto un adecuado parcheo podía evitar.…

Continuar leyendo...

Encriptador Xor en Javascript



En los años 80 y 90 con una potencia de proceso más que limitada, los algoritmos de tratamiento de datos que se usaban eran sencillos en concepto, y eficientes en implementación.

Así se comprimía y descomprimía información usando variantes de Run-length encoding (RLE) o Lempel–Ziv–Welch (LZW), se encriptaba usando el algoritmo de César el de Vigenèreo, o el de Xor, y la comprobaciones de integridad de hacían con checksum o Adler como mucho.

Codificar cualquiera de estos algoritmos tiene el encanto de que son ideas sencillas, y brillantes al mismo tiempo. Pero es que además, son candidatas idóneas para ser ejecutadas en entornos poco potentes, ya sea por ser lenguajes no nativos sin demasiado desempeño como Javascript o PHP; bien porque deban ejecutarse en plataformas no demasiado potentes como teléfonos móviles o tabletas.…

Continuar leyendo...