Author Topic: MasmBasic  (Read 133569 times)

Rob260z

  • Regular Member
  • *
  • Posts: 8
Re: MasmBasic
« Reply #420 on: August 01, 2017, 09:29:12 PM »
Well...I can actually make it run in a windowed mode. I'm going to explore this a little further. Has real potential.

Real-time debugging is going to be really beneficial, once I move past this initial setup phase.

Cheers for the info.

jj2007

  • Moderator
  • Member
  • *****
  • Posts: 7329
  • Assembler is fun ;-)
    • MasmBasic
Re: MasmBasic
« Reply #421 on: August 01, 2017, 11:17:54 PM »
Well...I can actually make it run in a windowed mode. I'm going to explore this a little further. Has real potential.

Another trick:
Code: [Select]
  winX=150
  winW=900
  ifidni @Environ(oSusy), <console> ; OxPT_Susy Console ; RichMasm autodetect will pick Windows, delete the x to force console
winX=450  ; leave more space for console output
winW=600
deb 4, "Hey, we are using a console in parallel to a window", $wc.lpszClassName
  endif
  invoke CreateWindowEx, WS_EX_ACCEPTFILES, wc.lpszClassName, chr$("Hello World"), ; set window title here
     WS_OVERLAPPEDWINDOW or WS_VISIBLE,
     winX, 150, winW, 400, ; window position: x, y, width, height
     NULL, NULL, wc.hInstance, NULL

jj2007

  • Moderator
  • Member
  • *****
  • Posts: 7329
  • Assembler is fun ;-)
    • MasmBasic
Major MasmBasic update
« Reply #422 on: August 03, 2017, 08:56:43 AM »
Please download and run the 3 August 2017 version of the package. As always, you can just follow the instructions, the new installation does not change any of your sources or settings, does not write anything to the registry, and does not interfere with your Masm32 installation (I do reinstallations frequently myself when testing...).

Apologies to the 16 members who downloaded MB in the last two days: There was a bug to fix when using MovVal xmm0, "123". You can still use an xmm reg as destination in QuadMath mode, but it has to be prefixed as MovVal q:xmm0, "123", otherwise, an ordinary 64-bit integer will be loaded:

include \masm32\MasmBasic\MasmBasic.inc         ; download
  Init quad                                     ; requires C:\TDM-GCC-32\bin\libquadmath-0.dll
  mov esi, Chr$("1234567890123456789.0123456789012345678901234567890")
  MovVal xmm0, esi
  PrintLine "64-bit int: ", Tb$, Str$(xmm0)
  MovVal f:xmm0, esi
  PrintLine "double/Real8: ", Tb$, Str$(f:xmm0)
  MovVal q:xmm0, esi
  PrintLine "Quad float e:", Tb$, Quad$(xmm0)
  MovVal q:xmm0, esi
  PrintLine "Quad float g:", Tb$, Quad$(xmm0, "%*.33Qg")        ; formats
EndOfCode


Output:
Code: [Select]
64-bit int:     1234567890123456789
double/Real8:   1.23456789012346e+18
Quad float e:   1.23456789012345678901234567890123e+18
Quad float g:   1234567890123456789.01234567890123

The other aspect concerns UAsm: By default, RichMasm will from now on use the faster UAsm64 for building 32-bit as well as "dual" 64/32-bit sources. If UAsm64 is not present in \Masm32\bin, RichMasm will ask you if you want to install it, and download and extract a recent version, currently 2.38 of 2 August.