Cacharreos místicos. Parte VI: Cambiando las roms por defecto en el core de Spectrum

Moderador: desUBIKado

Responder
Avatar de Usuario
desUBIKado
CPLD
Mensajes: 192
Registrado: 14 Ago 2018, 19:06

Cacharreos místicos. Parte VI: Cambiando las roms por defecto en el core de Spectrum

Mensaje por desUBIKado » 08 Feb 2020, 18:45

El core de Spectrum de la MiST necesita para funcionar un archivo spectrum.rom que debe situarse en el directorio raíz de la SD. Este archivo lo que tiene dentro es una serie de roms concatenadas, siendo su contenido para el archivo spectrum.rom actual de 192K el siguiente:

Boot (GLUK) + TRDOS + 128 ROM0 + 128 ROM1 + +3 ROM0/1/2/3 + PlusD + MF128 + MF3 + 48K ROM

Cada parte tiene un tamaño de 16 KB.

El firmware de la MiST permite cargar la rom de los cores con la opción de configuración rom. Os pongo traducido lo que dice sobre esta directiva en el wiki de MiST:
La mayoría de los cores permiten cargar una rom predeterminada llamada <corename> .rom. Para algunos cores como el core c16, este archivo incluye varios archivos rom. En el caso del c16, este archivo c16.rom incluye la rom de la disquetera de 16 kBytes, la rom del kernel de 16 kBytes y la rom del BASIC de 16 kBytes. Por lo general, estos solo están disponibles como archivos separados y el usuario tendría que combinarlos en un solo archivo para cargar MIST.

La opción rom permite especificar varios nombres de archivo para cargar de esta manera:

[c16]
rom = 1541KRNL
rom = KERNAL

En este caso, se carga un archivo llamado 1541KRNL.ROM y un archivo llamado KERNAL.ROM. Los nombres de los archivos deben ser cortos (máximo 8 caracteres) y solo deben constar de letras mayúsculas y números. Además, la extensión .ROM no se especifica explícitamente en el archivo ini sino que se agrega automáticamente. El ejemplo anterior cargaría el archivo 16 kBtyes 1541KRNL.ROM y el archivo 16 kBytes KERNAL.ROM cada vez que se carga el core c16.

Las roms se cargan en el orden en que aparecen en el archivo ini. La opción rom siempre debe usarse en la "configuración por core", ya que las ROM son muy específicas del core.
Yo añado que si en la raíz tenéis el archivo <corename>.rom, y en el mist.ini unas opciones rom para ese core, lo que predomina es la definición en el archivo mist.ini.

Pues el cacharreo con el que me he entretenido ha sido modificar las roms por defecto que trae el archivo spectrum.rom. Las roms que interesa cambiar son las de los modelos 48K, 128K y +3, las cuales tienen un tamaño de 16K, 32K y 64K respectivamente. También es interesante el cambiar la rom del dispositivo Multiface 3, pero eso es para otro cacharreo que será comentado más adelante.

Ahora os presento mi definición de la sección del core Spectrum:

Código: Seleccionar todo

[spectrum]
rom=01GLUK
rom=02TRDOS
rom=03SEBAS4
rom=05P3EMMC
rom=09PLUSD
rom=10MF128
rom=11MF3
rom=12PRETTY

;rom=01GLUK                     ; Boot (GLUK)
;rom=02TRDOS                    ; TR-DOS (Beta Disk Interface)

;rom=03SP128                    ; Spectrum 128 English
;rom=03BBCBAS                   ; BBC BASIC Emulator
;rom=03SEBAS4                   ; SE Basic IV Anya

;rom=05P3EMMC                   ; ZX Spectrum +3e EN (DivMMC) 1.43
;rom=05PLUS3                    ; ZX Spectrum +3 English
;rom=05DERBYP                   ; ZX Spectrum 128K Derby++ 64K
;rom=05PL3HCM                   ; ICE Felix HC 2000 Emulator for Spectrum +3 (MiST version)

;rom=09PLUSD                    ; G+DOS (MGT +D Disk Interface)
;rom=10MF128                    ; Multiface 128

;rom=11MF3                      ; Multiface 3 (in +3 mode)
;rom=11IF1HC                    ; Interface 1 patched rom replaces Multiface 3 rom for use with 05PL3HCM.ROM

;rom=12PRETTY                   ; Pretty BASIC 48K (Basic in color)
;rom=12SP48K                    ; ZX Spectrum 48K (original rom)
;rom=12GW133                    ; ZX Spectrum 48K Gosh Wonderful 1.33
;rom=12LG107                    ; ZX Spectrum 48K Looking Glass 1.07
;rom=12INVES                    ; INVES Spectrum+
;rom=12METK95                   ; Microdigital Eletronica TK95

Así si observáis bien esta definición:
  • Con rom=03SEBAS4 utilizo la rom de SE Basic IV Anya en el modelo de spectrum de 128K (opción del OSD Memory: Standar 128K)
  • Con rom=05P3EMMC utilizo la rom del +3e con soporte para divMMC (hay que activarlo en otra opción del OSD) lo que me permite por ejemplo arrancar el Workbench +3e (opción del OSD Memory: +2A/+3)
  • Con rom=12PRETTY utilizo la rom Pretty Basic para el modelo 48K. Con esta rom podemos ver el basic indentado y la sintaxis resaltada en colores (opción del OSD Memory: Standar 48K)
    Spectrum_OSD.png
    Spectrum_OSD.png (160.89 KiB) Visto 5141 veces
    pretty basic.png
    pretty basic.png (153.2 KiB) Visto 5141 veces
Por supuesto, os dejo un archivo con la definición de la sección [spectrum] y estas roms que he recopilado. Hay además una carpeta HC2000, pero por ahora no le hagáis caso :D.

SD_Mist.png
SD_Mist.png (177.7 KiB) Visto 5141 veces
SD_MIST.7z
(976.83 KiB) Descargado 521 veces


Responder

Volver a “Sinclair ZX Spectrum”