is there a listing of what program types different masm/link versions can create
what types of outputs can ml/masm and link versions produce?
(dos/win/win32s/win32/win64..etc..)
i guess that all those you mentioned. Don't know if i'm missing something but you can link /? and look for subsystem option.
except the 64-bit versions of masm, i think they all support 16-bit code
i used to use masm v 5.10
it supported 32-bit instructions - not sure how it would fair in win32 world, though :P
masm v 6.1 or better is desirable, if not required, for windows programming
6.15 supports SSE up to SSE3, i think
you want masm 8, 9, or 10 for later extensions
i don't know what happened to 7 - i don't think i've ever seen a v 7 :P
if you have a 64-bit version, you will know because it's called ml64
the linkers are what seem to be glued to a width
i.e., for 16-bit code, you need a 16-bit linker
for 32-bit code, you need a 32-bit linker
for 64-bit code, you need a 64-bit linker
16-bit linkers create MZ EXE's (and some other obscure formats like those for win3 and os/2 - NE format, i think)
32-bit linkers generally create PE EXE files
can't say about 64-bit - i think it's an upgraded version of PE
the OBJ files are OMF for 16-bit DOS and COFF for win32
Hi,
Adding to Dave's comments: Versions 1.x, and maybe 2.x,
only supported the 8088/86. Version 3.0 added 80186 and 80286
support. Not sure about version 4. Version 5.0 had 386 support.
I think 5.1 added some language options and was the stable
version for quite a while. Version 6,0 was the last DOS executable,
give or take. Versions 6.1 or 6.11 and later became Windows-32
executable programs. (IIRC.)
Cheers,
Steve N.
Edit: I got 5.0 and 6.0 from the IBM site as part of the OS/2
development software. SRN
thanks for the help
I see some win32/64 tutorials
and even one or two old win16 examples
any clue how to make a ml/masm win32s app?
Quote from: watlers world on April 26, 2012, 03:08:43 PMany clue how to make a ml/masm win32s app?
you came to the right place, Walter :bg
win32 apps are probably the most common subject of discussion, here
sometimes, politics or astrophysics is a close second
in the upper-right corner of the forum, you will find links for all kinds of things
first thing you want to do is to go to the masm32 download page and read it (important info)
then, download and install the masm32 package
it comes with code and macro libraries, include files, help files, utilities, tutorials, and code examples
after that, Iczelion's win32 tutorials is a common starting place for many (you will find the link above, also)
forum discussion is also a great learning tool
you can see what problems others are having and see many working examples, as well
i very often search the forum as a reference
Quote from: dedndave on April 26, 2012, 03:45:58 PM
Quote from: watlers world on April 26, 2012, 03:08:43 PMany clue how to make a ml/masm win32s app?
you came to the right place, Walter :bg
Dave, have a closer look at the question :bg
oops :bg
Steve (FORTRANS), MichaelW, Sinsi may be able to help
i would guess masm v5.10 would do the job
Hi,
Whatever Win32S stood for, it is a subset of the Windows NT
32-bit API that would allow Win 95/NT programs run on older systems.
Windows 3.1 and the like. There was an SDK and the like at that
time. So, if you can find the list of allowed functions, you should
be able to do it. I looked on Microsoft's site and found some stuff
and discussions. But that was a long time ago. There is a Wiki.
http://en.wikipedia.org/wiki/Win32s
But not much is there except some links.
Regards,
Steve N.
Quote from: dedndave on April 26, 2012, 03:45:58 PM
..sometimes, politics or astrophysics is a close second
NO...!!
Big BooB cheerleaders in tight shorts top the charts here... :green2
Van....
i said "most common", not "most popular" :bg
Just stirring ...in the name of Boobs :U
RE: The Win32s app, it was part of a 32 bit emulation layer for the old Win3.1??? 16 bit versions of Windows. Unless you are specifically writing for that emulation layer there is no point in trying to run one as they don't work on normal Win32. From memory of long ago you needed a specialised linker to build a Win32s executable, something from an SDK dated about 1994. It would be a very rare tool these days.
strange...
you would think that they would work on all win NT versions
they seem to work on XP
as far as I know
its first release was with 3.1(Sparta) 1992
its last with wfwg 3.11(snowball) 1994
and was only released for free after win95
I know there was a special masm5 linker for vxd files (link386)
any clue what version or name the win32s linker had?
Hi,
Yah, thanks Dave. Saw that on the Wiki thing. Oopsie.
Win32s was a software package for Windows 3,1, 3.11. It
supplied support for Windows NT/(95) 32-bit programs for the
16-bit Windows. Win32s programs _should_ run okay on later
Windows systems. Win32s programs were Win32 (NT) programs
with a strict set of restrictions on what functions you could use.
I encountered Win32s with OS/2 so I used the versions on Hobbes,
the OS/2 support site.
http://hobbes.nmsu.edu/h-search.php?key=win32s&pushbutton=Search
Microsoft soon made Win32s incompatible with the Windows
emulation with OS/2, after Win32s 1.25a. The SDK (or whatever it
was called) was not free at first (IIRC). But later it was freed up as
Microsoft let their SDK's become free. But, I don't think I found a
free one specifically for Win32s development? So I went searching
Microsoft's support sites for information. Again (IIRC), you used a
set of rules with a normal SDK for Windows NT/95/98 unless you
bought the Win32s package from Microsoft. (Don't really know
how that turned out as I did not not write Windows programs back
then...) Hope this isn't completely wrong and helps a bit.
Probably an oops,
Steve N.
thanks for the help
the masm32 example dlls seem to work under win32s
but the programs seem to cause format errors
since masm32 can produce code that will work with win32s
it just makes me still more curious
of the min/max vers required to create win32s type exe files
If you can find them you would need to look up the specs for Win32s and test it on the Win3.? versions that supported it. As a matter of fact MASM32 cannot create Win32s, it will produce COFF format object modules which can be built into 32 bit PE executables, proper Win32, not Win32s which only ran in an emulation layer under 16 bit Windows.
its hard to belive win32 and masm are over 20 years old
the history of win32 is interesting
http://www.bearwindows.boot-land.net/win31x.htm
no idea about coff files
but I did locate a win32 masm example that might work
thanks for the help
i had some general success with google
the trick was to surround win32s with doube quotes - this prevents all the win32 stuff from popping up
so - i googled things like:
"win32s" functions
"win32s" programming
on msdn, i found a number of articles (many in the form of knowledge base articles)
most of them have to do with installing and using win32s, but a number of them deal with programming
http://social.msdn.microsoft.com/search/en-us?query=win32s&x=0&y=0
http://support.microsoft.com/kb/83520
http://support.microsoft.com/kb/121093
http://support.microsoft.com/kb/131896
this page looks promising :P
http://www.digitalmars.com/ctg/win32programming.html
Quote from: dedndavei don't know what happened to 7 - i don't think i've ever seen a v 7
MASM 7.0 is from Visual Studio 2002 and MASM 7.1 is from Visual Studio 2003.
ahh - thanks Greg
Win32s let you run 32-bit exes from Win95 and WinNT in Win31x.
Because Win98 and NT4 added lots of APIs, exes built using the new API won't work in Win32s. If it runs in 95 it will run in win32s.
I would imagine any version of masm that builds PE files will build a win32s PE.
I'm just getting started with masm
so I'm still not shure about all the terms
I did locate the info I need
win32s programs are Win32 PE files with relocation information
to create them you add /FIXED:NO to the linker
not yet shure what the first masm version was that could do this
or the last
thanks to every one for the help in getting started