Bienvenidos a la
Página MSX de Konamiman
Repositorio de software MSX en GitHub
e-mail:
Tema de la página amablemente diseñado por Erich
Página pesimizada para cualquier navegador y cualquier resolución
Bienvenido, osado visitante. En esta página encontrarás mis producciones de software para ordenadores MSX (bueno, no todas, pero sí las que valen la pena), útiles principalmente para los programadores de dicho sistema obsoleto. Y todo es por supuesto gratis (freeware, hazloquequierasconelloware, etc), ya que como dijo el gran Linus Torvalds:
"El software es como el sexo: es mucho mejor cuando es gratis"
Así que ya sabes, arrambla con todo lo que quieras y para cualquier comentario, sugerencia o queja escríbeme a la dirección de e-mail que hay al principio de la página.
Repositorio de software MSX
Si te gusta leer código fuente (especialmente ensamblador de Z80), échale un ojo a mi repositorio de software MSX en GitHub. Contiene todos los ficheros de código fuente disponibles en esta página, más algunos no disponibles aquí (por ejemplo las fuentes de NestorBASIC). Todo convenientemente organizado en un repositorio Git.
Muchos de los ficheros del repositorio tienen los comentarios e identificadores en español. Se agradecerá cualquier aporte para ayudar a traducirlos al inglés.
¡Donaciones!
¿Te gusta el software disponible en esta página y en el repositorio? ¿Qué te parecería entonces donar unos eurillos a su autor (es decir yo mismo)? Puedes hacerlo fácilmente usando PayPal (mediante el botón Donar que hay más abajo), usando Skrill (especificando mi dirección de email habitual como la dirección del destinatario) o vía Flattr o Patreon.
Índice
Estos son los programas que puedes encontrar en esta página:
- Nextor: Una versión mejorada de MSX-DOS, el sisma operativo de disco "oficial" para MSX. Ofrece soporte nativo para FAT16, un sistema mejorado de drivers de dispositivo y gestión de partitiones, entre otras cosas.
- NestorBASIC: Imprescindible extensión del BASIC que permite cosas como el uso de toda la memoria mapeada disponible para almacenar datos o rutinas en código máquina, acceso a todas las funciones de disco, o reproducción de músicas MoonBlaster y efectos de sonido PSG desde el BASIC o el Turbo-BASIC.
- Extensiones para NestorBASIC: Rutinas externas en código máquina que añaden funcionalidades nuevas a NestorBASIC.
- NestorPreTer: Pre-intérprete de BASIC. Ahora puedes escribir tus programas BASIC desde un editor de textos poniendo todos los comentarios e indentaciones que quieras, sin usar números de línea e incluso usando macros. NestorPreTer convertirá tu programa "fuente" en un programa ejecutable MSX-BASIC sin comentarios, sin espacios, con los números de línea generados automáticamente y con las macros expandidas.
- InterNestor Lite: Pila TCP/IP que funciona en MSX2/2+/TR con al menos 128K de memoria mapeada. Soporta dos tipos de hardware: puerto serie (RS232) con modem, y la UNAPI Ethernet.
- Software de red: Diversas aplicaciones que te permiten conectar tu MSX a Internet, mediante el uso de una implementación de la especificación UNAPI TCP/IP, como por ejemplo InterNestor Lite o la tarjeta DenYoNet.
- InterNestor Suite:El "abuelo" de InterNestor Lite, es otra pila TCP/IP más compleja, ahora discontinuada.
- ObsoNET: ObsoNET es una tarjeta Ethernet para ordenadores MSX, diseñada y anteriormente fabricada por Daniel Berdugo.
- DenYoNet: DenYoNet es una tarjeta Ethernet para ordenadores MSX, creada por Dennis Koller y Jos van den Biggelaar, y producida por Sunrise for MSX.
- NestorMan: Gestor de memoria dinámica residente para MSX-DOS 2. Con NestorMan puedes reservar bloques de memoria de entre 1 byte y 16K, lo cual brinda más flexibilidad que el mecanismo de reserva de segmentos enteros del DOS 2. Además, permite crear y gestionar listas doblemente encadenadas.
- MegaSCSI: Utilidades varias para los usuarios de esta fantástica controladora SCSI.
- LPE-Z380: EPROM versión 3.0 y algunas utilidades para la tarjeta Z380 de Leonardo Padial .
- SDCC: Librerías C para usar con el compilador SDCC.
- Utilidades para Sunrise IDE: Herramientas útiles para los usuarios de Sunrise IDE y dispositivos compatibles.
- Miscelánea: Utilidades surtidas.
Además, también está disponible la siguiente información:
- MSX2 Technical Handbook: Manual técnico oficial del estándar MSX2, convertido a ficheros de texto a mano por el menda.
- Easymbler: Curso de ensamblador fácil y ameno (bueno, más bien sectario) escrito por un servidor.
- Proyecto InterNestor Suite: InterNestor Suite fue mi proyecto de final de carrera (ingeniería de telecos). Aquí puedes descargar la memoria del proyecto que entregué a los profesores y la presentación que hice durante el examen.
- Especificación MSX-UNAPI: Humilde propuesta de estandar para la definición e implementación de nuevos APIs (Application Program Interface) para MSX.
- Obsolete Procedure Call: Un protocolo diseñado para acceder remotamente a un ordenador controlador por un procesador Z80.
Nota: Algunos de los ficheros disponibles para descarga en esta página están comprimidos en formato LZH. Puedes descomprimir estos ficheros desde MSX-DOS usando la utilidad PMEXT, disponible en la sección 'miscelánea'.
Nextor
Nextor es un sistema operativo de disco para ordenadores MSX. En realidad se trata de una versión mejorada de MSX-DOS, con el que es compatible al 100%; de hecho se identifica como MSX-DOS 2.31 a las aplicaciones compatibles con MSX-DOS.
Las principales características que Nextor añade a MSX-DOS son:
- Soporte nativo para el sistema de ficheros FAT16. Nextor puede usar partitiones FAT16 sin tener que instalar ningún parche ni otro tipo de software adicional. Esto aumenta el tamaño máximo de los sistemas de ficheros usables de los 32MB de FAT12 a 4GB. Además, el sistema puede arrancar desde un dispositivo con sistema de ficheros FAT16.
- Nuevo y completamente documentado sistema de drivers de dispositivo. Los desarrolladores de software controlador de dispositivos de almacenamiento ya no necesitan hacer ingeniería inversa de la ROM con el núcleo del sistema operativo (o seguir los pasos de alguien que lo haya hecho en el pasado) para generar un núcleo con el código del driver personalizado incrustado. Nextor proporciona un sistema de drivers mejorado y los pasos necesarios para incrustar el driver junto al núcleo en una ROM están completamente documentados. Además, los drivers de Nextor proporcionan puntos de extensibilidad adicionales (por ejemplo, para comandos "CALL" del BASIC o para la BIOS extendida).
- Gestión de la asignación de dispositivos y particiones a unidades. Si se usa el nuevo sistema de drivers diseñado para Nextor, es el propio sistema operativo el encargado de gestionar la asignación de unidades lógicas a dispositivos de almacenamiento, incluyendo la selección de particiones. Los drivers de Nextor simplemente enumeran los dispositivos disponibles y proporcionan acceso a los sectores absolutos de los dispositivos.
- Herramienta de particionamiento incorporada. Basta ir al BASIC e invocar el comando CALL FDISK para crear particiones en cualquier dispositivo controlado por un driver de Nextor.
- Núcleo de MSX-DOS 1 incluído. El núcleo de Nextor arrancará en modo MSX-DOS 1 cuando el ordenador no tenga memoria mapeada, cuando se pulse "1" durante el arranque o cuando se detecte un sector de arranque de MSX-DOS 1 en el dispositivo de arranque. No es necesario tener un núcleo de MSX-DOS 1 en otro slot (por ejemplo en un controlador de disketera), y es posible usar particiones de hasta 16MB en dispositivos controlados por cualquier driver de Nextor.
- Funciona en MSX1. Nextor funciona en todos los ordenadores MSX, incluyendo MSX1. Por supuesto, es necesario disponer de memoria mapeada, pero aún sin ella los ordenadores MSX1 pueden usar Nextor en modo MSX-DOS 1.
- Soporte para ficheros de imágen de disco. A partir de la versión 2.1 Nextor permite montar ficheros de imágen de disco en letras de unidad, permitiendo así gestionar su contenido fácilmente. Además es posible arrancar el ordenador en modo emulación de diskettes, en el que se usan ficheros imágen de disco como si fueran dispositivos de almacenamiento; esto permite jugar a juegos antiguos que sólo funcionan en modo MSX-DOS 1 y/o cargan datos accediendo directamente a los sectores del disco (no hay sistema de ficheros en los discos del juego).
Nextor ofrece también otras características interesantes, consulta el manual de usuario de Nextor para más detalles.
Nota: Si has usado FDISK en Nextor 2.0.2 o anterior, o en Nextor 2.1 Alpha 1, échale un vistazo a la utilidad Volume Size Fix Tool.
La versión estable actual de Nextor es la 2.1.0, disponible como un release en GitHub. Si quieres probarlo, esto es lo que necesitarás:
- Nextor Getting Started Guide: Una guía paso a paso para entender las características que Nextor añade a MSX-DOS. Incluye los pasos necesarios para configurar blueMSX en caso de que quieras usar Nextor con dicho emulador.
- Nextor User Manual: La documentación necesaria para empezar a usar Nextor.
- Núcleo de Nextor: Un fichero ROM que contiene el núcleo de Nextor con un driver de dispositivo incrustado. Hay cuatro versiones para elegir:
- ROM autónoma con mapeador ASCII 16: Esta versión tiene un driver vacío que no controla ningún dispositivo. Está pensada para ser grabada en un cartucho flash y ser usada junto con dispositivos de almacenamiento controlados por un núcleo de MSX-DOS (como un controlador IDE o SCSI, un controlador de tarjetas multimedia, o un controlador de disketera) situado en otro slot. Recuerda que algunas características de Nextor sólo están disponibles para drivers creados específicamente para Nextor, y por tanto no podrán ser usadas con esta versión del núcleo.
- ROM autónoma con mapeador ASCII 8: Igual que la anterior, pero con un tipo de mapeador de ROM distinto.
- Sunrise IDE: Esta versión contiene un driver para el controlador IDE de Sunrise, así como el mapeador de ROM apropiado. Está pensado para ser grabado directamente en la ROM del controlador Sunrise IDE o de controladores compatibles. Véase la sección Utilidades para Sunrise IDE.
- Sunrise IDE (emuladores): Como el anterior, pero usa un driver más antiguo que funciona mejor con emuladores (por alguna razón el driver más moderno no reconoce el dispositivo master en emuladores).
- MegaFlashROM SCC+ SD: Esta versión contiene un driver para el controlador MegaFlashROM SCC+ SD, así como el mapeador de ROM apropiado. Está pensado para ser grabado directamente como kernel SD del controlador. Las siguientes versiones están disponibles (la diferencia entre las versiones para 1 slot SD y 2 slots SD es el número de unidades que Nextor reserva al arrancar):
- Versión normal, para grabar con la herramienta OPFXSD.
- Para MegaFlashROM con 1 slot SD
- Para MegaFlashROM con 2 slots SD
- Versión recovery, para grabar con el "modo recovery" incluido en el cartucho.
- Para MegaFlashROM con 1 slot SD
- Para MegaFlashROM con 2 slots SD
-
NEXTOR.SYS: El fichero NEXTOR.SYS reemplaza a MSXDOS2.SYS
y es necesario para poder arrancar en el prompt del DOS. Hay dos versiones disponibles:
- Versión completa: Contiene la parte en memoria de los errores del intérprete de comandos (como "Abort, Retry, Ignore") en inglés y en japonés (estos últimos se muestran cuando el modo kanji está activo).
- Versión reducida: Contiene la parte en memoria de los errores del intérprete de comandos sólo en inglés. Usar esta versión en vez de la versión completa supone un ahorro de 256 bytes de TPA en tiempo de ejecución.
- COMMAND2.COM: Además de NEXTOR.SYS, es necesario un intérprete de comandos para poder arrancar en el prompt del DOS. No se ha creado un intérprete específico para Nextor; en vez de eso, se usa el mismo COMMAND2.COM de MSX-DOS 2, así que puedes usar el que usabas hasta ahora. Se recomienda el COMMAND 2.44 de TNI, tiene muchas características interesantes.
- Herramientas externas: Todas las nuevas funcionalidades de Nextor controlables por el usuario se controlan con herramientas externas (ficheros .COM). Hay dos opciones para obtenerlas:
- TOOLS.ZIP: Todas las herramientas de línea de comandos comprimidas en un fichero ZIP.
- TOOLS.DSK.ZIP: Una imágen de diskete que contiene todas las utilidades más NEXTOR.SYS y COMMAND2.COM (y también MSXDOS.SYS y COMMAND.COM, para arrancar en modo MSX-DOS 1). Útil para usar Nextor con un emulador de MSX.
- Volume Size Fix Tool: Si has particionado un dispositivo usando FDISK en Nextor 2.0.2 o anterior, o en Nextor 2.1 Alpha 1, es posible que las particiones generadas excedan el número máximo permitido de clusters (definido por el estándar FAT) por uno o dos clusters, debido a un fallo en FDISK que ha sido corregido en la versión 2.0.3. Esta herramienta permite corregir estas particiones mediante una pequeña reducción de su tamaño. [Código fuente en C]
Si eres programador, también te puede interesar lo siguiente:
- Nextor Programmers Reference: Explica las nuevas características que Nextor ofrece a los programadores.
- Nextor Driver Development Guide: Explica cómo crear un driver de dispositivos de almacenamiento y cómo incrustarlo en el núcleo de Nextor.
- Fichero base del núcleo de Nextor: Núcleo de Nextor sin ningún driver incrustado. Este fichero es necesario para crear una ROM de Nextor completa, tal como se explica en la guía de desarrollo de drivers.
- DRIVER.ASM: Código fuente de un driver vacío (que no controla ningún dispositivo), se puede usar como esqueleto para desarrollar un driver personalizado.
- Ficheros de mapeador: Un kernel de Nextor completo debe tener código de mapeador, es decir, una rutina que controla el cambio de bancos de ROM dependiendo del tipo de hardware en el que está ejecutándose, tal como se explica en la guía de desarrollo de drivers. Para generar un kernel con mapeador ASCII8 con MKNEXROM.EXE debe usarse Mapper.ASCII8.bin (en vez de Mapper.ASCII8.noheader.bin).
- MKNEXROM.EXE: Una utilidad de línea de comandos para ordenadores con Windows que puede usarse para generar un núcleo de Nextor completo, con driver incrustado. [Código fuente en C]
NestorBASIC
NestorBASIC es una extensión del BASIC para ordenadores MSX2/2+/TR con al menos 128K de memoria mapeada. Es compatible con el Turbo-BASIC (de hecho lo incluye y lo carga automáticamente cuando es instalado) y proporciona la siguiente funcionalidad:
- Acceso a toda la memoria mapeada del ordenador (a toda la memoria libre en caso de tener DOS 2), hasta 4 Mb.
- Acceso a toda la VRAM,con intercambio de bloques de datos entre ésta y RAM.
- Almacenamiento de diversos programas BASIC en la memoria mapeada, con posibilidad de pasar de uno a otro sin perder las variables.
- Acceso a ficheros de disco y acceso directo a sectores, con lectura/escritura directamente a/de la memoria mapeada y VRAM. Búsqueda de ficheros, gestión de directorios.
- Compresión/descompresión de gráficos.
- Reproducción de música MoonBlaster. Carga de samplekits y wavekits.
- Reproducción de efectos de sonido PSG.
- Ejecución de rutinas en código máquina, de la BIOS o bien contenidas en un segmento o en la memoria principal del BASIC (incluyendo la zona de trabajo del sistema), directamente o por interrupciones.
- Ejecución de funciones de NestorMan y rutinas de InterNestor Suite e InterNestor Lite.
NestorBASIC consta de un único fichero que se carga con un simple BLOAD. Se instala en un segmento de RAM oculto y sólo usa unos 500 bytes de la memoria principal del BASIC. Sus funciones se invocan a través de un USR y una matriz de parámetros, por lo que pueden ser usadas desde turbo-bloques. El compilador de Turbo-BASIC está incluido en el fichero de NestorBASIC, ambos se cargan a la vez.
Descargables de NestorBASIC:
- NBASIC.BIN: NestorBASIC 1.11 , con un simple BLOAD"NBASIC.BIN",R ya lo tienes instalado.
- NBAS111S.TXT: Manual del usuario en español.
- NBAS111E.TXT: Manual del usuario en inglés.
- NBVERS-S.TXT: Información sobre versiones en español.
- NBVERS-E.TXT: Información sobre versiones en inglés.
- SAMPLES.LZH: Un par de ejemplos de búsqueda de ficheros y reproducción MoonBlaster.
- TCPCON.LZH: Ejemplo de uso de InterNestor Suite e InterNestor Lite desde NestorBASIC. TCP Console es un programa que abre una conexión TCP, envía a la misma todo lo que el usuario teclea e imprime en pantalla todo lo que recibe de la misma. Se incluyen los códigos "fuente" en formato NestorPreTer y los programas ejecutables MSX-BASIC (TCPCON-S para InterNestor Suite y TCPCON-L para InterNestor Lite).
- NPLAYER.LZH: NestorPlayer 1.0, reproductor de músicas MoonBlaster FM y Wave programado en NestorBASIC. Permite navegar por todas las unidades de disco y directorios en busca de ficheros de música, samplekits y wavekits.
- SEE.LZH: PEditor de efectos de sonido PSG desarrollado por Fuzzy Logic. NestorBASIC puede reproducir estos efectos.
Extensiones para NestorBASIC
Una de las funcionalidades de NestorBASIC consiste en la posibilidad de ejecutar rutinas en código máquina previamente cargadas en cualquier segmento de memoria. Esto permite desarrollar extensiones para ejecutar tareas que son imposibles usando sólo BASIC o funciones de NestorBASIC. En esta sección están las extensiones para NestorBASIC que he realizado, todas incluyen un manual de uso y un ejemplo.
- CABROPL4.LZH: Permite el control directo del chip de sonido OPL4 contenido en el MonSound, sin necesidad de usar el driver de MoonBlaster.
- NMIF.LZH: NestorMIF permite descomprimir ficheros gráficos en formato MIF previamente cargados en memoria mapeada.
- NCADS.LZH: NestorCadenas. Esta extensión es útil para programas que contienen muchas cadenas de texto. Ahora puedes almacenar todas las cadenas en un fichero de texto, cargar dicho fichero en memoria mapeada, y usando NestorCadenas recuperarlas a medida que las necesites. Puedes recuperarlas secuencialmente (en el orden en que se hallan en el fichero) o aleatoriamente (identificando las cadenas con un nombre). La ventaja es evidente: al guardar las cadenas en memoria mapeada, dispones de más memoria principal para el programa BASIC.
NestorPreTer
Al escribir programas en el entorno MSX-BASIC nos encontramos con tres problemas. Primero, los comentarios que añadimos al código consumen parte de la escasa memoria disponible para el programa. Segundo, los nombres de las variables sólo pueden tener dos carácteres, lo cual no aporta mucha legibilidad al programa. Y tercero, los saltos y llamadas a subrutinas se refieren a números de línea, lo cual tampoco ayuda a que el programa sea inteligible.
NestorPreTer, que funciona en MSX2/2+/TR con al menos 128K de memoria mapeada, ayuda a resolver estos problemas. Se trata de un pre-intérprete de BASIC, es decir, una utilidad que transforma un fichero de texto en un programa ejecutable MSX-BASIC; dicho fichero de texto lo puedes generar con un editor de textos, o bien desde el propio entorno MSX-BASIC, guardando el programa en formato ASCII (SAVE"PROGRAMA.BAS",A). El proceso que realiza NestorPreTer sobre este fichero "fuente" es el siguiente:
- Eliminación de los comentarios y de los espacios en blanco. Puedes usar en tu "fuente" todos los comentarios y toda la indentación que quieras, la memoria usada realmente por el programa será únicamente la necesaria para albergar el código.
- Generación de números de línea. No es necesario que incluyas números de línea en tu listado, puesto que NestorPreTer se encargará de generarlas. Para identificar líneas concretas a fin de poder usar instrucciones de salto, puedes usar etiquetas alfanuméricas.
- Expansión de macros. Puedes definir macros, es decir, porciones de texto con un nombre específico (similar a la directiva DEFINE del lenguaje C). Esto permite simular nombres largos para variables, por ejemplo puedes incluir "@DEFINE NOMBRE_FICHERO F$" al principio del texto, y posteriormente "INPUT @NOMBRE_FICHERO" como parte del código..
Descargables de NestorPreTer:
- NPR.LZH: NestorPreTer 0.3 , fichero de programa.
- NPRESP.TXT: Manual de uso en español.
- NPRENG.TXT: Manual de uso en inglés.
- NPREV-S.TXT: Información sobre versiones en español.
- NPREV-E.TXT: Información sobre versiones en inglés.
- NPRNB.LZH: Ejemplo del uso conjunto de NestorBASIC y NestorPreTer.
InterNestor Suite
InterNestor Suite es una pila de protocolos TCP/IP, más PPP, para ordenadores MSX2/2+/TR con MSX-DOS 2, al menos 256K de memoria mapeada e interfaz RS232. Permite la conexión a internet mediante un modem y una cuenta de acceso en cualquier ISP, o bien la conexión a otro equipo mediante cable null-modem. Se instala como un TSR, por lo que cualquier aplicación puede hacer uso de sus rutinas para acceder a internet. InterNestor Suite consta de:
- Programa instalador, de los diversos módulos que componen la pila.
- Cuatro módulos de código: módulo físico (RS232), módulo de nivel de enlace (PPP), módulo de nivel de red (IP) y módulo de nivel de transporte (TCP).
- Marcador telefónico para conexiones vía modem.
- Programas de control de la conexión PPP y de las conexiones TCP.
- Cuatro aplicaciones sencillas: n cliente de PING , un resolver (cliente de acceso a servidores de nombres, por ejemplo para traducir nombres de sitios a direcciones IP), un cliente de telnet simple, y un cliente de FTP completo.
- Manual de uso y programación, en inglés. Este manual explica cómo instalar y usar InterNestor Suite, y proporciona toda la información necesaria para realizar aplicaciones basadas en internet.
Atención: InterNestor Suite necesita NestorMan para funcionar.
Descargables de InterNestor Suite:
- INS-V10.LZH: InterNestor Suite 1.0 , con todos los componentes mencionados antes más el driver Fossil para RS232 desarrollado por Erik Maas, necesario para el funcionamiento de la pila.
InterNestor Lite
InterNestor Lite es una pila TCP/IP que funciona en ordenadores MSX2/2+/TR con al menos 128K de memoria mapeada. Soporta dos tipos de hardware: puerto serie (RS232) con modem, y la UNAPI Ehternet
InterNestor Lite implementa la especificación UNAPI TCP/IP, por tanto puedes usarlo para ejecutar el software de la sección de aplicaciones de red.
Nota: InterNestor Lite necesita el ayudante de RAM UNAPI para funcionar, y a partir de la versión 2.1, también las rutinas de soporte del mapeador. Si usas MSX-DOS 2 o Nextor las rutinas de soporte del mapeador ya están integradas, y sólo necesitas instalar el ayudante de RAM usando RAMHELPR.COM. Si usas MSX-DOS 1 puedes instalar las rutinas de soporte del mapeador y el ayudante de RAM con MSR.COM.
Ver también: Cómo usar una RaspberriPi + stunnel para acceder a Internet via WiFi con hardware Ethernet.
- InterNestor Lite 2.0 para RS232: Permite conectar el MSX a Internet usando un modem y una cuenta en un ISP, o conectar a otro ordenador que entienda el protocolo PPP usando un cable null-modem. Necesita el driver Fossil.
- Driver Fossil para RS232: Debe ser instalado para poder usar la versión RS232 de InterNestor Lite.
- InterNestor Lite 2.3 para la UNAPI Ethernet: Permite conectar el MSX a Internet usando una tarjeta de red con una BIOS compatible con la UNAPI Ethernet (o usando cualquier otro software que sea compatible con la UNAPI Ethernet). Ver qué hay de nuevo en la v2.3.
- Código fuente de InterNestor Lite 2.3: Incluye documentación para usuarios y programadores: una guí de inicio rápida, referencia de las opciones de línea de comandos y de las opciones de configuración, y los feos detalles técnicos.
Software de red
Las aplicaciones de esta sección te permiten conectar tu MSX a Internet. Todas ellas necesitan una implementación de la especificación UNAPI TCP/IP para funcionar, como por ejemplo InterNestor Lite o la tarjeta DenYoNet.
Esta imágen de disco contiene InterNestor Lite y todas las aplicaciones listadas en esta sección. Puede resultar útil para probar las aplicaciones en un emulador de MSX con soporte para emulación de tarjeta de red, como blueMSX.
El código fuente de todas las aplicaciones está en la sección de aplicaciones de red del repositorio de software MSX de Konamiman. Algunas están en ensamblador (usando el ensamblador de MSX Compass, se pueden ensamblar con Sjasm 0.39h), y otras en C (usando el ensamblador cruzado SDCC).
- PING.COM: Cliente simple de PING 1.1. Envía una petición de PING automáticamente, y sólo envía más si se pulsa ENTER.
- TFTP.COM: Cliente/servidor TFTP 1.1. TFTP es una forma simple y directa de transferir archivos sueltos entre dos ordenadores. Ver qué hay de nuevo en la v1.1.
- TCPCON.COM: Cónsola TCP 1.1. Se trata de un cliente de Telnet simplificado, simplemente envía a la red lo que recibe por el teclado y envía a la pantalla lo que recibe por la red, ignorando los códigos de control del protocolo Telnet.
- FTP.COM: Cliente FTP 1.0. Cliente FTP basado en línea de comandos, requiere MSX-DOS 2 para funcionar. Los comandos para gestionar múltiples ficheros (MGET, MPUT y MDELETE) requieren NestorMan para funcionar. [Código fuente] (NOTA: Los comentarios en el código fuente de FTP.COM están mayoritariamente en español. Si alguien quiere tomarse el trabajo de traducirlos al inglés, gustosamente pondré aquí la versión traducida.)
- SNTP.COM: Cliente SNTP 1.2. Permite configurar el reloj del MSX consultando la fecha y hora a un servidor de tiempo. Hay una lista de servidores de tiempo públicos en la página NTP pool. Ver qué hay de nuevo en la v1.1.
- TWEETER.COM: MSX trivial tweeter 1.0. Permite enviar mensajes a Twitter desde el MSX.
- TWEETER.CHR: Mapa de carácteres CP850. Si este fichero se sitúa en el mismo directorio de TWEETER.COM, es posible incluir en los tweets carácteres especiales pertenecientes al juego CP850 (europeo occidental) tales como vocales acentuadas y ñ ¡ ¿. En los MSX japoneses se pueden generar estos carácteres usando NestorAcentos.
-
HGET.COM: Descargador de ficheros HTTP 1.3.
Una versión (muy) simplificada de la famosa herramienta WGET, permite descargar ficheros y recursos usando el
protocolo HTTP. Incluye soporte para autenticación básica HTTP y para continuar una descarga interrumpida.
Tiene un modo "interactivo" en el cual la URL del recurso a descargar se puede tomar de la salida a pantalla
de otro programa, usando canalizaciones (p. ej.
type url.txt | hget con
). La versión 1.1 corrige algunos fallos menores. Ver qué hay de nuevo en la v1.3. -
GETURL.COM: Extractor de URLs 1.0.
No es estrictamente una aplicación de red, pero puede ser útil si se usa junto con HGET. Esta aplicación
busca en el interior de un fichero de texto una línea con el formato
[urlname] url
, entonces envía la URL a la pantalla. Por ejemplo dado un fichero llamadourls.txt
que contiene la línea[knm] www.konamiman.com
, puedes ejecutargeturl urls.txt knm | hget con
como un equivalente dehget www.konamiman.com
. - MSXTDB.LZH: MSX trivial dropbox 1.1. Dropbox es un servicio de almacenamiento de ficheros online que ofrece tanto planes gratuitos como de pago (en el momento de escribir esto, se ofrece un plan gratuito de 2GB y dos planes de pago de 50GB y 100GB). MSX trivial dropbox es un conjunto de programas que permite gestionar, y subir/bajar ficheros a/desde, una cuenta de Dropbox desde un MSX. Se incluye un manual de usuario.
- OBSOSMB.COM: ObsoSMB 1.0. ObsoSMB permite exponer las unidades de disco del MSX como carpetas compartidas a ordenadores que ejecuten Microsoft Windows; esto se consigue usando SMB, un protocolo definido por Microsoft para compartir recursos en red. Así, es posible realizar cualquier operación sobre los ficheros y directorios expuestos (transferir, renombrar, crear, borrar, cambiar atributos) usando el explorador de Windows o cualquier otro gestor de archivos desde un PC. [Manual de usuario],
- OBSOFTP.COM: ObsoFTP 1.0. ObsoFTP convierte el MSX en un servidor FTP, permitiendo así transferir archivos entre el MSX y otros ordenadores. Se trata de una opción menos potente que ObsoSMB para compartir archivos, pero más interoperable dado que no requiere un cliente con Windows.
Las siguientes no son aplicaciones de Internet pero te resultarán útiles si te conectas a Internet con tu MSX:
- ETH.COM: Programa de control de Ethernet UNAPI 1.0. Te permite realizar diversas tareas de control en tu hardware Ethernet, como obtener o modificar (si está soportado) la dirección MAC, o reiniciar el hardware Ethernet. [Código fuente]
- TCPIP.COM: Programa de control de TCP/IP UNAPI 1.0. Permite realizar diversas tareas de control en implementaciones de UNAPI TCP/IP, como establecer manualmente las direcciones IP, o habilitar/deshabilitar la respuesta automática a peticiones de PING. [Código fuente]
NOTA: Si tienes una tarjeta ObsoNET, asegúrate de que tiene al menos la versión 1.1 de la BIOS, que implementa la especificación Ethernet UNAPI; de lo contrario no podrás usar InterNestor Lite con tu ObsoNET. Puedes descargar la BIOS más reciente en la sección de ObsoNET.
InterNestor Lite 1
Ver también el sitio del proyecto InterNestor Lite en SourceForge.net.
InterNestor Lite es una pila TCP/IP que funciona en ordenadores MSX2/2+/TR con al menos 128K de memoria mapeada. Soporta dos tipos de hardware: puerto serie (RS232) con modem, y la UNAPI Ehternet.
-
INL11.LZH: InterNestor Lite 1.1.1. Incluye las versiones serie y Ethernet, así como el driver Fossil (necesario para la versión serie) y manual de uso y programación en español y en inglés. Dispone de soporte para UDP y TCP, así como para el envío y la recepción de datagramas en bruto, y tiene resolver incorporado. Incluye un cliente de PING sencillo, un cliente/servidor de TFTP, una cónsola TCP -cliente de Telnet simplificado- y un cliente de Telnet con soporte parcial para códigos de escape VT100 (las tres primeras aplicaciones incluyen el código fuente).
NOTA: Si tienes una tarjeta ObsoNET, asegúrate de que tiene al menos la versión 1.1 de la BIOS, que implementa la especificación Ethernet UNAPI; de lo contrario no podrás usar InterNestor Lite con tu ObsoNET. Puedes descargar la BIOS más reciente en la sección de ObsoNET.
- FTP.COM: Cliente de FTP para InterNestor Lite 1.x. Se trata de una aplicación similar al cliente de FTP por línea de comandos incluido en los sistemas operativos Windows y Linux. Requiere DOS 2, y los comandos que actúan sobre múltiples ficheros (MGET, MPUT y MDELETE) requieren además que NestorMan esté instalado.
- INLIB: Librería C para InterNestor Lite 1.x. Librería de funciones que permiten acceso a las capacidades de InterNestor Lite desde programas desarrollados en lenguaje C. Está pensada para usarse con el compilador SDCC. Más información en la sección sobre SDCC.
- INL11SRC.LZH: Código fuente de InterNestor Lite 1.1. Licenciado bajo la GPL.
Software para ObsoNET
ObsoNET es una tarjeta Ethernet para ordenadores MSX, diseñada y anteriormente fabricada por Daniel Berdugo. En esta sección encontrarás el software que he desarrollado para dicha tarjeta.
Importante: Por favor, actualiza la BIOS de tu tarjeta ObsoNET a la versión 1.2, que es compatible con la UNAPI Ethernet, para que puedas usar las nuevas versiones de InterNestor Lite. El antiguo InterNestor Lite para ObsoNET (versión 1.0x) está ahora discontinuado.
- ONETM-S.TXT: Manual del usuario y del programador de ObsoNET. Versión en español.
- ONETM-E.TXT: Manual del usuario y del programador de ObsoNET. Versión en inglés.
- ONETFRL.COM: Grabador de la Flash ROM de ObsoNET 1.0. Utilidad necesaria para actualizar la BIOS de ObsoNET, y para grabar programas personalizados en su ROM.
- BIOS.ROM, BIOS.DAT: ObsoNET BIOS 1.3 . Esta versión is compatible con la BIOS 1.0, pero añade compatibilidad con la UNAPI Ethernet. En el manual del usuario se detallan las diferencias entre los ficheros.
- BIOS10.LZH: La antigua BIOS versión 1.0, por si tienes algún problema con la BIOS 1.3 (¡no deberías, por supuesto!)
- InterNestor Lite. Con la BIOS 1.3, puedes usar InterNestor Lite para la UNAPI Ethernet con tu tarjeta ObsoNET.
Como punto de partida para trabajar con ObsoNET, se recomienda leer las secciones 1 y 2 del manual de ObsoNET y la sección 2.3 del manual de InterNestor Lite.
Software para DenYoNet
DenYoNet es una tarjeta Ethernet para ordenadores MSX, creada por Dennis Koller y Jos van den Biggelaar, y producida por Sunrise for MSX. En esta sección encontrarás el software que he desarrollado para dicha tarjeta.
-
DENYOROM.COM: Grabador de la flash ROM de DenYoNet 1.1. Herramienta que permite cargar la flash ROM de DenYoNet a partir de un fichero de código ROM. [Código fuente]
NOTA: Este grabador de ROM asume que la dirección MAC de la tarjeta está en la posición 16 del fichero ROM (es decir, inmediatamente después de la cabecera ROM impuesta por el estándar MSX) y proporciona tres opciones: mantener la MAC que ya hay en la ROM de la tarjeta (opción predeterminada), establecer la MAC que hay en el fichero ROM nuevo, o especificar una MAC manualmente. Ejecuta la aplicación sin parámetros para obtener más información.
- DENYOETH.ROM: BIOS Ethernet UNAPI 1.5. Se trata de un fichero ROM que hará que tu DenYoNet sea compatible con la especificación UNAPI Ethernet, de forma que podrás usar aplicaciones de red instalando una implementación de UNAPI TCP/IP UNAPI como InterNestor Lite. [Código fuente]
- DENYOTCP.ROM: BIOS UNAPI TCP/IP 0.6. Se trata de un fichero ROM que hará que tu DenYoNet sea compatible con la especificación UNAPI TCP/IP, de forma que podrás usar aplicaciones de red directamente, sin tener que instalar una pila TCP/IP por separado. [Código fuente]
- DENYTCP2.ROM: Versión alternativa de la BIOS UNAPI TCP/IP 0.6 que tiene invertido el comportamiento de la tecla ESC: la BIOS NO se inicializa si la tecla NO se pulsa durante el arranque, sí se inicializa si la tecla se pulsa.
- DENYINIT.COM: Herramienta de inicialización de la BIOS TCP/IP de DenYoNet. Si arrancas el ordenador pulsando ESC (o sin pulsar ESC, si usas la BIOS alternativa), puedes usar esta herramienta para inicializar la BIOS. Uso: denyinit <DenyoNet slot>[-<subslot>]. [Código fuente]
- La versión 0.6 tiene implementadas todas las características previstas: además de la conectividad TCP y UDP que propociona el W5100 integrado, puede resolver nombres de dominio y tiene cliente DHCP y soporte para enviar PINGs. Esta versión se convertirá en la 1.0 tras un período de pruebas.
NestorMan
NestorMan es un gestor de memoria dinámica para MSX2/2+/TR con MSX-DOS 2. Se instala como un TSR, por lo que puede ser usado por cualquier aplicación. NestorMan permite:
- Reservar bloques de memoria dinámica de entre 1 byte y 16K. Este mecanismo es mucho más versatil que el proporcionado por el DOS 2, que sólo permite reservar segmentos de 16K enteros. Tras pedirle un bloque del tamaño deseado, NestorMan devuelve el número de segmento en el que se encuentra el bloque recién reservado, así como su dirección de inicio. NestorMan se encarga de reservar los segmentos a medida que es necesario.
- Crear listas doblemente encadenadas. Las listas de este tipo son estructuras de datos en las que cada elemento se almacena con un puntero al elemento siguiente y otro al elemento anterior. Es posible insertar elementos (cualquier bloque de datos de hasta 16K de tamaño) y extraerlos en/de cualquier posición de la lista, así como "navegar" por los elementos (moverse hacia el siguiente o hacia el anterior, o bien buscar uno determinado según su número de orden en la lista).
Descargables de NestorMan:
- NMAN122.LZH: NestorMan 1.22. Incluye manual de programación en español y en inglés.
- TEXTOR.LZH: TexTor 1.0. Se trata de un editor de textos muy sencillo, similar al prehistórico EDLIN de MS-DOS, que sirve como ejemplo del uso de NestorMan. Incluye el código fuente.
MegaSCSI
MegaSCSI, desarrollado por ESE Artists Factory , es la mejor controladora SCSI disponible para MSX. Tengo la enorme suerte de poseer uno y he desarrollado varias aplicaciones para el uso con la misma, que tienes listadas a continuación:
- WPE.LZH: Dos utilidades, WP.COM y WE.COM, para proteger contra escritura y rehabilitar particiones de disco creadas con MegaSCSI. Incluye el código fuente.
- BOOT60.LZH: Parche para el programa de arranque en SRAM del MegaSCSI. Fuerza el arranque a 60Hz, o a 50Hz si se mantiene pulsada la tecla H. Incluye el código fuente.
- CHGKEY.LZH: Parche para la SRAM del MegaSCSI. Permite usar el teclado normal (teclas 0-9 y A-F) en lugar del teclado numérico para emular el cambio de disco al usar la emulación de diskettes. Util para los usuarios de Philips 8245 y similares. Incluye el código fuente.
- PSETLIST.LZH: Incluye dos programas. PARSET es un establecedor de particiones que utiliza la tabla de particiones estándar del sector de arranque en vez del fichero MEGASCSI.TBL, por lo que funciona con todos los discos que tengan esta tabla: ESE-ASPI, IDE, todos los de PC... PARLIST lista todas las particiones existentes en el disco, con su longitud y sector inicial. Incluye las fuentes.
- NCDPLAY.LZH: NestorCDPlayer es un reproductor de CD Audio para MegaSCSI. Es un TSR: queda residente y puedes controlar la reproducción del CD desde cualquier programa, mediante combinaciones de CTRL/SHIFT + CODE/GRAPH. Incluye el código fuente.
- NDICREAT.LZH: Esta utilidad no necesita MegaSCSI para funcionar, pero de poco te servirá si no lo tienes. NestorDiskImageCreator permite crear discos imagen vacíos de cualquier tamaño entre 10K y 32500K.
Si quieres desarrollar tus propias aplicaciones para MegaSCSI, este documento te resultará de gran ayuda:
- MEGUIDE.TXT: Traducción reducida al inglés del manual de programación del MegaSCSI. No está completa, pero los conceptos básicos y las funciones más importantes de la BIOS están detallados.
LPE-Z380
Hace algunos añós Leonardo Padial desarrolló una tarjeta con Z380 para MSX. Daniel Zorita y yo nos encargamos de ayudarle con el software, y lo que aquí tienes es mi contribución al proyecto:
- EPROM30.LZH: Versión 3.0 de la EPROM que incorpora la tarjeta.
- Z380MAN.TXT: Manual del programador de la tarjeta LPE-Z380 con EPROM 3.0, sólo está disponible en inglés.
- Z380MAN.LZH: Vesión comprimida del fichero Z380MAN.TXT.
- ZUTILS.LZH: Incluye F2Z.COM, para cargar un fichero en la memoria de la LPE-Z380; Z2F.COM, para realizar el proceso inverso; y ZEXE.COM, para ejecutar un programa Z380.
- CALLPCM.LZH: Ejemplo de comando CALL de BASIC instalable en la LPE-Z380. Permite grabar y reproducir PCMs directamente a/de la memoria de la LPE-Z380, usando el micrófono del Turbo-R. Es un programa muy simple que no incluye nivel de disparo ni compresión de silencios.
Si vas a desarrollar tus propios programas para LPE-Z380 y no tienes un ensamblador para Z380, te resultará de gran utilidad lo siguiente:
- Z380MAC.TXT: Macros para ensamblar instrucciones Z380 en un ensamblador para Z80, sólo varía ligeramente la sintaxis original de las instrucciones. Están probadas con el Compass, no deberían dar problemas con otros ensambladores.
- Z380MAC.LZH: Versión comprimida de Z380MAC.TX.
Librerías para SDCC
SDCC significa Small Devices C Compiler. Se trata de un compilzador cruzado de C de código abierto, disponible para Windows y Linux, que permite compilar código para el procesador Z80 entre otros. SDCC se puede descargar desde la página del proyecto SDCC; más información y recursos sobre el desarrollo de aplicaciones para MSX usando SDCC en la página MSX de Avelino Herrera .
En esta sección encontrarás algunas librerías que pueden resultarte útiles cuando desarrolles aplicaciones para MSX con SDCC.
-
MSXCHAR: Funciones de cónsola para MSX.
Versiones compatibles con MSX de las funciones de cónsola estándar de C: [Código fuente]
- putchar, usado por puts y printf. Hay dos variantes: una para MSX-BASIC y una para MSX-DOS, necesitarás una u otra dependiendo del tipo de tu proyecto.
- getchar, usado por gets. De nuevo, hay dos variantes: MSX-BASIC y MSX-DOS.
- Versiones simplificadas de printf y sprintf. Hay dos variantes, con y sin soporte para imprimir números de tipo long (32 bits). Si usas estas versiones en vez de las que vienen de serie en la librería Z80 de SDCC tus programas pueden llegar a ser hasta 2K más pequeños (si usas la variante sin soporte para long). En el código fuente encontrarás información sobre los especificadores de formato soportados.
-
CRT0 para MSX-DOS: Ficheros de código de arranque
que permiten generar aplicaciones de MSX-DOS con SDCC.
Hay dos versiones, una corta que sólo permite
void main()
, y otra más compleja que permiteint main(char** argv, int argc)
. Véase la cabecera de los ficheros de código fuente para las instrucciones de uso. [Código fuente] - CRT0 para MSX-BASIC: Ficheros de código de arranque que permiten generar aplicaciones de MSX-DOS con SDCC. Necesitarás modificar la directiva ORG de acuerdo a tu proyecto y ensamblar el fichero.
- ASMLIB: Librería C para interoperabilidad con ensamblador y UNAPI. Esta librería permite la ejecución de código en ensamblador (por ejemplo, rutinas de la BIOS o funciones de MSX-DOS) desde código C. Contiene funciones genéricas para la ejecución de código ensamblador, y también funciones para interactuar con implementaciones UNAPI. [Código fuente]
-
INLIB: Librería C para InterNestor Lite 1.x. Esta librería contiene funciones que permiten usar las capacidades de InterNestor Lite 1.x desde aplicaciones cliente de Internet desarrolladas con SDCC.
Nota: Esta librería es sólo para InterNestor Lite 1.x y no debería usarse para aplicaciones nuevas. Para desarrollar aplicaciones que funcionen con Internestor Lite 2.0+ (y con cualquier otra implementación de UNAPI TCP/IP ), debería usarse ASMLIB.
- BASE64LIB: Librería C para codificación y decodificación Base64. Esta librería contiene funciones que permiten codificar y decodificar en Base64 cualquier cantidad de datos binarios. [Código fuente]
- SHALIB: Librería C para hashing SHA1. Esta librería contiene funciones que permiten generar hashes SHA1 y HMAC-SHA1 de cualquier cantidad de datos. [Código fuente]
Utilidades para Sunrise IDE
Esta sección contiene las utilidades necesarias para grabar kernels de Nextor en un controlador Sunrise IDE o en un dispositivo compatible. Todas estas utilidades son de terceros y están publicadas aquí con permiso de los autores.
- IDEFL128.COM: Una versión modificada de IDEFLOAD.COM, la utilidad de grabación de la flash ROM del controlador Sunrise IDE, que permite grabar ficheros ROM de 128K (la utilidad original IDEFLOAD sólo graba ficheros de 64K). Este es el programa a usar con controladores Sunrise IDE. Desarrollado por Jon De Schrijder.
- IDETB128.COM: Este es el programa a usar con controladores Tecnobytes IDE. Desarrollado por Tecnobytes a partir de IDEFL128.
- CIDEB128.BAS y CIDEBIOS.BIN: Este es el programa a usar con controladores Ciel IDE. Desarrollado originalmente por Adriano Cunha, adaptado para ROMS de 128K por Piter Punk.
- README.TXT: Contiene información útil sobre las herramientas y sobre el driver de Nextor para dispositivos IDE.
Miscelánea
Aquí tienes algunas de mis utilidades pequeñas de todo tipo que he ido desarrollando a lo largo de mi prolífica carrera como programador obsoleto, todas para MSX2/2+/TR y la mayoría para MSX-DOS 2. Espero que alguna te resulte útil.
- MEM.LZH: Pequeño programa que muestra información sobre la memoria mapeada total, reservada y libre, dividida en slots. Requiere las rutinas estándar de soporte del mapeador.
- CHCOPY2.LZH: Chapuza Copy 2.0. Copión de diskettes que usa toda la RAM libre y la VRAM para minimizar los cambios de disco. Requiere MSX-DOS 2.
- RAMDD.LZH: Registro de Arranque para MSX con Disco Duro. Ejecútalo desde el AUTOEXEC.BAT de tu disco duro y podrás llevar lleva una cuenta del número de veces que has arrancado el ordenador desde una determinada fecha de referencia, así como la fecha y la hora del último arranque y del arranque actual. Requiere MSX-DOS 2. Esta es la versión en español.
- BOREHD.LZH: Boot Register for MSX with Hard Disk. Versión en inglés de RAMDD.
- NAC11.LZH: NestorAcentos 1.1. Programa residente que permite generar vocales acentuadas y otros carácteres como ñ ¡ ¿ y carácteres gráficos usando la tecla KANA en ordenadores MSX japoneses.
- NEM3-SCC.LZH: Esto no es más que el master de sonido SCC del Nemesis 3, aquel viejo invento de Martos, pero modificado: ahora puedes conectar/desconectar cada canal SCC y PSG, así como pausar la música. Util para componer arreglos.
-
MKROMDSK 1.3: Aplicación que resultará útil para los que tengais un cartucho Flash ROM grabable. Lo que hace es crear un archivo ROM a partir del contenido del RAM disk existente en el momento de su ejecución. Si se graba ese archivo ROM en el cartucho Flash, al reiniciar el ordenador aparecerá una unidad de disco de sólo lectura con todos los ficheros y subdirectorios que habia en el RAM disk. Además, la ROM resultante incorpora el kernel del DOS 2.
La versión 1.3 corrige un fallo que causaba que las ROMs generadas no funcionaran en ordenadores sin kernel de MSX-DOS 2 ya cargado.
MKROMDSK requiere MSX-DOS 2 para funcionar, y consta de dos ficheros:
- MKROMDSK.COM: El fichero ejecutable de la aplicación.
- MKROMDSK.DAT: Plantilla usada para generar los ficheros ROM. Si tienes una imagen del kernel del MSX-DOS 2.20, no es necesario que bajes este fichero, puesto que MKROMDSK.COM puede generarlo a partir de dicha imagen. (NOTA: el kernel 2.30, presente en la DiskROM de los MSX Turbo-R, NO sirve; tiene que ser un kernel 2.20).
- MKROMD1 1.0: Esta aplicación es idéntica a MKROMDSK, excepto que las ROMS generadas incorporan el kernel del DOS 1 en vez del kernel del DOS 2. De esta forma, las ROMs generadas funcionan en MSX2 con 64K RAM, o incluso en MSX1.
- Rookie Drive FDD ROM: Este proyecto implementa una DiskROM MSX-DOS 1 estándar que permite usar disketeras USB, convirtiendo así Rookie Drive en una controladora de disketeras "a la antigua usanza" con un par de extras. Las ROMs (se ofrecen unas cuantas variantes) están en la sección "releases".
- MSR.COM: Instala unas rutinas estándar de soporte del mapeador que son comparibles con las que propocionan MSX-DOS 2 y Nextor. También instala un ayudante de RAM UNAPI.
- PMEXT 2.22: Esta utilidad no está hecha por mí, pero puede resultarte útil. Puedes usarla para descomprimir ficheros .LZH desde MSX-DOS.
Sin relación directa con el MSX pero te puede interesar:
- Z80.NET: Un simulador de Z80 escrito en C#. Útil para usar como componente central de un emulador o de un depurador de código, o para probar pequeños trozos de código Z80.
MSX2 Technical Handbook
Este es el manual técnico oficial del estándar MSX2, editado por ASCII corporation en 1987, pasado a ficheros de texto. Lo tecleé todo a mano en mi MSX allá por 1997 a partir de fotocopias (el original nunca lo he visto ni en pintura), tarea que me llevó unos cuatro meses. De paso corregí algunos fallos que tenía el original y añadí información sobre el Turbo-BASIC. Atención: Todos los textos están en inglés.
- INDICE.TXT: Indice en español.
- INDEX.TXT: Indice en inglés.
- TH-1.TXT: Chapter 1, MSX System Overview.
- TH-2.TXT: Chapter 2, BASIC.
- TH-3.TXT: Chapter 3, MSX-DOS.
- TH-4A.TXT: Chapter 4, VDP and display screen (parts 1-5).
- TH-4B.TXT: Chapter 4, VDP and display screen (part 6).
- TH-5A.TXT: Chapter 5, Access to peripherals through BIOS (parts 1-6).
- TH-5B.TXT: Chapter 5, Access to peripherals through BIOS (part 7).
- KUNBASIC.TXT: Manual de referencia del Turbo-BASIC.
- TH-AP.TXT: Apéndices. Incluye:
- Appendix 1 - BIOS listing
- Appendix 2 - MATH-PACK
- Appendix 3 - Bit Block Transfer
- Appendix 4 - Work Area Listing
- Appendix 5 - VRAM Map
- Appendix 6 - I/O Map
- Appendix 8 - Control Codes
- Appendix 10- Escape Sequences
- TH.LZH: Todos los ficheros anteriores en un único fichero comprimido.
- KUNESP.TXT: Manual del Turbo-BASIC en español. Autor desconocido, enviado por Werner Augusto Roder Kai .
Easymbler
Easymbler es un curso de ensamblador del procesador Z80 (aunque orientado al MSX, por supuesto) que escribí para el magazine en disco Eurolink, publicado por MSX MEN (Ramón Ribas y Daniel Zorita) hace algunos años. La idea fundamental es que debía ser fácil de entender y ameno, y con esto último quizá me pasé un poco... juzga tú mismo.
- EASYMB1.TXT: Primera entrega. Introducción al código máquina. Descripción del Z80.
- EASYMB2.TXT: Segunda entrega. Instrucciones del Z80.
- EASYMB3.TXT: Tercera entrega. Introducción a los ensambladores y a la arquitectura del MSX. Técnicas básicas de programación.
- EASYMB4.TXT: Cuarta entrega. Funcionamiento y manejo de los slots del MSX.
- EASYMB5.TXT: Quinta entrega. La memoria mapeada del MSX.
Proyecto InterNestor Suite
Entre 1993 y 2002 estudié Ingeniería de Telecomunicaciones en la UPC, en Barcelona. El proyecto de final de carrera se tituló "InterNestor Suite: diseño e implementación de una pila TCP/IP para ordenadores MSX" ; sí, es el mismo InterNestor Suite que puedes descargar en esta página.
A continuación encontrarás la memoria del proyecto que redacté y la presentación que utilicé el día del examen, el 11 de diciembre de 2002. Por cierto que no estuvo mal la nota que obtuve: matrícula de honor. :-).
- MEMINS.ZIP: Memoria del proyecto que entregué a los profesores, en formato MS Word 97.
- PRESINS.ZIP: Presentación del día del examen, en formato MS PowerPoint 97.
Especificación MSX-UNAPI
Ver también el repositorio del proyecto UNAPI en GitHub.
MSX-UNAPI significa MSX unified API definition and discovery standard (estandar para la definición y el descubrimiento de APIs). Se trata de una propuesta de estandar de codificación dirigida a los desarrolladores de hardware y software.
Cuando los aficionados desarrollan hardware nuevo para ordenadores MSX, dotan a los dispositivos de una ROM que contiene un API (Application Program Interface) consistente en una serie de rutinas, usadas por las aplicaciones para tener acceso al hardware. El diseño y la implementación de este API quedan sujetos únicamente al criterio del creador del hardware, dado que no existe una forma estandarizada de hacerlo.
La especificación MSX-UNAPI propone una forma estandarizada de definir, implementar, descubrir y usar tales APIs, de forma que dispositivos que proporcionen la misma función pero creados por desarrollados distintos puedan tener APIs compatibles.
Es más fácil de lo que parece (¡en serio!) y puede resultar de gran utilidad para desarrolladores de hardware y software. Si te intersa, aquí tienes los documentos disponibles sobre la especificación MSX-UNAPI:
- Introducción a la especificación MSX-UNAPI: Recomiendo encarecidamente empezar por aquí. Se trata de un texto corto que introduce los conceptos fundamentales de la especificación.
- Especificación MSX-UNAPI v1.1: La especificación completa, con todos los detalles escabrosos.
- Código de ejemplo: Las fuentes de algunos ejemplos completamente funcionales que pueden ayudarte a entender todo el tema. Los siguientes ficheros están disponibles:
- Ejemplo de implementación en ROM.
- Ejemplo de implementación en ROM.
- Ejemplo de implementación en un driver de Nextor.
- Ejemplo de aplicación sin especificación. Se trata de un TSR que se instala en un segment de RAM y parchea el gancho de la interrupción del reloj para hacer que el led de CAPS parpadee.
- Instalador de un ayudante de RAM independiente. Estas fuentes también compilan MSR.COM, el instalador de las rutinas de soporte del mapeador.
- Listador de implementaciones UNAPI, un ejemplo de software cliente. Software cliente es el código que invoca las rutinas ofrecidas por un API a fin de realizar alguna tarea con el hardware.
- Librería SDCC: Si prefieres programar en lenguaje C, tienes a tu disposición una librería que te permitirá interactuar con implementaciones UNAPI en aplicaciones desarrolladas con el compilador SDCC. Ver la sección SDCC.
- Utilidades: Aplicaciones relacionadas con UNAPI que pueden ser útiles:
- Instalador de un ayudante de RAM independiente. Si también quieres instalar rutinas de soporte del mapeador, usa MSR.COM en vez de RAMHELPR.COM.
- Listador de implementaciones UNAPI.
- Programa de control para implementaciones de la especificación UNAPI Ethernet. El código fuente está incluído en el paquete de la librería ASMLIB.
A continuación están las especificaciones de APIs compatibles con UNAPI que he desarrollado:
- Especificación UNAPI para Ethernet v1.1: La primera desarrollada API que cumple la especificación UNAPI, pensada para los desarrolladores de hardware Ethernet.
- Especificación UNAPI para TCP/IP v1.1: Una especificación para pilas TCP/IP.
Obsolete Procedure Call
Ver también el repositorio de OPC en GitHub
Obsolete Procedure Call (OPC) es un protocolo diseñado para permitir el acceso remoto a un ordenador controlado por (o que simula ser controlado por) un procesador Z80. Puede ser útil para probar hardware sin tener que usar físicamente el ordenador que lo aloja (usando en su lugar herramientas más modernas), o para probar código Z80 ejecutándose en un sistema real basado en Z80.
- Especificación del protocolo OPC
- Servidor OPC v1.0: para MSX-DOS y MSX-BASIC, usando TCP como transporte (TCP/IP UNAPI).
- Biblioteca cliente OPC v1.0: para .NET, incluye una aplicación de ejmplo que obtiene y muestra información de sistema de un ordenador MSX.
¿Qué hay de nuevo?
En este apartado se listan los cambios realizados a esta página en orden cronológico.
31 enero 2023
- Añadido InterNestor Lite 2.3, corrige un problema que causaba que algunos routers ignoraran los paquetes DHCP.
28 noviembre 2021
- SNTP.COM actualizado a la v1.2, ver pull request en GitHub
- El fichero NBASIC.BIN es ahora realmente la versión v1.11, era la v1.10 por error
- El manual en inglés de NestorBASIC ha sido mejorado, ver pull request en GitHub
1 agosto 2020
- Enlaces actualizados a la versión v2.1.0 en la sección Nextor
19 de agosto 2019
- Añadidos HGET 1.3, TFTP 1.1 and SNTP 1.1 en la sección de aplicaciones de red.
- Añadido InterNestor Lite 2.2, incluye la capacidad de actuar como un cliente de SOCKS5.
- Quitados los ficheros de documentación de InterNestor Lite, ya que toda la documentación está en el repositorio en GitHub.
- Quitados los ficheros de código fuente de la sección de aplicaciones de red, ya que ahora está toda disponible en el repositorio en GitHub.
24 de junio de 2019
- Publicado MSR.COM, el instalador de rutinas estándar de soporte del mapeador, en la sección miscelánea.
- Todos los enlaces a documentación y ejemplos de código en la sección UNAPI ahora apuntan al repositorio de MSX-UNAPI en GitHub.
- RAMHELPR.COM la sección UNAPI actualizado v1.2, esta versión ya no lee los puertos del mapeador de RAM cuando no hay rutinas de soporte disponibles.
- TCPIP.COM en la sección de aplicaciones de red actualizado a v1.1, compatible con los cambios introducidos en la v1.1 de la especificación TCP/IP UNAPI.
- InterNestor Lite para Ethernet UNAPI actualizado a v2.1, es compatible con la especificación TCP/IP UNAPI v1.1 y ahora requiere la presencia de rutinas de soporte del mapeador.
- Añadida la nota sobre la descontinuación de InterNestor Lite para RS-232.
15 mayo 2019
- Publicada ObsoNET BIOS 1.3. Esta versión soluciona un fallo que causaba cuelgues al usar expansiones de memoria externas.
29 abril 2019
- Enlaces actualizados a la versión v2.1.0-beta 2 en la sección Nextor
- crt0_msxdos en la sección SDCC actualizado para inicializar correctamente las variables globales
8 febrero 2019
- Enlaces actualizados a la versión v2.1.0-beta 1 en la sección Nextor
1 diciembre 2018
- Añadido Rookie Drive FDD ROM en la sección miscelánea.
20 septiembre 2018
- Añadido Nextor 2.0.5 beta 1 y el enlace al proyecto Nextor en GitHub
27 febrero 2018
- Añadidos el enlace a la copia de mato34.es
21 enero 2018
- Enlaces actualizados en la sección OPC (el servidor ahora esta disponible también para MSX-BASIC).
18 enero 2018
- Añadido MKROMDSK 1.3 en la sección miscelánea.
16 enero 2018
Cambios en la sección SDCC:
- Fuentes quitadas de los ficheros enlazados, añadidos enlaces a las fuentes en GitHub (excepto para INLIB).
- Librería MSXCHAR reemplazada con un fichero ZIP file que contiene los módulos (y ahora hay dos variantes de printf, con fuentes disponibles).
- La explicación sobre cómo modificar la librería estándar Z80 de SDCC ha sido actualizada.
- La función AsmCall (parte de ASMLIB) ya no se modifica a sí misma, por tanto puede usarse para aplicaciones en ROM.
- Añadido CRT0 para MSX-BASIC.
1 enero 2018
- Añadida la sección OPC.
- Enlaces de los repositorios de BitBucket reemplazados por enlaces a repositorios en GitHub.
- Enlaces a los sitios de discusión suprimidos.
- Enlace a InterNestor Lite en SourceForge suprimido.
- Enlaces de perfil actualizados.
15 marzo 2015
- Añadidos Nextor Nextor 2.1 Alpha 2 en la sección Nextor.
- Añadida la sección Utilidades para Sunrise IDE.
2 febrero 2015
- Añadido el enlace a Konamiman's software discussion site.
21 noviembre 2014
- Añadido el enlace al repositorio de software MSX.
15 octubre 2014
- Añadidos Nextor 2.0.4 y Nextor 2.1 Alpha 1b en la sección Nextor.
- Añadido un enlace al proyecto Z80.NET en la sección Miscelánea.
- Añadido Patreon como nuevo método de pago en la sección de donaciones.
9 mayo 2014
- Añadido Nextor 2.0.3, junto a una nueva versión de la guía de inicio rápido, del manual de usuario y del manual del programador, en la sección Nextor.
- Añadida la utilidad Volume Size Fix Tool en la sección Nextor.
- CRT0 para MSXDOS corregido (contenía ficheros .REL inusables) en la sección SDCC.
8 abril 2014
- Añadido Nextor 2.0.2, junto a una nueva versión de la guía de inicio rápido, en la sección Nextor.
- Añadido Flattr como nuevo método de pago en la sección de donaciones.
4 abril 2014
- Añadida la sección de donaciones.
- Añadido Nextor 2.0.1, junto a una nueva versión de MKNEXROM y la guía para desarrollar drivers, en la sección Nextor.
- Añadido Nextor 2.1 Alpha 1 en la sección Nextor.
12 febrero 2014
- Añadida la versión 2.0 de Nextor, junto con el código fuente de las herramientas externas y el código fuente de FDISK.
1 febrero 2014
- Añadido MSX trivial dropbox 1.1 en la sección de aplicaciones de red.
- Añadidas las versiones 1.1 de PING y TCPCON en la sección de aplicaciones de red.
- Añadida la BIOS TCP/IP UNAPI 0.6, su versión alternativa, la herramienta DENYINIT.COM y la nota para usuarios de Panasnonic FS-A1 GT en la sección de DenYoNet.
1 julio 2013
- Añadida la versión 2.0 Beta 2 de Nextor.
1 marzo 2013
- Añadida la versión 2.0 Beta 1 de Nextor.
- Añadida la versión para MegaFlashROM SCC+ SD del kernel de Nextor.
1 septiembre 2011
- Añadida la versión 2.0 Alpha 2b de Nextor.
- El driver de Sunrise IDE para Nextor ha sido actualizado.
- Añadida la utilidad IDEFL128.COM en la sección miscelánea.
1 agosto 2011
- Añadida la la versión 2.0 Alpha 2 de Nextor, así como la guía paso a paso.
- Corregidos los enlaces a la documentación en línea de Nextor, ya no requieren iniciar sesión en Google para poder ser vistos.
1 julio 2011
- Añadida la sección de Nextor, con la versión 2.0 Alpha 1.
26 mayo 2011
- Publicada ObsoNET BIOS 1.2. Esta versión soluciona un fallo que causaba que algunos ordenadores se colgaran al intentar acceder a la unidad de diskette.
- Publicadas Denyonet TCP/IP UNAPI BIOS 0.5 y Ethernet UNAPI BIOS 1.5. Estas versiones solucionan el mismo fallo que la BIOS 1.2 de ObsoNET.
- Corregido el fichero BIOSDOS2.ROM (sección de Obsonet), que era defectuoso.
8 abril 2011
- Añadido ObsoFTP 1.0, ObsoSMB 1.0 y la imágen de disco con todas las aplicaciones de red en la sección de aplicaciones de red.
4 febrero 2011
- Añadidos HGET 1.1 y MSX trivial dropbox en la sección de aplicaciones de red.
- Añadido PMEXT.COM en la sección miscelánea.
10 enero 2011
- Añadidas las aplicaciones HGET y URL en la sección de aplicaciones de red.
- Añadida la BIOS TCP/IP UNAPI 0.4 en la sección de DenYoNet.
2 septiembre 2010
- Añadidas las librerías MSXCHAR, CRT0_MSX, SHA1 y BASE64 en la sección de SDCC.
- Añadida la especificación TCP/IP UNAPI a la sección UNAPI.
- InterNestor Lite 1 ahora está discontinuado, pero sigue estando disponible para descarga.
- Añadido InterNestor Lite 2 en su propia sección, separada de InterNestor Lite 1.
- Añadida la sección de aplicaciones de red, con la versión TCP/IP UNAPI de las antiguas aplicaciones para INL 1 (PING, cónsola TCP, TFTP, FTP) y cuatro aplicaciones nuevas: un cliente SNTP, MSX trivial tweeter, el programa de control de Ethernet UNAPI, y el programa de control de TCP/IP UNAPI. Todo con su código fuente.
- Añadida la sección de DenYoNet, con el grabador de flash ROM, la BIOS Ethernet UNAPI 1.4, y la BIOS TCP/IP UNAPI 0.1.
23 febrero 2010
- Añadida la sección SDCC, con dos librerías: la ya existente INLIB, y la nueva ASMLIB.
- Añadido el programa de control de implementaciones de Ethernet UNAPI en la sección UNAPI.
19 febrero 2010
- El ayudante de RAM de la especificación UNAPI ha alcanzado la versión 1.1. Esta versión no destruye el contenido de la variable de entorno SHELL en DOS 2, evitando así los errores "Wrong version of COMMAND".
11 febrero 2010
- La especificación Ethernet UNAPI ha alcanzado la versión 1.1.
4 febrero 2010
- La especificación MSX-UNAPI ha alcanzado la versión 1.1.
- Añadido el instalador independiente del ayudante de RAM y el ejemplo de TSR en la sección UNAPI.
- Añadidos enlaces a SourceForge.net on la sección UNAPI y en la sección InterNestor Lite.
14 septiembre 2007
- Publicado InterNestor Lite 1.1.1.
12 septiembre 2007
- La especificación MSX-UNAPI ha alcanzado la versión 1.0.
- Publicada la especificación UNAPI para Ethernet.
- Publicada ObsoNET BIOS 1.1.
- Publicado InterNestor Lite 1.1. Ahora ambas versiones de InterNestor Lite (para puerto serie y para Ethernet) se distribuyen en un solo paquete. Además, ahora hay un único manual de usuario para ambas versiones.
- Publicado el código fuente de InterNestor Lite.
- InterNestor Lite para ObsoNET está ahora discontinuado. Ha sido reemplazado por InterNestor Lite para Ethernet.
25 julio 2007
- Añadida la sección MSX-UNAPI.
29 junio 2007
- Pues sí, la página principal ha desaparecido; de todas formas no tenía nada interesante. Si quieres saber más sobre mí, visita mi blog .
- Ahora esta página cumple el estándar XHTML y usa CSS para la presentación (que de todas formas sigue siendo muy simple). Échale un ojo a los bonitos banercillos al final de la página.
-
Las referencias a Dumas han sido quitadas temporalmente. El proyecto está
actualmente congelado pero no muerto
, espero.
18 mayo 2006
- Añadido un enlace al blog de Konamiman.
21 abril 2006
- Retirada la página de información sobre ObsoNET y añadida la página de información del proyecto Dumas.
5 diciembre 2005
- Retirado el enlace a ILAC (concurso de aplicaciones para InterNestor Lite). Es posible que reabra el concurso pero no hay nada decidido aún.
10 septiembre 2005
- Añadidos MKROMDSK 1.2 y MKROMD1 1.0 en la sección miscelánea .
24 abril 2005
- Añadido InterNestor Lite 1.02 en las secciones de InterNestor Lite y ObsoNET.
- Añadida la versión 1.01 del cliente FTP en la sección de InterNestor Lite.
31 marzo 2005
- Añadido el cliente para FTP en la sección de InterNestor Lite .
- Añadida la sección Software para ObsoNET.
- Añadido MKROMDSK 1.1 en la sección misceláénea.
22 diciembre 2004
- Añadida la utilidad MKROMDSK en la sección miscelánea.
6 diciembre 2004
- Añadido NestorBASIC 1.11, además el programa de ejemplo TCPCON-L en TCPCON.LZH ha sido actualizado.
5 diciembre 2004
- Añadido InterNestor Lite 1.0 y la librería INLIB.
20 agosto 2004
- Añadida la página de ILAC '04.
19 agosto 2004
- Añadida la página de ObsoNET.
7 julio 2004
- Añadida la cuarta beta de InterNestor Lite.
15 junio 2004
- Añadida la versión 1.10 de NestorBASIC.
5 junio 2004
- Añadida la tercera beta de InterNestor Lite.
6 enero 2004
- Añadida la segunda beta de InterNestor Lite.
1 octubre 2003
- Añadida la primera beta de InterNestor Lite.
7 julio 2003
- Inaugurado el nuevo aspecto del sitio, tanto la página principal como la página MSX.
- Publicado NestorBASIC 1.0 y el nuevo programa de ejemplo TCPCON.
- Publicadas la memoria y la presentación universitarias de InterNestor Suite.