News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Not allowed to make OS with MASM OR MASM32 ???

Started by janequorzar, September 11, 2010, 03:19:18 PM

Previous topic - Next topic

janequorzar

I have been seeing here and there a debate..  I need someone to clarify this..  Apparently you can make an OS as long as you do not sell it..  and that is the only thing you can do with masm or masm32. Is this correct ?  So in otherwords...  MS does not allow you to make an OS with MASM or MASM32 to be able to sell ??

Any insight would be helpful. Its the reason I been using NASM ( Netwide Assembler ) is because of the operating system creation ability it has.. AND no restrictions.  So I am trying out MASM and I come to find out you are not allowed to do with it as you want like you can with NASM..  so please.. help me understand. Thank you.

JMan

TmX

Quote
What you CANNOT do with the MASM32 Project.

4. You cannot use the MASM32 Project to write software for Non-Microsoft Operating Systems.

http://www.masm32.com/license.htm

I guess you should use JWASM (if you still want the MASM feel), or NASM/FASM/etc

dedndave

JwAsm is a good way to fly
it is almost 100% compatible with masm and you may use it for whatever you like

of course, if you are going to write an OS, an assembler of your own should be a cakewalk, and you can include it in the OS package   :bg

clive

FAT12/FAT16 should be relatively straight forward, but I've seen plenty of screwed up implementations.

With the exception of accessing the FAT both 12/16 are sufficiently similar that any rationally thought out solution could do both. FAT32 is somewhat more complicated, but can certainly be integrated with a little thought and a modular design.

If you don't like Microsoft stance on the uses of MASM, you should be concerned about the patents on FAT, Long Filenames, etc
It could be a random act of randomness. Those happen a lot as well.

hutch--

There is an element of myth in the question, no-one writes an OS in assembler as of the last 20 years or so and what most pass off as a private OS is a bootable floppy or similar. i seriously doubt that Microsoft care about bootable floppies and all of the commercial versions of MASM that I owned of old had DOS and similar code that you could use to make them.

What Microsoft licencing prevents is anyone competing with their commercial OS products so if you can produce enough code to shift from a bootable floppy to a disk based OS, unless you OWN a licenced copy of MASM you cannot use their free software to compete with their commercial products. You have options that have various levels of support.

NASM. Well supported but does not have historical Intel notation.
GNU AS (GAS) Later versions have an Intel notation option.
FASM. Well written and well supported but has hybrid NASM/TASM notation.
JWASM. Highly MASM compatible but effectively unsupported.

All are capable of producing both the real mode boot code and the protected mode switching.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

Vortex


Vortex

SolAsm is a very powerful assembler maintained by Bogdan Ontanu. Poasm is Pelle's macro assembler. It comes with the Pelles C developmen suit :

http://www.smorgasbordet.com/pellesc/download.htm

Also, you can find Poasm in your Masm32 installation : \masm32\bim\poasm.exe

BlackVortex

Jwasm is an almost perfect masm clone, so that's what you want.

japheth

Hi,

I have some comments on this topiic

Quote
Thank you all for your ideas and answers. Truely lots to look at. I think FASM is the way to go for me though. :)

I think this is a good choice - although you didn't really reveal why your think that your current choice, NASM, is inferior to FASM. Good luck and good bye!

Quote
QUOTE :
JWASM. Highly MASM compatible but effectively unsupported.
END QUOTE

of which I would have to agree.

I guess it depends somewhat how you are going to define "effectively unsupported". AFAICS you can report bugs and feature requests for JWasm, and there is a probability of > 0% that your bug is getting fixed and your feature request implemented ( if it is "reasonable") in a relatively short time frame. This is a lot better than the M$/Masm case IMO. As for feature requests, I agree that the support of FASM or NASM might be better. After all, they are targeted to be compatible with themselves only, so there is probably more freedom to extend the syntax.

jj2007

Quote from: janequorzar on September 13, 2010, 11:22:05 AM
Wow, why the hostility ?
Don't take it personally, it was triggered by "effectively unsupported".
JWasm is an excellent Masm clone, and fully compatible with Masm 9.0 (at least - I don't have 10.0).
Problems with different assemblers may arise
- when you embark on higher SSE levels (and Jwasm handles them excellently...)
- with exotic macros.
The latter should never be a problem when writing an OS, but from my experience with one of the most exotic macro collections around (MasmBasic) Jwasm chokes only in very rare cases, and even for them there are workarounds.

frktons

Quote from: janequorzar on September 13, 2010, 12:00:32 PM
Quote from: jj2007
( ** Changes: AutoSave for the RichMasm editor - we do produce crashes, don't we?  :green

Hahahahahahahaha

Well, you've got a sense of humor, don't you?
That helps a lot when writing a new OS, and afterwhile being
sued by MS for doing it.  :lol
Mind is like a parachute. You know what to do in order to use it :-)

frktons

janequorzar, if you are in the educational field probably you can have some
special "permission" from MS to use MASM for building a new OS, just
tell them it is "only for educational purpose".  :bg
Mind is like a parachute. You know what to do in order to use it :-)

jj2007

Quote from: janequorzar on September 13, 2010, 11:54:40 AM
so its a typo on the JWasm website then ?

No, but you misread it apparently. Masm v6.14 is the one that comes with the Masm32 package, and the majority of forum members probably still use that one, which does not even know what SSE2 is. In contrast, Jwasm says "Instructions up to SSE4.2 are supported" - you need a recent Masm version to get SSE4.2 support.
Trust me and Dave - go for JWasm if you are worried about the licence. I use it "by default" since my longer sources are getting assembled much faster with JWasm.

frktons

Quote from: jj2007 on September 13, 2010, 12:12:47 PM
Quote from: janequorzar on September 13, 2010, 11:54:40 AM
so its a typo on the JWasm website then ?

No, but you misread it apparently. Masm v6.14 is the one that comes with the Masm32 package, and the majority of forum members probably still use that one, which does not even know what SSE2 is. In contrast, Jwasm says "Instructions up to SSE4.2 are supported" - you need a recent Masm version to get SSE4.2 support.
Trust me and Dave - go for JWasm if you are worried about the licence. I use it "by default" since my longer sources are getting assembled much faster with JWasm.

I tend to agree.

JWASM = written in C/Open source/MASM compatible/updated regularly/not many docs should not be a problem for you as well.  :U
I'm waiting for the 64bit windows.inc to start experimenting with it. As an Assembly n00bbyst I'd like to have more tuts and docs, but
you can't have everything all together.  :P
Mind is like a parachute. You know what to do in order to use it :-)

jj2007

Quote from: janequorzar on September 13, 2010, 12:00:32 PM
Quote from: jj2007
( ** Changes: AutoSave for the RichMasm editor - we do produce crashes, don't we?  :green

Hahahahahahahaha

MS Word has the same feature :wink
I use RichMasm for all my assembly and JavaScript work, and crashes are very rare indeed, it's not as easy to crash the OS as it was in the old Win98 days. But on some occasions the autosave helped me a lot...