On Sunday 10 April 2005 23:52, Matt Witherspoon wrote:
With the change, Allegro compiles great under MSVC except that there is
still the dependency on /win/asmlock.s (unless this has changed in CVS 
since
I last checked). I attempted to write a C replacement, however, I totally
borked it. If someone could write a replacement (or even inline the asm),
then it should build completely in MSVC perfectly as everything else
_appears_ to be working. It should be a fairly simple fix for someone who
knows the stuff (not me).
Argh! I should try to remember these things when they are explained to me! 
On a previous discussion on the subject Eric explained why this is so and 
cannot be changed. I'll try to remember what he said, or I can search for 
his original message later.
The bank switchers pass their arguments in a special way (using registers I 
think). Writing a C only replacement for this that does it in a more 
traditional way leads to an incompatible DLL between the C and C/asm 
version of the library, which is obviously undesirable (I'm not sure why 
this problem doesn't occur in Linux though, if indeed it doesn't). The 
only work-around that I can see involves writing inlining assembler code 
for MSVC, or changing the bankswitchers *now* to always use a calling 
convention compatible with the C library - since we are going to release a 
new stable version, the DLL ABI compatibility is not an issue.
That said, this is a major change that affects all platforms, not just 
Windows and something such a large scope that we should not want to do at 
this stage in 4.2 development. For 4.3, I think it makes sense to look 
into changing this.
Evert
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click