MBim
Descripción del contenido de la página
Utilería para desarrollo cruzado en MasterBASIC con SimCoupe.
Proyecto desarrollado entre 2011-03-10 y 2012-12.
«MBim» significa «MasterBASIC improved», esto es, «MasterBASIC mejorado». Por una parte es una utilería para escribir programas en MasterBASIC con el editor Vim; por otra, es un formato mejorado para escribir código en MasterBASIC.
MBim es fruto de mi admiración por la computadora SAM Coupé (que utilizo virtualmente gracias al excelente emulador SimCoupe), y mi interés por escribir algún programa interesante para esta máquina en MasterBASIC, pero con la comodidad de un entorno de desarrollo moderno. Ambos, la computadora y el lenguaje de programación, son un ejemplo del máximo desarrollo que alcanzó la tecnología de ocho bitios en la informática doméstica.
Componentes
MBim consta de los siguientes componentes:
- MasterBASIC Vim syntax file: Fichero de resaltado de sintaxis de Vim para MasterBASIC.
- MBim Vim syntax file: Fichero de resaltado de sintaxis de Vim para el formato MBim de MasterBASIC.
- MBim2MB: Programa escrito en Vim para convertir al formato estándar de MasterBASIC un código fuente en formato MBim.
- MBimport: Programa escrito en MasterBASIC para importar en el emulador SimCoupe código fuente en MasterBASIC escrito en ficheros de texto creados en el sistema operativo anfitrión.
Resultado
Todo el sistema MBim resultó fallido debido a su último eslabón, MBimport, por el mismo motivo que anteriormente tampoco había funcionado bien el programa fromZXtoSAM. El problema, prácticamente insoluble sin estudiar y retocar el código fuente de la ROM original de la SAM Coupé (lo que sería una tarea enorme), es que el comando KEYIN
original de SAM BASIC tiene fallos (que desgraciadamente MasterBASIC no corrigió).
La utilidad de MBim es muy poca. Con mucha suerte y mucha paciencia, puede servir para importar en la SAM Coupé programas pequeños. Pero el comando KEYIN
, imprescindible para la operación, más pronto que tarde dará errores sin fundamento e impedirá continuar. Lo más que he conseguido es importar hasta la línea 524 de un total de más de más de 700. Podría hacerse en varias pasadas y con operaciones manuales para reunir los pedazos, pero no merece la pena.
Es una lástima que en una máquina de ocho bitios tan atractiva como la SAM Coupé, un BASIC tan potente y versátil como MasterBASIC tenga este fallo tan grave (y no es el único: el comando RENUM
también tiene un serio problema que dificulta mucho la edición de programas complejos).
A pesar de todo, el desarrollo de MBim dio dos frutos: BBim, que inicié para hacer en ZX Spectrum con Beta BASIC lo que me hubiera gustado poder hacer en SAM Coupé con MasterBASIC; y el más sencillo SBim, que aplicaba las mismas ideas al potente S*BASIC de QL. De hecho los tres proyectos se alimentaron unos a otros durante un tiempo.
Una posible alternativa
La última opción que me queda para lograr escribir programas en MasterBASIC fuera del entorno de la SAM Coupé sería escribir un programa (Forth o SBASIC serían los lenguajes que utilizaría para ello) para convertir el código fuente en un fichero de MasterBASIC «real» dentro de una imagen de disquete MGT «real»...
El sistema de ficheros MGT (utilizado por varios sistemas operativos de disco de ZX Spectrum y SAM Coupé: GDOS, G+DOS, Beta DOS, UNI-DOS, SAM DOS, MasterDOS, B-DOS, HDOS, EDOS, +DivIDE ...) está muy bien documentado y no sería un problema. (Más fácil que crear una imagen de disquete MGT sería crear un fichero TAP de cinta virtual, pero el emulador SimCoupe no lo acepta).
Pero averiguar el formato interno de un programa en MasterBASIC (que difiere sustancialmente del utilizado por Sinclair BASIC) requeriría mucha ingeniería inversa, pues apenas hay documentación explícita y detallada.
La tarea sería tan interesante como laboriosa, pero no imposible; no hay prácticamente nada imposible en programación.
El formato MBim
Hasta la futura actualización de esta página, puede consultarse el formato BBim para Beta BASIC, que es muy similar al de MBim.Descargas
- masterbasic.vim (12.07 KiB): Fichero de resaltado de sintaxis de Vim para MasterBASIC.
- mbim.vim (3.19 KiB): Fichero de resaltado de sintaxis de Vim para el formato MBim de MasterBASIC.
- mbim2mb.vim (14.16 KiB): Programa escrito en Vim para convertir al formato estándar de MasterBASIC un código fuente en formato MBim.
- mbimport.mgt.gz (149.93 KiB): Programa escrito en MasterBASIC para importar en el emulador SimCoupe código fuente en MasterBASIC escrito en ficheros de texto creados en el sistema operativo anfitrión. Imagen de disquete MGT comprimida con gzip (en la página de MBimport está detallado el contenido del disquete).