Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //KC03Q15A JOB ,'MATTHEW ROWE',MSGCLASS=H
- //***************************************************************
- //* *
- //* CSCI 465/565 - FALL 2014 *
- //* *
- //* ASSIGNMENT 4 *
- //* *
- //* PROGRAMMER: MATTHEW ROWE *
- //* *
- //* DATE: 10/24/2014 *
- //* TIME: 11:59:59 PM *
- //* *
- //* THE PURPOSE OF THIS JOB IS TO COMPILE AND EXECUTE A *
- //* ASSEMBLER PROGRAM TO READ IN A DATA FILES CONTAINING BROKER *
- //* AND SHARE INFORMATION TO CONSTRUCT A DAILY SALES REPORT. *
- //* *
- //***************************************************************
- //JSTEP01 EXEC PGM=ASMA90,PARM=ASA
- //*
- //***************************************************************
- //* *
- //* JSTEP01 COMPILES THE ASSEMBLER SOURCE CODE. *
- //* *
- //* DDNAME FILE DESCRIPTION *
- //* *
- //* STEPLIB INPUT: KC00NIU.SYS2.MACLIB *
- //* SYSIN INPUT: INSTREAM DATA FROM PROGRAM *
- //* SYSLIB INPUT: SYS1.MACLIB *
- //* *
- //***************************************************************
- //SYSLIB DD DSN=KC00NIU.SYS2.MACLIB,DISP=SHR
- // DD DSN=SYS1.MACLIB,DISP=SHR
- //SYSIN DD *
- *************************ASMPGM CSECT*********************************
- * *
- * PROGRAM PROG4 *
- * AUTHOR GEOFFREY DECKER *
- * DATE WRITTEN 06/23/2013 *
- * *
- * FUNCTION: THIS PROGRAM READS INFORMATION FROM AN INPUT FILE *
- * AND SIMPLY PRINTS IT TO THE SCREEN. *
- * *
- * INPUT: INPUT FILE CONTAINING 80 BYTE BROKER RECORDS *
- * INPUT FILE CONTAINING DAILY CLOSE SHARE PRICE *
- * *
- * OUTPUT: ONE TEMPORARY FILE FOR HIGH SALES RECORD AND *
- * ORGANIZED DATA FOR DAILY SALES REPORT TO STDOUT *
- * *
- **********************************************************************
- PROG4 CSECT BEGIN ASMPGM
- PRINT NOGEN DO NOT EXPAND MACRO CALLS
- *
- XSAVE BR=12,SA=MAINSAVE,TR=NO
- * STANDARD ENTRY LINKAGE
- OPEN (SHAREDCB,(INPUT)) OPEN SHARE PRICE FILE
- LTR 15,15 CHECK FOR SUCCESSFUL OPEN
- BZ PACKSHR BRANCH IF SUCCESSFUL TO LABEL
- ABEND 555,DUMP ABEND IF OPEN FAILS
- *
- PACKSHR GET SHAREDCB PUT SHARE PRICE IN BUFFER
- MVC INBUFFER(80),0(1)
- PACK SHRPRICE(3),INBUFFER(5) PACK BUFFER INTO STORAGE
- *
- CLOSE (SHAREDCB)
- *
- OPEN (BROKRDCB,(INPUT)) OPEN BROKER FILE FOR READING
- LTR 15,15 CHECK FOR SUCCESSFUL OPEN
- BZ OPEN1OK BRANCH IF SUCCESSFUL TO LABEL
- ABEND 666,DUMP ABEND IF OPEN FAILS
- *
- OPEN1OK OPEN (LRGSLDCB,(OUTPUT)) OPEN BROKER FILE FOR READING
- LTR 15,15 CHECK FOR SUCCESSFUL OPEN
- BZ OPEN2OK BRANCH IF SUCCESSFUL TO LABEL
- ABEND 777,DUMP ABEND IF OPEN FAILS
- *
- OPEN2OK OPEN (OUTDCB,(OUTPUT)) OPEN OUTPUT FOR PRINTING
- LTR 15,15 CHECK FOR SUCCESSFUL OPEN
- BZ OPEN3OK BRANCH IF SUCCESSFUL TO LABEL
- ABEND 888,DUMP ABEND IF OPEN FAILS
- *
- OPEN3OK GET BROKRDCB,INBUFFER GET THE FIRST 80 BYTES
- *
- DATIME TIME DEC,DATESTR,LINKAGE=SYSTEM,DATETYPE=MMDDYYYY
- *
- LOOP1 CLI EOFFLAG1,C'Y' CHECK FOR END OF INPUT DATA
- *
- BE ENDLOOP1 BRANCH OUT OF LOOP IF EOF
- *
- CP PGCNTR(2),NEWPAGE(2) CHECK IF 15 RECS
- BE NEWPG BRANCH TO HEADER PRINT
- AP PGCNTR(2),PAGEINC(1) USE R5 AS CNTR FOR NEW PG
- *
- AP RECS(3),PAGEINC(1) INCREMENT RECORDS
- MVC OUTCITY(24),INBUFFER MOVE CITY TO PRINT LINE
- MVC OUTBRKR(24),INBUFFER+24 MOVE BROER TO PRINT LINE
- *
- PACK DEPAMT(6),INBUFFER+48(11) PACK DEPOSIT AMOUNT
- *
- LA 1,ODEPAMT+11 POINTER IN CASE OF 0 AMOUNT
- MVC ODEPAMT(15),DEPPAT SET NUMERIC PATTERN FIELD
- EDMK ODEPAMT(15),DEPAMT MOVE DEPOSIT TO PATTERN
- BCTR 1,0 MOVE TO FRONT OF DEPOSIT
- MVI 0(1),C'$' ADD $ SIGN
- *
- ZAP SHRAMT(11),DEPAMT(6) PLACE DEPAMT TO GET SHRAMT
- SRP SHRAMT,4,0 SHIFT SHARE AMOUNT
- DP SHRAMT(11),SHRPRICE(3) DIVIDE TO GET TOTAL SHARES
- SRP SHRAMT(8),64-1,5 NEXT 2 INSTRUCTS ROUNDS
- SRP SHRAMT(8),1,0 3 PLACES W/ 0 IN 4TH POS.
- AP TOTSHRS(7),SHRAMT(8) ADD SHARES SOLD TO TOTAL
- CP SHRAMT(8),=P'200000000' CHECK SHARES SOLD
- BL CONT BRANCH IF SOLD LARGE AMNT
- *
- MVC OUTBUF1(24),OUTBRKR
- ZAP OUTBUF2(8),SHRAMT(8)
- PUT LRGSLDCB
- MVC 0(32,1),OUTBUF1
- *
- CONT DS 0H
- MVC OSHRAMT(17),SHRPAT SET PRINT PATTERN
- EDMK OSHRAMT(17),SHRAMT PUT SHRAMT IN NUM EDITED FIELD
- CLI INBUFFER+59,C'1'
- BE COMRT1 IF EQUAL BRANCH TO COM RATE 1
- ZAP COMMISS(8),DEPAMT(6)
- MP COMMISS(8),COMPCT2(2)
- SRP COMMISS(8),1,5
- AP TOTCOMS(6),COMMISS(8) ADD COMMISSION TO TOTAL
- MVC OCOMM(13),COMPAT
- EDMK OCOMM(13),COMMISS
- BCTR 1,0 MOVE TO FRONT OF COMMISS
- MVI 0(1),C'$' ADD $ SIGN
- B PRINTRD BRANCH TO PRINT READY
- *
- COMRT1 ZAP COMMISS(8),DEPAMT(6)
- MP COMMISS(8),COMPCT1(2)
- SRP COMMISS(8),1,5
- AP TOTCOMS(6),COMMISS(8) ADD COMMISSION TO TOTAL
- MVC OCOMM(13),COMPAT
- EDMK OCOMM(13),COMMISS
- BCTR 1,0 MOVE TO FRONT OF COMMISS
- MVI 0(1),C'$' ADD $ SIGN
- *
- PRINTRD PUT OUTDCB,PRINTLN PUT THE DATA TO SCREEN
- *
- AP TOTDEPS(7),DEPAMT(6) ADD DEPAMT TO TOTAL
- *
- *
- GET BROKRDCB,INBUFFER GET THE NEXT RECORD
- *
- B LOOP1 BRANCH TO TOP OF LOOP
- *
- *
- GET BROKRDCB,INBUFFER GET THE NEXT RECORD
- *
- B LOOP1 BRANCH TO TOP OF LOOP
- *
- NEWPG DS 0H CLEAR COUNTER REGISTER
- SP PGCNTR(2),NEWPAGE(2)
- AP PAGECTR(2),PAGEINC(1) INCREMENT PAGE NUMBER
- MVC PGNUM(4),PAGEPAT
- ED PGNUM(4),PAGECTR PRINT PAGE NUMBER
- MVC OUTDATE(13),DATEPAT MOVE DATE INTO FIELD
- ED OUTDATE(13),DATESTR+7
- PUT OUTDCB,REP1H1 PRINT HEADER LINE 1
- MVC OUTTIME(9),TIMEPAT MOVE TIME INTO FIELD
- ED OUTTIME(9),DATESTR
- PUT OUTDCB,REP1H2 PRINT HEADER LINE 2
- PUT OUTDCB,REP1H3 PRINT HEADER LINE 3
- PUT OUTDCB,HEADDIV DIVDER LINE OF HYPHENS
- B LOOP1 BRANCH TO TOP
- *
- ENDLOOP1 CLOSE (BROKRDCB) CLOSE THE 3 DCBs
- *
- PUT OUTDCB,EOR1H1
- PUT OUTDCB,EOR1H2
- PUT OUTDCB,HEADDIV
- *
- MVC OTOTREC(6),TOTRPAT
- ED OTOTREC(6),RECS
- LA 1,OTOTDEP+15 INCASE 0 AMOUNT
- MVC OTOTDEP(19),TOTDPAT MOVE TOTAL DEPOSIT TO
- EDMK OTOTDEP(19),TOTDEPS PRINT LINE
- BCTR 1,0 MOVE TO FRONT OF COMMISS
- MVI 0(1),C'$' ADD $ SIGN
- MVC OTOTSHR(20),TOTSPAT MOVE TOTAL SHARES TO
- EDMK OTOTSHR(20),TOTSHRS PRINT LINE
- LA 1,OTOTCOM+11 INCASE OF 0 AMOUNT
- MVC OTOTCOM(15),TOTCPAT MOVE TOTAL COMMISSION TO
- EDMK OTOTCOM(15),TOTCOMS PRINT LINE
- BCTR 1,0 MOVE TO FRONT OF COMMISS
- MVI 0(1),C'$' ADD $ SIGN
- PUT OUTDCB,EORPRINT PUT THE DATA TO SCREEN
- *
- CLOSE (LRGSLDCB) CLOSE OUPUT
- *
- OPEN (LRGSLDCB,(INPUT)) OPEN TEMP FILE FOR READING
- LTR 15,15 CHECK FOR SUCCESSFUL OPEN
- BZ OPEN40K BRANCH IF SUCCESSFUL TO LABEL
- ABEND 999,DUMP ABEND IF OPEN FAILS
- *
- OPEN40K GET LRGSLDCB
- MVC INBFFER(32),0(1)
- *
- SP RECS(3),RECS(3) RESET ALL COUNTERS TO 0
- SP PAGECTR(2),PAGECTR(2)
- SP PGCNTR(2),PGCNTR(2)
- SP TOTSHRS(7),TOTSHRS(7)
- AP PGCNTR(2),NEWPAGE(2) SET TO PRINT HEADER
- *
- LOOP2 CLI EOFFLAG2,C'Y' CHECK FOR END OF INPUT DATA
- *
- BE ENDLOOP2 BRANCH OUT OF LOOP IF EOF
- *
- CP PGCNTR(2),NEWPAGE(2) CHECK IF 15 RECS
- BE NEWPG2 BRANCH TO HEADER PRINT
- *
- AP RECS(3),PAGEINC(1) INCREMENT RECS READ
- MVC OBRKR2(24),INBFFER
- MVC SHRAMT2(8),INBFFER+24
- *
- MVC OSHR2(17),SHRPAT
- ED OSHR2(17),SHRAMT2
- AP TOTSHRS(7),SHRAMT2(8)
- *
- PUT OUTDCB,PRINT2
- GET LRGSLDCB
- MVC INBFFER(32),0(1)
- B LOOP2
- *
- NEWPG2 DS 0H CLEAR COUNTER REGISTER
- SP PGCNTR(2),NEWPAGE(2)
- AP PAGECTR(2),PAGEINC(1) INCREMENT PAGE NUMBER
- MVC PGNUM(4),PAGEPAT
- ED PGNUM(4),PAGECTR PRINT PAGE NUMBER
- MVC OUTDATE(13),DATEPAT MOVE DATE INTO FIELD
- ED OUTDATE(13),DATESTR+7
- PUT OUTDCB,REP1H1 PRINT HEADER LINE 1
- MVC OUTTIME2(7),TIMEPAT MOVE TIME INTO FIELD
- ED OUTTIME2(7),DATESTR
- PUT OUTDCB,REP2H2 PRINT HEADER LINE 2
- PUT OUTDCB,REP2H3 PRINT HEADER LINE 3
- PUT OUTDCB,HEADDIV DIVDER LINE OF HYPHENS
- B LOOP2 BRANCH TO TOP
- *
- ENDLOOP2 CLOSE (LRGSLDCB)
- *
- PUT OUTDCB,EOR2H1
- PUT OUTDCB,EOR2H2
- PUT OUTDCB,HEADDIV
- *
- MVC ORECTOT(6),TOTRPAT
- ED ORECTOT(6),RECS
- MVC OSHRTOT(20),TOTSPAT
- EDMK OSHRTOT(20),TOTSHRS
- PUT OUTDCB,EOR2
- *
- XRETURN RC=0,TR=NO STANDARD EXIT LINKAGE
- *
- LTORG LTORG TO CLEAR LITERALS
- *
- ***************MAIN STORAGE*************************
- *
- MAINSAVE DS 18F MAINSAVE FOR STANDARD LINKAGE
- *
- INBUFFER DC 80C'$' INPUT BUFFER FILL WITH '$'
- *
- INBFFER DC 32C'$' INPUT BUFFER FILL WITH '$'
- *
- EOFFLAG1 DC C'N' EOFFLAG FOR BROKER FILE
- *
- EOFFLAG2 DC C'N' EOFFLAG FOR TEMP FILE
- *
- SHRPRICE DC PL3'0' SHARE PRICE STORAGE
- *
- DEPAMT DC PL6'0' DEPOSIT AMOUNT STORAGE
- *
- SHRAMT DC PL11'0' SHARES SOLD FIELD
- *
- SHRAMT2 DC PL8'0'
- *
- TOTDEPS DC PL7'0' TOTAL DEPOSITS FOR DAY
- *
- TOTSHRS DC PL7'0' TOTAL SHARES SOLD
- *
- TOTCOMS DC PL6'0' TOTAL COMMISSION FOR DAY
- *
- COMPCT1 DC PL2'625' 5/8% COMMISSION
- *
- COMPCT2 DC PL2'875' 7/8% COMMISSION
- *
- COMMISS DC PL8'0' COMMISSION STORAGE
- *
- DATESTR DC 4F'0' DATE-TIME STORAGE
- *
- PAGEINC DC P'1' INCREMENT PAGE AND RECS
- *
- PAGECTR DC PL2'00' PAGE COUNTER
- *
- RECS DC PL3'000' RECORD COUNTER
- *
- NEWPAGE DC PL2'15' CHECKER FOR NEW PAGE
- *
- PGCNTR DC PL2'15' COUNTER FOR NEW PAGE
- *
- OUTBUF1 DC 24C' '
- OUTBUF2 DC 8C' '
- *****************PRINT PATTERNS**********************************
- *
- COMPAT DC XL13'40206B2020206B2021204B2020'
- *
- DEPPAT DC XL15'402020206B2020206B2021204B2020'
- *
- SHRPAT DC XL17'402020206B2020206B2021204B20202020'
- *
- TOTRPAT DC XL6'402020202020'
- *
- TOTDPAT DC XL19'4020206B2020206B2020206B2021204B2020'
- *
- TOTSPAT DC XL20'4020206B2020206B2020206B2021204B20202020'
- *
- TOTCPAT DC XL15'402020206B2020206B2021204B2020'
- *
- PAGEPAT DC XL4'40202020'
- *
- DATEPAT DC XL13'40202120206120206120202020'
- *
- TIMEPAT DC XL09'4020207A20207A2020'
- *
- ******************PRINT LINES *********************************
- *
- PRINTLN DC CL1'0' HOLDS OUTPUT FOR PRINTED REPORT
- OUTCITY DS CL24 HOLDS BROKER CITY
- DC 9C' ' FILLER
- OUTBRKR DS CL24 HOLDS BROKER NAME
- DC 9C' ' FILLER
- ODEPAMT DS CL15 OUT DEPOSIT AMOUNT
- DC 9C' ' FILLER
- OSHRAMT DS CL17 OUT SHARE AMOUNT
- DC 9C' ' FILLER
- OCOMM DS CL16 OUT COMMISSION AMOUNT
- *
- EORPRINT DC CL1'0' HOLDS DATA FOR WND OF REPORT
- OTOTREC DS CL6
- DC 10C' ' FILLER
- OTOTDEP DS CL19
- DC 10C' ' FILLER
- OTOTSHR DS CL20
- DC 10C' ' FILLER
- OTOTCOM DS CL15
- DC 45C' ' FILLER TO END OF LINE
- *
- PRINT2 DC C'0'
- OBRKR2 DS CL24
- DC 10C' '
- OSHR2 DS CL20
- DC 78C' '
- *
- EOR2 DC C'0'
- ORECTOT DS CL6
- DC 10C' '
- OSHRTOT DS CL20
- DC 96C' '
- *
- *****************HEADER PRINTLINES************
- *
- REP1H1 DC C'1'
- OUTDATE DS CL13
- DC 31C' ' FILLER
- DC CL46'DEWEY, CHEATHAM AND HOWE MUTUAL FUND WORLDWIDE'
- DC 31C' ' FILLER
- DC CL6'PAGE: '
- PGNUM DS 4C
- *
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement