NEC V20 and 8080 Emulation

252 views
Skip to first unread message

smb...@gmail.com

unread,
Oct 15, 2023, 3:05:29 AM10/15/23
to SEBHC
Every so often the topic comes up, whether we can build a V20 board and patch the monitor to put it into 8080 mode and then go on our merry way. I started to look into the idea as it sounds fun. But I think there's probably quite a few complications. The first one is interrupts.

Attached is a state diagram of the V20 CPU. If I'm reading this right (and the text of the document seems to back this up), then any time an interrupt occurs the CPU will switch back to native (8088) mode. It will be in native mode until the interrupt handler completes and issues the RETI instruction, at which point it would reenter emulation (8080) mode. This suggests to me that we would have to rewrite all interrupt handlers.

Maybe this isn't that hard -- we could write an interrupt handler stub that executes BRKEM (to put us back into emulation), jump to the 8080 interrupt handler, return, call RETEM to go back to native mode, and then do our RETI.

The interrupt circuitry would have to be redesigned somewhat as well. Rather than sticking an RST instruction on the bus, we have to stick a "type vector" on the bus. This might not that hard. Or we could just us an 8259 like most other 8088/8086 based systems.

Has anyone thought about this in more detail?

Scott
v20-modes.jpg

norberto.collado koyado.com

unread,
Oct 15, 2023, 3:56:10 AM10/15/23
to se...@googlegroups.com

This project uses the ATMEGA32A-PU CPU to handle the interrupts. Perhaps it can provide a simpler solution to such problem.

 

https://hackaday.io/project/170924-v20-mbc-a-v20-8088-8080-cpu-homebrew-computer

 

Schematics: https://cdn.hackaday.io/files/1709247312812416/A250220%20-%20SCH.pdf

 

Norberto

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/1ccf4ab1-a199-428d-9365-bbe2ad315063n%40googlegroups.com.

norberto.collado koyado.com

unread,
Oct 15, 2023, 3:01:52 PM10/15/23
to se...@googlegroups.com

On seconds thoughts, why not use the V20 just to run CP/M-86 as we have the 8080A, Z80, Z180, 8085A CPU boards to do CP/M-80/HDOS?

 

I think this is where you can add value…

 

Norberto

Joseph Travis

unread,
Oct 15, 2023, 3:09:20 PM10/15/23
to se...@googlegroups.com
I looked at that project a couple years ago as a possible quick way to get the V20 into an H8.  As configured, it doesn't necessarily lend itself to be shoehorned into the H8.  In the case of the H8, I think you'd be better off staying with the 8284 for clock generation and the 8259 for interrupts.

I like the 8284 because it allows you to have two different clocks (one XTAL, one oscillator) and interfaces with the CPU in such a way to allow for seamless switching between the two.  It may be useful to be able to switch down to a lower (2 MHz) speed in 8080 emulation mode for certain I/O operations, etc.  The high speed oscillator can be as fast as the CPU allows.

I think using the 8259 (somewhat) simplifies how interrupts are handled in normal or emulation mode.  The 8-bit side will be running in a different memory segment than the 16-bit side which can allow for some versatility although in all honesty, I haven't delved deeply into this...  It might be interesting to see how they handled interrupts in the H/Z-100 as all interrupts went through the 8088 and the 8 bit stuff would have been passed to the 8085.

Norberto just responded as I was typing.  The advantages of using a V20 (for 8080 emulation) are: (1) faster CPU, (2) the 16-bit side could be used as a MMU for the 8-bit side for CP/M 3, (3) the challenge.

BR,
Joe



smb...@gmail.com

unread,
Oct 15, 2023, 3:17:30 PM10/15/23
to SEBHC
Yeah, I think what makes the V20 interesting is the 8080 emulation, with the prospect of being able to run the original software (with modifications as necessary).

A pure x86 project aimed at CP/M-86 might as well just use the 8088, 80188, 8086, 80186, or any number of other viable ICs. I have actually thought about that, including designing a DOS-compatible board. It's not like I haven't written enough front-panel monitors lately (for the Z-8000 and 8008 boards).

Hybrid projects could also get interesting -- boot MS-DOS and execute HDOS or CP/M-80 software inside of it.

Scott

norberto.collado koyado.com

unread,
Oct 15, 2023, 6:17:01 PM10/15/23
to se...@googlegroups.com

Isn’t V20 pin compatible with the 8088?

 

Also found this link: https://www.homebrew8088.com/home/raspberry-pi-second-project

 

Norberto

 

smb...@gmail.com

unread,
Oct 15, 2023, 7:17:57 PM10/15/23
to SEBHC
Yes, that's why I suggested if the goal is CP/M-86, might as well call it an 8088. The V20 can be an upgrade like it was 'back in the day.

I think I installed a V20 in my Tandy 1000. Also a switchable clock for it to increase the CPU speed.

I'd rather just jump to 8086 though. There's no need to hobble the memory bus. Put the RAM/ROM on the CPU board like we do with almost everything else. Then the V30 can be the upgrade. :)

Scott

norberto.collado koyado.com

unread,
Oct 15, 2023, 7:54:56 PM10/15/23
to se...@googlegroups.com
Using the 8086 is a better solution. 

Thank you,

Norberto 

Sent: Sunday, October 15, 2023 4:17:57 PM

Joseph Travis

unread,
Oct 15, 2023, 8:25:03 PM10/15/23
to se...@googlegroups.com
Yes, it is pin compatible.  I bought a similar board with a V20 a couple of years ago.  As I recall, the developer had a version of CP/M running on it.  I bought it (cheap) to use the V20 in my H/Z-100 and never used it with my RPi.


Tim McCaffrey

unread,
Oct 19, 2023, 2:17:00 PM10/19/23
to SEBHC
You could also use a V30, and get the ~40% speed up from that as well.
This might require that the memory needs to be on the CPU board as well.

From what I recall about the Z-100, yes the 8088 BIOS handled handing off the interrupts.
(Wasn't there a version of HDOS for the Z-100?)

          - TIm


glenn.f...@gmail.com

unread,
Oct 19, 2023, 2:21:27 PM10/19/23
to se...@googlegroups.com

I believe the z100 started up in 8088 mode. Most of the CP/M 2.2 BIOS was in 8088 code as I recall, as such it didn’t take up space in the 64K memory space of the 8085. I think most of the BIOS calls just did a quick pass over to the 8088 side where the work was done.

 

Pat Swayne did an HDOS emulator for the Z100.

 

And all of this is from the dusty cobwebs of my ancient memory so I could be way off…

 

 

 

From: 'Tim McCaffrey' via SEBHC <se...@googlegroups.com>
Sent: Thursday, October 19, 2023 2:17 PM
To: SEBHC <se...@googlegroups.com>

--

You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.

Lee Hart

unread,
Jan 10, 2024, 5:01:11 PM1/10/24
to se...@googlegroups.com
I still have the schematic (and even PCB tapes) for the H-1000 CPU board for the H89 (Z80 + 8086). It ran essentially all H89 software without modifications, and could boot and run DOS. It took ~100 chips back then, but half of them were memory.

The tricky part was how to marry the Z80's 8-bit bus to the 8086's 16 bit bus so they both shared memory and I/O. That part could be copied to make a dual-CPU H8 board.



norberto.collado koyado.com

unread,
Jan 10, 2024, 5:32:28 PM1/10/24
to se...@googlegroups.com
So we can use your tapes to Order some boards?
From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Lee Hart <electr...@gmail.com>
Sent: Wednesday, January 10, 2024 2:00:53 PM
To: se...@googlegroups.com <se...@googlegroups.com>

Lee Hart

unread,
Jan 10, 2024, 8:35:38 PM1/10/24
to se...@googlegroups.com
Sure; we could! But they're tape on film; not electronic Gerbers. I'm not sure if a modern PC fab house would know what to do with them.

Also, I would make a number of changes. It used a special stacking socket for the dynamic RAMs (two 256Kx1 chips in each socket). Today, I'd use bytewide static RAMs. That would save a lot of room.

It used several 256x8 bipolar PROMs. Today, I'd use CMOS GALs, which could also reduce the number of chips.

Finally, it was a 4-layer board. Expensive, but necessary back then due to FCC EMI requirements. The reduced chip count and higher density achievable with modern PCBs could probably make it 2-sided.

norberto.collado koyado.com

unread,
Jan 10, 2024, 10:43:43 PM1/10/24
to se...@googlegroups.com

As you have the schematics and board top view, it should not be that bad to duplicate. The schematics can be easily entered onto KiCad with the new mods.

 

The man question; do you still have the monitor ROM and of the bipolar PROMs code?

 

Norby

rw...@robhome.com

unread,
Jan 10, 2024, 11:02:34 PM1/10/24
to sebhc Google Group
I think this would be an awesome project to pursue!

Rob Waggoner
________________________________
From: se...@googlegroups.com <se...@googlegroups.com> on behalf of norberto.collado koyado.com <norberto...@koyado.com>
Sent: Wednesday, January 10, 2024 9:43:38 PM
To: sebhc Google Group <se...@googlegroups.com>
Subject: RE: [sebhc] NEC V20 and 8080 Emulation


As you have the schematics and board top view, it should not be that bad to duplicate. The schematics can be easily entered onto KiCad with the new mods.



The man question; do you still have the monitor ROM and of the bipolar PROMs code?



Norby



From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of Lee Hart
Sent: Wednesday, January 10, 2024 5:35 PM
To: se...@googlegroups.com
Subject: Re: [sebhc] NEC V20 and 8080 Emulation



Sure; we could! But they're tape on film; not electronic Gerbers. I'm not sure if a modern PC fab house would know what to do with them.



Also, I would make a number of changes. It used a special stacking socket for the dynamic RAMs (two 256Kx1 chips in each socket). Today, I'd use bytewide static RAMs. That would save a lot of room.



It used several 256x8 bipolar PROMs. Today, I'd use CMOS GALs, which could also reduce the number of chips.



Finally, it was a 4-layer board. Expensive, but necessary back then due to FCC EMI requirements. The reduced chip count and higher density achievable with modern PCBs could probably make it 2-sided.



On Wed, Jan 10, 2024 at 4:32 PM norberto.collado koyado.com<http://koyado.com> <norberto...@koyado.com<mailto:norberto...@koyado.com>> wrote:

So we can use your tapes to Order some boards?



Get Outlook for iOS<https://aka.ms/o0ukef>

________________________________

From: se...@googlegroups.com<mailto:se...@googlegroups.com> <se...@googlegroups.com<mailto:se...@googlegroups.com>> on behalf of Lee Hart <electr...@gmail.com<mailto:electr...@gmail.com>>
Sent: Wednesday, January 10, 2024 2:00:53 PM
To: se...@googlegroups.com<mailto:se...@googlegroups.com> <se...@googlegroups.com<mailto:se...@googlegroups.com>>
Subject: Re: [sebhc] NEC V20 and 8080 Emulation



I still have the schematic (and even PCB tapes) for the H-1000 CPU board for the H89 (Z80 + 8086). It ran essentially all H89 software without modifications, and could boot and run DOS. It took ~100 chips back then, but half of them were memory.



The tricky part was how to marry the Z80's 8-bit bus to the 8086's 16 bit bus so they both shared memory and I/O. That part could be copied to make a dual-CPU H8 board.







On Thu, Oct 19, 2023 at 1:21 PM <glenn.f...@gmail.com<mailto:glenn.f...@gmail.com>> wrote:

I believe the z100 started up in 8088 mode. Most of the CP/M 2.2 BIOS was in 8088 code as I recall, as such it didn’t take up space in the 64K memory space of the 8085. I think most of the BIOS calls just did a quick pass over to the 8088 side where the work was done.



Pat Swayne did an HDOS emulator for the Z100.



And all of this is from the dusty cobwebs of my ancient memory so I could be way off…







From: 'Tim McCaffrey' via SEBHC <se...@googlegroups.com<mailto:se...@googlegroups.com>>
Sent: Thursday, October 19, 2023 2:17 PM
To: SEBHC <se...@googlegroups.com<mailto:se...@googlegroups.com>>
Subject: Re: [sebhc] NEC V20 and 8080 Emulation



You could also use a V30, and get the ~40% speed up from that as well.

This might require that the memory needs to be on the CPU board as well.



From what I recall about the Z-100, yes the 8088 BIOS handled handing off the interrupts.

(Wasn't there a version of HDOS for the Z-100?)



- TIm



--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/ccb6b2c8-8479-46fc-a654-705be7c8ab37n%40googlegroups.com<https://groups.google.com/d/msgid/sebhc/ccb6b2c8-8479-46fc-a654-705be7c8ab37n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/096501da02b9%24126e3a30%24374aae90%24%40gmail.com<https://groups.google.com/d/msgid/sebhc/096501da02b9%24126e3a30%24374aae90%24%40gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CAF__8hd7%2Bh22X4vms-S4Ho5JU2agqGDGLef6WOGs1VBazN9QgA%40mail.gmail.com<https://groups.google.com/d/msgid/sebhc/CAF__8hd7%2Bh22X4vms-S4Ho5JU2agqGDGLef6WOGs1VBazN9QgA%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/SA3PR01MB791897663A8A6895EF3D9CA0F7692%40SA3PR01MB7918.prod.exchangelabs.com<https://groups.google.com/d/msgid/sebhc/SA3PR01MB791897663A8A6895EF3D9CA0F7692%40SA3PR01MB7918.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CAF__8hc1dX0dL4X3V9hboNvWmjFwVb62CfnCm%3DSWc44K1gSW7Q%40mail.gmail.com<https://groups.google.com/d/msgid/sebhc/CAF__8hc1dX0dL4X3V9hboNvWmjFwVb62CfnCm%3DSWc44K1gSW7Q%40mail.gmail.com?utm_medium=email&utm_source=footer>.

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com<mailto:sebhc+un...@googlegroups.com>.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/SJ2PR01MB7933B8BEC9174E2D90A7B451F7682%40SJ2PR01MB7933.prod.exchangelabs.com<https://groups.google.com/d/msgid/sebhc/SJ2PR01MB7933B8BEC9174E2D90A7B451F7682%40SJ2PR01MB7933.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
winmail.dat

Lee Hart

unread,
Jan 11, 2024, 1:15:49 PM1/11/24
to se...@googlegroups.com
"Not bad to duplicate", except for there being close to 100 ICs on a 10" x11" 4-layer PCB. :-) That's a lot of work! But I'll grant you that with modern tools, it would take a LOT less time to do it than it took us in the first place.

I do have the HEX files for the PROMs, and the software files on disk. I don't know if the disks are still readable, though. A certain amount of archaeology may be needed.

But if we're thinking of an H8 dual-CPU board, we would probably only need to borrow the CPU portion, and probably the RAM (nowdays, just two 512Kx8 bytewide chips).

I'll provide all the help I can if someone is "up" for a challenging project.


To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/DS0PR01MB8011AC9D3F30BEFB35546C30A1682%40DS0PR01MB8011.prod.exchangelabs.com.

Steven Hirsch

unread,
Jan 12, 2024, 10:37:29 AM1/12/24
to se...@googlegroups.com
On 1/10/24 20:35, Lee Hart wrote:
> Sure; we could! But they're tape on film; not electronic Gerbers. I'm not sure
> if a modern PC fab house would know what to do with them.
>
> Also, I would make a number of changes. It used a special stacking socket for
> the dynamic RAMs (two 256Kx1 chips in each socket). Today, I'd use bytewide
> static RAMs. That would save a lot of room.
>
> It used several 256x8 bipolar PROMs. Today, I'd use CMOS GALs, which could
> also reduce the number of chips.
>
> Finally, it was a 4-layer board. Expensive, but necessary back then due to FCC
> EMI requirements. The reduced chip count and higher density achievable with
> modern PCBs could probably make it 2-sided.

It would also be great to get the design information on those CDR drive
controller boards... Hint, hint. :-)

Lee Hart

unread,
Jan 12, 2024, 6:52:46 PM1/12/24
to se...@googlegroups.com
It would also be great to get the design information on those CDR drive
controller boards... Hint, hint.  :-)

Thanks for the poke in the patoot. :-) In fact, I have the box with my H89 CDR disk controller, manuals, and disks all sitting on my desk, just 3 feet away, for the past 6 months. Somehow, I just never seem to get around to taking it somewhere to get scanned so I can post it.
 

Steven Hirsch

unread,
Jan 13, 2024, 10:35:18 AM1/13/24
to se...@googlegroups.com
I sure wish you would carry through on the shipment!
Reply all
Reply to author
Forward
0 new messages