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.