/* */ arg principal interest years '(' options If principal = '?' Then Do Say 'To use, say AMORT principal interest years' Exit 0 End If options = 'DEBUG' Then Trace 'I' If principal = '' Then principal = 100000 If interest = '' Then interest = 9 If years = '' Then years = 15 month = 'JAN' year = 1990 months = 'JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC JAN' payment_number = 0 interest_for_year = 0 years_this_page = 0 'EXEC QPAYMENT' principal interest years '(STACK' pull payment interest = interest/100 original_principal = principal Do years Call Do_A_Year payment End Exit Do_A_Year: Arg monthly_payment Do 12 payment_number = payment_number + 1 If payment_number = 1 | month = 'JAN' & years_this_page = 4 Then Do Say '1PAYMENT INTEREST PRINCIPAL NEW YEAR''S' Say ' NUMBER MONTH YEAR PAYMENT PAYMENT PRINCIPAL INTEREST' Say ' ------- ----- ---- -------- --------- --------- --------' years_this_page = 0 End i = principal * interest / 12 ii = format(i,,2) If ii - i = .005 Then interest_payment = ii - .01 Else interest_payment = ii interest_for_year = interest_for_year + interest_payment If monthly_payment > interest_payment + principal Then principal_payment = principal Else principal_payment = monthly_payment - interest_payment principal = principal - principal_payment If month = 'JAN' | month = 'DEC' | payment_number = 1 , Then pm = month ' ' year Else pm = month ' ' line = right(payment_number,5) ' ' pm right(interest_payment,9) , right(principal_payment,10) right(principal,10) If payment_number = 4 Then line = line , ' $' || right(original_principal % 1000,3) || , ',' || right(original_principal//1000,3,'0')'.00' If payment_number = 5 Then line = line , ' at' format(interest*100,,3)'% interest' If payment_number = 6 Then line = line , ' for' right(years,2) 'years' If month = 'DEC' | principal = 0 Then Do Say line right(interest_for_year,9) Say '' interest_for_year = 0 End Else Say line month = word(months,find(months,month)+1) If month = 'JAN' Then Do year = year + 1 years_this_page = years_this_page + 1 End If principal = 0 Then Exit End Return