lunes, 17 de febrero de 2014

Unas palabras con Mario Villareal, desarrollador del C128


Normalmente cuando hablamos de programadores, desarrolladores, grafistas y empresas siempre se habla del Hemisferio Norte, ya sea EE.UU, Europa, Rusia o Japón, pero en el sur también pasaban cosas, también se desarrollaba y se creaba, a otra escala claro y poco de lo que se hizo allí se comercializó fuera del ámbito local.

En este caso vamos a hablar con Mario Villareal, un desarrollador argentino, cordobés, que durante muchos años hizo brillar nuestros Commodores en Argentina y que tuve el gusto de conocer gracias a un curso de ensamblador para C64 que hice y que él era el profesor :)

Minificha:

  • Nombre: Mario D. Villareal
  • País: Argentina
  • Primer sistema: C=128
  • Historia: Desarrollador de C=128

Unas palabras con Mario Villareal, desarrollador del C128



1 - Cuentanos un poco sobre Mario Villareal, ¿quien eres? ¿ a que te dedicas actualmente?

Me llamo Mario D. Villarreal y me dedico a cultivar todas las cosas de mi interés, y por supuesto entre ellas está la computación! Soy músico además, que es lo que me llevó a los “ordenadores” como dicen por allá… Quería desarrollar un programa que listara todos los acordes posibles. Al final del curso, estuve capacitado y pude hacerlo!

2 - ¿Cual fue tu primera experiencia con un ordenador? ¿cuál fue tu primer ordenador?

Mi primer equipo propio fue un Commodore 128, superfull, con dos drives 1571, impresora 1000  y monitor color. Aunque previamente, había estudiado programación (Basic y Cobol) en las viejas computadoras de la época (NCR no recuerdo ya el modelo) y jugado bastante con la C=64.

Foto Commodore User Group

3 - ¿Puedes recordar el primer juego o aplicación que probaste? ¿o lo primero que realmente te impresionó de los ordenadores?

 El primer juego que jugué fue uno de música: el “Kawasaki”, que exploraba todas las posibilidades sonoras y gráficas de la revolucionaria C=64. Mi amigo (Juan Dutka) traía personalmente los juegos directamente de EE.UU. así que estaba en la cresta de la ola con la Commodore!.

http://www.youtube.com/watch?v=9ZBzhO8_FFc
http://www.youtube.com/watch?v=1h5QJDDnVE0

4 - En aquellos tiempos que no existía internet ¿llegaste a conocer a alguien más que se dedicara al desarrollo para Commodore en Argentina?

Tuve la suerte de conocer a los mejores cerebros en Córdoba de aquella época; tipos geniales, con conocimientos e ideas innovadoras, por nombrar algunos, el ingeniero Vilchez, Fabricio Geronazzo, Juan Dutka, a un ingenerio electrónico que trabajaba en Prointel, creo que se llamaba Cuevas, Claudio Sileoni, y a un tal José Zanni :P

5 - Sé que hiciste muchas cosas con los Commodores,  ¡cuenta, cuenta!

Yo conocía bien la placa de la C=64; sabía programar los bit de cada chip, y dominaba el assembler. Victor Vilchez, (ingeniero electrónico y gran amigo), me ayudo con sus conocimientos de hard para diseñar un cartucho que pudiera paginar una ROM de 32 KB (la mayor era de 64kb pero eran caras y difíciles de conseguir). Mi idea era que al encender la máquina, instantáneamente tuviéramos un generador de caracteres, con finos scrolles, verticales y horizontales, que se combinaran con el  logo del canal y tuviera un secuenciador programable para emitir avisos a los clientes de los primeros canales de cable (tv).

Fue un éxito el cartucho y le llamé “Video secuencer”. El trabajo era artesanal, pero ¡fue redituable!. Muchos canales de cable de Córdoba lo tuvieron y fue para ellos una gran solución y para mi una gran satisfacción.

El "cartucho" lo monté dentro de unas cajitas de plástico pintadas de negro.

La música me llevó a conocer a otro ingeniero electrónico, lamentablemente ya fallecido, de una productora local de televisión (Prointel). En aquella época, dictaba yo un curso de lenguaje de máquina y mi amigo era uno de los asistentes.

Material del curso de ensamblador para C64
Material del curso de ensamblador para C64
Era muy raro y caro conseguir una interface MIDI pero hablando sobre el tema, un día vino con una revista de electrónica que tenía un proyecto para crear una plaqueta midi para la C=64. Mi amigo me ofreció hacerla para que yo la probara. Dicho y hecho, al tiempo apareció con la plaqueta! Una enjundia de cables, todo muy de prototipo,  pero, ahí estaba…  ¿y ahora? Hacía falta un teclado MIDI y un soft para programarla!. En aquella época existía un programa llamado “Dr T.” que conseguimos con mi hermano (también músico) por una cadena de contactos. Claro, el soft  estaba diseñado para interfaces MIDI profesionales… No reconocía la plaqueta… Entonces, había que “meterle mano” al código para ver si  la experimental plaqueta MIDI funcionaría… Tuve suerte y pude entender el programa y ubicar todas las llamadas que hacía a los puertos. Los cambié  y ¡eureka! la plaqueta funcionó como si fuera una Passport! (el gran cartucho MIDI de la época).

Dr. T, software de música

Passport, interfaz MIDI
Con esa plaqueta y los teclados de otro gran amigo, terminamos grabando un "Long Play" en 1989, donde la C=64 secuenciaba una batería electrónica, y 3 teclados. Fue una experiencia increíble e inolvidable para el estudio de grabación. Incluso, la tapa del disco fue una imagen digitalizada también por la C=64, gracias también a mi amigo Castex… (el de los teclados).

Símbolo del austral
Hice varios proyectos interesantes además: Por ejemplo un editor de texto, todo en assembler para la C=128 que imprimía en una poderosa impresora Laser Jet plus. Me llevó 10 meses llevarlo a cabo, ya que además tuve que generar un carácter que no existía en ningún cartucho: el símbolo monetario argentino del austral!

El soft era algo así como un pequeño Word, con inteligencia para separar el texto con guiones, generar texto en columnas, justificado, etc. – ¡cómo estudié gramática para hacer el silabeo perfecto! - Fue por encargo del diario “El Sol” de la provincia de La Rioja. Era el asombro por la velocidad en que procesaba los textos e imprimía en segundos las páginas. Dejaba muy atrás a las maquinas de escribir IBM  programables con que contaban en aquel entonces. Mi amigo J. D. me proveyó de  una llave de hardware para evitar la copia. Pero claro, en mí estaba programarla. Generé unos interrupts, de modo que si alguien sacaba la llave, el programa no funcionaba. podían sí, hacer las copias de seguridad que quisieran, pero sin la llave, todo era inútil… Claro que si trataban de copiar la llave, era imposible, tanto tratando de leerla como de abrirla físicamente, porque se destruía.

La llave la inventó Juan Dutka. Yo lo que hice fue la programación de un interrupt que testeaba si estaba la llave. Como el soft corría en ROM, no se podían desviar los vectores para que ignorara el loop de chequeo. Cada 10 milisegundos testeaba el puerto del joystick y si el chip de la llave no decía "hola", el programa se detenía. El conexionado interno estaba todo pegado y conexionado con muy finos alambres de cobre, cualquier intento de fuerza bruta rompía el chip. 


Y finalmente, para no aburrir, patentamos un juego de azar. No podía ser que no hiciera un juego ¿verdad? Se llamó “Truco Mayor” y lo diseñamos junto a mi amigo el Ing. Victor Vilchez. Le enseñé a diagramar y él me traía su estrategia, en cientos de hojas, inmensos diagramas de flujo. Yo los convertía a código assembler.

Juego Truco para C64. Lamentablemente no hay imágenes del
juego de truco del entrevistado, sirva esta captura como ejemplo
ilustrativo aunque Truco Mayor estaba hecho en modo gráfico.
Para este proyecto, ya tuve que quitar todas las ROMs de la C128, no quedó nada más que los chips y los micros (tenia un Z80 además). Me hacía falta toda la memoria disponible y no había lugar para el sistema operativo!  ¡Hasta modificamos las conexiones de la placa para mejorarla!. Recuerdo que cuando se fue a patentarla, Victor me llamó desde Buenos Aires, porque le solicitaban que declarara el sistema operativo bajo el cuál funcionaba. Yo lancé una carcajada y le dije, “Ninguno, no tiene sistema operativo!”. Se trataba del juego “el truco” tradicional en Argentina. Este incluía mi propia voz digitalizada, que cantaba “Envido”, “Real Envido” y todas las cosas que se cantan en el juego, incluso, tenía música a 3 voces, (todo soft mío) y maravillosamente, ante un corte de energía, salvaba todos los datos. Al volver el suministro eléctrico, restauraba el juego en la posición que había quedado, como si nada hubiera pasado. Así fuera que estaban los contadores descargando o no. Esto era importantísimo. ¡Fue un verdadero desafío pero salió muy bien!
Commodore 128 por dentro (foto Museo8bits)
Este juego se ponía en bares, era como "una caja cerrada", con una batería que permitía mantener la energía para que se pueda cerrar el juego guardando esa información, aunque lejos de ser unos minutos, no llegaba al segundo. El lenguaje de máquina es tan rápido que detectaba la caída de tensión y en el tiempo en que se cortaba la energía marcaba el punto de restauración. Durante el juego, se iban grabando indicadores, que servían para la reconstrucción total de la partida.

5.1 - ¿Funcionaba este juego en un C128 normal o era necesario modificarlo, quitar chips, etc?

 No, no funcionaría en una Commodore 128 normal. Volamos todas las roms y pusimos eproms propias. ¡No había lugar para almacenar el programa!. Desapareció todo el sistema operativo completo. Sólo copiamos la rutina de arranque, que activaba primero el Z80 y después el micro principal 8502, para orientar correctamente los punteros a nuestro programa. Incluso Victor hizo algunos puentes en la placa madre para mejorar la perfomance.

6 - ¿Qué herramientas usabas para desarrollar? ¿qué lenguaje? ¿cómo era tu forma de trabajo?

Usaba el lenguaje assembler y compilaba con el TSDS. Primero, realizaba el diagrama de flujo (cuando era muy complejo) y luego generaba macro códigos en assembler que casi parecia un lenguaje de alto nivel, con la diferencia de la máxima eficiencia del lenguaje de máquina.

TSDS, Matte editor

Respecto a TSDS, es el Total Software Development System (sistema de desarrollo total de software), era una soft muy completo para Commodore. Yo hice la traducción al castellano del manual. El paquete incluía, el macro assembler, para compilar, editor de sprite, etc.
Los creadores de esto - según internet - fueron Kevin P. Pickell, Brian R. Niessen.

Manual TSDS en castellano
Manual TSDS en castellano

Manual TSDS en castellano
Manual TSDS en castellano

En este enlace cuentan brevemente sobre el TSDS  y desde este otro enlace se puede bajar el soft. Mis softwares importantes los desarrollé gracias al TSDS.

7 - ¿Cómo aprendiste a programar? Sin internet y estando en Argentina ¿cómo se conseguía información, libros...?

Los libros de Commodore se conseguián, incluso los listados de la ROM.
Yo me los compré a todos, incluso los de las roms de los drivers 1571… Recuerdo que aprendí a generar diskettes con mi propio formato! Sólo mis programas podían leer esos discos! Y claro, tenían más del 50% de capacidad que los comunes, lo cual era muy interesante para soporte de base de datos.
Respecto a estudiar, lo que hoy en día no se puede bajar de Internet y de ninguna parte, son las GANAS de saber! Para mí, era apasionante conocer más y más…

8 - ¿Sigues en contacto con alguien que hayas conocido gracias a tu paso por el mundo del C64?

Salvo mi amigo José Zanni, Juan Dutka y Fabricio Geronazzo, nadie más. Pero estos últimos, ya están muy desligados de la Commodore, más que yo…

9 - ¿Cómo fue la transición del Commodore al PC? ¿Conservas algo de aquella época (gráficos, diskettes, dibujos, códigos, cartuchos, etc.)?

No conservo nada, lamentablemente... Sólo un VHS con un demo del "Video Secuencer" y fotos. Recuerdo que solía visitar a mi amigo Fabricio para que me consiguiera C=64 para mis cartuchos de “video sequencer” y cada vez se hacía más difícil. Yo era como un dinosaurio, mientras todos estaban ya con las PCs yo seguía con mi querida Commodore. Había desarrollado todo un sistema para publicidad, que generaba placas y animaciones, negocio que resultaba lucrativo para los canales de cable, incluso a mediados de 1992, pero finalmente, el tiempo pasó…

Prosperé y fui a trabajar al más importante cable del país, el cual, fue comprando poco a poco a todos los pequeños cableoperadores a los que yo mismo había proveído del “video secuencer” y cuando llegaba a la planta el equipamiento proveniente de las empresas absorbidas, llegaban mis queridas C=64 con su “video secuencer”. Me daba alegría y nostalgia a la vez… Los técnicos se preguntaban qué era eso… y yo les contaba y se quedaban muy sorprendidos…  El 1 de abril de 1998 (me recordó la fecha mi hijo Joel – un genio de la programación -) llegó nuestra primer PC, que fue la maravillosa MMX con Windows 95 y una Soundblaster 64 – muy significativo el número -, de todos modos yo programaba de antes, desde las 286.

10 - ¿Qué piensas de la vida que siguen teniendo aquellos equipos?

Como todo hobby está bueno… ¡pero es mejor dejar las cosas en su tiempo!

11 - ¿Te gustaría volver a hacer algo usando un Commodore 64/128?

Me  gusta todo lo moderno, lo mejor de lo que dispongamos, y en aquella época, sin duda que lo fue nuestra inolvidable Commodore… Sigo hoy con la misma filosofía, busco lo mejor y la Commodore 64 ya no lo es!!!

12 - ¡Gracias por responder a todas las preguntas!, si quieres agregar algo más...

Gracias por hacerme recordar esa hermosa época y casi se me pianta un lagrimón!!! Ya mi hiciste dar nostalgia, y voy a bajarme un emulador...

6 comentarios:

  1. Genial la entrevista y Mario un auténtico crack. En su época era casi aotosuficiente y lo que no tenía se lo hacía. Me quedo con lo de : hoy en día no se puede bajar de Internet y de ninguna parte, son las GANAS de saber!

    ResponderEliminar
    Respuestas
    1. Realmente un auténtico genio y una muy buena persona.

      Lo de "las ganas de saber" es esencial, en estos tiempos de internet y de acceso casi total al conocimiento, es lo único imprescindible!

      Lo que hubiera dado en aquella época tener acceso a todo lo que se tiene ahora...

      Eliminar
  2. Que estupendo es conocer a gente así, que fueron pioneros en el uso de estas maquinas. Todos tienen geniales anecdotas que contar. Genial entrevista, Pepe!

    ResponderEliminar
    Respuestas
    1. Jrasias amijo Cyto!

      Una pena que Mario no se haya quedado con nada de material :S

      Eliminar
  3. Yo supe estudiar en Oncativo con Claudio Sileoni y era un capo total !!!, no se que fue de el, pero las cosas que hacia en asembler con la C64 eran un espectaculo. Que gratos recuerdos de esa epoca, gracias por esta publicación.!!!
    PD: Si sabes algo de la vida de Claudio comentamelo, Saludos. CRISTIAN.

    ResponderEliminar
    Respuestas
    1. Hola Christian,

      Esa época dejó recuerdos imborrables!!

      Yo compartí departamento en Córdoba con Claudio durante varios años, mientras estudiabamos, luego yo me fui a Villa María y él se quedó en Córdoba, después el se fue a Brasil y yo a España. De vez en cuando nos comunicábamos para hablar de estas cosas, hasta que un día me escribió para contarme que estaba internado, lo llamé, me dijo que estaba con un tratamiento de quimio y además obviamente seguimos hablando de estas cosas!! :D Yo realmente no tomé conciencia de que estaba grave, él tampoco me lo dijo.
      Cuando lo llamé de nuevo, al mes o dos su mujer me dio la mala noticia de que había muerto... fue un shock y cada vez que me acuerdo o lo cuento como ahora se me hiela la sangre :'(

      Esto fue en 2006 y justamente a finales de agosto.

      Eliminar