Varias dudas sobre el PC/XT y lo que le rodea

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por Uto » 19 May 2017, 11:02

chernandezba escribió:
Uto escribió:
En realidad le basta con un 80186, o simplemente el core de PC soporta lo que quiera que usara del 286, porque funcionar funciona, eso te lo puedo asegurar :-D

Por cierto, mola lo del driver EMS en disco, esas máquinas nos exprimían el ingenio :-D
Pero va en el core del zxuno?
Sí claro, las imágenes de mis tweets son del Core de ZX-Uno (con 2Mb claro, concretamente las externas).

Avatar de Usuario
brunosilva
Mensajes: 312
Registrado: 18 Jun 2016, 19:54

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por brunosilva » 19 May 2017, 11:09

i'm trying more games with the core... in the weekend i will update the google drive excel list... and also the files...

i'm using msdos 6.22 to do the tests...

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por Zup » 20 May 2017, 09:06

Leo, releo, y estoy más liado.

- Entiendo que la XMS está emulada/simulada/implementada por hardware (y corre sobre la RAM del ZX-Uno) ¿es así? y que se necesita un driver especial para emular EMS.

- El driver que se sugiere para EMS lo que hace es utilizar ficheros en disco para emularla. En un disco duro, tiene sentido (aunque habría que ver qué pogramas soportan 8086 y XMS), pero en una SD estaríamos tirando a la basura un montón de ciclos de escritura en la SD. Históricamente sería más correcto un XT con EMS, y supongo que los programas compatibles con XT serán más de usar EMS que XMS.

- ¿Hay posibilidad de emulación de EMS sobre XMS? En DOS normal, se usa EMM386 pero en un 80186 dudo mucho que esté disponible.

- En cuanto a lo del soporte de XMS en DOS 3.x, el beneficio es que el core y el COMMAND.COM de MS-DOS 3.x son más pequeños que los de MS-DOS 5. Si MS-DOS puede compensarlo metiendo más cosas en memoria alta, pues el DOS 5 sería la opción a usar. En cuanto al resto de programas... pues serán felices usando la XMS que les deje libre el driver.

Sigo buscando algo de software (y necesito tiempo) para probarlo en el core. De momento, miraré mis juegos viejos a ver si funcionan...

P.D.: Sería un puntazo hacer un ZX-Uno PC/XT emulado en PCem... ayudaría un montón a la hora de probar nuevos sistemas operativos y juegos... me pregunto hasta que punto es emulable la BIOS de ZX-Uno.

Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por DistWave » 20 May 2017, 20:12

Zup escribió:- Entiendo que la XMS está emulada/simulada/implementada por hardware (y corre sobre la RAM del ZX-Uno) ¿es así? y que se necesita un driver especial para emular EMS.
Es exactamente igual que en un PC, con todo el lío que conlleva. :mrgreen: La memoria extendida no se puede emular: hay o no hay. En procesadores x86 con bus de direcciones de 20 bits (8088/8086/V20/V30/80188/80186, etc) no puede haber porque por definición, la memoria extendida empieza a partir de primer megabyte del espacio de direcciones y estos procesadores sólo direccionan 1 MB. El driver que gestiona la memoria XMS (HIMEM.SYS en MSDOS o FDXMS286.SYS en Freedos) también controla la línea A20 para utilizar los primeros 64 KB de memoria extendida como memoria alta (HMA) y facilitar el acceso al resto (XMS)
La memoria EMS siempre necesita un driver, porque cuando se hizo la especificación no se concretó como se implementaría en el hardware. Lo normal es que la memoria estuviera en una tarjeta ISA y cada fabricante de expansiones tuviera libertad en el modo de hacer la implementación, teniendo como consecuencia final que cada tarjeta llevase su propio driver y no hubiera uno genérico. Gracias a esta libertad de implementación, aparecieron drivers shareware que emulaban EMS utilizando paginación a disco o a XMS (como EMM286) pero son extremadamente lentos, ocupan unos 100 kb de memoria convencional y no tienen utilidad práctica alguna.
Con la aparición de los 386 se creó el driver EMM386 que permitía emular EMS y UMB a partir de XMS de manera transparente y eficiente, pero eso es otra historia más reciente en el tiempo.
Zup escribió:Históricamente sería más correcto un XT con EMS, y supongo que los programas compatibles con XT serán más de usar EMS que XMS.
Si, pero no creo que aporte mucho al core ya que esos programas para XT que usaban EMS eran aplicaciones ofimáticas como la hoja de cálculo Lotus 1-2-3.
Zup escribió:- En cuanto a lo del soporte de XMS en DOS 3.x, el beneficio es que el core y el COMMAND.COM de MS-DOS 3.x son más pequeños que los de MS-DOS 5. Si MS-DOS puede compensarlo metiendo más cosas en memoria alta, pues el DOS 5 sería la opción a usar. En cuanto al resto de programas... pues serán felices usando la XMS que les deje libre el driver.
La opción del DOS 3.x puede ser útil en un ZXUNO de 512 KB, porque ahí si que hay que arañar hasta el último KB de memoria. Pero en uno de 2 MB teniendo memoria alta, la mejor opción es un DOS 5 o superior. La imagen que puse en un principio con el core es de PC-DOS 7.0r1, la última que funciona en equipos inferiores a 386 y la que más memoria convencional deja libre tras cargar el DOS en memoria alta.

Avatar de Usuario
brunosilva
Mensajes: 312
Registrado: 18 Jun 2016, 19:54

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por brunosilva » 20 May 2017, 20:33

@distwave - should i use pcdos 7.0 to try the games or can in use msdos 6.22?


Sent from my iPhone using Tapatalk

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por chernandezba » 21 May 2017, 23:07

En breve os pasare el emulador de EMS que hizo mi hermano, ahora que él ha podido rescatar el código (es del año 1994). Estará bajo licencia GNU, código fuente y binario disponible.
Ahora mismo no se cuanto ocupa en memoria, todavía no lo he probado, pero el exe ocupa unos ridiculos 2 KB :chocala!:
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por chernandezba » 22 May 2017, 12:54

He abierto este hilo para el tema del emulador de EMS:

viewtopic.php?f=56&t=1462
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Avatar de Usuario
Hodor
Mensajes: 19
Registrado: 25 Nov 2016, 11:00

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por Hodor » 24 May 2017, 19:37

DistWave escribió: Contemplado está, pero no tengo tiempo para trabajar en el core ni se si lo tendré en un futuro. Tenéis los fuentes en el repositorio :roll:
Ojalá cambie la situación en el futuro y puedas mejorar este core tan interesante. Desde mi punto de vista le añade mucho valor al :zxuno: puesto que hablamos de hardware generalmente caro de conseguir y con muchos años a sus espaldas.
DistWave escribió:
Higgy escribió:Is it possible to run this amazing demo for 8088+CGA?
No, it is not possible and it never will be. That demo needs a real IBM PC/XT running at 4.77 Mhz with an original IBM CGA video card.
Pregunto desde mi ignorancia sobre las tripas de las FPGAs, ¿no se supone que éstas pueden conseguir una implementación perfecta del hardware original?

Un saludo y gracias por todo el trabajo que has hecho, compañero.

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por Uto » 24 May 2017, 21:15


Pregunto desde mi ignorancia sobre las tripas de las FPGAs, ¿no se supone que éstas pueden conseguir una implementación perfecta del hardware original?
Es posible -siempre que quepa en la FPGA concreta - pero alguien tiene que hacerlo.

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

Re: Varias dudas sobre el PC/XT y lo que le rodea

Mensaje por Zup » 25 May 2017, 08:17

Hodor escribió:Pregunto desde mi ignorancia sobre las tripas de las FPGAs, ¿no se supone que éstas pueden conseguir una implementación perfecta del hardware original?
Hasta donde sé, el core es una adaptación de otro core para otra placa con FPGA. Las diferencias con lo que se necesita para correr esa demo serían:

- El procesador del core podríamos llamarlo 80186+. Por lo que sé tiene las instrucciones del 80186 y alguna más, pero no llega a implementar un 80286 (falta modo protegido). Lo que necesitas en el core sería un 8086, ni más ni menos. La ventaja para el ZX-Uno es que (en teoría) puede correr más software que el XT original.

- El procesador del core no corre a 4.77 MHz, sino a una velocidad bastante superior. La ventaja para el ZX-Uno es que algunos programas funcionarán de manera mucho más fluida. Las desventajas son que algunos programas (por ejemplo, juegos CGA que utilizan bucles temporizados para sincronizar la acción) correrán más rápido. En tu caso, la demo correrá más rápido de lo que debe, arruinando algunos efectos.

- La tarjeta gráfica del core es un cacho de VGA (o MCGA). Se han implementado los modos más normales de juego y no están implementadas todas las características "raras" ni los modos EGA o CGA. La ventaja es que es agradable a la vista; la desventaja es que montones de juegos antiguos no funcionarán (por ser CGA o EGA). En el caso de esa demo, se necesita una CGA (y creo que tenía que tener implementada la salida de vídeo de una manera específica) para funcionar.

- No está implementado todo el sistema "como debería". No hay bus ISA, probablemente las velocidades entre componentes no sean exactas a las del PC original... la ventaja es que el core cabe en la FPGA y la mayoría de los programas ni se enterarán. La desventaja es que esa demo en concreto depende de un equilibrio muy exacto entre velocidades de bus, de componentes, de memoria, de vídeo (y, ojo, esa demo es que ni siquiera funciona en el 100% de los PCs a 4.77 MHz).

Resumiendo... para que esa demo funcione tendrías que tirar a la basura el core de CPU y la gráfica, y poner un 8086 y una CGA. Luego tendrías que ajustar los timings exactos... y todo para correr un solo programa.

En mi opinión, si hubiera que modificar este core, los cambios más interesantes serían:

- Quitar la tarjeta semi-VGA y ponerle una CGA completa o una EGA completa (si es que caben). Pierdes compatibilidad con algunos programas; ganas con un montón de otros programas. Además, la CGA permitía la salida por video compuesto, con lo que te quitas de encima un cable VGA.

- Ponerle un switch con tres velocidades: 4.77 MHz, 8 MHz y a toda pastilla. No hace falta que sean timings exactos, con que los juegos tipo Freddy Hardest se vuelvan jugables va que se mata. Este cambio es casi imprescindible en el core CGA (en el VGA, los juegos suelen sincronizarse al retrazado vertical).

Como todo esto no cabría en la FPGA, mi sugerencia sería hacer dos ramas: una con el core VGA tal cual está y otra con el core CGA. No sé si el mundo de las FPGA permite hacer compilación condicional, que ahorraría bastante tiempo cuando se cambien cosas en los cores.

Responder