VOGONS


Pentium VME?

Topic actions

First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

How is the IR bitmap handled compared to the I/O bitmap? I'd assume it's using default byte values of 0x00 or 0xff when it's not past the I/O bitmap pointer itself(in much the same way it's done for compatibility with the I/O bitmap, but in opposite direction)? What happens when the I/O bitmap pointer points to 5 past it's address(IOPB offset being 69h)? What does the byte at offset 68h mean in that case? The first or the last 8 interrupts?

Last edited by superfury on 2019-06-19, 16:49. Edited 1 time in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

One little related point. What happens when during VME's V86 mode an IRET is executed with IOPL<3? Is it throwing a #GP(0) or acting the same way as IOPL 3, but with virtualized IF etc.? So the same like POPF regarding faults, VIP and IF/VIF?

Edit: Also, what is the fault return instruction? Is the fault handler return address to the IRET without anything popped, or is the return address the instruction after the IRET has completed? So will the IRET complete, then a fault is thrown before starting the instruction the IRET returns to, with VIF and VIP on the fault handler's stack being set?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 2 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

According to what I can find, V86MON seems to be able to use all different V86 modes, including VME. But I can't find it anywhere? Anyone has a working link to that one? I could really use it to verify VME emulation correctness(as well as normal V86 mode).

Edit: Managed to find it in some archive called PJ84.zip(https://www.pcorner.com/list/MAG/PJ84.ZIP/INFO/).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 4 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

Looked there originally, but looking again(for the dloads link)...

I notice the V86MON1.ZIP and VME1.ZIP are actually v86mon1.zip and vme1.zip when manually listing the dloads directory. Perhaps he, while uploading, forgot the case sensitivity or was using a Windows or MS-DOS machine(for the HTML pages)? Anyway, the files are there, the links to them are dead(upper case instead of lower case) 😖

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 5 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

I just ran all vme1-8 examples. They all report "Passed.".

I also ran both v86mon and ev86mon programs. They say they're running the 8086 instruction mix(at 500KIPS Pentium emulation of UniPCemu), reporting 1350D2D8 cycles on V86, and a lot smaller number on EV86(VME).

Does that mean the VME emulation is working correctly? It doesn't look like those two start becoming resident, like EMM386 does?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 6 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

Is there any full VME using EMS memory manager for MS-DOS around? So like JEMM386, but using all VME functionality(thus, including VIP flag usage for interrupts)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 8 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

Just installed QEMM 7.0(7.5 sometimes in the installer). UniPCemu shows the CR4's bit 0&4 being set, so VME is active at least. I don't see if it's using virtual interrupts are being used(in particular VIP), but it's running correctly.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 9 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

The VIP flag isn't being set, it seems?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 10 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

Hmmm... With QEMM, checkit diagnostics crashes with a R6001, CPU speed has no effect on it.

EMS test(from the emulated EMS board website) has no issues.
So does No$GMB.

Simcity seems to be unresponsive, perhaps due to no installed mouse driver?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 11 of 11, by superfury

User metadata
Rank l33t++
Rank
l33t++

This is the ev86mon being ran(but returns to the MS-DOS prompt, not resident):

141.jpg
Filename
141.jpg
File size
39.38 KiB
Views
658 views
File license
Fair use/fair dealing exception

Is there a way to make it resident? To run other apps with it, other than the 8086 instruction mix?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io