The MASM Forum Archive 2004 to 2012

General Forums => The Workshop => Topic started by: TomRiddle on December 09, 2006, 07:23:46 AM

Title: Questions about the Masm32 Licence Agreement
Post by: TomRiddle on December 09, 2006, 07:23:46 AM
Hi everyone, this is my first post  :bg

I had some questions about the Masm32 licensing agreement, if anyone could help that would be really cool

Location: http://masm32.com/mlicence.htm


Question 1.
Listed under What you CANNOT do with the MASM32 Project.
4. You cannot use the MASM32 Project to write software for Non-Microsoft Operating Systems.
It is also listed under: Who can use the MASM32 Project ?

Does this include cross-assembled Windows/Linux libraries(ones assembled for both platforms).

Question 2.
I would also like to know who controls the licensing to these files(located in the bin directory):
link.exe (Microsoft (R) Incremental Linker - v5.012.8078.0)
ml.exe (Microsoft (R) Macro Assembler - v6.14.8444)
rc.exe (Microsoft (R) Windows (R) Resource Compiler - v5.00.1823.1 - Build 1823)
cvtres.exe (Microsoft (R) Windows Resource To Object Converter - v5.00.1736.1)

And this list: msdis100.dll msdis109.dll mspdb50.dll ml.err rcdll.dll

Thanks Everyone!
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on December 09, 2006, 07:33:43 AM
TomRiddle,

> Does this include cross-assembled Windows/Linux libraries(ones assembled for both platforms).

Yes. Microsoft do not licence free version of their development tools for use on any other OS.

> I would also like to know who controls the licensing to these files(located in the bin directory):

Microsoft.

If you wish to do these things for these target platforms, there are good tools available to do this. The GNU assembler (GAS), NASM, FASM etc ...
Title: Thanks
Post by: TomRiddle on December 09, 2006, 07:39:31 AM
Hutch that was a blazing fast reply, thank you.

When it says other OS's, does that include ones writting using Masm32?

I.E. Boot disks linked with a library(also created in Masm32)

And how about using Masm32 to create a program that assembles on another platform?
(Woops, this one was too confusing)
Lets say I made a program called CreateElf(using Masm32) and its intent was to create Linux Elf files

Thanks alot, btw :)
Title: Another Question
Post by: TomRiddle on December 09, 2006, 08:43:31 AM
What if you had a collection of files who's purpose was to "lay on top of" Masm32 to, that is, add themselves to Masm32 after it is already installed.

Its goal was to provide an easier to use set of instructions and batch files to increase the speed at which programs are created.

Examples: Bat files, Asm files, Inc files, Mac(ro) files

All files of the type text.

Some important notes: No files in the original Masm32 package would be changed, only some added. (If an update was made some files created by the original install(of the SDK in question) might get changed)

How would it be affected if the SDK in question fell under all the Masm32 license.

I know these are very legal intensive questions and I hope anyone with experience could be of assistance.  ThumbsUp

Ohh, if there is already a direct place to talk about questions like these I wouldn't mind moving the thread (and knowing where they are)!

Thanks,
          TomRiddle

P.S. Did you spell Licence correctly?

(And I posted to the Forum on accident, sorry Hutch  :()
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on December 09, 2006, 11:27:20 AM
tom,

The licence is very specific about where you can use the project. If you own a release version of MASM you can use it anywhere you like but with binaries owned by Microsoft that they have licenced for use exclusively on Microsoft operating systems, their binaries cannot be used under any circumstances on any other operating system. People of my generation own multiple copies of MASM from multiple release versions and particularly with the older boxed copies, they were specifically written to create DOS, Windows and OS2 binaries. Later release versions from VC (6.15 Processor pack version) etc .... can create dos and windows binaries.

The boot disk question fails on a boot disk not in any viable sense being an operating system. By the time you get something big enough to be an operating system you would be using other tools which you paid for, not an assembler provided for use on a Windows OS.

As per the licence you can write windows software on a windows OS to be used on a windows OS but it cannot be used on any other OS or used to write software for any other OS. Further the licence is not negotiable, if you wish to use Microsoft software provied for free on another OS, you would need to contact Microsoft to gain permission but I would not hold your breath waiting.

To provide support for a Linux OS, you should be using tools that can be used on a Linux OS, the ones I have already mentioned and I should have mentioned Pele's assembler POASM which will run on a Wine emulator apparently with no problems.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: ramguru on December 09, 2006, 11:41:01 AM
Let's say I want to sell a piece of soft written (compiled with) in Masm. I pack my app with armadillo, I also add license agreement to my property: "... and any attempt to RE is illegal". Now the biggest question is: "how M$ can sue me ?"
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on December 09, 2006, 01:29:48 PM
As long as your app was targetted at the Windows platform, why would they ?
Title: Re: Questions about the Masm32 Licence Agreement
Post by: ramguru on December 09, 2006, 01:42:47 PM
Well, I thought masm32 license doesn't permit write commercial software. Now if it doesn't the question is how M$ is fighting against such people who do write commercial software and don't pay any attention to what they've read in agreement. Is M$ checking PE signature (with tools like PEID) or maybe there is special team for that purpose... ?
Title: Re: Questions about the Masm32 Licence Agreement
Post by: PBrennick on December 09, 2006, 01:57:00 PM
This topic seems to come up often and I have discovered that there are a lot of misconceptions. Recently, someone who has been posting for years expressed to me in another thread that he was under the impression that it is okay to use masm to write your own OS. I wish there was a way to re-emphasize the license. Maybe you should do a mass mailing, Hutch.

Paul
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on December 09, 2006, 04:43:33 PM
ramguru,

Actually READ the licence, it is contained IN the Project.
Title: I swear, last question
Post by: TomRiddle on December 16, 2006, 05:34:51 AM
What if a program assimilated Masm32(The program itself copied the ML.EXE(Ect)) file(s) to a sub folder and its intent was to use Masm32 in addition to software that COULD assemble Linux programs, would the END-USER be breaking any laws in the process?

Man, you have been so much help, I thank you.

And before I go any further, the suite of tools included with Masm32 is just outstanding(I _LOVE_ TheGun), I venture to say some of the best of their trade and I would include them(with proper permission) in any package I work on.

Hutch, you are the man, and Microsoft, you too :)
Title: Re: Questions about the Masm32 Licence Agreement
Post by: ecube on December 16, 2006, 05:51:56 AM
You can use the license included with the masm32 package to write commerical software on windows with masm. You can't however use masm in any shape or form to write code for another operating system, if you want to do that go use nasm, fasm, etc... Also ramguru it's pretty difficult to detect a file written in "masm" specifcally...I think peid only detected 1 app I wrote and i'm pretty sure that's because I had debug info in it. Anyway Masm was written by Microsoft so respect their wishes with its use not just so you don't get "sued" but  also because it's a fantastic contribution, and its free.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on December 16, 2006, 06:01:13 AM
Tom,

Most people who use MASM including the masm32 Project lay out their tools as they like, add whatever they like, use any editor they like etc ....but unless they own a purchased copy as most of the old timers do, the free versions are not licenced to produce software for ANY OTHER OS. The binaries in the MASM32 project are not redistributable at all and as I mentioned to you earlier, you would need to contact Microsoft and work out a deal with them to do what you are after.

As far as using the masm32 Project directly under Windows, you can write what you like and even sell the results but Microsoft have not granted rights to use MASM even under Windows for Open Source project as defined under the GNU Public Licence for the basic reason that the GPL licence applies restrictions that Microsoft will not allow on its software.

The short answer for what you ae after is "NO" as it is not allowed either under the MASM32 licence or the Microsoft EULA for their binaries.

Now again I wonder why you would want to use MASM for linux when there are ery good assemblers available for Linux. MASM is a platform dedicated tool that will not run under Linux except perhaps under a WINE emulator which is specificaly excluded under both licences mentioned above. GAS is a very good tool, especially if you use it in Intel mode, POASM can be used under WINE and both NASM and FASM can be used directly in Linux or in Windows to create Linux software.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: JM on February 12, 2007, 06:55:00 AM
Hello all,

Ok, if i'm correct, you cannot use masm to create another OS. BUT, what if i use MASM to create the compiler that in turn creates the OS ? If i'm correct, Masm is NOT creating the OS or is being used to compile code for another OS directly. So I should be able too and still be within the rules.

Another Q : This thing about making an OPEN source program. Does this mean ANY program made by MASM that I want others to help me out with cannot be made, unless solely by me?

BTW - I am refering to the 32-Bit version of Masm in these questions.

Thank you all.

JM
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on February 12, 2007, 07:33:06 AM
I don't undertake to perform legal iterpretation for the Microsoft corporation but the restrictions on the free versions are that you cannot use them on non Microsoft operating systems and you cannot use them for projects that are licenced in the manner of open source projects.

I know of no restriction on collective development using these tools apart from those mentioned but this much is clear, there is no stepped delegation of licence for the free versions that will end up allowing open source development or for another operating system.

The old question of developing an operating system in MASM is vacuous of content as MASM is designed to run only on Microsoft systems and it may also run on systems that are copies of them which Microsoft specifically prohibit with their development tools.

If you have licencing enquiries about the use of Microsoft development tools you should take the matter up directly with Microsoft as NO-ONE else is authorised to licence their software for specific usages.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: JM on February 12, 2007, 08:40:31 PM
Thank you so much Hutch for your speedy responce.

So in essence, I should be able to create a compiler that WILL run in Windows. And that will allow me to make the compiler FOR windows which in turn i'll use the program to create an OS. In that respect, i'm still within the rules of the license agrreement because MASM is NOT directly making it for an OS. It's a loophole.  :U

Also, from your response, if I get this correctly, I will be able to make my stuff Open source ONLY if I ask Microsoft for permission.

Are these true?

Again, that you Mr. Hutch. Your awesome!!   :toothy

JM
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on February 19, 2007, 01:02:08 AM
Having bothered to read this last post again, the point still needs to be made that there is no method of stepped delegation that will allow Microsoft free to use binaries to be used on either a non Microsoft OS or in an open source project. To address the next vacuous example of building a compiler with a free to use Microsoft binary, something that is highly unlikely, if the end result is used to develop software for another OS or an open source project, it is in violation of the Microsoft licence.

As is normally the case, if you wish to develop for a non Microsoft OS or an open source project, you should be using the tools supplied by the OS vendor or the open source movement.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: JM on February 19, 2007, 02:51:54 AM
Understood. Thanks for the reply.

jm
Title: Re: Questions about the Masm32 Licence Agreement
Post by: TomRiddle on February 21, 2007, 04:48:50 PM
Here is my biggest worry.

Suppose I wrote a program that could be assembled under Masm and Nasm.  What if this program was assembled using Masm, for Windows.  But was also assembled by Nasm for use in Linux.  For the sake of argument, lets say every line was exactly the same.  What would my rights be?

What if the program itself ran natively in OS X, Windows, Linux, and DOS?

This question is pretty important to me, because I write all my code Masm(6.00 & 6.14.8444)/Tasm(3.2) compatible.

Thanks again for being our Lawyer hutch- :lol

Here is the example I wrote, 2 lines are different in the headers, Win has 1 more to use Kernel32, aside from that DefineProgram could easily be put into the command line.  How hard would it be to add Linux to the Os with an ARM Cpu?

-=- DOS Header -=-
Include BSM\Core.mac
DefineProgram 8086, 16, Dos, Small, 200h
DefinePackage Gen
StartData
  Include GenData.mac
EndData
StartProgram
  Include GenProg.mac
EndProgram


-=- Win Header -=-
Include BSM\Core.mac
DefineProgram 386, 32, Windows
DefinePackage Gen
DefineLibrary kernel32
StartData
  Include GenData.mac
EndData
StartProgram
  Include GenProg.mac
EndProgram


-=- GenData -=-
GenData is Blank :(

-=- GenProg -=-
StartPrinting
PrintString "Create/Delete Directory: "
  CreateDir "Test", ErrorLabel
  DeleteDir "Test", ErrorLabel
  PrintString "Ok"
  Exit

ErrorLabel:
  PrintString "Error"
  Exit
Title: Re: Questions about the Masm32 Licence Agreement
Post by: PBrennick on February 21, 2007, 09:14:54 PM
Tom,
If I may be so bold, you seem to be nitpicking, here.

Paul
Title: Re: Questions about the Masm32 Licence Agreement
Post by: hutch-- on February 21, 2007, 11:58:26 PM
Tom,

Its the same answer as above, there is no stepped or conditional derivation of licence that will allow Microsoft Free To Use tools to be used for Open soure software or for another OS that is not sold by Microsoft. The simple answer for the MASM32 Project is NO, it is specific to the licence it comes with. Any deviation would require a seperate licence agreement from the vendor Microsoft and trust me here, you don't want to bother trying to get licence for an Open Source or non-Microsoft OS usage of MASM.

As normal, use the tools supplied by the vendor for the OS you are targetting or if its Open Source, use Open Source tools for your project.
Title: Re: Questions about the Masm32 Licence Agreement
Post by: TomRiddle on February 22, 2007, 07:19:11 AM
Alright guys, I'm pretty sure I got the gist of it. :)

Thank you again for all your help.