Yes, the UNSPEC construct is at once labored and surpassingly ugly. I'm not located on this Sunday morning where I can conveniently chase down when exactly the bif POINTERADD was added to the language, but even without it one can do pointer arithmetic perspicuously using constructs of the form
declare p pointer, pfwarith unsigned binary fixed(32) based(addr(p)) ; The statement pfwarith = pfwarith + <increment> ; then increments p by the value of <increment>. (C-in-PL/I enthusiasts can even write pwarith ++= <increment> ; instead.) The use of UNSPEC [except perhaps, and then only very occasionally, as a pseudovariable] is prima facie evidence of PL/I baby talk. --jg ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN