# VR-BASIC--## PRINT \#

# VR-BASIC

## PRINT \#

Introduce datos en un fichero abierto por una instrucción OPEN.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## Matemáticas

# VR-BASIC

## Matemáticas

En este apartado veremos el conjunto de instrucciones y operadores del que
dispone VR‑BASIC para hacer cálculos matemáticos, desde los más sencillos hasta
los más complejos.

#### Funciones


# VR-BASIC--## DRAW

# VR-BASIC

## DRAW

Dibuja gráficos en la pantalla en modo gráfico, siguiendo las especificaciones
de los submandatos gráficos.

La posición actual se almacena siempre con un mandato para dibujar una línea,
con excepción de Sn, An y Cn. Por ejemplo:


# VR-BASIC--## VPEEK

# VR-BASIC

## VPEEK

Lee datos de la VRAM (memoria de vídeo).

Devuelve el dato escrito en la dirección especificada de la VRAM. Para los modos
SCREEN 5 a 13, suma la dirección inicial de la página activa a la dirección
especificada para componer la dirección absoluta de la VRAM.


# VR-DOS--## AS

# VR-DOS

## AS

Herramienta que permite preprocesar, compilar y enlazar archivos PI, ASM y LIB.
El formato de los archivos ASM es compatible con el que utiliza el compilador
SDCC (SDZ80) y también con el SJASM. Además, incorpora otras funcionalidades
como la gestión de bancos y preprocesador.

### Ejemplo

# VR-BASIC--## OCT$

# VR-BASIC

## OCT$

Ofrece, en formato alfanumérico, la expresión octal de un dato numérico.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# Funciones disponibles en Stage.pi--## Areas

# Funciones disponibles en Stage.pi

## Areas
```
function SetScreenRect(_x, _y, _w, _h)
function SetTextRect(_x, _y, _w, _h)
function SetActionsRects(_x, _y, _w, _h)
function SetItemsRect(_x, _y, _w, _h)
function SetTooltipRect(_x, _y, _w, _h)
function SetInventoryRect(_x, _y, _w, _h)

# VR-BASIC--## ERASE

# VR-BASIC

## ERASE

Borra variables de matriz.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-DOS--## BUFFERS

# VR-DOS

## BUFFERS

```
BUFFERS [number]
```

Muestra o cambia el número de buffers (zonas de memoria reservadas para acelerar
las lecturas/escrituras) de disco en el sistema.

# VR-BASIC--## CLOAD

# VR-BASIC

## CLOAD

Carga un programa VR-BASIC desde una cinta de casete.

Si durante la carga ocurre un error, rebobine la cinta y vuelva a cargar.

### Versión


# VR-BASIC--## MID$ = Y$

# VR-BASIC

## MID$ = Y$

Sustituye una parte de una cadena de caracteres por otra cadena.

Sustituye los caracteres Mésimo y siguientes de la cadena de caracteres X$, de
izquierda a derecha, por los primeros N caracteres de Y$. En cualquier caso,
esta instrucción no cambia la longitud de X$.


# VR-DOS--## PLAY

# VR-DOS

## PLAY

```
PLAY [source] [/SYSTEM system] [/MODEL model] [/VERSION] [/WIZARD] [/PORTA port] [/PORTB port] [/STI path] [/SPEED speed] [/DEV device] [/CART1 path] [/CART2 path] [/CART3 path] [/CART4 path] [/MAPPER1 mapper] [/MAPPER2 mapper] [/MAPPER3 mapper] [/MAPPER4 mapper] [/MSX1] [/MSX2] [/MSX2+] [/MSXTR] [/SCC] [/OBSONET] [/FMPAC] [/PSG] [/MSXMUSIC] [/MSXAUDIO] [/IPS1 path] [/IPS2 path] [/IPS3 path] [/IPS4 path] [/tape path] [/DSK1 path] [/DSK2 path] [/DSK3 path] [/DSK4 path] [/GRSLOT1 params] [/GRSLOT2 params] [/VRT [path]] [/VRTDRV drv] [/VRISET mapper] [/SAFEMODE] [/VIRTUALIZED]
```

Ejecuta y reproduce diferentes tipos de formatos multimedia.


# VR-BASIC--## TRON

# VR-BASIC

## TRON

Presenta en pantalla los números de línea ejecutados.

La ejecución de la instrucción TRON, en modo directo o indirecto, produce la
presentación en pantalla, en el modo texto y entre corchetes, del número de
línea ejecutado a continuación.


# VR-DOS--## ERA / ERASE / DEL

# VR-DOS

## ERA / ERASE / DEL

```
ERA [/U] [/H] [/P] compound-filespec
ERASE [/U] [/H] [/P] compound-filespec
DEL [/U] [/H] [/P] compound-filespec
```


# VR-SCRIPT--## Diccionarios

# VR-SCRIPT

## Diccionarios

Un Diccionario es un tipo de lista. En este caso, denominaremos Diccionario a la
lista que tiene componentes con el binomio CLAVE/VALOR, donde CLAVE es una
cadena de caracteres y VALOR puede ser cualquiera de los tipos soportados por
VR-SCRIPT.

Ejemplo de inicialización:

# VR-BASIC--## LPRINT USING

# VR-BASIC

## LPRINT USING

Escribe datos por impresora con un formato especificado.

La instrucción LPRINT USING envía datos a una impresora con un formato
especificado mientras que la instrucción PRINT USING envía datos a la pantalla
también con un formato especificado. Para más detalles, por ejemplo los símbolos
de los formatos, véase *PRINT USING*.

# VR-BASIC--## PSET

# VR-BASIC

## PSET

Marca un punto en la pantalla, en el modo de gráficos.

Cuando se especifica STEP, las coordenadas X, Y pasan a un nuevo sistema de
coordenadas que tiene su origen en el punto especificado en último lugar en la
instrucción gráfica inmediatamente anterior.


# VR-SCRIPT--## Colisiones con Sprites (sin físicas)

# VR-SCRIPT

## Colisiones con Sprites (sin físicas)

Apartado donde veremos todo lo relacionado con la gestión de colisiones entre Sprites GL que no usan físicas.

### Definición de la colisión de un sprite

Para indicar si queremos que un sprite compruebe colisiones con otros sprites, hemos de activarlo ya que por defecto está desactivado con la función **SetCollision**:


# VR-BASIC--## LIST

# VR-BASIC

## LIST

Visualiza por pantalla el listado del programa almacenado en memoria.

Se debe pulsar STOP para detener temporalmente la visualización del listado en
la pantalla, y volver a pulsar STOP para reanudarla. Para suspenderla, pulsar
CTRL+STOP.


# VR-SCRIPT--## ¿Qué es VR-SCRIPT?

# VR-SCRIPT

## ¿Qué es VR-SCRIPT?

VR-SCRIPT es el lenguaje de scripting nativo de los MSXVR y con el que se pueden
desarrollar cualquier tipo de aplicaciones y juegos. Además de la versatilidad
del script, permite una programación orientada a objetos entre otras
particularidades especiales. Este lenguaje utiliza una sintaxis similar a la del
C/C++. Dentro del MSXVR se lanzan programas que ejecutan estos scripts. Estos
programas tienen acceso a un conjunto de funciones nativas para poder

# VR-BASIC--## CALL SYSTEM

# VR-BASIC

## CALL SYSTEM

Devuelve el control al sistema operativo VR-DOS.

Devuelve el control al VR-DOS después de cerrar todos los ficheros y borrar los
programas y datos de la memoria.

### Versión

# VR-BASIC--## TAN

# VR-BASIC

## TAN

Ofrece el valor de la tangente de un dato numérico.

Para obtener X en grados, se debe utilizar la fórmula TAN (X\*π/180).

### Versión


# VR-BASIC--## BEEP

# VR-BASIC

## BEEP

Genera un pitido.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# MSXLIB--## Funciones estándar

# MSXLIB

## Funciones estándar

#### function **MSXLIB_Init** () : void

Inicializa la librería MSX. Inicializa sprites y otros componentes. Esta función se ha de invocar antes que cualquier otra de la librería.

#### function **sleep** (ms : ushort) : void


# VR-DOS--## REM

# VR-DOS

## REM

```
REM [comment]
```

Introduce un comentario en un archivo por lotes.


# Funciones disponibles en Stage.pi--## Items

# Funciones disponibles en Stage.pi

## Items
```
function AddItem(_item)
function AddItemHotArea(_item, _x, _y, _w, _h)
function RemoveItem(_item)
function ShowItems(_list, _v)
function EnableItemButtons(_v)
function ShowItemButtons(_v)

# VR-BASIC--## GOTO

# VR-BASIC

## GOTO

Transfiere la ejecución del programa a un número de línea especificado.

La ejecución del programa se transfiere a la línea especificada por la
instrucción GOTO.

Al trabajar en el modo de mandatos directos, la ejecución empieza en la línea

# VR-BASIC--## VPOKE

# VR-BASIC

## VPOKE

Escribe un byte de datos en la VRAM (memoria de vídeo).

Escribe el dato designado en la dirección especificada de la VRAM. Para los
modos SCREEN 5 a 13, suma la dirección inicial de la página activa a la
dirección especificada para componer la dirección absoluta de la VRAM (véase
comando *VPEEK*).

# Como empezar tu aventura--## Conceptos que definen nuestra escena

# Como empezar tu aventura

## Conceptos que definen nuestra escena

Anteriormente hemos visto el "SetDecoration" que es una imagen que se coloca en pantalla y que la "decora".
Ahora vamos a comentar estos otros conceptos:
* Acciones (Actions)
* Ítems (Items)
* Inventario (Inventory)
* Pantalla (Screen)

# VR-BASIC--## ON INTERVAL GOSUB

# VR-BASIC

## ON INTERVAL GOSUB

Declara la subrutina a la que salta la ejecución del programa en caso de
interrupción debida al temporizador interno.

Se trata de una instrucción que define el número de línea al que debe saltar la
ejecución del programa en caso de una interrupción, causada por el temporizador
interno, con el intervalo de tiempo especificado. Cada intervalo de la

# VR-BASIC--## ERL

# VR-BASIC

## ERL

Ofrece el número de línea donde se ha producido un error.

Cuando no hay ningún error devuelve cero, y cuando hay un error que es
consecuencia de un mandato directo, retorna un número comprendido entre 1 y
65529.


# VR-BASIC--## CALL DEBUGLOG

# VR-BASIC

## CALL DEBUGLOG

Muestra uno o varios mensajes en una línea de log del VR-BASIC

### Versión

MSXVR


# VR-BASIC--## Texto

# VR-BASIC

## Texto

Existen dos comandos muy importantes y posiblemente, sean de los más utilizados
en este lenguaje. Estos comandos son PRINT e INPUT. Una pequeña descripción:

**PRINT**: Visualiza datos numéricos o alfanuméricos en la pantalla en modo
texto.


# VR-BASIC--## INP

# VR-BASIC

## INP

Lee datos del puerto de entrada/salida especificado.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-DOS--## FORMAT

# VR-DOS

## FORMAT

```
FORMAT [d:] [/FAT12] [/FAT16] [/FAT32] [/NTFS] [/EXT4] [/S640] [/S720] [/S1440] [/S1232] [/S1200]
```

Formatea (inicializa) un disco.


# VR-DOS--## DIR

# VR-DOS

## DIR

```
DIR [/H] [/W] [/P] [/S] [compound-filespec]
```

Muestra los nombres de los archivos en el disco.


# VR-BASIC--## INSTR

# VR-BASIC

## INSTR

Localiza una cadena de caracteres especificada entre otras cadenas y da su
posición.

Ofrece en forma de datos numéricos el número de carácter de la cadena X$
(contando a partir de la izquierda) que coincide con el de la cadena Y$. Cuando
se especifica N, empieza a contar desde el carácter enésimo de X$.

# MSXVR--## Créditos

# MSXVR

## Créditos

**Alberto De Hoyo Nebot** - Idea, concepto, arquitectura, dirección, gestión, programación, documentación.
**Pau Theobald** - Arquitectura, electrónica.
**Victor Martí Melchor** - Programación.

Empresa con la que se gestiona legalmente la comercialización de los productos MSXVR: **VIKALB PROGRAMMING S.L**


# VR-DOS--## PATH

# VR-DOS

## PATH

```
PATH [ [+|-] [d:]path [ [d:]path [ [d:]path ...]] ]
```

Muestra o establece rutas por defecto donde el sistema busca comandos COM y BAT.


# VR-DOS--## BASIC

# VR-DOS

## BASIC

```
BASIC [program][/model name]
```

Ejecuta la aplicación VR-BASIC.


# VR-SCRIPT--## Ejecución de código al vuelo

# VR-SCRIPT

## Ejecución de código al vuelo

Mediante **\_run** podemos ejecutar bloques en formato texto de código al vuelo.

```
_block = @@ if (a==5) print ("Es correcto!") else a=10; @@
_run (*block);
```

# VR-BASIC--## Constantes y Variables

# VR-BASIC

## Constantes y Variables

Conviene entender los conceptos de constante y variable. Una constante hace
referencia a un valor que nunca va a cambiar: por ejemplo, el número 5. Siempre
será el número 5, esto no va a cambiar. Es algo constante en el tiempo.

Sin embargo, una variable es como un cajón donde almacenamos constantes. O sea,
valores concretos. Por tanto, una variable sí puede contener distintos valores a

# VR-BASIC--## ON KEY GOSUB

# VR-BASIC

## ON KEY GOSUB

Declara la subrutina a la que se bifurcará el programa cuando se provoque una
interrupción mediante una tecla de función.

Se trata de una instrucción que declara el número de línea de comienzo de una
subrutina a la que salta el programa en caso de provocar una interrupción
mediante una tecla de función. Tras GOSUB se pueden especificar hasta 10 números

# Tutoriales--## Mad Mix Game Tribute

# Tutoriales

## Mad Mix Game Tribute

![MAD MIX GAME Tribute](./media/tuto_mmg/portada.png "MAD MIX GAME Tribute")

### Créditos

GABE Productions. Equipo formado por:
- Roberto Alvarez (Gráficos)

# VR-DOS--## Editando comandos

# VR-DOS

## Editando comandos

Cuando escribimos en la línea de comandos del VR-DOS, podemos editar y disponer
de facilidades para arreglar errores o reintroducir y editar comandos
anteriores.

Tecleando caracteres ordinarios provocamos que estos aparezcan en la pantalla
como esperaríamos. Teclear un carácter de control causa que se vea representado

# VR-DOS--## COMMAND2

# VR-DOS

## COMMAND2

```
COMMAND2 [command]
```

Invoca al intérprete de comandos.


# VR-BASIC--## CALL GLBLUE

# VR-BASIC

## CALL GLBLUE

Obtiene el componente de color AZUL dado un color en formato GL.

### Versión

MSXVR


# VR-DOS--## PKG

# VR-DOS

## PKG

```
PKG [/CLEAN] [/BACKUP opt] [/RESTORE opt] [/TARGET path] [/VERSION opt] [/UPDATE mode] [/INSTALL opt] [/Y]
```

Gestiona la instalación de versiones del sistema operativo y de aplicaciones.


# VR-DOS--## Archivos de procesamiento por lotes

# VR-DOS

## Archivos de procesamiento por lotes

Cuando se introduce un comando en VR-DOS y no es uno de los comandos internos,
se busca un archivo de ese nombre con una extensión de .COM o .BAT. Si no se
encuentra en el directorio actual, se busca en la ruta de búsqueda actual
(consulte el comando PATH). Si se encuentra un archivo .COM, entonces se carga y
ejecuta. Si se encuentra un archivo .BAT, VR-DOS inicia la ejecución del archivo
por lotes.

# VR-BASIC--## LOF

# VR-BASIC

## LOF

Ofrece, en bytes, el tamaño del fichero especificado.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## SET TIME

# VR-BASIC

## SET TIME

Pone el reloj en hora.

El formato es HH:MM:SS; donde HH es la hora, MM los minutos y SS los segundos.

Cuando se especifica A, se puede programar la alarma.


# VR-DOS--## VER

# VR-DOS

## VER

```
VER [/copyuuid] [/copyserial] [/copyalias]
```

Muestra los números de versión del sistema.


# VR-BASIC--## RSET

# VR-BASIC

## RSET

Escribe datos en un registro de un fichero de acceso aleatorio alineándolos a la
derecha.

Pone los datos de cada variable en el registro especificado por la instrucción
FIELD como preparación para la escritura de datos en un fichero de acceso
aleatorio mediante una instrucción PUT. La instrucción RSET alinea los datos en

# VR-BASIC--## STR$

# VR-BASIC

## STR$

Convierte datos de tipo numérico en datos alfanuméricos.

Cuando el dato numérico es negativo, el primer carácter de la cadena resultante
es el -, y cuando es 0 o positivo, el primer carácter es un espacio en blanco.

### Versión

# VR-BASIC--## CALL MDR

# VR-BASIC

## CALL MDR

Establece la correspondencia entre los números de nota MIDI y los cinco
elementos de un sonido rítmico.

En los parámetros de la llamada, se especifican los números de nota MIDI
asignados a los elementos usados en la percusión FM. Son valores entre 0 y 127,
y todos los valores iniciales se establecen en 0.

# VR-SCRIPT--## Evaluación de expresiones al vuelo

# VR-SCRIPT

## Evaluación de expresiones al vuelo

Mediante **\_eval** podemos evaluar expresiones en formato texto al vuelo.

```
a = 10;
b = _eval ("a + 10"); // esto hace que b valga 20.
```

# VR-BASIC--## Funcionalidades adicionales

# VR-BASIC

## Funcionalidades adicionales

Convendría comentar características que encontrará en el VR-BASIC y no en los
MSX-BASIC:

| Máximo número de línea | En los MSX-BASIC el límite para el número de línea usado en los programas es de 65529, mientras que en MSXVR el límite es de más de 2 millones de líneas. |
|------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Etiquetas | En MSX-BASIC no existe la funcionalidad para agregar etiquetas en el código. En MSXVR sí es posible. |

# VR-BASIC--## COLOR [= NEW]

# VR-BASIC

## COLOR [= NEW]

Devuelve la paleta de colores a sus valores iniciales por omisión.

| **Nº paleta** | **Color** | **Intensidad rojo** | **Intensidad azul** | **Intensidad verde** |
|---------------|-----------------|---------------------|---------------------|----------------------|
| 0 | Transparente | 0 | 0 | 0 |
| 1 | Negro | 0 | 0 | 0 |

# MSXVR--## Cartuchos

# MSXVR

## Cartuchos

En esta sección hablaremos sobre distintos usos y características del interfaz para leer/escribir en cartuchos MSX.

Obtener información sobre un cartucho
---

Todos los cartuchos tienen una huella y estas se almacenan en el sistema para ayudar a detectar de qué cartucho se trata por si hay que activar o desactivar alguna funcionalidad.

# VR-BASIC--## SET SCROLL

# VR-BASIC

## SET SCROLL

Aplicar un desplazamiento horizontal y/o vertical sobre el contenido de la
pantalla tanto en modos de texto como gráfico. La actualización de los registros
de desplazamiento no se aplica hasta que la pantalla se ha refrescado por
completo.

El **modo máscara** permite indicar que ocurre con los pixeles de la parte

# VR-BASIC--## ASC

# VR-BASIC

## ASC

Ofrece el código ASCII correspondiente al primer carácter del dato de cadena.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## CSNG

# VR-BASIC

## CSNG

Convierte datos numéricos en datos de precisión simple.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# MSXVR--## ¿Qué es un MSXVR?

# MSXVR

## ¿Qué es un MSXVR?

Es un ordenador de aspecto retro que intenta recrear el espíritu de los
ordenadores clásicos de las décadas de los 80 y 90.

En este caso, no solo intenta asemejarse en aspecto, sino también en filosofía
de trabajo e interacción con la máquina.


# VR-BASIC--## CALL EDIT

# VR-BASIC

## CALL EDIT

Invoca el editor con resaltado de sintaxis y otras funcionalidades extendidas.

### Versión

MSXVR


# Misceláneo--## Crear un APP

# Misceláneo

## Crear un APP

### ¿Qué es un APP?

Un APP o archivo con extensión .APP se trata de un paquete ejecutable por una máquina MSXVR.

Realmente el archivo es un ZIP (archivo comprimido con este formato) y que contiene una serie de archivos:


# MSXLIB--## Funciones BIOS

# MSXLIB

## Funciones BIOS

LLamadas a la BIOS del sistema.

#### function **BIOS_SetVBlankHook** (f : pointer) : void

Establece un gancho o llamado cuando se da una interrupción de vídeo VBLANK.


# VR-DOS--## DATE

# VR-DOS

## DATE

```
DATE [date]
```

Muestra o establece la fecha actual.


# VR-SCRIPT--## Uso de VR-SCRIPT para generar código ASM

# VR-SCRIPT

## Uso de VR-SCRIPT para generar código ASM

Para convertir VR-SCRIPT a código nativo de una CPU, por ejemplo, un Z80/R800 o
un MOS, se utiliza la herramienta "AS". Puedes ver información sobre el uso de
esta herramienta en los comandos VR-DOS.

La forma de escribir código VR-SCRIPT para usar esta herramienta es un tanto más
restrictiva que lo visto hasta ahora. Es necesario establecer los tipos de las

# VR-BASIC--## MAXFILES

# VR-BASIC

## MAXFILES

Declara el número de ficheros que pueden estar abiertos simultáneamente en un
programa; se dice que dos ficheros están abiertos simultáneamente si se abre el
segundo sin haber cerrado el primero.

### Versión


# VR-BASIC--## DEF FN

# VR-BASIC

## DEF FN

Define una función de usuario.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## KEY (n) ON/KEY (n) OFF/ KEY (n) STOP

# VR-BASIC

## KEY (n) ON/KEY (n) OFF/ KEY (n) STOP

Habilita, inhabilita o detiene las llamadas a rutinas tras la pulsación de las
teclas de función. Estos comandos se combinan con el uso de ON KEY GOSUB.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## GET

# VR-BASIC

## GET

Lee un registro en el fichero de acceso aleatorio y asigna valores a cada
variable siguiendo el formato definido por la instrucción FIELD.

La instrucción

```

# VR-BASIC--## PRINT

# VR-BASIC

## PRINT

Visualiza datos numéricos o alfanuméricos en la pantalla en modo texto.

**Método de escritura de expresiones (datos)**

Las constantes de tipo numérico, las variables numéricas y las variables de
cadena se escriben tal como son. Las constantes de cadena se escriben encerradas

# MSXVR--## Concepto y Términos

# MSXVR

## Concepto y Términos

El concepto del MSXVR se basa en su independencia con el huésped donde se
encuentra. El planteamiento es que el mismo software pueda evolucionar/adaptarse
en diferentes entornos. De este modo se puede garantizar la supervivencia del
software a través del tiempo mediante posteriores revisiones del hardware que
mejoren la potencia y características de la máquina.


# VR-BASIC--## PUT SPRITE

# VR-BASIC

## PUT SPRITE

Visualiza un sprite en una posición arbitraria del plano de sprite especificado.

Cuando se especifica STEP, las coordenadas X, Y pasan a un nuevo sistema de
coordenadas que tiene su origen en el punto especificado en último lugar en la
instrucción gráfica inmediatamente anterior.


# Apps--## TextEditor

# Apps

## TextEditor

### Funcionalidad

El editor de texto es una herramienta que nos permite editar archivo de texto bien de uso documental, datos o para programación.

La forma de invocarse desde VR-DOS es:


# VR-BASIC--## INPUT

# VR-BASIC

## INPUT

Acepta datos introducidos desde el teclado y los asigna a una variable. Los
espacios en blanco introducidos antes de los datos son ignorados.

La instrucción INPUT correspondiente a una variable de tipo numérico ignora
también los espacios dispuestos en el centro de los datos.


# VR-SCRIPT--## Ejecución de código al vuelo

# VR-SCRIPT

## Ejecución de código al vuelo

Mediante **\_run** podemos ejecutar bloques en formato texto de código al vuelo.

```
_block = @@ if (a==5) print ("Es correcto!") else a=10; @@
_run (_block);
```

# VR-DOS--## RNDIR

# VR-DOS

## RNDIR

```
RNDIR [/H] [/P] compound-filespec filename
```

Cambia el nombre de uno o más subdirectorios.


# VR-BASIC--## SET DATE

# VR-BASIC

## SET DATE

Ajusta la fecha en el reloj interno.

El formato es DD/MM/AA; DD es el número correspondiente al día, MM el número
correspondiente al mes, y AA el número correspondiente al año.

Cuando se especifica A se puede programar la alarma.

# VR-SCRIPT--## Aplicación VR-DOS

# VR-SCRIPT

## Aplicación VR-DOS

Una aplicación VR-DOS es aquella que está pensada para hacer uso de la consola
DOS o para mostrarse como parte integrada dentro de la propia utilidad DOS.

La aplicación heredará de la plantilla con nombre *DOS_Program*

El punto de entrada que hemos de usar es el siguiente:

# VR-BASIC--## CALL TTSGET

# VR-BASIC

## CALL TTSGET

### Versión

MSXVR

### Formato


# VR-BASIC--## ON STRIG GOSUB

# VR-BASIC

## ON STRIG GOSUB

Define la subrutina a la que salta el programa en caso de una interrupción
causada por la pulsación de la barra espaciadora, del botón de disparo del mando
de juegos o del pulsador correspondiente de otros periféricos (ratón, bola
gráfica, etc).

Esta instrucción define el número de línea de comienzo de una subrutina a la que

# VR-BASIC--## INPUT$

# VR-BASIC

## INPUT$

1. Acepta un número especificado de caracteres desde el teclado.
2. Acepta un número especificado de caracteres desde un fichero.

**Límites de "N"**

En el estado inicial, si N sobrepasa los límites 1 a 200, se produce un error.

# VR-SCRIPT--## Ejemplos

# VR-SCRIPT

## Ejemplos

Para editar los ejemplos aconsejamos usar el editor de textos por defecto en los
MSXVR:

```
C:\>edit ejemplo1.pi
```

# VR-BASIC--## COLOR = RESTORE

# VR-BASIC

## COLOR = RESTORE

Asigna el contenido de la tabla de colores de la RAM de vídeo al registro de la
paleta de colores de la VDP.

La ejecución de la instrucción BSAVE con la opción S almacena el contenido de la
RAM de vídeo en el disco junto con los datos de la paleta de colores. Estos
datos se cargan en la RAM de vídeo mediante la instrucción BLOAD con la opción

# Funciones disponibles en Stage.pi--## Actions

# Funciones disponibles en Stage.pi

## Actions
```
function AddAction(_action, _type = 0)
function RemoveAction(_action)
function EnableActionButtons(_v)
function ShowActionButtons(_v)
function ShowActions(_list, _v)
```

# VR-BASIC--## LINE INPUT \#

# VR-BASIC

## LINE INPUT \#

Lee de un fichero una cadena de hasta 254 caracteres y la asigna a una variable
de cadena.

Lee datos de cadena de un fichero, pero no considera los códigos de la coma, el
espacio y el cambio de línea como signos de separación de los datos, lo cual la
diferencia de la instrucción INPUT\#: asigna las cadenas de caracteres que

# Funciones disponibles en Stage.pi--## Carpetas

# Funciones disponibles en Stage.pi

## Carpetas
```
function SetGraphicsFolder(_folder)
function SetFontsFolder(_folder)
function SetMusicsFolder(_folder)
function SetSoundsFolder(_folder)
```


# VR-BASIC--## SET VIDEO

# VR-BASIC

## SET VIDEO

Especifica los modos de trabajo relativos a superposición de imágenes de vídeo,
mezcla de sonidos, etc. NOTA: Para poder usar este comando, el sistema debe
disponer de un mecanismo de adquisición de vídeo y audio externos.

Modo


# VR-DOS--## RAMDISK

# VR-DOS

## RAMDISK

```
RAMDISK [number[K]] [/D]
```

Muestra o establece el tamaño de la RAM-Disk.


# VR-BASIC--## COLOR SPRITE$

# VR-BASIC

## COLOR SPRITE$

Especifica los colores correspondientes a las líneas horizontales de un sprite.

Válido solo para SCREEN 4 a SCREEN 13.

Cada expresión de caracteres corresponde a una línea horizontal del sprite, y
cada bit de un carácter tiene el siguiente significado:

# VR-DOS--## DSKTOOL

# VR-DOS

## DSKTOOL

```
DSKTOOL [/C] [/I] [/D] [/A] [/E] [/R] [/Y] [/F fmt] dskPath [files]
```

Permite la manipulación de archivos con formato DSK.


# MSXVR--## Máquinas Virtuales

# MSXVR

## Máquinas Virtuales

Lista de máquinas virtuales integradas en el sistema MSXVR.

Estados
---

|ICONO| COMENTARIO

# VR-BASIC--## TAB

# VR-BASIC

## TAB

Mueve el cursor hacia la derecha desde el principio de una línea el número de
caracteres especificado.

La función TAB solo se puede utilizar en instrucciones PRINT o LPRINT. Cuando N
es 0 corresponde al extremo izquierdo y cuando es un valor que coincide con el
número de caracteres de una línea menos 1, corresponde al extremo derecho.

# VR-DOS--## MD / MKDIR

# VR-DOS

## MD / MKDIR

```
MKDIR [d:] path
MD [d:] path
```

Crea un nuevo subdirectorio.

# VR-BASIC--## EOF

# VR-BASIC

## EOF

Cuando ha sido leído el último dato de un fichero da un -1; en los demás casos
da un 0.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## WAIT

# VR-BASIC

## WAIT

Espera hasta que la entrada del puerto E/S alcanza un valor determinado.

Cuando se ejecute esta sentencia, los datos se introducirán a través del puerto
de Entrada/Salida especificado, se realizará la operación XOR (suma lógica
exclusiva) con el valor de la expresión 2, y se obtendrá el resultado final de
la operación AND (producto lógico) del resultado anterior y el valor de la

# VR-BASIC--## CLOSE

# VR-BASIC

## CLOSE

Cierra un fichero abierto anteriormente por una instrucción OPEN.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-DOS--## TIME

# VR-DOS

## TIME

```
TIME [/A] [/Z zone] [time]
```

Muestra o establece la hora actual.


# VR-BASIC--## HEX$

# VR-BASIC

## HEX$

Ofrece, en formato alfanumérico, la expresión hexadecimal de un dato numérico.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# MSXLIB--## Funciones Music

# MSXLIB

## Funciones Music

Funciones para reproducción de música. Estas funciones usarán el sistema establecido en la configuración de compilación de la librería.
Módulos soportados:
|Módulo |Preprocesador
|-------|-------------
|WYZ | USE_WYZ


# VR-BASIC--## DSKF

# VR-BASIC

## DSKF

Devuelve el espacio libre que queda en el disco en unidades de clusters.

El número de unidad 1 corresponde a la unidad A, el número 2 a la unidad B, el 3
a la unidad C y así sucesivamente.

El número de unidad 0 corresponde a la unidad en activo.

# VR-DOS--## PING

# VR-DOS

## PING

```
PING [/6] [/W timeout] [/S packetsize] [/C count] dest
```
Ping es un comando o una herramienta de diagnóstico que permite hacer una verificación del estado de una determinada conexión o host local.

### Uso

# VR-BASIC--## SET BEEP

# VR-BASIC

## SET BEEP

Selecciona el tipo de pitido.

Hay cuatro sonidos diferentes disponibles.

Especificando el volumen 1 se selecciona el nivel de volumen más bajo, y
especificando el volumen 4 se selecciona el nivel de volumen más alto.

# VR-BASIC--## ON SPRITE GOSUB

# VR-BASIC

## ON SPRITE GOSUB

En MSX, MSX2, MSX2+ y MSXturboR, define la subrutina a la que se bifurcará el programa cuando se produzca una interrupción por choque de dos sprites.
En MSXVR usando la librería GL se usará el sistema de colisiones de sprites. A tener en cuenta el flag de colisión de los sprites y que se esté comprobando colisión por algun sprite.
Esta instrucción define el número de línea de comienzo de una subrutina a la que salta el programa en caso de una interrupción debida al choque de dos sprites.

### Versión


# MSXLIB--## ¿Qué es MSXLIB?

# MSXLIB

## ¿Qué es MSXLIB?

Se trata de una librería para desarrollar juegos nativos compatibles MSX usando las herramientas que proporciona el MSXVR.
Permite usar el lenguaje VR-SCRIPT en modo restrictivo para poder ser convertido a lenguaje ensamblador Z80/R800.

### VR-SCRIPT [modo restrictivo]

En esta modalidad de VR-SCRIPT, es necesario indicar los tipos de datos y en caso de invocar a funciones externas al módulo, indicar sus prototipos.

# VR-BASIC--## COPY SCREEN

# VR-BASIC

## COPY SCREEN

Digitaliza una señal de vídeo externa y la escribe en el VDP. Válida solo para
SCREEN 5 a SCREEN 13. Esta orden sirve para dar entrada en el ordenador a
imágenes de una cámara o de una pantalla de televisión utilizando a tal efecto
un dispositivo digitalizador.

En el modo 0, digitaliza la señal de un campo y la escribe en la página-imagen.

# VR-BASIC--## STOP

# VR-BASIC

## STOP

La ejecución de una instrucción STOP produce la interrupción de la ejecución del
programa.

Cuando se ejecuta una instrucción CONT en modo directo, la ejecución se reanuda
a partir de la instrucción siguiente a la interrumpida.


# MSXLIB--## Ejemplo - Tileset y Sprite en Screen 2

# MSXLIB

## Ejemplo - Tileset y Sprite en Screen 2

Este código puede venirte bien a la hora de confeccionarte un make.pi y exportar recursos en formato PNG a Tiles/Sprites de Screen 2.
Por ejemplo, un gráfico así:
![Tileset-Screen-2](./media/msxlib-tileset-ejemplo-1.png "Tileset-Screen-2")

Para exportar un PNG de 256x64 (un banco de tiles) a un DAT comprimido y listo para cargar en MSXLIB, podemos usar un código como este:


# VR-BASIC--## CALL MEMINI

# VR-BASIC

## CALL MEMINI

Asigna una zona de memoria a utilizar como RAM-Disk. Inicializa la RAM-Disk y
borra todos los ficheros de la RAM-Disk.

Se puede utilizar como RAM-Disk la parte de RAM comprendida entre las
direcciones 0000H y 7FFFH.


# VR-BASIC--## CALL GLCOLOR

# VR-BASIC

## CALL GLCOLOR

Devuelve un color compatible con la librería GL.

### Versión

MSXVR


# VR-SCRIPT--## Tipos

# VR-SCRIPT

## Tipos

Existen diferentes tipos de datos en VR-SCRIPT. Son los siguientes:

| **Nombre** | **TYPE** | **Tamaño (Bytes)** | **Rango** |
|------------|--------------|--------------------|----------------------------------|
| bool | TYPE_BOOL | 1 | True \| False |
| byte | TYPE_BYTE | 1 | \-128 hasta 127 |

# VR-BASIC--## Dispositivos de archivo

# VR-BASIC

## Dispositivos de archivo

En el acceso a archivos mediante ordenes VR-BASIC, el elemento a utilizar se
especifica mediante el nombre del dispositivo. Se pueden utilizar los
siguientes:

| CAS: | Grabador/Reproductor de casetes |
|-------------|------------------------------------------------------------|

# VR-BASIC--## CINT

# VR-BASIC

## CINT

Convierte un dato numérico en entero.

Cuando el dato numérico X es un valor entero, lo mantiene como está, pero cuando
es un valor del tipo coma flotante, lo convierte en un valor entero omitiendo
los valores que siguen a la coma. Se diferencia de la función INT en que esta
ofrece el número entero X, mientras que CINT convierte el número X en un entero

# VR-BASIC--## CALL GLCALL

# VR-BASIC

## CALL GLCALL

Invoca un método de instancia de objeto GL.

### Versión

MSXVR


# VR-BASIC--## RND

# VR-BASIC

## RND

Ofrece un número aleatorio positivo menor que 1 (incluyendo el 0).

Este comando admite un parámetro X que admitirá valores enteros. Según este
valor, tendremos las siguientes funcionalidades:

**Cuando X es negativo**

# VR-BASIC--## END

# VR-BASIC

## END

Da por terminada la ejecución de un programa y establece el estado de espera de
mandatos.

Cuando hay un fichero abierto, lo cierra.

La instrucción END se pone en la última línea de un programa cuando a

# VR-DOS--## WGET

# VR-DOS

## WGET

```
WGET [url]
```

Descarga un paquete de datos desde una URL en Internet.


# VR-BASIC--## STRIG

# VR-BASIC

## STRIG

Devuelve un -1 cuando se pulsa la barra espaciadora o el botón de un dispositivo
señalizador (joystick, ratón, etc.), y un 0 en caso contrario.

Devuelve el estado de la barra espaciadora cuando N = 0, el estado del botón del
dispositivo conectado en el puerto A cuando N = 1, y el estado del botón del
dispositivo conectado en el puerto B cuando N = 2. El valor resultante es 0

# MSXLIB--## Ejemplo 4 - Tileset y Sprite en Screen 2

# MSXLIB

## Ejemplo 4 - Tileset y Sprite en Screen 2

Este código puede venirte bien a la hora de confeccionarte un make.pi y exportar recursos en formato PNG a Tiles/Sprites de Screen 2.
Por ejemplo, un gráfico así:
![Tileset-Screen-2](./media/msxlib-tileset-ejemplo-1.png "Tileset-Screen-2")

Para exportar un PNG de 256x64 (un banco de tiles) a un DAT comprimido y listo para cargar en MSXLIB, podemos usar un código como este:


# VR-SCRIPT--## Creación y borrado de instancias

# VR-SCRIPT

## Creación y borrado de instancias

Para crear instancias de objetos con VR-SCRIPT se utilizan las palabras
reservadas **new** (para la creación) y **delete** (para liberar recursos).

Podemos usar **new** de las siguientes formas:

```

# VR-DOS--## EXIT

# VR-DOS

## EXIT

```
EXIT [number]
```

Sale de COMMAND2.COM al programa de invocación.


# VR-BASIC--## Bucles

# VR-BASIC

## Bucles

Una de las ventajas de los programas es su capacidad de repetir acciones
indefinidamente y siempre de la misma forma. Pues bien, una de las cosas que a
su vez hacen todos los programas es ejecutar una y otra vez los mismos trozos de
código (secuencia de instrucciones)

Los Bucles son una forma de indicar que algo se repite una y otra vez, bien de

# MSXVR--## Concepto y Términos

# MSXVR

## Concepto y Términos

El concepto del MSXVR se basa en su independencia con el huésped donde se
encuentra. El planteamiento es que el mismo software pueda evolucionar/adaptarse
en diferentes entornos. De este modo se puede garantizar la supervivencia del
software a través del tiempo mediante posteriores revisiones del hardware que
mejoren la potencia y características de la máquina.


# VR-BASIC--## PRINT \# USING

# VR-BASIC

## PRINT \# USING

Escribe datos con un formato especificado en un fichero abierto por una
instrucción OPEN.

Se puede especificar este formato para enviar datos a un fichero. Para
información relativa a los símbolos de formato, véase *PRINT USING*.


# MSXLIB--## Funciones descompresión

# MSXLIB

## Funciones descompresión

#### function **Pletter_Uncompress** (output_data : pointer, data : pointer) : ushort

Dado un conjunto de datos en la dirección _data_ y que está comprimido usando el algoritmo Pletter, se obtiene su descompresión en el buffer de salida _output_data_.
La función retornará el tamaño de los datos descomprimidos.

#### function **BitBuster_Uncompress** (output_data : pointer, data : pointer) : ushort

# Tutoriales--## Postal Navideña en VR-Script + GL

# Tutoriales

## Postal Navideña en VR-Script + GL

### Objetivos

- Crear un proyecto de postal navideña para concurso
- Ejemplo GL\_Program, con audio y gráficos
- Diferentes archivos involucrados


# Tutoriales--## Tileset PNG + TSC

# Tutoriales

## Tileset PNG + TSC

El propósito de este tutorial sería:
- Usar el TileEditor
- Crear y usar un tileset PNG
- Crear y usar un TSC de TileEditor
- Hacerlo todo usando la librería GL con VR-Script


# VR-SCRIPT--## Colisiones con Sprites (sin físicas)

# VR-SCRIPT

## Colisiones con Sprites (sin físicas)

Apartado donde veremos todo lo relacionado con la gestión de colisiones entre Sprites GL que no usan físicas.

### Definición de la colisión de un sprite

Para indicar si queremos que un sprite compruebe colisiones con otros sprites, hemos de activarlo ya que por defecto está desactivado con la función **SetCollision**:


# VR-BASIC--## CALL RAMDISK

# VR-BASIC

## CALL RAMDISK

Crea una unidad de disco en memoria. Solo puede existir una unidad RAM.
Sucesivas llamadas sobrescriben las propiedades de la unidad.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# MSXLIB--## Funciones descompresión

# MSXLIB

## Funciones descompresión

#### function **Pletter_Uncompress** (output_data : pointer, data : pointer) : ushort

Dado un conjunto de datos en la dirección _data_ y que está comprimido usando el algoritmo Pletter, se obtiene su descompresión en el buffer de salida _output_data_.
La función retornará el tamaño de los datos descomprimidos.

#### function **BitBuster_Uncompress** (output_data : pointer, data : pointer) : ushort

# VR-DOS--## MOUNT

# VR-DOS

## MOUNT

```
MOUNT [/U] [/RW] [drive:] [username:password@][source]
```

Permite el montaje y desmontaje de unidades lógicas para gestión de directorios
y archivos.

# VR-BASIC--## LOCATE

# VR-BASIC

## LOCATE

Desplaza el cursor a la posición especificada, en el modo texto.

El cursor se visualiza o no según el valor del parámetro "Interruptor del
cursor" (0 = Cursor no presente; 1 = Cursor presente).

### Versión

# VR-BASIC--## INKEY$

# VR-BASIC

## INKEY$

Ofrece el carácter correspondiente a la tecla pulsada y una cadena nula en caso
de no haber pulsado ninguna tecla.

En caso de pulsación de teclas distintas a CRTL+STOP, SHIFT y CTRL, devuelve el
carácter correspondiente a la tecla pulsada. Si no se ha pulsado ninguna tecla
da una cadena nula.

# VR-BASIC--## LOG

# VR-BASIC

## LOG

La función LOG devuelve el valor de un logaritmo natural; su base es el número e
(2.7182818284588).

Mediante LOG (b)/LOG (a) se puede obtener el valor del logaritmo de b en base a
(Logab). Si b\>0 y a≠1.


# VR-BASIC--## CALL GLEXIT

# VR-BASIC

## CALL GLEXIT

Finaliza el uso de la librería GL. Liberará todos los recursos creados por la librería.

### Versión

MSXVR


# VR-DOS--## RMDIR / RD

# VR-DOS

## RMDIR / RD

```
RMDIR [/S] [/Y] [/U] [/H] [/P] compound-filespec
RD [/S] [/Y] [/U] [/H] [/P] compound-filespec
```

Elimina uno o más subdirectorios.

# VR-BASIC--## INPUT\#

# VR-BASIC

## INPUT\#

Lee datos de un fichero abierto por una instrucción OPEN y los asigna a una
variable.

Lee los datos de un fichero. Si es numérico, ignora los códigos de espacio, de
retorno y de salto de línea que preceden al dato.


# VR-SCRIPT--## Funciones

# VR-SCRIPT

## Funciones

Mediante las funciones creamos el comportamiento de las clases. Es el mecanismo
con el cual podemos escribir código dentro de las clases.

### Polimorfismo

Una clase puede crear el número que quiera de funciones. Estas funciones se

# VR-AGE--## Como empezar tu aventura

# VR-AGE

## Como empezar tu aventura

### Primer paso

Lo primero sería crear un directorio donde vamos a ubicar todos los recursos, además de la librería VR-AGE.
Por ejemplo:
```
mkdir C:/mi_proyecto

# VR-SCRIPT--## Estructura del archivo

# VR-SCRIPT

## Estructura del archivo

VR-SCRIPT opera con archivos individuales, donde cada archivo hace referencia a
una clase (aunque puede incluir subclases). Por defecto el sistema no es
sensible a mayúsculas/minúsculas (aunque se puede configurar para que sí lo sea)
y permite el uso de directivas de preprocesamiento.

La estructura básica de un archivo sería:

# MSXVR--## Software

# MSXVR

## Software

Aquí encontrarás una lista de las aplicaciones y videojuegos publicados o en desarrollo para el sistema MSXVR.

VERSIÓN indica en que punto se encuentra la aplicación.
- **ALPHA** es que está en desarrollo y no está disponible para los usuarios.
- **BETA** es que se encuentra en fase de testeo y está disponibles para los usuarios en la versión developer del sistema.
- **RELEASE** es que está disponible para todos los usuarios en la última versión oficial del sistema.

# VR-BASIC--## GET DATE

# VR-BASIC

## GET DATE

Lee la fecha en el reloj interno y la asigna a una variable de cadena.

El formato de la fecha es DD/MM/AA, donde DD es el día, MM es el número del mes
y AA es el año.

Cuando se especifica A se puede programar la alarma.

# VR-BASIC--## CALL VOICE COPY

# VR-BASIC

## CALL VOICE COPY

Copia la definición de una voz en la ubicación deseada. El primer parámetro es
el origen y el segundo parámetro es el destino.

### Versión

MSX-AUDIO, MSX-MUSIC, MSXVR

# VR-BASIC--## PDL

# VR-BASIC

## PDL

Ofrece el valor procedente de un "paddle", en forma de dato numérico. Cuando N
es un número impar, proporciona los datos de un "paddle" conectado al
controlador A, y cuando N es un número par proporciona los datos de un "paddle"
conectado al controlador B.

### Versión

# VR-SCRIPT--## Pragmas

# VR-SCRIPT

## Pragmas

Utilizado por la sintaxis de preprocesador *\#pragma*, permite establecer
diferentes condiciones y funcionalidades del compilador.

|Parámetro | Uso |
|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| typejuggling | Obliga o no a la especificación de tipos en todas las declaraciones. Por defecto está desactivado (especificación de tipos no obligatoria). |

# MSXLIB--## Convertir recursos

# MSXLIB

## Convertir recursos

Los datos requeridos por las aplicaciones MSXLIB, por norma general, se han de procesar previamente y dejar preparados para su uso.
Muchos de estos datos son pantallas con gráficos, fuente de letra, textos, sprites, etc.
Para aplicar estos procesos de conversión, VR-SCRIPT (no restrictivo) nos permite crear herramientas de conversión de forma rápida y sencilla.

### Convertir un bitmap para Screen 2


# VR-DOS--## CONCAT

# VR-DOS

## CONCAT

```
CONCAT [/H] [/P] [/B] [/A] [/V] compound-filespec filespec
```

Concatena los archivos.


# VR-BASIC--## COLOR = (pal, r, g, b)

# VR-BASIC

## COLOR = (pal, r, g, b)

Asigna colores a los números de la paleta de colores.

| **SCREEN** | **PALETA** |
|------------|----------------------------|
| 0-12 | 512 colores - RGB 9 bits. |
| 13 | 16M colores - RGB 24 bits. |

# VR-BASIC--## Crear programas

# VR-BASIC

## Crear programas

En esta sección introduciremos todo lo necesario para crear y manipular nuestros
programas VR-BASIC. Pero antes, ¿qué es un **programa**? Pues se trata de una
secuencia de instrucciones que podemos almacenar, modificar y ejecutar tantas
veces como queramos. En VR-BASIC las instrucciones de los programas se asocian a
números de línea. Cada número de línea puede almacenar una o varias
instrucciones.

# VR-BASIC--## GOSUB-RETURN

# VR-BASIC

## GOSUB-RETURN

Transfiere el control del programa a una subrutina especificada. La instrucción
RETURN señala el fin de la subrutina y devuelve el control de ejecución al
número de línea especificado a continuación de RETURN o, en su defecto, al
número de línea siguiente a la instrucción GOSUB.

El uso de instrucciones GOSUB consume memoria, ya que cada llamada ha de guardar

# VR-BASIC--## CALL VMACHINE

# VR-BASIC

## CALL VMACHINE

Permite cambiar el tipo de máquina virtual que ejecutará el intérprete VR-BASIC.

Dependiendo del tipo de máquina, habrá funcionalidades del VR-BASIC que dejarán
de funcionar o que se activarán. En el caso de una máquina MSXVR, se podrán usar
todas las funcionalidades, además de las nuevas incorporadas.


# VR-BASIC--## VAL

# VR-BASIC

## VAL

Devuelve un dato alfanumérico en forma de dato numérico.

En el caso de que la cadena de texto no pueda convertirse a un valor numérico,
el resultado numérico devuelto será 0.

### Versión

# VR-BASIC--## INT

# VR-BASIC

## INT

Ofrece el valor entero máximo menor que el dato numérico dado.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## Música y Sonido

# VR-BASIC

## Música y Sonido

Las instrucciones relacionadas con la música y el sonido en VR-BASIC son:

| Comando | Función |
|--------------------------|-----------------------------------------------------------------------------------------------------|
| PLAY | Permite reproducir música PSG, OPLL y de otros chips de sonido utilizando el lenguaje de texto MML. |
| SOUND | Reproduce sonidos directamente desde el PSG. |

# VR-BASIC--## CLOAD?

# VR-BASIC

## CLOAD?

Compara un programa almacenado en cinta casete con uno almacenado en memoria.

Se trata de una orden que comprueba si un programa está bien almacenado o no.
Cuando se ejecuta, compara el programa guardado en memoria con el programa
almacenado en cinta casete bajo un nombre de fichero especificado.


# VR-BASIC--## ON STOP GOSUB

# VR-BASIC

## ON STOP GOSUB

Define la subrutina a la que se bifurcará el programa cuando se produce una
interrupción provocada por la pulsación de CTRL+STOP.

Esta instrucción define el número de línea de comienzo de una subrutina a la que
salta el programa en caso de una interrupción producida por la pulsación de las
teclas CRTL+STOP.

# VR-BASIC--## CALL GLSCREEN

# VR-BASIC

## CALL GLSCREEN

Permite establecer la configuración de la pantalla a la hora de mostrar los gráficos GL.

### Versión

MSXVR


# VR-SCRIPT--## Programación del R8000

# VR-SCRIPT

## Programación del R8000

El R8000 hace referencia a un hipotético chip, no existente como hardware real,
que se ha sintetizado por software para ofrecer compatibilidad Z80/R800 además
de nuevas funcionalidades:

- Nueva instrucción TRAP. Codificación: ED FD nn nn. Tamaño: 4 bytes.


# VR-BASIC--## CALL AUDIO

# VR-BASIC

## CALL AUDIO

Inicializa los modos de reproducción de música utilizados en VR-BASIC. Se pueden
utilizar los siguientes modos:

| **Modo** | **Canales música FM** | **Canales ritmo FM** | **PCM** | **Tipo** |
|----------------|-----------------------|----------------------|---------|----------|
| 0 | 9 | 0 | | Normal |

# VR-BASIC--## CALL PCMREC

# VR-BASIC

## CALL PCMREC

Captura un audio PCM y lo guarda en una zona de memoria o en un array de datos.

La ejecución de esta sentencia detiene el programa hasta que se pulsa la tecla
STOP o se ha superado el tamaño del array o se ha superado una duración
establecida.


# VR-BASIC--## WIDTH

# VR-BASIC

## WIDTH

Especifica el número de caracteres por línea en el modo texto.

En el modo SCREEN 0, cuando el número de caracteres especificado es 40 o menos
de 40, selecciona el modo texto de 40 caracteres x 24 líneas. Cuando es superior
a 40, selecciona el modo texto de 80 caracteres x 24 líneas.


# VR-BASIC--## POINT

# VR-BASIC

## POINT

Ofrece el código de color de un punto de una posición especificada.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# MSXLIB--## Ejemplo 1 - Hello World

# MSXLIB

## Ejemplo 1 - Hello World

- Iniciar modo de texto Screen 0
- Imprimir caracteres

**💾 Example_1.pi**

```

# VR-BASIC--## READ

# VR-BASIC

## READ

Lee los datos especificados por una instrucción DATA.

Lee los datos secuencialmente, empezando por el primer dato de la instrucción
DATA de número de línea más bajo del programa, y los asigna secuencialmente a
variables de la instrucción READ.


# VR-SCRIPT--## Máquina de estados

# VR-SCRIPT

## Máquina de estados

VR-SCRIPT permite trabajar también con una máquina de estados. Estos se declaran
en el cuerpo de la clase como:

```
state
{

# MSXLIB--## Ejemplo - Hello World

# MSXLIB

## Ejemplo - Hello World

- Iniciar modo de texto Screen 0
- Imprimir caracteres

**💾 Example_1.pi**

```

# VR-BASIC--## CALL AFXINIT

# VR-BASIC

## CALL AFXINIT

### Versión

MSXVR

### Formato


# VR-BASIC--## Comentar código

# VR-BASIC

## Comentar código

Llega un momento en el que las dimensiones de nuestro programa serán
considerables y su número de líneas elevado. Habrá multitud de rutinas y zonas
de código, por lo que será necesario ayudar a la vista y memoria del
programador. Afortunadamente, el lenguaje de programación VR-BASIC dispone de la
opción de agregar comentarios. La instrucción se denomina **REM** y la forma de
usarla es como la del siguiente ejemplo:

# VR-BASIC--## KEY LIST

# VR-BASIC

## KEY LIST

Visualiza el contenido de las teclas de función.

La ejecución de esta orden produce la presentación en pantalla de la cadena de
caracteres definida para cada una de las teclas de función.

### Versión

# VR-BASIC--## LPRINT

# VR-BASIC

## LPRINT

Escribe por impresora el valor de una expresión.

La instrucción LPRINT envía datos a la impresora, mientras que la instrucción
PRINT los envía a la pantalla. Para más detalles, véase *PRINT*.

### Versión

# VR-SCRIPT--## Engine del sistema

# VR-SCRIPT

## Engine del sistema

El Engine del sistema o VR-ENGINE comprende la espina dorsal de todas las áreas
existentes a nivel del sistema operativo. Desde aquí encontraremos todo lo
necesario para controlar la máquina y sus componentes.

| Concepto | Definición |
|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

# VR-BASIC--## SQR

# VR-BASIC

## SQR

Devuelve la raíz cuadrada de un dato numérico.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## BASE

# VR-BASIC

## BASE

Sirve para leer o escribir una dirección base de la tabla del VDP (*Video
Display Processor,* o lo que sería el Procesador de pantalla de vídeo).

Para asignar valores se pueden utilizar los modos SCREEN 0 a 3.

El comando admite un parámetro N que se calcula de la siguiente forma:

# MSXLIB--## Instalación de MSXLIB

# MSXLIB

## Instalación de MSXLIB

El código fuente de la librería y los ejemplos se encuentran en:
```
$SYSTEM:/sources/msxlib/
```

> Necesitarás tener una build del sistema >= 25542

# VR-DOS--## GR [GeekReader]

# VR-DOS

## GR [GeekReader]

GR es el comando que permite operar con el interfaz hardware del MSXVR.

### Uso

| Parámetro | Uso |
|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

# VR-DOS--## ASSIGN

# VR-DOS

## ASSIGN

```
ASSIGN [d: [d:]]
```

Permite vincular unidades lógicas a unidades físicas. Las unidades físicas son
las que tras ellas tienen montado un dispositivo E/S original. Las unidades

# VR-BASIC--## CALL

# VR-BASIC

## CALL

Ejecuta una orden extendida.

Cuando hay órdenes extendidas, se pueden ejecutar mediante una instrucción CALL.

En lugar de escribir CALL, se puede escribir el símbolo de subrayado (*).


# MSXLIB--## Funciones matemáticas privadas

# MSXLIB

## Funciones matemáticas privadas

Funciones que utiliza el transcompilador de VR-Script a Z80 para resolver las expresiones matemáticas.

#### function **_mul_u8_u8** () : ushort

#### function **_mul_u16_u8** () : ushort


# VR-BASIC--## STRIG ON/STRIG OFF/STRIG STOP

# VR-BASIC

## STRIG ON/STRIG OFF/STRIG STOP

Activa, desactiva o detiene una interrupción provocada por la pulsación de la
barra espaciadora o del botón de un dispositivo señalizador (joystick, ratón,
etc.).

Especifica, según el valor de N, la barra espaciadora o el botón del dispositivo
señalizador A o B utilizados en una interrupción. El número de línea de la

# VR-BASIC--## CHR$

# VR-BASIC

## CHR$

Ofrece el símbolo ASCII correspondiente a un código de carácter especificado.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-AGE--## Funciones disponibles en Stage.pi

# VR-AGE

## Funciones disponibles en Stage.pi

### Carpetas
```
function SetGraphicsFolder(_folder)
function SetFontsFolder(_folder)
function SetMusicsFolder(_folder)
function SetSoundsFolder(_folder)

# VR-BASIC--## AUTO

# VR-BASIC

## AUTO

Produce la generación automática de números de línea a partir de un número de
línea especificado y con un incremento especificado.

Sirve para eliminar la necesidad de teclear los números de línea a la hora de
introducir un programa por el teclado.


# VR-SCRIPT--## Uso de VR-SCRIPT para generar código ASM

# VR-SCRIPT

## Uso de VR-SCRIPT para generar código ASM

Para convertir VR-SCRIPT a código nativo de una CPU, por ejemplo, un Z80/R800 o
un MOS, se utiliza la herramienta "AS". Puedes ver información sobre el uso de
esta herramienta en los comandos VR-DOS.

La forma de escribir código VR-SCRIPT para usar esta herramienta es un tanto más
restrictiva que lo visto hasta ahora. Es necesario establecer los tipos de las

# VR-SCRIPT--## Programar una aplicación VR-BASIC

# VR-SCRIPT

## Programar una aplicación VR-BASIC

Para crear una aplicación hecha en VR-SCRIPT donde se haga uso de los comandos
conocidos del VR-BASIC / MSX-BASIC disponemos de la plantilla *BASIC_Program*.

Este tipo de aplicación crea un contexto gráfico junto al interprete VR-BASIC y
le da control para poder hacer uso en exclusiva.


# VR-BASIC--## SET PROMPT

# VR-BASIC

## SET PROMPT

Especifica el mensaje (prompt) que se visualizará en pantalla cuando el VR-BASIC
entre en el estado de espera de comandos.

### Versión

MSX2+, MSXturboR, MSXVR

# VR-BASIC--## ¿Qué es VR-BASIC?

# VR-BASIC

## ¿Qué es VR-BASIC?

VR-BASIC es un intérprete de comandos compatible con MSX-BASIC. Aporta nuevas
funcionalidades, pero sigue manteniendo la sencillez del BASIC original que
poseían las máquinas de los años 80-90.

#### La consola


# VR-DOS--## STOP

# VR-DOS

## STOP

```
STOP
```

Detiene la ejecución de un programa.


# VR-SCRIPT--## Aplicación VR-GL

# VR-SCRIPT

## Aplicación VR-GL

VR-GL es una librería VR-SCRIPT que permite trabajar con gráficos dentro del
entorno MSXVR. El concepto de esta librería es trabajar con diferentes tipos de
objetos que nos permitan principalmente desarrollar proyectos multimedia como
videojuegos, aunque cabe cualquier posibilidad donde gráficos y música
interactúen.


# VR-BASIC--## COPY

# VR-BASIC

## COPY

Transfiere datos de imágenes entre la RAM de vídeo, variables de matriz y
ficheros de disco.

Válido únicamente para SCREEN 5 a SCREEN 13.

Transfiere los datos desde la página fuente a la página destino usando como

# VR-DOS--## CHKDSK

# VR-DOS

## CHKDSK

```
CHKDSK [d:] [/F]
```

Comprueba la integridad de los archivos en el disco.


# VR-BASIC--## SPACE$

# VR-BASIC

## SPACE$

Devuelve un determinado número de espacios en forma de dato alfanumérico.

Cuando N no es un valor entero, no se tienen en cuenta las cifras siguientes a
la coma decimal.

### Versión

# VR-DOS--## WAIT

# VR-DOS

## WAIT

```
WAIT [event1][event2]...[eventN]
```

Aplica una espera hasta que se cumplan los eventos pasados como parámetros.


# VR-BASIC--## CALL AFXSTOP

# VR-BASIC

## CALL AFXSTOP

### Versión

MSXVR

### Formato


# VR-SCRIPT--## Herencia de clases

# VR-SCRIPT

## Herencia de clases

La herencia de clases permite crear jerarquía y encapsular comportamientos.
Mediante este mecanismo, podemos asociar, extender y/o redefinir código además
de propiedades.

Ejemplo:


# VR-BASIC--## CALL SLEEP

# VR-BASIC

## CALL SLEEP

Pausa la ejecución del programa durante un número de milisegundos.

### Versión

MSXVR


# VR-DOS--## Redirección

# VR-DOS

## Redirección

La mayoría de los comandos y programas ejecutados en VR-DOS generan texto en la
pantalla, que correspondería a la "salida estándar", y leen desde el teclado,
que correspondería a la "entrada estándar". VR-DOS, sin embargo, proporciona
facilidades para cambiar la entrada estándar y la salida estándar durante la
duración del comando para hacer referencia a otros dispositivos o a archivos en
disco incluyendo uno o más de los símbolos de redirección \<,\> y \>\> en la

# VR-BASIC--## Tablas (Arrays)

# VR-BASIC

## Tablas (Arrays)

En muchos programas hay necesidad de disponer de gran número de variables.
Podríamos pensar, por ejemplo, en un programa para la administración de
existencias en un almacén. Si para cada artículo almacenado tenemos que reflejar
en el programa una variable diferente, el programa sería enorme y poco usable,
además de que gestionar el agregado y borrado de estos artículos se convertiría
en una tarea irremediablemente tediosa.

# Tutoriales--## TMX Loader

# Tutoriales

## TMX Loader

En este tutotial vamos a ver como importar un archivo TMX a un objeto GL_Mapper.
Los archivos TMX son creados por la herramienta [Tiled](https://www.mapeditor.org/)
Aunque también podemos crear mapeados usando GameSaurus, en este caso vamos a ver como iniciar un GL_Mapper y los actores existentes dentro de un TMX.
El TMX permite almacenar capas y referencias. En este ejemplo el TMX usa una única capa (escenario con tiles de 32x32) y que contiene referencias (nuestros actores/sprites).
El archivo TMX tiene su formato basado en el lenguaje XML.
NOTA: Cuando hacemos referencia a un actor, estamos hablando de un enemigo, npc, ítem, jugador, etc. Es cualquier elemento que va a tener un comportamiento en nuestro escenario.

# VR-BASIC--## CALL PITCH

# VR-BASIC

## CALL PITCH

Especifica el tono base de los sonidos de melodía FM producidos por los
generadores FM. Se puede configurar independientemente del parámetro de
transposición.

Esta instrucción no tiene efecto en los sonidos de ritmo FM, MIDI, PCM, PSG y
SCC.

# VR-SCRIPT--## Estructuras de control

# VR-SCRIPT

## Estructuras de control

Mediante las estructuras de control vamos a gestionar qué código ejecutar y el
número de veces que lo hará. En adelante veremos cómo se componen
sintácticamente estas estructuras. Conviene saber qué significan los siguientes
términos:

| Concepto | Definición

# VR-BASIC--## INTERVAL ON/ INTERVAL OFF/ INTERVAL STOP

# VR-BASIC

## INTERVAL ON/ INTERVAL OFF/ INTERVAL STOP

Habilita, inhabilita o retiene una interrupción mediante el temporizador
interno.

Se trata de una orden que habilita (INTERVAL ON), inhabilita (INTERVAL OFF) o
retiene (INTERVAL STOP) las llamadas tras la declaración de una interrupción con
el temporizador interno, utilizando ON INTERVAL GOSUB.

# Funciones disponibles en Stage.pi--## Inventory

# Funciones disponibles en Stage.pi

## Inventory
```
function AddInventory(_item, _amount = 1)
function CheckInventory(_item)
function GetInventory(_item)
function SetInventory(_item, _v)
function RemoveInventory(_item, _amount = 1)
```

# MSXLIB--## Ejemplo - WYZ Player

# MSXLIB

## Ejemplo - WYZ Player

- Agregar al binario datos externos, en este caso un archivo de música con formato WYZ.
- Iniciar un HOOK de interrupción.
- Reproducir música.

**💾 Example_2.pi**


# VR-BASIC--## COLOR SPRITE

# VR-BASIC

## COLOR SPRITE

Asigna el color del número de paleta especificado a un plano de sprites.

Válido solo para SCREEN 4 a SCREEN 13.

### Versión


# VR-BASIC--## SPRITE ON/SPRITE OFF/SPRITE STOP

# VR-BASIC

## SPRITE ON/SPRITE OFF/SPRITE STOP

Activa, desactiva o detiene una interrupción provocada por la colisión de
sprites.

Esta instrucción se utiliza para activar (SPRITE ON), desactivar (SPRITE OFF) o
detener (SPRITE STOP) una interrupción tras la declaración de una interrupción
provocada por la colisión de sprites (ON SPRITE GOSUB).

# VR-BASIC--## CALL DEBUGCLEAR

# VR-BASIC

## CALL DEBUGCLEAR

Limpia todos los mensajes del log del VR-BASIC

### Versión

MSXVR


# VR-DOS--## Variables de entorno

# VR-DOS

## Variables de entorno

VR-DOS mantiene una lista de "elementos de entorno" en su área de trabajo. Un
elemento de entorno es un elemento con nombre que tiene asociado un valor.

Un elemento de entorno puede tener cualquier nombre elegido por el usuario y
puede consistir en los mismos caracteres que son válidos en un nombre de
archivo. La longitud máxima de un nombre de elemento de entorno es de 255

# VR-BASIC--## Condiciones

# VR-BASIC

## Condiciones

En VR-BASIC contamos con las sentencias IF, THEN, ELSE para poder controlar el
flujo de ejecución de nuestros programas mediante la evaluación de expresiones
condicionales.

```
IF expresión_condicional THEN sentencias

# VR-BASIC--## SIN

# VR-BASIC

## SIN

Devuelve el valor del seno de un dato numérico. El dato debe expresarse en
radianes.

Para convertir X de grados a radianes, se debe utilizar la fórmula
SIN(X\*3.14159/180).


# VR-DOS--## SET

# VR-DOS

## SET

```
SET [name] [separator] [value]
```

Muestra/configura los elementos del entorno.


# MSXVR--## Prólogo

# MSXVR

## Prólogo

Detrás de un MSXVR se encuentra escondido todo un mundo, un mundo que está
determinado por una gran cantidad de marcas diferentes de ordenadores de 8 bits
que, curiosamente, comparten más similitudes que diferencias. En este caso,
MSXVR es una máquina compatible con la norma MSX y su intención es la de querer
preservarla en el tiempo.


# VR-BASIC--## IF- THEN-ELSE

# VR-BASIC

## IF- THEN-ELSE

Bifurca la ejecución del programa de acuerdo con el valor de una expresión.

Si el valor de una expresión es cierto (si se cumple esa expresión), se ejecuta
la sentencia siguiente a THEN, y si es falso (si no se cumple esa expresión) se
ejecuta la sentencia siguiente a ELSE; y a continuación se ejecuta la línea
siguiente.

# Tutoriales--## Space Invaders Tribute

# Tutoriales

## Space Invaders Tribute

![Space Invaders Tribute](./media/tuto_spaceinv/logo.png "SPACE INVADERS Tribute")

### Créditos

GABE Productions. Equipo formado por:
- Programación: Víctor Martí

# VR-BASIC--## CONT

# VR-BASIC

## CONT

Reanuda la ejecución de un programa.

Reanuda un programa interrumpido anteriormente por una orden CTRL+STOP o por una
instrucción STOP en un programa. Tras la ejecución de la instrucción CONT, la
ejecución del programa vuelve a empezar a partir de la instrucción siguiente a
la instrucción interrumpida, con una excepción: si la interrupción ha sido

# VR-BASIC--## COPY [VRAM]

# VR-BASIC

## COPY [VRAM]

Transfiere datos de imágenes entre la RAM de vídeo, variables de matriz y
ficheros de disco.

Válido únicamente para SCREEN 5 a SCREEN 13.

Transfiere los datos desde la página fuente a la página destino usando como

# VR-BASIC--## MERGE

# VR-BASIC

## MERGE

Carga un programa almacenado en formato ASCII y lo fusiona con el programa
almacenado en la memoria del ordenador.

Carga un programa almacenado por una instrucción SAVE en formato ASCII. El
programa que hay en la memoria sigue ahí y la instrucción fusiona con él el
programa cargado.

# VR-BASIC--## RESUME

# VR-BASIC

## RESUME

Devuelve la ejecución al programa principal tras la ejecución de una rutina de
proceso de errores.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## ABS

# VR-BASIC

## ABS

Ofrece el valor absoluto de un dato numérico.

Devuelve X cuando X \>= 0 y cuando X \< 0.

### Versión


# VR-BASIC--## SWAP

# VR-BASIC

## SWAP

Intercambia el valor de dos variables.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-SCRIPT--## Aplicación VR-BASIC

# VR-SCRIPT

## Aplicación VR-BASIC

Para crear una aplicación hecha en VR-SCRIPT donde se haga uso de los comandos
conocidos del VR-BASIC / MSX-BASIC disponemos de la plantilla *BASIC_Program*.

Este tipo de aplicación crea un contexto gráfico junto al interprete VR-BASIC y
le da control para poder hacer uso en exclusiva.


# VR-BASIC--## Matemáticas

# VR-BASIC

## Matemáticas

En este apartado veremos el conjunto de instrucciones y operadores del que
dispone VR‑BASIC para hacer cálculos matemáticos, desde los más sencillos hasta
los más complejos.

#### Funciones


# VR-BASIC--## CALL AFXCLEAR

# VR-BASIC

## CALL AFXCLEAR

### Versión

MSXVR

### Formato


# VR-BASIC--## COPY [FILE]

# VR-BASIC

## COPY [FILE]

Copia un fichero del disco en el mismo disco o en otro.

Copia el contenido del disco de la unidad 1 en el disco de la unidad 2.

### Versión


# Misceláneo--## Crear un APP

# Misceláneo

## Crear un APP

### ¿Qué es un APP?

Un APP o archivo con extensión .APP se trata de un paquete ejecutable por una máquina MSXVR.

Realmente el archivo es un ZIP (archivo comprimido con este formato) y que contiene una serie de archivos:


# VR-DOS--## HELP

# VR-DOS

## HELP

```
HELP [subject][/rebuild][/expandall]
```

Proporciona ayuda en línea relacionada con los conceptos indicados en
[subject].

# VR-BASIC--## CALL CHDRV

# VR-BASIC

## CALL CHDRV

Cambia la unidad por defecto.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## SAVE

# VR-BASIC

## SAVE

Almacena un programa VR-BASIC en el dispositivo especificado.

Cuando se especifica CAS: como nombre de dispositivo, almacena el programa
VR-BASIC de memoria en la cinta casete en formato ASCII.

Cuando se especifica una unidad de discos (por ejemplo A:, o B:), almacena el

# VR-DOS--## Redirección

# VR-DOS

## Redirección

La mayoría de los comandos y programas ejecutados en VR-DOS generan texto en la
pantalla, que correspondería a la "salida estándar", y leen desde el teclado,
que correspondería a la "entrada estándar". VR-DOS, sin embargo, proporciona
facilidades para cambiar la entrada estándar y la salida estándar durante la
duración del comando para hacer referencia a otros dispositivos o a archivos en
disco incluyendo uno o más de los símbolos de redirección \<,\> y \>\> en la

# VR-DOS--## EDIT

# VR-DOS

## EDIT

```
EDIT [file]
```

Abre la aplicación por defecto para la visualización y edición de textos.


# VR-BASIC--## POS

# VR-BASIC

## POS

Devuelve la coordenada X de la posición del cursor.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-SCRIPT--## Partials

# VR-SCRIPT

## Partials

Mediante este mecanismo podemos incrustar código de archivos script dentro de
otro script. No es lo mismo que "implements", donde los métodos y propiedades
forman parte de una clase. En un "partial", se incluye el código de otro script
como si fuese código propio. Una similitud a esto sería la directiva de
preprocesador \#include.


# VR-BASIC--## CALL MUSIC

# VR-BASIC

## CALL MUSIC

Inicializa los modos de reproducción de música utilizados en VR-BASIC.

Se pueden utilizar los siguientes modos:

| **Modo** | **FM** | **MIDI** |
|----------|-------------------------------------|-------------------------------------|

# VR-BASIC--## LPOS

# VR-BASIC

## LPOS

Ofrece la posición del cabezal de la impresora, procedente del buffer de la
impresora.

Ofrece la posición en el buffer (memoria intermedia de la impresora) del
carácter que esté escribiendo actualmente (principio = 0).


# VR-BASIC--## CALL GLRED

# VR-BASIC

## CALL GLRED

Obtiene el componente de color ROJO dado un color en formato GL.

### Versión

MSXVR


# VR-BASIC--## FIX

# VR-BASIC

## FIX

Ofrece el entero de un dato numérico X después de eliminar las cifras situadas a
la derecha del punto decimal.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-DOS--## ¿Qué es VR-DOS?

# VR-DOS

## ¿Qué es VR-DOS?

Es el intérprete de comandos que permite al usuario interaccionar con el sistema
operativo de la máquina, sus herramientas y servicios.

```
VR-DOS version 1.0
MSXVR version 0.0.1

# VR-BASIC--## BSAVE

# VR-BASIC

## BSAVE

Almacena el contenido, byte a byte, de la memoria principal especificada.

Almacena el contenido, byte a byte, especificado de la RAM de vídeo.

Almacena el contenido de la memoria principal comprendida entre la dirección
inicial y la dirección final. Sirve para almacenar tanto datos como programas en

# VR-BASIC--## DELETE

# VR-BASIC

## DELETE

Borra una línea específica de un programa.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## CALL GLGREEN

# VR-BASIC

## CALL GLGREEN

Obtiene el componente de color VERDE dado un color en formato GL.

### Versión

MSXVR


# VR-BASIC--## CSRLIN

# VR-BASIC

## CSRLIN

Da la coordenada Y de la posición del cursor.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# Tutoriales--## Tutorial Monkey Demo

# Tutoriales

## Tutorial Monkey Demo

### ¿Qué vamos a ver?

- Proyecto GL\_Program
- Ejemplo de videojuego (Monkey Demo)
- Diferentes archivos de script involucrados


# VR-BASIC--## LINE

# VR-BASIC

## LINE

En el modo gráfico, dibuja una línea recta o un rectángulo.

Cuando se omiten "B" y "BF", dibuja una línea recta entre las coordenadas del
punto inicial y las coordenadas del punto final.

Cuando se especifica "B", dibuja un rectángulo cuya diagonal es una línea recta

# MSXLIB--## Ejemplo 2 - WYZ Player

# MSXLIB

## Ejemplo 2 - WYZ Player

- Agregar al binario datos externos, en este caso un archivo de música con formato WYZ.
- Iniciar un HOOK de interrupción.
- Reproducir música.

**💾 Example_2.pi**


# VR-AGE--## Crear el APP para publicar tu juego

# VR-AGE

## Crear el APP para publicar tu juego

Creamos el archivo "C:/mi_proyecto/app.xml"
```


bundle="com_gabe_deadofthebrain1"

# VR-SCRIPT--## Programar una aplicación VR-GL

# VR-SCRIPT

## Programar una aplicación VR-GL

VR-GL es una librería VR-SCRIPT que permite trabajar con gráficos dentro del
entorno MSXVR. El concepto de esta librería es trabajar con diferentes tipos de
objetos que nos permitan principalmente desarrollar proyectos multimedia como
videojuegos, aunque cabe cualquier posibilidad donde gráficos y música
interactúen.


# MSXLIB--## Ejemplo 8 - Crear un menú de juegos

# MSXLIB

## Ejemplo 8 - Crear un menú de juegos

La intención es crear un menú en Screen 2 en el que poder seleccionar ROMS de hasta 32Kb. Podremos paginar este menú y seleccionar las roms que indiquemos en un archivo de texto.
Sería algo así:
![Shot-Tuto8](./media/msxlib_tuto8/shot.jpg "Screenshot")

Usaremos este tileset:
![Tileset-Tuto8](./media/msxlib_tuto8/font.png "Tileset")

# MSXVR--## Arranque del ordenador

# MSXVR

## Arranque del ordenador

Encendido estándar
---
Ordenador conectado a la fuente de alimentación.
Fuente de alimentación conectada a la red.
Interruptor lateral en posición de encendido.
Presionamos el botón POWER.

# VR-BASIC--## CALL GLON

# VR-BASIC

## CALL GLON

Activa la representación en pantalla de los gráficos generados por la librería GL.

### Versión

MSXVR


# VR-AGE--## Archivos de la librería

# VR-AGE

## Archivos de la librería

La librería está compuesta por los siguientes archivos:

|Archivo|Funcionalidad|
|----|----|
|main.pi| El punto de entrada de nuestra aplicación. Un GL_Program.
|game.pi| Interfaz común dentro de nuestra app

# VR-DOS--## MODE

# VR-DOS

## MODE

```
MODE number [/M]
```

Cambia el número de caracteres por línea en la pantalla y el modo de color de
texto.

# VR-BASIC--## CALL AFXUNLOAD

# VR-BASIC

## CALL AFXUNLOAD

### Versión

MSXVR

### Formato


# VR-DOS--## CHDIR / CD

# VR-DOS

## CHDIR / CD

```
CHDIR [d:] [path] or CD [d:] [path]
```

Muestra o cambia el directorio actual.


# VR-BASIC--## PRESET

# VR-BASIC

## PRESET

Marca o borra un punto en la pantalla, en el modo gráfico.

Cuando se ejecuta omitiendo la especificación del color, marca un punto con el
mismo color del fondo. En consecuencia, si hay algo dibujado en la posición
especificada en un color distinto al color del fondo, da la impresión de que ha
borrado un punto en esa posición.

# VR-BASIC--## STICK

# VR-BASIC

## STICK

Ofrece la dirección de las teclas del cursor y de los mandos para juegos
(joysticks).

La gama de valores correspondientes a la dirección va desde 0 a 8. Cuando no se
pulsa ninguna tecla o no se activa ningún mando, devuelve 0.


# VR-SCRIPT--## Palabras reservadas

# VR-SCRIPT

## Palabras reservadas

\_change, \_call, \_implements, \_instanceof, \_set, \_unset, \_get, \_state,
\_sizeof, \_eval, \_run, bool, byte, break, buffer, case, class, constants, continue, default,
defines, delete, do, double, else, exit, externals, for, function, false, float,
globals, if, import, implements, int, in, list, long, null, new, namespace, native,
package, partial, properties, pointer, protected, private, public, partial, package, return, rep, select, short,
state, switch, string, sizeof, select, true, this, typeof, until, ubyte, ushort, uint, ulong, virtual,

# MSXLIB--## Instalación

# MSXLIB

## Instalación

Crear una carpeta:

```bash
C:>mkdir msxlib
C:>cd msxlib
C:/msxlib/>

# VR-BASIC--## Gráficos

# VR-BASIC

## Gráficos

### Comandos VR-BASIC

Los comandos relacionados con los gráficos en VR-BASIC son:

| Comando | Función |
|----------------|---------------------------------------------------------------------------------------|

# VR-BASIC--## CALL TTSWAIT

# VR-BASIC

## CALL TTSWAIT

Espera a que un texto reproducido con *_TTSTALK* termine.

### Versión

MSXVR


# VR-DOS--## Tuberías

# VR-DOS

## Tuberías

Además de redirigir la entrada y la salida de un comando o programa a otro
dispositivo o un archivo de disco, es posible redirigir o 'canalizar' la salida
estándar de un comando en la entrada estándar de otro. Normalmente, el segundo
comando será un programa que lee desde su entrada estándar, modifica los datos y
lo escribe en su salida estándar. Tal programa se llama un "filtro". Por
ejemplo, se podría producir un filtro que lea los datos de su entrada estándar,

# VR-BASIC--## Mensajes de error

# VR-BASIC

## Mensajes de error

En caso de producirse un error, la ejecución del programa se detendrá. Se
entrará en el estado de espera de comandos y se visualizará en pantalla un
mensaje de error. El mensaje de error explica de una forma concisa la causa del
error. A continuación se indican los posibles mensajes de error y su significado
(los números de los errores están encerrados entre paréntesis).


# VR-AGE--## Controles

# VR-AGE

## Controles

Los controles serán el teclado y el ratón. Aquí mostramos que acciones están asociadas a las siguientes teclas:

|Tecla | Función
|------|---------
|ESCAPE | Cancelar acción o ítem
|Click Mouse Derecho | Cancelar acción o ítem

# VR-BASIC--## PAD

# VR-BASIC

## PAD

Ofrece el estado del dispositivo señalizador (touch pad, lápiz óptico, ratón y
bola gráfica).

| | **Valor de N** | **Significado del valor obtenido** |
|--------------------------|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Touch pad** | 0 o 4 1 o 5 2 o 6 3 o 7 | 0: sin contacto -1: contacto Coordenada X de la posición de contacto Coordenada Y de la posición de contacto 0: interruptor no pulsado -1: interruptor pulsado |

# VR-SCRIPT--## Optimizaciones

# VR-SCRIPT

## Optimizaciones

Un acceso a una propiedad o variable global es un 25% más rápido que una llamada
a función.

El acceso a los elementos de una cadena es más lento que el acceso a los
elementos de una lista.


# VR-BASIC--## CALL GLDELETE

# VR-BASIC

## CALL GLDELETE

Libera los recursos creados para una instacia de objeto GL.

### Versión

MSXVR


# VR-BASIC--## FRE

# VR-BASIC

## FRE

Ofrece el número de bytes de un área de memoria no utilizada pero que puede
emplearse en VR-BASIC. Admite un parámetro y este puede ser una cadena de texto
o bien un número.

Nótese que no importa el valor, sino el tipo.


# VR-DOS--## CONFIG

# VR-DOS

## CONFIG

```
CONFIG [/action] [/module [param][param]]
```

Permite cambiar los parámetros de configuración del sistema o aplicar acciones
sobre dicha configuración.

# VR-SCRIPT--## Operadores

# VR-SCRIPT

## Operadores

| **Op** | **Entero** | **Flotante** | **String** | **Lista** |
|--------|--------------------------|---------------------|-----------------------------------------------------------------|-------------------------------------------------------------|
| \+ | Sumar | Sumar | Concatenar | Concatenar |
| \+= | Sumar | Sumar | Concatenar | Concatenar |
| \- | Restar | Restar | Quitar | Quitar |
| \-= | Restar | Restar | Quitar | Quitar |

# VR-BASIC--## LLIST

# VR-BASIC

## LLIST

Imprime con una impresora el listado del programa almacenado en memoria.

Las especificaciones son idénticas a las de la instrucción LIST. La instrucción
LLIST no presenta el listado del programa en pantalla.

Si se ejecuta una instrucción LLIST cuando la impresora no está conectada o

# VR-BASIC--## ERR

# VR-BASIC

## ERR

Ofrece el código numérico de un error detectado.

Se puede usar para el proceso de errores en un programa en combinación con una
instrucción ERROR o con la función ERL.

Si no se ha producido ningún error, se obtendrá 0.

# VR-BASIC--## TROFF

# VR-BASIC

## TROFF

Desactiva TRON y detiene por lo tanto la presentación en pantalla de los números
de línea ejecutados.

La ejecución de una instrucción TROFF en el modo directo o indirecto, mientras
se ejecuta una instrucción TRON, anula la presentación de los números de línea
en pantalla.

# VR-BASIC--## CALL GLALPHA

# VR-BASIC

## CALL GLALPHA

Obtiene el componente de transparencia ALPHA dado un color en formato GL.

### Versión

MSXVR


# VR-BASIC--## LEFT$

# VR-BASIC

## LEFT$

Devuelve una cadena de caracteres compuesta por un número especificado de
caracteres extraídos de otra cadena, empezando por la izquierda.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## FIELD

# VR-BASIC

## FIELD

Especifica el formato de los registros de entrada/salida de un fichero de acceso
aleatorio.

El formato del registro se define mediante una instrucción FIELD antes de
realizar la entrada/salida de datos de un fichero de acceso aleatorio mediante
las instrucciones GET o PUT.

# VR-BASIC--## RENUM

# VR-BASIC

## RENUM

Renumera las líneas de un programa.

Sirve para volver a numerar las líneas tras una corrección del programa.

La instrucción RENUM renumera correctamente los números de línea a los que se
salta o a los que se hace referencia en las instrucciones RETURN, RESUME,

# VR-BASIC--## MOTOR

# VR-BASIC

## MOTOR

Pone en marcha y para el motor del grabador/reproductor de casetes.

Conecte el terminal TAPE (cinta) del ordenador al terminal de control remoto de
un grabador/reproductor de casete y ponga el aparato en el modo reproducción o
grabación. MOTOR ON pone la cinta en funcionamiento y MOTOR OFF la para.


# MSXLIB--## Funciones VDP MSX1

# MSXLIB

## Funciones VDP MSX1

#### function **VDP_RAMToVRAM** (ram : pointer(ubyte), vram : uint, len : uint) : void

Vuelca (*len*) bytes del contenido de una dirección visible por la CPU (*ram*) a una dirección de memoria de vídeo (*vram*).

#### function **VDP_VRAMToRAM** (vram : uint, ram : pointer, len : uint) : void


# VR-BASIC--## VDP

# VR-BASIC

## VDP

Lee o escribe el contenido de los registros del procesador de vídeo VDP.

En los MSX1 el VDP es el TMS9929 o compatible. En los MSX2 encontramos el
VDP9938, en los MSX2+ y MSXturboR el VDP9958 y finalmente, en los MSXVR,
encontramos el VDP9968.


# VR-BASIC--## STOP ON/STOP OFF/STOP STOP

# VR-BASIC

## STOP ON/STOP OFF/STOP STOP

Activa, desactiva o detiene una interrupción debida a la pulsación de las teclas
CTRL+STOP.

Órdenes que activan (STOP ON), desactivan (STOP OFF) o detienen (STOP STOP) una
interrupción tras su declaración con la instrucción ON STOP GOSUB (interrupción
provocada al pulsar las teclas CTRL+STOP).

# VR-BASIC--## KILL

# VR-BASIC

## KILL

Borra un fichero del disco especificado.

El signo de interrogación (?) puede sustituir a uno o más caracteres del nombre
del fichero o de la extensión. El asterisco (\*) puede sustituir a todo el
nombre del fichero o de la extensión.


# VR-DOS--## ATDIR

# VR-DOS

## ATDIR

```
ATDIR +|-H [/H] [/P] compound-filespec
```

Cambia el atributo de los directorios para hacerlos ocultos o visibles.


# VR-DOS--## FIXDISK

# VR-DOS

## FIXDISK

```
FIXDISK [d:] [/S]
```

Actualiza un disco al formato MSX-DOS 2 completo en unidades de disco flexible
USB.

# VR-SCRIPT--## Programación del V9968

# VR-SCRIPT

## Programación del V9968

El V9968 hace referencia a un hipotético chip, no existente como hardware real,
pero que se ha sintetizado por software para permitir una evolución "razonable"
de la versión del chip de vídeo utilizado en los modelos más avanzados de la
familia MSX. El V9968 es compatible con el V9958 y añade las siguientes mejoras:

- Hasta 16Mb de VRAM (24 bits de direccionamiento).

# MSXLIB--## Funciones matemáticas privadas

# MSXLIB

## Funciones matemáticas privadas

Funciones que utiliza el transcompilador de VR-Script a Z80 para resolver las expresiones matemáticas.

#### function **_mul_u8_u8** () : ushort

#### function **_mul_u16_u8** () : ushort


# VR-BASIC--## EXP

# VR-BASIC

## EXP

Ofrece ex que es la función exponencial natural de X.

El número e equivale a 2.7182818284558 y es la base de los logaritmos naturales.

### Versión


# VR-BASIC--## CALL AFXPLAY

# VR-BASIC

## CALL AFXPLAY

### Versión

MSXVR

### Formato


# VR-DOS--## COPY

# VR-DOS

## COPY

```
COPY [/A] [/H] [/T] [/V] [/P] [/B] [/S] source dest
```

Copia datos de archivos o dispositivos a otros archivos o dispositivos.


# VR-BASIC--## SET PAGE

# VR-BASIC

## SET PAGE

Selecciona la página de escritura de datos y la página de presentación en
pantalla cuando se opera con múltiples páginas de RAM de vídeo.

Válida únicamente para SCREEN 5 hasta SCREEN 13.

La página donde se escriben los datos recibe el nombre de página activa y la

# VR-BASIC--## CALL AFXEXIT

# VR-BASIC

## CALL AFXEXIT

### Versión

MSXVR

### Formato


# VR-DOS--## Mensajes del prompt

# VR-DOS

## Mensajes del prompt

Hay varias situaciones en las que se requiere la interacción del usuario antes
de que el sistema pueda continuar con lo que estaba haciendo, normalmente
insertando un disco. Además, muchos comandos potencialmente peligrosos solicitan
respuestas a mensajes de confirmación antes de que realicen su operación. A
continuación se ofrecen varias instrucciones del sistema.


# VR-BASIC--## PEEK

# VR-BASIC

## PEEK

Devuelve el contenido de una dirección de memoria especificada.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## BIN$

# VR-BASIC

## BIN$

Ofrece, en formato alfanumérico, la expresión binaria de un dato numérico.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## CLEAR

# VR-BASIC

## CLEAR

Inicializa todas las variables y selecciona el tamaño del área de caracteres y
la dirección de memoria más alta utilizada en VR-BASIC. Además, cierra todos los
ficheros abiertos, si hay alguno.

### Versión


# VR-BASIC--## Expresiones

# VR-BASIC

## Expresiones

Como parte de las expresiones consideraremos: constantes, variables, funciones y
operadores.

#### OPERADORES ARITMÉTICOS

| Operador | Semántica | Ejemplo | Prioridad |

# VR-SCRIPT--## Aplicación VR-VIEW

# VR-SCRIPT

## Aplicación VR-VIEW

VR-VIEW hace referencia al entorno gráfico del sistema operativo del MSXVR.

La plantilla sobre la que trabajar para que nuestra aplicación use estas
características se denomina: *View_Program.*

### El Desktop

# VR-BASIC--## USR

# VR-BASIC

## USR

Devuelve el resultado obtenido tras la ejecución de una subrutina en lenguaje
máquina que comienza en una dirección definida por una instrucción DEFUSR.

X es el número de la subrutina de usuario, concretamente el número especificado
por DEFUSR. I es una constante o una variable que indica el valor a transferir
desde el VR‑BASIC a la subrutina.

# MSXVR--## ¿Qué es un MSXVR?

# MSXVR

## ¿Qué es un MSXVR?

Es un ordenador de aspecto retro que intenta recrear el espíritu de los
ordenadores clásicos de las décadas de los 80 y 90.

En este caso, no solo intenta asemejarse en aspecto, sino también en filosofía
de trabajo e interacción con la máquina.


# VR-BASIC--## SET ADJUST

# VR-BASIC

## SET ADJUST

Ajusta la posición de la imagen en la pantalla.

Los valores positivos producen el desplazamiento correspondiente de la
coordenada X hacia la derecha y de la coordenada Y hacia abajo, cambiando la
posición de la imagen la pantalla. Los valores por omisión son 0 para las dos
coordenadas.

# MSXLIB--## Funciones PSG

# MSXLIB

## Funciones PSG

#### function **PSG_WriteReg** (num : ubyte, value : ubyte) : void

Escribe un valor _value_ en el registro _num_ del chip de sonido AY8910 de los MSX (aka PSG).

#### function **PSG_ReadReg** (num : ubyte) : ubyte


# VR-BASIC--## KEY ON/ KEY OFF

# VR-BASIC

## KEY ON/ KEY OFF

Visualiza o deja de mostrar en pantalla las cadenas asignadas a las teclas de
función.

Inicialmente, se visualizan en la última línea de la pantalla las cadenas de
caracteres definidas para cada una de las teclas de función. Para borrarlo,
ejecutar KEY OFF.

# VR-BASIC--## CALL BGM

# VR-BASIC

## CALL BGM

Permite reproducir la música sin bloquear la ejecución de otras instrucciones
VR-BASIC.

### Versión

MSX-AUDIO, MSX-MUSIC, MSXVR

# VR-BASIC--## CDBL

# VR-BASIC

## CDBL

Convierte datos numéricos en datos de precisión doble.

Esta función trata internamente el dato numérico dado como dato de precisión
doble.

### Versión

# MSXLIB--## ¿Qué es?

# MSXLIB

## ¿Qué es?

Se trata de una librería para desarrollar juegos nativos compatibles MSX usando las herramientas que proporciona el MSXVR.
Permite usar el lenguaje VR-SCRIPT en modo restrictivo para poder ser convertido a lenguaje ensamblador Z80/R800.

### VR-SCRIPT [modo restrictivo]

En esta modalidad de VR-SCRIPT, es necesario indicar los tipos de datos y en caso de invocar a funciones externas al módulo, indicar sus prototipos.

# VR-BASIC--## DEFUSR

# VR-BASIC

## DEFUSR

Especifica la dirección inicial de una subrutina en lenguaje máquina que se
ejecutará después con una función USR.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# MSXVR--## Prólogo

# MSXVR

## Prólogo

Detrás de un MSXVR se encuentra escondido todo un mundo, un mundo que está
determinado por una gran cantidad de marcas diferentes de ordenadores de 8 bits
que, curiosamente, comparten más similitudes que diferencias. En este caso,
MSXVR es una máquina compatible con la norma MSX y su intención es la de querer
preservarla en el tiempo.


# Apps--## GameSaurus

# Apps

## GameSaurus

**GameSaurus** es una aplicación de MSXVR que permite la creación y edición de proyectos con la librería VR-Script/GL.

### Menu

#### Project


# VR-BASIC--## Función de las teclas y su utilización

# VR-BASIC

## Función de las teclas y su utilización

La consola VR-BASIC permite efectuar la modificación y adición de caracteres
mediante el desplazamiento del cursor a una posición cualquiera de la pantalla.
Con esta función podrá realizar con suma facilidad la edición o la corrección de
los programas.

El editor de pantalla permite modificar cualquier carácter presente en la

# VR-BASIC--## CALL AUDREG

# VR-BASIC

## CALL AUDREG

Permite escribir directamente a un registro del chip de audio.

Notas:

- Esta instrucción puede no ser efectiva para un registro frecuentemente
escrito por el software del sistema, por ejemplo, interrupciones.

# VR-BASIC--## ON GOTO

# VR-BASIC

## ON GOTO

Bifurca la ejecución del programa a números de línea que dependen del valor de
una expresión.

**Valor de la expresión y resultado de la ejecución**

Cuando el valor de la expresión no es un entero, ignora las cifras que siguen al

# VR-DOS--## ZIPTOOL

# VR-DOS

## ZIPTOOL

```
ZIPTOOL [/C] [/I] [/D] [/A] [/E] [/R] [/Y] zipPath [filespec1]...[filespecN]
```

Permite la manipulación de archivos con formato ZIP.


# VR-BASIC--## REMM

# VR-BASIC

## REMM

Inserta un comentario en un programa.

La instrucción _REMM_ sirve para insertar un comentario tal y como hace la instrucción **REM** pero permite hacerlo en forma de instrucción independiente.
Mientras que _REM_ anula toda la línea BASIC una vez se ejecuta el comando, _REMM_ lo hace solo en la propia sentencia.

### Versión

# VR-SCRIPT--## El preprocesador

# VR-SCRIPT

## El preprocesador

El preprocesador se encarga de preparar el código fuente para su posterior
compilación. Lo que hace es modificar el código fuente y crear uno temporal que
será el que finalmente se compilará. El preprocesador es útil para poder
compilar diferentes zonas de código en función de valores de estado, añadir
código, definir macros, etiquetas y eliminar comentarios o texto que solo es
útil al programador.

# VR-DOS--## REN / RENAME

# VR-DOS

## REN / RENAME

```
RENAME [/H] [/P] compound-filespec filename
REN [/H] [/P] compound-filespec filename
```

Cambia el nombre de uno o más archivos.

# VR-DOS--## POPD

# VR-DOS

## POPD

```
POPD
```
Saca de la cola de directorios el último introducido y lo asigna como el directorio actual de trabajo.

```

# VR-BASIC--## Algunos ejemplos en VR-BASIC

# VR-BASIC

## Algunos ejemplos en VR-BASIC

Estos ejemplos servirán de ayuda para comprender todo lo descrito hasta ahora.
Todos los ejemplos son en modo de texto. En el siguiente punto, trataremos el
tema gráfico.

### Tabla de multiplicar


# VR-BASIC--## OUT

# VR-BASIC

## OUT

Envía un dato de 1 byte al puerto de entrada/salida especificado.

Esta instrucción envía datos directamente a un puerto de E/S.

### Versión


# VR-BASIC--## LET

# VR-BASIC

## LET

Asigna datos a una variable.

Asigna el valor del término de la derecha al término de la izquierda.

Las constantes de cadena van encerradas entre dobles comillas (" ").


# VR-SCRIPT--## Sobrecarga de operadores

# VR-SCRIPT

## Sobrecarga de operadores

Son funciones que se pueden implementar y su uso va estrictamente relacionado
con el tipo Pointer. El parámetro [arg] sería un tipo de dato (int, float,
pointer, etc.). La función en teoría debería devolver el tipo requerido en la
sobrecarga.

Mediante el uso de new y delete es posible crear nuevos objetos y eliminarlos.

# VR-BASIC--## CALL GLGET

# VR-BASIC

## CALL GLGET

Devuelve una propiedad de la librería GL.

|Propiedad|Valor|
|---------|-----|
|sprCol1 | En la rutina invocada por ON SPRITE GOSUB, se obtiene el identificador del sprite que ha invocado la colisión y ha colisionado con _sprCol2_|
|sprCol2 | En la rutina invocada por ON SPRITE GOSUB, se obtiene el identificador del sprite que ha colisionado con _sprCol1_|

# VR-DOS--## VOL

# VR-DOS

## VOL

```
VOL [d:] [volname]
```

Muestra o cambia el nombre del volumen en un disco.


# VR-BASIC--## OPEN

# VR-BASIC

## OPEN

Abre un fichero.

La instrucción OPEN abre el número de fichero especificado en el dispositivo a
efectos de realizar una operación de entrada/salida de datos. Entre los
dispositivos que se pueden especificar; CRT:, GRP: y LPT: se utilizan únicamente
para escribir; por lo tanto, con estos dispositivos hay que especificar el modo

# VR-DOS--## TYPE

# VR-DOS

## TYPE

```
TYPE [/H] [/P] [/B] compound-filespec | device
```

Muestra el contenido de un archivo o dispositivo.


# VR-BASIC--## Puertos de entrada y salida

# VR-BASIC

## Puertos de entrada y salida

Los puertos de entrada y salida para los MSX se codifican en un número entero
que va del 0 al 255. A continuación, se muestra una tabla[^3] con los distintos
dispositivos a los que se puede acceder según sea el número de puerto utilizado.
Nótese que, en algunos casos, distintos fabricantes pueden llegar a usar el
mismo puerto.


# VR-BASIC--## TIME

# VR-BASIC

## TIME

Contiene el valor del temporizador incorporado.

Esta variable contiene el valor del temporizador incorporado, activado en el
momento de inicializarse el VR-BASIC, y suma una unidad cada 1/50 seg., en un
rango que va desde 0 hasta 65536. Cuando llega a 65536, salta a 0 otra vez.


# MSXLIB--## Funciones estándar

# MSXLIB

## Funciones estándar

#### function **MSXLIB_Init** () : void

Inicializa la librería MSX. Inicializa sprites y otros componentes. Esta función se ha de invocar antes que cualquier otra de la librería.

#### function **sleep** (ms : ushort) : void


# MSXLIB--## Funciones PPI

# MSXLIB

## Funciones PPI

Funciones relacionadas con el PPI de los MSX.

#### function **PPI_IsKeyPressed** (key : uint) : ubyte

Devuelve un 0 (si no está la teclada presiona) o un 1 (si la tecla está presionada).
El valor de key podrá ser:

# VR-SCRIPT--## Constantes de teclado

# VR-SCRIPT

## Constantes de teclado

| Código | Código | Código | Código |
|-----------------|------------------|-----------------|------------------|
| KEY_BACK | KEY_ESCAPE | KEY_1 | KEY_2 |
| KEY_3 | KEY_4 | KEY_5 | KEY_6 |
| KEY_7 | KEY_8 | KEY_9 | KEY_0 |
| KEY_MINUS | KEY_EQUALS | KEY_BACKSPACE | KEY_TAB |

# VR-BASIC--## CALL PLAY

# VR-BASIC

## CALL PLAY

Permite saber si se está reproduciendo música a través de algún canal.

### Versión

MSX-AUDIO, MSX-MUSIC, MSXVR


# VR-BASIC--## CALL STOPM

# VR-BASIC

## CALL STOPM

Detiene los canales de música que estén sonando de fondo (véase el comando *CALL
BGM*).

### Versión

MSX-AUDIO, MSX-MUSIC, MSXVR

# Tutoriales--## Editar y ejecutar scripts

# Tutoriales

## Editar y ejecutar scripts

### ¿Qué vamos a ver?

- Uso básico de la herramienta EDIT
- Creación de un script programa DOS
- Mostrar texto en pantalla


# VR-BASIC--## CALL SPEED

# VR-BASIC

## CALL SPEED

Modifica la velocidad de ejecución del programa VR-BASIC.

### Versión

MSXVR


# VR-SCRIPT--## Programación del V9968

# VR-SCRIPT

## Programación del V9968

El V9968 hace referencia a un hipotético chip, no existente como hardware real,
pero que se ha sintetizado por software para permitir una evolución "razonable"
de la versión del chip de vídeo utilizado en los modelos más avanzados de la
familia MSX. El V9968 es compatible con el V9958 y añade las siguientes mejoras:

- Hasta 16Mb de VRAM (24 bits de direccionamiento).

# MSXLIB--## Instalación

# MSXLIB

## Instalación

Crear una carpeta:

```bash
C:>mkdir msxlib
C:>cd msxlib
C:/msxlib/>

# VR-BASIC--## RIGHT$

# VR-BASIC

## RIGHT$

Ofrece un número determinado de caracteres, en forma de datos alfanuméricos,
tomados a partir del extremo derecho de una cadena de caracteres.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-DOS--## RESET

# VR-DOS

## RESET

```
RESET [/HW] [/X]
```

### Uso


# VR-DOS--## Tuberías

# VR-DOS

## Tuberías

Además de redirigir la entrada y la salida de un comando o programa a otro
dispositivo o un archivo de disco, es posible redirigir o 'canalizar' la salida
estándar de un comando en la entrada estándar de otro. Normalmente, el segundo
comando será un programa que lee desde su entrada estándar, modifica los datos y
lo escribe en su salida estándar. Tal programa se llama un "filtro". Por
ejemplo, se podría producir un filtro que lea los datos de su entrada estándar,

# VR-BASIC--## CALL AFXLOAD

# VR-BASIC

## CALL AFXLOAD

### Versión

MSXVR

### Formato


# MSXLIB--## Funciones Screen

# MSXLIB

## Funciones Screen

Funciones que utilizan el buffer de pantalla para modos no bitmap (Screen 0, 1, 2, 4).

#### function **Screen_Flush** () : void

Vuelca el buffer en pantalla.


# VR-BASIC--## BLOAD

# VR-BASIC

## BLOAD

Carga un programa en lenguaje máquina a la memoria del ordenador, o lo carga y
ejecuta.

Carga un fichero en la RAM de vídeo.

Carga un programa que había sido almacenado mediante la orden BSAVE en la zona

# Como empezar tu aventura--## Una pantalla de presentación

# Como empezar tu aventura

## Una pantalla de presentación

Vamos a crear una pantalla de presenta donde presentemos el título de nuestro juego y desde ella accedamos al contenido de nuestro juego.
Añadiremos un "title.png" dentro de "data/graphics/". A continuación, editaremos el archivo "Stage_000.pi":
```
class Stage_000 implements Stage
{
virtual Init()

# Apps--## TileEditor

# Apps

## TileEditor

**TileEditor** es una aplicación de MSXVR que permite la creación y edición de Tilesets (conjunto de tiles) siguiendo la estructura y restricciones establecidas por el modo de pantalla SCREEN 2 de los MSX.
Este editor está basado en el clásico POLKA de MSX y conviene entender la forma de funcionar del modo SCREEN 2 para entender como utilizar la herramienta.
El modo SCREEN 2 del VDP de los MSX usa patrones (tiles) de 8x8 pixeles para mostrar gráficos en pantalla.
Cada patrón puede mostrar en cada una de sus 8 líneas de 8 píxeles dos colores. Uno de fondo (background) y otro de primer plano (foreground). Estos colores son índices a una paleta de 16 colores.
La pantalla en SCREEN 2 se divide en 3 _tilesets_ (conjunto de tiles), por tanto cada tileset tiene 32 x 8 tiles posibles. Una pantalla completa serían 32 x 24 tiles.


# VR-BASIC--## CALL GLINIT

# VR-BASIC

## CALL GLINIT

Inicializa el uso de la librería GL.

### Versión

MSXVR


# VR-BASIC--## POKE

# VR-BASIC

## POKE

Escribe datos la dirección de memoria especificada.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# MSXLIB--## ¿Qué es?

# MSXLIB

## ¿Qué es?

Se trata de una librería para desarrollar juegos nativos compatibles MSX usando las herramientas que proporciona el MSXVR.
Permite usar el lenguaje VR-SCRIPT en modo restrignido para poder ser convertido a lenguaje ensamblador Z80/R800.



# VR-BASIC--## GET TIME

# VR-BASIC

## GET TIME

Lee la hora en el reloj interno y la asigna a una variable de cadena.

El formato de la hora es HH:MM:SS, donde HH es la hora, MM son los minutos y SS
es el número de segundos.

Cuando se especifica A se puede programar la alarma.

# MSXLIB--## Extensiones de archivo

# MSXLIB

## Extensiones de archivo

|Extensión|Descripción
|---------|-----------
|.PI | VR-SCRIPT nativo. Usa una sintaxis restrictiva con el fin de poder convertirlos en lenguaje ensamblador.
|.ASM | Archivo de texto que contiene lenguaje ensamblador.
|.LIB | Archivo binario que contiene una librería de código.
|.MAP | Archivo de texto que contiene información sobre cómo se han resuelto las direcciones de los distintos símbolos utilizados. También ofrece información sobre el tamaño ocupado por las distintas áreas de código y datos.

# MSXLIB--## Funciones Joystick

# MSXLIB

## Funciones Joystick

Funciones relacionadas con los joysticks.

#### function **Joystick_GetAxis** (id : ubyte) : ubyte

Devuelve el estado del joystick. En el parámetro _id_ se indica el tipo de joystick:


# VR-BASIC--## PUT

# VR-BASIC

## PUT

Escribe el registro definido por la instrucción FIELD en un fichero de acceso
aleatorio.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# MSXLIB--## Funciones AFX

# MSXLIB

## Funciones AFX

Carga y reproducción de archivos AFX para reproducir efectos de sonido en los chips AY8910 de los MSX (aka PSG).

#### function **AFX_Load** (bank : ubyte, addr : ushort, mod : pointer(AFX_Module)) : bool

Inicializa un módulo AFX ubicando en el banco (*bank*) y la dirección (*addr*) de memoria. Rellenará la información en el módulo (*mod*) que pasemos por parámetro.
Si la función ha inicializado el modulo correctamente, devolverá 1. En caso contrario, devolverá 0.

# VR-AGE--## ¿Qué es VR-AGE?

# VR-AGE

## ¿Qué es VR-AGE?

** DOCUMENTACION BETA, EN DESARROLLO **

Librería para ordenadores MSXVR programada en VR-SCRIPT.
Mediante el uso de esta librería se permite la creación de juegos basados en texto e interacción del usuario a través del ratón.
Facilita la creación de video-aventuras y juegos conversacionales.


# VR-BASIC--## CSAVE

# VR-BASIC

## CSAVE

Almacena en una cinta de casete un programa VR-BASIC.

Respecto a la velocidad de transmisión (baudios), cabe decir que cuando se
especifica 1 la velocidad es 1200 baudios y cuando se especifica 2 es 2400.

### Versión

# VR-BASIC--## FOR -NEXT

# VR-BASIC

## FOR -NEXT

Repite la ejecución de la parte del programa comprendida entre una instrucción
FOR y su correspondiente instrucción NEXT.

La parte del programa comprendida entre una instrucción FOR y la instrucción
NEXT correspondiente se ejecuta repetidamente mientras el valor de la variable
especificada en la instrucción FOR va siendo incrementada desde un determinado

# VR-BASIC--## MKI$/MKS$/MKD$

# VR-BASIC

## MKI$/MKS$/MKD$

Convierten un dato numérico en una cadena de caracteres en función de su formato
interno.

Como en un fichero de acceso aleatorio únicamente se pueden escribir datos de
cadena, hay que convertir primero los datos numéricos en datos de cadena
haciendo uso de las funciones MKI$, MKS$ y MKD$. Estas conversiones se hacen

# VR-BASIC--## PAINT

# VR-BASIC

## PAINT

Colorea, a partir de unas coordenadas X e Y de la pantalla, el área delimitada
por un contorno de la pantalla donde esté contenida dicha posición. El color de
relleno es el especificado en el parámetro “color de pintura” y los límites del
área a rellenar vendrán establecidos por el parámetro “color del contorno”.

Si la línea del contorno no es cerrada, colorea toda la pantalla.

# VR-DOS--## VERIFY

# VR-DOS

## VERIFY

```
VERIFY [ON | OFF]
```

Muestra/establece el estado de verificación de escritura del disco actual.


# VR-BASIC--## REM

# VR-BASIC

## REM

Inserta un comentario en un programa.

La instrucción REM sirve para insertar un comentario con vistas a facilitar la
lectura del listado del programa.

### Versión

# VR-BASIC--## SGN

# VR-BASIC

## SGN

Devuelve un 1 cuando el dato numérico es positivo, un 0 cuando es 0, y un -1
cuando es negativo.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## CALL RMDIR

# VR-BASIC

## CALL RMDIR

Elimina un directorio de una unidad de disco.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-DOS--## Notación de los comandos

# VR-DOS

## Notación de los comandos

La sintaxis de los comandos disponibles en VR-DOS está descrita usando la
siguiente notación:

#### Palabras en letras mayúsculas

Estas palabras pueden ser introducidas como se muestran o mezclando letras en

# VR-DOS--## ¿Qué es VR-DOS?

# VR-DOS

## ¿Qué es VR-DOS?

Es el intérprete de comandos que permite al usuario interaccionar con el sistema
operativo de la máquina, sus herramientas y servicios.

```
VR-DOS version 1.0
MSXVR version 0.0.1

# VR-BASIC--## DEFINT/ DEFSNG/DEFDBL/DEFSTR

# VR-BASIC

## DEFINT/ DEFSNG/DEFDBL/DEFSTR

Define la relación entre el primer carácter del nombre de variable y el tipo de
variable, donde INT define variables de tipo entero, SNG define variables de
tipo precisión simple, DBL define variables de tipo precisión doble y STR define
variables de tipo cadena de texto.

### Versión

# VR-BASIC--## SOUND

# VR-BASIC

## SOUND

Genera efectos sonoros escribiendo datos directamente en los registros del PSG
(Generador de Sonidos Programable).

**Funciones de los registros PSG**

| **Registro** | **Función** | **Gama de datos** |

# Funciones disponibles en Stage.pi--## Debug

# Funciones disponibles en Stage.pi

## Debug
```
function SetDebugFontSize(_fs)
function ShowDebugVars(_v)
function AddDebugVar(_var, _text = "")
function RemoveDebugVar(_var)
function UpdateDebugVars()
function ClearDebugVars()

# Funciones disponibles en Stage.pi--## Misc

# Funciones disponibles en Stage.pi

## Misc
```
function GetLanguage()
function AddColor(_name, _id)
function GetColorID(_name)
function SetScreen(_id)
function SetDecoration(_id)
function GotoStage(_id)

# VR-DOS--## NET

# VR-DOS

## NET

```
NET [/WIFI] [/ETH]
```

Gestiona el acceso a redes.


# VR-BASIC--## SPRITE$

# VR-BASIC

## SPRITE$

Define los datos de un sprite.

Cuando una variable SPRITE$ define un modelo de sprite, este se mantiene con un
número especificado. Para detalles relativos a la definición del sprite, véase
*PUT SPRITE*.


# VR-BASIC--## CALL MFILES

# VR-BASIC

## CALL MFILES

Visualiza en pantalla los nombres de todos los ficheros almacenados en la
RAM-Disk.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-SCRIPT--## Programar una aplicación VR-VIEW

# VR-SCRIPT

## Programar una aplicación VR-VIEW

VR-VIEW hace referencia al entorno gráfico del sistema operativo del MSXVR.

La plantilla sobre la que trabajar para que nuestra aplicación use estas
características se denomina: *View_Program.*

### El Desktop

# VR-BASIC--## SET TITLE

# VR-BASIC

## SET TITLE

Selecciona el título a presentar en pantalla cuando se pone en marcha el
ordenador. También podemos establecer el color del mismo.

### Versión

MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## STRING$

# VR-BASIC

## STRING$

Ofrece, en forma de datos alfanuméricos (de cadena), el carácter de un código de
carácter dado, o el de comienzo de una cadena, un número especificado de veces
de forma consecutiva.

### Versión


# VR-BASIC--## CALL GLSPRITEMOVE

# VR-BASIC

## CALL GLSPRITEMOVE

Indica que el sprite invocará a una rutina de actualización.
Los sprites se actualizan fotograma a fotograma pero se tiene en consideración que:
- No tengan su flag de STOP en pausa. Por ejemplo: CALL GLCALL(id, "setstop", true) para detener la actualización de un sprite.
- Se encuentren dentro del clip área de la cámara de la escena donde se encuentra el sprite.

Si establecemos un número de línea que valga cero, desactivaremos las actualizaciones automáticas.

# VR-SCRIPT--## Programación del R8000

# VR-SCRIPT

## Programación del R8000

El R8000 hace referencia a un hipotético chip, no existente como hardware real,
que se ha sintetizado por software para ofrecer compatibilidad Z80/R800 además
de nuevas funcionalidades:

- Nueva instrucción TRAP. Codificación: ED FD nn nn. Tamaño: 4 bytes.


# VR-BASIC--## NEW

# VR-BASIC

## NEW

Borra un programa VR-BASIC de la memoria y anula todas las variables.

NEW se ejecuta antes de dar entrada en memoria a un nuevo programa, con objeto
de borrar todos los programas existentes y pasar al estado de entrada de
comandos.


# VR-DOS--## PAUSE

# VR-DOS

## PAUSE

```
PAUSE [comment]
```

Solicita y espera que se pulse una tecla en un archivo por lotes.


# VR-AGE--## Juegos desarrollados con esta librería

# VR-AGE

## Juegos desarrollados con esta librería

Accede a la VR-STORE y descargate:

|Título| Portada |
|------|-----|
| Dead Of The Brain (Disk. 1) | ![Tileset-Tuto8](./media/vr-age/com_gabe_deadofthebrain1_128px.png "Dead Of The Brain Disk 1")


# VR-DOS--## COLOR

# VR-DOS

## COLOR

```
COLOR [foreground [background [border]]]
```

### Uso


# VR-BASIC--## LSET

# VR-BASIC

## LSET

Escribe los datos en un registro de un fichero de acceso aleatorio con
justificación a la izquierda.

Dispone los datos de cada variable en el registro especificado por la
instrucción FIELD como preparación para la escritura de los datos en un fichero
de acceso aleatorio con una instrucción PUT. La instrucción LSET alinea los

# VR-SCRIPT--## ¿Qué es VR-SCRIPT?

# VR-SCRIPT

## ¿Qué es VR-SCRIPT?

VR-SCRIPT es el lenguaje de scripting nativo de los MSXVR y con el que se pueden
desarrollar cualquier tipo de aplicaciones y juegos. Además de la versatilidad
del script, permite una programación orientada a objetos entre otras
particularidades especiales. Este lenguaje utiliza una sintaxis similar a la del
C/C++. Dentro del MSXVR se lanzan programas que ejecutan estos scripts. Estos
programas tienen acceso a un conjunto de funciones nativas para poder

# VR-BASIC--## SCREEN

# VR-BASIC

## SCREEN

Establece el modo de visualización de pantalla, el tamaño de los sprites, la
activación o no del sonido de las teclas, la velocidad de transmisión del casete
(en baudios), el modo de entrelazado, y el tipo de impresora.

**Modos**


# VR-BASIC--## VARPTR (2)

# VR-BASIC

## VARPTR (2)

Devuelve la dirección inicial del bloque de control de ficheros asignado al
fichero especificado. La dirección inicial de la zona de memoria (memoria
intermedia de ficheros) especificada para entrada al fichero está almacenada en
el bloque de control de ficheros.

### Versión

# VR-BASIC--## FILES

# VR-BASIC

## FILES

Presenta en pantalla los nombres de los ficheros que hay en el disco
especificado.

El signo de interrogación (?) puede sustituir a uno o más caracteres del nombre
de fichero o a toda la extensión.


# VR-BASIC--## CALL TTSTALK

# VR-BASIC

## CALL TTSTALK

Convierte texto en voz.

### Versión

MSXVR


# VR-DOS--## ATTRIB

# VR-DOS

## ATTRIB

```
ATTRIB +|-R|H [/H] [/P] compound-filespec
```

Cambia los atributos de los archivos y los hace ocultos/visibles y de
lectura/escritura o solo lectura.

# VR-BASIC--## ATN

# VR-BASIC

## ATN

Ofrece el valor del arcotangente correspondiente a un dato numérico.

La función ATN da un valor numérico de coma flotante que corresponde a un ángulo
cuya tangente es X. Su unidad es el radián.

Para obtener el resultado en grados, debe multiplicarse por 180/$$\pi$$.

# VR-BASIC--## CALL AUDIODRIVERBASEPORT

# VR-BASIC

## CALL AUDIODRIVERBASEPORT

Establece los puertos a usar para los distintos chips de sonido implementados en
el VR‑BASIC.

### Versión

MSXVR

# Funciones disponibles en Stage.pi--## Texto

# Funciones disponibles en Stage.pi

## Texto
```
function SetFontName(_name)
function SetTextSpeed(_ms)
function SetTextFontSize(_h)
function ShowText(_msg)
function AddText(_key, _text)
function GetText(_key)

# VR-BASIC--## SET SCREEN

# VR-BASIC

## SET SCREEN

Registra los valores actuales seleccionados por las instrucciones SCREEN, COLOR,
WIDTH y KEY ON/OFF como valores iniciales de puesta en marcha.

Los valores que pueden seleccionarse para la inicialización son:

| Screen (modo texto) | 0 / 1 |

# VR-SCRIPT--## Funciones del API Nativo

# VR-SCRIPT

## Funciones del API Nativo

El VR-SCRIPT hace uso de funciones creadas para desempeñar todo tipo de
acciones. Estas cubren un amplio espectro de posibilidades y permiten tratar
diferentes tipos de datos, estructuras y objetos.

Estas funciones pueden o no devolver un valor. La forma de invocarlas es:


# VR-DOS--## MOVE

# VR-DOS

## MOVE

```
MOVE [/H] [/P] compound-filespec [path]
```

Mueve archivos de un lugar a otro del disco.


# MSXLIB--## Macros

# MSXLIB

## Macros

|Macro|Función|
|-----|-------|
|VDP_SetColor(fg,bg) | VDP_WriteReg (7, (fg << 4) OR bg) |
|VDP_ClearPNTBank(b,v) | (VDP_FillVRAM (g_vdp_pntOffsetY[0]+32\*8\*b, 32\*8, v)) |
|VDP_ClearPNT(v) | (VDP_FillVRAM (g_vdp_pntOffsetY[0], 32\*8\*3, v)) |
|VDP_PNTOffset(x,y)| (g_vdp_pntOffsetY[(y)]+(x)) |

# MSXLIB--## Contenido

# MSXLIB

## Contenido

- En la carpeta «SRC» podrás encontrar los fuentes de la librería. Dentro encontrarás un MAKE.BAT para compilar la librería según lo establecido en el archivo «msxlib\_config.h».
- Ejemplos en las distintas carpetas del repositorio. Cada ejemplo tiene su MAKE.BAT con el que podrá generar el archivo ROM, DSK, etc. según el caso. Y también el archivo «RUN.BAT» que te permitirá ejecutar en una máquina virtual, la ROM o archivo de salida generado.
- En la carpeta «SRC/CRT» podremos encontrar los distintos puntos de entrada e inicialización de nuestros programas.
- En la carpeta «MSXLIB_MSX1_WYZ_ASCII8.LIB» será nuestra librería compilada y que usarán los ejemplos del repositorio. Esta librería usa funciones MSX1, con reproductor musical WYZ Player y mapper ASCII8.



# VR-BASIC--## Música y Sonido

# VR-BASIC

## Música y Sonido

Las instrucciones relacionadas con la música y el sonido en VR-BASIC son:

| Comando | Función |
|--------------------------|-----------------------------------------------------------------------------------------------------|
| PLAY | Permite reproducir música PSG, OPLL y de otros chips de sonido utilizando el lenguaje de texto MML. |
| SOUND | Reproduce sonidos directamente desde el PSG. |

# VR-BASIC--## International Codes

# VR-BASIC

## International Codes

Códigos de control en azul. Son ignorados por la instrucción en los modos
gráficos.

Los caracteres desde el 20h al 7Fh (morados) están codificados en 7-bit ASCII.

Caracteres verdes son caracteres específicos de MSX occidental.

# MSXLIB--## Variables de sistema

# MSXLIB

## Variables de sistema

|Variable | Función
|---------|-----------
|g_timer | Contador de ticks. Es necesario instalar un Hook de interrupción e incrementar su valor.
|g_rnd | Semilla para los números aleatorios.
|g_auxBuffer | Buffer de 2K para uso interno
|g_pt3Mode | Indica el modo de reproducción de los PT3 (solo cuando se compila en modo USE_PT3) por defecto se inicializa con PT3_MODE_PSG

# VR-BASIC--## KEY

# VR-BASIC

## KEY

Asigna una cadena de caracteres a una tecla de función.

Cuando está definida una cadena de caracteres para una tecla de función, con
solo pulsar esa tecla queda introducida la cadena de caracteres.

Los números 1 al 5 corresponden a las teclas F1-F5, mientras que los números 6

# MSXLIB--## Herramientas necesarias

# MSXLIB

## Herramientas necesarias

|Herramienta|Función
|-----------|--------
|AS Tool (VR-DOS)| Para convertir los scripts, compilar los ASM y linkar el proyecto.
|Player | Para reproducir los ROM, DSK, etc. generados.
|Player-Debugger | Para depurar el código en tiempo de ejecución.


# VR-BASIC--## CIRCLE

# VR-BASIC

## CIRCLE

Dibuja un círculo, un óvalo, un arco o una forma en abanico, en el modo gráfico
(véase *SCREEN*).

Dibuja un círculo con el radio especificado que tiene como centro las
coordenadas especificadas.


# VR-DOS--## UNDEL

# VR-DOS

## UNDEL

```
UNDEL [filespec] [/Y] [/F]
```

Recupera un archivo previamente eliminado.


# VR-BASIC--## PRINT USING

# VR-BASIC

## PRINT USING

Visualiza datos a la pantalla usando un formato especificado.

Presenta en pantalla el valor de una expresión en un formato especificado por un
símbolo de formato.

**Símbolos de formato para datos alfanuméricos**

# Como empezar tu aventura--## Primer paso

# Como empezar tu aventura

## Primer paso

Lo primero sería crear un directorio donde vamos a ubicar todos los recursos, además de la librería VR-AGE.
Por ejemplo:
```
mkdir C:/mi_proyecto
```


# VR-SCRIPT--## Programar una aplicación VR-DOS

# VR-SCRIPT

## Programar una aplicación VR-DOS

Una aplicación VR-DOS es aquella que está pensada para hacer uso de la consola
DOS o para mostrarse como parte integrada dentro de la propia utilidad DOS.

La aplicación heredará de la plantilla con nombre *DOS_Program*

El punto de entrada que hemos de usar es el siguiente:

# VR-SCRIPT--## Listas

# VR-SCRIPT

## Listas

Un objeto "lista" está formado por una secuencia ordenada de valores. Los
valores pueden ser de cualquiera de los tipos soportados por el VR-SCRIPT,
incluyendo las propias listas.

#### Ejemplos de operaciones con listas


# Funciones disponibles en Stage.pi--## Audio

# Funciones disponibles en Stage.pi

## Audio
```
function AddMusic(_music, _loop = true)
function AddFX(_fx, _loop = false)
function PlayMusic(_id)
function PauseMusic()
function ResumeMusic()
function StopMusic(_id)

# VR-DOS--## CLS

# VR-DOS

## CLS

```
CLS
```

Borra la pantalla.


# VR-BASIC--## DATA

# VR-BASIC

## DATA

Almacena los datos que serán leídos por una instrucción READ.

Cuando hay varios datos en una instrucción DATA, se separan mediante comas.

Si los datos de una instrucción DATA se corresponden secuencialmente con las
variables de una instrucción READ, la instrucción DATA se puede poner en

# MSXLIB--## Funciones PAD

# MSXLIB

## Funciones PAD

Gestión de un pad virtual que contiene direcciones (arriba, abajo, izquierda, derecha y sus diagonales) más dos pulsadores.

#### function **Pad_Refresh** (portFlags : ubyte) : void

El parámetro (*portFlags*) indica desde que dispositivo se quiere leer la información, puede ser una combinación de los siguientes flags:


# VR-DOS--## ECHO

# VR-DOS

## ECHO

```
ECHO [text]
```

Imprime [text].


# VR-BASIC--## LEN

# VR-BASIC

## LEN

Ofrece, en forma de datos numéricos, el número de caracteres (longitud) de una
cadena de caracteres.

Cuando una cadena de caracteres incluye la función CHR$, esta se cuenta como un
carácter.


# VR-BASIC--## CALL FORMAT

# VR-BASIC

## CALL FORMAT

Formatea una unidad de disco que esté conectada a un puerto USB.

La operación de formateado escribe unos datos específicos en el disco, que el
MSX Disk BASIC utiliza como "postes indicadores" en la búsqueda de los nombres
de fichero y de los contenidos de los ficheros. Por lo tanto, es imprescindible
formatear un disco virgen antes de utilizarlo por primera vez.

# VR-BASIC--## CALL GLOFF

# VR-BASIC

## CALL GLOFF

Oculta la representación en pantalla de los gráficos generados por la librería GL.

### Versión

MSXVR


# VR-BASIC--## VARPTR (1)

# VR-BASIC

## VARPTR (1)

Devuelve la dirección inicial de memoria donde está almacenado el dato asignado
a una variable.

Devuelve la dirección inicial (decimal) de la zona de memoria donde está
almacenado un valor asignado a una variable dada. Si la dirección decimal es un
número negativo, la dirección real es la que resulta de sumar a ese número

# VR-BASIC--## LOAD

# VR-BASIC

## LOAD

Carga en memoria un programa VR-BASIC procedente del dispositivo especificado.

Cuando se especifica CAS: en el nombre del dispositivo, carga los programas que
se hayan almacenado en la cinta de casete en formato ASCII mediante la
instrucción SAVE "CAS: nombre de fichero".


# MSXLIB--## Ejemplo - Crear un menú de juegos

# MSXLIB

## Ejemplo - Crear un menú de juegos

La intención es crear un menú en Screen 2 en el que poder seleccionar ROMS de hasta 32Kb. Podremos paginar este menú y seleccionar las roms que indiquemos en un archivo de texto.
Sería algo así:
![Shot-Tuto8](./media/msxlib_tuto8/shot.jpg "Screenshot")

Usaremos este tileset:
![Tileset-Tuto8](./media/msxlib_tuto8/font.png "Tileset")

# VR-DOS--## Notación de los comandos

# VR-DOS

## Notación de los comandos

La sintaxis de los comandos disponibles en VR-DOS está descrita usando la
siguiente notación:

#### Palabras en letras mayúsculas

Estas palabras pueden ser introducidas como se muestran o mezclando letras en

# VR-DOS--## Códigos de error

# VR-DOS

## Códigos de error

Errores de disco

Los errores de disco se producen cuando un comando o programa está intentando
acceder a un disco y falla por alguna razón, como un disco que no está en la
unidad. Cuando esto ocurre, aparece un mensaje y un símbolo del sistema que le
permite al usuario reintentar la operación para que pueda funcionar (por

# VR-DOS--## Códigos de error

# VR-DOS

## Códigos de error

Errores de disco

Los errores de disco se producen cuando un comando o programa está intentando
acceder a un disco y falla por alguna razón, como un disco que no está en la
unidad. Cuando esto ocurre, aparece un mensaje y un símbolo del sistema que le
permite al usuario reintentar la operación para que pueda funcionar (por

# VR-BASIC--## CALL TRANSPOSE

# VR-BASIC

## CALL TRANSPOSE

Transpone en unidades de medios tonos los sonidos FM (melodía y ritmo)
producidos por los generadores FM. Se puede configurar independientemente del
parámetro de tono.

Esta instrucción no tiene efecto en los sonidos MIDI, PCM, PSG y SCC.


# VR-BASIC--## PLAY

# VR-BASIC

## PLAY

Comprueba si se está ejecutando música o no.

Con una instrucción PLAY se pueden ejecutar simultáneamente tres sonidos
diferentes.

En el caso concreto de PLAY, A$, B$, C$; el sonido del comando A$ sale por

# VR-DOS--## PUSHD

# VR-DOS

## PUSHD

```
PUSHD
```
Encola el directorio de trabajo actual en la pila.

```

# VR-BASIC--## Función de las teclas y su utilización

# VR-BASIC

## Función de las teclas y su utilización

La consola VR-BASIC permite efectuar la modificación y adición de caracteres
mediante el desplazamiento del cursor a una posición cualquiera de la pantalla.
Con esta función podrá realizar con suma facilidad la edición o la corrección de
los programas.

El editor de pantalla permite modificar cualquier carácter presente en la

# MSXLIB--## Zonas de memoria

# MSXLIB

## Zonas de memoria

* **CODE** : código RD_ONLY accesible por el Z80 sin necesidad de gestión de bancos. En una ROM estándar ocuparía generalmente las posiciones 0x4000 hasta 0xBFFF.
* **BANK** : código RD_ONLY accesible usando gestión de bancos. Para el Z80 este área es visible (por defecto) desde la dirección 0xA000 hasta 0xBFFF.
* **DATA** : código RD_WR accesible de forma normal por el Z80. Lo que viene a ser el área visible de RAM. Direcciones por defecto 0xC000 hasta 0xFFFE.



# MSXLIB--## Funciones VDP MSX2 o superiores

# MSXLIB

## Funciones VDP MSX2 o superiores

Para habilitar estas funciones, será necesario establecer la etiqueta en "msxlib_config.h".
```
#define MSX_VERSION 2
```

#### function **VDP_StartWriteVRAM** (addr : ulong) : void

# VR-BASIC--## RUN

# VR-BASIC

## RUN

1. Ejecuta un programa a partir de una línea especificada. La instrucción RUN
pone todos los valores numéricos a 0, las variables alfanuméricas a cadena nula
y las variables de matriz en una condición indefinida; luego ejecuta el
programa.

2. Carga un fichero de disco o de la RAM-Disk y lo ejecuta. La ejecución de la

# MSXVR--## Editorial

# MSXVR

## Editorial

MSX, MSX2, MSX2+, MSXturboR y MSX-DOS son marcas registradas de MSX Association / MSX Licensing Corporation.

MSX-BASIC es una marca registrada de Microsoft Corporation.

MSXVR es una marca registrada de VIKALB PROGRAMMING S.L.


# VR-DOS--## MVDIR

# VR-DOS

## MVDIR

```
MVDIR [/H] [/P] compound-filespec [path]
```

Mueve directorios de un lugar a otro del disco.


# VR-SCRIPT--## Evaluación de expresiones al vuelo

# VR-SCRIPT

## Evaluación de expresiones al vuelo

Mediante **\_eval** podemos evaluar expresiones en formato texto al vuelo.

```
a = 10;
b = _eval ("a + 10"); // esto hace que b valga 20.
```

# VR-SCRIPT--## Máquina de estados

# VR-SCRIPT

## Máquina de estados

VR-SCRIPT permite trabajar también con una máquina de estados. Estos se declaran
en el cuerpo de la clase como:

```
state
{

# VR-DOS--## XDIR

# VR-DOS

## XDIR

```
XDIR [filespec] [/H] [/P]
```

Lista todos los archivos dentro de los directorios y sus posibles
subdirectorios.

# VR-DOS--## HISTORY

# VR-DOS

## HISTORY

```
HISTORY [/P] [/CLEAN]
```

Lista de comandos usados más recientes.


# VR-BASIC--## DIM

# VR-BASIC

## DIM

Define la dimensión, el tamaño, el tipo de dato y el nombre de una variable de
matriz.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## CALL MKILL

# VR-BASIC

## CALL MKILL

Borra un fichero especificado de la RAM-Disk.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-SCRIPT--## Propiedades

# VR-SCRIPT

## Propiedades

Las propiedades son variables y constantes, que tienen un identificador (cadena
de caracteres) y un ámbito de acceso, bien sea global (entre clases) o local a
la clase.

### Variables y constantes globales


# VR-SCRIPT--## Instanceof

# VR-SCRIPT

## Instanceof

Con **\_instanceof** podemos saber si un objeto es una instancia de una clase, y
en qué grado o nivel. Por ejemplo, con la siguiente estructura de clases:

Archivo: Animal.pi
```
class Animal

# VR-BASIC--## MID$

# VR-BASIC

## MID$

Localiza y extrae una parte de los caracteres de una cadena de texto.

El primer parámetro X$ hace referencia a la cadena de texto sobre la que vamos
a operar. El segundo parámetro M hace referencia al índice del primer carácter
desde el que extraer parte de la cadena. De forma opcional, con el parámetro N,
podemos indicar el número de caracteres que queremos extraer; en caso de no

# VR-BASIC--## CALL PCMPLAY

# VR-BASIC

## CALL PCMPLAY

Reproduce un audio PCM ubicado en una zona de memoria o en un array de datos.

La ejecución de esta sentencia detiene el programa hasta que se pulsa la tecla
STOP o se ha completado la reproducción de un audio o la reproducción del audio
ha superado una duración establecida.


# VR-BASIC--## COLOR

# VR-BASIC

## COLOR

Especifica los colores del primer plano, del fondo y de los bordes.

| **SCREEN** | **CÓDIGO DE COLOR** |
|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 0 - 7 | Índice Paleta - [0-15] |
| 8 | Código de color = 32 x (intensidad verde) + 4 x (intensidad rojo) + (intensidad azul) Intensidad verde: un entero del 0 al 7. Intensidad rojo: un entero del 0 al 7. Intensidad azul: un entero del 0 al 3. |

# MSXLIB--## Funciones VDP

# MSXLIB

## Funciones VDP

Funciones relacionadas con el manejo del chip de vídeo de los MSX1, 2, 2+ y TR.

#### function **VDP_SetScreenMode** (mode : ubyte) : void

Establece el modo de pantalla. Los modos gráficos a partir del 4 solo están disponibles si usamos una MSXLIB configurada para MSX2 o superiores.
[Modos de pantalla](http://msxvr.es/doc/wiki/mdwiki.html#!d4599626a95ccc3865c93880ffadf9274112f9fc.md)

# VR-BASIC--## CALL GLNEW

# VR-BASIC

## CALL GLNEW

Crea una instancia de objeto GL.

### Versión

MSXVR


# VR-BASIC--## COS

# VR-BASIC

## COS

Devuelve el valor del coseno de un dato numérico. El dato debe expresarse en
radianes.

Para convertir X de grados a radianes, se debe utilizar la fórmula
COS(X\*3.14159/180).


# VR-SCRIPT--## Strings

# VR-SCRIPT

## Strings

Un String hace referencia a un tipo de objeto que conforma una cadena de
caracteres de 8 o 16 bits, dependiendo de su codificación: las cadenas de 8 bits
se gestionan como ASCII y las de 16 bits como UNICODE.

#### Ejemplos de operaciones con strings


# VR-BASIC--## NAME

# VR-BASIC

## NAME

Cambia el nombre de un fichero del disco.

Sirve para cambiar el nombre del fichero, pero no su contenido.

### Versión


# VR-BASIC--## CALL CHDIR

# VR-BASIC

## CALL CHDIR

Permite establecer la unidad y directorio por defecto de trabajo con las
funciones de disco.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## CALL VOICE

# VR-BASIC

## CALL VOICE

Establece directamente un timbre de sonido (voz) para cada canal del generador
de tonos FM. Los sonidos se pueden seleccionar entre 64 preajustes en ROM o por
el usuario utilizando una variable de matriz.

### Versión


# MSXLIB--## Funciones Sprite

# MSXLIB

## Funciones Sprite

Funciones para definir los atributos de los sprites.

#### function **Sprite_UpdateAll** (n : ubyte) : void

Actualiza la tabla de atributos en la VRAM a partir de un número de sprite indicado en (*n*).


# VR-BASIC--## ¿Qué es VR-BASIC?

# VR-BASIC

## ¿Qué es VR-BASIC?

VR-BASIC es un intérprete de comandos compatible con MSX-BASIC. Aporta nuevas
funcionalidades, pero sigue manteniendo la sencillez del BASIC original que
poseían las máquinas de los años 80-90.

#### La consola


# VR-BASIC--## SET PASSWORD

# VR-BASIC

## SET PASSWORD

Selecciona la contraseña del sistema.

Si hay una contraseña seleccionada, el ordenador pedirá la introducción de esa
contraseña al ser conectado. Si se introduce correctamente, el sistema
funcionará con normalidad, pero si se introduce erróneamente, el sistema no
pasará de ese punto y seguirá solicitando la introducción de la contraseña

# VR-BASIC--## CALL MNAME

# VR-BASIC

## CALL MNAME

Cambia el nombre de un fichero de la RAM-Disk.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## RESTORE

# VR-BASIC

## RESTORE

Especifica la instrucción DATA que será leída por una instrucción READ.

La instrucción RESTORE sirve para leer varias veces los mismos datos.

La ejecución de la instrucción RESTORE hace que la siguiente instrucción READ
empiece a leer datos a partir de la instrucción DATA con el número de línea más

# VR-BASIC--## CALL MKDIR

# VR-BASIC

## CALL MKDIR

Crea un directorio en una unidad de disco.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-SCRIPT--## Implements

# VR-SCRIPT

## Implements

Con la función **\_implements**, podemos saber si un objeto implementa una
función o si tiene alguna propiedad/constante que queramos averiguar. Usando el
ejemplo anterior:

```
_res = P._implements("Ladra"); // _res = 1

# VR-BASIC--## ON ERROR GOTO

# VR-BASIC

## ON ERROR GOTO

Transfiere la ejecución del programa al número de línea especificado cuando
ocurre un error.

Sirve para evitar la interrupción de la ejecución del programa causada por un
error durante la ejecución. Cuando surge un error después de la declaración de
ON ERROR GOTO, la ejecución se transferirá al número de línea especificado

# VR-BASIC--## CVI/CVS/CVD

# VR-BASIC

## CVI/CVS/CVD

Convierten una cadena de caracteres en un dato numérico.

En los ficheros de acceso aleatorio de disco, los datos numéricos se convierten
en cadenas de caracteres y se almacenan así. Esta conversión está a cargo de las
funciones MKI$, MKS$ y MKD$, y para hacer lo contrario están las funciones
CVI, CVS y CVD: convierten las cadenas de caracteres leídas de ficheros de

# VR-BASIC--## CALL TTSSET

# VR-BASIC

## CALL TTSSET

### Versión

MSXVR

### Formato


# VR-BASIC--## ON GOSUB

# VR-BASIC

## ON GOSUB

Bifurca la ejecución de un programa a las subrutinas que comienzan por los
números de línea especificados, dependiendo del valor de la expresión.

**Valor de la expresión y resultado de la ejecución**

Cuando el valor de la expresión no es un entero, ignora las cifras que siguen al

# VR-BASIC--## CALL TEMPER

# VR-BASIC

## CALL TEMPER

Establece el temperamento para el sonido FM.

Este parámetro afecta al tono de los sonidos y determina la proporción utilizada
para dividir una octava en 12 sonidos. Los temperamentos clásicos provistos son
compatibles con la música clásica.


# VR-BASIC--## CLS

# VR-BASIC

## CLS

Limpia la pantalla. En el modo gráfico, el color del fondo cambia ejecutando CLS
después de la instrucción COLOR.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR

# VR-BASIC--## LOC

# VR-BASIC

## LOC

Devuelve la posición del registro actual en el fichero.

Cuando se aplica esta función a un fichero secuencial, ofrece el número de
registros leídos o escritos. En fichero secuenciales, la longitud de un registro
es 256 bytes.


# VR-BASIC--## Lista de comandos y funciones

# VR-BASIC

## Lista de comandos y funciones

A continuación, se irán detallando los diferentes comandos y funciones
disponibles en VR-BASIC. En todos ellos veremos:

| NOMBRE | La cadena de texto que hace referencia al comando que los invoca. |
|------------|------------------------------------------------------------------------------------------------|
| COMENTARIO | Breve explicación del comportamiento del comando y qué es lo que hace. |

# VR-SCRIPT--## Creación y borrado de instancias

# VR-SCRIPT

## Creación y borrado de instancias

Para crear instancias de objetos con VR-SCRIPT se utilizan las palabras
reservadas **new** (para la creación) y **delete** (para liberar recursos).

Podemos usar **new** de las siguientes formas:

```

# VR-BASIC--## ERROR

# VR-BASIC

## ERROR

Simula el error a partir de su número o define un número de error.

### Versión

MSX, MSX2, MSX2+, MSXturboR, MSXVR


# VR-BASIC--## CALL DEBUG

# VR-BASIC

## CALL DEBUG

Invoca el depurador. En el caso de que no haya un listado en memoria, el comando
no hará nada.

### Versión

MSXVR

# VR-DOS--## KILL

# VR-DOS

## KILL

```
KILL [/PID id]
```

Muestra la lista de procesos en marcha y además permite eliminarlos.


# Funciones disponibles en Stage.pi--## Notificaciones

# Funciones disponibles en Stage.pi

## Notificaciones
```
function OnSetCurAction(_button, _butId)
function OnCheckAction(_action)
function OnAction(_action, _item)
function OnSetCurItem(_button, _butId)
function OnCheckItem(_item)
function OnWaitPressTest()

# VR-BASIC--## Gráficos

# VR-BASIC

## Gráficos

### Comandos VR-BASIC

Los comandos relacionados con los gráficos en VR-BASIC son:

| Comando | Función |
|----------------|---------------------------------------------------------------------------------------|

# VR-BASIC--## LINE INPUT

# VR-BASIC

## LINE INPUT

Da entrada desde el teclado a una cadena de hasta 254 caracteres, en forma de
variable de cadena.

Considera los códigos ASCII 13 (ENTER) como separación del dato, y asigna una
cadena de caracteres introducida por el teclado a una variable. Cuando en una
cadena de caracteres se incluye una coma, la asigna como un carácter más de la

# VR-BASIC--## Comentar código

# VR-BASIC

## Comentar código

Llega un momento en el que las dimensiones de nuestro programa serán
considerables y su número de líneas elevado. Habrá multitud de rutinas y zonas
de código, por lo que será necesario ayudar a la vista y memoria del
programador. Afortunadamente, el lenguaje de programación VR-BASIC dispone de la
opción de agregar comentarios. La instrucción se denomina **REM** y la forma de
usarla es como la del siguiente ejemplo:

# VR-BASIC--## SPC

# VR-BASIC

## SPC

Devuelve un número determinado de espacios. Esta función solo se puede utilizar
en instrucciones PRINT y LPRINT.

Cuando N no es un valor entero, no se tienen en cuenta las cifras siguientes a
la coma decimal.


# VR-DOS--## DISKCOPY

# VR-DOS

## DISKCOPY

```
DISKCOPY source: dest: [/X]
```

Copia un disco a otro.


# VR-BASIC--## CALL GLOBJECT

# VR-BASIC

## CALL GLOBJECT

Convierte los valores devueltos por GLNEW compatible con el BASIC a identificadores de objetos compatibles con la librería GL.
Siempre que se haya de pasar un objeto GL como párametro, por ejemplo en una llamada _GLCALL se tendrá que usar esta función.

### Versión

MSXVR

# MSXVR-[gimmick:themechooser](Choose theme)-[gimmick:theme](cerulean)

# MSXVR
[gimmick:themechooser](Choose theme)
[gimmick:theme](cerulean)