right|thumb|El cartucho Simons' Basic comercializado por Commodore

El Simons' BasicSimons' Basic User Manual (Published by Commodore) es una extensión del Commodore BASIC 2.0 para el Commodore 64. Escrito en 1983 por un joven programador inglés de 16 años, David Simons, fue comercializado por Commodore como cartucho de extensión. También se distribuyó oficiosamente en forma de archivo ejecutable (en disquete por ejemplo).

Características

El Commodore BASIC 2.0 recibe 114 nuevas instrucciones para aprovechar el potencial multimedia del Commodore 64 más simplemente. El conjunto de instrucciones extendido añade comandos que facilita el manejo de los sprites, los gráficos de alta resolución y multicolor, el chip SID para el sonido. Simons' Basic también propone instrucciones relacionadas con la programación estructurada. Además, se podía usar los prefijos $ para los números hexadecimales y % para los números binarios.

Las instrucciones

Gestión de sprites

MOB SET - definir los atributos de un sprite MMOB - posición del sprite en la pantalla RLOCMOB - mover un sprite de un lugar a otro CMOB - definir los dos colores principales para los sprites multicolores MOB OFF - desactivar un sprite DETECT - inicializar la detección de colisión del sprite CHECK - verificar si hay colisión de un sprite @ - dibujar un sprite en una cuadrícula usando unas letras específicas del teclado DESIGN - asignar espacio memoria para la creación de un sprite

Gestión de gráficos alta resolución

HIRES - inicializar un modo gráfico alta resolución MULTI - inicializar un modo gráfico multicolor NRM - volver en modo texto (baja resolución) LOW COL - definir el color del punto/pixel HI COL - re-inicializar el color del punto/pixel a su valor por defecto PLOT - dibujar un punto/pixel LINE - dibujar una línea CIRCLE - dibujar un círculo ARC - dibujar un arco ANGL - dibujar un rayo de círculo PAINT - rellenar una superficie REC - dibujar un rectángulo vació BLOCK - dibujar un rectángulo lleno DRAW - dibujar una figura geométrica ROT - determinar la rotación y el zum para la instrucción DRAW CHAR - escribir un carácter en una pantalla de alta resolución TEXT - escribir un texto en una pantalla de alta resolución TEST - determinar si en una posición definida hay un punto/pixel dibujado o no

Otros comandos gráficos

COLOUR - atribuir el color de fondo y del borde de la pantalla CSET - seleccionar un conjunto de caracteres (tipo de letra) MEM - copiar el conjunto de caracteres (tipo de letra) de la ROM a la RAM BCKGNDS - cambiar el color de fondo de un carácter FLASH - hacer parpadear la pantalla OFF - parar el parpadeo de la pantalla del comando FLASH BFLASH - hacer parpadear el borde de la pantalla FCHR - rellenar una parte de la pantalla con un carácter específico FCOL - cambiar el color del carácter usado en el comando FCHR FILL - una combinación de los comandos FCHR y FCOL MOVE - copiar una parte/zona de la pantalla INV - invertir una parte/zona de la pantalla LEFT - mover la pantalla a la izquierda RIGHT - mover la pantalla a la derecha UP - mover la pantalla arriba DOWN - mover la pantalla abajo SCRSV - guardar una pantalla de texto en el disquete/casete SCRLD - cargar una pantalla de texto desde el disquete/casete GRAPHICS - devolver el valor a la dirección de base del VIC-II, a $D000

Gestión del sonido y del chip SID MUSIC - escribir una música y sus efectos audios a partir de una lista de caracteres PLAY - reproducir la música escrita con MUSIC VOL - determinar el volumen principal WAVE - definir la forma de onda para un canal definido (voz) ENVELOPE - definir el ADSR para un canal definido (voz) SOUND - devolver el valor a la dirección de base del SID, a $D400

Gestión del teclado

FETCH - definir el tipo y la cantidad de caracteres entrados por el teclado INKEY - averiguar que tecla de función ha sido presionada ON KEY - averiguar si una tecla en particular ha sido presionada y ejecutar un salto de programación si es cierto DISABLE - desactivar el comando ON KEY RESUME - reactivar el comando ON KEY

Gestión de periféricos de entrada

JOY - informar de la posición del joystick POT - informar de la posición del paddle PENX - informar de la posición horizontal del lápiz óptico PENY - informar de la posición vertical del lápiz óptico

Gestión de errores

ON ERROR - definir una rutina de detección de un error OUT - comando para salir de la rutina de detección de un error NO ERROR - desactivar el comando ON ERROR y devolver la gestión de errores al BASIC

Gestión de la disquetera

DIR - mostrar parte o todo el directorio de un disquete DISK - enviar una instrucción de acceso a la disquetera

Gestión de la impresora

HRDCPY - imprimir una pantalla de texto COPY - imprimir una pantalla de gráfico

Gestión de cadena de caracteres

INSERT - insertar una cadena de caracteres en otra INST - similar a INSERT, pero sobrescribir en vez de insertar PLACE - buscar una cadena de caracteres dentro de otra DUP - copiar una cadena de caracteres "n" veces

Gestión de texto

AT - escribir un texto en una posición específica en la pantalla CENTER - centrar un texto en su línea USE - definir un formato de números LIN - determinar el número de la línea del cursor

Instrucciones matemáticas

MOD - ejecutar una división y mostrar el resto DIV - ejecutar una división y mostrar el cociente FRAC - mostrar la parte fraccional de un número EXOR - ejecutar un «o exclusivo» entre dos números

Ayuda a la programación

AUTO - generar automáticamente los números de las líneas de un programa BASIC RENUMBER - volver a numerar los números de las líneas de un programa BASIC (pero no corrige los números de GOTO/GOSUB) OLD - restaurar un programa BASIC accidentalmente borrado par la instrucción NEW KEY - asignar una(s) instrucción(es) Simons' Basic macro a una tecla de función DISPLAY - listar todas las teclas de función y sus macros definidas por la instrucción KEY PAUSE - suspender la ejecución de un programa durante el tiempo especificado CGOTO - equivalente al GOTO, pero acepta expresiones calculadas RESET - mover el puntero del comando DATA a una línea específica MERGE - unir un programa BASIC de un disquete/casete, con el programa BASIC en memoria PAGE - mostrar el código del programa BASIC, página por página OPTION - poner en evidencia las instrucciones específicas Simons' Basic cuando se usa LIST DELAY - modificar la velocidad del desfile vertical del comando LIST FIND - buscar una cadena de caracteres en un programa BASIC TRACE - mostrar la línea del programa cuando este es ejecutado RETRACE - continuar el TRACE donde el programa ha sido interrumpido DUMP - mostrar todos los valores de variables, excepto las matrices de variables COLD - reset del Commodore 64, para volver a la página de inicio de Simons' Basic

Instrucciones de seguridad

DISAPA - indicar la(s) línea(s) del programa BASIC que queremos ocultar SECURE - ocultar todas las líneas especificadas con DISAPA para que no aparezcan cuando se usa LIST

Instrucciones para la programación estructurada

IF...ELSE...THEN - similar al IF/THEN del BASIC pero con la condición añadida ELSE (SI NO) REPEAT...UNTIL - similar al FOR...NEXT pero en vez de repetir un número de veces, se usa una condición RCOMP - ejecutar de nuevo la última condición IF...ELSE...THEN LOOP...EXIT IF - ejecutar un bucle hasta que la condición EXIT IF sea cierta END LOOP - si la condición es cierta, salir del bucle PROC - inicio de la creación de una subrutina END PROC - fin de la creación de una subrutina CALL - saltar a la subrutina definida por PROC/END PROC (similar al GOTO pero con un nombre de subrutina) EXEC - saltar a la subrutina definida por PROC/END PROC y volver (similar al GOSUB pero con un nombre de subrutina) LOCAL - redefinir (temporalmente) una(s) variable(s) usada(s) en una subrutina GLOBAL - devolver los valores de la(s) variable(s) previo al uso del comando LOCAL

Otras funcionalidades

$ y % son igualmente considerados como instrucciones, para un total de 114 nuevas instrucciones BASIC

Curiosidad

Las instrucciones GRAPHICS, SOUND y LIN no son descritas en el manual del Simons' Basic.

Referencias

Enlaces externos

Categoría:Software de Commodore