Hubo una vez un grupo de muy jóvenes entusiastas de las ciencias y la
electrónica.
El cuartel central donde ocurría la magia —o lo que ellos insistían en llamar
magia, porque la mitad de las veces no sabían si iba a andar o si iba a
explotar algo— era el que bautizaron “el
cuarto de la cafeína”.
En realidad, el cuarto de la cafeína no era más
que el galpón en la casa de Cocoliso,
amigo de el que todos conocían como “el
Samurái”. Radioaficionado, curioso y dueño de esa habilidad para
soldar que hacía que pareciera fácil lo que no lo era. Esa curiosidad
peligrosa, mezcla de ciencia, mate lavado y aburrimiento rosarino, que hace que
uno termine investigando cosas que quizás, solo quizás, no figuraban en el
manual de uso responsable de la tecnología.
El cuarto de la cafeína
El galpón era un pequeño santuario
electrónico: estanterías repletas (Entre otras cosas) de componentes, cables de
colores que se enredaban solos, transformadores que daban miedo tocarlos y un
olor constante a soldador caliente que, para ellos, era lo más parecido al
perfume del conocimiento. Entrabas y sabías que ahí adentro podía pasar
cualquier cosa: desde arreglar un handy hasta descubrir, casi por accidente,
cómo convencer a una tarjeta de teléfonos públicos de que no había visto nada y
que, por lo tanto, podía seguir funcionando sin límite.
Por supuesto, ellos siempre hablaban de “experimentos”
que sonaba más científico, más legal, más de National Geographic. Y además
evitaba explicaciones incómodas si alguien preguntaba.
Además del Samurái y Cocoliso, estaban varios compañeros
más: Pistón Loco, Pixel y Dedo Curioso.
Un elenco estable que parecía sacado de una novela de Fontanarrosa, pero con
menos talento literario y muchísimos más destornilladores y códigos fuente.
Cada uno aportaba algo distinto al ecosistema
del cuarto de la cafeína:
·Pistón
Loco, que tenía una puntería especial para encontrar el único cable
que no había que tocar.
·Pixel,
capaz de desarmar cualquier cosa, incluso cosas que no hacía falta desarmar.
·Dedo
Curioso, un tipo callado pero con esa mirada que indicaba que estaba
tres ideas más adelante que todos los demás… o que se estaba acordando de algo
que había olvidado quién sabe dónde.
Era un equipo imperfecto, caótico y
absolutamente genial. Un grupo que, si lo mirabas desde afuera, parecía que estaban por fabricar un rayo
desintegrador para vengar la derrota de Central del ’92, o al menos
algo que ameritara la intervención inmediata de los bomberos o la policía.
Pero no eran más que un puñado de pibes curiosos, con una leve tendencia a
meter mano donde no correspondía, siempre en nombre de la ciencia, por
supuesto.
En ese ambiente se gestó “el descubrimiento”: la revelación
técnica que les permitiría hablar por teléfono público sin mirar la hora. Un
pequeño ajuste, un golpe de ingenio, un toque creativo que hoy se llamaría
hackeo, pero que en aquel entonces —y por cuestiones legales, morales y de
supervivencia futura— preferían denominar “una mejora del sistema por observación empírica”.
Muchos detalles de cómo se llegó al éxito me
los guardo, tal vez para una segunda parte… o para cuando prescriba todo, viste
cómo es. Pero la cuestión es que, en un momento, ya estaban tan embalados que
hasta habían logrado cambiar el mensaje del display. Un
triunfo tecnológico rotundo, de esos que te inflan el pecho.
Eso sí: lo dejaron como estaba inmediatamente,
apenas vieron que funcionaba. No fuera cosa que algún supervisor de la compañía
se avivara y empezara a preguntar por qué en vez de “Levantá el tubo” decía
“Hola mamá”.
Después vino la etapa de pruebas, esa donde
cada uno hizo lo que cualquier joven responsable y sensato haría con un recurso
telefónico ilimitado:
·Algunos probaron llamando a familiares fuera del país, para asegurarse de
que el sistema funcionara internacionalmente, pura rigurosidad científica.
·Otros —los que dominaban bien el inglés, o
creían dominarlo— se dedicaron a llamar números al azar en las Islas Malvinas, quizá como un
intento personal de relaciones exteriores.
·Y el resto aprovechó para hablar con la novia,
charlar un rato, estirar la conversación y disfrutar de ese lujo impensado en
los tiempos en que cada minuto de teléfono costaba más que un choripán en la
costanera.
Fue un carnaval de voces, risas y
descubrimiento adolescente, Porque, al final, eran apenas un puñado de pibes
en un galpón, convencidos de que estaban empujando los límites de la electrónica
y la programación…
La noche en que el cielo se encendió (Febrero de 1991)
Era una de esas noches de verano rosarinas: cálidas, tranquilas, con la ciudad envuelta en ese rumor constante de autos, charlas y radios encendidas. Estaba con un par de amigos por Pellegrini y Mitre, justo donde hoy está el hipermercado La Gallega. En ese entonces había allí un local llamado “Yogurt Time”, de esos lugares nuevos, con luces blancas y carteles color pastel, donde uno podía sentarse a charlar y tomar algo fresco.
Recuerdo que hablábamos de cualquier cosa —cosas de pibes, tecnología, música, la radio— cuando, de golpe, se escuchó una explosión seca, profunda, como un trueno metálico que resonó en el aire. Levantamos la vista y lo vimos:
una enorme bola de fuego cruzando el cielo, dejando una estela incandescente que parecía partir el cielo en dos. Fue tan brillante que, por un instante, las sombras en la vereda se movieron, como si el día hubiese vuelto por un momento.
Nos quedamos mudos. Algunos que pasaban también se detuvieron, sin entender qué era aquello. La bola se deshacía lentamente en fragmentos que chispeaban y desaparecían en la oscuridad. Duró apenas unos minutos, pero se grabó en mi memoria como si hubiera ocurrido en cámara lenta.
Las noticias confirmaron la verdad: lo que habíamos visto no era un meteorito ni un avión, sino el reingreso de la estación espacial soviética Salyut 7, desintegrándose sobre el cielo argentino. Me impresionó pensar que, por pura casualidad, habíamos sido testigos de un pedazo de historia espacial cayendo sobre Rosario.
Desde entonces, cada vez que paso por esa esquina y miro hacia arriba, todavía recuerdo aquel instante en que el cielo se encendió y todos quedamos en silencio, mirando cómo una estación espacial se despedía de la Tierra sobre nuestras cabezas.
Hace algunos años, por pura casualidad, me encontré con un video verdaderamente maravilloso en el canal de YouTube de Roberto Mandracchia (LU4FBU). El material, de un valor histórico incalculable, fue grabado en el campo de antenas del Radio Club Rosario (LU4FM), y transporta a una época muy especial para todos los que vivimos la radioafición con pasión.
El video registra actividades realizadas el último fin de semana de marzo de 1993, probablemente durante el concurso CQ World Wide (WPX), uno de los eventos más emblemáticos del mundo de la radioafición, organizado por la revista CQ. Este concurso internacional desafía a los participantes a realizar la mayor cantidad posible de contactos con prefijos de indicativos distintos, en un lapso de 48 horas. Se celebra en diferentes modos, como SSB y CW, y representa una oportunidad única para conectar con radioaficionados de todo el planeta, poniendo a prueba tanto la técnica como la camaradería.
Aunque nunca participé formalmente en ninguno de estos concursos, disfrutaba muchísimo asistir, observar, y colaborar de alguna manera en esas largas jornadas llenas de energía, antenas, señales, y voces que cruzaban el éter.
Entre las muchas caras conocidas que aparecen en aquel registro se encuentra Javier (LU6FPI), quien me acompañó esa misma madrugada del sábado 27 de marzo de 1993 a tomar un café en una estación de servicio de Villa Gobernador Gálvez. Allí, como una coincidencia más de esas que solo la vida puede armar, nos encontramos con Marcelo (LU3FMM), la misma persona que años antes había pintado el legendario cartel de “ON LINE Software” sobre los vidrios del negocio.
Y así, más de treinta años después, volví a encontrar aquel video casi por azar, y sentí la necesidad de escribir estas líneas como una especie de homenaje al Radio Club Rosario (LU4FM). Porque más allá del tiempo transcurrido, las imágenes, las voces y las memorias siguen vivas, recordándonos lo que significaba —y aún significa— ser parte de esa gran comunidad de apasionados por la radio.
A algunos los recuerdo más que a otros, pero algunos de los que aparecen en el video y cuyos nombres y/o licencias recuerdo son:
Javier LU6FPI - LU9FDG Francisco - Hernán LU3FP - Florentino LU2FYA - José María LU5FAO - Ricardo LU9FIO - Lucas LU1FAM - Jorge LU6FEC - Roberto LU7FPI - Tony LU2FFD - Alfredo LU8FDZ - Jorge LU7FW - Horacio LU9FIM
Y mis disculpas sinceras a quienes aparecen en el video y cuyo nombre o licencia no logro recordar en este momento. Han pasado muchos años y, aunque las imágenes siguen tan vivas como entonces, algunos detalles se van perdiendo con el tiempo.
A medida que vaya recordando —o que alguien me ayude a identificar a más colegas de aquella jornada— iré actualizando esta publicación para que todos los que fueron parte de ese histórico fin de semana queden justamente mencionados.
Porque, en definitiva, cada uno de ellos formó parte de aquella historia compartida, de ese espíritu de camaradería y pasión por la radio que definía al Radio Club Rosario (LU4FM) en aquellos años.
Facu LU6FPJ
Actualización, encontré el boletín del Radio Club de ese momento:
Hoy vamos a desempolvar una crónica fascinante, Es una historia que lo tiene todo: ingenio, traición, un plan de venganza y una lección aprendida de la peor manera.
Imaginen la escena: son los años 90. Los juegos de computadora se mueven en diskettes y la piratería es la norma.
El Ingenio: La "Intro" Imborrable
En Rosario, un programador muy talentoso, que se movía bajo el alias de "Armagedón", tenía un negocio de venta de shareware y juegos. Para publicitarse, desarrolló un programita brillante: una "Intro" (una pantalla de presentación) que se "pegaba" al inicio de cada juego que vendía. (overlay)
Esta intro no era un simple cartelito. Estaba diseñada para que, si alguien copiaba ese juego o programa (es decir, pirateaba al pirata), no pudiera sacarle la publicidad. El próximo comprador vería inevitablemente el anuncio del local. Era un sello de agua digital imposible de borrar.
El programa era un secreto bien guardado, compartido solo con uno o dos colegas de confianza en Rosario.
Ingreso a la Galería Vía Florida en los 90 (San Martín 1051)
La Traición: El Pirata de la Moto
Como en toda buena historia, aparece el conflicto. El colega de “Armagedón” tenía un socio en Buenos Aires. Este "pirata porteño" consiguió una copia de la famosa "Intro" con la promesa de no compartirla con nadie.
Pero, como dice el artículo, "pirata al fin", vio el potencial de negocio. Rompió su promesa, empezó a vender el programa de Armagedón por su cuenta y le fue tan bien que, con las ganancias del esfuerzo ajeno, se compró una moto.
Cuando Armagedón se enteró, la furia fue total. Él apenas tenía dinero, y el otro se estaba enriqueciendo gracias a su código.
"La Cueva" o "La Tinto" Entre Ríos 1071 - 1075
La Venganza: Nace el "Tracker"
Armagedón buscó primero la vía legal. Fue al registro de propiedad intelectual, pero el trámite era un laberinto. Un abogado amigo le bajó las esperanzas: "Ni te molestes. Aunque lo registres, se va a salir con la suya. Tiene amigos en lugares importantes".
Desesperanzado de la justicia, Armagedón optó por la venganza. Digital, por supuesto.
Decidió crear un virus.
Aunque nunca había hecho uno, sus "intros" eran técnicamente similares, ya que se "pegaban" a otros programas. Su plan era crear un "tracker" (buscador), un virus que se esparciría de máquina en máquina, silencioso e inofensivo, hasta que diera con la computadora del pirata traidor. Solo ahí, en esa máquina, el virus despertaría y empezaría a destruir lentamente el disco rígido.
Para proteger su identidad, adoptó el apodo "Armagedón", sugerido por un amigo, un nombre que sonaba potente y no tenía nada que ver con su alias habitual en el mundo informático.
El Error: "Volvete en Virus, es más Rápido"
El Día del Padre de 1993, el virus estuvo listo.
Armagedón y su "pandilla" probaron el virus en todas las computadoras que pudieron para asegurarse de que era 100% inofensivo para los inocentes… O eso creyeron.
Comenzaron la distribución de forma "quirúrgica". Le pasaron una copia del software "Vista Pro" infectado a un conocido pirata de Buenos Aires. Casi al mismo tiempo, uno de sus amigos viajó a Uruguay por negocios (que también trabajaban con el enemigo porteño) y llevó una versión 2 del virus.
Aquí es donde todo se salió de control.
El virus demostró ser más infeccioso de lo que jamás imaginaron. Unos días después, el pirata de Buenos Aires volvió a Rosario. Cuando revisaron sus diskettes, Armagedón no podía creerlo: ¡tenía la versión 2, la que se había ido a Uruguay!
El virus había viajado de Uruguay a Buenos Aires y de Buenos Aires a Rosario en cuestión de días. La broma interna fue épica:
—¿En qué te volviste de Uruguay?
—En colectivo.
—No, eso pasó de moda. La próxima vez volvete en virus que es mucho más rápido.
Las Consecuencias: El Virus "PHX"
La broma dejó de ser graciosa muy rápido. Armagedón descubrió que su creación tenía errores. Esos "pequeños" bugs que se le habían pasado hacían que el virus no fuera inofensivo para las computadoras inocentes. Estaba corrompiendo datos en todas partes.
La culpa lo carcomía. La infección se multiplicaba exponencialmente. Habían elegido demasiado bien a sus distribuidores.
Mientras tanto, el virus llegó a organizaciones antivirus internacionales. En EE.UU. lo llamaron "Willistrover III" y (gracias a un dato falso) creyeron que venía de Bolivia. Pero fue el islandés Fridrik Skulason, autor del famoso antivirus F-Prot, quien le dio el nombre con el que pasaría a la historia:PHX. Lo llamó así por un texto que el virus buscaba en las máquinas para identificar a su víctima.
El virus "PHX" estaba en todos lados: Uruguay, Paraguay, Rosario y Buenos Aires. Había infectado incluso a organismos oficiales del gobierno, que (en teoría) no deberían usar software pirata.
La Redención: El Antivirus
Irónicamente, el virus cumplió parcialmente su objetivo. El pirata porteño recibió una avalancha de quejas de clientes a los que se les borraba la información. La venganza se había servido...
Pero el plato estaba demasiado frío. La alegría de Armagedón y compañía quedó completamente opacada por la culpa de la infección masiva que había causado.
En un intento por frenar a su propia creación, crearon varios programas antivirus y curas específicas para el PHX. Empezaron a repartirlos gratuitamente y hasta montaron una "campaña de vacunación" en Rosario.
La experiencia los marcó para siempre. Aprendiendo por las malas que un virus es algo que, por definición, se sale de control.
El limpiador es eficiente: no analiza byte por byte, sino que va directo a donde sabe que está el virus.
Objetivo: Archivos ejecutables (.COM y .EXE).
Posición Clave: El virus PHX mide exactamente 822 bytes y siempre se adhiere al final del archivo.
Método: El programa salta al final del archivo y retrocede 822 bytes. Luego, lee ese bloque y verifica cuatro "marcas" o "firmas" exactas en posiciones específicas. Si las cuatro firmas coinciden, confirma la infección y avanza a la curación.
2. La Cirugía: Revertir la Infección
La infección consistía en que el virus sobrescribía el inicio del archivo original para ejecutarse primero. La cura revierte esto en dos pasos:
A. Recuperación del "ADN" Original
El virus fue diseñado para guardar los datos de arranque originales (header) dentro de sus propios 822 bytes. El limpiador tiene que hacer una distinción:
Para archivos .COM: Recupera los pocos bytes originales que el virus necesitaba para saltar al programa real.
Para archivos .EXE: Recupera y reconstruye el encabezado del archivo, incluyendo los valores originales del puntero de instrucción (IP) y de la pila (SP) para que el archivo vuelva a ser ejecutable.
B. El Corte y el Reemplazo (Truncamiento)
Con el encabezado (header) original reconstruido en memoria, el programa finaliza la cura:
Corte del Virus: Mueve el puntero del archivo justo antes de donde inician los 822 bytes del virus. Ejecuta un comando de "escritura de 0 bytes" (truncamiento), que efectivamente corta y elimina el bloque de 822 bytes del PHX.
Restauración del Inicio: Vuelve al principio del archivo y sobrescribe el inicio dañado (que antes era un salto al virus) con el cabezal original y limpio que había reconstruido.
El resultado es un archivo limpio, con su tamaño original restaurado, como si nunca hubiera sido infectado.
Facu LU6FPJ
.286c
assume cs:cseg,ds:cseg
cseg segment para public 'WIII cleaner'
org 100h
remove proc near
jmp startup_sequence
tracker_lenght equ 822
alloc_mem dw 0
lenght_hi dw 0
lenght_lo dw 0
filehandle dw 0
id db 0dh,0ah,' File cleaner for WIII',0dh,0ah
db ' (C) 1993 The Last Hackers Group - Internal Use Only',0dh,0ah
db ' Date: 31/08/1993',0dh,0ah,0dh,0ah,'$'
filespec1 db '*.com',0
filespec2 db '*.exe',0
disk_transfer_area db 080h dup (0)
header db 01ch dup (0)
buffer db tracker_lenght dup (0)
scanning db 0dh,0ah,'Scanning: $'
fileinfected db ', cleaning$'
done db ', done.$'
no_more_files: ret
clean_dir: mov ah,01ah
mov dx,offset disk_transfer_area
int 21h
mov dx,offset filespec1
call search_n_rescue
mov dx,offset filespec2
search_n_rescue: mov ah,04eh
xor cx,cx
int 21h
clean_curr_dir: cmp ax,012h
je no_more_files
mov ax,03d02h
mov dx,offset disk_transfer_area+01eh
int 21h
mov bx,ax
mov filehandle,bx
call print_scanning
mov ax,04202h
mov cx,-1
mov dx,-tracker_lenght
int 21h
mov lenght_hi,dx
mov lenght_lo,ax
mov ah,03fh
mov cx,tracker_lenght
mov dx,offset buffer
int 21h
cmp word ptr buffer+tracker_lenght-3,00828h
jne not_infected
cmp byte ptr buffer+tracker_lenght-1,093h
jne not_infected
cmp word ptr buffer,0680eh
jne not_infected
cmp word ptr buffer+2,0100h
jne not_infected
call neutralize
not_infected: mov dx,offset done
mov ax,0900h
int 21h
mov ah,03eh
int 21h
mov ah,04fh
int 21h
jmp clean_curr_dir
neutralize: mov dx,offset fileinfected
mov ax,0900h
int 21h
mov ax,04200h
xor cx,cx
xor dx,dx
int 21h
mov ah,03fh
mov dx,offset header
mov cx,01ch
int 21h
mov si,offset buffer
mov di,offset header
cmp word ptr [di+000h],'ZM'
je is_a_fucking_exe
mov ax,[si+023h]
mov bl,[si+02ah]
mov [di+000h],ax
mov [di+002h],bl
jmp neutralized
is_a_fucking_exe: mov dx,[di+016h]
add dx,[di+008h]
mov cx,dx
shl dx,4
shr cx,12
mov ax,04200h
mov bx,filehandle
int 21h
mov ah,03fh
mov cx,080h
mov dx,offset buffer
int 21h
mov ax,[si+061h]
mov bx,[si+05fh]
mov cx,[si+063h]
mov dx,[si+05ch]
mov [di+016h],ax
mov [di+014h],bx
mov [di+00eh],cx
mov [di+010h],dx
;RHP: *******************
mov ax,04202h
mov bx,filehandle
mov cx,-1
mov dx,-(tracker_lenght)
int 21h
mov [di+002h],ax
and [di+002h],01ffh
shr ax,9
shl dx,7
or dx,ax
mov [di+004h],dx
inc word ptr [di+004h]
jmp chop_file_end
neutralized: mov ax,04202h
mov bx,filehandle
mov cx,-1
mov dx,-(tracker_lenght)
int 21h
chop_file_end: mov ah,040h
xor cx,cx
int 21h
mov ax,04200h
mov bx,filehandle
xor cx,cx
xor dx,dx
int 21h
mov ah,040h
mov dx,offset header
mov cx,01ch
int 21h
ret
print_scanning: mov di,offset disk_transfer_area+01eh
xor al,al
mov cx,080h
repne scasb
mov byte ptr [di-1],'$'
mov dx,offset scanning
mov ax,0900h
int 21h
mov dx,offset disk_transfer_area+01eh
mov ax,0900h
int 21h
ret
startup_sequence: call clean_dir
int 20h
remove endp
cseg ends
end remove
Recuerdo levantarme de madrugada, cuando la mayoría dormía, para esperar pacientemente el paso de la Estación Espacial Internacional.
Con mi Yaesu FT-2400, una antena JAC-7 omnidireccional y una pequeña interfaz con un LM741 que yo mismo había armado dentro de un conector DB25 / DB9, me preparaba para intentar algo que parecía muy difícil: comunicarme, aunque fuera unos segundos, con la computadora (BBS) de la Estación Espacial Internacional ISS.
Sabía que tendría solo un breve momento, apenas unos minutos en los que la estación estaría al alcance. Ajusté frecuencias, revisé niveles de audio y esperé el instante justo.
De repente, la pantalla mostró la línea más esperada:
Welcome to RS0ISS's message board
No lo podía creer. Había logrado conectarme al BBS de la ISS. Escribí rápido un mensaje corto, casi con las manos temblando:
“hi all from argentina!!!!”
Solo unos pocos bytes, lo justo para saludar sin ocupar demasiado espacio. Sabía que detrás de cada bit había otros colegas, todos intentando lo mismo. No quería quitarle la oportunidad a nadie.
Cuando vi el mensaje confirmado, sentí una mezcla de emoción y orgullo difícil de describir. Aquella madrugada, mi señal había viajado desde una modesta estación terrestre de la zona sur de Rosario (SF) hasta el espacio, y había regresado con una simple bienvenida.
Fue un momento único, un recordatorio de por qué amamos la radio: porque nos une, porque nos enseña paciencia, y porque con un poco de cobre, estaño y pasión, podemos hablarle al cielo.
(Time UTC) 27-05-2004 T:62 06:34 LU6FPJ>RS0ISS>DM,F ------------------------------------------------------------ Welcome to RS0ISS's message board System Ver 1.50 97854 Bytes free CMD(F/K/M/R/W/B/H/?)> w all
Subject: hi Message: hi all from argentina!!!! CMD(F/K/M/R/W/B/H/?)> l Msg# Size TS Date Time From To @ BBS Subject 150 54 /1232 LU6FPJ>ALL hi 149 95 B$ /1219 XE2ARF>ALL Hello exMIR FANS ! 147 93 B$ /1217 XE2ARF>ALL Greetings IFC's ! 145 71 B$ /0429 EB7FME>ALL 73 all 142 74 B$ /1452 LU7EW >ALL ALL 140 108 /1315 LU8YY >ALL Saludos en el Dia de la Patria 132 305 /1319 LU8YY >ALL Escuelas 124 44 /1641 LW6DC >ALL Hello Friends !! 119 56 /1636 F1AHH >ALL 73 from france -------------------------------------------------------- :62 06:48 LU6FPJ>RS0ISS-11>RR7,P R:42 06:48 RS0ISS-11>LU6FPJ>DM,F
¡Che, pibe! Sentate a la mesa que hoy no vamos a hablar de la tablita del 8, ni de la selección de fútbol. Hoy vamos a desentrañar un misterio más denso que un mate cocido sin azúcar: el código máquina hecho por rosarigasinos en los noventa. Sí, señores, ese artefacto digital que, en lugar de una buena charla de café, te exigía un Intel 80286 y una placa VGA como si fueran una entrada a un show exclusivo de Les Luthiers.
El código que nos ocupa no es un programa, sino una "demo". ¿Y qué es una demo? Mirá, si un programa es un delivery de pizza, la demo es la caja vacía de cartón que queda después: puro estilo, puro rinde, y con el olor a hazaña todavía flotando en el aire. La hizo la gente de TLH Group (The Last Hackers), con los capos de Maxi K, Marcelo V y Diego A. Estos muchachos de Rosario, en lugar de tomar el bondi a la playa, se pusieron a domar el silicio.
DMA Informática en la Galería Vía Florida
Paréntesis Histórico:The Last Hackers no eran unos improvisados. Fue un grupo dedicado por años a la programación de intros y demos para la incipiente escena local. Su hito más grande, y digno de placa, es haber realizado la primer y única demo hecha en nuestro país en 1994. Es decir, antes de que existiera el Wi-Fi, estos pibes ya estaban empujando los límites del hardware con arte digital.
La Anatomía del Milagro de 320x200
Este engendro informático está escrito en lenguaje ensamblador (Assembly), usando el mítico TASM 2.0. El Ensamblador es la lengua madre de la computadora, el dialecto crudo y brutal con el que le decís al microprocesador: "Che, hacé esto, pero YA". Olvidate de que la máquina te interprete. Acá, si movés un bit mal, la PC te devuelve un error más seco que bizcocho viejo.
El programa se carga como un archivo COM (ORG 100h). Esto significa que vive y muere en un solo segmento de memoria, como si fuera un hippie acampando en la RAM.
El Corazón 80286: La directiva .286 ya te avisa que estos muchachos no tenían paciencia para esperar el 386. Iban a lo seguro, a las instrucciones que te permiten mover datos más rápido que un carterista en el centro.
Modo VGA (La Lucha de Clases): Al principio, el programa te saluda con un mensaje de Max of The Last Hackers y luego, sin anestesia, chequea si tenés VGA. Si no la tenés, te tira un mensaje de error más dramático que una telenovela venezolana: Hardware Error #280819930825 Proc: _vgaprint. Es la dictadura del modo gráfico $13h$: 320 píxeles de ancho por 200 de alto, con 256 colores. ¡Una explosión visual que dejaba tu monitor más excitado que perro con dos colas!
2. Los Efectos Visuales: La Mística Rosarina del Demoscene
Aquí es donde la demo se convierte en arte, o al menos en una performance de alto rendimiento digital. Todo sucede dentro del bucle central llamado print_sinus_wave, una verdadera orquesta de instrucciones.
a) El Sinus Scroll (El Chiste de la Ondita)
Los muchachos dibujan una onda senoidal con un color en el centro de la pantalla. ¿Cómo? Moviendo el índice de la tabla de senos (sinus_offset) de a dos pasos por frame. Es decir, a la máquina, en lugar de contarle un chiste, le dan un valor precalculado (sinus_line[bx]) y ella obedece, dibujando la curva. Y para que no quede como un garabato de chico de jardín de infantes, aprovechan para dejar un rastro de 12 píxeles de espesor.
b) El Texto Desplazable (La Mensajería del Caos)
El famoso scrolling text de las demos, la nota al pie digital de la historia.
Carga y Empuje: El código copia caracteres (rept 6 / movsw) desde la tabla de fuentes (font_now) a un buffer temporal (buffer_area).
Desplazamiento a Torta Frita: Cada 12 frames se reinicia el contador (scroll_counter). Con la bandera de dirección en STD (Set Direction Flag), se invierte el sentido de los MOVSW (mover palabra), y se desplaza el búfer de texto hacia la izquierda, como si estuviera apurado por llegar al kiosko. Cuando se acaba la frase, ¡El texto empieza de nuevo! Un infinito de bits rosarinos.
c) La Ciclotimia de la Paleta (pallete_cycling)
El efecto más hipnótico. En lugar de cambiar los gráficos, cambian los colores. El código toma la paleta de 256 colores (que en realidad son 256 entradas de 3 bytes RGB) y las rota. Es decir, el color Naranja pasa a ser Amarillo, el Amarillo pasa a ser Rojo, y así en un baile sin fin.
El chiste es que esto se hace escribiendo directamente a los Puertos I/O del chip VGA (03c8h y 03c9h). Es como meterle mano al motor del Fiat 600 mientras vas a 80 km/h: pura adrenalina técnica.
d) El Campo de Estrellas (El Espacio Exterior... o El Cielo Rosarino)
Para que todo fluya sin un solo glitch que arruine la performance, los Rosarigasinos esperan al Retraso Vertical (VBLANK). Esto es sincronizar el dibujo con la frecuencia de refresco del monitor, para que la pantalla no "se rompa" con líneas extrañas.
Luego, el bucle stars_loop procesa 64 estrellas. Cada una tiene su posición y su velocidad (stars_data). El programa:
Borra la estrella de la posición vieja (mov es:bx, byte ptr 0).
Calcula la nueva posición y la mueve.
Le asigna un color (add al, 0Ah) y la dibuja.
Es un efecto de profundidad, donde las estrellas se mueven hacia el usuario, generando la ilusión de que tu PC con 1 MB de RAM es, en realidad, una nave espacial despegando desde La Florida.
3. Conclusión: El Código Rosarino
En resumen, aquel código de TLH Group no era solo un montón de bytes. Era la destilación de la creatividad argentina de los 90, la prueba viviente de que se podía hacer arte sin presupuesto, solo con conocimiento de Ensamblador y mucho aguante. Un verdadero homenaje a la eficiencia, donde cada registro (AX, BX, CX, DX) actuaba como un personaje en una obra de teatro absurda, pero perfectamente coreografiada.
Y todo eso solo para mostrar una onda y unas estrellitas en pantalla. En su momento, aquello era una locura total. Si eso no era amor al código, entonces yo era el Indio Solari.