The MASM Forum

Miscellaneous => The Orphanage => Topic started by: Magnum on July 30, 2016, 01:12:20 PM

Title: Does Masm compile under Wine
Post by: Magnum on July 30, 2016, 01:12:20 PM
Does Masm compile under Wine in Linux ?

And if so, will said programs run under Wine ?

I am using ubuntu-mate-16.04-desktop-amd64.

Thanks guys. :-)

Title: Re: Does Masm compile under Wine
Post by: mineiro on July 30, 2016, 01:46:01 PM
yes sir Magnum
wine ml64
wine hjwasm
wine casm
wine sol_asm2
...
you can try too 'wineconsole', 'wine start','wine cmd' ... . Wine have embebed dinamic libraries (dll -like a pseudo WOW(Linux on windows)) and not all functions from dll are implemented but to an assembler level you can do what you need.
I have see some faults inside wine,  not all programs are compatible, but you can play a lot.
But, under linux you don't need that thing, you can deal with as, sol_asm, hjwasm, yasm, nasm,  today I'm playing with 6 assemblers... . The same history that these guys here are confronting today to port from 32 to 64 bits, so, this way I'm learning a lot with some pseudo discussions here.
The good news is, if you don't like strlen function inside C library, so remove that one  and insert your on that place. This way you can speed you O.S. Microsoft does not allow this.
Other good news is that have a lot of functions inside linux that are really usefull to programmers (not only to users) like (single and double lists, arrays, binary and balanced trees, hashs,autocomplete, iteration, lexers, conversions,  ..., and look, I'm talking only about one portable library), this way you don't need recreeate the whell, you just put things to work at first moment, after yes, you optimize a code to that function. Well, you can rebuild kernel to your own machine because others don't know that you live on a 3rd world country and they sell to you a 2nd hand factory computer and like to throw to you a best (beast) configuration.
Please, don't judge me, I use windows and linux, I can say a lot of good thing about windows but I have perceived that I'm being more produtive as being a programmer under linux side.
I'm really thinking what these brilhant guys are done under windows side, but who I am to judge.
Title: Re: Does Masm compile under Wine
Post by: Magnum on July 30, 2016, 01:50:44 PM
yes sir Magnum
wine ml64
wine hjwasm
wine casm
wine sol_asm2
...
you can try too 'wineconsole', 'wine start','wine cmd' ... . Wine have embebed dinamic libraries (dll -like a pseudo WOW(Linux on windows)) and not all functions from dll are implemented but to an assembler level you can do what you need.
I have see some faults inside wine,  not all programs are compatible, but you can play a lot.
But, under linux you don't need that thing, you can deal with as, sol_asm, hjwasm, yasm, nasm,  today I'm playing with 6 assemblers... . The same history that these guys here are confronting today to port from 32 to 64 bits, so, this way I'm learning a lot with some pseudo discussions here.
The good news is, if you don't like strlen function inside C library, so remove that one  and insert your on that place. This way you can speed you O.S. Microsoft does not allow this.
Other good news is that have a lot of functions inside linux that are really usefull to programmers (not only to users) like (single and double lists, arrays, binary and balanced trees, hashs,autocomplete, iteration, lexers, conversions,  ..., and look, I'm talking only about one portable library), this way you don't need recreeate the whell, you just put things to work at first moment, after yes, you optimize a code to that function. Well, you can rebuild kernel to your own machine because others don't know that you live on a 3rd world country and they sell to you a 2nd hand factory computer and like to throw to you a best (beast) configuration.
Please, don't judge me, I use windows and linux, I can say a lot of good thing about windows but I have perceived that I'm being more produtive as being a programmer under linux side.
I'm really thinking what these brilhant guys are done under windows side, but who I am to judge.

Thanks mineiro .

Wine is a little difficult to use.

Could you please give more details ?

I used wine before with some 32 bit programs I wrote, but nothing ran correctly.



Title: Re: Does Masm compile under Wine
Post by: mineiro on July 31, 2016, 12:24:24 AM
of course Magnum
I'm not using mate ok, so the only thing that I can't write about is how to install wine under this linux distribution. I'm suposing that you have wine installed. On linux we have a lot of different distributions and each one have their own package way like .tgz on slackware, .rpm on red had, .deb on debian, ... . This is a point to Microsoft on my point of view, you have few installers like .exe, .msi. You should have administrative rights to install a package under linux, and instead of logoff, login as a root to install they created a sudo, su, gksu programs.
On windows we have CUI (console-command interpreter) programs like command.com to ms-dos and cmd.exe to windows. On linux they say terminal or shell, and have a lot like xterm, konsole (kde), bash, sh, cshell, ... .
On windows we have a GUI(graphical) that is 'explorer.exe', on linux we have 'X graphical server' and now 'wayland'. And they build things using these servers and generated lxde to poor machines, kde, gnome, ... .


So, Download masm32 package from this board.
Open a terminal of your choice under a graphical environment, you probably will be on your home user folder as a start point. If not, you can type "pwd" to check where path/folder you are. You can type only "cd" to change to your home folder. I'm supposing that your masm32 download will be into your "Downloads" folder that it's inside your home folder.
Hidden folder under linux start with a dot ".", so if you type "ls" (dir on console windows) you will not see a wine folder because it's a hidden folder. If you type "ls -sal" you will see all folders including hidden. You should see ".wine" folder. So, unzip masm32 package.

Code: [Select]
mineiro@assembly:/bin$ pwd
/bin
mineiro@assembly:/bin$ cd
mineiro@assembly:~$ pwd
/home/mineiro
mineiro@assembly:~$ ls
Área de Trabalho  Assembly  Documentos  Downloads  Imagens
mineiro@assembly:~$ ls -sal
total 224
 4 drwxr-xr-x 25 mineiro asm   4096 Jul 30 08:03 .
 4 drwxr-xr-x  5 root    root  4096 Nov 28  2013 ..
 4 drwxr-xr-x  5 mineiro asm   4096 Jul  7 23:24 .wine
mineiro@assembly:~$ cd Downloads/
mineiro@assembly:~/Downloads$ ls
masm32v11r.zip  temp
mineiro@assembly:~/Downloads$ unzip masm32v11r.zip
Archive:  masm32v11r.zip
  inflating: install.exe             
mineiro@assembly:~/Downloads$ ls
install.exe  masm32v11r.zip  temp
mineiro@assembly:~/Downloads$

Now, time to use wine. Type 'wineconsole install.exe'. After some time you will see a Install masm32 window program, go on and proceed instalation. You will see too a console screen opened and at some time while installing you will see all outputs by masm32 like 'assembling file.asm'. On linux terminal you will see some errors messages that wine is sending to us, I'm receiving "fixme:ntdll:find_reg_tz_info Can't find matching timezone ..." error messages.
So, at some point of instalation I received a message from console like: "overwrite c:\masm32\include\msvcrt.inc"? So, yes and go on, and ascii build appears, unicode build appears, ... .At end qedit will be show.
So, close qedit and console will be closed too.

Now let's start check things.
Under terminal go to wine folder and list (ls) whats inside.

Code: [Select]
mineiro@assembly:~/Downloads$ cd
mineiro@assembly:~$ cd .wine
mineiro@assembly:~/.wine$ ls
desktop-integration  dosdevices  drive_c  system.reg  userdef.reg  user.reg
mineiro@assembly:~/.wine$ cd drive_c
mineiro@assembly:~/.wine/drive_c$ ls
masm32  Program Files  temp  users  windows
mineiro@assembly:~/.wine/drive_c$ cd masm32
mineiro@assembly:~/.wine/drive_c/masm32$ ls
bigtstbd.qsc  datetime      help        makecimp.exe  multitool.exe  qeint.bin     testinst    tview.exe
bin           dlgmake.exe   include     makecon.qsc   plugins        qetb.exe      text        ueint.bin
bin2dbex.exe  dlgproc.qsc   intro.txt   makelibs.bat  procmap.exe    qetxt.bin     tmp.qsc     uetxt.bin
blankdlg.qsc  dlgtmplt.qsc  jtmake.exe  makerc.qsc    procs          qsc.dll       tools       uniedit.exe
bldmakit.qsc  examples      lib         maketbl.exe   prostart.exe   script        topgun.chm  vkdebug
blockp.ini    fda32.exe     libbat.qsc  mangle.exe    prostart.ini   se.dll        topgun.exe  wcsch.exe
cg.exe        fda.exe       licence     menuedit.dll  prostart.set   shellex.exe   tproc.exe
cg.ini        fpulib        m32lib      menus.ini     pths.ini       subclass.exe  tproc.txt
cpicker.exe   getcolor.exe  macros      mnutoasm.exe  qeditor.exe    testbed.qsc   tutorial
mineiro@assembly:~/.wine/drive_c/masm32$ wine qeditor
fixme:richedit:ME_HandleMessage EM_SETMARGINS: stub
mineiro@assembly:~/.wine/drive_c/masm32$ wine ml
wine: cannot find L"C:\\windows\\system32\\ml.exe"
mineiro@assembly:~/.wine/drive_c/masm32$

We received a message telling that wine does not find ml.exe program. Wine expects that it should be on "C:\\windows\\system32\\" folder and thats on linux is "HOMEFOLDER/.wine/drive_c/windows/system32". So, we can copy ml.exe from masm32/bin folder to 'windows' folder. We can as an option navigate to bin folder and 'wine ml' and will work fine. But instead of this let's correct things instead of copy.
Well, lets continue checking things. Type 'wine cmd' and a console mode will appear, now, all our knowledge of windows console is valid. Let's try invoke 'ml.exe' command. Hmm, same error, cannot find it. So, let's put on this session masm32 "bin,include,lib folders' on path environment variable so this way we can just type "ml.exe" on any folder and "console" will find it.

Code: [Select]
mineiro@assembly:~/.wine/drive_c/masm32$ wine cmd
Versão do CMD Wine 5.1.2600 (1.6.2)

C:\masm32>ml
Não é possível reconhecer 'ml' como um comando interno, externo ou arquivo de lotes. (like cannot recognize typed command as ...)

C:\masm32>set path
PATH=C:\windows\system32;C:\windows;C:\windows\system32\wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

C:\masm32>set path=%path%;c:\masm32\bin;c:\masm32\include;c:\masm32\library

C:\masm32>ml
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info

C:\masm32>

Now, things are working, and we can check if 'link' can be invoked too.
Type 'exit' to get out from console mode and let's return to linux terminal.
Code: [Select]
C:\masm32>exit
mineiro@assembly:~/.wine/drive_c/masm32$
Note that some linux wine configurations don't configure console mode inside same terminal mode. They open a window with console mode. Try this by typing "wine start".
Now, back again on terminal mode, type 'winecfg", we can configure windows behavoir. Note that you can insert real windows .dll files into this screen, so, if some program don't work properly inside wine you can overwrite 'faked' wine .dll's by using real windows dinamic linked libraries (.dll).
Under terminal, let's read about wine manual by typing "man wine".

An easy way to go is type "wine explorer" from terminal, so now we can just double click on programs.

I writed this way because you can configure programs/assemblers/IDE/... that do not have instalation like hjwasm,casm,sol_asm2,Radasm,... . So, you can walk by yourself and set environment variable to these programs.
A note is about wine configuration, sometimes you try to invoke a console assembler like "wineconsole ml64.exe" and will not work properly. If this happens, try too "wine ml64.exe".
Other note is about that wine supports win32 and win64 programs (64 bits windows mode only on linux x86-64 system).
A final note is about not all programs will work under wine. Radasm is one of this, it works fine but errors happens sometimes when you try to assemble a program from menu way (first time works fine, second time not and crashes). So, open 2 instances of wine, one to radasm and other to console, and from console you are able to assemble and link.
I have done a 'simple pipe edit example' program that's inside this board to solve this. So, you can create .bat files to asemble and link more quickly while using an editor and on a graphical way.
Remember a good habit but it's not really necessary, put windows programs inside .wine/drive_? folder to work properly.

Hope this helps you, if you have questions feel free to ask. I'm a normal user under linux, so I feel that I can't answer all things but we can shakehands and try.
Title: Re: Does Masm compile under Wine
Post by: qWord on July 31, 2016, 12:41:40 AM
Does Masm compile under Wine in Linux ?
I know you have not much to do with programming overall and use this forum mainly as computer helpdesk, but you should know that MASM is an assembler and not a compiler...
Title: Re: Does Masm compile under Wine
Post by: Zen on July 31, 2016, 04:36:23 AM
Quote
...MASM is an assembler,...
...and NOT a compiler,...

...I won't believe it until GOD tells me so,...:dazzled:
...Ha,...ha,...:bgrin:
My bizarre theory is that MASM is a HYBRID compiler/assembler. (...but, then, when no one is around,...it actually talks to me...:dazzled:)   
Title: Re: Does Masm compile under Wine
Post by: jj2007 on July 31, 2016, 06:25:28 AM
...I won't believe it until GOD tells me so,...:dazzled:

Watch your step :badgrin:
Title: Re: Does Masm compile under Wine
Post by: anunitu on July 31, 2016, 06:41:43 AM
ZEN,it is I,your Father...you must learn to first walk on water,and then you may approach the black art of assembler.....(magic hand comes down out of the cloud and pokes ZEN in his funny place)
Title: Re: Does Masm compile under Wine
Post by: Zen on July 31, 2016, 06:59:51 AM
(https://s-media-cache-ak0.pinimg.com/236x/db/40/b0/db40b05a4dd9c98158ad4b0d5224ad70.jpg)
Title: Re: Does Masm compile under Wine
Post by: Magnum on July 31, 2016, 07:15:11 AM
Does Masm compile under Wine in Linux ?
I know you have not much to do with programming overall and use this forum mainly as computer helpdesk, but you should know that MASM is an assembler and not a compiler...

You are unusually pleasant. :-)

When you get nice, I will know the end is coming.

The MASM package does both assemble and compile.

Title: Re: Does Masm compile under Wine
Post by: Magnum on August 01, 2016, 04:34:33 AM
thanks mineiro.

It is installed and created my first program under Linux.

Linux can not correctly run certain code that contains FPU code or sounds.

Title: Re: Does Masm compile under Wine
Post by: mineiro on August 02, 2016, 03:24:00 AM
Well, I can try some tests to fpu if you need, just post source. My machine don't have speakers.

But I think is better you create programs to linux, it's not hard like appears. If you need some start point just ask and I think I can try to guide you.
Title: Re: Does Masm compile under Wine
Post by: cman on August 02, 2016, 03:43:47 AM
Quote
MASM is an assembler and not a compiler...

Couldn't one properly refer to MASM as a type of compiler ( a compiler is simply a software translator that converts one computer language to another , in a general sense ).  To me , an assembler is a type of compiler ( i know there are different translation requirements for HLL translators and assemblers ). Just a thought ...... :biggrin:
Title: Re: Does Masm compile under Wine
Post by: jj2007 on August 02, 2016, 04:14:29 AM
See reply #5 - you are touching religious questions here :icon_mrgreen:
Title: Re: Does Masm compile under Wine
Post by: Zen on August 02, 2016, 04:55:33 AM
:bgrin:...QWORD has such a HIGH IQ that it's frightening,...:bgrin:
We should start a special, top-secret fund, so that we can surreptitiously FedEx him a Stratocaster and a couple of the better-looking Sports Illustrated Swimsuit Models (http://www.si.com/swimsuit/collection/2016),...:bgrin:
Title: Re: Does Masm compile under Wine
Post by: anunitu on August 02, 2016, 05:54:06 AM
Yes,why YES,that is the ticket.....
Title: Re: Does Masm compile under Wine
Post by: Magnum on August 02, 2016, 06:19:52 AM
See reply #5 - you are touching religious questions here :icon_mrgreen:

I do not think it is close to religious.

I would be glad to make a religious post so you know what one looks like. :-)

Title: Re: Does Masm compile under Wine
Post by: Magnum on August 02, 2016, 06:27:54 AM
Well, I can try some tests to fpu if you need, just post source. My machine don't have speakers.

But I think is better you create programs to linux, it's not hard like appears. If you need some start point just ask and I think I can try to guide you.

I forgot that DednDave and others helped me with the fpu code to this fireworks code.

The source and exe are attached.

It works in Ubuntu and Puppy Linux versions.


Title: Re: Does Masm compile under Wine
Post by: mineiro on August 02, 2016, 07:08:05 AM
fireworks works here too.
Nice example per see.
Title: Re: Does Masm compile under Wine
Post by: qWord on August 02, 2016, 10:41:08 PM
Sometime back I said to myself: This far and no further.
I will no longer accept that there are people on an assembler programming forum who can't distinguish between assemblers and compilers.

... I'll be back  8)
Title: Re: Does Masm compile under Wine
Post by: TWell on August 02, 2016, 11:58:21 PM
http://www.differencebetween.com/difference-between-assembler-and-vs-compiler/
Title: Re: Does Masm compile under Wine
Post by: jj2007 on August 03, 2016, 02:47:55 AM
I will no longer accept that there are people on an assembler programming forum who can't distinguish between assemblers and compilers

Amen :biggrin:

P.S. - almost 40 lines of pure assembly code:

GuiParas equ "Hello Masm32 Forum", x100, y100, w500, h250, b0F0F0A0h
GuiMenu equ @File, &Open, &Save, -, E&xit, @Edit, Undo, Copy, Paste
include \masm32\MasmBasic\Res\MbGui.asm
Enum 1:bezier
MakeFont    hFontSmall, Height:15, Weight:FW_SEMIBOLD, "Arial"
MakeFont    hFontBig, Height:32, "Times New Roman"
MakeBrush   hRed, RgbCol(255, 64, 64)            ; light red
MakeBrush   hBrushGdip, RgbCol(100, 200, 200, 0)
MakePen     hPenBez, RgbCol(200, 160, 160, 0), width 4, startarrow LineCapRoundAnchor, endarrow 12:9, inset 2
MakePath    bezier, Bezier(50:50, 30:320, 600:150, 789:800, 400:400, 600:200, 55:55)      ; 4, 7, 10, ... points
MakeBrush   hGB, RgbCol(0, 160, 64)            ; dark green
Event Menu
  MsgBox 0, Str$("You clicked menu #%i", MenuID), "Hi", MB_OK
Event Paint
  m2m ecx, 3            ; just to demonstrate how to use scaling
  GuiTextStyle font:hFontSmall, bcol=RgbCol(255, 255, 160), fcol RgbCol(0, 0, 255)
  GuiLine 15.0, 15, ecx*90+10, ecx*5      ; start x+y, end x+y
  GuiLine 280, 80       ; end x+y
  GuiLine 15.0, 80      ; .0 means x expressed as % of width
  GuiLine 15.0, 15
  GuiSetFill hRed        ; use the red brush
  GuiEllipse 48.0, ecx*7+4, 40, 20      ; x (as %), y, radius x, radius y
  GuiSetFill hGB
  GuiDraw bezier, hPenBez/hBrushGdip, 18.0, 15.0, 900, 700      ; Bezier
  GuiCircle ecx*80-4, 25, ecx*3+4      ; x, y, radius
  For_ ct=0 To 8
      GuiText ct*2+4, ct*15+4, Str$("Line %i ", ct+1)
  Next
  GuiText 50.0-80, 55.0, " CGA palette: ", font hFontBig, bcol CgaCol(cWhite)
  GuiTextStyle fcol CgaCol(cWhite), transparent      ; first 8 need white on black 
  For_ ecx=0 To 15
      GuiSetFill ecx
      GuiTextBox ecx*30+9, 85.0, 18, 16, Str$(ecx), font:hFontSmall      ; 85.0 = use 85%
      If_ ecx>7 Then GuiTextStyle fcol 0
  Next
  GuiTextBox 305, 18, 160, 60, "Добро пожаловать", font:hFontBig, bcol:CgaCol(cYellow), fcol:RgbCol(0, 128, 255)
GuiEnd      ; OPT_Icon Eye


P.P.S.: SmplMath code gets ... assembled? compiled?
Title: Re: Does Masm compile under Wine
Post by: qWord on August 03, 2016, 02:54:06 AM
P.P.S.: SmplMath code gets ... assembled? compiled?
... macro-assembled  of course  8)
Title: Re: Does Masm compile under Wine
Post by: anunitu on August 03, 2016, 05:38:17 AM
Do not go there with the compiler vs assembler.that might go as far afield as Mac VS x86(Oh  the memories of the GREAT war of computer choice) Chants the secret ascii and hex sequence to banish all evil systems...
Title: Re: Does Masm compile under Wine
Post by: HSE on November 06, 2018, 09:03:45 AM
Hope this helps you, if you have questions feel free to ask. I'm a normal user under linux, so I feel that I can't answer all things but we can shakehands and try.

Well... that helpme!

Masm32 apparently is working perfect with Wine in Ubuntu.

Thanks Mineiro  :t