VOGONS

Common searches


Search results

Display options

Re: Cycle-accurate Floppy Disk emulation(82077AA)?

So does that mean that at 300 rpm, every round actually reads a whole track? Since the time for a round is divided by the amount of sectors per track/cylinder, does that mean that it simply differs in speed by only reading one track for each time the floppy disk turns 360 degrees? This happens no …

Re: Cycle-accurate Floppy Disk emulation(82077AA)?

I've implemented basic step rate timings(and calculations for head load/unload). I've applied the step rate to the seek/recalibrate commands and fixed them in the latest commits. https://bitbucket.org/superfury/unipcemu/src/0dfd7d53a4618b8610e3647d3335f0b9e6bf1afc/UniPCemu/hardware/floppy.c?at= …

Cycle-accurate Floppy Disk emulation(82077AA)?

I'm trying to convert my emulator (UniPCemu) to use cycle-accurate Floppy disk timings (using a single timing handler, which counts time in nanoseconds, based on the timeouts specified). https://bitbucket.org/superfury/unipcemu/src/2e26ee66f3f6906d1a541af0e8698211646211e1/UniPCemu/hardware/floppy.c? …

IDE CD-ROM driver on a IBM PC AT 80286?

I last saw a guy running a IBM PC AT computer (with 80286, since it's an AT) that used a CD-ROM drive. Anyone knows of a generic ATAPI-4 CD-ROM driver that can be used on a IBM PC AT with 80286 CPU(I'm using the revision 3 BIOS)? I need it to test my ATA/ATAPI-4 CD-ROM emulation.

Re: Compiling SDL2 on MinGW-w64?

The same problem occurs after updating all MinGW stuff to their latest revisions (according to the MinGW-get tool). It keeps complaining about the WAVEINCAPS macro. Edit: I've placed the issue at libSDL.org's bug tracker.

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

I've done what you said (typing DIR and pressing enter during the red screen). I then turned on the logging of the executed commands and notice that the hard disk BIOS (which resides at segment C600h(NO this isn't the VGA BIOS, since the VGA BIOS ROM is 24kB in size, so the hard disk BIOS is at C600 …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

I've just tested Wolfenstein 3D's wolf3d.exe(instead of the 8088 wolf8088.exe). It runs without problems (the 8088 version messes up graphics a bit, mainly menus and surrounding game areas). It only gives a red screen and hangs when I'm trying to quit Wolfenstein 3D back to the MS-DOS prompt. Is …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

This is what I've made of the information said at http://x86.renejeschke.de/html/file_module_x86_id_138.html : void CPU186_OP69() { if (MODRM_MOD(params.modrm)!=3) //Use R/M to calculate the result(Three-operand version)? { if (modrm_check16(¶ms,1,1)) return; //Abort on fault! temp1.val32 = …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

There's also something strange about the 80186+ IMUL instructions(Opcodes 6B&69). The documentation says it uses two different forms(2-operand and 3-operand forms), but I can't find any indication which one is used when? Does this depend on the Mod bits of the ModR/M byte? So register(11b) is mapped …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

I simply use the ROMs that are posted on a topic on the fake86 emulator. It's the EPC 186 testsuite in this topic: http://forum.osdev.org/viewtopic.php?f=13&t=23739&start=15 By Artlav. Nice work. If you're interested, here is my collection of testsuites for EPC's 80186: http://orbides.1gb.ru/80186_ …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

Eventually, I managed to make it give the full correct results(no errors in the resulting flags or calculated values in memory): 8086 (I)MULB(GRP3 8-bit): case 4: //MULB tempAL = REG_AL; //Save a backup for calculating cycles! temp1.val32 = (uint32_t)oper1b * (uint32_t)REG_AL; REG_AX = temp1.val16 & …

Re: Fixing UniPCemu's (I)MUL flags to be accurate?

I've managed to get the invalid list smaller by rewriting some instruction checks and fixing one instruction I've missed on the 80186+ emulation: First 80186+ IMUL instruction: void CPU186_OP69() { if (modrm_check16(¶ms,1,1)) return; //Abort on fault! temp1.val32 = modrm_read16(¶ms,1); temp2 …

Fixing UniPCemu's (I)MUL flags to be accurate?

I'm trying to get the (I)MUL test to pass it's flags test, but for some reason it won't give the correct results. Different MUL instructions: 80186+ IMUL: void CPU186_OP69() { if (modrm_check16(¶ms,1,1)) return; //Abort on fault! temp1.val32 = modrm_read16(¶ms,1); temp2.val32 = immw; modrm_ …

Re: Compiling SDL2 on MinGW-w64?

It compiles without problems within Visual Studio Community 2015. But for some reason, both MinGW 32-bits(SDL_winmm.c various errors) and MinGW 64-bits(Given in the previous post) fail to compile. I've called ./configure --prefix=/mingw before calling make, but it still won't compile, not even on 32 …

Need help finding bugs in my x86 CPU emulation?

I noticed that recently some 8086 software started having bugs. I tried to run Prince of Persia(MS-DOS), but once if starts the cinematic with the princess and the evil wizard, the left half of the screen looks OK, but the right half contains garbled data? The testsuite I'm using from fake86 still …

Re: Making UniPCemu work on big endian machines?

Currently, all memory accesses in 8/16/32(And 24 in the case of the 80286 IDTR/GDTR, split up as a 16- bit and 8-bit access) are handled in the MMU itself. Essentially, what it does: //8-bit memory access byte MMU_directrb(uint_32 address) { return MMU.memory[address]; } void MMU_directwb(uint_32 …

Page 218 of 275