News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

UASM 2.41 Release + WinInc 2.09

Started by johnsa, September 29, 2017, 10:30:05 PM

Previous topic - Next topic

Vortex

The new build of version 2.41 does not run on Windows XP 32-bit and 64-bit :

uasm32.exe is not a valid Win32 application.
uasm64.exe is not a valid Win32 application.

aw27

Quote from: Vortex on October 04, 2017, 04:27:36 AM
The new build of version 2.41 does not run on Windows XP 32-bit and 64-bit :

uasm32.exe is not a valid Win32 application.
uasm64.exe is not a valid Win32 application.


Instant hackfix: With Hexview change at offsets 150h and 158h values from 6 to 5.  :biggrin:

johnsa

This must be a by-product of the build running through VS2017, I will investigate.

Edit: So it appears I could compile using a legacy 140 toolset for XP, I'm not sure how that will impact other things however. I will try it and we can test it out separately, if it works I think I'd rather include then a separate download package for pre Vista. Probably make that one just x86 ?

Vortex

Hi johnsa,

Many thanks to you and habran for your very nice work. A separate package for pre Vista targetting x86 is OK. This x86 release can assemble 64-bit source code with the -win64 option.

Vortex

Hello,

Thanks aw27, it's the MajorOperatingSystemVersion member of the IMAGE_OPTIONAL_HEADER32 structure set to 6 by the VS 2017 compiler. Replacing 6 with 5 is solving the problem.

IMAGE_OPTIONAL_HEADER32 STRUCT
.
.
.
  MajorOperatingSystemVersion   WORD       ?


fc uasm64.exe uasm64b.exe
Comparing files uasm64.exe and UASM64B.EXE
00000150: 06 05
00000158: 06 05

fc uasm32.exe uasm32b.exe
Comparing files uasm32.exe and UASM32B.EXE
00000140: 06 05
00000148: 06 05


Thanks to Timo for his TLPEView tool analyzing also 64-bit PE files.

uasm64b.exe and uasm32b.exe are the patched versions.

johnsa, the solution proposed by aw27 looks OK.

johnsa

Alright great to hear it :)
I will make a build for pre Vista anyway for us to test and if it works too I'll add it to the packages. I had to just install legacy c++ support for XP first for VS and will do it in the morning.

Cheers
John

johnsa

Hi,

Please try this version:

www.terraspace.co.uk/uasm32_xp.zip

Built using VC toolset 141(XP) for x86.

aw27

Quote from: johnsa on October 04, 2017, 08:11:09 PM
Hi,

Please try this version:

www.terraspace.co.uk/uasm32_xp.zip

Built using VC toolset 141(XP) for x86.

It works in xp and above.
I don't see any reason for not simply building with the 141_XP toolset, for both 32-bit and 64-bit.  :icon_rolleyes:



aw27

Quote from: Vortex on October 04, 2017, 04:27:36 AM
The new build of version 2.41 does not run on Windows XP 32-bit and 64-bit :
I thought I was the only person in the Universe with a copy of XP-64 bit.  :bgrin:

johnsa

It's probably a very small universe these days for XP users!
Windows 7 is still my favourite of the bunch, I totally skipped 8 and 8.1 and now have Windows 10.. which has had some annoyances, but overall it's been ok.

I will do that then for 2.42 assuming it doesn't cause any other issues or degrade performance on > XP systems.
https://blogs.msdn.microsoft.com/vcblog/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012/

It doesn't look like it should cause any issues with any aspect of the UASM codebase, no DirectX or HLSL etc.

aw27

Quote from: johnsa on October 04, 2017, 10:49:29 PM
and now have Windows 10.. which has had some annoyances, but overall it's been ok.
I also prefer 7 to 10. Things require more clicks to get done with every new version of Windows, the same essential things are the same since Windows NT, but are hidden behind layers and layers of obfuscation crap as if Microsoft was ashamed of them.  :icon_rolleyes:

Vortex

Hi johnsa,

Thanks, uasm32_xp.exe works fine on my Windows XP 64-bit system.