virtualxt icon indicating copy to clipboard operation
virtualxt copied to clipboard

Full V20 support

Open Waffle2 opened this issue 2 years ago • 11 comments

The V20 support is not complete, and common utilities are not able to run v20 code. I suspect the 8085 emulation is not working, either :-)

Waffle2 avatar Sep 12 '22 12:09 Waffle2

Yes. That is correct. I should probably not mention V20 since it is only the 186 instruction set that is supported.

This is not the main focus for me so fixing this is quite dependent on contribution. There is a V20 code path an separation in the emulator so it should be possible to add.

andreas-jonsson avatar Sep 13 '22 07:09 andreas-jonsson

As mentioned, I purchased a V20 system exactly for this purpose. Now that I have zig working on my system, and I'm able to compile the code, I'll be contributing to this.

Waffle2 avatar Sep 13 '22 08:09 Waffle2

That's super exciting! Looking forward to it. :)

andreas-jonsson avatar Sep 13 '22 08:09 andreas-jonsson

Hi @Waffle2 how is it going?

Would you like me to send you a hardware validator kit?

You probably need to make some software adjustments to test the 8080 emulation but it should work in theory. The hardest part is probably to find a RaspberryPI4 in this day and age unless you already have one. :)

andreas-jonsson avatar Nov 17 '22 09:11 andreas-jonsson

I have all of the pi's, so not a problem for me :-)

Please email me directly [email protected], and I'll send you my address. I have sockets if you prefer to just mail the bare board...

Waffle2 avatar Nov 17 '22 13:11 Waffle2

I have all of the pi's, so not a problem for me :-)

Please email me directly [email protected], and I'll send you my address. I have sockets if you prefer to just mail the bare board...

I'm trying to send you an email to that address but it just bounces?

andreas-jonsson avatar Nov 17 '22 13:11 andreas-jonsson

I don't know why. Gmail is like that, though. I sent you my address via paypal. If you don't get it, let me know.

Waffle2 avatar Nov 17 '22 13:11 Waffle2

it is only the 186 instruction set that is supported.

I think then it's fine to label that 186 (there were PC clones using 186/188 CPUs actually) - and add another V20 when more of the V20 features get implemented.

Torinde avatar May 01 '24 16:05 Torinde

Yea, true. It should be noted though, that the opcodes that are implemented follows the behavior of the NEC V20 and not the Intel 80186. So in a way it is more like an unfinished V20 rather then a 186.

It is likely the V20 code path will be dropped in the next major iteration unless there is a contribution from someone. :(

andreas-jonsson avatar May 02 '24 06:05 andreas-jonsson

Oh, that'll be a pity - I would rather keep it incomplete (so that someone can potentially expand on it) rather than drop it.

Torinde avatar May 07 '24 09:05 Torinde

Oh, that'll be a pity - I would rather keep it incomplete (so that someone can potentially expand on it) rather than drop it.

Well. That release might be years, so there is still time. :D Soon there should be comprehensive V20 tests available as well.

andreas-jonsson avatar May 07 '24 09:05 andreas-jonsson

Not a goal any more.

andreas-jonsson avatar Jun 18 '24 12:06 andreas-jonsson

unless there is a contribution from someone

Maybe you can share some code from MartyPC:

  • https://github.com/dbalsom/martypc/discussions/109#discussioncomment-9720314

Torinde avatar Jun 21 '24 14:06 Torinde

Well. Marty is written in Rust so it is a bit hard to just share.

There was a fair bit of V20/286 support in VirtualXT 1.0. But It has now been removed in favor of making the code easier to understand and more lightweight.

This was one of the main goals of the project initially and I have decided to refocus on simplicity instead of features.

andreas-jonsson avatar Jun 24 '24 07:06 andreas-jonsson