VOGONS

Common searches


Search results

Display options

Re: UniPCemu 80286/80386+ protected mode problems?

The first task(the main task) seems to be at linear address 0x486 in memory. This seems to be task 0x0068 when initialized. It switches the second task using a CALL instruction. It switches to task 0x0048, marking task 0x0068 idle. Then it sets the Nested Task flag(to indicate it's to return to task …

Re: UniPCemu 80286/80386+ protected mode problems?

Checking the documentation again, I might have found the problem: it was storing SS:(E)SP during leaving an outgoing task, but reentering it through a different privilege level task was causing it to load the current privilege level(SS0-2:(E)SP0-2) instead, which will change state incorrectly. This …

Re: UniPCemu 80286/80386+ protected mode problems?

I've fixed some of the bugs in the 80286/80386 emulation. The trouble starts when using task switching/interrupts in the test BIOS(Diagnostics from Supersoft/Landmark). It eventually returns to an available task, then executes IRET, which fails due to an #GP fault because all return addresses(normal …

Re: x86 memory offset limit checks vs size?

Looking at the documentation time and again, it seems like the offset doesn´t get wrapped at all(Just checked against limit, which will always fail on a 286+ when over the limit(in the descriptor), pun intended). Thus even in Virtual 8086 mode(which is a protected mode version of real mode), …

x86 memory offset limit checks vs size?

Is the limit check offset truncated to 16 bits on the 80286 CPU? What about the 80386 and newer CPUs, during 16-bit mode(using 16-bit offsets)? Is the memory access offset, which happens after that, truncated to 16-bits on the 80386? Or is it using the full 32/24 bits? Note, that I'm talking about …

Re: Memory for protected mode DOS games

in DOS
What happens when, on a 80386+, the I/O privilege table needs to be checked(IOPL>CPL) in protected or virtual 8086 mode, while no task register is loaded(NULL task register; uninitialized or through LOADALL)? That seems to be the case here: TR is 0x0000(uninitialized or through LOADALL) during this …

Re: Memory for protected mode DOS games

in DOS
I'm pretty sure it's a protected mode game: http://www.cdaccess.com/html/shared/dott.htm It does say the minimum is a 80286. Also, during UniPCemu's debugging, I see it using protected mode(CR0 bit 0=1). Since it's minimum is a 80286, it must be made for 16-bit protected mode(80286 doesn't support …

Re: Memory for protected mode DOS games

in DOS
I'm pretty sure it's a protected mode game: http://www.cdaccess.com/html/shared/dott.htm It does say the minimum is a 80286. Also, during UniPCemu's debugging, I see it using protected mode(CR0 bit 0=1). Since it's minimum is a 80286, it must be made for 16-bit protected mode(80286 doesn't support …

Re: Any good x86 pc emulators?

I currently have a bit of difficulty compiling SDL2 for the 32-bit MinGW executable together with MinGW64(which, after manual patching) does work. I usually test UniPCemu on Visual Studio(requiring Visual C++ 2015 Redistributables, as well as at least Windows XP or Vista(as far as I remember) or …

Re: Any good x86 pc emulators?

UniPCemu does that as well, with the current released version running IBM XT(808[6/8] or NEC V20/V30(8018[6/8] to be exact)). It allows for any combination of CPU(80(1/2)8[6/8]), with any video card(MDA all the way up to Tseng ET4000). As for sound cards, it supports basic PC speaker all the way up …

Re: Memory for protected mode DOS games

in DOS
And indeed - ignoring sound for now - DOS real-mode games work unless they attempt to do something with the hardware that XP can't emulate. But protected-mode games (I guess that's synonymous with '32-bit' - did any DOS games ever use 16-bit protected mode? Win 3.x games did, of course.) are …

UniPCemu's 8086 vs newer CPU BCD instruction flags?

Anyone can see what's going wrong, when calculating the BCD instruction flags? //BCD opcodes! byte CPU8086_internal_DAA() { word ALVAL, oldCF; CPUPROT1 oldCF = FLAG_CF; //Save old Carry! ALVAL = (word)REG_AL; if (((ALVAL&0xF)>9) || FLAG_AF) { oper1 = ALVAL+6; ALVAL = (oper1&0xFF); FLAGW_CF((((oper1& …

Re: UniPCemu Compaq Deskpro 386 emulation problems?

I've just implemented a bit of extra logic with Unreal mode compatibility(Not raising #SS/#NP when descriptor cache doesn't having it's present bit set, instead causing a #GP(which is compliant with the specs, as well as with the pseudo-protection faults in real mode(it doesn't have #NP after all)). …

Re: UniPCemu Compaq Deskpro 386 emulation problems?

I've found a little problem in the 8042 emulation command switch cases missing 0xD1 command break(which continued into the 0xD2 command case, due to the missing break call). That fixed the 8042 itself. Then I still needed to fix the PS/2 keyboard reset command, which was clearing all data, losing …

Re: UniPCemu Compaq Deskpro 386 emulation problems?

The message just before the XT-IDE BIOS takes over is 163-Date&Time not set. The XT-IDE BIOS tries to boot drive R:(should be C instead of R?) Errors out with error 1h, proceeds with booting floppy(which fails due to no disk inserted), then reboots. The inserted disk is a 20MB windows 3.0 harddisk( …

Re: Disk size to CHS geometry conversion?

It specifies some limits and tells when to use those limits, but nothing is said other than to minimize the amount of orphan sectors(MaxLBA>MaxCHS). So what's the best way to calculate it, based on the amount of LBA sectors(disk_size parameter) on the disk backend?

Re: Disk size to CHS geometry conversion?

I'm talking about the default geometry that the hard disk IDENTIFY(PACKET DEVICE too) bytes 1,3,6(and 54,55,56 too, when a different emulated geometry is set up) return. Those two addresses are loaded with those two functions in the top post, when a new disk image is loaded to emulate. That applies …

Re: UniPCemu Compaq Deskpro 386 emulation problems?

Yay! It's continuing on, until the RESUME = "F1" key! :D I'm getting a 301-Keyboard error and "162-System Options Not Set-(Run Setup) Insert DIAGNOSTIC diskette in Drive A:, though. :D Edit: After pressing F1 I get a clearscreen and a date/time(don't remember 100% if date as well) not set. After …

Page 149 of 229