Objective

This project was a simple exercise in using control structures, performing calculations, and file (dataset) I/O with the REXX programming language on a z/OS system. It taught me a lot about how different some languages are in regard to fil I/O and just how useful REXX can be.

Source Code

Click here to see the finished source code!

Sample Outputs

Here is a couple of examples for both types of program output

Requirements

For the project itself, the program prompts the TSO user for a dataset name and data type (html or text) that will be allocated using their username as the high level qualifier (HLQ). It will then attempt to allocate the dataset, asking the user to overwrite if it already exists, and ask for the following loan information when successful: Afterwards, after doing a bunch of fun math, the program will populate a table with all sorts of information for each month of the loan like: If the user decided to make extra payments, the output will also tell them how much money they've saved compared to paying only the minimum each month.
Finally, the user will be informed that the amortization was successful, and that's the end! The image below shows what the program looks like running in TSO.

Interactive user run of the TSO amortization REXX program