Author Topic: Which debugger to use.  (Read 1380 times)

Rick C. Hodgin

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Posts: 31
    • View Profile
Re: Which debugger to use.
« Reply #30 on: November 06, 2019, 12:11:53 pm »
My reading is that MASM 6 supported i386 (and I guess i486 etc) but did not support the flat memory model.

MASM 6 was given the .flat memory model support for OS/2 (as I understand it).  The .tiny memory model is also technically flat, but limited to 64KB.

Quote
Never used masm2alp or alp. Not really a programmer and about all I've done is porting assembly, mostly involving nasm. Simple stuff like the other day changing ".section rodate" to ".data" in some AS assembly (actually with ifdefs). The MASM386 code might just need some syntax fixes to port to another similar assembler and I do notice even going from MASM 5 to MASM 6 seems to take some work, at least going by the documentation.

I'll try it tonight.  I have MASM 6.0b.  Will start there.

Rick C. Hodgin

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Posts: 31
    • View Profile
Re: Which debugger to use.
« Reply #31 on: November 07, 2019, 12:02:58 am »
I was wondering if masm386.exe is just masm.exe renamed?  MASM 6.x supported .486 and .586 in (at least in DOS).

I installed MASM 6.0b to c:\masm\binp and c:\masm\binb, and copied c:\masm\binb\masm.exe to c:\masm\binp\masm386.exe and ran nmake sd386.mk in the sd386src folder.  It worked!

I had to tweak a few of the assembly lines (a bug in MASM I assume, as that code is valid with an address override prefix byte):
Code: [Select]
; Did not work:
cmp byte ptr [di], 20h

; Changed to:
push edi
and edi,0ffffh
cmp byte ptr [edi], 20h
pop edi

And there were places like that in vbox.asm and putup.asm.

And it didn't recognize this in tcpip.c:
Code: [Select]
SOCECONNREFUSED
SOCEINTR
SOCENOTSOCK

I defined them all as -1 to see if it would compile and it did.  I'll find out their true values and update the code.

It also didn't find ilink.exe in the path, and it's not installed anywhere in my "dir /s ilink.exe" c:\ path.  I assume it's expecting a slightly newer version of icc than I have installed, and a version of MASM that includes the incremental linker.
« Last Edit: November 07, 2019, 12:07:25 am by Rick C. Hodgin »

Dave Yeo

  • Hero Member
  • *****
  • Thank You
  • -Given: 11
  • -Receive: 149
  • Posts: 2148
    • View Profile
Re: Which debugger to use.
« Reply #32 on: November 07, 2019, 01:41:30 am »
Good to hear. Likely need the toolkit installed for ilink and nerror.h. You might have to update the network stuff to work with the 32 bit stack as it is too old to know about it. I have /os2tk45/h/nerror.h and /os2tk45/h/stack16/nerror.h here with those missing defines.