Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Emulation of old PCs, PC hardware, or PC peripherals.

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-8-07 @ 20:13

Hmmmm... Something is going strange when testing paging on the Pentium emulation, running debian 3.0r0(from https://sourceforge.net/projects/bochs/ ... n%20Linux/)? Trying to run it on the Pentium emulation makes the emulator somehow lock up, because the Paging TAG generation(which is used for looking up the entry and storing it) WILL set bit 0 to 1(the present bit) when saving the TLB entry. But when reading the TLB entry from the paging TLB, somehow all bits are correctly set in the tag to look it up, but bit 0 is reset? Even though the basic expression used is:
Code: Select all
//W=Writable, U=User, D=Dirty
OPTINLINE uint_32 Paging_generateTAG(uint_32 logicaladdress, byte W, byte U, byte D, byte S)
{
   return (((((((((S<<1)|D)<<1)|W)<<1)|U)<<1)|1)|(logicaladdress & 0xFFFFF000)); //The used TAG(using a 4KB page, but the lower 10 bits are unused in 4MB pages)!
}


Why is it clearing bit 0? All other bits are correctly set, but bit 0 is reset?

The only thing following it is:
Code: Select all
      TAG &= (curentry->entry->addrmask|0xFFF); //The full search mask, with the address width(KB vs MB) applied!


Where curentry->entry->addrmask is 0xFFC00000 due to it being in a 4MB TLB entry? But that still has bit 0 set, but it's still cleared after these two lines(Paging_generateTAG and the TAG &= (curentry->entry->addrmask|0xFFF); ? Why is this happening?

Edit: Managed to fix it. It seems a problem with the mask to be applied(for searching tags and masking off bits that are to be ignored(e.g. writable and dirty bits in some cases for memory read accesses) was causing issues. Since the mask and the tag that's pre-masked for quick search weren't matching properly with 4MB entries, it was failing to properly recognise them when the upper bits were non-zero(upper 10 bits of the address(bit 12 to 21) that were added in the case of the 4MB pages).
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-8-09 @ 19:11

For the software mentioned in: viewtopic.php?f=9&t=64389

Just tried the Into The Shadows demo. It seems to run fine, but very slow(of course, since it's running at 20% realtime speed).

Still need to test the other two.

Edit: ATP(Airline SImulator as peterferrie called it, if I'm not mistaken) seems to run fine. Just ran a little testflight. Everything seems to be working fine as far as I can see.

Edit: Hmmmm.... Greedy doesn't seem to respond to input? It gets to the main menu without issues, but unresponsive otherwise?
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-8-11 @ 12:14

Hmmm.... After debugging some more on Basic Linux on the Pentium emulation, I see a 0x18 value being loaded into DS, which faults out due to a 0x00 being in the Access Rights byte?

Edit: Hmmm... Debugging some more I see the GDTR origianlly being at 906b4(Linear Address) with Access Rights 0x93(normal). Then 0x92 at C01BDFC0. Then 0x00 at the same base address?
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-8-14 @ 16:29

Just retried OS/2(the same one as earlier). It says Loading on the second disk, then complains it cannot find "A:\COUNTRY.SYS" (without quotes)?

Anyone knows what the cause might be? I do see it using call gates, but they seem to work fine?
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-8-28 @ 13:18

Hmmmm... Something weird happened to the Day of The Tentacle (Maniac Mansion 2) for MS-DOS. When starting the game, it seems to somehow hang at a black screen?

Is this perhaps related to the fix of the loading of SS:ESP when bopping down to user mode from kernel mode?
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Re: Any good MS-DOS 80386/80486/Pentium(on slow system) games for testing Protected mode emulation and instructions?

Postby superfury » 2019-9-06 @ 09:01

Yay! Having fixed the x86 protected mode breakpoints, NT 3.1 now continues past it's hard diskmcheck(chkdsk reports they're clean)! :D

Edit: Yay! It properly starts the GUI part of the setup! Mouse cursor confirmed!

Edit: Mouse works! It gives a message box(ue=sing ET4000, perhaps VGA during the first part of setup): "The system isn't properly configured. Please run setup again".
superfury
l33t
 
Posts: 3206
Joined: 2014-3-08 @ 11:25
Location: Netherlands

Previous

Return to PC Emulation

Who is online

Users browsing this forum: No registered users and 1 guest