News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

HJWasm

Started by habran, July 07, 2015, 04:38:55 PM

Previous topic - Next topic

habran

Thanks Johnsa :biggrin:
JJ, I could build for you one version without DY, DO, DZ if you insist 8)
however, I suggest a compromise for you:
download WinInc and make those changes whenever you encounter error in includes and when you use  HJWasm use
WinInc

Even if you cling to 32 bit, you will still be able to use AVX2 and AVX512 (first 8 registers) and for that reason you need
those data type defines
Cod-Father

habran

Uploaded new versions 32 and 64 bit at the top of this thread
Cod-Father

jj2007

Quote from: habran on July 20, 2015, 06:09:09 AM
JJ, I could build for you one version without DY, DO, DZ if you insist 8)

The problem is not me; it's everybody who ever used dy in code (including, btw, the authors of Visual C).
Imagine you had a fat 50,000 lines source where one of your variables was called dd. Then, some day, the authors of Masm say "from now on, we can use dd ? instead of DWORD ?" 8)

habran

JJ here is one just for you without DO,DY,DZ ;)
Cod-Father

jj2007

Quote from: habran on July 20, 2015, 10:58:40 AM
JJ here is one just for you Masm32 users without DO,DY,DZ ;)

Works fine with MB and RichMasm sources :t
Has it become faster? RM with 16k lines assembles+links in 800ms on my i5, before it used to be 1000 with JWasm.

habran

JJ thanks, I did not know that it is faster but I APOLOGIZE about it ;)
However, download it again because first one has some bugs
Cod-Father

jj2007

Try to assemble this one with the original Masm32 SDK:
include \masm32\include\masm32rt.inc

.code
start: MsgBox 0, "Hello World", "Hi", MB_OK
exit

end start

habran

I did and it worked:

D:\masm32\bin>ml /c /coff /Cp /nologo /Fm /Zi /Zd hallo.asm
Assembling: hallo.asm

***********
ASCII build
***********

D:\masm32\bin>link hallo.obj  /SUBSYSTEM:CONSOLE /RELEASE
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


D:\masm32\bin>hallo.exe

D:\masm32\bin>

what was supposed to happen?
Cod-Father

jj2007

Good :t

Now try the same with D:\masm32\bin>HJWasm /c /coff /Cp /nologo /Fm /Zi /Zd hallo.asm

(with original \Masm32\include\windows.inc, 977412 bytes, 10 January 2012)

johnsa


D:\>c:\jwasm\hjwasm /c /coff /Cp /nologo /Fm /Zi /Zd test.asm
Warning A4109: Invalid command-line option: /Fm

***********
ASCII build
***********

test.asm: 7 lines, 2 passes, 130 ms, 0 warnings, 0 errors

D:\>


Works for me. (CAVEAT: I have already updated all my include files to use _dx and _dy).

jj2007

Quote from: johnsa on July 20, 2015, 09:56:10 PM(CAVEAT: I have already updated all my include files to use _dx and _dy).

And that's the problem - you have become incompatible with those people who use the original Masm32.
Such "minor" changes imply that two sorts of people are now in trouble:

1. noobs who are still fighting with the mysterious difference between "build all" and "console build all" now get the advice "when you plan to use ML, stick with the original SDK, otherwise edit Windows.inc bla bla"

2. very experienced members with large projects will see cryptic error messages, and are subsequently forced to devise a strategy how to make their projects compatible with two different assemblers, i.e. the ML+JWasm family on the one hand, and HJWasm on the other.

And all that to save a bit of typing, i.e. dy instead of ymmword...?

johnsa

I suggest then as a compromise we add an new option directive:

OPTION DATATYPES:0
;ommission or default=0 which means DY,DO,DZ are not handled and types must be fully declared with YMMWORD, XMMWORD as per masm. 1 = implement DY/DO/DZ (for those who want it).

jj2007


habran

Quote from: jj2007 on July 20, 2015, 11:01:05 PM
Perfect :t
It is easy to say but I have to sweat blood :dazzled:
Cod-Father

jj2007

Quote from: habran on July 20, 2015, 11:11:26 PMI have to sweat blood :dazzled:

Blood, Sweat and Tears! I know the feeling. JWasm often gave me a rough time when trying to remain compatible with all assembler versions >=6.15 :biggrin: