Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MASM 5.1 16/32-bit programming

51 views
Skip to first unread message

Paul Edwards

unread,
May 26, 2023, 1:38:53 AM5/26/23
to
A couple of days ago I received my purchase of
Microsoft C 5.1 on 720k 3.5" floppies.

I was shocked that the disks all read fine.

Anyway, it includes MASM 5.1. I wasn't sure what to expect.

I gave it this code (which works fine on masm 6.15):

https://sourceforge.net/p/pdos/gitcode/ci/master/tree/src/protinta.asm#l65

and assembled like this:

masm -c -DNEWMODEL -Dmemodel=large -D@model=5 -D@datasize=1 protinta.asm,,,,

(some of the defines don't exist, but I'm happy to provide them manually).

It complained about lines 65, 66, 67 and 71.

All of them are references into the TEXT32 segment.

The error is:

protinta.asm(65): error A2057: Illegal size for operand

I'm not sure what that means.

Also note that I don't want to split into segment/offset
pairs, because I also assemble this code with as86
which uses the a.out format for object code, even
though it ends up (using ld86) as an MSDOS executable.

Note that I assemble on masm 6.15 like this:

ml -c -omf -DNEWMODEL -nologo -Dmemodel=large -DWATCOMC -DNEED_DISPLAYC protinta.asm

wasm also accepts the code.

Is there any way I can get rid of these errors while still
allowing as86 to work?

If I have to, I will use conditional assembly, but even then
I don't know what to write.

If I have to use conditional assembly I am happy to use
segment/offset splitting, if that's what masm 5.1 requires.

Thanks. Paul.

0 new messages