News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

windows vista

Started by OceanJeff32, September 19, 2007, 11:50:11 PM

Previous topic - Next topic

OceanJeff32

ok, i can't get anything to work with windows vista, i primarily want to program graphics in either MASM or C++.

I used to fool around with rony bc's fireworks (i've posted several questions and listings on this forum previously), but windows vista will not run this program.

I can install MASM, and I can compile fireworks.exe from fireworks.asm, however it will not run in the vista environment.

Any ideas would be greatly appreciated, or any suggestions as to what to study next.

later dudes,

jeff c
Any good programmer knows, every large and/or small job, is equally large, to the programmer!

GregL

Jeff,

I am running Vista too. I also saved that Fireworks program by ronybc. I also get an 'Access violation' when running the program.


fld dword ptr[edi+ecx+4]  ; <<<< here is the line where the problem happens (line 361)


It's a bad pointer, If I figure anything else out I'll let you know.

OceanJeff32

Actually, I shouldn't say nothing works...debug at the DOS prompt works.

haha

jeff c
p.s. i might just have to go back to 16-bit dos...or is that 8-bit???

later
Any good programmer knows, every large and/or small job, is equally large, to the programmer!

u

Simply add "uses ebx esi edi" in the WndProc, and it will work. The app breaches the ABI standard, that's all.
Please use a smaller graphic in your signature.

GregL

Ultrano,

Thanks for pointing that out. I never got a chance to dig into it. Unfortunately it didn't fix it. Still getting an Access violation on the same line fld dword ptr[edi+ecx+4]. Some of the other procedures needed USES statements too. Did you actually get it to work on Vista?

u

I don't have Vista. It runs fine on Win2k (where it wouldn't if it used esi instead, iirc).
Please use a smaller graphic in your signature.

GregL

Ultrano,

It runs fine on XP SP2 without the USES ebx esi edi. On Vista fld dword ptr[edi+ecx+4] points to an invalid address, but I haven't figured out why. This is a case where you would need to go through and figure out what it is doing step by step, and I don't know if I want to spend the time on it.

OceanJeff32

What's the ABI Standard?

Also, I did get Visual C++ Studio 2008 Beta 1, working finally on this Vista computer.  Now, I'm looking at figuring out how to include ASM into that!!!

I believe it is built in, and all the code seems to work...

I don't see how there is a problem.  I was wondering if my simcity3000 would work on this vista computer, and it's great!

oh well, I'll figure it out.  This thing supposedly has a dual core processor, one of those puppies should be able to run the code alright.

you'd think so,

jeff c

:eek

P.S. Line 361 is in the shell render function, that is the function that draws a fresh location for the 'shell' - burning firework, in graphics memory.  Wonder why that is giving it a problem.. You'd think it might have a problem with one of the other functions that scan the entire graphics memory array and average the surrounding locations, not the shell_render function.

CRAZINESS!

later all,

jeff c
:dazzled:
Any good programmer knows, every large and/or small job, is equally large, to the programmer!

u

I could try to trace-down the problem, I'll need a disasm-view screenshot of the VS debugger showing which instruction crashes, what the registers contain, and VKDebug-displayed hex value of the address of the allocated backbuffer. With possibly the srccode of the app you do test, since "line 361" isn't anywhere near a "fld dword ptr[edi+ecx+4]" in the version I have.

VS2k8 should be breeze to include asm in, just forget about inlining (think more of "instrinics"). If it's not too different from VS2k5. Debugging asm+CPP mixed code is great, and supposedly the macros have been fixed, to not butcher the code. Beware that future service-packs will take a shitload of time to install. Spent 3 hours and 4GB Temp storage  installing the SP1 of VS2k5 today, during which the PC was rendered unresponsive, thanks to its 99% cpu load in a high-priority thread. (it took 3 hours instead of 1, because at 30 minutes I was always canceling it, thinking it's locked-up... ).
Please use a smaller graphic in your signature.

xanatose

First of all, sorry for the bump.

My guess (since I havent look the code), is that the memory at [edi+ecx+4] is protected for reading. It could be that vista protects video memory for reading by default. Or it could be that the driver in the different machine is protecting the video memory.  Don't know (since I don't have vista).


GregL

#10
xanatose,

Do you mean protected from reading?

It could be that, or it could have something to do with this.

Windows Vista Heap Management Enhancements

Diving into the Vista Heap click the 'Watch' button for the video.

later:

The calls to HeapAlloc succeed and return pointers. On the 7th call to FShell_render, at the fld dword ptr[edi+ecx+4] line, you get the access violation and the memory pointed to by [edi+ecx+4] is all question marks in the Memory Window (in Visual Studio), which means it hasn't been initialized.

Attached is the original code that runs on Windows XP and Windows 2000.



[attachment deleted by admin]

john9811

I have a some problem with vista .morst programs certified to work in xp- crashes here