USE CURSOR KEYS TO SCROLL TEXT. USE CURSOR KEYS TO SCROLL TEXT. 8-Bit Software 8-Bit Software Issue 40 Program Documentation. Issue 40 Program Documentation. Spreadsheet Spreadsheet This info message from Brian assumes that you are already familiar with the principles of using a spreadsheet. If you have not used a spreadsheet before, you may have difficulty in using the program without first reading a book on the subject. To: 999 (all members) From: K6N (Brian Raw) Subject: Spreadsheet info Here's another program that originated on my electron. At the time I lacked decent software so set about writing this. Several jars of coffee later I ended up with a spreadsheet which loaded reasonably quickly from tape and does most of the essentials of commercial software. see FIL_STD On running, you are initially given the opportunity to set decimal places displayed and toggle between row/column column/row calculation. Additional features :- = goto box (col,line) ' fill box with next character using this instead of full strings for underlines etc. saves memory home i.e goto box A1 Backslash Commands :- Press backslash (next to cursor left key). Then: A ..... recalculate B ..... blank current or range C ..... copy A1:B1:C1 copies A1 into B1 to C1 E ..... edit current box F ..... toggles formula/result screen note input only into formula screen L ..... load file R ..... reset/clear spread sheet S ..... save file the two commands marked with allow the escape key to free the cursor to select a range of boxes press enter to assign the current cursor position, after the command has been carried out, the cursor returns to the box at which escape was pressed. ================================= One negative is that no constants are allowed within a formula, instead they must be put elsewhere in a data box. However since the calculations are in basic, someone may wish to alter this section to allow for constants. Be careful though not to overwrite the machine code which starts at &2420. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, UGLY Poem. UGLY Poem. To: 999 (all members) From: 3WU (Fred Price) Subject: Poetry And People ? It has been a nice change to see someone else giving us a laugh with the poems about the ladies then see the comeback with the one about the men. So in reply to both of them here's one that mainly mentions the ladies, but it also can apply to the men as well. So set the printer up, center it and stand by for UGLY. I think I first saw this one in the Net awhile ago from which I borrowed it. A few weeks ago I sent it in to the Sunday Post in answer to an article. They published it and then spoilt it by printing only part of it. So here it is in full, and it's a big thank you to the unknown author. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Change Change To: 999 (all members) From: K6Q (Leslie Roberts) Subject: Relocating machine code If you regularly use machine code programs, occasionally you might wish to run a piece of code at a different address from the one for which it was written. If you have the source code handy there is usually no problem, simply alter the assembly address and re-run it. But if the source code is not available, some of the addresses in the code might have to be painstakingly altered by hand - a process not to be undertaken lightly. The Basic/Assembly language program 'CHANGE' will do this for you automatically. Simply load CHANGE as you would a normal Basic program, and also *LOAD your machine code program into RAM. The best place for the machine code is just below HIMEM - HIMEM can then be lowered to protect your code. On running CHANGE you will be asked several questions:- Firstly the starting and finishing locations of where you actually loaded the code; then the starting location from where the code would normally be run (if different enter the correct address, otherwise give the same answer as to the first question). Finally the new starting location where you would like the code to run from. When your code has been altered you will be told how many addresses were changed; if the number is zero something has possibly gone wrong. *LOAD your m/c program again and try once more making certain that you enter the correct details, all should be well. Please remember that CHANGE only changes the addresses. It doesn't physically move your program. Your code will have to be *SAVEd and reloaded at the new address. Your program should be renamed after saving, or enter the filename instead of the name 'XXXX'. The *SAVE line assumes that the execution address is the same as the load address; if this is not so, enter the 'new' execution address in place of the third group of figures in the line. As it stands the program will deal with code written for the 6502 CPU (Electron & BBC 'A' and 'B'). If you wish to change a program written for the 6512 CPU (i.e. one specifically written to run on a B+ or a Master), add a REM to the start of line 220, and remove the one from the beginning of line 230. Using CHANGE you might even be able to alter a piece of code to run in Sideways RAM, provided you can write a suitable ROM Header for it. As is usual with utilities of this type, embedded text (messages to be printed on the screen) within the machine code can become corrupted, as the utility fails to recognise it as text and treats it as program instructions. Provided you know what the text should say,the corruption can be corrected by employing a good memory-editor after using CHANGE. If the text is contained in one block at the end of the code (as often happens) setting the finishing address, in answer to question 2, to just before the text can often prevent the corruption - but be careful to *SAVE all your code including the text. Due to the variable nature of machine code programs CHANGE must be considered as experimental, and might not work correctly with some code. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, DOMINOES DOMINOES From: K8F (Stuart Angell) Subject: Dominoes Program The DOMINOES program was written some time ago and is based on an old arcade game that I remembered playing. The game is a two player game the idea being to set up a trail of dominoes on the screen without bumping into anything. The first player who does crash will have all his/her doms fall down and the score is awarded to the other player. The game is best played with twin joysticks but has been modified for keyboard use as well. The program uses mode 1 so it relocates initially to be loaded from &1200.If this won't fit in your Beeb then use a load and relocate routine that suits your memory space. There is a Known Bug in the program that creates some interesting effects when the Dominoes collapse...see if you can solve it! EDITOR..... The collapsing dominoes sometimes follow the wrong route. Also, if you press A and then at the same time press Z, the dominoes stop moving. Can anone solve these bugs as my kids and I like playing this one? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Split And Join Files. Split And Join Files. From: 2J3 (Chris Richardson) These two programs were written by myself to firstly split up the 8BS catalogue text for editing in EDIT and then to re-join the split files into one again. They work very quickly indeed, almost instantaneously in CPFS using the 512 board. A little more slowly in ADFS, and more slowly still in DFS. The two programs are self explanatory I hope. To split a file, CHAIN "Split". You will be shown what is on the disc. Enter the name of the file to be split up. Enter the name for the parts that the file will be split up into. The program will add the number 1 to the name of the first part, the number 2 to the second, and so on. It is therefore advisable to use a short name. No longer than 5 letters in DFS. Users without shadow modes will notice "rubbish" on the screen as the program does its stuff. This is perfectly normal. To re-join the split files, CHAIN"Join". You will be asked for the finished filename, then for the name of the split parts (do not include the number that was added by the program "Split"). Then enter the number of parts to be joined. Again, users without shadow modes will notice "rubbish" on the screen as the program works, this is perfectly normal. When I first wrote this version of "Split", the program cut the file into chunks of &5000. This worked fine for the catalogue. However, recently I was splitting up huge text files from the Net, the arbitrary end point caused lines of text to be cut up at the end and beginning of the chunks. I therefore added a bit to the program that will split the file at the nearest return character after &5000 (in fact VDU 10 or VDU 13). The program assumes that there is a return character at the end of each line (no line is longer than 80 characters). If a return character is not encountered by 80 characters, then the file is split at that point anyway. If lines are longer than 80, then change the variable D% in line 430 of "Split" from 80 to whatever you fancy. If you want chunks smaller than &5000, change the variable H% in line 250 of "Split" from &5000 to a smaller number. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, To: 999 (all members) From: K2K (Peter Davy) Subject: LOTTERY SIMULATION PROGRAM Lotter5 Seeing the two lottery based programs in Issue 39 has prompted me to get cracking with an idea that was running through my mind with the hope that it could be in Issue 40. What I have produced is a program which is used after the draw has been made to see whether the computer, using a six digit number provided by the user to seed its random number generator, could have produced six numbers giving a worthwhile win. The user is first asked to enter the six numbers selected by the machine in the Saturday draw and the bonus number. Although the program asks for the six to be in numerical order, it will work just as well with the six in any order. Next the user is asked to enter a six digit seed number. Six digits enables birth dates to be used. Unlike what happens in J Davis's program in Issue 39, in my program a given seed will always give the same sequence of random numbers. The computer repeatedly generates sets of six random numbers, each set being sent to the screen along with an assessment of which prize, if any, has been won. Only winning lines are sent to the printer. My Master-128 generates about 140 sets of six figures per minute. If you run the program for a few hours you might be upset by the quantities of paper and ink used for recording the match3 wins. A facility to not send match3 wins to the printer is provided. My hope is that members will write in to 8-BS if they "win" a worthwhile prize using their own seed and an actual draw's numbers. My own achievements to date have been dismal. I have not had anything better than a match5 prize which I understand will usually be in the `1000 to `1500 range. I am not trying to make out that `1000 means nothing to me! It's just that the match5 wins have only happened after enormous numbers of entries at a pound a time. (See details of two runs below.) Draw on 7 Jan 1995: 2 5 21 22 25 32 and bonus 46. Seed 140428 291126 _________________________________ no prize 135165 135226 match3 prize 2488 2439 match4 prize 137 131 match5 prize 1 1 match5+ prize 0 0 jackpot 0 0 TOTAL 137791 137797 In the first column the match5 win was with the 105353rd set of figures! Success came sooner on the second run, on the 75724th! I am not as patient as these figures seem to suggest. These runs were made on my A-3000 which is more than 5 times as fast as the M-128 i.e. 750 sets of six figures per minute. If running this program doesn't put you off entering the lottery with real money, nothing will! ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, PRESS BREAK