Posts etiquetados como ‘cz 1000’

No hay FOR sin NEXT

Había visto un screenshot de un cielo poco nuboso con algunos cazas japoneses al acecho, que debían ser destruidos con fuego de batería antiaérea.
Esa imagen, aparecida en la contratapa de una Microhobby a finales de 1986, correspondía a un juego de ZX Spectrum ubicado durante la segunda guerra mundial sobre el océano Pacífico y del cuál sinceramente, no recuerdo su nombre. Sin embargo fue uno de mis puntos de inflexión, porque pasé de ser un simple usuario cargador de programas a un interesado en la programación.

“Quiero hacer algo como esto”, fue lo que me dije. Pero tenía dos desventajas. Primero, contaba con una CZ-1000 con expansión de memoria de 16kb y, segundo, no tenía conocimientos de programación de juegos. Ni de programación en ningún lenguaje.
Así que con 14 años empecé a conseguir y leer las K64 y Programación Popular que pude. Especialmente éstas últimas, porque eran más didácticas y además traían un curso de lenguaje Basic. Claro, como siempre fui muy consistente, resté importancia a este curso.

Después de un tiempo considerable de lectura y análisis de listados de juegos, aprendí que el assembler era cosa de mandinga y que Basic tenía sus limitaciones pero era más entendible. Es más: hasta había aprendido algunas cosas del Sinclair Basic como la estructura de decisión IF – THEN, que debía utilizar LET para operar con variables alfanuméricas, numéricas y efectuar algunas operaciones matemáticas. Y también que con GOTO podía dar saltos mortales dentro del código.

Por otro lado, aprendí que con PLOT x, y podía encender una mancha en una posición de la pantalla, mientras que UNPLOT X,Y la borraba. Si quería mover esa mancha con el teclado, debía leer la función INKEY$ para detectar la tecla presionada y actuar en consecuencia. Para quienes no conocen Sinclair Basic, la implementación del lenguaje estaba bastante ligada al sistema de input de estas máquinas inglesas. Por ejemplo, en una CZ-1000 o en una Spectrum, cuando el cursor tenía la letra K, al presionar la tecla G, aparecía la instrucción GOTO.

Con ese bagaje de conocimiento ya quería empezar a programar el juego. Ni pensaba que pudiese existir alguna etapa previa de análisis y diseño.
Pero un momento…en ese screenshot habían muchas nubes. Entonces, cómo haría para poner todas las necesarias? Tendría que repetir grupos de instrucciones PLOT x,y, tantas veces como nubes quisiera poner? Ya veía que esto se pondría tedioso. Y además intuía que estaba omitiendo algo.

De pronto se hizo la luz: olvidé una de las columnas vertebrales de la programación imperativa: las estructuras de repetición. Tendría que estudiar el bucle FOR – NEXT.

Volví a los estudios autodidactas. Pero pasó el tiempo y no lograba asimilarlo. No podía entender cómo funcionaba. Me superaba. Aprender en japonés, era más fácil que saber que hacía esto:

10 FOR X = 1 TO 10
20 PRINT X
30 NEXT X

Cómo podía hacer que una porción de código se repitiera? Se hizo la luz de nuevo. Recordé a la estructura IF-THEN y la instrucción GOTO, maldita por Edsger Djisktra y un tanto justificada por Donald Knuth. Entonces, lo que me parecía más difícil que japonés, se transformó en:

10 LET X = 1
15 IF X > 10 THEN GOTO 50
20 PRINT X
30 LET X = X + 1
40 GOTO 10
50 …

Maravilloso. Seguía sin saber cómo funcionaba FOR-NEXT, pero ahora tenía una forma de controlar las repeticiones de código que se parecía al chino mandarín. Pero a mi chino mandarín. El código es definitivamente más complejo que el equivalente con FOR-NEXT. Pero así entendía. Y de hecho, es también equivalente al ciclo de programación estructurada WHILE.

Y las nubes aparecieron. Pero las ganas de continuar con el desarrollo se hicieron humo.

Al año siguiente tenía quince años y una Commodore 64, seguía sin entender la estructura FOR-NEXT y me las arreglaba a mi manera. Por casualidad, o por suerte, en la escuela secundaria ya se había definido que el título del egresado sería de técnico en computación. Así, en la ENET Nro. 3 de San Martín (hoy EET Nro 5 Galileo Galilei), durante las clases de matemáticas, la por entonces temible y luego querida Rosa Ana Ferragina enseñaba lenguaje Basic. Fue ella quien muy didácticamente y con la claridad que caracterizaba sus clases, hizo que el FOR-NEXT fuera muy rápidamente digerido por mi rebuscada red de conexiones neuronales.


El desarrollo del juego para CZ-1000 quedó definitivamente abandonado, pero con todo lo aprendido, más detalles y trucos técnicos de C64, pude armar lo que considero mi primer sistema: un programa Basic de utilidades para administración de diskettes.

Años después en la misma escuela aprendí a programar en dBase, Pascal y C. Estos últimos dos lenguajes fueron enseñados magistralmente por el polifacético profesor José Luis Morchio. Pascal se convirtió en mi caballito de batalla por muchísimo tiempo, incluso en los primero años de la facultad. Pero todo esto formará parte de otras anécdotas.

FPS eran los de antes

Lo vengo jugando desde Abril y todavía no pude terminarlo. Es que estoy trabado en esa pantalla del galpón, donde decenas de mercenarios atacan despiadadamente.

Me quedo sin municiones, no consigo destruir la segunda de las ametralladoras pesadas, la de la derecha del fondo del galpón. Me frustro y termino apagando la Play 2.

Black en Playstation 2. Año 2006

Así termina la sesión con Black, un FPS (First Person Shooter, Juego de Acción en Primera Persona) que ya tiene un tiempito pero igualmente me enganchó. Sucede que este tipo de juegos siempre me atraparon, siempre fueron de mi preferencia. Y eso que no soy EL GAMER!

Return to Castle Wolfenstein (Wolfenstein ) en PC. Año 2001

Hago un poquito de memoria y recuerdo que antes de Black, pero mucho antes, disfruté de la reedición de Wolfenstein para PC. Salió a mediados/fines de 2001, pero lo recuerdo porque fue muy esperado a nivel mundial: se trataba de la reedición de un exitazo ocurrido en 1992 y del nacimiento del padre de los FPS. Claro, luego se siguió con la movida y salió Doom -también me gustó mucho la reedicion de PC-, Quake, etc, etc, etc. Pero “Wolfenstein 3D” sentó precedentes, fue el papá de los FPS…

Wolfenstein 3D en PC. Año 1992

…Mmm…ah, no…un momento…ahora estoy recordando algo más…ahh, sí, sí…hay que ir más lejos, más atrás. Primero al año 1987, cuando tenía la Commodore 64 con la disketera 1541. Me acordé del título The Eidolon. Un juego de Lucas Arts que había salido en 1985, y en que manejábamos una especie de nave que iba dentro de una caverna; había que aniquilar enemigos y conseguir joyas de distintos colores. Las joyas de un determinado color servían para matar al dragón que custodiaba una salida de un determinado color. También recuerdo la frustración de tener una copia pirata de este título: en algún punto, el juego se colgaba.

The Eidolon en Commodore 64. Año 1985

Sin embargo, dudo y me pregunto, era -es- un simulador de vuelo o un FPS? De todos modos, la afirmación que hice del “Wolfenstein padre de los FPS” empieza a tambalear.

Uh…me acordé de algo más…unos meses antes de The Eidolon, jugué a Scarabaeus. Otro juego que también había salido en 1985. En su historia, interpretábamos el papel de un arqueólogo vestido con traje de astronauta -junto con un perro, para ser original-, que estaba encerrado en distintos niveles de una gran pirámide egipcia -o similar a las egipcias, pero en otro planeta-. En cada piso, había que cazar fantasmas para recolectar una serie de elementos, que permitían el acceso al piso siguiente; todo esto antes de que se acabara el nivel de oxígeno y evitando arañas, botellas de veneno y otros peligros. El pasaje al próximo nivel era un poco traumático, habia que accionar un ascensor haciendo girar una manija. Si esta se nos soltaba, hacía que el personaje y su perro bajara violentamente al próximo piso, con una reducción de oxígeno importante.

Lo curioso de este juego, es que muy llamativamente, cada piso era un laberinto, muy parecido a los niveles de Wolfenstein 3D.

Scarabaeus en Commodore 64. Año 1985

Bueno, ahora sí, la afirmación del Wolfenstein-padre-de-los-FPS, cayó al vacío. Pero esperen…ya no tengo que hacer mucho esfuerzo. Ahí me vino solito, otro recuerdo.

Vayamos a 1985; en ese momento, tenía una CZ-1000 con un Rampack proveedor de poderosos 16Kb de RAM. Y tenía el juego 3D Monster Maze. También tenía la versión en portugués “Monstro das trevas”. Pero nunca pude cargarla.



Ahora, si tenemos en cuenta las capacidades de una CZ-1000 -2Kb de RAM, 16Kb con Rampack, sin sonido ni resolución gráfica-, el juego era excelente técnicamente y en su desarrollo: había que evitar que nos comiera un Tiranosaurio Rex, mientras se buscaba la salida de un laberinto. El juego, en blanco y negro, y con los gráficos construidos en base al juego de caracteres de la CZ-1000, había sido escrito en 1981 para la Sinclair ZX-81 con expansión de memoria y comercializado desde 1982.


Secuencia de 3D Monster Maze en (emulador de) ZX-81 con 16 Kb RAM. Año 1981

Aunque sólo mencioné algunos de los FPS de mi preferencia, resulta más que interesante darse cuenta que algunos conceptos considerados como modernos y revolucionarios, tienen más tiempo de lo que se cree!!

Quiero una consola!…No, mejor quiero restaurar una computadora…

Una computadora o una consola? Esa era la pregunta que me devanaba los sesos a principios de 1985.

Para que voy a querer una computadora? Yo sólo quiero jugar a los videos! Voy a pedirles a mis viejos que me compren la Atari 2600.

No tenía ningún asesor sobre el tema en ese momento. Pero el sentido común empezó a actuar cuando las ansias desaparecieron y pude ver con claridad, como cuando las aguas de una pileta se calman y permiten ver el fondo -estoy muy profundo en esta semana!-

Y Don Sentido común me dijo que la compu era más conveniente, y que podría hacer más cosas, no sólo jugar. Aunque no tenía bien en claro que era lo que podría hacer como extra. Y asi fue que hablé con mis papis y estos me -nos- compraron la CZ-1000, la maquinita de la que ya comenté en los posts “Asi el azimuth?” y “Las tardes con los clones de Sinclair”

Paso el tiempo. Nuestra CZ-1000 transmutó en TI99/4a, en Commodore 64, en Commodore Amiga, en…ya no recuerdo!

Muchos, muchísimos años más tarde, Gustavo, el mediano de mis hermanos, consiguió una TS-1000 -versión estadounidense de la CZ-1000- en el Mercado de Pulgas.

La máquina parecía funcionar, salvo porque sufría del problema que el tiempo hace padecer a las computadora Sinclair. El circuito de conexión de ese teclado tan distintivo y tan odiado en muchos casos, estaba hecho de un material que, con el paso del tiempo, se reseca y se parte. Chau teclado.

Por MercadoLibre es imposible conseguir este repuesto. Quizás por Ebay . Pero tampoco. Con los ingleses de RWap, que fabrican el respuesto para Spectrum tampoco tuve suerte en ese momento: la versión para ZX81 de la membrana saldría a la venta cuando tuviesen un lote determinado de pedidos.

Cómo restaurar esta maquinita!?

Dando vueltas por el sitio español Speccy , encontré una idea. Hablaba de usar el peine de una placa vieja de PC y una cintas de conector IDE -esos de discos rígido o de lectoras de CD- para armar una solución de compromiso.

No contaba con los materiales, pero sabía que en mi trabajo había muuuchas placas viejas, obsoletas, que podrían solucionar el tema. Lo mismo con las cintas IDE. Asi que le pregunté una vez más a un “asesor técnico”, a mi amigo el Ing. José, si me podía facilitar estos materiales.

En 15 minutos, esta ciberbasura, se convirtió en material de restauración de una pieza histórica. Los resultados? Aquí en fotos:

TS-1000 con su RAMPack que le otorga unos poderosos 16Kb Ram

Conectores de teclado reconstruidos con el borde de una placa inservible de PC

Cintas de conector IDE de PC, usadas para reconstruir el conector del teclado


IMPORTANTE. Los contenidos y/o comentarios vertidos en este servicio son exclusiva responsabilidad de sus autores así como las consecuencias legales derivadas de su publicación. Los mismos no reflejan las opiniones y/o línea editorial de Blogs de la Gente, quien eliminará los contenidos y/o comentarios que violen sus Términos y condiciones. Denunciar contenido.
AgenciaBlog