Rookie drive NX

Rookie drive NX contiene tres drivers en la ROM

  • Rookie drive 720 driver -> Emulación de disquetes basado en MSXDOS 1.0  (ideal para ordenadores MSX1)
  • Rookie drive Nextor driver   -> Con sistema operativo Nextor (necesita mínimo 128K, normalmente para MSX2)
  • Rookie Drive FDD BIOS -> Controladora de disqueteras USB compatibles con protocolo UFI (desarrollado por Konamiman)

Boot loader

Al iniciar, Rookie drive de intentará detectar la presencia de disquetera USB con protocolo UFI, en caso afirmativo el sistema cargará automáticamente el driver de disquetera, de lo contrario, se inicia automáticamente un código que va a detectar el tipo de MSX que tenemos, si detecta MSX1 lanzará la ROM de Rookie drive 720 (emulador de disquetera), si detecta MSX2 lanzará la versión con Nextor.

En el momento del arranque podemos «forzar», la carga de la versión de emulación de disquetes pulsando «7 o D en las nuevas versiones» (de 720kb) o bien la versión de Nextor pulsando «N».

Recovery

Gracias al duro trabajo de Víctor Martínez, Rookie drive incorporta en su Rom una utilidad que permite actualizar su propio Firmware a versiones más modernas.

Para acceder a la utilidad Recovery basta con pulsar CTRL+R durante el arranque.

Las primeras versiones del firmware no incluyen esta opción, pero pueden ser igualmente actualizadas utilizando el fichero RECOVERY.DSK que se incluye dentro del paquete de cada nuevo firmware, para obtener la última versión del firmware accede a la página de descargas

Este utilidad también permite cargar y borrar el contenido del DiskROM (que es utilizado desde el driver de Nextor), está disponible para descarga el DiskROM con SofaRun v3

Rookie Drive FDD BIOS v1.0*

Este nuevo driver ha sido desarrollado por Konamiman, y convierte a Rookie drive en una controladora de disqueteras USB. Las diqueteras deben cumplir con el protocolor UFI, y deben ser fieles a dicho protocolo, de lo contrario no funcionarán.

Utilizar una disquetera compatible UFI con Rookie drive es tan fácil como conectarla a través del puerto USB del cartucho y arrancar el MSX, el boot loader detectará la disquetera y ejecutará el driver de disquetera.

*Debido a las diferencias en las implementaciones del protocolo UFI de las diferentes disqueteras, no se garantiza su funcionamiento.

Rookie drive Nextor driver v1.1

Este es el driver para el sistema operativo Nextor,  “Nextor is a disk operating system for MSX computers. It is actually an enhanced version of MSX-DOS, with which it is 100% compatible, and it identifies itself as MSX-DOS 2.31 to MSX-DOS aware applications.” 

Con este driver se incluye un DiskROm de 320K, que puede ser utilizado para alojar los ficheros del sistema Nextor, así como utilidades de manejo de ficheros, como Multimente o SofaRun

Más información sobre Nextor en la página web de Konamiman: http://www.konamiman.com/msx/msx-e.html#nextor

Muy Importante, nextor soporta FAT12 y FAT16, por lo que si intentas usar un dispositivo en FAT32/exFAT no funcionará, (en unidades con SofaRun en el diskROM provoca un bloqueo con pantalla en negro), si te quedas bloqueado en la pantalla en negro, reinicia el MSX, cuando sale en pantalla NEXTOR.SYS pulsar CTRL+STOP, aparecerá  el mensaje «Terminate batch file (Y/N)?», le das a «Y», entonces ya puedes llamar al «BASIC», y desde allí ejecutar _fdisk, que te permitirá borrar las particiones del pendrive y crear nuevas en FAT16 (ojo con borrar, que borra todo!).

Rookie drive 720 v1.3.8 (emulación de disquetera)

Debido a las limitaciones del chip utilizado CH376s y a la filosofía de funcionamiento de discos virtuales, Rookie drive únicamente soporta un «disco» a la vez, de momento no está soportado el uso de varias imágenes de disco  de forma simultánea.

Funcionalidad AUTOEXEC.DSK

Al arrancar este driver el sistema verificará la existencia del fichero AUTOEXEC.DSK, en caso afirmativo procederá  a tratarlo como imagen «insertada» por defecto, obviando la configuración existente en USXMSX.INI

Listado del directorio raíz USB

Utilizando el comando:

call usbfiles

obtendremos la lista de ficheros contenidos en el directorio raíz del dispositivo USB, esto nos permitirá ver los ficheros de imagen contenidos en el dispositivo USB para luego cargarlos mediante el comando insertdisk.

El comando usbfiles «expulsa» el disco actual, así que es necesario usar «call mount» (para cargar el disco anterior) o «call insertdisk….» para cargar un nuevo disco.

Cambiar directorio activo

Con este comando podemos cambiar el directorio activo dentro del dispositivo USB:

call usbcd("directorio")

Se puede regresar al directorio anterior utilizando:

call usbcd("..")

Esta función está disponible desde la versión 1.3.5

Cargar Rom 8/16/32K

Carga  un fichero .ROM a la ram  y lanza su ejecución

call loadrom("nombre de fichero")

Este comando carga el fichero .ROM en la ram, es posible que al reiniciar el ordenador se siga ejecutanto el juego o programa que hemos cargado anteriormente, dado que al hacer un reset se preserva el contenido de la memoria RAM (en algunos ordenadores), por tanto tendremos que apagar físicamente el ordenador, dejarlo reposar unos segundos e iniciarlo de nuevo para volver a su estado normal.

Esta función está disponible desde la versión 1.3.4

Insertar disco

Simula la «inserción» de un nuevo disco, mediante una instrucción call se puede especificar la imagen de disco que se va a utilizar. Actualmente se soportan imágenes de disco de hasta 720 kbytes, las pruebas realizadas con 1.44 Mbytes de momento no han sido funcionales. :-(. El formato del comando call es el siguiente:

call insertdisk("nombre de imagen")

Si el comando se ejecuta correctamente podremos acceder al listado de archivos mediante la instrucción «files», y trabajar con normalidad utilizando los comandos típicos, como: run, save, bload, etc…

Para crear una imagen de disco desde el PC podemos utilizar Disk-Manager, este programa es muy práctico a la hora de crear nuevos DSK y añadir ficheros. (http://www.lexlechz.at/en/software/DiskMgr.html)

Re-inserción automática del último disco utilizado

Tras el reinicio se volverá a insertar «automáticamente» la última imagen de disco que se utilizó, esta acción se puede cancelar momentáneamente pulsando la tecla ESC durante la inicialización del hardware. El funcionamiento interno contempla la creación del fichero USBMSX.INI, dentro del cual se guarda el nombre de la imagen que se tiene que cargar, de manera que es persistente tanto al reset cómo al apagado de la máquina.

Creación de una nueva imágen

Este comando se encuentra en fase experimental, dado que necesita ejecutar internamente el comando format, el cual no se ha desarrollado completamente. Actualmente, si ejecutamos este comando obtendremos una imagen de disco de 720kbytes llena de caracteres 0xff.

Para crear una nueva imagen basta con lanzar este comando:

call createdisk("nombre de imagen")
 Reinicio de sistema

Con la orden:

call reboot

Conseguiremos reiniciar la máquina sin necesidad de botón de reset, o de cortar la corriente. Este comando es útil cuando insertamos una imagen de disco que necesita ser arrancada directamente para funcionar, o bien cuando la imagen contiene un disco MSX-DOS y no nos funciona el comando «call system».

Format

Da formato al disco virtual que se encuentre insertado.

call format

*Una vez que finalice el formato, debe usar el comando insertdisk para operar con la nueva imagen de disco creada.

Eject

Esta «extrae» el disquete virtual, y borra el fichero USBMSX.INI

call eject
Soporte Multi-disco

Se pueden usar juegos multi-disco, existen dos modos de funcionamiento,

  1. Múltiples discos correlativos: el juego está dividido en varios ficheros, nombrados de la siguiente manera: JUEGO.DS1, JUEGO.DS2, JUEGO.DS3… etc
  2. Discos concatenados: un único fichero que contiene las imágenes de los discos una detrás de otra.

El funcionamiento es el siguiente, «insertaremos» la imagen del primer disco, y cuando el juego nos pida el cambio de disco entonces: mantendremos pulsado el número de disco que hay que insertar y pulsaremos la tecla que el programa nos indique (normalmente la barra espaciadora) y eso es todo!