actually we are both wrong, the macro was used to make the call external if needed. The
near declaration was required to tell the assembler what addressing to use. If the label
was in the module being assembled, then the assembler knew what size to use.
-----Original Message-----
From: Chuck Guzis <cclist at sydex.com>
Sent: Oct 12, 2006 4:07 PM
To: cctalk at
classiccmp.org
Subject: Re: MSDOS Source code leaked
On 10/12/2006 at 3:34 PM Steve Thatcher wrote:
invoke is a macro that allows for handling small
code model versus large
code model...
The INVOKE macro cited merely declares the target of the call to be NEAR if
not already defined.
By the time MASM 6 (aka ML) came out, extended INVOKE was well internalized
into MASM--and allowed parameter passing (as well as simplified segment
definitions, procedure prototypes, procedure-local labels and a host of
other worthwhile features). But this was just a formalization of what many
programmers were already doing via macros.
Cheers,
Chuck