Author Topic: masm32 win 10 version  (Read 2816 times)

ToutEnMasm

  • Member
  • *****
  • Posts: 1189
    • EditMasm
masm32 win 10 version
« on: March 23, 2016, 08:49:36 PM »

Works also with:
Microsoft Windows 10 Family Edition: 10.0.10586
Fa is a musical note to play with CL

jj2007

  • Member
  • *****
  • Posts: 7761
  • Assembler is fun ;-)
    • MasmBasic
Re: masm32 win 10 version
« Reply #1 on: March 23, 2016, 09:33:25 PM »
Even more important: It works with Win7-64 and Windows XP :t

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 4935
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: masm32 win 10 version
« Reply #2 on: March 24, 2016, 12:32:00 AM »
The main fun was tracking down the sequence of error messages. The Win10 emulation of Win32 is good but not without its differences, the old print spooler was incompatible with Win10 and the only solution was to remove it. Apart from some updated binaries, it is nearly identical to the earlier installer and it should work from WinXP upwards. There is nothing to stop it installing on Win2000 but some of the binaries will not display correctly as Win2000 did not support RGB/A image data. I gave up on supporting old graphics by back converting RGB/A to 256 colour as it was a pain to do and looked like crap.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :biggrin:

jj2007

  • Member
  • *****
  • Posts: 7761
  • Assembler is fun ;-)
    • MasmBasic
Re: masm32 win 10 version
« Reply #3 on: March 24, 2016, 01:42:43 AM »
Btw why do you call it "emulation"??

sinsi

  • Member
  • *****
  • Posts: 1007
I can walk on water but stagger on beer.

jj2007

  • Member
  • *****
  • Posts: 7761
  • Assembler is fun ;-)
    • MasmBasic
Re: masm32 win 10 version
« Reply #5 on: March 24, 2016, 09:06:17 AM »
The comments are lovely, as usual. Here's what I get for my system. Still, I find the word "emulation" a bit misleading. The processor is not emulated, it runs in native 32-bit mode afaik...

Code: [Select]
SystemInfo
sinfo.wProcessorArchitecture    0
sinfo.dwProcessorType   586   <-----------
PROCESSOR_INTEL_PENTIUM 586   <-----------
x:sinfo.lpMinimumApplicationAddress     00010000
x:sinfo.lpMaximumApplicationAddress     FFFEFFFF
b:sinfo.dwActiveProcessorMask   00000000000000000000000000001111
sinfo.dwNumberOfProcessors      4

some x64 exe files:
C:\Windows\sysnative\boot\winload.exe
C:\Windows\sysnative\boot\winresume.exe

Siekmanski

  • Member
  • *****
  • Posts: 1145
Re: masm32 win 10 version
« Reply #6 on: March 24, 2016, 09:39:45 AM »
Code: [Select]
SystemInfo
sinfo.wProcessorArchitecture    0
sinfo.dwProcessorType   586
PROCESSOR_INTEL_PENTIUM 586
x:sinfo.lpMinimumApplicationAddress     00010000
x:sinfo.lpMaximumApplicationAddress     7FFEFFFF
b:sinfo.dwActiveProcessorMask   00000000000000000000111111111111
sinfo.dwNumberOfProcessors      12
some x64 exe files:
C:\WINDOWS\sysnative\boot\winload.exe
C:\WINDOWS\sysnative\boot\winresume.exe

hutch--

  • Administrator
  • Member
  • ******
  • Posts: 4935
  • Mnemonic Driven API Grinder
    • The MASM32 SDK
Re: masm32 win 10 version
« Reply #7 on: March 24, 2016, 12:53:11 PM »
There are a couple of things involved, the x86 hardware to remain compatible supports everything from 16 bit DOS upwards and it depends on the OS you have installed as to what the native format happens to be. If you are running 64 bit hardware which most do these days AND you install a 64 bit OS, Windows in this case, the base operating system components are all 64 bit which Win32 cannot directly address do due to a range of differences. As 32 bit software will be around for a long time yet, Microsoft had to produce support for 32 bit software and it is done through what is basically a "virtual machine" where the same functions and facilities are exposed so that 32 bit Windows software will run.

Older 32 bit Windows did the same thing with 16 bit Windows applications and could run DOS 16 bit real mode programs with a few limitations and both were done in virtual machines. All an emulation layer is is a virtual machine to run software that is not the native OS type, Win64 PE files are the native type and can directly use the 64 bit OS components and address far more than 4 gig.
hutch at movsd dot com
http://www.masm32.com    :biggrin:  :biggrin:

jj2007

  • Member
  • *****
  • Posts: 7761
  • Assembler is fun ;-)
    • MasmBasic
Re: masm32 win 10 version
« Reply #8 on: March 24, 2016, 07:54:20 PM »
the x86 hardware to remain compatible supports everything from 16 bit DOS upwards

Japheth had a nice exercise showing how to force the cpu into all three modes. Anyway, this looks to me like an attempt of Microsoft to blur the lines between virtualisation and emulation:

When my old word processor runs on Win7-64, the code firmly believes to be run by a Motorola 68000. This is emulation, and it's kind of "slow" because every instruction has to be translated into x86 code (actually it's much faster than the original, which ran at 8 Mega-Hertz).

In contrast, WOW just hooks API calls and exchanges some pointers, but the code is run by the x64 cpu with its x86 subset of instructions - there is no translation at cpu level. That is virtualisation, and in practice it's as fast as "native format" code.

The distinctions are controversally discussed. Search for virtualisation emulation simulation to get an idea.