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.
Í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.
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.
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.
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 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 2GB. 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.
Nextor ofrece también otras características interesantes, consulta el manual de usuario de Nextor para más detalles.
La versión actual de Nextor es 2.0 Alfa 2b. Si quieres probarla, 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. Escoge tu versión:
Núcleo de Nextor: Un fichero ROM que contiene el núcleo de Nextor con un driver
de dispositivo incrustado. Hay tres 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.
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.
Recuerda que es un driver experimental, lee la nota de aviso más arriba.
NEXTOR.SYS: El fichero NEXTOR.SYS reemplaza a MSXDOS2.SYS
y es necesario para poder arrancar en el prompt del DOS.
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.LZH:
Todas las herramientas comprimidas en un fichero LZH, útil si se va a usar Nextor en un MSX real.
NEXTOR-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.
Si eres programador, también te puede interesar lo siguiente:
Nextor Programmers Reference: Explica las nuevas características que Nextor ofrece a los programadores. Escoge tu versión:
Nextor Driver Development Guide: Explica cómo crear un driver de dispositivos de almacenamiento
y cómo incrustarlo en el núcleo de Nextor. Escoge tu versión:
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 núcleo de Nextor completo debe tener código de mapeador,
es decir, el código que sabe cómo seleccionar bancos de ROM dependiendo del tipo de hardware en el que el núcleo
está grabado, tal como se explica en la guía de desarrollo de drivers. Los siguientes ficheros de mapeador
ya compilados están disponibles:
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 in C]
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.
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.
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.
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..
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 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 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.0 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).
Manual del programador de InterNestor Lite 2.0: Realmente
no es necesario leer este documento para desarrollar aplicaciones de red, ya que ahora se programa contra la especificación
UNAPI TCP/IP y no contra un API específico de InterNestor Lite. Sin embargo este documento puede ser útil para comprender
las diferencias entre la API de InterNestor Lite 1.x y la UNAPI TCP/IP.
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.
Se incluye el código fuente de todas las aplicaciones, algunas están hechas en ensamblador (usando el ensamblador de MSX Compass)
y otras en C (usando el ensamblador cruzado SDCC).
PING.COM: Cliente simple de PING 1.0. Envía una petición de PING
automáticamente, y sólo envía más si se pulsa ENTER.
[Código fuente]
TFTP.COM: Cliente/servidor TFTP 1.0. TFTP es una forma simple y directa
de transferir archivos sueltos entre dos ordenadores.
[Código fuente]
TCPCON.COM: Cónsola TCP 1.0. 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.
[Código fuente]
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.0. 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.
[Código fuente]
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.1.
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.
[Código fuente]
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 llamado urls.txt
que contiene la línea [knm] www.konamiman.com, puedes ejecutar geturl urls.txt knm | hget con
como un equivalente de hget www.konamiman.com. [Código fuente]
MSXTDB.LZH: MSX trivial dropbox 1.0.
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.
[Código fuente]
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],
[Código fuente]
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.
[Código fuente]
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 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 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 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.
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, BIOSDOS2.ROM,
BIOS.DAT: ObsoNET BIOS 1.2. 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 tres ficheros.
BIOS10.LZH: La antigua BIOS versión 1.0,
por si tienes algún problema con la BIOS 1.2 (¡no deberías, por supuesto!)
InterNestor Lite. Con la BIOS 1.2, 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.
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.5.
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]
La versión 0.5 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 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, 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.
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.
SDCC significa Small Devices C Compiler. Se trata de un compilzador cruzado de C
gratuito, 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 estándar C de cónsola para MSX.
Esta librería contiene versiones compatibles con MSX-DOS de las funciones estándar getchar, putchar y printf.
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 permite int main(char** argv, int argc).
Véase la cabecera de los ficheros de código fuente para las instrucciones de uso.
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.
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.
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.
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 MSX-DOS 2.
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.2: 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.2 corrige un fallo que causaba que las ROMs generadas no funcionaran
en MSX Turbo-R con mapeador de RAM externo.
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.
PMEXT 2.22: Esta utilidad no está hecha por mí,
pero puede resultarte útil. Puedes usarla para descomprimir ficheros .LZH desde MSX-DOS.
IDEFL128.COM: Una versión modificada de IDEFLOAD.COM,
la utilidad de grabación de la flash ROM de la tarjeta Sunrise IDE, que permite grabar ficheros ROM de 128K
(la utilidad original IDEFLOAD sólo graba ficheros de 64K). Es necesario usar esta utilidad para grabar el
kernel de Nextor, cuya longitud es de 128K. El autor tanto de la utilidad original IDEFLOAD
como de la versión modificada IDEFL128 es Jon De Schrijder.
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.
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.
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.
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. Puedes elegir entre varias versiones:
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 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.
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:
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. Escoge tu versión:
Los comentarios acerca de la especificación MSX UNAPI son bienvenidos.
Si quieres hablar sobre el tema, visita uno de los foros dedicados a MSX-UNAPI existentes:
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.
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".
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.
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.