QTARDCAP format data

15 pts.
Tags:
API
IBM
IBM Tape Libraries
QTARDCAP
Tape0100 format has the resource status list in an array of 15 characters each at an unspecified location. How do I retrieve that information?  If I dump the entire receiver variable into a data area, nothing is found.  The offset to the array is 209 but the format specifications only go to 184.

Answer Wiki

Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Discuss This Question: 2  Replies

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when members answer or reply to this question.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • TomLiotta
    I haven't used that API, but most APIs work similarly. At offset 124 in the TAPE0100 format, there is a 32-bit binary value for "Offset to resource status list". You would add this offset value to the address of the data structure that you defined to hold the TAPE0100 format. The array will begin at that new address. If you only defined a 184-byte receiver variable to hold the returned TAPE0100 format and you called the API with (184) as the value of the "Length of receiver variable" parm, then the array wasn't returned by the API. The first 32-bit integer returned in the TAPE0100 format is the "Bytes returned" value. That will never be larger than the value of "Length of receiver variable" that you told the API. If the API could have returned more data than the limit that you set, the second 32-bit integer in the TAPE0100 format will tell you the "Bytes available". One common procedure is to call this kind of API first with just 8-bytes for a receiver variable. When the format is returned, all you get back are "Bytes returned" in the first 4 bytes and "Bytes available" in the second 4 bytes. You could then allocate a block of memory big enough to hold all of the "Bytes available", and call the API again to receive all of the data available. Your basic TAPE0100 data structure would be defined over a pointer to your allocated memory. You should have a second pointer that is set to the address from the first pointer plus the "Offset to resource status list". Your resource status list array would then be based on the address of the second pointer -- the array definition is essentially a separate definition. If you need any clarification, please post back. If you post back, include a copy of your data definitions for the TAPE0100 format, of any parm variables for the CALL to the API and of the CALL instruction itself. Tom
    125,585 pointsBadges:
    report
  • hkz723
    Tom, Your explaination was spot on. My thanks for the input.
    15 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

To follow this tag...

There was an error processing your information. Please try again later.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Thanks! We'll email you when relevant content is added and updated.

Following