Cacharreos místicos. Parte VII: Virtualizando el ordenador ICE Felix HC 2000 con el core de Spectrum

Moderador: desUBIKado

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

Cacharreos místicos. Parte VII: Virtualizando el ordenador ICE Felix HC 2000 con el core de Spectrum

Mensaje por desUBIKado » 23 Feb 2020, 16:30

El ordenador ICE Felix HC 2000 fue un ordenador rumano que salió en el año 1992, era compatible con el Sinclair Spectrum 48K, pero también podía ejecutar el sistema operativo CP/M 2.2 y todo su software asociado. ICE es el nombre de la compañía, y significa Intreprinderea de Calculatoare Electronice (Fábrica de computadoras electrónicas), mientras que HC significa Home Computer (Computadora doméstica).

00HC2000.jpg
00HC2000.jpg (13.79 KiB) Visto 7311 veces

Me llamó mucho la atención por su gran parecido con el Spectrum +3, lo que me resultó muy atractivo, aunque posteriormente he leído que su teclado era de muy mala calidad.

Tenía 64 KB de RAM, de los cuales 48 KB estaban disponibles en modo Spectrum y 56 KB en Modo CP/M. Se utilizaron dos chips ROM de 32 KB. los primeros 16K tenían el BASIC de Sinclair, luego 8K con el sistema operativo CP/M 2.2, y por último 8K más con la rom de la interfaz de disco IF1. Este "hackeo" de la rom de la Intefase 1 de Sinclair permitía manejar los disquetes con los mismos comandos BASIC que se usaban para los microdrives (FORMAT, CAT, LOAD, SAVE, VERIFY, ERASE), y se podía pasar al modo CP/M ejecutando la instrucción RANDOMIZE USR 14446. Asimismo, en el arranque, si se ejecuta RUN el ordenador intenta cargar y ejecutar un programa BASIC que se llame "RUN" y que se encuentre en el disquete.

Podéis verlo unos segundos en este vídeo sobre ordenadores rumanos

phpBB [media]


El caso es que ví el trabajo de Rares Atodiresei en está pagina, y cómo ha conseguido, modificando las roms de un Sinclair +3, "virtualizar" un ICE Felix HC 2000, aunque para ello solo pueda funcionar en un emulador, debido a que se apoya en utilizar el periférico Multiface3 pero con el "hack" de poder grabar en su memoria rom, cosa que solo se es posible en los emuladores que soporten esta funcionalidad, caso del Spectaculator, pero no en un Multiface3 real. No obstante, el autor ya señala que con un simple interface con 16K de SRAM que se pudiese paginar tal y como lo hace el Multiface3 (READ puerto 63 / puerto 191 para "page IN/OUT"), podría funcionar en un +3 real con algunas mínimas modificaciones para añadir las pausas que requiere el motor de la disquetera (ahora esas pausas están quitadas porque la ejecución en un emulador no las necesita, ya que los disquetes no son reales, sino imágenes, y el acceso a su información es casi instantáneo).

El caso es que probé a hacerlo funcionar en el emulador Spectaculator, y funcionaba perfectamente. Como el core de Spectrum de la MiST también tiene soporte para el Multiface3, intenté hacerlo funcionar en mi Mistica FPGA16, sin embargo fue imposible, porque faltaba la posibilidad de añadir la opción de que se pudiese escribir en la rom del dispositivo. En esta entrada en Atari Forum, Trying emulate HC2000 computer on Spectrum core with MiST, pregunté si era posible añadir esta funcionalidad al core de Spectrum, y Slingshot me contestó:
I don't feel these "Emulator only" hacks should be added.
Así que ahí se quedó la cosa durante muchos meses. Les pregunté también a ManuFerHi y a Rampa69 si era fácil eso de hacer escribible la ROM del Multiface3 en el core de Spectrum de la MiST, pero parece que no era tan sencillo como me imaginaba.

Y a raíz del cacharreo anterior cambiando las roms por defecto del core de Spectrum, se me vino a la mente la felíz idea de probar a cambiar la rom del Multiface3 por la rom ya "hackeada" de la Interface 1 del proyecto de Rares Atodiresei y... ¡Eureka! ¡Funcionó!

Ya no hacía falta que la memoria rom del Multiface3 fuese escribible para que se machacase con la rom de la IF1 modificada que se encontraba dentro de las roms modificadas del Spectrum +3. Simplemente usando la opción "rom=" del archivo mist.ini podemos conseguir que al arrancar el core de Spectrum la rom del Multiface3 ya se encuentra sustituida por la que necesitamos.

Así que usando los archivos del fichero SD_MIST.7z que puse en el anterior Cacharreos místicos. Parte VI: Cambiando las roms por defecto en el core de Spectrum

SD-_MiST.7z.png
SD-_MiST.7z.png (206.05 KiB) Visto 7311 veces

Y usando esta configuración en el archivo mist.ini:

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

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

;rom=03SP128 ; Spectrum 128 English
;rom=03BBCBAS ; Emulador de BBC BASIC
;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 HC2000 virtualization with +3 roms

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

;rom=11MF3 ; Multiface 3 (in +3 mode)
;rom=11IF1HC ; Multiface 3 (IF1 rom for use with 05PL3HCM)

;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

Conseguimos que si arrancamos el core de Spectrum en modo +3 (opción Memory del OSD con valor +2A/+3) veamos la siguiente pantalla:

01 HC2000.png
01 HC2000.png (142.12 KiB) Visto 7311 veces
Nota: He alterado la versión original de esta pantalla que se usaba con el emulador Spectaculator, cambiando el color de PAPER e INK, centrando el texto en la pantalla, y modificado las indicaciones a seguir por las que se deben usar con la MiST.


Ya solo falta pulsar SHIFT derecho + F11 y entraremos en el BASIC del ICE Felix

02 HC2000.png
02 HC2000.png (134.19 KiB) Visto 7311 veces

Ahora ya podemos usar el HC 2000 como si estuviesemos usando un Spectrum 48 K, pero la magia se produce si montamos el disquete CPM22-HC.dsk que se encuentra dentro de la carpeta /SPECTRUM/HC2000, y ejecutamos a continuación la instrucción RANDOMIZE USR 14446 con la cual entramos en el modo CP/M.

03 HC2000.png
03 HC2000.png (148.77 KiB) Visto 7311 veces
04 HC2000.png
04 HC2000.png (132.29 KiB) Visto 7311 veces
05 HC2000.png
05 HC2000.png (147.92 KiB) Visto 7311 veces
A partir de aquí ya es que cada uno "cacharree" lo que quiera. Dentro de la carpeta HC2000 hay imágenes de disquetes en formato +3DOS para usar en modo Spectrum, e imágenes en formato CP/M.

Por ejemplo, si montáis la imagen 20 BASIC Games.dsk en modo Spectrum, y ejecutáis RUN, se cargará el programa basic "RUN" que hay dentro del disquete y os presentará una lista de juegos que podéis lanzar.

06 HC2000.png
06 HC2000.png (162.68 KiB) Visto 7311 veces
Montando la imagen basictest320k.dsk en modo Spectrum, y si ejecutáis CAT 1, veréis los archivos que contiene el disquete. Son programas en basic. Por ejemplo, para cargar el primero, helichopp, deberéis ejecutar la siguiente instrucción:

LOAD *"d";1;"helichopp"


Para el cacharreo con CP/M sabed que el modo de pantalla es de 64x24, igual que en el CP/M 3.0 del Spectrum +3, y que si se quiere crear más imágenes de disquetes para añadir más software, se pueden hacer copias de las que se encuentran en la carpeta HC2000, y para gestionar su contenido se puede usar, por ejemplo, el potente programa HCDisk 2.0, de George Chirtoaca.

Para salir del modo CP/M y volver al modo Spectrum deberéis realizar un Hard Reset (CTRL+F11). En modo Spectrum con ALT+F11 se hace un Soft reset con desmontaje del disquete, y con SHIFT derecho + F11 un Soft reset pero sin desmontar el disquete.

Os dejo también este video que colgué en mi canal con mis primeros pasos haciendo este cacharreo, y que básicamente repaso lo que habéis leido anteriormente:

phpBB [media]



Ya para terminar, aquí tenéis los manuales en rumano que venían con la máquina, los cuales os invito a echar un vistazo. Me ha resultado sorprendente el parecido del idioma rumano con el español.

ICE Felix - Manual HC2000.pdf
(8.51 MiB) Descargado 429 veces
ICE Felix - Manual CPM.pdf
(5.34 MiB) Descargado 467 veces
icefelix-manualif1.pdf
(2.91 MiB) Descargado 429 veces

Por último, agradecer a Rares Atodiresei su trabajo en este proyecto de virtualización de un ordenador desconocido para la gran mayoría de los aficionados al retro occidentales.

Responder

Volver a “Sinclair ZX Spectrum”