Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Color BASIC
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de lenguaje de programación | nombre = Color BASIC | desarrollador = [[Microsoft]] |sistema_operativo=Windows|diseñador=[[Bill Gates]]|año=1980|fecha_ultima_version=Color BASIC 1.3 (1982). Extended Color BASIC (1984). Disk Extended Color BASIC (1984).}} '''Color BASIC''' es la implementación de [[Microsoft BASIC]] que se incluye en la [[Memoria de solo lectura|ROM]] de las [[TRS-80 Color Computer|computadoras a color Tandy/Radio Shack TRS-80]] fabricadas entre 1980 y 1991.<ref>{{Cita web|url=https://www.abandonsocios.org/wiki/TRS-80_Color_Computer|título=TRS-80 Color Computer - AbandonWiki|fechaacceso=2023-02-15|sitioweb=www.abandonsocios.org}}</ref> [[BASIC]] (Código de instrucciones simbólicas multipropósito para principiantes, de ahí en inglés sus siglas), es un lenguaje de alto nivel con una sintaxis simple facilitada, para tener la posibilidad de escribir programas simples. La decodificación ocurre, al momento en que BASIC se está ejecutando. == Fondo == [[File:CoCo3system.jpg|vínculo=https://en.wikipedia.org/wiki/File:CoCo3system.jpg|miniaturadeimagen|DECB 2.1 en una [[Tandy_Corporation|Tandy]] [[TRS-80 Color Computer|Color Computer 3]]]] El núcleo de Color BASIC fue Microsoft BASIC-69, que Tandy obtuvo la licencia de Microsoft. Color BASIC 1.0 se lanzó con la computadora a color 4k TRS-80 original en 1980. Reside en 8 Kilobytes de ROM y es responsable de todas las tareas de "limpieza" del sistema. Esto incluye comienzo de hardware, administración de memoria, procesamiento de interrupciones, etc. Como la mayoría de las implementaciones de BASIC, cada línea de código comienza con un número de línea y consta de no únicamente una declaración con variables y operadores. Se requieren 16 Kilobytes de memoria para el siguiente nivel de BASIC, Extended Color BASIC ("ECB"). Extended BASIC se requiere para el controlador de [[disquete]], que luego le proporciona un Disco de Color Extendido BASIC ("DECB"). La disponibilidad de emular este intérprete está disponible para las computadoras modernas, de las cuales, algunas requieren un archivo de "instantánea" de la máquina física. == Variables == Color BASIC comprende un tipo de variable numérica y variables de cadena de texto. Hay dos principales caracteres significativos como nombres de variables en Color BASIC. El primer carácter del nombre de la variable viene a ser una letra, mientras que el segundo carácter puede ser una letra o un número. Las variables de cadena se indican agregando un signo de dólar ($) después del nombre de la variable. === Ejemplos === <syntaxhighlight lang="basic" line="1"> A=5 A$="THIS IS A STRING" K7=10 BB$="HELLO!" ZZ=1.54 </syntaxhighlight> Las variables numéricas tienen un solo tipo, siendo este una implementación binaria de coma flotante. Cada variable de números usa 5 bytes de memoria, pudiendo estar entre el rango de -1E+38 y 1E+37. A diferencia de la mayoría de las implementaciones de Microsoft BASIC, Color BASIC requiere que el usuario debe reservar espacio, para las variables de cadena, mediante la instrucción CLEAR. Las matrices de múltiples dimensiones también tienen compatibilidad con variables numéricas y de cadena. En el caso de una matriz, la dirección o ubicación del elemento está encerrada entre paréntesis: <syntaxhighlight lang="basic"> A(1)=1 A$(1)="BOOKS" </syntaxhighlight> Varias dimensiones están separadas por comas <syntaxhighlight lang="basic"> A(1,3)=4 A$(2,2)="XYZ123" </syntaxhighlight> == Operadores y Símbolos == Color BASIC proporciona varios operadores para operaciones matemáticas y operaciones de cadenas, en menor medida. : + se puede usar para concatenar cadenas o para sumas matemáticas : - se usa para restar : * se usa para la multiplicación : / se usa para dividir Los paréntesis ( ) son usados, para anular el orden matemático de operación : AND se utiliza para operaciones lógicas 'y' : OR se usa para operaciones lógicas 'o' : NOT se utiliza para operaciones lógicas 'not' Para la prueba, se utilizan los siguientes operadores: : <nowiki>=</nowiki> es igual a : > es mayor que : < es menor que : >= es mayor o igual que (también => es aceptable) : <= es menor o igual que (también =< es aceptable) : <> no es igual a (también >< es aceptable) Otros símbolos utilizados en BASIC: : " " indica que la cadena de datos es una constante (estática) : ''':''' separa múltiples comandos en una sola línea de programa : Un [[punto y coma]], cuando se encuentra en una función IMPRIMIR, hará que la salida permanezca en la misma línea : Una coma, cuando se encuentra en una función IMPRIMIR, pasará a la siguiente columna == Clave == ''num'' indica que es necesario expresar un número. Este puede ser dígito fijo, una variable u otra operación o función que devuelva la expresión numérica. ''str'' indica que es necesario expresar una cadena de texto. Las posibilidades existen en ser un valor de cadena estático (entre comillas), una variable de cadena u otra función o expresión que devuelva una [[cadena de caracteres]]. ''device number'' indica un dispositivo. Por defecto, se asume el dispositivo 0 (pantalla y teclado), como principal dispositivo. En Color BASIC, el dispositivo #-1 ([[casete]]) y #-2 (impresora) están disponibles para el programador. == Modo de edición == Al cometer un error en la escritura de una línea, se puede volver a escribirla desde cero (o ELIMINARLA) o puede EDITARLA. Estando en modo EDITAR, se obtiene una reimpresión de la línea y una segunda copia que coloca la barra ESPACIADORA en los caracteres. No está permitido utilizar las teclas de flecha. Y el retroceso lo lleva a la izquierda, sin poder borrarlo en el búfer. 'i' coloca al usuario en modo de inserción. Presionando Regresar, lo saca de eso. 'c' cambia un carácter. 'd' borra un carácter. 'x' lleva al usuario al final de la línea, lo que le permite extenderla. 'l' vuelve a dibujar la línea. 's' busca la siguiente instancia de un carácter. Para los comandos 's', 'c' y 'd' también permite al usuario ingresar un número (#) antes de presionar cualquiera de ellos, de modo que: 's' buscará la instancia numérica o # del carácter, 'c' le permitirá al usuario cambiar el número de caracteres y 'd' elimina el número de caracteres que el usuario esté pidiendo. == Funciones == ;<code>ABS(''num'')</code>: Devuelve el [[valor absoluto]] de ''num'' ;<code>ASC(''str'')</code>: Devuelve el código [[ASCII]] del primer carácter en ''str'' ;<code>CHR$(''num'')</code>: Devuelve un solo carácter de cadena ''str'' con el número de código ASCII ;<code>EOF(''device number'')</code>: Devuelve 0 si el archivo tiene datos, o -1 si al final del archivo ;<code>INKEY$</code>: Devuelve un carácter si se ha presionado una tecla en el teclado, o nulo si no se presiona nada ;<code>INT(''num'')</code>: Devuelve la parte entera de ''num'' ;<code>INSTR(''startpos,search str,target str'')</code>: Busca la primera cadena, en la cadena de destino; startpos es opcional. ;<code>JOYSTK(''num'')</code>: Devuelve la posición del eje del joystick (0-3) con un valor de 0 a 63 ;<code>LEFT$(''str'',''num'')</code>: Devuelve el primer número de caracteres ("izquierda") de la cadena ''str'' ;<code>LEN(''str'')</code>: Devuelve la longitud (en caracteres) de la cadena ''str'' ;<code>MEM</code>: Devuelve la memoria libre disponible en bytes ;<code>MID$(''str'',''start num'',''length num'')</code>: Devuelve una subcadena de cadena ''str'' que comienza en la posición número de inicio y longitud número de caracteres de longitud. También se puede reasignar agregando ="nuevovalor" ;<code>PEEK(''num'')</code>: Devuelve el valor de la ubicación de memoria ''num'' (0-65535) ;<code>POINT(''x num,y num'')</code>: Devuelve el color del punto semigráfico en la posición x ''num'' (0-63) e y ''num'' (0-31) ;<code>RIGHT$(''str'',''position num'')</code>: Devuelve la parte final ("derecha") de la cadena ''str'' que comienza en la posición del carácter ''num'' ;<code>RND(''number'')</code>: Devuelve un número aleatorio (entero) entre 1 y ''num'' ;<code>SGN(''num'')</code>: Devuelve el signo de un número ''num'', 1 si es positivo, -1 si es negativo, 0 si es 0 ;<code>SIN(''num'')</code>: Devuelve el seno de ''num'' en radianes ;<code>STR$(''num'')</code>: Devuelve una cadena del número num ;<code>USR(''num'')</code>: Llama a una subrutina de [[lenguaje de máquina]] cuya dirección está almacenada en las ubicaciones de memoria 275 y 276. ''num'' se pasa a la rutina y se asigna un valor de retorno cuando finaliza la rutina == Comandos == ; <code>AUDIO [ON|OFF]</code> : Conecta o desconecta el audio del casete del sonido del televisor ; <code>CLEAR ''variable space''[,''highest memory location'']</code> : Reserva memoria para variables de cadena y, opcionalmente, un programa en lenguaje de máquina ; <code>CLOAD ["''name''"]</code> : Carga el programa BASIC desde el casete. Si no se especifica ningún nombre, se carga el siguiente programa ; <code>CLOADM ["''name''"]</code> : Carga el programa en lenguaje máquina desde el casete. Si no se especifica ningún nombre, se carga el siguiente programa ; <code>CLOSE [''device number'']</code> : Cierra un dispositivo (en Color BASIC solo puede ser #-1, el casete) ; <code>CLS(''num'')</code> : Borra la pantalla. Se puede especificar un número de color opcional (0-8) ; <code>CONT</code> : Continúa un programa después de presionar BREAK o una instrucción STOP ; <code>CSAVE ["''name''"]</code> : Guarda un programa BASIC en casete con nombre opcional ; <code>DATA ''var,var,var...''</code> : Almacena datos en un programa BASIC para recuperarlos con el comando READ ; <code>DIM ''variable''(''dimension''[,''dimension 2'',...]</code> : Dimensiona una matriz y reserva espacio de memoria para ella ; <code>END</code> : Indica el final de un programa BASIC ; <code>EXEC</code> : [dirección de memoria] ejecuta el programa en lenguaje máquina en la [[dirección de memoria]]. Si no se especifica ninguno, se usa la dirección de ejecución del programa cargado fuera de la cinta ; <code>INPUT [''device number''] [''{prompt text}'';] ''variable'' [,''variable 2'', ''variable n'']</code> : Espera la entrada del número de dispositivo. Si no se especifica, se asume el dispositivo 0 (teclado). Se puede imprimir un mensaje opcional en la pantalla, para la declaración de entrada ; <code>LIST [''starting line''] - [''ending line'']</code> : Enumera la(s) línea(s) de su programa. Se puede omitir el inicio o el final, o si se omiten ambos, se listará el programa completo ; <code>LLIST [''starting line''] - [''ending line'']</code> : Funciona como LIST, pero da salida a la impresora ; <code>MOTOR [ON|OFF]</code> : Enciende o apaga el motor del casete ; <code>NEW</code> : Borra el contenido de la memoria (programa y variable) ; <code>ON {''num''} GOSUB ''line 1'', ''line 2'', ... ''line n''</code> : Evalúa la expresión ''num'' y llama a la subrutina numth listada ; <code>ON (''num'') GOTO ''line 1'', ''line 2'', ... ''line n''</code> : Evalúa la expresión ''num'' y salta a la línea numth de la lista ; <code>OPEN "[I|O]",''device number''[,"''filename''"]</code> : Abre un dispositivo para la comunicación ; <code>POKE ''memory address'', ''data''</code> : Escribe datos (0-255) en la dirección de memoria (0-65535) ; <code>PRINT ''device number'',''expression''</code> : Imprime datos en el dispositivo especificado. Si se omite, se asume #0 (pantalla) ; <code>PRINT @{''screen position''} ''expression''</code> : Funciona como IMPRIMIR, pero imprime en la ubicación especificada (0-511) ; <code>READ ''variable''[,''variable'',...]</code> : Lee la(s) siguiente(s) variable(s) del programa BASIC incrustado con sentencias DATA ; <code>RENUM ''num''</code> : Vuelve a numerar cada línea del programa en múltiplos de ''num'' ; <code>RESET(''x,y'')</code> : Establece el píxel semigráfico en la ubicación x (0-63) e y (0-31) en negro ; <code>RESTORE</code> : Restablece el puntero READ de nuevo a la primera instrucción DATA ; <code>RETURN</code> : Regresa de una subrutina ; <code>RUN ''num''</code> : Ejecuta el programa BASIC, opcionalmente, en el número de línea especificado ; <code>SET(''x,y,color'')</code> : Establece el píxel semigráfico en la ubicación x (0-63) y (0-31) en color (0-8) ; <code>SKIPF ["''filename''"]</code> : Salta los programas BASIC en la cinta hasta que se encuentra el nombre del programa especificado ; <code>SOUND ''tone'',''duration''</code> : Suena un tono con frecuencia (1-255) y duración (1-255) ; <code>STOP</code> : Hace que el programa deje de ejecutarse ; <code>TAB(''column'')</code> : Tabula a la columna especificada (usado con PRINT) ; <code>VAL(''str'')</code> : Devuelve el valor numérico de una cadena que contiene un número en forma de cadena == Flujo de control == ; <code>GOSUB ''{line number}''</code> : Llama a la subrutina en el número de línea especificado ; <code>GOTO ''{line number}''</code> : Salta al número de línea del programa especificado ; <code>IF ''{test}'' THEN ''{command(s)}'' [ELSE ''{command(s)}'']</code> : Realiza la prueba condicional. Si la prueba es verdadera ENTONCES se ejecutan los comandos, de lo contrario (ELSE) se ejecutan otros comandos. Si no se especifica ELSE y la prueba es falsa, se ejecutará la siguiente línea del programa. [FOR] ''{num}'' = ''{number}'' TO ''{number}'' [STEP ''{number}''] ... NEXT ''(num)'' : : crea un bucle en el que la variable numérica ''(num)'' se ejecuta desde el número inicial hasta el número final en incrementos de número (PASO). Si se omite el paso, se supone 1 == Error de mensajes == ; <code>/0</code> : división por cero ; <code>AO</code> : el archivo especificado ya está abierto ; <code>BS</code> : mal subíndice. el subíndice está fuera del rango DIM ; <code>CN</code> : no puede continuar (ver comando CONT) ; <code>DD</code> : intentar redimensionar una matriz ; <code>DN</code> : número de dispositivo no válido ; <code>DS</code> : error de declaración directa (el programa no tiene números de línea) ; <code>FC</code> : llamada de función ilegal: la función contiene un valor que está fuera de rango ; <code>FD</code> : datos de archivo erróneos: intento de leer un número en un valor de cadena, etc. ; <code>FM</code> : modo de archivo incorrecto, intento de ENTRADA de datos en un archivo abierto para SALIDA, etc. ; <code>ID</code> : directo ilegal: el comando especificado solo se puede ejecutar en un programa ; <code>IE</code> : entrada más allá del final del archivo. Ver EOF ; <code>IO</code> : error de entrada/salida ; <code>LS</code> : cadena larga: las cadenas solo pueden tener 255 caracteres ; <code>NF</code> : SIGUIENTE sin PARA ; <code>NO</code> : archivo no abierto ; <code>OD</code> : fuera de datos: intenta leer más allá de los últimos DATOS en el programa ; <code>OM</code> : sin memoria ; <code>OS</code> : fuera del espacio de cadena: vea CLEAR ; <code>OV</code> : desbordamiento: el número está fuera de rango ; <code>RG</code> : VOLVER sin GOSUB ; <code>SN</code> : error de sintaxis ; <code>ST</code> : operación de cadena demasiado compleja ; <code>TM</code> : tipo de discrepancia (A$=3, A="CAT") ; <code>UL</code> : intente ir a GOTO o GOSUB a una línea que no existe == Subrutinas ROM documentadas == Hay algunas subrutinas disponibles para programas de lenguaje de máquina en la ROM BÁSICA de Color, estos disponibles para programación general. ; <code>POLCAT</code> : dirección [$A000]: sondea el teclado para un carácter ; <code>CHROUT</code> : dirección [$A002]: envía un carácter a la pantalla o dispositivo ; <code>CSRDON</code> : dirección [$A004]: inicia el casete y se prepara para la lectura ; <code>BLKIN</code> : dirección [$A006]: lee un bloque del casete ; <code>BLKOUT</code> : dirección [$A008]: escribe un bloque en el casete ; <code>JOYIN</code> : dirección [$A00A]: lee los valores del joystick == Referencias == {{Listaref}} {{Control de autoridades}} [[Categoría:Lenguaje de programación BASIC]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Color BASIC
»
Añadir idiomas
Añadir tema