VOGONS


First post, by rfka01

User metadata
Rank Newbie
Rank
Newbie

Hi folks,

which features would you test / what programs would you throw at an emulator to make sure it's working as best as possible?
I'm not after graphics tests, just the motherboard emulation.

Robert

Reply 1 of 7, by superfury

User metadata
Rank l33t++
Rank
l33t++

There's the Landmark/Supersoft AT Diagnostics BIOS? (Supersoft/Landmark Diagnostic ROMs for IBM 5150/5155/5160/5170)

That tests parts of the motherboard(and a large part of the CPU(except it's instructions).

There's also CheckIt! Diagnostics for MS-DOS which does a simplified version on the protected mode part(as well as DMA and Interrupt Controller with it's system board tests). It also has some more tests for keyboard(8042+Keyboard) and video adapter(although that probably uses the video BIOS expansion ROM instead). And of course other tests(PIT timer vs CMOS time check in it's CMOS clock test).

For 80386+ there's also the test386.asm test suite, which does a bit more extended instruction, protected mode, paging, some system instructions(no protected mode interrupts, stack checks etc. yet unfortunately).

Unfortunately CheckIt currently refuses to run on my Pentium emulation, even though it's a superset of the correctly functioning(afaik, since it runs checkit in real mode(non-V86 mode) correctly. It will currently only run on the Pentium emulation using a Virtual 8086 mode monitor(like JEMM386, QEMM or EMM386), but crash with a literal INT 0h in real mode(which is kind of odd, especially since it shouldn't use Pentium-specific instructions afaik).

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

Reply 2 of 7, by rfka01

User metadata
Rank Newbie
Rank
Newbie

Good idea re. the Landmark/Supersoft ROM and Checkit. I also remembered the Diagnostics disks for IBM.

Later 80286s will have memory expansion features, but I need to look up what in terms of XMS/EMS et al. is possible ... and how to test it. It's been quite a while since that was relevant 😀

Robert

Reply 3 of 7, by superfury

User metadata
Rank l33t++
Rank
l33t++

XMS also uses LOADALL to do it's work(himem.sys) on a 80286. Not on the 386 though(new protected mode switch mechanism). Don't know of EMS managers on a 286 though.

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

Reply 4 of 7, by crazyc

User metadata
Rank Member
Rank
Member

Don't know of EMS managers on a 286 though.

286 can't emulate EMS like the 386 can so it's only available with an EMM adapter like for XTs or a chipset that has built in support like the NEAT.

Reply 5 of 7, by superfury

User metadata
Rank l33t++
Rank
l33t++
crazyc wrote:

Don't know of EMS managers on a 286 though.

286 can't emulate EMS like the 386 can so it's only available with an EMM adapter like for XTs or a chipset that has built in support like the NEAT.

That explains why I don't know of any 🤣 And indeed, Virtual 8086 mode is required to emulate EMS using XMS properly, so it can't be done on a 80286. Hi(gh)mem(ory) blocks moving can still be done on a 80286(using LOADALL), but that's about as far as it can go I guess(although, on such a CPU, protected mode would be more efficient(any return to real mode using a triple fault). That's probably why Windows uses protected mode by default on such a CPU?). So with a 286, LOADALL-enabled unreal mode or full-blown 16-bit protected mode is as far as you can go with using more than 1MB of RAM(Actually less, due to RAM remapping for hardware devices(VGA,BIOS ROMs, option ROMs in the A0000-FFFFF range).

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

Reply 6 of 7, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I second that. While there's EMM286, it's not the same as EMM386. Like most LIMulators,
it uses XMS and copies memory back and forth instead of remapping memory pages.
Back in the 1980's there also were LIMulators that used the fixed disk for swapping memory in and out.

These were useful for slow programs, like Lotus 1-2-3 and such. Anyway, you guys likely know this already.
What's not so popular - There were external MMUs for 286 systems (some sort of daugther cards).
I don't know about the details, but PC-MOS/386 docs mentioned such stuff.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//