****************************************************************

     **

     **       PROGRAM NAME: JONAS4.RPG

     **       AUTHOR: JONAS WIK

     **       DESCRIPTION: THIS PROGRAM READS IN A LOAN TAKER(NUMBER&

     **          NAME) THE LOAN AMOUNT, THE NUMBER OF YEARS TO PAY OFF

     **          THE LOAN. THE PROGRAM THEN PRINTS EACH LOANTAKER WITH

     **          THE AMOUNT, THE NUMBER OF MONTHS TO PAY IT OFF IN

     **          AND THE AMOUNT DUE EACH MONTH AND THE TOTAL AMOUNT

     **          ACCUMULATED.

     **

     ****************************************************************

     FMMORTP  IP  F      80            DISK

     FQSYSPRT O   F      80     OF     PRINTER

     ****************************************************************

     **

     **       INPUT RECORD DESCRIPTION:

     **

     **       REFNO =REFERENCE NUMBER            5 CHARACTERS

     **       CUSNAM=CUSTOMER NAME              20 CHARACTERS

     **       YEARS =NUMBER OF YEARS FOR LOAN    2 DIGITS NO DECIMAL

     **       FILLER=NON USED CHARACTERS         5 CHARACTERS

     **       LOAN  =THE LOAN AMOUNT             6 DIGITS NO DECIMAL

     **       FILL2 =NON USED CHARACTERS        42 CHARACTERS

     **

     ****************************************************************

     IMMORTP  NS  01

     I                                        1   50REFNO

     I                                        6  25 CUSNAM

     I                                       26  270YEARS

     I                                       28  32 FILLER

     I                                       33  380LOAN

     I                                       39  80 FILL2

     ****************************************************************

     **

     **       DECLARED DATASTRUCTURES(#WORK)

     **

     **       MONTHS=YEARS * 12               4 DIGITS NO DECIMALS

     **       MONPAY=(LOAN*PAYMNT)/MONTHS     6 DIGITS  2 DECIMALS

     **       PAYMNT=1.005 RAISED TO THE NTH POWER 10 DIG. 9 DECIMALS

     **       TEMP  =TEMPORARY FOR STORING VALUES   9 DIG. 2 DECIMALS

     **       COUNT =USED FOR COUNTING              3 DIG. NO DECIMALS

     **

     ****************************************************************

     I#WORK       DS

     I                                        1   40MONTHS

     I                                        5  102MONPAY

     I                                       11  209PAYMNT

     I                                       21  292TEMP

     I                                       30  330COUNT

     ****************************************************************

     **

     **       ACCPAY=ACCUMULATED COST FOR LOAN     10 DIG. 2 DECIMALS

     **

     ****************************************************************

     I#TOTAL      DS

     I                                        1  102ACCPAY

     ****************************************************************

     **

     **       ALL CALCULATIONS ARE DONE HERE BY CALLING TWO SUBROUTINES

     **       ACC AND PAY

     **

     **       INDICATORS USED:

     **       OF = OVERFLOW INDICATOR.

     **

     ****************************************************************

     C                     Z-ADD0         ACCPAY

     C                     EXCPTHEAD

     C                     EXSR PAY

     C                     EXSR ACC

     ****************************************************************

     **

     **       SUBROUTINE PAY:

     **

     **       CALCULATES THE PAYMNT BY MULTIPLYING 1.005 WITH ITSELF UN

     **       TIL THE COUNT IS EQUAL TO THE MONTHS.

     **       IT ALSO COMPUTES THE MONPAY BY (LOAN*PAYMNT)/MONTHS

     **       IT ALSO ADDS THE MONPAY TO THE ACCPAY. AND PRINTS THE

     **       FIRST DETAIL LINE.

     **

     ****************************************************************

     CSR         PAY       BEGSR

     C           YEARS     MULT 12        MONTHS

     C                     Z-ADD0         COUNT

     C                     Z-ADD1.005     PAYMNT

     C           COUNT     DOWLEMONTHS

     C           PAYMNT    MULT 1.005     PAYMNT    H

     C                     ADD  1         COUNT

     C                     END

     C           LOAN      MULT PAYMNT    TEMP      H

     C           TEMP      DIV  MONTHS    MONPAY    H

     C                     ADD  MONPAY    ACCPAY

     C                     EXCPTDET1

     C                     ENDSR

     ****************************************************************

     **

     **       SUBROUTINE ACC:

     **

     **       THIS ADDS THE MONPAY TO THE ACCPAY AND PRINTS THE SECOND

     **       DETAIL LINE(DET2) AND THE HEADER ON NEW PAGE IF OVERFLOW.

     **       IF OVERFLOW THE FIRST DETAIL LINE IS ALSO PRINTED(DET1)

     **

     ****************************************************************

     CSR         ACC       BEGSR

     C                     Z-ADD2         COUNT

     C           COUNT     DOWLEMONTHS

     C                     ADD  MONPAY    ACCPAY

     C                     ADD  1         COUNT

     C                     EXCPTDET2

     C   OF                EXCPTHEAD

     C   OF                ADD  MONPAY    ACCPAY

     C   OF                EXCPTDET1

     C   OF                ADD  1         COUNT

     C                     SETOF                         OF

     C                     END

     C                     ENDSR

     ****************************************************************

     **

     **       OUTPUT STARTS HERE. ALL OUTPUT IS WRITTEN BY USING EXCPT

     **

     ****************************************************************

     OQSYSPRT E  301           HEAD

     O                                    4 'DATE'

     O                         UDATE Y   13

     O                                   51 'LOAN INSTALLMENT REPORT'

     O                                   75 'PAGE'

     O                         PAGE  Z   80

     O        E 2              HEAD

     O                                   10 'JONAS WIK'

     O        E 1              HEAD

     O                                   12 'REFERENCE'

     O                                   24 'CUSTOMER'

     O                                   43 'LOAN'

     O                                   55 'NUMBER OF'

     O                                   66 'MONTHLY'

     O                                   80 'ACCUMULATED'

     O        E 12             HEAD

     O                                   10 'NUMBER'

     O                                   22 'NAME'

     O                                   44 'AMOUNT'

     O                                   53 'MONTHS'

     O                                   66 'PAYMENT'

     O                                   78 'PAYMENT'

     O        E  1             DET1

     O                         REFNO     10

     O                         CUSNAM    33

     O                                   36 '$'

     O                         LOAN  J   44

     O                         MONTHSZ   52

     O                                   56 '$'

     O                         MONPAYJ   65

     O                                   66 '$'

     O                         ACCPAYJ   80

     O        E  1             DET2

     O                                   56 '$'

     O                         MONPAYJ   65

     O                                   66 '$'

     O                         ACCPAYJ   80

     ****************************************************************

     **

     **             T H E   E N D

     **

     ****************************************************************