LOANSMGR for DOS v2.4c by Michael A. Campbell (campbell@metronet.com) Copyright 1986-1994 1.0 Introduction 1.1 Program Description LoansMgr for DOS is a powerful but easy to use loan management program intended for standard compound interest loans. Common examples of such loans are car loans and mortgages. Given any three of the four components of the basic compound interest equation (Loan size, Payment Size, Interest Rate, and Number of Payments), LoansMgr will solve for the remaining one, allowing the user to run an unlimited number of "what if" scenarios. In addition, LoansMgr will generate and maintain amortization schedules, handle variable payment intervals (in units of weeks and months), handle variable interest compounding periods per year, and handle regularly scheduled additional principal payments. LoansMgr also allows all data related to a given loan to be saved in a "loan profile" file, and easily reloaded at a future date. 1.2 System Requirements LoansMgr does extensive double precision floating point math, and runs best on PCs equipped with floating point hardware. However, the distribution file contains executables for both floating point equipped PCs, and those without. See "Installation", below. LoansMgr has only been tested under MS-DOS 5.0, 6.0, and 6.2. No guarantees are made for earlier versions of MS-DOS, or DOS implementations from other vendors. LoansMgr has been tested successfully within a MS-Windows DOS box. 2.0 Acknowledgements I would like to acknowledge the contributions of Philip A. Campbell, for inspiring many of LoansMgr's advanced features, and for acting as beta tester, and to Graeme B. Boyd for 'artistic inspiration'. 3.0 Legal Information 3.1 Introduction PLEASE READ THIS INFORMATION CAREFULLY BEFORE USING THE LOANSMGR SOFTWARE FOR ANY CALCULATIONS. BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS PRESENTED HEREIN. I wrote the first version of LoansMgr in 1985, and have been using it ever since to assist in simple financial decisions, such as what I should be paying for my new car loan, whether I should refinance my mortgage, and so on. I have always found it to be very helpful in arriving at these decisions. However, LoansMgr is not a certified financial program of any sort. I am an engineer, not a financier, and so there is no guarantee that the data LoansMgr generates is unconditionally correct. Please understand that you use LoansMgr at your own risk. Please do not make financial decisions of ANY nature based solely on data generated by LoansMgr. I am not aware of any bugs in LoansMgr's financial calculation software, but that does not mean that there are none there. As a result of this simple observation, what follows is a fair amount of "legal-ese" intended to say, in hopefully proper legal terminology, that I cannot be held liable for any erroneous data that LoansMgr may generate. Please read this information carefully. 3.2 Legal Disclaimer BY USING LOANSMGR, YOU ARE AGREEING TO BE BOUND BY THE TERMS PRESENTED BELOW: You expressly acknowledge and agree that use of the LoansMgr software (hereafter referred to as 'the Software') is at your sole risk. The Software and the related documentation are provided AS IS and without warranty of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Under no circumstances, including negligence, shall Michael Campbell be liable for any incidental, special or consequential damages that result from the use or inability to use the Software or related documentation, even if advised of the possibility of such damages. 4.0 LoansMgr Terminology 4.1 Introduction LoansMgr views a loan as a logically related set of numerous variables, referred to collectively as a "loan profile". This section describes all of the elements of a loan profile, and what each means and is used for. It also describes the concept of saving and reloading loan profiles. 4.2 Basic Loan Parameters The major elements of a loan profile are the four basic components of the compound interest equation: L - The loan size, in dollars (no distinction between $US and $CDN). P - The per period payment size, again in dollars. I - The quoted interest rate, in percentage. N - The number of payment periods over which the loan is amortized. 4.3 Advanced Loan Parameters In addition to the above, LoansMgr includes the following in the loan profile: C - Compounding Periods. This is the number of interest compounding periods per year. Generally, this is 12 for US loans and mortgages, 2 for Canadian mortgages, and 1 for most car loans. PI - Payment Interval, expressed in other months or weeks. This is the units in which the N variable (number of payments) is calibrated. The payment interval can be any of: a) 1.00 month b) 0.50 months c) 0.25 months d) 4.00 weeks e) 2.00 weeks f) 1.00 week APA - Additional Principal Amount, expressed in dollars. This is the amount of any regularly scheduled additional principal payments that may be made on the loan. APP - Additional Principal Period, expressed in number of payment intervals. This is the interval between regularly scheduled additional principle payments. 4.4 Loan Schedule Files LoansMgr will generate an amortization schedule for a given loan profile, which includes one entry for each payment, consisting of: a) Payment number b) Payment date c) Payment size d) Principal portion of the payment e) Interest portion of the payment f) Total principal paid to date g) Total interest paid to date h) Balance after the payment is applied These schedules are generated into a user-specified file, which may then be directly viewed from within LoansMgr, or may be viewed, printed etc., after LoansMgr has been exited. Loan schedule files are standard ASCII text files, and so, may be browsed at any time with your favorite ASCII text viewer, editor, word processor, etc. 4.5 Loan Profile Files LoansMgr will allow you to save all of the data related to a loan in a "loan profile file", which you can then reload at a later date. This allows you to work with a given loan over a long period of time, without having to laboriously re-enter all of the parameters of its profile. Loan Profile Files are binary files, and cannot be meaningfully viewed except via LoansMgr. 5.0 LoansMgr User Interface 5.1 Introduction LoansMgr uses a full screen user interface, consisting of "hot key" driven menus, and "pop up" information windows. LoansMgr does not require or support mouse driven operations. This section describes the two major elements of the user interface: menus and popups. 5.2 Menus 5.2.1 Menu Overview LoansMgr's full screen menus look similar to the text depiction shown below: +---------------------------------------------------------------------+ | Menu Title | +---------------------------------------------------------------------+ | | | | | A - First Selection Description Selection Data (Optional) | | | | B - Second Selection Description Selection Data (Optional) | | | | C - Third Selection Description Selection Data (Optional) | | | | D - Fourth Selection Description Selection Data (Optional) | | | | . . . | | | | . . . | | | | . . . | | | +---------------------------------------------------------------------+ | Command: | +---------------------------------------------------------------------+ | Prompt/Response: | +---------------------------------------------------------------------+ The screen is divided into three major areas: a) The Title Bar b) The Menu Item Area c) The I/O Area The title bar and I/O areas are referred to collectively as the "Menu Outline Area". It will be helpful to remember the names of these areas, as LoansMgr allows you to configure the display colors used in them, via the LOANSMGR.INI file. 5.2.2 Title Bar The Title Bar presents the title of the menu being displayed. 5.2.3 Menu Item Area The User Menu Area presents a set of "hot key" selections, consisting of a key to press to make the selection, a description of the what the selection is for, and optionally, data currently associated with the selection. When the selection key is pressed, it is not echoed to the screen, and LoansMgr takes action on it immediately. This is why it is referred to as a "hot key" menu system. 5.2.4 I/O Area The I/O Area provides an area in which LoansMgr can provide status information, and calculation results, and an area in which the user can enter loan profile data, and file names, as needed. In general, LoansMgr reads user input from the command line, and provides responses to the user on the Prompt/Response line. As the name indicates, LoansMgr may also prompt for more data on this line. 5.3 Pop Up Windows The user menu display areas, and the general I/O area are sufficient for most of the LoansMgr - user interactions. However, on occasion, LoansMgr needs to display a large volume of information (for example, help information, or complete loan profiles). When this type of need arises, LoansMgr presents a pop up window with the required information. The window remains displayed until the users hits any one key, indicating that the information displayed has been "absorbed", and is no longer needed. At that time, the window is removed. The only operations possible on popup windows is to cause them to be displayed, and to remove them by striking a key. Popups cannot be moved, resized, or otherwise manipulated. 6.0 Common Menu Behavior 6.1 Introduction Not suprisingly, all of LoansMgr's menus share some identical behavioral characteristics. This section describes elements that are common to all menus. 6.2 "Hot Key" Operation All of LoansMgr's menus are "hot key" menus. This simply means that when a selection is made, by pressing the single key associated with that selection, LoansMgr does not echo the selection. Instead, it acts on it immediately, and the output resulting from the action taken acts as the "echo" to the key press. 6.3 Redraw Screen In the unlikely event that LoansMgr should mess up the screen display (this is a *bug* if it happens - please let me know!), it can be redrawn by hitting the "`" key, which generally is the key to the left of the "1" key. 6.4 The "<" and ">" Characters LoansMgr has a limited amount of space in which to display large data items, such as filenames. In the event that a filename will not fit in the available display area, LoansMgr will display characters up to the maximum display width available, and then output a "<" character, which indicates that there are undisplayed characters to the left, or a ">" character, which indicates that there are undisplayed characters to the right. 6.5 Esc and F1 All LoansMgr menus have "Quit" and "Help" commands. In the DOS world, the Esc and F1 keys have become defacto standards for these functions. As such, the Esc key may be used in place of the "Q" command, and the F1 key can be used in place of the "H" command. Both variants of each command operate identically. 6.6 Error Feedback LoansMgr reacts to invalid menu selections with a message to that effect, in the response line, and, optionally, an audible beeping sound. 6.7 "Sanity Checking" LoansMgr does not "sanity check" the data you enter on a given menu until you ask it to undertake some operation with that data. At that time, the data is checked, and the operation only undertaken if it is "sensible". So, for example, LoansMgr will happily allow you to enter interest rates greater than 100%, payment values that are greater than the loan value, etc., and will only complain when asked to compute some value using the data. At that time, LoansMgr will present a detailed message, explaining what issue it has detected with the data it is being asked to operate on. There are two exceptions to the above. The first of these is that LoansMgr will reject any numbers which exceed 999999999999.99, as these are clearly not "sane" values for the function that LoansMgr was written to perform. The second is that LoansMgr will reject all negative numbers, as these lie outside the range of meaningful numbers for the function LoansMgr was written to perform. 7.0 Main Menu 7.1 Introduction When LoansMgr is first started, it presents the Main Menu. This section describes all of the Main Menu selections. 7.2 Selections L - Loan Size. This selection brings up the Loan Size Menu, which allows you to compute the size of the loan which results from the P, I, C, and N parameters you enter. P - Payment Size. This selection brings up the Payment Size Menu, which allows you to compute the payment size needed for a loan whose L, I, C, and N parameters you enter. I - Interest Rate. This selection brings up the Interest Rate Menu, which allows you to compute the interest rate for a loan whose L, P, C, and N parameters you enter. N - Number of Payments. This selection brings up the Num Payments Menu, which allows you to calculate the number of payments needed for a loan whose L, P, I, and C parameters you enter. S - Schedule. This selection brings up the Schedule Menu, which allows you to generate loan payment schedule files for loans whose L, P, I, and C parameters you enter. F - File. This selection brings up the proFile Menu, which allows you to view the current loan profile, save it to a file, or load a new profile from a previously saved profile file. A - About LoansMgr. This selection brings up the About Menu, which allows you to view general information about LoansMgr, view an abbreviated version of the legal disclaimers presented above, and review the Shareware Agreement associated with use of the program. Finally, this menu presents information on how to contact the author, should this need arise. H - Help. This selection brings up a popup window containing help for the Main Menu. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! Q - Quit. This selection quits LoansMgr, and returns to DOS. Note that LoansMgr will not prompt you to save the loan profile, if it has changed! 7.3 Notes None 8.0 Loan Size Menu 8.1 Introduction The Loan Size Menu allows you to compute the size of loan that will result from the P, I, C, and N values you enter via this menu, or that this menu inherits from either the loan profile, or the corresponding values entered on another menu. This section describes all of the selections for the Loan Size Menu. 8.2 Selections P - Payment Size. This selection will cause LoansMgr to prompt for the desired payment size. The value entered will be displayed in the User Menu Area data field associated with this selection. I - Interest Rate. This selection will cause LoansMgr to prompt for the desired interest rate. The value entered will be displayed in the User Menu Area data field associated with this selection. C - Compounding Periods. This selection will cause LoansMgr to prompt for the number of interest compounding periods per year. Generally, this is 12 for most US mortgages and loans, 2 for most Canadian mortgages, and 1 for most car loans. N - Number of Payments. This selection will cause LoansMgr to prompt for the desired number of payments. The value entered will be displayed in the User Menu Area data field associated with this selection. S - Solve. This selection will cause LoansMgr to solve for the loan size, and display it on the Response Line. Other menus that require Loan Size as a parameter will inherit the value computed by this menu, as a starting point. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Loan Size Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. All L, P, I, C, and N values entered or computed on this menu will be inherited by all other menus. 8.3 Notes None 9.0 Payment Size Menu 9.1 Introduction The Payment Size Menu allows you to compute the payment size needed for a loan whose L, I, C, and N values you enter via this menu, or that this menu inherits from either the loan profile, or the corresponding values entered on another menu. This section describes all of the selections for the Payment Size Menu. 9.2 Selections L - Loan Size. This selection will cause LoansMgr to prompt for the desired loan size. The value entered will be displayed in the User Menu Area data field associated with this selection. N - Number of Payments. This selection will cause LoansMgr to prompt for the desired number of payments. The value entered will be displayed in the User Menu Area data field associated with this selection. I - Interest Rate. This selection will cause LoansMgr to prompt for the desired interest rate. The value entered will be displayed in the User Menu Area data field associated with this selection. C - Compounding Periods. This selection will cause LoansMgr to prompt for the number of interest compounding periods per year. Generally, this is 12 for most US mortgages and loans, 2 for most Canadian mortgages, and 1 for most car loans. S - Solve. This selection will cause LoansMgr to solve for the payment size, and display it on the Response Line. Other menus that require Payment Size as a parameter will inherit the value computed by this menu, as a starting point. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Payment Size Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. All L, P, I, C, and N values entered or computed on this menu will be inherited by all other menus. 9.3 Notes None 10.0 Interest Rate Menu 10.1 Introduction The Interest Rate Menu allows you to compute the interest rate that is needed for a loan whose L, P, C, and N parameters you supply, or that this menu inherits from either the loan profile, or the corresponding values entered on another menu. This section describes all of the selections for the interest rate menu. 10.2 Selections L - Loan Size. This selection will cause LoansMgr to prompt for the desired loan size. The value entered will be displayed in the User Menu Area data field associated with this selection. P - Payment Size. This selection will cause LoansMgr to prompt for the desired payment size. The value entered will be displayed in the User Menu Area data field associated with this selection. C - Compounding Periods. This selection will cause LoansMgr to prompt for the number of interest compounding periods per year. Generally, this is 12 for most US mortgages and loans, 2 for most Canadian mortgages, and 1 for most car loans. N - Number of Payments. This selection will cause LoansMgr to prompt for the desired number of payments. The value entered will be displayed in the User Menu Area data field associated with this selection. T - Payment Time. This selection will cause LoansMgr to prompt for the interval between payments. This interval may be any of: a) 1.00 Month b) 0.50 Months c) 0.25 Months d) 4.00 Weeks e) 2.00 Weeks f) 1.00 Week If you are feeling lazy, the number followed immediately by the first letter of the unit works as well (ex: "1m" will be interpreted as 1.00 Months). S - Solve. This selection will cause LoansMgr to solve for the interest rate, and display it on the Response Line. Other menus that require Interest Rate as a parameter will inherit the value computed by this menu, as a starting point. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Interest Rate Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. All L, P, I, C, and N values entered or computed on this menu will be inherited by all other menus. 10.3 Notes o The interest rate solution algorithm is knowledgeable about compounding periods, and will display the correct interest rate for the selected number of compounding periods. o Due to the nature of the mathematics involved, it is not possible to directly solve for Interest Rate. Instead, iterative numerical methods must be used to achieve the answer. LoansMgr uses a proprietary iterative algorithm, which resolves the interest rate to 2 significant digits of accuracy. Because the method is iterative, solving for interest rate may cause an observable delay on older, slower machines, especially those without a floating point unit. 11.0 Num Payments Menu 11.1 Introduction The Num Payments Menu allows you to compute the number of payments needed for a loan whose L, P, I, and C values you enter via this menu, or that this menu inherits from either the loan profile, or the corresponding values entered on another menu. The number of payments is displayed, as well as the time in years that this number of payments represents. This menu also allows you to introduce regularly scheduled principal payments, and observe the effect of these on the total number of payments, and the calendar duration, of the loan. Finally, this menu allows you to vary the payment interval, to determine the impact of various payments schemes (1 per month, 2 per month, 1 per 2 weeks, etc.). This section describes all of the selections for the Num Payments Menu. 11.2 Selections L - Loan Size. This selection will cause LoansMgr to prompt for the desired loan size. The value entered will be displayed in the User Menu Area data field associated with this selection. P - Payment Size. This selection will cause LoansMgr to prompt for the desired payment size. The value entered will be displayed in the User Menu Area data field associated with this selection. I - Interest Rate. This selection will cause LoansMgr to prompt for the desired interest rate. The value entered will be displayed in the User Menu Area data field associated with this selection. C - Compounding Periods. This selection will cause LoansMgr to prompt for the number of interest compounding periods per year. Generally, this is 12 for most US mortgages and loans, 2 for most Canadian mortgages, and 1 for most car loans. T - Payment Time. This selection will cause LoansMgr to prompt for the interval between payments. This interval may be any of: a) 1.00 Month b) 0.50 Months c) 0.25 Months d) 4.00 Weeks e) 2.00 Weeks f) 1.00 Week If you are feeling lazy, the number followed immediately by the first letter of the unit works as well (ex: "1m" will be interpreted as 1.00 Months). $ - Additional Principal Amount. This selection will cause LoansMgr to prompt for the amount of the scheduled additional principal payments. See the description of the "#" selection (immediately below) for details on how LoansMgr uses this value. The value entered will be displayed in the User Menu Area data field associated with this selection. # - Additional Principal Period. This selection will cause LoansMgr to prompt for the period between additional principal payments. This period must be expressed in number of payment intervals. The value entered will be displayed in the User Menu Area data field associated with this selection. LoansMgr will then apply the amount specified via the "$" selection against the outstanding balance, as a direct principal injection, every 'n' payments, where 'n' is the number you enter via this selection. S - Solve. This selection will cause LoansMgr to solve for the number of payments, and display this on the Response line. Also displayed on this line is the calendar duration, in years, of the loan. Other menus that require the Number of Payments as a parameter will inherit the value computed by this menu, as a starting point. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Num Payments Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. All L, P, I, C, and N values entered or computed on this menu will be inherited by all other menus. 11.3 Notes None 12.0 Amortization Schedule Menu 12.1 Introduction This menu allows you to generate and view amortization schedule files. The selections in this menu are very similar to those in the Num Payments menu (but will be documented below again, for completeness), with the addition of a selection for entering the Setup Menu, which allows titling of loans, filename selection for schedule files, the starting date of the loan, and the number of lines per page within the file. This section describes all of the selections available from this menu. 12.2 Selections L - Loan Size. This selection will cause LoansMgr to prompt for the desired loan size. The value entered will be displayed in the User Menu Area data field associated with this selection. P - Payment Size. This selection will cause LoansMgr to prompt for the desired payment size. The value entered will be displayed in the User Menu Area data field associated with this selection. I - Interest Rate. This selection will cause LoansMgr to prompt for the desired interest rate. The value entered will be displayed in the User Menu Area data field associated with this selection. C - Compounding Periods. This selection will cause LoansMgr to prompt for the number of interest compounding periods per year. Generally, this is 12 for most US mortgages and loans, 2 for most Canadian mortgages, and 1 for most car loans. T - Payment Time. This selection will cause LoansMgr to prompt for the interval between payments. This interval may be any of: a) 1.00 Month b) 0.50 Months c) 0.25 Months d) 4.00 Weeks e) 2.00 Weeks f) 1.00 Week If you are feeling lazy, the number followed immediately by the first letter of the unit works as well (ex: "1m" will be interpreted as 1.00 Months). $ - Additional Principal Amount. This selection will cause LoansMgr to prompt for the amount of the scheduled additional principal payments. See the description of the "#" selection (immediately below) for details on how LoansMgr uses this value. The value entered will be displayed in the User Menu Area data field associated with this selection. # - Additional Principal Period. This selection will cause LoansMgr to prompt for the period between additional principal payments. This period must be expressed in number of payment intervals. The value entered will be displayed in the User Menu Area data field associated with this selection. LoansMgr will then apply the amount specified via the "$" selection against the outstanding balance, as a direct principal injection, every 'n' payments, where 'n' is the number you enter via this selection. Each such payment shows up as a separate and distinctive entry in the schedule file. F - File Setup. This selection causes LoansMgr to display the Setup Menu, which allows titling of loans, amortization filename selection, starting date selection, and selection of the number of lines per page in the amortization file. S - Schedule. This selection will cause LoansMgr to generate the schedule of payments, and write this to the specified schedule file name. If a file with that name already exists, LoansMgr will prompt regarding overwrite of this file. The generated schedule may then be viewed immediately, via the "V" command (see below), or may be viewed, printed, etc., after LoansMgr has been exited. After the schedule file has been written, LoansMgr generates a popup window containing the payout summary for the loan, showing the total principal paid, the total interest paid, the total cost of the loan, and the number of payments the loan required. Unlike all other popups, this window remains onscreen until one of the parameters of the loan profile are changed, or the Amortization Schedule Menu is exited. V - View Amortization Schedule. This selection will cause LoansMgr to invoke the ASCII file viewer of your choice (usually a text editor) on the generated schedule file, allowing you to view it immediately. To determine the file viewer to use, LoansMgr looks for an environment variable called EDITOR. If found, it invokes the command contained within, with the name of the schedule file appended. For example, if the editor of choice is elvis.exe (the author's personal favorite), the EDITOR variable would be set to "elvis", and LoansMgr would issue the command: "elvis schedule_file_name" in response to a "V" selection. If the EDITOR variable does not exist, LoansMgr defaults to the standard MS-DOS TYPE command. In this case, it alerts the user to this fact, so that they can set the EDITOR variable if they wish. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Schedule Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. All L, P, I, C, and N values entered or computed on this menu will be inherited by all other menus. 12.3 Notes o The L, P, I, and C values entered in this menu may not yield a loan with a whole number of payments. In this case, LoansMgr will round the number of payments UP to the nearest integer value, and adjust the payment size to make up the difference. This creates a loan with a whole number of payments, but will result in a schedule that shows a slightly different payment value than was originally entered. If this happens, it should not be a cause for concern. It is "design intent". o LoansMgr will allow the payment interval to be set in numbers of weeks (0.25, 0.50, and 1.00). However, LoansMgr does not yet know how to translate week numbers into month and year values (the author hopes to add this in a later release), and so, the "Date" field of the schedule file shows only "--- --". Fortunately, every 52 weeks after the first payment is guaranteed to be one calendar year, and so the corresponding schedule file entry is correctly marked. o Schedule files are simple ASCII text files, and may be viewed by any program capable of dealing with such data. o When deciding upon the file viewer of choice for the "V" selection, please be aware that v2.4 of LoansMgr occupies roughly 104K of main memory. o I recommend giving schedule files the three letter extension "sch". Consistent use of this extension has proven to be very beneficial for me. 13.0 Setup Menu 13.1 Introduction This menu allows titling of loans, amortization filename selection, starting date selection, and selection of the number of lines per page in the amortization file. 13.2 Selections N - Name of Loan. This selection causes LoansMgr to prompt for the name of the loan. This is a user supplied string that is printed in the header of the amortization schedule file, allowing users to "title" their amortization schedules with names that are meaningful to them. This lessens reliance on recall of what cryptic 8 letter file names may have stood for. F - Filename. This selection will cause LoansMgr to prompt for the name of the file to which the generated amortization schedule will be written. The filename entered is displayed (up to the maximum allowable display width) in the User Menu Area data field associated with this selection. D - Date of First Payment. This selection will cause LoansMgr to prompt for the starting date of the first payment of the loan. As all entries in the generated schedule are stamped with the date, this information is critical. Dates can be entered only in the form "MMM YY", where "MMM" is the expected "Jan" through "Dec", and "YY" is any year from (19)70 to (20)29. Only the last two digits will be accepted. For example, Dec 1993 would be entered as "Dec 93". L - Lines Per Page. This selection will cause LoansMgr to prompt for the number of lines per page in the amortization schedule file. This allows users to configure the file for the number of lines their printer puts out on each page. LoansMgr emits formfeeds to start each new page. H - Help. This selection brings up a popup window containing help for the Setup Menu. Q - Quit. This selection quits this level, and returns to the Amortization Schedule Menu. 14.0 Profile Menu 14.1 Introduction This menu allows you to view the current loan profile, write it to the file of your choice, or reload a previously written profile file. This allows you to save all the parameters relevant to a given loan, and return to them at a later date, without having to laboriously re-enter them. This section details all of the selections available from the Profile Menu. 14.2 Selections F - Filename. This selection will cause LoansMgr to prompt for the name of the file name the loan profile will be written to, or read from. The filename entered is displayed (up to the maximum allowable display width) in the User Menu Area data field associated with this selection. C - Clear. This selection causes LoansMgr to clear the current loan profile to its default (start up) values. This also has the effect of removing the current profile name from the title bars of all menus (see the Notes section, below, for more details on this). R - Read. This selection will cause LoansMgr to attempt to read a loan profile from the filename supplied via the "F" selection. If the file does not exist, or is not a loan profile, Loansmgr will issue an error to that effect. W - Write. This selection will cause LoansMgr to write the current loan profile to the filename indicated by the "F" selection. If a file with that name already exists, LoansMgr will prompt regarding overwrite of this file. V - View. This selection will cause LoansMgr to present a popup window containing all data that is part of the current loan profile. This can be used to verify a profile prior to writing, or to review a profile immediately after reading, to ensure that the correct profile has been loaded. D - DOS Shell. This selections allows you to shell out to DOS. In order for this to work, the COMSPEC environment variable must be set. LoansMgr will inform you of this, if it is not! H - Help. This selection brings up a popup window containing help for the Profile Menu. Q - Quit. This selection quits this menu, and returns to the Main Menu. 14.3 Notes o Loan profiles are small binary files, usually no larger than 1K bytes. o I recommend giving profile files the three letter extension "prf". Consistent use of this convention has proven to be very helpful to me. Users should note, however, that the dBase program uses the same extension for "printer resource files", and should be careful to keep their loan profile files in a different directory from their dBase files. o The title bar of each menu shows the name of the currently loaded profile file, in parenthesis, as part of the menu title bar. If no profile has been loaded or saved, this shows as "()". o Loan profile files can be used to conserve disk space in systems that are low on this resource. If you have generated a large schedule file (example, a 30 year mortgage - 360 entries), and wish to recover the disk space it occupies, but not lose the data, you can write the current profile out to a file. As mentioned above, loan profiles are small binary files, and yet contain all the data necessary to allow LoansMgr to regenerate the schedule file at any time. So, instead of keeping the large schedule files on disk, keep only the profile file, and regenerate the schedule whenever you need to view it. 15.0 About LoansMgr Menu 15.1 Introduction This menu provides the user with a variety of information about the LoansMgr program. The four categories of information provided are: a) General Program Information - typical "about" window stuff. b) Legal Information - important legal disclaimers that should be read and understood prior to using LoansMgr. c) Shareware Information - information on your obligations as a user of LoansMgr. d) Contacting The Author - information on how to contact the author for any reason. This section describes all of the selections available from the About LoansMgr menu. 15.2 Selections G - General Information. This selection causes LoansMgr to present a popup window with a variety of general "about" information for LoansMgr, including its version number, author name, program description, and limited acknowledgements. The window remains displayed until you hit any single key, at which time it is removed. L - Legal Disclaimers. This selection will cause LoansMgr to present a popup window containing, essentially, a disclaimer of all responsibility on the author's part for your use of LoansMgr. This same information (and more!) is presented in the opening sections of this documentation, and should be read carefully and understood, prior to use of LoansMgr. The window remains displayed until you hit any single key, at which time it is removed. S - Shareware Agreement. This selection causes LoansMgr to present a popup window containing information regarding the shareware status of LoansMgr, and your obligations regarding registration of the software if you decide to keep it on your system. This information is also presented below, in the "Shareware Agreement" section of this documentation. The window remains displayed until you hit any single key, at which time it is removed. C - Contacting The Author. This selection causes Loansmgr to present a popup window containing information on how to reach the author via both electronic and surface mail. The window remains displayed until you hit any single key, at which time it is removed. Q - Quit. This selection quits this menu, and returns to the Main Menu. 16.0 Installation Installing LoansMgr is easy. Start by unzipping the distribution file. In it, you will find two executables: a) lm_fpu.exe - this version assumes the presence of a floating point unit, and will not operate on a PC that does not have one. If run on a machine without floating point hardware, it will freeze the PC, and a restart will be required to recover it. b) lm_emu.exe - this version makes use of emulated floating point. The executable is larger, and the program is slower, as a result of the emulation, but this version should run on any PC. Copy one of these two (dependant on your system's hardware) to some directory on your PATH, and rename it to "loansmgr.exe". Copy the LOANSMGR.INI file to one of (a) the same directory that the EXE file was placed in, (b) the HOME directory (discussed below, in "Configuration"), or (c) the directory from which you plan to invoke LoansMgr. If you have a directory in which you gather all of your shareware documentation, copy the README.1ST and LOANSMGR.TXT files to that directory. Finally, it is advised that you set up an environment variable named "EDITOR", which contains the name of an ASCII text editor capable of displaying a file. If this variable does not exist, LoansMgr uses the internal DOS TYPE command, which is a less than graceful file viewer. MS-DOS systems, from Version 5.0 up, come with a credible full screen editor called EDIT.COM. This editor can be used for this purpose if you have no other preference. That's it! 17.0 Configuration 17.1 Introduction LoansMgr can be configured in two ways: 1) Environment variables 2) The LOANSMGR.INI file This section discusses how to use these two methods to configure LoansMgr. 17.2 Environment Variables LoansMgr uses three environment variables, and it is recommended that all be set before running LoansMgr for the first time. The variables are: COMSPEC - Like all other DOS programs, LoansMgr uses this variable to invoke a secondary DOS shell, when executing its DOS SHELL command (available from most menus). If this variable is not set, this command will fail. EDITOR - This variable is used by the Amortization Schedule menu to determine the program to invoke to view the schedule file. If this variable is not set, LoansMgr defaults to the internal DOS TYPE command, which is a less than graceful viewer. HOME - This variable is used to specify a "home" directory, which is generally the one in which all ".ini" type files reside. If this variable is set, LoansMgr will search here for its LOANSMGR.INI file (see below for more details). Users with a unix background will recognize the unix influence in the existance of EDITOR and HOME variables. It will come as no surprise that LoansMgr started life as a unix application. 17.3 LOANSMGR.INI File 17.3.1 Introduction This file allows users to configure the colors that will be used by LoansMgr. Colors can be specified for the Menu Outline lines, the Menu Item lines, the popup windows, and the screen border. This file is a sequence of comment lines and command lines. Comment lines are any lines beginning with the semicolon character ";", or blank lines. Command lines have the form: area_name color where "area_name" is the name of a portion of the screen, and "color" is the color you want to set that area to. 17.3.2 Area Names The valid area names are: menu_outline_fg - The foreground (text) color for the outline lines menu_outline_bg - The background color for the outline lines menu_item_fg - The foreground (text) color for the Menu Item lines menu_item_bg - The background color for the Menu Item lines popup_fg - The foreground (text) color for the popup windows popup_bg - The background color for the popup windows border_color - The color of the screen border These names *are* case sensitive, and must be in lower case. 17.3.3 Color Names The valid foreground colors are: BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE The valid background colors are: BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY Like the area names, these names are also case sensitive, and must be entered in upper case. You may specify as many or as few of these commands in the LOANSMGR.INI file as you wish, or you may omit this file altogether, in which case LoansMgr uses a default set of colors. If LoansMgr detects any unknown area names or color names, it discards all user color selections, and returns to its default color set. An error message is presented in the Main Menu upon completion of initialization. 17.3.4 How LoansMgr Looks for LOANSMGR.INI LoansMgr follows a simple algorithm for finding the LOANSMGR.INI file. It searches the following directories, in the following order: a) Current Directory - This is the directory the user was in when LoansMgr was invoked. b) Start Up Directory - This is the directory the LoansMgr executable was executed from. c) HOME Directory - This is the directory indicated by the HOME environment variable. If LOANSMGR.INI cannot be found in any of these locations, LoansMgr assumes it does not exist, and uses its internal default colors. 17.3.5 Sample LOANSMGR.INI File A sample LOANSMGR.INI file is included in the LoansMgr distribution zip file, and is duplicated below, as an example: ; ------------------------------------------------------------------------- ; LoansMgr v2.4 Initialization File ; ------------------------------------------------------------------------- ; Note that all entries *are* case sensitive ; Set the color of the menu outline lines menu_outline_fg BLACK menu_outline_bg RED ; Set the color of the LoansMgr menu items menu_item_fg BLACK menu_item_bg CYAN ; Set the colors for the pop up help and review windows popup_fg WHITE popup_bg BLUE ; Set up the screen border color border_color BLUE ; -------------------------------------------------------------------- ; End of LoansMgr v2.4 Initialization File ; -------------------------------------------------------------------- 18.0 Command Line Invocation The full form of the LoansMgr command line is: loansmgr [profile_file_name] where the "[" and "]" characters indicate that the profile file name is optional. These two characters are not entered on the command line itself. If a profile file name is supplied, it will be read and loaded in the same manner as if it had been done via the Profile Menu. If no profile is specified, LoansMgr uses a default nil profile. Example: To invoke LoansMgr using loan profile file myprof.prf, enter: loansmgr myprof.prf Example: To invoke LoansMgr with no profile specified, enter: loansmgr 19.0 Shareware Agreement LoansMgr is inexpensive shareware. You may examine it for up to 30 days at no expense. If you like LoansMgr, and decide to keep it, you are obligated to send $US 10.00 or $CDN 15.00, to: LoansMgr Registration, c/o Michael Campbell, 7021 Stoddard Lane, Plano, Texas, USA 75025 A registration form is provided with the LoansMgr zip file. 20.0 Licensing Agreement The software accompanying this document (the Software) and the related documentation are licensed to you by Michael Campbell (the author), at the above stated fees. Although the Software is shareware, it is not public domain. The software contains copyrighted material and other proprietary material. In order to protect them, and except as permitted by applicable legislation, you may not decompile, reverse-engineer, disassemble or otherwise reduce the Software to a human perceivable form. You may not sell the Software, and you may not bundle the Software with other commercial products, without the author's express written permission. You may, however, include the Software on a CD-ROM or floppy collection, provided the original package is included in its entirety. 21.0 Contacting The Author If you should wish to reach me for any reason, including, but not limited to: a) Bug reports b) Requests for new features c) Request for modifications/additions to existing features d) Gratuitous praise! :-) I can be reached via Internet email at: campbell@metronet.com or via good old surface mail, at: Michael Campbell, 7021 Stoddard Lane, Plano, Tx. USA 75025