VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

It programs the DMA controller channel 2 for mode 0x42 for some unknown reason? This is supposed to be 0x46 for reads to succeed(instead of the 0x42(self test) value that it's set to?). I've noticed, based on the code of the disassembled BIOS ( https://www.pcjs.org/devices/pcx86/rom/compaq … /1988-01-28.asm ) that there's two points setting it up, at boot and when starting the transfer. The 0x42 value programmed into it is set at boot, but for some odd reason, the other location(xed5e) being the point it's supposed to set up the DMA transaction correctly from CS(F000):BX+EFD1, but incorrect data is loaded for some unknown reason?

Edit: BL is loaded with 4 by the table lookup. That's shifted left to become 8. Then the table is looked up using BX+EFD1 into the BIOS ROM, which results in 0x42 for some unknown reason? EFD1+8=EFD9 into the ROM, so that's value 0x42(according to the disassembly of the ROM)? That cannot be correct(it's supposed to be EFD5 I think, seeing as the 'F' would be a correct value to load into the DMA mode register)? So the value loaded from the table lookup is incorrect? Thus BL should have been 2 in order for the correct value to be loaded? That means that [BP+1] should have been 2 for the code to work properly, but it's 4 instead?

Edit: So the function at xEE9C isn't working properly for some odd reason?

Anyone? Jepael? Reenigne? Vladstamate?

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

Reply 1 of 1, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've been looking at the debugger log from that little piece of code, but I notice that the modr/m doesn't pull ANY data from memory(0000(SS):BP+1 isn't read from memory?)? I only see reads from FXXXX memory addresses?

Edit: looking at the background processing, I see that the BIU reads 4 from somewhere, but not exactly determined where that is yet(whether MMIO hardware or RAM).

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