The above is what i got from JESYSMSG. I am only getting three entries in my Job in SDSF.They are
JESMSGLG
JESJCL
JESYSMSG.
Apart from that i am having no clue. Please guide me how i can rectify it.
Any other inputs if any one req please do let me know.
Posted: Tue Mar 08, 2005 5:49 pm Post subject: The code..
Hi,
Please find the code below. Is there any way i can upload the code in Notepad. Here In the listing i found the ABEND 001,DUMP in this place.
Code:
GRSSCAN EQU *
*
L R10,GRSWRKAD
LTR R15,R15
BZ GQSCANT
ABEND 001,DUMP
DS 0H
LA 1,001
LA 0,128(0,0)
SLL 0,24(0)
OR 1,0
SVC 13
GQSCANT EQU *
SR R3,R3
ST R3,TOKEN
THE FULL CODE
---------------------
TSOCAN TITLE 'TSO SESSION CANCELER'
*01/01/98 START CBSI Y2K
********************************************
REGEQU
TSOCAN CSECT
TSOCAN RMODE ANY
TSOCAN AMODE 31
*
STM 14,12,12(13) SAVE REGS IN SAVEAREA 00026
BALR 12,0 ESTABLISH REG VALUE 00026
USING *,12 ESTABLISH CSECT ADDR 00028
*
LR R2,R1 SAVE THE PARM PTR
STORAGE OBTAIN, X
LENGTH=DSECT0L, X
LOC=(BELOW)
LR R11,R1 MAP DSECT STORAGE
USING DSECT0,R11 TO REG 11 NOW!
*
LR R1,R2 RESTORE PARM PTR
*
LA R2,SAVEAREA LOAD ADDR OF NEW SAVEAREA
ST R13,4(R2) STORE PTR TO OLD SAVEAREA
ST R2,8(R13) STORE PTR TO NEW IN OLD
LR R13,R2 MAKE NEW CURRENT
*
SETUP EQU *
*
SR R1,R1
ST R1,EOFIND
USING PSA,R1
L R1,FLCCVT2
DROP R1
*KK1-S
*KK1 LA R1,340(R1)
*KK1 CLC 0(8,R1),SYSDNAME REALLY CHECKING FOR SYSB
*KK1 BE GOODSYS
*KK1 WTO 'THIS PROGRAM CAN ONLY BE RAN ON SYSB',ROUTCDE=11
*KK1 B EXITSAVE
*KK1-E
GOODSYS EQU *
*
*
USING PSA,R0 HOME ADDR ASCB
L R1,PSAAOLD
USING ASCB,R1 PRIMARY ASID'S ASCB
L R1,ASCBASXB
DROP R1
USING ASXB,R1
MVC THISUSER(8),ASXBUSER
DROP R1
*
*KK1-S
CLC =C'TSTA125',THISUSER
BE TESTEXLN
* DM AND DK USER PROCESSING
CLC HLQDM(2),THISUSER
BE VALIDUSR
CLC HLQDK(2),THISUSER
BNE UNAUTHO
VALIDUSR EQU *
LA R2,THISUSER
CLC VALLOW,3(R2)
BH UNAUTHO
CLC VALHGH,3(R2)
BH EXCELLNT
*
*KK1-E
*KK1 CLC =C'DM77',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM05',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM28',THISUSER . DAN HEINZ 1/30/98 RPC
*KK1 BE EXCELLNT . DAN HEINZ 1/30/98 RPC
*KK1 CLC =C'DM32',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM69',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM80',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM81',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'SP',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'SS',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK10',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK31',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DK70',THISUSER
*KK1 BE EXCELLNT
*KK1 CLC =C'DM',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK99',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK74',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK79',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK76',THISUSER
*KK1 BE GOODUSER
*KK1 CLC =C'DK26',THISUSER
*KK1 BE GOODUSER
*KK1-S
UNAUTHO EQU *
*KK1-E
WTO 'UNAUTHORIZED USER ACCESS, EXITING!',ROUTCDE=11
B EXITSAVE
*
GOODUSER EQU *
*
*KK1 L R15,16 CVT BASE
*KK1 ICM R15,15,CVTUSER-CVT(R15) CVTUSER (NIC1 SSCT)
*KK1 BZ EXITSAVE (NIC1 ISN'T ACTIVE, I GUESS)
*KK1 ICM R15,15,SSCTSSVT-SSCT(R15) NIC1'S SSVT
*KK1 BZ EXITSAVE (NIC1 IS DEAD - HOW SAD!)
*KK1 LUSE NIC1SSVT,R15 INDICATE WHERE WE ARE NOW
*KK1 CLI UVTHOUR,255 IS NIC1 UNSURE OF THINGS ?
*KK1 BE EXITSAVE YES - THATS GOOD ENOUGH FOR
*KK1 CLI UVTHOUR,7 IS IT BEFORE 7AM ?
*KK1 BNH EXCELLNT YES - OKAY SO FAR
*KK1 CLI UVTHOUR,19 IS IT AFTER 6PM ?
*KK1 BNL EXCELLNT YES - THAT'S OKAY, TOO
*KK1 CLI UVTWEEKD,6 IS IT SATURDAY OR SUNDAY ?
*KK1 BNL EXCELLNT NO - THEN FORGET ABOUT THIS
*KK1
*KK1 WTO 'UNAUTHORIZED EXECUTION WINDOW',ROUTCDE=11
*KK1 B EXITSAVE
*
*KK1-S
TESTEXLN EQU *
*
MVI TESTFLAG,C'Y'
*
*KK1-E
*
EXCELLNT EQU *
*
*
* MVC THISSYSN(8),0(R1)
*
STORAGE OBTAIN,LENGTH=GETMAC1L,LOC=BELOW,COND=YES
ST R1,GETRTNAD THIS IS GET PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=EOFCODEL,LOC=BELOW,COND=YES
ST R1,EOFRTNAD THIS IS EOF PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=PUTMAC1L,LOC=BELOW,COND=YES
ST R1,PUTRTNAD THIS IS GET PROCESSING ADDRESS
*
STORAGE OBTAIN,LENGTH=FOURMEGL,LOC=ANY,COND=YES
ST R1,GRSWRKAD THIS IS GET PROCESSING ADDRESS
*
MVC CMDIN(CMDINL),CMDINTP COPY TO DSECT STORAGE
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CMDIN
LA R4,OPENLIST
OPEN ((R3),INPUT),MODE=31,MF=(E,(R4))
LTR R15,R15
BZ OPENOUT
WTO 'OPEN FAILED FOR CMDIN DDNAME',ROUTCDE=11
B EXITNCLS
*
OPENOUT EQU *
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,MSGOUT
LA R4,OPENLIST
OPEN ((R3),OUTPUT),MODE=31,MF=(E,(R4))
LTR R15,R15
BZ READRCRD
WTO 'OPEN FAILED FOR MSGOUT DDNAME',ROUTCDE=11
B EXITNCLS
*
*
READRCRD EQU *
MVC CMDREC(80),SPACES
READLOOP EQU *
*
L R8,EOFRTNAD GET BELOW 16MB EOF RTN ADDR
L R5,GETRTNAD GET BELOW 16MB GET RTN ADDR
*
LA R1,CMDIN ADDR OF INPUT DCB
USING IHADCB,R1 MAP IT
STCM R8,7,DCBEODA STORE THE EOF RTN ADDR
DROP R1
*
MVC 0(EOFCODEL,R8),EOFCODE
MVC 0(GETMAC1L,R5),GETMAC1
LA R4,CMDIN LOAD ADDR OF INPUT DCB
LA R3,CMDREC LOAD ADDR OF INPUT RECORD
*
LA R7,EOFRTN LOAD ADDR OF EOF RTN
O R7,HBITON MAKE 31 BIT ADDR
*
LA R6,MGCREAD LOAD RTN RETURN ADDR
O R6,HBITON MAKE 31 BIT ADDR
*
BSM R0,R5 GO GET THE RECORD
*
MGCREAD EQU *
CLC CMDREC(8),KGFDSN
BE CHCKAUTH
CLC CMDREC(8),NMRDSN
*KK1-S
* BNE BADDSN
BE CHCKAUTH
CLI TESTFLAG,C'Y'
* BE TSTDATA
BNE BADDSN
*
TSTDATA EQU *
CLC CMDREC(8),TSTDSN
BNE BADTST
*KK1-E
CHCKAUTH EQU *
MVC MGCRELS(MGCREPL),MGCREL COPY TO DSECT STORAGE
TESTAUTH FCTN=1,KEY=YES,RBLEVEL=1
LTR R15,R15 TEST IF AUTHORIZED
BZ GRSSCAN AUTHORIZED; SO GO ISSUE CMD
* WTO 'NOT AUTHORIZED AT THIS TIME',ROUTCDE=11
* B EXIT FINISHED; SO EXIT
*
GRSSCAN EQU *
*
L R10,GRSWRKAD GQSCAN WORKAREA
LTR R15,R15 ANY STORAGE RECEIVED?
BZ GQSCANT NO, ALL DONE
ABEND 001,DUMP INFORM USER OF ERROR
GQSCANT EQU *
SR R3,R3 ZERO REG
ST R3,TOKEN INIT TOKEN
*BZM LA R3,FOURMEG LOAD WORK AREA SIZE
MVC RNAME(17),CMDREC COPY DSN NAME TO RNAME
MVC GQSCANW(GQSCANL),GQSCANC
LA R1,GQSCANW
*
SYSDSN EQU *
GQSCAN AREA=((10),FOURMEGL), WORK AREA AND LENGTH FOR GQSCAN X
SCOPE=ALL, STEP/SYSTEM/SYSTEMS REQUEST X
RESNAME=(QNAME,RNAME,RNAMEL,GENERIC), X
TOKEN=TOKEN,MF=(E,(R1))
COMMON EQU *
STCM R0,12,RIBSIZE SAVE GQSCAN RIB SIZE
STCM R0,3,RIBESIZE SAVE GQSCAN RIBE SIZE
LR R7,R1 SAVE NUMBER OF RIBS RETURNED
*
CH R15,=H'4' ANYTHING RETURNED?
BE NOTFOUND NO, ALL DONE
CH R15,=H'12' GQSCAN ERROR?
BE GQERROR YES, INFORM USER
*
CH R15,=H'16' INVALID SYSNAME?
BE GQERROR YES, INFORM USER
*
ST R15,RETCODE SAVE GQSCAN RETURN CODE
USING RIB,R10 DSECT ADDRESSABILITY
DOIT EQU *
*
L R8,RIBNRIBE NUMBER OF RIBES
LR R9,R10 ADDRESS OF RIB
AH R9,RIBSIZE ADD SIZE OF RIB
USING RIBVAR,R9 USING FOR ADDRESSABILITY
*
LR R7,R9 ADDRESS OF RIB VARIABLE SECTION
AH R7,RIBVLEN ADDRESS OF FIRST RIBE
USING RIBE,R7 USING FOR ADDRESSABILITY
*
ISSUECMD EQU *
*
L R5,PUTRTNAD LOAD ADDR OF BELOW 16MB PUT RTN
*
MVC MSGREC(80),SPACES INIT THE OUTPUT RECORD
MVC MSGREC(17),RIBRNAME
LA R1,MSGREC ADDR OF OUTPUT RECORD
AH R1,TWENTY
MVC 0(8,R1),RIBEJBNM ADD THE USERID TO MESSAGE
AH R1,TENH
MVC 0(8,R1),RIBESYSN ADD THE SYSID TO MESSAGE
*
TM RIBERFLG,B'10000000'
BO SHARED
EXCL EQU *
MVC 10(8,R1),EXCLSV ADD THE SYSID TO MESSAGE
SHARED EQU *
MVC 10(8,R1),SHR ADD THE SYSID TO MESSAGE
*
MVC 0(PUTMAC1L,R5),PUTMAC1
LA R4,MSGOUT ADDR OF DCB MSGOUT
LA R3,MSGREC ADDR OF OUTPUT RECORD
*
LA R6,GOTIT ADDR OF RETURN ADDR
O R6,HBITON MAKE IT 31 BIT ADDR
*
LOOPIT EQU *
*
*KK1-S
*KK1 CLC RIBESYSN(8),SYSDNAME
*KK1 BNE WRITEIT
*KK1-E
*
LH R2,RIBEASID GET USER ASID
L R1,16 CVT POINTER
L R1,556(R1) ASVT ADDRESS
L R15,512(R1) PICK UP MAXUSER VALUE
LTR R15,R15 ANY USERS?
BZ NONAME NO, INFORM USER OF ERROR
LA R1,528(R1) BUMP TO FIRST VALID ASVT ENTRY
NEXTUSER TM 0(R1),X'80' FREE ASID?
BO NEXTASID YES, IGNORE IT
L R14,0(R1) PICK UP ASCB POINTER
CH R2,36(R14) EQUAL ASID'S
BE SETUSER YES, POINT TO USER NAME
NEXTASID A R1,=F'4' BUMP TO NEXT ASCB
BCT R15,NEXTUSER POINT TO NEXT ASCB
NONAME EQU *
ABEND 002,DUMP
SETUSER L R2,60(R14) GET TSB OUT OF ASCBTSB
LTR R2,R2
BZ NOTTSOUS
* MODESET KEY=ZERO GET KEY ZERO FOR MGCR
* MVC 45(8,R3),104(R2)
* MODESET KEY=NZERO GET KEY ZERO FOR MGCR
B WRITEIT GO WRITE THE RECORD
*
NOTTSOUS EQU *
MVC 35(32,R3),NOTTSOTX ISSUE NOT A TSO USER MESSAGE
WRITEIT EQU *
BSM R0,R5 WRITE AN OUTPUT RECORD
*
GOTIT EQU *
*
ISSUEMSG EQU *
*
*KK1-S
*KK1 CLC RIBESYSN(8),SYSDNAME
*KK1 BNE AFTRCMMD
*KK1-E
*
MVC CMDPARM(82),CMDPARMP
LA R3,CMDPARM
MVC 11(8,R3),RIBEJBNM
MODESET KEY=ZERO GET KEY ZERO FOR MGCR
MGCRE TEXT=(R3),MF=(E,MGCRELS),CONSID=CONID
MODESET KEY=NZERO GET KEY ZERO FOR MGCR
* B EXIT
AFTRCMMD EQU *
*
A R7,THRTYSIX GO TO NEXT RIBE
BCT R8,ISSUECMD CHECK IF LAST RIBE
CLC EOFCOND(4),EOFIND CHECK FOR END OF INPUT
BE EXIT ALL DONE LETS GO HOME
B READLOOP PROCESS NEXT RECORD OF INPUT
*
EOFRTN EQU *
* WTO 'EOFRTN CODE ENTERED',ROUTCDE=11
CLC CMDREC(80),SPACES
BE NOINPUT
MVC EOFIND(4),EOFCOND
B EXIT
NOTFOUND EQU *
*
L R5,PUTRTNAD
*
MVC MSGREC(80),NOENQFND
LA R1,MSGREC
MVC 22(18,R1),CMDREC
*
MVC 0(PUTMAC1L,R5),PUTMAC1
LA R4,MSGOUT
LA R3,MSGREC
*
LA R6,EXIT
O R6,HBITON
*
BSM R0,R5
*
B EXIT
BADDSN EQU *
WTO 'INPUT DSN NOT P102711. OR P102044. , TERMINATING!', X
ROUTCDE=11
B EXIT
*KK1-S
BADTST EQU *
WTO 'INPUT DSN NOT D102544. CHANGE PLEASE,TERMINATING!', X
ROUTCDE=11
B EXIT
*KK1-E
NOINPUT EQU *
WTO 'NO INPUT RECORDS FOUND, TERMINATING! ',ROUTCDE=11
B EXIT
GQERROR EQU *
WTO 'GQSCAN ERROR ',ROUTCDE=11
B EXIT
EXIT EQU *
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CLOSLIST
LA R4,CMDIN
CLOSE ((R4)),MODE=31,MF=(E,(R3))
*
MVC OPENLIST(OCL),OPENLIS COPY TO DSECT STORAGE
LA R3,CLOSLIST
LA R4,MSGOUT
CLOSE ((R4)),MODE=31,MF=(E,(R3))
*
EXITNCLS EQU *
*
STORAGE RELEASE,LENGTH=GETMAC1L,ADDR=GETRTNAD
*
STORAGE RELEASE,LENGTH=EOFCODEL,ADDR=EOFRTNAD
*
STORAGE RELEASE,LENGTH=PUTMAC1L,ADDR=PUTRTNAD
*
STORAGE RELEASE,LENGTH=FOURMEGL,ADDR=GRSWRKAD
*
EXITSAVE EQU *
L R13,4(R11)
STORAGE RELEASE,ADDR=(R11),LENGTH=DSECT0L
*
EXITCODE EQU *
*
LM R14,R12,12(R13) RESTORE AND RETURN TO CALLER 00146
XR R15,R15 RETURN CODE OF ZERO
BSM 0,R14 00147
* 00148
*
DC CL8'TSOCAN '
DC CL8'V1R1M0 '
DC CL8'&SYSDATE'
DC CL8'&SYSTIME'
DC C'R.G.YOUNG '
CONID DC 1F'2'
EOFCOND DC X'FFFFFFFF'
HBITON DC X'80000000'
SPACES DC 80CL1' ' BLANKS USER TO INITIALIZE USERID
BLANKS DC CL8' ' BLANKS USER TO INITIALIZE USERID
*KK1-S
*SYSDNAME DC CL8'SYSB '
*
TESTFLAG DS CL1
*KK1-E
CMDPARMP DS 0CL82
CMDLNGTP DC 1H'44'
*MDSENDP DC CL80'SEND '' ENQ ON DSN '',USER=(SP133) '
CANSENDP DC CL80'CANCEL U= '
TENH DC 1H'10'
THRTYSIX DC 1F'36'
KGFDSN DC CL20'P102711. '
NMRDSN DC CL20'P102044. '
*KK1-S
TSTDSN DC CL20'D102544. '
HLQDM DC CL2'DM'
HLQDK DC CL2'DK'
VALLOW DC CL3'00 '
VALHGH DC CL3'99 '
*KK1-E
EXCLSV DC CL20'EXCLUSIVE '
SHR DC CL20'SHR '
NOTTSOTX DC CL80'NOT A TSO USER WILL NOT CANCEL '
NOENQFND DC CL80'NO ENQUEUE FOUND FOR '
MGCREL MGCRE MF=L
MGCREPL EQU *-MGCREL
CMDINTP DCB DDNAME=CMDIN,DSORG=PS,LRECL=80,MACRF=(GM),EODAD=EOFRTN
MSGOUTP DCB DDNAME=MSGOUT,DSORG=PS,MACRF=(PM),RECFM=FB,LRECL=80
OPENLIS OPEN (0),MF=L,MODE=31
CLOSLIS CLOSE (0),MF=L,MODE=31
OCL EQU *-OPENLIS
WTOCONST WTO TEXT=WTOTEXT,MF=L
WTOL EQU *-WTOCONST
TWENTY DC 1H'20'
EOFCODE BSM R0,R7
EOFCODEL EQU *-EOFCODE
GETMAC1 DS 0H
*
GET (R4),(R3)
BSM R0,R6 THIS IS WHERE WE RETURN ON NON EOF
*
GETMAC1L EQU *-GETMAC1
PUTMAC1 DS 0H
*
PUT (R4),(R3)
BSM R0,R6 THIS IS WHERE WE RETURN ON NON EOF
*
PUTMAC1L EQU *-PUTMAC1
FOURMEGL EQU 4196304
*
RNAMEL EQU 16
QNAME DC 1CL8'SYSDSN '
GQSCANC GQSCAN SCOPE=ALL,MF=L STEP/SYSTEM/SYSTEMS REQUEST
GQSCANL EQU *-GQSCANC
PADDING DC 100CL1' '
SPACE
LTORG
DCBD DSORG=PS,DEVD=DA
*
DSECT0 DSECT
SAVEAREA DS 18F SAVE AREA
GETRTNAD DS 1A GET RTN ADDR
PUTRTNAD DS 1A PUT RTN ADDR
EOFRTNAD DS 1A EOF RTN ADDR
GRSWRKAD DS 1A GRS WRK ADDR
RETCODE DS 1F RET CODE
RIBSIZE DS 1F
RIBESIZE DS 1F
TOKEN DS 1F CONTINUATION TOKEN
EOFIND DS 1F CONTINUATION TOKEN
THISSYSN DS CL8
THISUSER DS CL8
RNAME DS CL80
USERIDLS DS CL8 USERID FIELD
USERID DS CL8 USERID FIELD
JOBNAME DS CL8 JOBNAME
TYPE DS CL3 JOB/TSU/STC
MGCRELS MGCRE MF=L
CMDREC DS 5CL80 INPUT RECORD BUFFER
MSGREC DS 5CL80 INPUT RECORD BUFFER
CMDIN DCB DDNAME=CMDIN,DSORG=PS,LRECL=80,MACRF=(GM),EODAD=EOFRTN
MSGOUT DCB DDNAME=MSGOUT,DSORG=PS,LRECL=80,MACRF=(PM),RECFM=FB
CMDINL EQU *-CMDIN
OPENLIST OPEN (0),MF=L,MODE=31
CLOSLIST CLOSE (0),MF=L,MODE=31
WTOTEXT DS AL2
WTOTEXTT DS CL80
WTOWORK WTO TEXT=WTOTEXT,MF=L
GQSCANW GQSCAN SCOPE=ALL,MF=L STEP/SYSTEM/SYSTEMS REQUEST
CMDPARM DS 0CL82
CMDLNGTH DC 1H'44'
*MDSEND DC CL80'SEND '' ENQ ON DSN '',USER=(SP133) '
CANSEND DC CL80'CANCEL U= '
PADSTOR DS CL80
DSECT0L EQU *-DSECT0 DSECT LENGTH
*
ISGRIB
CVT DSECT=YES,LIST=NO COMMUNICATIONS VECTOR TABLE
IEFJSCVT , MVS JES COMM VECTOR TABLE
IHAASCB
IHAASXB
IHAPSA
IEFJESCT
NIC1SSVT
*
END
Joined: 10 Dec 2004 Posts: 110 Topics: 8 Location: Colorado USA
Posted: Wed Mar 09, 2005 9:47 am Post subject:
Quote:
TESTAUTH FCTN=1,KEY=YES,RBLEVEL=1
LTR R15,R15 TEST IF AUTHORIZED
BZ GRSSCAN AUTHORIZED; SO GO ISSUE CMD
* WTO 'NOT AUTHORIZED AT THIS TIME',ROUTCDE=11
* B EXIT FINISHED; SO EXIT
*
GRSSCAN EQU *
*
L R10,GRSWRKAD GQSCAN WORKAREA
LTR R15,R15 ANY STORAGE RECEIVED?
BZ GQSCANT NO, ALL DONE
ABEND 001,DUMP INFORM USER OF ERROR
Because of the formatting of your message, I am not absolutly sure, but it appears that the code that says "b exit" is commented out. This would cause the code to potentially fall through to the ABEND macro. In order for this to be true though, you should have also received the message about not being authorized somewhere in your output.
I say this because the code does a LTR to see if "Authorized", and just before deciding to abend, it does another LTR with no intervening operation that would have changed the contents of R15. Unless I missed some other place where this code is branched to, this makes no logical sense.
________
buy air one vaporizer
Last edited by dtf on Tue Feb 01, 2011 1:49 pm; edited 1 time in total
Joined: 10 Dec 2004 Posts: 110 Topics: 8 Location: Colorado USA
Posted: Wed Mar 09, 2005 9:57 am Post subject:
Woops.... the WTO (write to operator ) is commented out too, so you you would not get a message. Any line with an '*" in column 1 is a comment. I think based upon this that these two lines should not be commented out, and that if they were not, that you would have received a message about not being authorized, and then the program would just branch to the label "EXIT", and probably would not abend.
The two lines in question are:
* WTO 'NOT AUTHORIZED AT THIS TIME',ROUTCDE=11
* B EXIT FINISHED; SO EXIT
________
BMW M42 history
Last edited by dtf on Tue Feb 01, 2011 1:49 pm; edited 1 time in total
Posted: Wed Mar 09, 2005 5:46 pm Post subject: Exactly...
Exactly that is what is confusing me also .
Here i think the code stumbles into the ABEND macro after these
BZ GQSCANT NO, ALL DONE
I have taken the piece of code from the mai program for reference:-
Code:
CHCKAUTH EQU *
MVC MGCRELS(MGCREPL),MGCREL COPY TO DSECT STORAGE
TESTAUTH FCTN=1,KEY=YES,RBLEVEL=1
LTR R15,R15 TEST IF AUTHORIZED
BZ GRSSCAN AUTHORIZED; SO GO ISSUE CMD
* WTO 'NOT AUTHORIZED AT THIS TIME',ROUTCDE=11
* B EXIT FINISHED; SO EXIT
*
GRSSCAN EQU *
*
L R10,GRSWRKAD GQSCAN WORKAREA
LTR R15,R15 ANY STORAGE RECEIVED?
BZ GQSCANT NO, ALL DONE
ABEND 001,DUMP INFORM USER OF ERROR
GQSCANT EQU *
SR R3,R3 ZERO REG
ST R3,TOKEN INIT TOKEN
*BZM LA R3,FOURMEG LOAD WORK AREA SIZE
MVC RNAME(17),CMDREC COPY DSN NAME TO RNAME
MVC GQSCANW(GQSCANL),GQSCANC
LA R1,GQSCANW
*********
Here at statement
BZ GRSSCAN
It is branching to GRSSCAN as result of
LTR R15,R15
Is Zero. But then at GRSSCAN after
L R10,GRSWRKAD
It checks for
LTR R15,R15
and Does not tet a BZ and Abends.
Is it some kind of Authrority restriction on the area GRSWRKAD ?
What DTF says about the second LTR is correct. It will give exactly the same condition code as the first LTR (which is immediately after the TESTAUTH). For a Load instruction does not set any condition code. This section of code as it now stands is the nonsensical result of code butchering. Basically, you are getting the user-abend of 0001 because the TESTAUTH is giving a non-zero return code. And TESTAUTH is also a SVC macro... so this is not a good program for beginner assembler programmers to be trying to hone their skills on.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum