Archivo de la categoría Retro

C/C++ interpretado



Hoy día nos puede parecer que el bytecode, y los lenguajes más o menos interpretados son algo puntero, aunque de hecho Visual Basic del 1 al 4 ya lo utilizaban, y anteriormente lo hicieran varios entornos xBase como FoxPro o Clipper, o el popular Quick Basic.

Lo que en mi experiencia resulta un hecho más insólito es un compilador de C/C++, que soporte código interpretado, y ese, era un producto tan conocido como ni más ni menos Visual C++.

En su versión 1, de la que la 1.52 resultó el máximo exponente, y que luego vino como regalo a aquellos que adquirían la versión 4, teníamos la capacidad de compilar todo o parti de nuestro proyecto a p-Code.…

Continuar leyendo...

Lotus, Intel y Microsoft



Ahora puede resultar curioso o lejano, pero hubo un tiempo en que Lotus (ahora IBM), Intel, y Microsoft, se unieron para desarrollar la especificación que posteriormente se denominaría LIM, como acrónimo de sus siglas: Lotus-Intel-Microsoft.

Hablamos del año 1984, dónde por primera vez la frase de que 640 Kb. deberían ser suficientes, deja de ser válida, gracias a la hoja de cálculo Lotus 1-2-3, que en determinados ámbitos, se quedaba corta de memoria RAM para almacenar la matriz de filas y columnas.

Así surge LIM EMS 3.2, el estándard de memoria expandida, que mediante un tarjeta de expansión ISA, permite ampliar la memoria de cualquier PC, para ser usada por programas diseñados a tal efecto.…

Continuar leyendo...

Las opciones de ARJ



En su momento no adopté ARJ, me parecía que su rendimiento era bajo, y las ganancias en cuanto a ratio de compresión, comparado con PKZip o LHARC no merecían la pena.

Si que en cambio lo utilicé puntualmente, y me sorprendió la cantidad de opciones de que disponía, recuerdo que la linea de comandos típica para comprimir al máximo en volúmenes era así:

ARJ a -jm -va A:\COPIA.ARJ *.*

Como acto rememorativo, he descargado la última versión de ARJ, y he extraído los comandos y opciones disponibles.

Example ARJ/ARJ32 commands:

Add files minus directory structure: ARJ a -e archive *.*
Add two files to archive: ARJ a archive name1 name2
Add files to archive with verification: ARJ a -jt archive *.*
Add files with archive damage protection: ARJ a -hk archive *.*
Add files with maximum compression: ARJ a -jm archive *.*
Add several directories of files: ARJ a archive … dir1 dir2 dir3
Add thousands of files to an archive: ARJ a -hm1 -r archive *.*
Add a chapter to an archive: ARJ ac archive c:\dir\*.* -r
Comment archive header only: ARJ c archive -zcmt.fil
Convert standard archive to chapter: ARJ cc archive
Convert chapter archive to standard: ARJ y archive -jb0
Delete the last chapter from an archive: ARJ dc archive *.*
Delete files completely from all chapters: ARJ d archive -jb* name1 name2
Strip archive comment only: ARJ c archive -zNUL
Extract files from archive: ARJ e archive
Extract maintaining directory structure: ARJ x archive
Extract new and newer files without query: ARJ e archive -u -y
Extract subdirectory from archive: ARJ e archive subdir\*.* -p1
Extract files to directory: ARJ x archive destdir\ *.*
Extract files to directory: ARJ x archive *.* -htdestdir
Extract files to directory with space: ARJ x archive "Program Files\ "
Extract files to directory with space: ARJ x archive "-htProgram Files"
Extract a Win95 archive to plain DOS: ARJ x archive -hf2
Extract all files present in chapter 10: ARJ x archive -jb10
Extract only files updated in chapter 10: ARJ x archive -jb10*
List files in archive: ARJ l archive
List chapters in chapter archive: ARJ lc archive
Move files to archive: ARJ m archive *.doc
Move files to archive deleting per volume ARJ m archive *.doc -d2 -v1440
Move files from archive: ARJ e -d archive *.doc
Recover files from a damaged archive: ARJ x archive -jr
Test integrity of files in archive: ARJ t archive
Test multiple ARJ archives: ARJ t *.ARJ -hr
Add files to a multiple volume archive: ARJ a -va a:archive *.*
Create up to 999 archive volumes: ARJ a -va a:archive
Extract from a multiple volume archive: ARJ x -v a:archive
Create a multiple volume self-extractor: ARJ a -va -je a:archive *.*
Convert archive to self-extractor: ARJ y -je1 archive

Backup drive C to drive A:
ARJ a A:\backup C:\ -a1 -b2 -r -vvas -wC:\ -js -jt -hk
Restore backup on drive A to drive C: ARJ x A:\backup C:\ -vv -y

More detailed ARJ/ARJ32 information:

Usage: ARJ <command> [{/|-}<switch>[-|+|<option>]…] <archive_name>[.ARJ]
[<base_directory_name>\] [<!list_name>|<path_name>|<wild_name>…]

or

ARJ @response_filename [ -& | -+ | -g?…

Continuar leyendo...

El archivo hosts



Si te dedicas a internet, ya sea en la modalidad de programación, como de sistemas, seguro que sabes lo que es el archivo hosts, y probablemente también lo hayas utilizado alguna vez. Si no, es posible que lo hayas utilizado para realizar acciones poco éticas.

Lo que seguramente no sabes, es porqué ese archivo está allí, y funcionando desde tiempos inmmemoriales en diferentes plataformas desde *NIX, hasta Windows, Netware, OS/2, o Mac.

Antes de internet, cuando la red era militar, la mayoría de dominios eran .mil, y se la conocía como ARPANET, no había protocolo DNS (RFC 2535) ni por tanto servidores de DNS.…

Continuar leyendo...

CP/M en vivo



Ya os hablé hace bastante tiempo de CP/M (Control Program for Microcomputers), lo que hoy os traigo es un video de alta calidad, que muestra brevemente su funcionamiento.

Si no lo pudisteis disfrutar en su día, os va a servir para haceros una idea más clara de como era, y sobre todo, para valorar justamente la innovación que aportara hoy hace casi 35 años, en 1975.



Continuar leyendo...

SQLite compilado para DOS (386)



No me di cuenta, pero el ejecutable que publiqué en SQLite compilado para DOS, tenía un problema. No era realmente un bug, ni nada por el estilo, sino un problema de concepto.

El asunto está en que Visual C++ 2008, genera instrucciones de Pentium y superiores a la hora de compilar, que en general no sería un problema si hablamos de Win32, pero lo es absolutamente si hablamos de DOS, pues recordemos que DOS, es capaz de funcionar incluso en equipos basados en procesadores 8088.

Para ello, he actualizado los fuentes del artículo original para SQLite 3.6.23.1 (en vez de la 3.6.21), y los he compilado con OpenWatcom 1.9 RC5, esta vez generando código para 386, sin FPU, y optimizando para tamaño en vez de para velocidad.…

Continuar leyendo...

JS ZX LOAD "" SCREEN$



Después del primer experimento que publiqué usando HTML, JS Noise, ahora le llega el turno a algo un poquito más avanzado, y que he titulado como en laguísimo, y poco original nombre de JS ZX LOAD "" SCREEN$.

Esta vez de lo que se trata, es usando canvas de HTML 5, simular las cargas de pantallas gráficas de nuestro queridísimo Sinclair ZX Spectrum.

La demostración en custión imita el borde de carga, el dibujo progresivo de la imagen, así como la carga final de sus atributos. Le he añadido al principio una recreación de cómo se cargaban este tipo de pantallas. El efecto es bastante resultón después de todo, a pesar que no se incluye por ejemplo el efecto de la carga de la cabecera del archivo, y que naturalmente no se está emulando la memoria de video del Spectrum, de manera que tanto las lineas, como los atributos, son una pura recreación.…

Continuar leyendo...

Simulador de Casio W-59 en Flash



Hace casi 3 años, comencé un simulador de reloj digital Casio W-59 en Flash CS4 con Actionscript 3. Por esas cosas extrañas que a veces ocurren, después de la tarde inicial que invertí en desarrollarlo, el proyecto quedó en el olvido.

Hace algunas semanas lo reencontré, y planeé reescribirlo con Flash CS5, simulando todas sus funcionalidades. Sin embargo, por falta de tiempo, y otras prioridades, el momento de aplicar todos esos cambios nunca llega, de manera que me he decidido a publicarlo, incluyendo sus fuentes, para que podáis incrustarlo en vuestras páginas, o para que lo podáis modificar y ampliar como deseeis.…

Continuar leyendo...

Blinker



La necesidad de actualización, y los rápidos avances han hecho que Blinkinc haya dado finalmente sus últimos coletazos. Anteriormente conocidos como ASM Inc, fueron los creadores de Blinker, y los no tan populares Shrinker y DeltaPatch.

Blinker tuvo mucho éxito entre los desarrolladores Clipper, debido a ser un enlazador rapidísimo, y que era el complemento ideal a Clipper, en sustitución del vetusto RTLink, aportando grandes mejoras de productividad. Tanto es así, que al final, Blinker, aunque fuera una versión antigua, venía incluído en el paquete de Clipper.

Como es lógico, Blinker no estaba destinado solamente a Clipper, y permitía enlazar otros programas DOS, Win16 y Win32 escritos en otros lenguajes, y gracias al hecho de estar bien codificado, y escrito en ensamblador, ser más veloz de TLINK y por supuesto LINK.…

Continuar leyendo...

Microsoft Query "2010"



Microsoft Query, también conocido como MSQRY32, MSQUERY o sencillamente MSQRY es una olvidada utilidad que viene incluida con Excel desde la versión 5 de 1993, y por ende, incluido posteriormente desde Office 4.2.

A pesar del nombre del ejecutable, o su innegable herencia de de la versión 1.0 todavía de 16 bits, en Office 2010 se ha actualizado a la versión 14, donde exceptuando un port completo de x64, contiene las mismas funcionalidades de antaño.

Sorprende que una herramienta así, de la que reconozco he hecho uso en determinadas ocasiones del pasado por su simplicidad, siga casi 20 años después sin apenas cambios, y lo que es más importante, todavía distribuyéndose.…

Continuar leyendo...