Obviously, I know that and I realized that the issue is integral boundaries! I am dealing with COBOL, not PL/I but the real issue was that the order is the other way around (i.e. the fullword is first and the halfword is second, leaving a two bytes gap unaccounted for after every pair. So I resolved it by adding a dummy two bytes variable in the end of each pair:
10 A PIC 9(9) COMP-5. 10 B PIC 9(4) COMP-5. 10 FILLER PIC XX. <=== compensating for the integral boundary of the next pair 10 D PIC 9(9) COMP-5. 10 E PIC 9(4) COMP-5. 10 FILLER PIC XX. <=== compensating for the integral boundary of the next element This works fine. I still do not know how to make PL/I communicate with C, but COBOL and C communicate like a pair of newlyweds once this was resolved. ZA ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN