× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I thought memcpy is a C function - there is no implicit connection to anything on the i. How it's implemented depends on whatever version of C/C++ you use. If it has been a direct mapping to some MI function - well, we can't depend on that, cuz implementation changes as better ways are found. And I'd be very surprised to be able to depend on this

The C memcpy has this prototype

void * /memcpy/ ( void * destination, const void * source, size_t num )

The MI memcpy has this prototype

MEMCPY (

target_string : address of aggregate(*)
source_string : address of aggregate(*)
copy_length : unsigned binary(4) value which specifies the
number of bytes to copy
)
Similar. Now which memcpy do you run when you use it? I don't know. If you use _memcpy, that's most probably MI.

You also mention MI and assembler together - they are not the same on the i - there is assembly language on i - you can see it in STRSST, I believe. And if you take the disassemble option there, you don't get MI code. I've actually walked assembly in the lab. And must admit to not knowing enough to make it useful - have barely touched a little Microsoft assembly in my youth!

Confused on a Sunday!

Vern

Dennis Lovelady wrote:
It turns out (or appears)
that the MI is pulling some tricks under the covers.

Probably not the MI but rather the compiler.

This is probably the source of the confusion. RPG doesn't expect you
to
be using assembly language tricks to initialize a buffer, because you
can do it in other ways. Although I don't see an EASY way of
initializing a buffer to a computed value. You can do it with a little
trickery (basing an array, for example), but nothing quite as simple as
the overlapping move.

Isn't memcpy supposed to be a direct link to the MI instruction? If so, I
think we can take the responsibility for this one away from the RPG
compiler. If not, then what the heck is it?!? An emulation of an
emulation?

Maybe I'll try this in MI later today.

Dennis Lovelady
http://www.linkedin.com/in/dennislovelady
--
"Experience is the name everyone gives to their mistakes."
-- Oscar Wilde


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.