Home      Mainframe Forum      Mainfarme Tutorials      IBM Manuals      Mainframe Interview Questions      Mainframe Books      IT News     SiteMap     Downloads


     
 
MAINFRAME - TIP OF THE DAY : programming pearls - Good judgement comes from experience, and experience comes from bad judgement.

Google
 
Web mainframegurukul.com

Programmers Voted for below topics.      Please Vote for good Posts. Votes Salutes
Topic Title Votes Salutes
EJECT Verb in COBOL 21
Cobol Multiple Choice Questions By Shravan Wipro 16
what is index or subscript in cobol. please give me brief ex 14
jcl sort to add leading zeroes 13
SOC 7 abend - interview question 13
what is static or dynamic call in cobol 13
How to resolve soc7? 12
Hexadecimal to decimal conversion - SORT JCL INREC OUTREC 12
Infosys Training Program for freshers 10
HOW TO FIND LINKAGE LENGTH 10
VSAM File status 23 ,but records are present in the file 7
Changes in copybook 6
splitting of records using cobol 6
JOIN UNPAIRED,F1,F2,ONLY 6
Endevor 6
Difference Between XCTL and LINK 5
Frequently used commands in FileAid. 5
Interview questions - 3 years Exp - BOA, HCL and CTS 4
Various Locking mechanism for cursors and other SQL? 4
GDG interview question 4
Comparing two files 4
JCL return codes 4
COBOL Program performance tuning tips 4
JOIN UNPAIRED,F1,F2,ONLY 3 3
alphanumeric to numeric value padding with ZEROS in COBOL 3 3
How to Display COMP-3 value in report 3 3
JCL to Purge All Held output? 3
IKJ56500I COMMAND DSN NOT FOUND 3
S322 abend while sorting records 3
Call & Execute a COBOL-DB2 from a COBOL program? 3
compare two files using SORT 3
Submit a JCL thru Cobol - sysout=(INTRDR,*) 3
Comparing 2 files based on Acct number without using tables 3
Sort fields difference 3
Sending an Email from JCL with attachment 3
Control flow from one STEP to another 3
Recently faced mainframe cobol Interview Questions. 3
RESTART - Executing 2 and 3 rd step in 5 step jcl 3
sort two files with same sort condition 3
static and dynamic calls 3
What are the issues related with correlated subqueries? 3
restart question 3
Eliminate duplicate records in file 3
What is the difference between Copy and Include? 3
JCL SORT - Count number of records in a file 3
Regarding TSQ 3
What is the difference between SYNONYM and ALIAS? 2 2
How to copy only one record after sorting to SORTOUT. 2 2
What is the difference between Copy and Include? 2 2
Difference between sysprint, sysout 2 2
Various Locking mechanism for cursors and other SQL? 2 2
When you specify mutiple datasets in a JOBLIB or STEPLIB 2 2
Merging two files into one based on certain key fields: 2 2
what is index or subscript in cobol. please give me brief ex 2 2
static and dynamic calls 2 2
DB2 Certification Guidelines 2 2
Cobol Multiple Choice Questions By Shravan Wipro 2 2
Hexadecimal to decimal conversion - SORT JCL INREC OUTREC 2 2
JCL Errors 2 2
SOC 7 abend - interview question 1 1
PROCLIB 1 1
Why browse is substituted on big datasets? 1 1
Create a loop in a JCL 1 1
what is static or dynamic call in cobol 1 1
Frequently used commands in FileAid. 1 1
sort two files with same sort condition 1 1
NUMERIC condition checking on Alphanumeric value with spaces 1 1
Fetching RDW of a VB file in Easytrieve 1 1
EZtrv+ - Is there a way to suppress ez-code from printing... 1 1
JCL SORT - Count number of records in a file 1 1
cics 1 1
How to write - 'Hello world' program through JCL 1 1
how to copy multiple vsam files into a single flat file 1 1
Comparing two files 1 1
Difference between an Object Module and Load Module 1 1
CA7 scheduling 1 1
Difference Between XCTL and LINK 1 1
Regarding EXEC CICS ENQ / DEQ 1 1
Use of CHNG and PURGE ? 1 1
Ways to merge the parts of different rows in the single row. 1 1
Copy GDG to GDG (one to one). 1 1
File STatus 41 1 1
CICS ABEND CODES 1 1
Display WITH NO ADVANCING 1 1
Interview questions - 3 years Exp - BOA, HCL and CTS 1 1
What are the valid DSORG values ? 1 1
EJECT Verb in COBOL 1 1
Merging Datasets with removing duplicates 1 1
pls give me answers these are may help for jobhunters.. 1 1
How to fetch and compare the system date in JCL 1 1
what is the diff btw jcl error, maxcc=12 or 8 and abend? 1 1
OVERRIDING A DD CARD IN JCL FOR A MULTIPLE PROC JOB 1 1
REXX Tools 1 1
JCL interview question answer Ebook 1 1
Infosys Training Program for freshers 1 1
Someone please explain this COMPUTE statement 1 1
JCL to run the DB2 Query - IKJEFT01 1 1
Help in Multiplcation of decimal constant 1 1
ICETOOL & DFSORT 1 1
Symbolic Parameters 1 1
JCL to interact with Oracle DB 1 1
How to resolve soc7? 22
JOIN UNPAIRED,F1,F2,ONLY 22
what is index or subscript in cobol. please give me brief ex 21
Hexadecimal to decimal conversion - SORT JCL INREC OUTREC 19
Frequently used commands in FileAid. 18
what is static or dynamic call in cobol 14
jcl sort to add leading zeroes 13
Cobol Multiple Choice Questions By Shravan Wipro 12
RESTART - Executing 2 and 3 rd step in 5 step jcl 12
SORT JCL - SORTING A VB FILE - INREC OUTREC PARSE BUILD 11
JCL SORT - Count number of records in a file 11
Joinkeys using ICETOOL 10
Interview questions - 3 years Exp - BOA, HCL and CTS 8
what is sync point in cics 8
Display WITH NO ADVANCING 8
How to concatenate records from two ps into one ps? 8
How do you make your BMS maps case sensitive? 7
Sending an Email from JCL with attachment 7
EJECT Verb in COBOL 7
SOC 7 abend - interview question 7
Various Locking mechanism for cursors and other SQL? 7
Difference Between XCTL and LINK 6
How to retrieve deleted dataset / pds in mainframe 6
What is the difference between Comp-5 and Comp in Cobol ?? 6
Control flow from one STEP to another 6
what is the step debug the online program to use xpediter 6
Recently faced mainframe cobol Interview Questions. 5
Replacing a larger string with smaller string 5
VSAM File status 23 ,but records are present in the file 5
GDG interview question 5
How to run only 2 steps out of 100 steps??? 5
what is the Length of DSN=.... 5
How to assign System Date/Time to a parameter in a JCL pgm? 5
Submit a JCL thru Cobol - sysout=(INTRDR,*) 5
How to compare two ps files having millions of records ? 5
abend code S000 U4038 5
Comparing 2 files based on Acct number without using tables 4
FILE-AID vs InSync 4
How to compile list a coolgen batch code using endeavor 4
In cics what is new copy.please give me a example. 4
Difference between an Object Module and Load Module 4
How we can access PDS and its Members thru COBOL ? 4
SORT INREC OUTREC OVERLAY - Adding sequential numbers 4
Mainframe Developer - Cognizant - Chennai 4
Sort fields difference 4
how to concatenate the datasets 4
static and dynamic calls 4
How to fetch and compare the system date in JCL 4
What is the function of //JCLLIB statement? 4
JCL to copy from DASD to TAPE 3
JCL-I need to FTP from MF to Local computer 3
difference between Omegamon and Mainview 3
What is MQ SERIES AND why it is used? 3
sort two files with same sort condition 3
PACKAGE VS PLAN ? 3
compile the cics,db2 or cobol program what next step- 3
What is the difference between Copy and Include? 3
Endevor 3
sign stored in Packed Decimal fields and Zoned Decimal field 3
Urgent Help needed !! 3
Editing a Copybook - How to? 3
How to write - 'Hello world' program through JCL 3
CA7 scheduling 3
DB2 query !! 3
Regarding TSQ 3
SQLCODE -811, why always 2nd row is fetched?? 3
Set Return Code using DFSORT 3
FOREIGN KEY 3
SYSTEM COMPLETION CODE=0C4 3
Problem with numeric field with sign in last digit 3
How to find record count of a mainframe dataset? 3
Reg DFSORT utility. 3
INFO about REGION parm 3
In SMS datasets, what is the function of the DD MGMTCLAS 3
To connect EBCDIC records to ASCII during write process 3
compare two files using SORT 3
How to read HEX file and convert it into decimal in REXX. 3
alphanumeric to numeric value padding with ZEROS in COBOL 3
How do you restart a proc from a particular step in jcl? 3
COMP-3 TO ALPHANUMERIC MOVE 3
Cobol question 3
How can a JES3 operator command be entered through the job 3
Merging Datasets with removing duplicates 3
NUMERIC to COMP-3 move 3
stored procedure in cobol 2
REXX Tools 2
DB2 PERFORMANCE TUNING TIPS 2
Converting file of RECFM=U to RECFM=FB 2
What is SSRANGE, NOSSRANGE ? 2
Replacing characters Using JCL 2
Eliminate duplicate records in file 2
DBXX NOT OPERATIONAL, RETRY COUNT IS ZERO 2
Comparing two files 2
How to Display COMP-3 value in report 2
COBOL TEST-3 WITH ANSWERS 2
What is a DBRM, PLAN ? 2
VERTICAL ARRAY IN CICS 2
CICS ABEND CODES 2
SOC1 abend 2
generating sequence number starting from 0100000000000000 2
Production Support 2
What is Static,Dynamic linking ? 2
How to send mail having some content of the file via jcl 2
how to calculate age 2
Replace special characters with spaces in a string 2
what s the difference between DB2 & ADB2? 2
IEBGENER - Emptying dataset. 2
Reformatting and calculating time and date values 2
Infosys Training Program for freshers 2
SQL Query using REXX 2
Mainframe jobs in Germany 2
Need to compare two files using sort in jcl 2
Sort and merge two files with a condition 2
What is auditing? 2
DB2 Certification Guidelines 2
Define/Create VSAM-E file 2
ICETOOL & DFSORT 2
Computer based tutorial on IMS DB/DC 2
help me in creating EXCEL document as OUTPUT FROM COBOL PROG 2
How to know the Primary and Foriegn keys? 2
to merge 2 records of the input file using SORT 2
How can i attach my sig? 2
What is the attribute byte? 2
Immediate Mainframe opening in CSC,Chennai 2
How to write a JCL using IEFBR14 2
A Really Nice One. Don't Miss the Moral. 2
To get the total record count of flat file..... 2
Redefine with occur clause 2
JCL - INCLUDE Condition - SORT INCLUDE COND 2
Executing n th step in a proc - JCL - IEBEDIT 2
Create files with matching and non matching records- SPLICE? 2
block size? 2
pls give me the answers for the following interview quesions 2
how to extract real time in easytrieve 2
To split matched and unmatched records into 2 files 2
To compare two files (SSN fields) 2
Create a loop in a JCL 2
PROCLIB 2
Mainframe PS to Excel and mail it. 2
Cobol Test 1 - Interview Questions 2
benefits with SYNC 2
DATACLAS 2
HOW TO CAPTURE JOBLOG THROUGH JCL 1
search the given PS file for a string 1
How do you code an instream data in a proc 1
Sending the user a message when job abends? 1
NUMERIC condition checking on Alphanumeric value with spaces 1
REXX tool needed to capture the JCL syntax errors 1
joins examples on multiple tables 1
Rexx/Clist to auto-build IEFBR14 for JCL 1
cics 1
"Merge" two files in a special way 1
file manager(unable to view/edit dataset) 1
SORT JCL to Split data using OUTFIL 1
Vaccination for Children 1
SE37 space abend 1
Easytrieve Job Input statement query 1
Compare 2 files and write O/P accordingly 1
maxcc=1 1
equivalent file-manager command of file-aid command COPYBACK 1
Override 1
How to update records count in the header using JCL 1
difference between -805 and -818 sqlcode 1
Connect Direct to copy data from mainframe to desktop. 1
How to FTP a dataset from my mainframe to personal Folder 1
Pointers in Cobol 1
U4093 IMS Abend 1
writing 2 records for each qualifying input record. 1
Inserting NULL 1
COUNT of records based on distinct field value(ICETOOL/SORT) 1
PACKED DECIMAL TO NUMERIC USING EASYTRIEVE 1
Is it possible to get last modified date of PDS members... 1
Two files Matching Logic 1
Mainframe Jobs - Pune 1
Merging two files into one based on certain key fields: 1
how to describe a table in spufi 1
Difference between Ps and ESDS 1
Use of CHNG and PURGE ? 1
Endevor 1
Ways to merge the parts of different rows in the single row. 1
How to copy specific members via fileaid 1
SYNCSORT trick 1
How to write a JCL using IEBCOMPR 1
SORT - Ifthen, when group question 1
types of cursors? 1
Sorting - SORT INREC OUTREC SUM FIELDS 1
How to Separate Odd or Even numbers using DFSORT 1
CICS Tutorial 1
S0C6 Abend while Opening a DB2 Cursor in a DB2-PLI Proram 1
SYSUDUMP and SYSABEND 1
Help required for a sort step. 1
Corresponding statement 1
What is length in sysin dd? 1
What is the difference between CS and RR isolation levels? 1
Tool to practice COBOL Programs 1
Question about Files matching logic 1
Using IDCAMs how to check whether file empty or not 1
CA-7 1
Moving cursor to next field in ISPF dialog 1
JCL to run the DB2 Query - IKJEFT01 1
VSAM File status 34 1
Merged file to remove duplicate so order is not affected 1
Comapare Two Records in the same File 1
Merging of two files with non-unique keys. 1
how to merge two flat files in append manner 1
CODE THAT WAIT X MINUTES BEFORE EXECUTE A STEP 1
using Index other than subscript 1
Compare to files - write the count of matching - Easytrieve 1
Can we take XDC of the production job run? 1
how to deal with the below scenario using iebgener 1
user abend in easytrieve 1
Hai to All 1
SORT assistance for setting up RC 1
EVALUATE Statement in Easytrieve 1
What is the difference between SYNONYM and ALIAS? 1
too many tables join 1
How to convert a decimal valuie to hexadecimal using sort 1
Endevor tutorial 1
JCL Interpreter :?: 1
conversion by using SORT 1
EASYTRIEVE 1
How can you override/nullify Condition code (COND) in jcl? 1
need to check a GDG generation is present in catalog or not 1
Technical diff between Microfocus cobol and Mainframe Cobol 1
How to write sort card? 1
Name the macros to be used to define MAP, MAPSET, FIELD 1
Comparing Date with current date 1
SORT verb - help 1
Masking some fields in a dataset using JCL 1
how to insert new column in already existing vsam file 1
How to compile codes in changeman through tool in mainframe. 1
Find and Replace using DFSORT 1
Generate list of batch jobs in jobtrac using jcl 1
Mainframe Refresher eBook 1
Disabling CICS 1
Can any one let me know how to resolve +100,-803,-811 1
IBM Mainframe certification courses and exam 1
How to use both lower and upper case letters in cobol? 1
is the answer correct?? 1
Comp-3 variables to Comp variables. 1
retrieving deleted GDG version 1
Production Support 1
executing java program thru JCL 1
Reset Condition Code. 1
Problems associated with each type of interview question 1
HOW TO FIND LINKAGE LENGTH 1
what is the diff btw jcl error, maxcc=12 or 8 and abend? 1
a Sub-Query and a Correlated Sub-Query 1
How can i delete records form a VSAM file. 1
BMC Load REPLACE option 1
Intertest tool help 1
Mainframe Developer Requirement - Coimbatore 1
PACKMODE ON/OFF 1
What is use of redefine with real time example? 1
Compile error (Cobol using copy book) 1
Stop Run in both called and calling programs !!! 1
COBOL Program performance tuning tips 1
Man of the year 1
compare 2 files with different LRECL 1
User abend 4038 1
JCL return codes 1
resource unavailable..table is not accessible 1
SQL Code -913 1
88 Level default value 1
To get Volume Serial Number for Uncatalog Dataset 1
I need to FTP from MF to UNIX 1
How to handle the null indiactor 1
what is INTRDR ( Internal Read) in JCL ? 1
Using Pointers in a CICS-COBOL program 1
How to copy only one record after sorting to SORTOUT. 1
is multiple STOP RUN are valid? 1
please clear my doubt 1
Simple JCL Tutorial & IBM Tutorials Manuals Pdf Tutor 1
Need sort to compare 2 datasets 1
JCL Error S878 1
What is the difference between CANCEL and INITIAL statement 1
Help regarding Career in Vision Plus, Mainframe 1
S322 abend while sorting records 1
EZT+ Date manipulation - How do I subtract 30 days sysdate 1
How to convert Julian date format into yyyymmdd date format? 1
Can any one let me know how to resolve +100,-805,-803. 1
QSAM 1
Reg: DDIO file in XPED 1
File STatus 41 1
what is STOP RUN OR GOBACK OR EXIT PROGRAM 1
Restart logic (Checkpoint logic) 1
Requirement in INAUTIX - CHENNAI Exp - 3 to 6 Years 1
Difference between physical and symbolic map 1
DB2 COMMIT?? 1
PL/I program - PROC OPTION various attributes 1
Converting Easytrev to EZTPA00 1
Dynamic name allocation to a file 1
What is the difference between Static and Dynamic Binding? 1
I am beginer in db2 , why r using bind ,plan & packge? 1
COBOL MOVE CORRESPONDING DOUBT 1
Delete a column from a file 1
DFSORT - JOINKEYS 1
File-Aid Batch accessing copybook 1
How to check the return code of PROC 1
Copy of Fixed Length file into Variable Length File 1
how to download table data with out extra ? for null values 1
create a table in such a way that Delete cannot be used? 1
Call & Execute a COBOL-DB2 from a COBOL program? 1
UDS2000 utility program 1
Omitt records from sort but still include them in output 1
To match and remove duplicate records from two files. 1
make a output file from two input files on certain condition 1
In jcl please help me. 1
Appending data to a PDS using REXX 1
CA-7 standby 1
HOW TO INCREASE DATASET SPACE 1
JCL to Purge All Held output? 1
To delete a segment in an IMS DB & create XREF using INS 1
What are the contents of a DCLGEN? 1
XREF Creation 1
why include can't be used in procedure division? 1
What is DCLGEN ? 1
EDIT a STRING 1
Multiple Conditions to Copy a File 1
searching for a special character through sort 1
Join on keys and replace when matched 1
Access DB2 region using rexx 1
Regarding Restart card in JCL 1
Is it possible to add timestamp in the Header Record? 1
Inserting a Delimiter 1
utility IKJEFT1B 1
LEFT OUTER JOIN IN COBOL VSE ENVIRONMENT 1
delete a record in ps file. 1
Getting Error while using ICEMAN tool 1
hai 1
How do you retrieve the data from a nullable column? 1
DFHAC2016 - Trans XXXX cannot run because program XXX is Not 1
Array setup 1
Copying GDG 1
PARM PARAMETER 1
DFSORT Sorting a pack decimal field. 1
SORTCARD help 1
How to delete PDS member alone thru a jcl 1
link-edit error 1
EZtrv+ - Is there a way to suppress ez-code from printing... 1
Capgemini Mainframe opportunity 1
how to split files which has header and trailor 1
Difference between internal sort and external sort 1
Need to check count of file records and abend if >10. 1
How to use XREF.. 1
Icetool- Splicing : More than one compare key 1
DB2 checkpoint-restart doubts 1
sort the input file excluding the trailer record 1
Ezyedit selsection panel 1
Add Header and Trailer record also display the recod Count 1
LINKING of Sub-Program 1
Need to understand the logic of these assembler program

 
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> ASSEMBLER
  View previous topic :: View next topic  
Author Message
SDMFLGMD
Member


Joined: 30 May 2013
Posts: 1

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Thu May 30, 2013 9:27 am    Post subject: Need to understand the logic of these assembler program Reply with quote

Based on my understanding the program does the following
1. Read input record received from AS400 in-stream data.
2. Check if it is valid, if yes write to output file else write to SYSPRINT and continue
3. While writing to output file, write as 140 byte record in one case (note that input is always 80 bytes)
4. At the end write the LOG file with the count of records received and the GDG where it was copied.

We need to know 2 things
1. How does it identify invalid records?
2. How does it merge data from 2 separate lines and how does it know the output size to be written?
Code:

         TITLE 'SY110A - REBUILD FILE FROM CARDS CREATED BY FILECARD'
*      SY110A
*      THIS UTILITY WILL PROCESS INPUT FROM THE MVS UTILITY FILECARD
*         OR THE DOS UTILITIES DSKCARD OR TAPECRD.
         MACRO
&NAME    $FILL
&NAME   MVC   PLINE,=CL121' '
         MEND
*SY110A   $ENTER BASE1=R11
SY110A   $PROLOG R11
         EJECT
         $REGS
         EJECT
         OPEN  (IN,INPUT,PRT,OUTPUT)                              ->Open I/P file and O/P file
         LA    R10,OUT                                            ->will put address of OUT in R10
         USING IHADCB,R10                                         ->It tells the assembler which base register to use.
         LA    R3,TAPEBUF                                         ->will put address of TAPEBUF in R3
         $FILL PLINE
         MVC   PLINED(60),=CL60'SY110A - CARD TO DISK PROCESSOR'  -> SYSPRINT 'SY110A - CARD TO DISK PROCESSOR'
         PUT   PRT,PLINE
         B     READLP              BR. AND PROCESS FILE
INVREC   EQU   
         $FILL PLINE
         MVC   PLINED(60),=CL60'SY110A - INPUT RECORD INVALID'
         PUT   PRT,PLINE
         $FILL PLINE
         MVC   PLINED(60),CRDREC
         PUT   PRT,PLINE
         $FILL PLINE
         MVC   PLINED(60),=CL60'          RECORD ID INVALID CC1-8'
         PUT   PRT,PLINE
READLP   EQU 
         GET   IN,CRDREC
         CLI   CRDREC,C' '         SEE IF BLANK RECORD
         BNE   READLP2             BR. AND IGNORE IT
         CLC   CRDREC(L'CRDREC-1),CRDREC
         BE    READLP              BR. AND IGNORE IT
READLP2  DS   0H
         CLC   CDID,=CL8'TAPECRD'
         BNE   INVREC
         CLC   BLKNUM,HBLKNUM      SEE IF NEXT BLOCK
         BH    WRTBUF              HI, BR. AND WRITE TAPEBUF
         BE    RDCONT              EQUAL CONTINUE TO BUILD BUFFER
         LA    R0,1                SEE IF WE'RE STARTING OVER AT 1
         C     R0,BLKNUM
         BNE   READLP              NOPE, DUPLICATED BLOCK
         C     R0,RECNUM           IS IT CARD #1
         BNE   READLP              NOPE, DUPLICATED BLOCK
         MVC   DUPBLK,HBLKNUM      SAVE DUPLICATATED BLOCK #
         XC    LASTREC,LASTREC     RESET THE RECORD NUMBER
         ZAP   SAVECRD#,NUMCRDS    SAVE LAST CARD #
         OI    EOFLAG,DUPBLKEO
         ST    R0,HBLKNUM
         B     WRTBUF              WRITE HOPEFULLY NON DUP. DATA
RDCONT   EQU   
         MVI   BUFFLG,C'Y'         MARK AS TAPEBUF CONTAINS SOME DATA
         MVC   HBLKNUM,BLKNUM      SAVE CURRENT BLOCK NUMBER
         L     R2,RECNUM           LOAD CURRENT RECORD COUNT
         BCTR  R2,0                SUBTRACT 1
         C     R2,LASTREC          MULT BY MAX AMT DATACARD
         BNE   READLP              DONT ACCEPT DUPLICATE RECORDS
         L     R1,RECBYTES         #USED BYTES IN THIS CARD RECORD
         BCTR  R1,0                  RELATIVE TO ZERO
         EX    R1,MVCTOBUF         MOVE THE DATA
         AP    NUMCRDS,=P'1'       BUMP NUMBER OF CARDS
         CP    NUMCRDS,=P'1'       IS THIS THE FIRST CARD
         BH    RDCONT2             NO, CONTINUE
         MVC   SAVBLKSZ,BLKSIZE    SAVE THE BLKSIZE
RDCONT2  EQU   
         LA    R3,1(R3,R1)         BUMP INDEX
         MVC   LASTREC,RECNUM      BUMP INDEX
         B     READLP              BR. AND READ NEXT CARD
MVCTOBUF MVC   0(0,R3),CRDDTA      MOVE TO OUTPUT
WRTBUF   EQU   
         MVI   SWITCH,C'N'
         BAL   R9,PUTIT            WRITE TAPE RECORD
         B     RDCONT
PUTIT    DS   0H
         TM    DCBOFLGS,DCBOFOPN   HAVE WE OPENED THE OUTPUT FILE
         BO    PUTIT2              YES, CONTINUE
         L     R2,SAVBLKSZ
         STH   R2,DCBBLKSI
        OPEN   (OUT,OUTPUT)        OPEN THE OUTPUT FILE
PUTIT2   DS   0H
         LA    R4,TAPEBUF          POINT TO BUFFER ORIGIN
         SR    R3,R4               CALC. ACT. PHYS BLK LEN.
         STH   R3,DCBLRECL         SAVE IT AS LRECL
        PUT    OUT,TAPEBUF         OUTPUT IT
         XC    LASTREC,LASTREC     RESET LAST RECORD READ
         LR    R3,R4               RESET BUFFER POINTER
         AP    NUMTAPE,=P'1'       BUMP TAPE BLOCKS
         MVI   BUFFLG,C'N'         RESET TAPEBUF FLAG
         BR    R9                  GET OUT
EOJ      EQU 
         CLI   BUFFLG,C'N'         SEE IF TAPEBUF EMPTY
         BE    EOJCONT             TAPEBUF IS EMPTY
         BAL   R9,PUTIT            WRITE TAPE RECORD
EOJCONT  EQU   
         MVC   NUMFLD,NUMEDIT
         ED    NUMFLD,NUMCRDS
         MVC   CONM2V,NUMFLD+1
         $FILL PLINE
         MVC   PLINED(60),CONMSG2
         PUT   PRT,PLINE
         MVC   NUMFLD,NUMEDIT
         ED    NUMFLD,NUMTAPE
         MVC   CONM1V,NUMFLD+1
         $FILL PLINE
         MVC   PLINED(60),CONMSG1
         PUT   PRT,PLINE
         $FILL PLINE
         TM    EOFLAG,DUPBLKEO            DID WE HAVE DUPLICATE BLKS
         BNO   PUTCONT2
         L     R0,DUPBLK
         CVD   R0,DW
         UNPK  CONM3V,DW
         OI    CONM3V+L'CONM3V-1,C'0'
         ZAP   DW,SAVECRD#
         UNPK  CONM3V2,DW
         OI    CONM3V2+L'CONM3V-1,C'0'
         $FILL PLINE
         MVC   PLINED(60),CONMSG3
         PUT   PRT,PLINE
PUTCONT2 DS   0H
         MVC   PLINED(60),=CL60'SY110A - END OF PROCESSING'
         PUT   PRT,PLINE
        CLOSE  (IN,,PRT)
         TM    DCBOFLGS,DCBOFOPN       DID WE OPEN THE OUTPUT
         BZ    BYPCLOS                 NOPE, DON'T CLOSE IT
        CLOSE  (OUT)
BYPCLOS  DS   0H
        OPEN   (LOG,OUTPUT)        OPEN THE LOG FILE
         TM    LOG+DCBOFLGS-IHADCB,DCBOFOPN   DID WE OPEN OK
         BNO   BYPCLOS2            NOPE FORGET IT
        RDJFCB OUT                 GET HIS JFCB
         MVC   LDSNAME,JFCBDSNM    SAVE DSN
         LH    R1,DCBBLKSI         GET THE BLKSIZE
         CVD   R1,DWORD            CONVERT IT FOR EDIT
         MVC   LBLKSIZ,NUMEDIT      EDIT IT
         ED    LBLKSIZ,DWORD+4
         MVI   LBLKSIZ,C'='
         LTR   R1,R1               IS THERE A BLKSIZE
         BNZ   BYPCLOS1            IF THERE WAS ONE WE'RE OK
         MVC   LMSG,EMSGLOG
BYPCLOS1 DS   0H
        TIME   DEC                 GET DATE&TIME
         STM   R0,R1,DWORD         SAVE THEM
         MVC   LRUNDT,DATEPAT
         ED    LRUNDT,DWORD+5      RUN DATE
         MVC   LRUNTM,DATEPAT
         ED    LRUNTM,DWORD        RUN TIME
         MVC   LBLKS,NUMEDIT
         ED    LBLKS,NUMTAPE       # OUTPUT BLKS
         MVI   LBLKS,C'='
        PUT    LOG,LOGREC          OUTPUT THE LOG RECORD
        CLOSE  LOG                 CLOSE THE LOG AND BYE-BYE
BYPCLOS2 DS   0H
*        $EXIT  RC=0
        $EPILOG 0
        PRINT  NOGEN
OUT      DCB   DSORG=PS,MACRF=(PM),DDNAME=OUT,EXLST=EXLST
IN       DCB   DSORG=PS,RECFM=FB,LRECL=80,MACRF=(GM),DDNAME=IN,        X
               EODAD=EOJ
PRT      DCB   DSORG=PS,RECFM=FBA,LRECL=121,MACRF=(PM),DDNAME=SYSPRINT
LOG      DCB   DSORG=PS,RECFM=FB,LRECL=LOGRECL,MACRF=(PM),DDNAME=LOG,  X
               BLKSIZE=LOGRECL          1 RECORD PER RUN
WORKAREA DS    0D
DWORD    DS    D
EXLST    DS   0F
         DC    X'87'            INDICATE THIS IS FOR READJFCB
         DC    AL3(JFCB)
SWITCH   DC    CL1'Y'
PLINE    DS    0CL121
         DC    C' '
PLINED   DC    CL120' '
NUMCRDS  DC    PL4'0'
NUMTAPE  DC    PL4'0'
SAVECRD# DC    PL4'0'
NUMFLD   DC    XL8'4020202020202120'
NUMEDIT  DC    XL8'4020202020202120'
DATEPAT  DC    X'4020204B202020'
CONMSG1  DS    0CL60
         DC    CL32'SY110A - DISK BLOCKS WRITTEN ='
CONM1V   DC    CL7'.......'
         DC    CL23' '
CONMSG2  DS    0CL60
         DC    CL32'SY110A - INPUT CARDS READ    ='
CONM2V   DC    CL7'.......'
         DC    CL23' '
CONMSG3  DS    0CL60
         DC    C'SY110A - AFTER BLOCK #='
CONM3V   DC    CL8'.......'
         DC    C',CARD#='
CONM3V2  DC    CL8'.......'
         DC    C',2D FILE STARTED                        '
        ORG    CONMSG3+L'CONMSG3
BUFFLG   DC    C'N'
EOFLAG   DC    X'0'
DUPBLKEO EQU   1
HBLKNUM  DC    F'1'
DUPBLK   DC    F'0'
SAVBLKSZ DC    F'0'
DW       DS    D
CRDREC   DS    0CL80
CDID     DC    CL8'TAPECRD'       RECORD ID
BLKNUM   DC    XL4'00'             TAPE BLOCK NUMBER
BLKSIZE  DC    XL4'00'             CURRENT BLOCK SIZE
RECNUM   DC    XL4'00'             CURRENT CRDREC NUMBER
RECBYTES DC    XL4'00'             NUMBER OF BYTES USED ON THIS REC
CRDDTA   DC    XL56'00'
LASTREC  DC    F'0'
LOGREC   DS   0C
LMSG     DC    C' CREATED '
LRUNDT   DS    CL(L'DATEPAT)
LRUNTM   DS    CL(L'DATEPAT-1)
         DC    C',BLKSIZE'
LBLKSIZ  DS    CL(L'NUMEDIT)
         DC    C',BLK COUNT'
LBLKS    DS    CL(L'NUMEDIT)
         DC    C',DSNAME='
LDSNAME  DS    CL(L'JFCBDSNM)
LOGRECL  EQU   *-LOGREC
EMSGLOG  DC    CL(L'LMSG)' NO DATA'
        PRINT  GEN
JFCB     DS   0F
        IEFJFCBN  LIST=YES
         LTORG
TAPEBUF  DS    0D
TAPEREC  DC    32768X'FF'        TAPE OUTPUT BUFFER
         DC  56X'FF'
        DCBD   DSORG=PS,DEVD=DA
         END   SY110A
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.

NicC
Active Member


Joined: 24 Jul 2011
Posts: 651
Location: Down on the pig farm

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Thu May 30, 2013 10:13 pm    Post subject: Reply with quote

Your code is unreadable - everything starts in cc1 so it will not assemble. When you post code/data/cards please use the code tags to preserve formatting.
_________________
Regards
Nic
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
DikDude
Moderator


Joined: 22 Jul 2011
Posts: 1001
Location: usa

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Fri May 31, 2013 2:52 am    Post subject: Reply with quote

Your post has been Code'd for readability.

Suggest you put some "diagnostics" at various places in the code to learn what you want.
_________________
Have a good one


Last edited by DikDude on Sat Jun 01, 2013 1:16 am; edited 1 time in total
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
William Collins
Active Member


Joined: 24 May 2012
Posts: 714

Answer was approved by Question owner.
Useful Post
0 votes
Not an useful post
Greate Post!! Salute Author
0 salutes

PostPosted: Fri May 31, 2013 11:20 pm    Post subject: Re: Need to understand the logic of these assembler program Reply with quote

SDMFLGMD wrote:
Based on my understanding the program does the following
1. Read input record received from AS400 in-stream data.
2. Check if it is valid, if yes write to output file else write to SYSPRINT and continue
3. While writing to output file, write as 140 byte record in one case (note that input is always 80 bytes)
4. At the end write the LOG file with the count of records received and the GDG where it was copied.

We need to know 2 things
1. How does it identify invalid records?
2. How does it merge data from 2 separate lines and how does it know the output size to be written?


The code itself has no idea where the data comes from. In fact, the comments indicate that the data is expected from either MVS or DOS, marking the code as "somewhat old", maybe as old as 30 years, perhaps more.

The code is not particularly "good" and has been worked on by more than one person.

Can you show the JCL and he dataset information for the OUT DD?
Back to top
View user's profile Send private message
Click here, If this post answer your question. <-- Click on right mark icon. If this post answer your question.
Display posts from previous:   
Post new topic   Reply to topic    mainframegurukul.com Forum Index -> ASSEMBLER All times are GMT + 5 Hours
Page 1 of 1



 
Jump to:  
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

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts Two outputs created as a result of generation of a map 5 Krishna 7419 Wed Feb 03, 2016 12:39 am
academyindia4 View latest post
No new posts SQLCODE -811, why always 2nd row is fetched?? 5 sukhmeet 6234 Sat Jan 30, 2016 11:25 pm
academyindia4 View latest post
No new posts List of datasets created before the date specified 2 phaniyelugula 2020 Wed Jan 15, 2014 2:18 pm
NicC View latest post
No new posts how to use a file created by EZACFSM1 in the following steps 4 mail4ujyoti 4195 Fri Aug 10, 2012 9:38 am
Anuj Dhawan View latest post
No new posts attributes of one SMS dataset be copied to another dataset ? 1 Krishna 3270 Tue May 12, 2009 6:32 pm
Krishna View latest post
 


Cobol Tutorial
This cobol tutorial covers most of the important topics like STRING, UNSTRING, COMP, COMP-3.....
DB2 Tutorial
DB2 Tutorial focuses on DB2 COBOL Programming. Explains in simple language. Some Chapters are locked, Forum members have free access to these chapters
CICS Tutorial
This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming...
JCL Tutorial
This is most popular JCL tutorial from mainframegurukul. It does contain important jcl ....
SORT Tutorial
This Tutorial covers all important aspects of DFSORT. Has more SORT examples
INTERVIEW Questions
This page covers important interview questions
Mainframe Jobs
Mainframe Jobs posted by members of mainframegurukul forum
FaceBook Page
MainframeGurukul FaceBook Page
LinkedIn Page
MainframeGurkul Linkedin Page

This widget requires Flash Player 9 or better







Go to top of the page
 

Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  DB2 INTERVIEW QUESTIONS ||  COBOL INTERVIEW QUESTIONS  ||  JCL INTERVIEW QUESTIONS ||  JCL2 INTERVIEW QUESTIONS ||  VSAM INTERVIEW QUESTIONS ||  CICS INTERVIEW QUESTIONS  ||  Online tutorials ||  Online ABEND Reference ||  JCL References ||  COBOL References ||  VSAM References ||  Tutorials by Drona Series ||  SQL tutorial ||  BOOKS  ||  SiteMap  ||  Expeditor Tutorial  ||  FILE-AID Tutorial  ||  Changeman Tutorial  ||  COBOL   ||  DB2   ||  JCL  ||  CICS  ||  VSAM  ||  DB2 Interview Questions ( 110 )   || Simple JCL Tutorials  || JCL Tutorial from MainframeGurukul.com   || Simple JCL Tutorial - Chapter1 ;|| Mainframe Forum - Tutorials  || Mainframe Tutorials || Mainframe CICS tutorial|| Mainframe COBOL Tutorial

Drona Educational Forums - Mainframe Cobol DB2 CICS Board
Powered by phpBB

mainframetopic-7118.html