I am a new member in this forum and also totaly beginner in assembly coding, i running the below code but i face some errors:
Code: Select all
//ASSEM JOB (xyz),'xyz',CLASS=A,
// MSGCLASS=X,REGION=4096K,NOTIFY=&SYSUID
//*
//JOBLIB DD DSN=XYZ.LIB.LOADLIB,DISP=SHR
//JCLLIB JCLLIB ORDER=(XYZ.LIB.PROC,ASM.SASMSAM1)
//*
//IDCAMS EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DELETE ESSNBE.ASSEM3
//*
//TRYIT EXEC PROC=HLASMCLG
//*
//SYSIN DD *
PROG0010 CSECT
YREGS
STM R14,R12,12(R13)
LR R12,R15
USING PROG0010,R12
*
L R6,PROGSIZ <- MEMORY SPACE NEEDED BY THE PROGRAM
A R6,SQLDSIZ <- SQL DSECT SIZE
GETMAIN R,LV=(6)
*
LR R10,R1
LR R2,R10
LR R3,R6
SR R4,R4
SR R5,R5
MVCL R2,R4 <- CLEARING OUT THE OBTAINED SPACE
*
OPEN (TESTOUT,OUTPUT)
*
ST R13,4(R10)
ST R10,8(R13)
LR R13,R10
USING PROGAREA,R13
LR R9,R13
A R9,PROGSIZ
USING SQLDSECT,R9
ST R6,GETLENTH
B LOOP1
FD100 DC A(100)
*
LOOP1 EXEC SQL DECLARE C1 CURSOR FOR X
SELECT * FROM XYZ.TGEN008
FETCH FIRST 2 ROW ONLY
EXEC SQL OPEN C1
*
FTCHLOOP EQU *
DS 0H
EXEC SQL FETCH C1 INTO X
:A_DDR
DS 0H
CLC SQLCODE,FD100
BE SQLEND
*
PUT TESTOUT,DCL_VAR
B FTCHLOOP
*
SQLEND DS 0H
EXEC SQL CLOSE C1
CLOSE (TESTOUT)
L R0,GETLENTH
LR R1,R13
L R13,4(R13)
FREEMAIN R,LV=(0),A=(1)
LM R14,R12,12(R13)
SR R15,R15
BR R14
EJECT
LTORG
PROGAREA DSECT
SAVE DS 18F
SAVE DS 18F
GETLENTH DS F
DCL_VAR DS 0CL40
A_DDR DS CL40
EXEC SQL INCLUDE SQLCA
CNOP 0,4
DS 0D
PROGSIZE EQU *-PROGAREA
PROG0010 CSECT
PROGSIZ DC A(PROGSIZE)
TESTOUT DCB DSORG=PS,MACRF=PM,LRECL=40,BLKSIZE=1090,DDNAME=TESTOUT, X
RECFM=FB
END
//TESTOUT DD DSN=ESSNBE.ASSEM3,SPACE=(TRK,(1,1),RLSE),
// DISP=(NEW,CATLG,DELETE)
After running it i got the following SAMPLE OF ERRORS in SYSPRINT :
** ASMA044E Undefined symbol - SQLDSIZ
** ASMA057E Undefined operation code - EXEC
** ASMA044E Undefined symbol - SQLDSECT
Please advice.
Thanks in advance.