jueves, 21 de septiembre de 2006

Prehisteria

"It made a generation who can code,
a bubble before proper consoles,
who all know
" [1]


Los inicios de los '80s, "it made a generation who can code", produjo una generación que debía codificar, como modo de vida. No teníamos más.

Si necesitábamos algo --generalmente- lo teníamos que programar desde cero, todo a pie. PEEK, POKE, indirecciones (punteros), mapeo (de memoria), ensamblador, BASIC, etc ... y miles y miles de millones de páginas de manuales para tomar el control binario/hexadecimal de cada tarjeta y periférico. La interfase de abstracción HAL/HEL de DirectX --para liberar al programador de conocer cada bit de los periféricos-, ni siquiera eran un sueño descabellado.

Una auténtica prehisteria [prehistoria]. Y ahora ... ¿que puedes hacer con 16K?

Podemos recordar con el flash: Hey Hey 16K // Link

¡Alto! ... Pero si la vida existía antes de eso...

Me toco vivir desde 1979[2] una época anterior a la de las computadoras de 8 bits (parecidas a consolas de juego), tales como la Commodore 64, la ATARI 65XE o la Sinclair ZX Spectrum, etc. Previo a esas computadoras existían unas precámbricas computadoras --llamadas "calculadoras programables"-, en las cuales la capacidad no se medía en K, sino en número de memorias. Al paso del tiempo compre o me regalaron varias y las utilice a toda profundidad, fueron la TI-55, TI-57, TI-59 (prestada), TI-66, Casio FX 702P Personal Computer y la Tandy TSR 80 PC-6 (que aún conservo y funciona).

De entre mis triques les muestro un ejemplo sencillo de ese antiguo medrar. Es un programa que escribí para la TI-57, que calcula medias y momentos, apoyado en las rutinas estadísticas interconstruidas (x-, S+, OP 11).

La captura del programa se inicia al oprimir la tecla LRN ("aprender") y después la secuencia de nemónicos de las columna 2 y 3 de la tabla siguiente. En la pantalla se observa la equivalencia numérica de cada instrucción (parte de la columna 4). Para correr el programa se proporcionan los datos de la columna 1 y el nemónico de la columna 2 (la etiqueta de subrutina), que lanza la secuencia de instrucciones asociadas. Las respuestas son las indicadas con flechas en la columna 4. Es una variante rudimentaria de lenguaje ensamblador junto con la sintaxis AOS. El ejemplo:

Medias y Momentos
OP 119.48 ST 0->115


Lbl A' CMS 1 STO 08 STO 13 1 +/- R/S 010
[x-] ->Lbl B' STO 00 +/- R/S 015
[xi] ->Lbl A STO 07 Prd 08 1/x SUM 09


RCL 07 - RCL 00 = STO 13 x RCL 13 x RCL 13


= SUM 10 x RCL 13 = SUM 11


RCL 07 S+ R/S 051

Lbl B x- R/S -> [x-]


RCL 08 INV yx RCL 03 = R/S -> [g]


RCL 03 / RCL 09 = R/S -> [h]


OP 11 R/S -> [m2]


RCL 10 / RCL 03 = STO 12 R/S -> [m3]


RCL 11 / RCL 03 = STO 13 R/S -> [m4]


RCL 13 / OP 11 x2 = R/S -> [kurtosis]


RCL 12 / ( OP 11 yx 1.5 ) = R/S -> [skewness]


GTO B 115


Donde:
"x-" significa "x media" y también representa a su nemónico.
"S+" representa al nemónico "sigma +"

Programas y juegos se pueden consultar en: Old HP and TI Calculators // Link

_____
[1] MJ Hibbett & The Validators: Hey Hey 16 [lyric] // Link

[2] específicamente el 31 julio 1979, según lo estampado por mi padre en el manual de la TI-57 que me regaló. En este libro [3], está a lápiz mi primer programa escrito: OFF-ON LRN x 2 = R/S RST LRN RST

[3] Texas Instruments. 1977. Making tracks into programming. A step-by-step learning guide to the power ease and fun of using your TI Programmable 57: A complete owner's manual for the TI Programmable 57. Texas Instruments Incorporated.


[publicado originalmente el 21 de septiembre de 2006 en MS Groups]