¿ NEC V20 y V30, 8080 compatible ?

Avatar de Usuario
ron
Mensajes: 16782
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 350 veces
Agradecimiento recibido: 388 veces

¿ NEC V20 y V30, 8080 compatible ?

Mensajepor ron » 09 Feb 2016 11:14

Este tema ya lo hemos tratado en RW 1.0 y en el hilo de la KCS de AMIGA. La ventaja de un NEC V30 como sustituto de un 8088. Además que puede funcionar a 10 MHz, aunque ahora que revisamos el tema hay voces que dicen que la mejora de rendimiento no es tan tan evidente. Lo importante es que los NEC V20 y V30 tienen una característica que a muchos al menos les llamará la atención.

Viene de RW 1.0: viewtopic.php?p=100046119#p100046119

Si tienes un PC que monte un NEC V20 o V30 estás de suerte porque viene con premio incluido. Hay mogollón de compatibles que montan un NEC.

El NEC V30 es un microprocesador CMOS de 16 bits, object-code y pin-compatible con el Intel 8088. El V30 funciona a la misma velocidad que el 8088, pero es entre un 10% y un 30% más rápido ( según la aplicación ) debido a las mejoras internas del bus dual interno de 16 bits de datos, con un cálculo de dirección más rápido y efectivo, una mejor aplicación de bucle contador/registro de desplazamiento y algunas otras mejoras. Otras fuentes dicen que en realidad es un 5% más rápido.

necv30.png
necv30.png (24.16 KiB) Visto 527 veces


The NEC V20/V30 CPUs are designed to be drop in replacements for the 8088/8086 respectively. Note that 8086 and 8088 are NOT pin compatible, nor are the V20 and V30 interchangeable. In theory, under certain conditions the NEC V20/V30 chips can provide a 30% improvement over their 808x counterparts, but under typical operating conditions it is closer to 10-15%. Using a special TSR called FASTV20.COM you can get perhaps another 10% boost by altering memory refresh times (though gurus recommend against it). If you do all the math, a V30 at 10MHz is around 3.5x to 4x faster than an 8088 @ 4.77MHz, or roughly comparable to an 8Mhz 80286. The V20/V30 CPUs also include the 80186 instruction set, which will allow most 80286 software to run as long as it does not require protected mode or extended memory (most 286 software does not use either). I find that the extra power of the 10MHz V30 allows me to play many SCI VGA Sierra games at a fairly reasonable speed, especially when using VGA graphics. Quite a feat for an XT I must say! By todays standards, all of this seems quite meaningless...and understandably so. But if youre a vintage PC freak like me, then its pretty darn cool! Now I must admit that finding a 10MHz V30 system is not easy. I was lucky and didnt pay too dearly for mine. My two fall back options would be either the 8MHz V30 or 10MHz V20. Theres no excuse not to be able to have either of these, as they are both pretty common. 10MHz 8088 boards are everywhere, and can easily be upgraded to V20. Those are about 2.5x the speed of a standard XT. PS/2 models 25 and 30 use 8086 at 8MHz and can be upgraded to V30.


El V30 incluye el modo de ejecución nativa Intel 8080, en el que se pueden ejecutar todas las instrucciones 8080. El conjunto de instrucciones V30 nativo de NEC incluye todas las instrucciones 8086/8088, las nuevas instrucciones del microprocesador 80186/80188 e instrucciones únicas para V30 - procesamiento de bits, instrucciones BCD empaquetadas e instrucciones especiales para cambiar el procesador a modo de emulación 8080 y viceversa.

El V30 es casi el mismo procesador que el V20, con la excepción de que el V20 tiene un bus de datos de 8 bits.

El V20 es casi el mismo procesador que el V30, con la excepción que el V30 tiene un bus de datos de 16 bits.

Y ahora viene la parte interesante que en su día no entendimos del todo. El modo de emulación o ejecución de código 8080 tiene el inconveniente que no acepta código Z80. En las pruebas que hice el principal problema que tenía es que daba por hecho que cualquier binario se iba a ejecutar sin problema y de eso nada, hasta que me di cuenta que lo estaba haciendo mal, los binarios deberían ser 8080.

El NEC V50 si incluye ejecución de código Z80.

Salvado este escollo y teniendo claro lo que si ejecuta, es cuando se le puede sacar partido.

Conociendo un poco mas los V30, ya podemos usar los programas que nos permiten ejecutar y emular instrucciones 8080

Cuando hablo de emulación no es emulación al uso, los NEC V20 y V30 ejecutan instrucciones nativas 8080. Lo que le permite ejecutar casi cualquier programa CP/M-80 con las siguientes excepciones:

Que el programa de CP/M-80 debe ser sólo 8080 ( sin código Z80 ) o la instrucción HFC ( halt and catch fire ) borrará todos los bytes de RAM, por eso con binarios para Z80 peta.

Que el programa 8080 no debe intentar ninguna llamada a BIOS que no sea para la consola de E/S. Todas las demás llamadas se ignoran.

De momento no he encontrado ninguna imagen de disco con un CP/M-80 que haga boot en un PC con NEC V20 o V30, pero en principio con una BIOS correctamente escrita, el CP/M-80 se puede ejecutar en modo nativo en un PC con un NEC V20 o V30. Si el V20 se ejecuta a 4,77 MHz, se ejecutará CP/M-80 en mono nativo mucho más rápido que en cualquier modo emulado.

Sin embargo, hay que saber que si se ejecutan códigos de operación Z80-específicos no funcionará. Por tanto algo como el Turbo Pascal no lo podremos ejecutar ya que utiliza las instrucciones del Z80

El NEC V20/V30, cuando se encuentra en modo de 8088, utiliza el código de operación 8088 "POP CS" para cambiar a modo 8080.

Por supuesto, esa hipotética BIOS para NEC V20 / V30 para hacer boot y ejecutar el CP/M-80 debería cambiar de nuevo al modo de 8088 siempre que se realizase una operación de E/S, y luego volver al modo 8080 cuando la E/S se hubiera completado.

Igual encontráis algo, lo importante es poder ejecutar el software nativo 8080 con las herramientas apropiadas.


RECURSOS

http://www.bigmaybe.com/learn?s=CPMulator

CPMulator was developed after the release of the V20. The processor was also able to emulate the 8080 instruction set in hardware. This opened the possibility of running older code on the new IBM machines. CPMulator was designed to modify CPM binaries to make them run as if native 8088 DOS programs. The code to put the CPU in emulation mode was prefixed to each CPM executable. Any calls to the CPM operating system were intercepted and translated to DOS operating system calls. The program would leave 8080 emulation mode, make the operating system call, translate the results to CPM standards and returned to emulation mode and continue the original program.

ESTE ES EL BUENO !!!

necvcpm.zip
(7.05 KiB) Descargado 34 veces

NECVCPM.ZIP: 7K Source code for the CPM-80 emulator. Executes CPM-80 under CPM-86 on the NEC V20/V30 range of processors. Source code contains instructions of how to compile .CMD program and how it works.

v2080.zip
(4.84 KiB) Descargado 27 veces

There was a V2080 CPMulator program which allowed to run 8080-based CP/M-80 programs on a MS-DOS machine.
v2080.zip
64K V2080 CPeMulator Version 3.21 as of 8 January, 1988
OPERATION: To run a program, type "V2080 FILENAME" at the MS-DOS prompt (CP/M programs are assumed to have a filename extent of .CPM). Use of this program requires that a NEC V20 chip be installed in the computer in place of the 8088 mpu (or V30 for 80186 machines). This will allow you to run 8080 based CP/M-80 programs on your MS-DOS machine (within hardware and software limitations).

https://stuff.mit.edu/afs/sipb/project/ ... rs/simtel/

V2080J88.ARC B 24267 880118 Run CP/M-80 programs on system with V20 CPU
V20BOOT.ZIP B 81330 900522 Turbo Pascal source code for V20 CP/M emulator
Z80MU52B.ARC B 117207 900108 CP/M (Z80 processor) emulator for MS-DOS
ZRUN321.ARC B 34238 881216 Z80 CP/M emulator for MS-DOS
ZSIM12.ZIP B 276636 920115 Z80 emulator + CP/M 80 bios to RUN CP/M


http://www.cpm80.com/

Avatar de Usuario
DyLucke
Mensajes: 3969
Registrado: 30 Oct 2010 12:52
Agradecido : 41 veces
Agradecimiento recibido: 28 veces

Re: ¿ NEC V20 y V30, 8080 compatible ?

Mensajepor DyLucke » 09 Feb 2016 16:42

Estupenda recopilación de información Ron.
Sin embargo no puedo aportar mas de lo que aporté en su día en RW 1.0

No he tenido tiempo de probar según que cosas en la KCS, de hecho tengo muchas cosas aparcadas porque los niños quitan muchísimo tiempo.

Solo apuntar como puntualización, que el V20 es básicamente un 8088, pero el V30 es un 8086... Como has comentado con mayor velocidad de ejecución a misma velocidad de reloj.
Entre un 10 y un 30% dicen algunos. La verdad no es que vayas a poder rodar Windows 95 en un V30, pero se defiende bastante mejor que un Intel para según que cosas.

El hack para rodar Wolfenstein 3D en un XT es posible en un Intel... Pero el resultado no es el mismo.
"I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
DyLucke
Mensajes: 3969
Registrado: 30 Oct 2010 12:52
Agradecido : 41 veces
Agradecimiento recibido: 28 veces

Re: ¿ NEC V20 y V30, 8080 compatible ?

Mensajepor DyLucke » 09 Feb 2016 17:00

En un i 086 a 4,77 [Incluye la descarga del .exe modificado]
https://www.youtube.com/watch?v=5f7gW5X24ao



En un V30 a 7mhz
https://www.youtube.com/watch?v=aX0cs7SR_n0


La KCS rodando Windows 3.0
https://www.youtube.com/watch?v=_W4A4lFye2Y
"I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".

Avatar de Usuario
zx81
Mensajes: 134
Registrado: 23 Feb 2013 21:31

Re: ¿ NEC V20 y V30, 8080 compatible ?

Mensajepor zx81 » 10 Feb 2016 17:07

Hace ya años, cuando mi PC era un Amstrad PC1640, hice el invento de sustituir el 8086 que llevaba por un NEC V30. Aparte de las mejoras en velocidad, recuerdo que con el Turbo C v3.0 podía compilar los programas usando código de 286, ya que los V20/30 incluyen algunas instrucciones nuevas de esos procesadores (creo recordar que entre otras estaba el par de instrucciones ENTER/LEAVE, pero hablo de memoria y podría equivocarme).

Cuando vendí el PC1640 de segunda mano, llevaba el V30 y, aunque lo dije, jamás me reclamaron. :)
Today's robots are very primitive, capable of understanding only a few simple instructions such as 'go left', 'go right' and 'build car'.
John Sladek

Empieza a jugar sin tener que compilar: Emulador JSpeccy

Avatar de Usuario
DyLucke
Mensajes: 3969
Registrado: 30 Oct 2010 12:52
Agradecido : 41 veces
Agradecimiento recibido: 28 veces

Re: ¿ NEC V20 y V30, 8080 compatible ?

Mensajepor DyLucke » 18 Jul 2017 00:36

Sólo una puntualización ahora que caigo.
El NEC V30 es una mejora del 8086.
El NEC V20 lo es del 8088.

Como sabemos, las diferencias entre el 8088 y el 8086 son obvias, incluyendo el patillaje.
"I'm a piece of the sun,
i'm an army of one...
I'm the man with the gun".


Volver a “PC & Compatibles X86”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado