Articulo de referencia

Superexpansor

Un cartucho Super Expander VIC-1211 El VIC-1211 Super Expander es un cartucho para el ordenador doméstico VIC-20 . [ 1 ] Fue diseñado para proporcionar varias extensiones al int...

Un cartucho Super Expander VIC-1211

El VIC-1211 Super Expander es un cartucho para el ordenador doméstico VIC-20 . [ 1 ] Fue diseñado para proporcionar varias extensiones al intérprete BASIC del ordenador, principalmente para facilitar la programación de gráficos y sonido . También proporcionaba 3 KB de RAM adicional (de los cuales 136 bytes eran utilizados por el propio cartucho). El cartucho fue creado por Commodore Business Machines (CBM) y lanzado en 1981.

Descripción

El dialecto de BASIC incluido con el VIC-20, Commodore BASIC V2.0 , era conocido por su escasa funcionalidad. Ni siquiera igualaba las características de la línea anterior de ordenadores de Commodore, el PET , que en aquel entonces ya incluía la versión 4.0 de Commodore BASIC. Como resultado, estaba obsoleto para el lanzamiento del VIC-20 y parecía bastante primitivo comparado con los dialectos de BASIC disponibles en otros microordenadores. Cabe mencionar que la decisión de Commodore de reutilizar el antiguo BASIC, y el hecho de que pudiera caber en tan solo 16 KB de ROM (incluido el núcleo ), ayudó a mantener el precio del VIC-20 al mínimo y, por lo tanto, contribuyó a su enorme éxito. Además, era estable y prácticamente libre de errores , algo que no se podía decir de algunos BASIC de la competencia.

Sin embargo, "VIC BASIC" no solo carecía de comandos considerados fundamentales para el lenguaje BASIC, como "else" y "renum", sino que tampoco ofrecía soporte para gráficos ni efectos de sonido. Para usar los gráficos y el sonido del VIC-20, los programadores tenían que acceder directamente a los bytes del hardware gráfico/de sonido del VIC-20, el chip de interfaz de vídeo 6560 (VIC) . Esto hacía que la programación fuera bastante tediosa y propensa a errores, ya que era necesario usar constantemente direcciones de memoria y códigos crípticos; los errores en estos solían provocar el bloqueo del ordenador en lugar de mostrar un mensaje de error, y se requerían muchas instrucciones incluso para tareas sencillas. Esto era fatal para la escasa RAM y el lento paradigma BASIC interpretado de la época.

Los programadores podían mitigar estos problemas utilizando código máquina , hasta cierto punto, pero esto en sí mismo era un proceso tedioso con una curva de aprendizaje bastante pronunciada. Para solucionar estas deficiencias, Commodore creó el cartucho Super Expander . Este proporcionaba comandos BASIC adicionales para facilitar el uso de gráficos y sonido en el VIC-20. También incluía comandos para leer el joystick y el lápiz óptico , y desbloqueaba el uso de las teclas de función .

Gráficos

El VIC-20 no admitía gráficos de alta resolución directamente. Los gráficos de alta resolución se implementaban "pintando" la pantalla con caracteres y "redefiniendo" los mapas de bits de caracteres sobre la marcha. Este era un proceso complejo y laborioso; implementarlo en un programa BASIC era prácticamente inútil debido al tiempo de ejecución necesario para dibujar cualquier cosa.

El Super Expander se encargaba de todo el trabajo pesado. Permitía al programador dibujar puntos, líneas, elipses y arcos, y pintar regiones cerradas con instrucciones de una sola línea. Se podían usar los 16 colores del VIC-20, aunque con restricciones debido a las limitaciones del chip 6560. La resolución de la pantalla era de 160 × 160 píxeles , reducida respecto a los 192 × 200 que permitía el chip 6560, para permitir el direccionamiento por píxel. Se admitía la alta resolución multicolor (con una resolución de 80 × 160) y se podía combinar con la alta resolución normal.

Sonido

La capacidad de sonido del VIC-20 era bastante simple, por lo que programar efectos de sonido usando "PEEK and POKE" no era tan complicado como programar gráficos. Aun así, el Super Expander proporcionaba un comando para reproducir tonos simples en los cuatro canales de voz del VIC-20 y para controlar el volumen.

La reproducción de música no era compatible con el VIC-20; la forma habitual de reproducir una nota musical era mediante un bucle con retardo. En cambio, con el Super Expander, las partituras musicales podían reproducirse simplemente imprimiendo una cadena de caracteres. (Las cadenas musicales se distinguían de las cadenas normales mediante un carácter de control inverso especial, familiar para cualquiera que hubiera utilizado colores o controles de cursor en programas del VIC-20). Cada uno de los cuatro canales de voz del VIC-20 podía reproducir sus propias partituras simultáneamente, creando efectos armónicos que, para la época, resultaban sorprendentes.

Otros dispositivos

Super Expander proporcionaba comandos para leer el estado del joystick y las paletas , así como la posición del lápiz óptico. En el caso del joystick, al ser de tipo digital o de interruptor, se requería manipulación de bits adicional para decodificar su posición.

teclas de función

Normalmente, las teclas de función del VIC-20 solo podían utilizarse dentro de un programa, escaneando el código de tecla correspondiente al leer el teclado . En el modo directo del VIC-20, no estaban disponibles para realizar ninguna acción. Con el Super Expander, las teclas de función podían asignarse para ejecutar comandos en modo inmediato. Por defecto, venían preprogramadas con los comandos BASIC más comunes, de forma similar a GW-BASIC en el IBM PC . El usuario podía entonces asignar sus propios comandos, o cualquier cadena de caracteres, a las teclas de función.

Desventajas

A continuación se detallan las principales limitaciones del atractivo y la utilidad del Super Expander .

  • Commodore diseñó el Super Expander para mapear la pantalla gráfica a un sistema de coordenadas de 1024 × 1024. En este esquema, cada píxel de vídeo tenía un tamaño de 6,4 (o 12,8) píxeles "virtuales". Esto significaba que, para colocar los píxeles en posiciones exactas en la pantalla, era necesario programar una operación de escalado adicional. Una funcionalidad similar se ofrecía en BASIC 3.5 y 7.0 mediante el SCALEcomando, pero en estas versiones de BASIC, el escalado era opcional y podía realizarse a cualquier tamaño especificado por el usuario.
  • El sistema de coordenadas no tenía en cuenta la relación de aspecto del dispositivo de salida (es decir, el televisor). Por lo tanto, en NTSC, un círculo de, digamos, 300×300 píxeles aparecería elíptico. Del mismo modo, una línea trazada desde (0,0) hasta (300,300) no se mostraría con un ángulo de 45°.
  • Al dibujar arcos circulares, los ángulos inicial y final debían especificarse en unidades no estándar de 100 "gradientes" respecto al círculo (en lugar de 360 ​​grados o 400 gradientes reales ).
  • El Super Expander no tenía la capacidad de mostrar mapas de bits . Esto significaba que los mapas de bits arbitrarios, como los que se usaban en juegos de alta resolución, debían dibujarse píxel a píxel. La lentitud del intérprete BASIC hacía que esto no fuera adecuado para aplicaciones como los juegos arcade . En consecuencia, la capacidad del Super Expander era útil principalmente para dibujos centrados en formas, como gráficos e imágenes simples, o para juegos de aventuras con imágenes estáticas.
  • Los programas escritos con los comandos adicionales del Super Expander no eran portables . Algunos programas del Super Expander eran demasiado grandes para un VIC-20 sin expansión, y el BASIC integrado del VIC-20 no podía cargar correctamente el código que contenía las palabras clave del Super Expander desde cinta o disco. Por lo tanto, la gama de software publicado para aprovechar las capacidades del Super Expander , incluidos los programas de entrada de texto publicados en revistas, era muy reducida.

A pesar de lo anterior, las características del Super Expander subsanaron muchas de las deficiencias del entorno de programación del VIC-20. Además, otros microordenadores similares en el mercado presentaban las mismas deficiencias, o equivalentes.

Referencias

  1. Dillon, Roberto (3 de diciembre de 2014). Listo . Singapur [ua]: Springer. pág.  26. ISBN 978-981-287-341-5.

Véase también

  • ftp.funet.fi: Manual y programas de demostración de Super Expander