| CSCI 567, Fall 2006 | Assignment 1a |
During the second part of the semester we will be studying SMP/E, the System Modification Program. SMP/E invokes many programs as utilities, including the data set utility IEBUPDTE. Since you will be using IEBUPDTE in a number of early assignments as well, this first problem is an opportunity to see how IEBUPDTE works.
The Year 2000 problem (Y2K) appeared in many places and was not limited to COBOL programs. In particular, the ASMDATE macro instruction (locally written twenty-five years ago) reformats the &SYSDATE system variable symbol from MM/DD/YY into a number of other formats. Since &SYSDATE supplies only the last two digits of the year, it does not satisfy Y2K criteria and must be altered. Fortunately, the modern High Level Assembler has an alternative system variable symbol, &SYSDATC, with the format YYYYDDMM providing all four digits of the year. A file of IEBUPDTE updates has been written to correct ASMDATE and this dataset can be found at http://www.cs.niu.edu/csci/567/data/asmdate.upd
Unfortunately, this update deck has an error. The statement with sequence number 00122000 should have had sequence number 00121000 instead. You will need to create a three-step batch job to fix this problem using IEBUPDTE in all three steps.
The first step will simply REPRO the ASMDATE.UPD data (you must manually place it in the job after SYSUT1 DD *) to a temporary disk file (on SYSUT2 DD) in card image format (DCB=CARD) and passed to the next step. SYSIN DD will have the REPRO statement.
The second step will correct the bad update card by first providing the same data with the correct sequence number, then using ./ DELETE to remove the bad statement. In this step, SYSUT1 DD will refer to the data set passed from the previous step (and should delete it when the step completes), SYSUT2 will create another temporary data set to be passed to the last step, and SYSIN will have the changes.
The third step will apply the corrected updates to SYS2.MACLIB member ASMDATE. In order to see the changes (without actually making them) SYSUT2 should be SYSOUT=A,DCB=CARD - which is why NEW=PS is specified on the ./ CHANGE. The SYSIN DD should refer to the file of corrected updates passed from step 2, and should delete the file when the step completes.
Be sure to specify LIST=ALL on each of the ./ CHANGE statements.
Turn in the listing from this batch job.