News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Noob installation Q: about Masmv9_legacy

Started by mikorians, October 10, 2012, 04:25:07 AM

Previous topic - Next topic

mikorians

Maybe I'm just dumb or doing something wrong...

I have an older machine I wanted to get started on that is designed for older PIC programming, so it's Win98 (don't laugh).
I got an old version downloaded (QEdit 9.00 release) - I just found it on the internet.
I cannot get it to compile any of the stock demos or tutorials and it says:

"Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

Assembling: C:\MASM32\bin\my.asm
\masm32\include\windows.inc(53) : fatal error A1016: Internal Assembler Error
ArgCount(4): Macro Called From
  \masm32\include\windows.inc(53): Include File

Assembly Error
Press any key to continue . . ."

This would seem pretty intrinsic to the use of the language...   :icon_confused:
It seems that I was able to get it to work at one time without any problems whatsoever, but now it won't do anything
I was really looking forward to it and wanted to get started learning basic Assy Lang...   :(

Spare us the  [RESOLVED], this is a forum of members, not a commercial help desk.

jj2007

Hi mikorians,
Welcome to the Forum :icon14:

Was the installation of the Masm32 package successful, or did you get error messages?
What happens if you try to install the latest version?

mikorians

 :icon_rolleyes:  I had to hunt everywhere for a version that would work in win98.  That was MASM version 9 legacy.
It was a .zip file with an automatic .rar unpacker, and no setup.exe.  So.  No.  No errors.
It is finding the .inc file, I think, but it doesn't like it for some reason.  Maybe the windows.inc file is too new for it?
There don't seem to be any other archives of these old versions of MASM anywhere.
Does anybody have the one that goes with 6.14.8444?

qWord

Seems to be a problem with the ArgCount-macro. Try it with editing windwos.inc: there are several typedefs at top if the file:
pr1  ArgCount(1) ; comment all this lines out - maybe it helps
pr2  ArgCount(2)
...
MREAL macros - when you need floating point arithmetic while assembling!

mikorians

Ummmmmmmm. Kinda new to this, but I'll try putting some ; to block out the argcount macro...  DONE.

my.asm file was saved stock from Code->"Bare Console Template" and assembled using Project->"Console Build All"  (Comments removed)

    include \masm32\include\masm32rt.inc
    .data?
      value dd ?
    .data
      item dd 0
    .code
start:
    call main
    inkey
    exit
main proc
    cls
    print "Hello World",13,10
    ret
main endp
end start

DOS console window now says numerous errors:
...
  my.asm(17): Main Line Code
my.asm(17) : error A2006: undefined symbol : ??0000
chr$(20): Macro Called From
  my.asm(17): Main Line Code
...
my.asm(21) : error A2008: syntax error : includelib
exit(20): Macro Called From
  my.asm(21): Main Line Code
\masm32\include\windows.inc(6939) : fatal error A1016: Internal Assembler Error

I had also tried the buildlibs.bat file, and it said both 'Install Completed Successfully' and 'this program compiled with errors' as well.
WINDOWS.INC for 32 bit MASM (Version 1.30 Release 7 March 2006)

jj2007

Quote from: mikorians on October 10, 2012, 08:53:54 AM
Ummmmmmmm. Kinda new to this, but I'll try putting some ; to block out the argcount macro...

That won't help, as the macro is frequently used in other macros. Try inserting the new version. If yours is named ArgCount (CamelCase), adjust the one below accordingly.

    argcount MACRO args:VARARG
      LOCAL cnt
      cnt = 0
      FOR item, <args>
        cnt = cnt + 1
      ENDM
      EXITM %cnt                ;; return as a number
    ENDM

mikorians

OK, tried jj -

Assembling: C:\MASM32\bin\my.asm
C:\MASM32\bin\my.asm(23) : fatal error A1016: Internal Assembler Error
argcount(18): Macro Called From
  inkey(2): Macro Called From
   C:\MASM32\bin\my.asm(23): Main Line Code

Oh, CamelCase...  Nope.
No happy for me time...  :(     Frustration: Ya know...  I went through this with C having the compiler not working and too picky, so I went back to my beloved Basic again.
Are the legitimate inc libraries for this version available so I don't have to fight this thing the whole way....?  Because it had worked well when I started a long time ago.

jj2007

Your error message says argcount(18), but the argcount I posted has only 6 lines. Which may mean that another macro is active.
Try inserting the seven lines I posted below "include" and above ".data".
If that doesn't work, comment out ; inkey - but you will have to start the exe from the commandline then. Alternatively, replace the inkey with
   invoke MessageBox, 0, chr$("bye"), chr$("OK?"), MB_OK

> I went through this with C having the compiler not working and too picky, so I went back to my beloved Basic again
Try MasmBasic - but I doubt it would work with Masm32 v9 ;-)

Hutch may have a full legacy installation for Win98. Wait and see :icon14:

mikorians

#8
Yeah, yeah.... 6 lines.  I get it - inside the macro, so why 18?   Ah wel...
Am I remarking things right?   1 semicolon, no whitespace, thus?
;this is a remark
I commented out the identical macro section in windows.inc and added your lines right below it.  Saved the file.  I tried to compile both with and without the below also, E.g.,
    ;pr0  typedef PROTO
    ;pr1  ArgCount(1)
    ;pr2  ArgCount(2)
...
I noted similar problems with another demo using invoke messagebox today...
Thanks for all your help   :eusa_boohoo:

Save me Steve

Update: Actually found and tried installing V7, V8, V8.2 w/3 service packs, and V9 legacy again.
It must be something about my computer they just don't like because none of them will compile the windows.inc file successfully.

More errors:
...windows.inc(35) : error A2008: syntax error pr1
...windows.inc(36) : error A2051:  text item required
ArgCount(1340): Macro Called From ...windows.inc(36) Include File
...windows.inc(0) : fatal error A1004: out of memory

Maybe I don't have buffers, files, or stacks set right?

This is your big chance to fix some sort of bug in the installation that makes some sort of assumption about a user's system.
:greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp: :greenclp:


qWord

ArgCount and argcount are different macros: ArgCount creates prototypes for function pointers; argcount count does what the name implies: count the number of arguments.
Try to use a newer version of ML or, the simplest, use jWasm -> just rename jwasm.exe to ml.exe an place it \masm32\bin.
MREAL macros - when you need floating point arithmetic while assembling!

mikorians

Tried JWasm (MD for non-real mode) v.2.08a and got a GPF.   I made the understandable mistake that the version for DOS was the one I wanted because the windows downloads of anything typically are too new to work in Win98.  After I found the JWasm.exe  (no post letters) and tried it ---
Uppy the puppy, she come!  Apparently my system, she no like the Microsoft...

Thanks guys, now I can get started on something that runs really fast!
I'll be back for more advice no doubt, but cheers!

:t  :t  :t  :t  :t  :t  :t  :t  :t  :t  :t  :t  :t