Specialised Projects > Assembler/Compiler Technology

Visual Studio and MASM licensing

(1/1)

chris:
My question regards the MICROSOFT VISUAL STUDIO COMMUNITY 2015 license in conjunction with MASM32 SDK license.

MICROSOFT VISUAL STUDIO COMMUNITY 2015 https://www.visualstudio.com/support/legal/mt171547
MASM SDK LICENSE http://www.masm32.com/licence.htm

Goal:
My goal is to develop a custom programming language that the end user can use for developing on and generating executables for multiple platforms including non-microsoft platforms.

Development description:
Im using visual studio community 2015 c++ for developing this project.
I intend the final project to be able to generate code for the windows platform. (Windows portable execution format)
To help me learn and understand how the Windows portable execution format works internally I would like to utilize MASM SDK to generate a simple executable file ONLY for reference.
This means that I will be generating an executable file with MASM to use as a template, so that I can progressively overwrite more and more of this file with my own compiler until my compiler can generate the whole file on its own.
This will enable my to test and run the generated executable without having to write the compiler output generator in one go. Which is very hard considering the complexity of windows executable format.
So basically I am using the MASM generated file as a reference to learn and understand how the Windows portable execution format works and how to generate such a file using my own compiler.
This means that MASM will only be used early in development and no generated code from MASM will persist in the project nor the shipped product.



My question is whether this will violate my Visual Studio or MASM SDK license in any way?
Especially considering the following from the MASM SDK license:

the MASM SDK License states the following: What you CANNOT do with the MASM32 SDK: 4. "You cannot use the MASM32 SDK to write software for Non-Microsoft Operating Systems." and
Who can use the MASM32 SDK ? "Government Department and any Company and/or Corporation for their personal/internal use and it can be used to develop and distribute or sell software for the Windows Operating System."
But what if I am not using MASM to write the to be shipped project? As I am only using its generated executable as a reference and temporary template. And will not be include in the final product.



Some extra Information:
I am a single developer working on a single machine.
I intend to sell the final product, for multiple platforms.



Final questions:
Are there any license requirements regarding the custom generation of windows executables?
Are the actions described above in any way violation of the Digital Millenium Copyright Act (DMCA)?
Are there any other legal related things I have to be aware of?



For whomever reads this, thank you for your time and effort.



With kind regards,

Chris Hermanussen

jj2007:

--- Quote from: chris on March 09, 2016, 05:29:30 PM ---"You cannot use the MASM32 SDK to write software for Non-Microsoft Operating Systems."
--- End quote ---

Hi Chris,

Hutch (owner and creator of the Masm32 SDK) will give you an official answer, I suppose, but I can already give you some hints:

- yes, you cannot use the MASM32 SDK to write software for Linux & MacOS; most of the SDK uses the Windows API, so from a purely technical viewpoint, you can't;

- but you can write your own routines, of course, or wrappers around Linux & MacOS API calls;

- \Masm32\bin\ML.exe and LINK.exe are Microsoft products with a license attached, but the JWasm family has a different license and performs the same services.

Welcome to the forum :icon14:

GoneFishing:
Hello Chris,

Your project sounds great  :t 
Could you,  please ,  describe the main features of your new programming language ?
Do you seriously intend to write compiler \ linker infrastructure from scratch or  ,  maybe , you'll utilize something like LLVM ?

dedndave:
if you build your released versions with non-ms products, you are not in violation, as far as i can see

really, if you write using ms products for testing, you are testing on an ms platform   :P

chris:
Let me first say that IM very happy with the fact that I apparently posted on the right forums this time "yeeey".
I already posted on the MSDN, Stackoverflow and the visual studio forums, but they informed me that it was the wrong place to ask such questions.

jj2007:
I am aware of the fact that MASM is for windows only on a technical level. I only intend to use MASM's output for the windows support part.
My intend was only to use MASM output to generate a minimal windows exe that I can use as a template/reference for understanding some things about the PE format.

manly:
How the pe format header layout works/looks.
How the windows API mappings look in asm/binary.
And use it as a template ( only in early stages of the windows output development ).

Let me clarify that last part

Lets say I want to ouput a exe for windows.
Parsing, intermediate code generation/ optimization...ect is all done.
The last thing to do is write a windows .exe file.

But here's the problem:
writing the windows exporter for the exe file, which is a complex thing by itself. But certainly if I have to write the windows exporter in one go.
If there is any bug, any bit that should be a 1 but is a 0. windows will not run the exe. Or complain. (or explode and burn down my house :p )

So I would like to let masm generate a simple exe file, something like prompt "hello world" or something.
Then partially overwrite that file with my compiler's output.
This will enable me to atleast test the exe file.
And increse the overwriten part during development.

Eventually all bugs will be ironed out. And I wont need the masm generated exe file anymore, at all.

So basically IM asking if that would be considered a learning act, or violating the terms.

So just to be really clear, the masm exe file will be remove prior to shipping ( probably a long time before that point ).

Maybe IM focusing too much on this aspect, as most people will probably just do it, and no one will ever know, like reading a book and then applying that knowledge, but IM just very

concerned that my work will be in vane.

GoneFishing:
Thanks,
sure, however not every aspect is set.
I basically wrote the project to be extremely flexible.
This means that a made my custom regularexpression system to easily define what to parse, and a generic way of assigning implementations to those parsed statements.

For the implementation of the to be language created with this system I am still experimenting.
But it will have a heavy focus on readability and ease of use.
Its purpos will most likely be for game development.

Yes it is my intent to write it from scratch. IM kind of a control freak I guess, as you may have been able to read from the part above.
I just want to have full control.


dedndave:
I agree, but even knowing that when implementing the ouput for non-microsoft platforms, for example linux, and then testing and writing the executable generator for linux on a linux machine
using my base frameworke written in visual studio on windows concerns me...

I really hope this makes any sense, as I find it very hard to explain my concerns about this matter.

Again, thanks for all the time and effort.

Chris

Navigation

[0] Message Index

Go to full version