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.

Etiquetas:

«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:

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

Páginas relacionadas

Historial de desarrollo de MBim
Historial de desarrollo de MBim, utilería para programar en MasterBASIC con el editor Vim.
BBim
Utilería para escribir programas para ZX Spectrum en BBim (formato mejorado de Beta BASIC) con el editor Vim.
SBim
Preprocesador para S*BASIC
fromZXtoSAM
Utilidad para intentar pasar programas en BASIC desde una ZX Spectrum a una SAM Coupé.