× 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.




On 28/04/2009, at 6:52 AM, Steve Moland wrote:

I orignally posted an issue that a program would not convert to V6R1 from an
earlier release even though all "creation" data was there.

I read the earlier stuff but didn't bother much with it. Looking back at what you wrote I note some inconsistencies:

1) You showed the module being compiled on 430 with a target of 230

2) You showed the CRTCMOD command with TGTRLS(V3R2M0)

3) You showed the CRTPGM command with TGTRLS(V4R2M0)

Do you spot the anomaly?

I've came across this code below which is some where down in the bowels of
it all. I know what it is doing, but I'm not comfortable that I really
understand the "how", and I see a reference to QUSRTOOL and MI Instruction.

The qusrtool/qattsysc(opusapi) is a reference to an include that no longer exists. I don't expect this to be the cause of your conversion issue because that include simply declares prototypes and structures for the various User Space APIs. However, to successfully compile on a recent release you will need to alter the source to refer to the current includes in QSYSINC/H. (I don't recall when the System C includes were removed from QUSRTOOL but they were present in 310 and gone by 440.)

miptrnam.h still exists and is fairly innocuous. It's used by the code to access the Compare Pointer Type MI instruction. The code appears to presume that if it got a space pointer then the caller supplied a user space name or an empty string otherwise it must be junk. Seems an odd way of doing this. However, that doesn't appear to be the cause of the conversion error either.

The person who wrote this had a reasonable grip on the 400 in 1993 and a
huge knowledge years later. He hated doing a "hack" but would do so if need
be. Later on through networking he obtained lots more knowledge of the 400.

Is this a hack and is it likely to be something that V6R1 under level 40
would not approve off?

Not really a hack but can be modernised and simplified. You could easily remove the MI references and change to use the current QSYSINC includes then recompile.

BTW, the cross platform stuff for PC_DOS is not longer supported so it could
be removed if somehow it might be hanging around to confuse V6R1.

The code uses the C pre-compiler to exclude or include the appropriate code. As long as PC_DOS is not defined during the compile then the compiler will not include any of the PC-specific code. It won't be in the compiled object so can't cause a problem. You can leave it or trash it as you wish.



Regards,
Simon Coulter.
--------------------------------------------------------------------
FlyByNight Software OS/400, i5/OS Technical Specialists

http://www.flybynight.com.au/
Phone: +61 2 6657 8251 Mobile: +61 0411 091 400 /"\
Fax: +61 2 6657 8251 \ /
X
ASCII Ribbon campaign against HTML E-Mail / \
--------------------------------------------------------------------




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.