Author Topic: HJWasm  (Read 38257 times)

habran

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #45 on: July 20, 2015, 06:09:09 AM »
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

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #46 on: July 20, 2015, 06:51:56 AM »
Uploaded new versions 32 and 64 bit at the top of this thread
Cod-Father

jj2007

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #47 on: July 20, 2015, 10:17:16 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

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #48 on: July 20, 2015, 10:58:40 AM »
JJ here is one just for you without DO,DY,DZ ;)
Cod-Father

jj2007

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #49 on: July 20, 2015, 11:15:19 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

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #50 on: July 20, 2015, 11:27:24 AM »
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

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #51 on: July 20, 2015, 05:53:42 PM »
Try to assemble this one with the original Masm32 SDK:
Code: [Select]
include \masm32\include\masm32rt.inc

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

end start

habran

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #52 on: July 20, 2015, 09:07:52 PM »
I did and it worked:
Code: [Select]
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

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #53 on: July 20, 2015, 09:29:30 PM »
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

  • Member
  • ****
  • Posts: 752
    • Uasm
Re: HJWasm
« Reply #54 on: July 20, 2015, 09:56:10 PM »
Code: [Select]
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

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #55 on: July 20, 2015, 10:23:03 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

  • Member
  • ****
  • Posts: 752
    • Uasm
Re: HJWasm
« Reply #56 on: July 20, 2015, 10:56:41 PM »
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

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #57 on: July 20, 2015, 11:01:05 PM »
Perfect :t

habran

  • Member
  • *****
  • Posts: 1203
    • uasm
Re: HJWasm
« Reply #58 on: July 20, 2015, 11:11:26 PM »
Perfect :t
It is easy to say but I have to sweat blood :dazzled:
Cod-Father

jj2007

  • Member
  • *****
  • Posts: 9513
  • Assembler is fun ;-)
    • MasmBasic
Re: HJWasm
« Reply #59 on: July 20, 2015, 11:45:29 PM »
I 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: