BASIC de Simons es una extensión de BASIC 2.0 para la computadora doméstica Commodore 64 . Escrito por el programador británico David Simons en 1983, que en ese momento tenía 16 años, fue distribuido por Commodore en forma de cartucho .
Se le llama ampliamente, pero incorrectamente, " Simon's BASIC ", debido a la confusión entre el nombre "Simon" y el apellido "Simons".
Portada del manualCartucho BASIC de SimonsCartucho con la etiqueta mal escrita que contribuye a la confusión de nombres del software.
Características
BASIC de Simons agregó una variedad de características a Commodore BASIC 2.0: [1]
palabras clave para ayudar a escribir y editar programas BÁSICOS, similares a los del cartucho de ayuda al programador VIC-20
Los programas escritos en BASIC de Simons podrían emplear números hexadecimales en asignaciones y cálculos incluyendo un $prefijo, o números binarios utilizando un %prefijo.
Debido a que una parte de los datos del cartucho se asigna a la memoria en direcciones , que se superponen a parte de la RAM$8000–$9FFF BÁSICA C64 estándar , la cantidad de memoria disponible para los programas BÁSICOS era 8 KB menor que la de una configuración C64 estándar.
Simons escribió una extensión y Commodore la publicó en disquete y cinta como extensión básica de Simons. Este software también se conoce como Simons' Basic 2. No se pudo lanzar en cartucho porque el cartucho Simons' Basic original tenía que estar presente para poder utilizar la extensión. La extensión básica de Simons agrega otros 91 comandos, incluido el muy codiciado comando RENUMber, que renumera los destinos GOTOy GOSUBlas declaraciones. [2]
Las 114 palabras clave
Sprite (MOB) manejando palabras clave
MOB SET– habilita un sprite y define sus atributos
MMOB– coloca un objeto en la pantalla
RLOCMOB– hace que un objeto se mueva suavemente de un lugar a otro
CMOB– configura los dos colores globales para sprites multicolores
MOB OFF– desactiva un sprite
DETECT– inicializa la detección de colisión de sprites
CHECK– comprueba si hay una colisión de sprites
Gráficos de alta resolución que manejan palabras clave.
HIRES– inicializa un modo de gráficos de alta resolución
MULTI– inicializa un modo de gráficos multicolor
NRM– vuelve a la pantalla de texto
LOW COL– cambia los colores del trazado
HI COL– vuelve a los colores de trazado originales
PLOT– dibuja un píxel
LINE– dibuja una línea
CIRCLE– dibuja un círculo
ARC– dibuja un arco
ANGL– dibuja el radio de un círculo
PAINT– realiza un relleno de inundación
REC– dibuja un rectángulo hueco
BLOCK– dibuja un rectángulo sólido
DRAW– dibuja un conjunto de líneas definido por el usuario
ROT– establece factores de escala paraDRAW
CHAR– traza un carácter de texto en una pantalla de alta resolución
TEXT– traza una cadena de texto en una pantalla de alta resolución
TEST– determina si un píxel está trazado o vacío
Otros gráficos que manejan palabras clave
COLOUR– establece los colores de fondo y borde; se utiliza la ortografía británica
CSET– selecciona un juego de caracteres
MEM– copia la ROM de caracteres a la RAM
BCKGNDS– configura el modo de color de fondo extendido
FLASH– configura un color de pantalla para que parpadee
OFF– anula una FLASHdirectiva anterior
BFLASH– hace que el borde de la pantalla parpadee
FCHR– llena un área de la pantalla de texto con un código de carácter determinado
FCOL– cambia los colores de los caracteres para un área seleccionada de la pantalla
FILL– una combinación de FCHRyFCOL
MOVE– copia una sección de la pantalla
INV– muestra un área de la pantalla al revés
LEFT– desplaza la pantalla hacia la izquierda
RIGHT– desplaza la pantalla hacia la derecha
UP– desplaza la pantalla hacia arriba
DOWN– desplaza la pantalla hacia abajo
GRAPHICS– variable reservada que siempre es igual a $D000 (la dirección base del chip VIC-II )
SCRSV– guarda una pantalla de texto en una cinta o disco
SCRLD– carga una pantalla de texto desde una cinta o disco
Manejo sólido de palabras clave
MUSIC– reproduce una serie de notas basadas en el contenido de una variable de cadena
PLAY– determina si el programa continúa ejecutándose duranteMUSIC
VOL– especifica el volumen del sonido maestro
WAVE– especifica un tipo de voz
ENVELOPE– establece los parámetros ADSR para una voz SID
SOUND– variable reservada que siempre equivale a $D400 (la dirección base del chip SID)
Palabras clave de manejo de entrada de teclado
FETCH– toma la entrada del usuario con restricciones definidas por el comando
INKEY– comprueba si se ha pulsado una tecla de función
ON KEY– comprueba si se ha pulsado una tecla determinada y luego realiza una bifurcación si está presente
COPY– envía la pantalla de alta resolución a la impresora
Palabras clave de manipulación de cadenas
INSERT– inserta una cadena en medio de otra (Nota: no hay un signo de dólar después de INSERT, a diferencia de otros operadores de cadena como STR$, LEFT$, RIGHT$, etc.)
INST– similar a INSERT, pero sobrescribe en lugar de insertar. (Nota: al igual que con INSERT, no hay ningún signo de dólar después de INST).
PLACE– busca una cadena en medio de otra
DUP– duplica una cadena de caracteres un número determinado de veces. (Nota: al igual que con INSERT, no hay ningún signo de dólar después de DUP).
Palabras clave de formato de texto
PRINT AT– imprime una cadena en una ubicación de pantalla determinada
CENTRE– centra una cadena de caracteres en la pantalla; se utiliza la ortografía británica
USE– formatea datos numéricos en cadenas basadas en una plantilla, al igual que PRINT USINGen otras versiones avanzadas de BASIC en otras computadoras, por ejemplo, el Commodore 128 , por ejemplo.
LIN– devuelve la posición vertical del cursor
Palabras clave matemáticas
Nota: Estas operaciones están restringidas a valores que caben en un entero sin signo de 16 bits, en lugar del rango completo de punto flotante utilizado por las operaciones y funciones aritméticas BÁSICAS integradas.
MOD– realiza una operación de división y devuelve el resto
DIV– realiza una operación de división y devuelve el cociente entero
FRAC– aísla la porción fraccionaria de un número
EXOR– realiza una operación lógica OR exclusiva
Palabras clave de ayuda al programador
AUTO– genera automáticamente números de línea cuando se ingresa un programa BÁSICO
RENUMBER– renumera un programa BÁSICO (pero no corrige declaraciones GOTO/ GOSUB).
OLD– recupera un programa eliminado accidentalmente por el NEWcomando
DISPLAY– muestra todas las macros de teclas de función
MERGE– fusiona un programa BÁSICO de una cinta o disco con el programa actualmente en la memoria
PAGE– muestra una lista de programas BÁSICOS en formato de página
OPTION– resalta las palabras clave BÁSICAS de Simons cuando se usa el LISTcomando
DELAY– varía la velocidad a la que el LISTcomando se desplaza por la pantalla
FIND– busca en el programa una cadena
TRACE– muestra los números de línea mientras se ejecuta un programa
RETRACE– muestra los resultados de un seguimiento
DUMP– muestra todos los valores de las variables excepto las matrices
COLD– reinicia el C64
Palabras clave relacionadas con la seguridad
DISAPA– marca una línea de programa BÁSICO para ocultar
SECURE– oculta todas las líneas marcadas con DISAPApara que no se puedan ver conLIST
Palabras clave de programación estructurada
ELSE– permite una rama alternativa para IF/ THENcondicionales
REPEAT– inicio de una estructura de bucle REPEAT/UNTIL
UNTIL– define la condición de bucle para una estructura de bucle REPEAT/ UNTILy marca su final
RCOMPIF– restablece el // THENcondicional ELSEutilizado más recientemente
LOOP– define el inicio de un bucle que se ejecutará hasta que un EXIT IFcondicional sea verdadero
EXIT IF– el condicional es verdadero, por lo que sale de la estructura LOOP/ actualEND LOOP
END LOOP– define el final de un bucle que se ejecutará hasta que un EXIT IFcondicional sea verdadero
PROC– define el inicio de una subrutina con nombre
END PROC– define el final de una subrutina con nombre
CALL– saltar a una subrutina con nombre definida con PROC/ END PROCy permanecer allí
EXEC– llamar a una subrutina con nombre definida con PROC/ END PROC, luego regresar
LOCAL– redefine variables para su uso en estructuras
GLOBAL– invierte los efectos de un LOCALcomando anterior
Palabras clave varias
CGOTO– equivalente a GOTO, pero acepta expresiones calculadas
RESET– mueve el DATApuntero a un número de línea determinado
PAUSE– pausa la ejecución del programa durante un número específico de segundos
Otro
$y %también se consideran palabras clave, para un total de 114.
Trivialidades
La banda barcelonesa tituló su álbum debut de 1999 Simón Básico en homenaje. El álbum incluye la canción "C-64".
Recepción
Creative Computing declaró que el BASIC de Simons "casi convierte el 64 en una computadora nueva (probablemente la que debería haber sido en primer lugar)". Elogió el "muy excelente manual" en contraste con la documentación generalmente deficiente de Commodore, y predijo que se convertiría en "el lenguaje estándar para programar la máquina... Será mejor que Commodore planee fabricar muchas copias porque irán rápido". [3] ¡Ay! escribió "Si realiza alguna programación en BASIC y ve este producto en el estante de un distribuidor, no haga ninguna pregunta, no lo dude, ¡simplemente cómprelo!" La revista elogió la potencia y el "excelente manual" del BASIC de Simons y afirmó que "su precio lo convierte en una de las mayores gangas disponibles para el Commodore 64". [4] La revisión de RUN fue menos favorable y afirmó que sus "muchos comandos poderosos y útiles... desafortunadamente, se implementaron muy mal para un paquete comercial. Hay muy poca verificación de parámetros de comando y muchas cosas se han pasado por alto o ignoradas. " [5]
El cartucho BASIC original de SIMONS (sin la extensión) no tiene disposiciones para leer el canal de error en las unidades de disco Commodore 1541 y Commodore 1571 , ni puede realizar una lista de archivos en el DIRECTORIO ni emitir un comando DISK en ninguna unidad de disco que no sea Drive #8 cuando hay más de una unidad de disco conectada al Commodore 64. Y aunque la mayoría de las palabras clave "estándar" de BASIC 2.0 se pueden abreviar escribiendo la primera o la primera y la segunda letra y luego manteniendo presionada la tecla MAYÚS mientras escribe la segunda (o tercera). ) letra después de eso, todas las palabras clave BÁSICAS DE SIMONS deben estar escritas en su totalidad exactamente como se muestra en el manual del usuario adjunto. Esto incluye los comandos COLOR (que selecciona el color de fondo y el color del borde exterior) y CENTRO (que imprime mensajes de texto "centrados" en la pantalla), ambos escritos en inglés británico y incorporados de esa manera en SIMONS. ' BÁSICO.
Referencias
^ Manual de usuario básico de Simons (publicado por Commodore)
^ Manual de usuario básico 2 de Simons (publicado por Commodore)
^ Onosko, Tim (noviembre de 1983). "Básico de Simons". Computación creativa . pag. 60 . Consultado el 27 de junio de 2014 .
^ Kevelson, Morton A. (febrero de 1984). "BÁSICO de Simons". ¡Ahí! . págs. 57–58 . Consultado el 27 de junio de 2014 .
^ Baker, Robert W. (abril de 1985). "Una revisión de lo básico de Simons". CORRER . págs. 94–95 . Consultado el 27 de junio de 2014 .
enlaces externos
Guía básica del usuario de Simons en Internet Archive por David Simons, Commodore Computers, 1983. Descargable como PDF.
Guía de referencia básica en italiano de Simons por David Simons, Commodore Editor, 1983.
Tema del foro Lemon64 con información informal del propio David Simons.