Mortgage calculator. Interest rates are down. Hurry, hurry. get that mortgage re-financed NOW. This prog. helps you to see what a mortgage will cost you, or what effect changes to your payments etc. will have on your total outlay. It assumes a no frills, Standard Repayment mortgage, in which the fixed rate interest on the balance of the Principal is charged calendar monthly at 1/12th of the annual interest rate. If you go back to your old 11+ school notes on geometric progressions (Editor: for those who are a little younger, try your GCSE Maths notes) you will see that all you have to do is to work out the value of the loan at compound interest over 'n' years and equate it to the value of a sinking fund accumulation over the same period. Then a bit of algebra and you've sussed it! Actually we use the formula to get the monthly payments but, hail to the computer, we then go through it tediously month by month, rounding the pennies up and down to produce a Summmary or a Detailed Listing. This way it's never more than a few pence out from the Mortgage Company, provided they are charging to the same criteria. If they're not it'll cost you more, so put the boot in..but check for any re-negotiation charges first. Output: The Summary and Detailed Listing can be cycled repeatedly (so you can change your monthly premiums), the original mortgage Principal and annual interest rate being retained. You can ask for the Closing Balance at a specified date (make a note of it), select New Mortgage at the prompt and run it again with a new Principal after, say, paying off a lump sum etc. etc. The Cost Factor is simply the ratio of your total outlay to the original Mortgage Principal Note: Try this. RUN the prog from scratch without changing the monthly premiums at the prompt. Select Repeat at the next prompt but now type in a 'new' monthly premium with exactly the same value as the first run. You will now see a difference in the final month's due payment and/or the final date. Why? Well if you haven't input the monthly premiums yourself (two decimal places implicit) on the first run, then the prog. uses its own calc and works it out to umpteen places to correspond exactly with the mortgage period, then uses this value throughout the detail calcs but only shows you two decimals. Geometric progressions are sensitive to the accuracy used particularly over longer time periods and you can expect some (small) difference from the mortgagee's fingers and toes figures. The column 'Mar' shows you what the Mortgage Co. (ie the mortgagee) gets out of it, in case you fancy the job yourself. They re-invest your monthly payments as they get them, assumed at the same monthly compound interest rate they charge you, and it grows and grows into the Mortgagee's accrued return, Mar. That's why they sometimes add a penalty charge if you make a late payment because they lose a whole month's interest on it! However they do have to pay interest on the money they borrowed to lend to you - tough. So they don't really end up with all that dosh. You work it out. Joker Joker by Steven Flintham Joker is a simple program which displays jokes at random from a disk-based data file. The first version was written in October 1991 as my first multitasking Archimedes program. I recently rewrote the Archimedes version and decided to convert it to the 8-bit BBC series at the same time. The joke files on BBC version 1.00 and Archimedes version 2.00 are identical - BBC version 1.10 has a few extra jokes added. When run, a "title" screen will appear and there will be a relatively short delay while the computer scans through the joke file. You will then be prompted to press SPACE to continue, at which point a joke will be displayed. Pressing SPACE after that either displays the rest of the joke (if it doesn't all fit on the screen at once) or displays the next joke. The jokes in the file are marked as used after being displayed to prevent repetition, so the disk must be left in the drive and must not be write protected during use. Pressing ESCAPE at almost any time will close the joke file and quit the program. When all the jokes have been seen, there will be a short delay while they are all marked as unused again and they will begin to repeat - this is, obviously, unavoidable. Repetition between resets is, however, avoided. Modifying the joke file If you don't like the jokes currently used by the program or you want to add more, you can edit the file "Jokes". Each joke begins on a new line with |$ or |^ (I recommend you use the former, because although BBC version 1.10 ignores these characters, this provides maximum compatibility with other versions) and then takes the form of straight text with RETURNs ONLY where a new line is required. Joker automatically prevents words being split at line ends. The end of the joke is indicated by the |^ or |$ of the next joke, or by a ^ on its own line if there are no more jokes. Examining the existing file should make the format clear if this is incomprehensible! After modifying the joke file, you should *Delete JokeInd and then run Joker. This will recreate the JokeInd file - this can take some time, but only has to be done when the joke file has been changed. Copyright and distribution The program code for Joker 1.10 is freeware, and may be copied freely provided no profit is made in the process and that all the files remain unchanged. However, it remains (C) Steven Flintham 1993. The joke file is, of course, exempt from this copyright. Nevertheless, the program code may not be distributed with a changed joke file (to prevent confusion between versions and to avoid me being held responsible for people taking offense at jokes added by someone else!) If you want, you can distribute changed joke files separately, as long as they are accompanied by a documentation file stating that you are the "author" of these files. Credits I would like to thank Chris Richardson for his suggestions about version 1.00, which have been implemented in version 1.10. Thanks to the use of a separate index file, it no longer takes a week or two to load. Disclaimer Joker is not guaranteed suitable for any particular purpose and the author cannot be held responsible for any damage caused to software or hardware through the use of this application, nor for any damage caused as a result of software or hardware damage. If you discover any problems, feel free to write to me at the address below, but it cannot be guaranteed that any problems will be corrected. Contacting me If you have any jokes you would like me to consider adding to the joke file in later versions, please send them to me. A letter will do - no need for a disk, but if you do want to send one for some reason, please note that I can only handle the following formats: 40 track single sided DFS or 40 track single sided ADFS ('S') for 5.25 inch 80 track double sided ADFS ('L') for 3.5 inch Please send an SAE if you want your disk back. My address for problems and jokes is: Steven Flintham Publicity If you're a keen BBC user, why not join 8-bit Software, a disk-based magazine & user group. For more information, write to: 8-bit Software 1 Oakwood Drive Heaton Bolton BL1 5EE enclosing an SAE. Alternatively, send a blank disk in any of the following formats, either 3.5" or 5.25": 80 track double sided DFS 80 track double sided ADFS ('L') along with a 50p coin for a copy of the latest edition. Any 8BS members reading this can contact me via 8BS, user ID 15A. Banners Banners Banners allows messages to be printed horizontally or vertically down sheets of continuous listing paper. These banners can then be hung horizontally with the sprocket holes running left to right if not removed or vertically with the sprocket holes running top to bottom. Any characters can be incorporated in a banner, the program reads the BBC's character set when run and uses this for each character. When a banner is printed, a vertical and horizontal multiplier can be set, these allow each character to be increased in size up to a factor of ten. The best size for the characters will depend on what the banner is to be used for, but I usually set the vertical multiplier slightly larger than the horizontal to prevent the characters looking "fat". For simplicity the program is menu driven. There are only 6 options (including quit) displayed. It is possible to enter operating system commands from the menu. The options available are: Save and Load - these allow the current settings to be saved to disk for future use. If you are using a tape system you will have to remove the section in save which looks for any file which may have the same name as the one you have specified. Change Settings - the settings which this allows access to are at the heart of the program. The horizontal and vertical multipliers have already been described. The left, top and bottom gaps allow space to be left on the left of each character (thus allowing characters to be in the centre of a sheet), and blank lines to be left above or below each letter, these allow for each letter to be printed on separate sheets of paper. Normally, when printing, each letter is made of Xs, but this can be changed, some characters are more suitable for use than others, e.g. * can be used effectively as can O but - is less effective. Likewise a blank (space) is usually used for the background but this can be changed. Finally line spacing can be set. This allows the space between each line of characters making up a letter to be varied. The line spacing is descibed as a fraction of an inch, n/216th of an inch. This is normally set to 36, the default setting on most printers. By increasing this value, letters become more spaced out and by reducing it they become more compact. This may necessitate some changes in the lines at the top and bottom of each letter. Message - this allows three messages to be specified. The main message, which will be printed out in large letters, a pre message, which is printed before the main message, and a post message which is printed at the end of the main message. Print - this allows the message (plus pre and post messages) to be printed out. The option can be selected and used without the printer being switched on so some idea of the end result will appear. When entering data, if return is pressed without anything being entered, then the current setting will be left the same. By altering settings between printing letters of the same word various effects can be gained, e.g. letters which get smaller (or larger) as read. As it stands Banners is set to use an Epson-standed dot matrix printer, but it is in no way restricted to this. The program should run equally well (if not better) on a daisy wheel. The program only uses two special control codes, the code for Escape (which is normally standard anyway), and the code for n/216 line feed. These are both set by the procedure epson_codes. Once these values are changed, the program should run unchanged on any printer.