R3 seems to be being loaded with the virtual address of the PCCA. 520 (208) ADDRESS 4 PSAPCCAV - VIRTUAL ADDRESS OF PCCA
Does anyone know if that moved from below to above the line in 1.13? Charles -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Pommier, Rex Sent: Wednesday, April 09, 2014 12:00 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: S0C4 abend on old assembler program when upgrading to z/OS 1.13 Hi list, I'm looking for a pair of virtual eyes to help me with a problem that is perplexing about 4 of us here. We're running z/OS 1.11 and are attempting to upgrade to 1.13. Here's the scenario: we have an ancient version of something called quikjob which is a report writer. Due to some application limitations, we need to keep running this old thing for the foreseeable future, as it is written in 24 bit assembler (and it calls homegrown 24 bit programs) and any newer versions of quikjob are in 31 bit which causes the called application code to choke. In preparation for the upgrade, I cloned the relevant 1.11 volumes to a test LPAR, made the changes I needed to for the 1.13 upgrade to PARMLIB VTAMLST, and TCPIP etc. and IPLed 1.13 in the test LPAR. We ran a full test of the 1.13 system and everything came back clean. Last weekend we IPLed production on 1.13 and ended up backing it out because the quikjob jobs all failed with S0C4 abends. While attempting to diagnose the problem, we discovered that the abends are not being caused by quikjob calling other modules, as we "wrote" a 1 line quikjob program consisting of the word "end" and still got the failure. After we backed out, I re-cloned the production LPAR back to test and made as few changes as I could get by with, but I can't get the quikjob program to fail on test and I couldn't get it to work on prod. Here is a snippet of the code disassembled by dumpmaster: 00000000_00009748 -10 4B20 C17A SH R2,378(,R12) 00000000_0000974C -C 9140 2174 TM 372(R2),X'40' 00000000_00009750 -8 4710 C04A BC 74(,R12) BO 00000000_00009754 -4 5830 0208 L R3,520 00000000_00009758 0 D503 3000 C172 CLC 0(4,R3),370(R12) 00000000_0000975E 6 4770 C02C BC 44(,R12) BNE/BNZ 00000000_00009762 A 4100 3007 LA R0,7(,R3) 00000000_00009766 E 47F0 C0C4 BC 196(,R12) UNCOND The program is failing on the CLC statement right in the middle of the snippet. Here is a dump of the registers at time of failure. Program QUIKJOB failed with abend code S0C4 at address 00000000_00009758, offset 1E30 in Program QUIKJOB Registers at time of abend. 0 00000000_0001369C 1 00000000_00009F60 2 00000000_00FD8158 3 00000000_02AF7A08 4 00000000_009D89B0 5 00000000_009FF130 6 00000000_009A7FC8 7 00000000_FD000000 8 00000000_00007400 9 00000000_009FF3F0 A 00000000_00007400 B 00000000_00009C00 C 00000000_0000973E D 00000000_00007B54 E 00000000_5F00C2DA F 00000000_0000973E For my little pea-brain, it appears as though register 3 contains a 31 bit address. This is further bolstered by the fact that I took a copy of the quikjob program and zapped it by replacing the CLC command with X'0000' to force an abend. In this case, by running the code on both the 1.13 test system as well as production 1.11 system, register 3 at the time of the abend was either 00F47008 or 00F4A008. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN