Core PC/XT BETA para ZX-UNOs con 2MB
Publicado: 20 Ene 2017, 17:02
Aunque de momento hay pocos ZX-UNOs con la SRAM de 2 MB interna, os dejo esta versión del core adaptada para ellos.
EDITADO: Añadida versión para la expansión de 2 MB externa.
Se trata de la misma versión lite o recortada, con las siguientes diferencias:
- Eliminado el PSG para el sonido Tandy 3-voice. Se ha reducido notablemente el ruido de fondo.
- Solucionados los gitches en modo texto.
- BIOS Incorporada en el core, ya no es necesario grabarla en los últimos 8 KB de la SD. Ahora se aloja en la BRAM utilizada como memoria de vídeo y el bootloader la copia a la memoria RAM en el primer arranque (tal y como sugirió antoniovillena).
- Frecuencia de trabajo de la memoria SRAM aumentada de 50 MHz a 75 MHz. Este cambio aumenta el rendimiento del core notablemente, aunque el procesador siga funcionando a 25 MHz.
- Mapeo directo de los 2 MB de SRAM en los primeros 2 MB direccionables. La distribución de la memoria queda de la siguiente forma:
· 640 KB de memoria convencional
· 224 KB de memoria superior
· 32 KB para alojar la BIOS
· 64 KB de memoria alta
· 448 KB de memoria extendida (XMS)
Si hacéis la suma, veréis que faltan 640 KB de memoria. Esto se debe a que el core original mapea la memoria de vídeo adicional a los segmentos A000 y B000 en los segmentos 1A000 y posteriores, por lo que esa zona no se mapea como XMS. Sin embargo, aunque esta memoria no se puede utilizar como framebuffer en el ZX-UNO sí que se emplea como backbuffer, permitiendo que algunos juegos EGA/VGA que mostraban corrupciones por falta de memoria ahora funcionen correctamente (principalmente los que dejaban estelas con el movimiento). Prefiero ganar algo de compatibilidad pese a "perder" 640 KB de memoria, ya que con la memoria disponible el core funciona bastante bien. De hecho, sobra memoria superior por todas partes La memoria extendida se puede utilizar para una cache de disco (como smartdrv) o como ramdrive.
Esto muestra el comando MEM:
El DOS identifica incorrectamente la cantidad de memoria XMS presente, pero acierta en la cantidad libre.
Para utilizar la memoria superior, alta y extendida es necesario cargar el driver FDXMS286.SYS. Lo incluyo en la imagen SD, para que al preparar la tarjeta venga configurado de serie y también lo incluyo en una carpeta junto a los ficheros CONFIG.SYS y AUTOEXEC.BAT, para utilizar en caso de querer actualizar una SD preparada para el core del ZX-UNO standard de 512 KB.
Unas capturas de juegos que funcionan gracias a la memoria extra:
Alone in the Dark (MCGA)
Leisure Suit Larry 1 (MCGA)
Another World (VGA, jugable pero con parpadeo en la zona inferior)
Dune 2 (MCGA)
Indiana Jones and the Fate of Atlantis (MCGA)
Street Fighter 2 (MCGA)
Metal Mutant (VGA)
Journey to the West (MCGA)
CrackDown (MCGA)
Operation Wolf (MCGA)
Descarga externa del core (SRAM 75 MHz), imagen SD y driver (2MB SRAM INTERNA)
Descarga externa del core (SRAM 75 MHz), imagen SD y driver (2MB SRAM EXTERNA)
Descarga externa del core a 70, 65, 60, 55, 50, 45, 40, 35 y 30 MHz para probar la expansión de 2MB SRAM externa
Descarga externa del core a 70, 65, 60, 55 y 50 MHz para probar ZX-UNOs con 2MB SRAM interna
Pruebas máxima frecuencia
Lista de software probado
EDITADO: Añadida versión para la expansión de 2 MB externa.
Se trata de la misma versión lite o recortada, con las siguientes diferencias:
- Eliminado el PSG para el sonido Tandy 3-voice. Se ha reducido notablemente el ruido de fondo.
- Solucionados los gitches en modo texto.
- BIOS Incorporada en el core, ya no es necesario grabarla en los últimos 8 KB de la SD. Ahora se aloja en la BRAM utilizada como memoria de vídeo y el bootloader la copia a la memoria RAM en el primer arranque (tal y como sugirió antoniovillena).
- Frecuencia de trabajo de la memoria SRAM aumentada de 50 MHz a 75 MHz. Este cambio aumenta el rendimiento del core notablemente, aunque el procesador siga funcionando a 25 MHz.
- Mapeo directo de los 2 MB de SRAM en los primeros 2 MB direccionables. La distribución de la memoria queda de la siguiente forma:
· 640 KB de memoria convencional
· 224 KB de memoria superior
· 32 KB para alojar la BIOS
· 64 KB de memoria alta
· 448 KB de memoria extendida (XMS)
Si hacéis la suma, veréis que faltan 640 KB de memoria. Esto se debe a que el core original mapea la memoria de vídeo adicional a los segmentos A000 y B000 en los segmentos 1A000 y posteriores, por lo que esa zona no se mapea como XMS. Sin embargo, aunque esta memoria no se puede utilizar como framebuffer en el ZX-UNO sí que se emplea como backbuffer, permitiendo que algunos juegos EGA/VGA que mostraban corrupciones por falta de memoria ahora funcionen correctamente (principalmente los que dejaban estelas con el movimiento). Prefiero ganar algo de compatibilidad pese a "perder" 640 KB de memoria, ya que con la memoria disponible el core funciona bastante bien. De hecho, sobra memoria superior por todas partes La memoria extendida se puede utilizar para una cache de disco (como smartdrv) o como ramdrive.
Esto muestra el comando MEM:
El DOS identifica incorrectamente la cantidad de memoria XMS presente, pero acierta en la cantidad libre.
Para utilizar la memoria superior, alta y extendida es necesario cargar el driver FDXMS286.SYS. Lo incluyo en la imagen SD, para que al preparar la tarjeta venga configurado de serie y también lo incluyo en una carpeta junto a los ficheros CONFIG.SYS y AUTOEXEC.BAT, para utilizar en caso de querer actualizar una SD preparada para el core del ZX-UNO standard de 512 KB.
Unas capturas de juegos que funcionan gracias a la memoria extra:
Alone in the Dark (MCGA)
Leisure Suit Larry 1 (MCGA)
Another World (VGA, jugable pero con parpadeo en la zona inferior)
Dune 2 (MCGA)
Indiana Jones and the Fate of Atlantis (MCGA)
Street Fighter 2 (MCGA)
Metal Mutant (VGA)
Journey to the West (MCGA)
CrackDown (MCGA)
Operation Wolf (MCGA)
Descarga externa del core (SRAM 75 MHz), imagen SD y driver (2MB SRAM INTERNA)
Descarga externa del core (SRAM 75 MHz), imagen SD y driver (2MB SRAM EXTERNA)
Descarga externa del core a 70, 65, 60, 55, 50, 45, 40, 35 y 30 MHz para probar la expansión de 2MB SRAM externa
Descarga externa del core a 70, 65, 60, 55 y 50 MHz para probar ZX-UNOs con 2MB SRAM interna
Pruebas máxima frecuencia
Lista de software probado