[AD] MMX 16-bit Clear

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Ok, after 3h of testing and coding, I still can't get that MMX function to work. I've included here if anyone want to give it a shot (for now it replaces _lineer_clear_to_color16() in iblit16.s ...I'll add checking for cpu_mmx and the #ifdefs later if it the function works :)

This is in test.exe (I think it's trying to clear the screen there).
I'm using VESA2 (Matrox Mystique), 640x480x16.

In DOS-in-Windows, a call to the function locks up the computer (black screen, no response from the system), where as in real DOS, I get a SIGSEGV: pagefault, error 6.
All registers seem normal except for %es which is invalid, and %edi which is 0

(btw, is it normal for %edi to be 0x0 ?)

%es points to the selector representing the memory space occupied by the bitmap to clear.

I've tried push/popping it here and there to make sure it wasn't modified by something else, but no luck: I still get the error.

I know it's either %es or %edi the problem, because commenting out "movq %mm0, (%edi)" makes the function work (without doing anything though :-)

Any suggestions ?


Also This should prolly go in the docs: If you have the Mystique (not sure about 220 and Gx00), and the Rainbow Runner daughter card (I'm pretty sure I'm the only one there, but you never know...), than you can't use the 1.8RR BIOS with Allegro in VESA2 (VESA1.2 ok).. Downgrading to 1.8 fixes this
(I knew it was the BIOS all along :-)) lol!







Attachment: Iblit16.zip
Description: Zip archive


 - Robert J Ohannessian
(ex-GodOfWar....until I find a better nick)

There is always one more bug.


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/