Hi! Just a quick question:
At work, the computers here are Windows NT platform. I brought in my masm32 package so i could get some coding done at work when it's quiet. But every time I try to compile something it comes out wrong. The resulting executable when run causes NT to spit out a message saying it has encountered an invalid instruction. Furthermore, no matter what kind of program it is, a console box pops up much like I was running a DOS program.
Anybody seen this? I've tried it on at least 5 computers...
--Chorus
At work, the computers here are Windows NT platform. I brought in my masm32 package so i could get some coding done at work when it's quiet. But every time I try to compile something it comes out wrong. The resulting executable when run causes NT to spit out a message saying it has encountered an invalid instruction. Furthermore, no matter what kind of program it is, a console box pops up much like I was running a DOS program.
Anybody seen this? I've tried it on at least 5 computers...
--Chorus
Perhaps if you post a bit of code that you are having problems with, and your compile command, we can tell you what is wrong... for what it is worth, i do all my work on NT/Win2K with hutch's package, and have never had a problem......
chorus,
I've only written 5 sizable ASM programs for WIN32 but I can tell you that 4 of them gave the same illegal operation error when first run on an NT4 or WIN2000 machine. I did all of my developement on WIN95 machines and the programs were quite happy with the way they were written, no complaints from the program or WIN95. Only after running on NT4 and getting the address of the offending instruction did I notice the, usually, dumb programming errors that WIN95 ignored!
About the DOS boxes; I have no idea.:confused:
farrier
I've only written 5 sizable ASM programs for WIN32 but I can tell you that 4 of them gave the same illegal operation error when first run on an NT4 or WIN2000 machine. I did all of my developement on WIN95 machines and the programs were quite happy with the way they were written, no complaints from the program or WIN95. Only after running on NT4 and getting the address of the offending instruction did I notice the, usually, dumb programming errors that WIN95 ignored!
About the DOS boxes; I have no idea.:confused:
farrier
erm, the dos box comes up every time when you use console assmble and link instead of the other one's.
Well aparently today I'm lucky. The machine I'm on today that works.
However, other machines still give me problems. (And yes, I'm familiar with the console box that comes up during assembly).
here's what exactly happens.
-- I write the code
-- I choose "Assemble And Link"
-- The program assembles without any errors or warning
-- I run the program and a *DOS box* appears and immediately it crashes with the following dialog box:
16 bit MS-DOS Subsystem
h:\WinASM\game\gamecam.exe
The NTVDM CPU has encountered an illegal instruction.
CS:04f6 IP:11ed OP:63 65 73 73 00
Terminate Ignore
it doesn't matter if I choose Terminate or Ignore, either way it closes out
The program runs perfectly fine if I compile it at home and then bring it to work. But if I recompile the source code it nukes out on me. It seems to think it's a 16 bit dos program.
I think I'll just stay on this particular computer and not worry about it.
Thanks all
--Chorus
However, other machines still give me problems. (And yes, I'm familiar with the console box that comes up during assembly).
here's what exactly happens.
-- I write the code
-- I choose "Assemble And Link"
-- The program assembles without any errors or warning
-- I run the program and a *DOS box* appears and immediately it crashes with the following dialog box:
16 bit MS-DOS Subsystem
h:\WinASM\game\gamecam.exe
The NTVDM CPU has encountered an illegal instruction.
CS:04f6 IP:11ed OP:63 65 73 73 00
Terminate Ignore
it doesn't matter if I choose Terminate or Ignore, either way it closes out
The program runs perfectly fine if I compile it at home and then bring it to work. But if I recompile the source code it nukes out on me. It seems to think it's a 16 bit dos program.
I think I'll just stay on this particular computer and not worry about it.
Thanks all
--Chorus
I ment.... if you chose console assemble and link instead of the normal assemble and link. when you run your app it will open a dos box every time.
chorus,
It hard to say what is going on but MASM32 is targetted at Win NT among others and it is tested on WinNT4 using a default installation with service pack 6a.
What you will need to ensure is that the code you write works correctly on Win NT4 as there are some differences and occasional incompatibilities between Win9x and NT.
I would be inclined to check things like access rights and similar as a default installation of NT4 has no problems at all with MASM32 and all of it works correctly.
Regards,
hutch@movsd.com
It hard to say what is going on but MASM32 is targetted at Win NT among others and it is tested on WinNT4 using a default installation with service pack 6a.
What you will need to ensure is that the code you write works correctly on Win NT4 as there are some differences and occasional incompatibilities between Win9x and NT.
I would be inclined to check things like access rights and similar as a default installation of NT4 has no problems at all with MASM32 and all of it works correctly.
Regards,
hutch@movsd.com
chorus,
What you will need to ensure is that the code you write works correctly on Win NT4 as there are some differences and occasional incompatibilities between Win9x and NT.
hutch@movsd.com
I think the problem isn't about the code sine the executable compiled in his home works fine on the machines at work ...
The masm32 package also works fine on NT as alot mentioned ... so the only thing lift to conclude is that the machines at your work are missed up ...:grin:
well actually I'm not sure of what I'm saying but I'm just trying to help ...:tongue:
Well, I've come to the basic conclusion that Code1101 has: the machines are messed. Now typically I wouldn't blame it on the machines, but I can't think of anything else.
It seems that if I compile my code at home (even something like a Hello World) it'll run on any computer.
If I compile it on at least 4 computers at work.. it'll crash on any computer.
However, there is one computer I found today that will compile properly on NT. Interestingly enough, if I code it on a NT machine that's "misbehaving" it'll still crash when I bring it to the NT machine that compiles correctly.
Thanks everybody for the tips, though! I guess there's just a couple of machines that don't like me... maybe I did something wrong to them in another life.
Later
--Chorus
It seems that if I compile my code at home (even something like a Hello World) it'll run on any computer.
If I compile it on at least 4 computers at work.. it'll crash on any computer.
However, there is one computer I found today that will compile properly on NT. Interestingly enough, if I code it on a NT machine that's "misbehaving" it'll still crash when I bring it to the NT machine that compiles correctly.
Thanks everybody for the tips, though! I guess there's just a couple of machines that don't like me... maybe I did something wrong to them in another life.
Later
--Chorus
Just for kicks, search for an old ML.exe and LINK.exe in the path on the offending machines. My guess is a version problem.
Make sure you save / restore EBX ESI EDI in your procs. 9x often let's it run, but NT based systems usually crash if you don't follow the convention. :)
Also, you are not trying to use interrupts in your app, are you? Or access ports? You cannot do either in NT.
Hi!
Hey guys, ... didn't know about the interrupts/ports thing in Windows NT. However, I'm doing neither of those things. There are two different programs I'm working on that are not compiling. One is a skeleton for a tile-based game world. It generates a random set of coloured tiles and blits them to the screen. It works by setting aside a memory DC and bitmap and doing the linear transformations on the memory bitmap and then copying it to the screen. The other program is a text veiwer that I'm just starting to do (I eventually want to code my own edit control). Neither one does anything fancy... that's what I don't get.
And I'm very careful with the USES directive... I've been burned a couple of times with that one... :)
What I did look into was the illegal instruction. Above I posted a message that was shown to me by a dialog box, and it said the offending op was Hex 63 which turns out to be ARPL r/m16,r16. I don't use this anywhere in my program (I don't even know what it does!)
Strange stuff...
Thanks for all the pointers guys! As I program more and more on NT machines I'm going to have to keep those things in mind anyways :)
--Chorus
Hey guys, ... didn't know about the interrupts/ports thing in Windows NT. However, I'm doing neither of those things. There are two different programs I'm working on that are not compiling. One is a skeleton for a tile-based game world. It generates a random set of coloured tiles and blits them to the screen. It works by setting aside a memory DC and bitmap and doing the linear transformations on the memory bitmap and then copying it to the screen. The other program is a text veiwer that I'm just starting to do (I eventually want to code my own edit control). Neither one does anything fancy... that's what I don't get.
And I'm very careful with the USES directive... I've been burned a couple of times with that one... :)
What I did look into was the illegal instruction. Above I posted a message that was shown to me by a dialog box, and it said the offending op was Hex 63 which turns out to be ARPL r/m16,r16. I don't use this anywhere in my program (I don't even know what it does!)
Strange stuff...
Thanks for all the pointers guys! As I program more and more on NT machines I'm going to have to keep those things in mind anyways :)
--Chorus
One is a skeleton for a tile-based game world. It generates a random set of coloured tiles and blits them to the screen. It works by setting aside a memory DC and bitmap and doing the linear transformations on the memory bitmap and then copying it to the screen
Hah!! I have also written the same type of game, but i did it in a totally different way. If you get stuck, we can compare notes :)