Entrevista con el ganador de Retrospectiva 2012, Jim Gerrie

May 12, 2013 en RSP2012

Cuéntanos sobre Jim Gerrie. ¿Quién eres? ¿A que te dedicas?

Jim Gerrie

Jim Gerrie

Soy un Escocés canadiense y un Bretonense (vivo en la Isla de Cabo Bretón en la costa este de Canadá). Cabo Breton era un antiguo centro de la minería del carbón y del acero. Mi abuelo era operador de grúa en una fábrica de acero antes de la explosión le cegara, mi padre era proyectista en la planta de fabricación de acero y yo soy profesor de Filosofía y Estudios Religiosos en la Universidad de Cape Breton. Tengo una esposa, Patty, y una hija de 16 años Madeleine, un hijo de 15 años Charlie, y una hija de 4 años Naomi-Marisol.

 

¿Cual fue tu primer experiencia con una computadora?

Cuando tenía 13 años mi madre, que era maestra de escuela primaria, trajo a casa un TRS-80  model III los fines de semana. Esto fue posible ya que era una computadora todo en uno (monitor teclado y CPU eran una unidad). Empecé a programar escribiendo programas de libros y revistas. Pronto pasé a intentar hacer algunos juegos por mi cuenta para mis amigos. En ese momento casi cualquier programa informático nos cautivaba durante horas, incluso los extremadamente simples.

TRS-80 Model III - Source: Wikipedia

TRS-80 Model III – Source: Wikipedia

Ya que mi madre no siempre podía conseguir la máquina los fines de semana, empecé a guardar mi dinero de cortar el césped y palear nieve para conseguir una computadora propia. Por fin pude comprar una MC-10 en 1984 cuando tenía alrededor de 14 años de edad. Era el equivalente norteamericano de la ZX81 del Reino Unido. A alrededor de $ 69, fue la primera computadora que podía darme el lujo de comprar. La compré porque quería desesperadamente seguir programando y ademas ya estaba familiarizado con el Microsoft Basic en el Modelo III. Commodores y Atari todavía estaban a cientos de dólares en ese momento, así que no eran una opción. Además, no me gustaban sus versiones de BASIC no del todo estándar  (es decir, no Microsoft), y que en el caso de la Commodore era muy limitado. Creo que uno de los primeros juegos que traté de hacer fue probablemente una variación sobre un tema de la película “Juegos de Guerra”, con Matthew Broderick, que yo recuerdo como una influencia muy fuerte en ese momento.

 

¿Porqué la Tandy MC-10? ¿Era una computadora popular en tu zona?

La MC-10 no fue un gran éxito ni se vendió demasiado, pero tenía varios amigos que la tenian , o la versio 16K de la Tandy CoCo. Mi impresión es que la MC-10 era más popular en Canadá que en Estados Unidos, debido a su precio más barato y el hecho de que tenía un montón de buena documentación francesa. La versión de la misma que se vendió en Francia se llama “Alice”, y era al parecer muy popular allí. Hay un activo foro de usuarios de Alice hoy en el que uso mi patético francés de escuela para chatear.

TRS-80 MC-10. Source: Wikipedia

TRS-80 MC-10. Source: Wikipedia

Sin duda que no estábamos entre la “gente cool” con nuestras pequeñas y baratas máquinas Radio Shack. Algunos niños tenían sistemas Apple II o Atari o Commodore, que tenían mejores gráficos y una gran variedad de software de juegos. Por defecto mis amigos y yo tuvimos que contentarnos en gran medida con nuestros propios esfuerzos de programación y con aprender a “hackear” nuestros sistemas. Un amigo, por ejemplo, cableo su MC-10 para tener un joystick. Aprendimos cómo soldar así también nosotros podríamos hacer lo mismo. Fuimos los primeros en comprar modems y en comenzar a explorar algunos de los BBS (Bulletin Board Computer Systems) que aparecían en ese momento. Nuestros amigos de C64 y Ataris se burlaban de nuestros “Trash’80s”, que era el nombre despectivo para los equipos de Radio Shack (es decir, TRS-80), pero mientras jugaban juegos, nosotros escribíamos nuestros propios juegos y explorábamos el nuevo mundo de las comunicaciones electrónicas. Todavía tengo mi módem de 300 baudios de esos años. Recientemente, mi hijo y yo montamos un simple BBS usando mi teléfono en el trabajo y uno de los equipos CoCo y modems que he recogido a lo largo de los años. Entonces “Marcamos” en el sistema de casa con mi l MC-10 y módem original. Compartir el sonido chillón del módem con él mientras las dos máquinas se conectaban trajo algunos recuerdos poderosos para mí de la emoción de aquellos años.

 

Hemos notado que has escrito una gran colección de juegos en BASIC. Muchos están inspirados en titulos comerciales. ¿Que criterio usas para elegir tu próximo juego?

Q-BERT

Q-BERT

Dado que la MC-10 es la máquina de 8 bits de mi corazón, siendo mi primer computadora (aunque eventualmente me pasé a una Color Computer II), mi programación está impulsada en gran medida por el deseo de completar los programas que bien realmente había empezado a escribir, o soñado en escribir en esa época. Pasamos un montón de tiempo leyendo revistas de informática en la biblioteca de la escuela, y estaban llenas de fotos y descripciones de los juegos para C64, Atari, Apple y más tarde de IBM. Dado que ninguno de estos juegos estaban disponibles para nuestras máquinas, y la base de software para la MC-10 era muy limitado, siempre estábamos buscando conceptos o incluso listados de programas que pudieran ser portados a nuestras máquinas, con su limitada capacidad gráfica y de sonido. Trabajando dentro de esos límites, por lo tanto, constituye el principal reto para mí, y el criterio central para selección de juegos. La MC-10, como las CoCo, tiene un chip gráfico hecho por Motorola llamado “VDG”. El único modo gráfico facilmente accesible desde el Micro Color BASIC es sólo una pantalla de 64 X 32 y 8 colores. Los píxeles son extremadamente grandes. El desafío es utilizar estos píxeles grandes para crear los mejores juegos posibles utilizando únicamente BASIC (nunca llegué a dominar lenguaje de máquina). Si un juego no se puede representar puramente en texto, o el uso de los 64×32 píxeles, no es de interés para mí.

 

¿Por qué te gusta programar computadoras obsoletas?

Psicológicamente hablando, a la edad de 45, reconozco que probablemente estoy pasando por lo que se llama “la crisis de la mediana edad”. Para la mayoría de los hombres se trata de comprar una Ferrari roja para vivir los sueños de su juventud. Para mí se trata de completar programas que me gustaría haber terminado en ese entonces, para así poder presumir frente a mis amigos que tenían sistemas “superiores”. Lo que no podía hacer entonces, lo puedo hacer ahora. Sin embargo, en otro nivel que no es más que una distracción maravillosa y un pasatiempo divertido que puedo compartir con mi hijo, que comparte mi interés en las computadoras.

 

¿Que extrañas de la era dorada de los sistemas de 8-bits?

Echo de menos la emoción de sentir que estaba explorando un vasto territorio nuevo del que otras personas no sabían nada. Sabíamos que estábamos en la vanguardia misma de una revolución tecnológica. Estábamos ayudando a desarrollar los sistemas y las técnicas de la computación. Cuando dejamos mensajes en BBS sabíamos que estabamos entre las primeras personas que lo hacían y por supuesto este conocimiento especial nos dio un sentido de “poder” (algo que es muy atractivo para los niños). Mi hijo experimenta esto también, pero para él es la capacidad de utilizar su conocimiento del sistema operativo Linux (que no tengo) y de redes para usar uno de sus equipos para apagar otro forma remota. ¡Ves papá, sin manos! ¡Sorprendete!

 

Tu hijo Charlie te ayuda a probar y desarrollar tus juegos. ¿Como se interesó en tu hobby?

Charlie ha estado recibiendo entrenamiento “geek” bastante intensivo de mí parte por algún tiempo. Por supuesto le conté historias sobre nuestras hazañas informáticas cuando niños. Le dí algunos de mis viejos libros de esa época como “La Guía Secreta a las computadoras,” por Russ Walter, que contiene un compendio del mejor conocimiento sobre computadoras de 8 bits y anécdotas de computación (su frase favorita de ese libro es la declaración del presidente de Commodore, el fallecido Jack Tramiel, que “el negocio es la guerra!”). Vimos la película Juegos de Guerra juntos. Desde muy temprana edad me miraba con mis computadoras de 8 bits originales (todavía tengo mi MC-10, Color Computer 2 y 3 originales). Estas máquinas extrañas, por supuesto, sólo provocaron un sinfín de preguntas acerca de cómo se hacían las cosas en ellas (en comparación con las computadoras de hoy en día). Con el tiempo empezó a hacer sugerencias para ideas de juegos propios. La primera fue el juego “Sentinel”, que puedes encontrar en nuestra colección. Esbozó su concepto en un pedazo de papel, el cual me dio.

 

Muchas gracias por tu tiempo. ¿Algún consejo para quienes quieran comenzar a programar estas viejas computadoras?

Bueno, he desarrollado o descubierto una amplia gama de técnicas para conseguir más velocidad del Basic. El Basic es una excelente introducción a la programación de computadoras, debido a que es tan indulgente, pero con las técnicas adecuadas, también puede ser muy poderoso.
Por ejemplo, mi amigo Neil Morrison en el foro MC-10 de Yahoo me ??enseñó que es útil poner todos los destinos GOSUB y GOTO en las primeras líneas del programa. También he aprendido que se puede utilizar la instrucción DIM para declarar variables no-array y que dimensionando en el orden de las variables más utilizadas puedes aumentar la velocidad de ejecución del programa. Así que lo mejor es poner un salto al final del programa y las variables DIM allí, y dejar las líneas superiores para las subrutinas GOSUB y GOTO, ya que el intérprete BASIC inicia la búsqueda de este tipo de rutinas de arriba hacia abajo. Quieres asegurarse de que el tiempo de búsqueda sea lo más corto posible.
También, en general uso un conjunto principal de bucles FOR / NEXT alrededor de la línea 20 en lugar de GOTOs para bucles. Y cuando se uso FOR / NEXTS, indico la variable para el comando NEXT (por ejemplo NEXT A), ya que esto es innecesario y simplemente retrasa al intérprete. Al estructurar mis programas usando bucles FOR / NEXT en lugar de GOTOS, y con el uso de sentencias ON / GOSUB / GOTO en vez IF / THENs y empaquetando las líneas lo más posible (lo que se puede hacer completamente en el MC-10, pero, si recuerdo correctamente, no en el C64 o Atari), he conseguido un buen cambio de velocidad en el viejo Microsoft BASIC sin compilar.

Por lo general también hago uso de memoria en gran medida haciendo tantos de los cálculos repetitivos como sea posible en la inicialización y luego almaceno los resultados en matrices. A menudo, esto significa un retraso en el arranque para mis programas, pero el juego resulta mucho más rápido cuando las cosas finalmente se ponen en marcha. A mi nunca me molestaron tales retrasos preliminares, nosotros los viejos usuarios de computadoras de 8 bits nos acostumbramos a esperar a nuestras computadoras, mientras que “piensan”.

Si voy a manipular cadenas, siempre trato de liberar tanta memoria como sea posible para reducir los retrasos de Garbage Collection. Esto fue fundamental para un programa como mi intento de un juego 3D como KURSK, que siempre esta armando la vista actual a partir de matrices de cadenas que contienen cualquiera de las cuatro direcciones posibles que puede dar vuelta su torreta.

Cuando uso una declaración ON / GOSUB también generalmente uso múltiples RETURNS para saltar de nuevo directamente al bucle FOR / NEXT principal desde una subrutina, en lugar de saltar con GOTO a una sola instrucción RETURN para esa rutina. En otras palabras, un RETURN es el mismo que cualquier otro. También suelo tener una línea estilo “1 RETURN” en la parte superior del programa para su uso como una opción “nula” para cualquiera de mis ON / GOSUB y sus listas de subrutinas. También utilizo múltiples NEXTS para saltar rápidamente de nuevo al bucle principal después salta a subrutinas con un GOTO.

 

Página personal: Jim and Charlie Gerrie’s Software Page

Blog: BASIC Programing on the Tandy TRS-80 MC-10