gmella2030
2012-02-09 01:40:42 UTC
Hello!
Can some of the ASM gurus here tell me what's wrong with this program that prints nothing even though it assembles, link edit and execute with no errors? I tried everything I know, but I don't know why it doesn't print the answer which is "sub1 called" I suspect the JCL is the culprit, but it looks all right to me :(
//EDIT JOB (001) ,MELLA, CLASS=A, MSGLEVEL=(2,0)
//STEP1 EXEC ASMFC,PARM=(NODECK,LOAD)
//ASM.SYSGO DD DSN=&LOADSET,UNIT=SYSSQ,SPACE=(80,(100,50)),
// DISP=(MOD,PASS)
//ASM.SYSIN DD *
PRINT NOGEN
CSECT
EDIT STM 14,12,12(13)
BALR 12,0
USING *,12
**********SAVE REGISTERS****************************
LR 4,13
LA 13,SAVE
B OVER
SAVE DS 18F
OVER ST 13,8(4)
ST 4,4(13)
********************************************************
OPEN (PRINTER,(OUTPUT))
LA 1,ADDRLIST
L 15,ADDRSUB1
BALR 14,15
MVC OUT(1),=C' '
MVC OUT+1(132),OUT
MVC OUT+10(10),MSG
PUT PRINTER,OUT
*
* PRINT 'END OF PROCESSING'
MVC OUT(1),=C' '
MVC OUT+1(132),OUT
MVC OUT+10(17),LINE
PUT PRINTER,OUT
*
CLOSE (PRINTER,LEAVE)
*
*************RELOAD ORIGINAL VALUES IN REGISTERS*********************
L 13,4(13)
LM 14,12,12(13)
BR 14
********************************************************
ADDRSUB1 DC V(SUB1)
ADDRLIST DC A(MSG)
MSG DS CL10
*
*
* PRINTER AREA
OUT DS CL133
LINE DC C'END OF PROCESSING'
PRINTER DCB BLKSIZE=133,DDNAME=OUTDATA,DEVD=DA,LRECL=133,MACRF=PM, X
OPTCD=U,RECFM=FA,DSORG=PS
END
// EXEC ASMFCLG
//ASM.SYSIN DD *
SUB1 START 0
STM 14,12,12(13)
BALR 12,0
USING *,12
MVC 0(11,1),=C'SUB1 CALLED'
LM 14,12,12(13)
BR 14
END
//GO.OUTDATA DD SYSOUT=A
//
Can some of the ASM gurus here tell me what's wrong with this program that prints nothing even though it assembles, link edit and execute with no errors? I tried everything I know, but I don't know why it doesn't print the answer which is "sub1 called" I suspect the JCL is the culprit, but it looks all right to me :(
//EDIT JOB (001) ,MELLA, CLASS=A, MSGLEVEL=(2,0)
//STEP1 EXEC ASMFC,PARM=(NODECK,LOAD)
//ASM.SYSGO DD DSN=&LOADSET,UNIT=SYSSQ,SPACE=(80,(100,50)),
// DISP=(MOD,PASS)
//ASM.SYSIN DD *
PRINT NOGEN
CSECT
EDIT STM 14,12,12(13)
BALR 12,0
USING *,12
**********SAVE REGISTERS****************************
LR 4,13
LA 13,SAVE
B OVER
SAVE DS 18F
OVER ST 13,8(4)
ST 4,4(13)
********************************************************
OPEN (PRINTER,(OUTPUT))
LA 1,ADDRLIST
L 15,ADDRSUB1
BALR 14,15
MVC OUT(1),=C' '
MVC OUT+1(132),OUT
MVC OUT+10(10),MSG
PUT PRINTER,OUT
*
* PRINT 'END OF PROCESSING'
MVC OUT(1),=C' '
MVC OUT+1(132),OUT
MVC OUT+10(17),LINE
PUT PRINTER,OUT
*
CLOSE (PRINTER,LEAVE)
*
*************RELOAD ORIGINAL VALUES IN REGISTERS*********************
L 13,4(13)
LM 14,12,12(13)
BR 14
********************************************************
ADDRSUB1 DC V(SUB1)
ADDRLIST DC A(MSG)
MSG DS CL10
*
*
* PRINTER AREA
OUT DS CL133
LINE DC C'END OF PROCESSING'
PRINTER DCB BLKSIZE=133,DDNAME=OUTDATA,DEVD=DA,LRECL=133,MACRF=PM, X
OPTCD=U,RECFM=FA,DSORG=PS
END
// EXEC ASMFCLG
//ASM.SYSIN DD *
SUB1 START 0
STM 14,12,12(13)
BALR 12,0
USING *,12
MVC 0(11,1),=C'SUB1 CALLED'
LM 14,12,12(13)
BR 14
END
//GO.OUTDATA DD SYSOUT=A
//