Try removing the '(8)' on the ' UNPK YYYY(15),&STCKEVAL(8)' statement. I'm thinking the assembler macro processing is actually interpreting it as the 8th character in the literal. I may be off base here, but it's what I would do.
C- Charles (Chuck) Hardee Senior Systems Engineer/Database Administration EAS Information Technology Thermo Fisher Scientific 300 Industry Drive | Pittsburgh, PA 15275 Phone +1 (724) 517-2633 | Mobile +1 (412) 877-2809 | FAX: +1 (412) 490-9230 [email protected] | www.thermofisher.com WORLDWIDE CONFIDENTIALITY NOTE: Dissemination, distribution or copying of this e-mail or the information herein by anyone other than the intended recipient, or an employee or agent of a system responsible for delivering the message to the intended recipient, is prohibited. If you are not the intended recipient, please inform the sender and delete all copies. -----Original Message----- From: IBM Mainframe Assembler List [mailto:[email protected]] On Behalf Of Paul Gilmartin Sent: Thursday, October 29, 2015 4:07 PM To: [email protected] Subject: Subscripting a literal In a macro, the following works OK: Loc Object Code Addr1 Addr2 Stmt Source Statement HLASM R6.0 2015/10/29 13.44 .... 0000F2 F3E7 D0D0 D118 000D0 00118 146+ UNPK YYYY(15),PK(8) ... where YYYY and PK are both relocatable symbols defined in a DSECT outside the macro. But: 3 MACRO 4 &L CONV &STCKEVAL ... UNPK YYYY(15),&STCKEVAL(8) gives: 000112 0000 0000 0000 00000 00000 161+ UNPK YYYY(15), ** ASMA074E Illegal syntax in expression - ** ASMA435I Record 32 in SPPG.HELLO.JOB06662.D0000101.? on volume: Where &STCKEVAL is a parameter defined as: 90 CONV =X'00C3870CB8C73BFFFFFFFFFFFFFFFFFF' ... in the macro call. Naively, I had hoped that PK and &STCKEVAL would both work as relocatable address expressions. What's the nicest way to make this work?: o Copy the literal to a work area? o LA R15,&STCKEVAL and base off that? o X&SYSNDX EQU &STCKEVAL and use that? o Other? Thanks, gil
