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
<copy> home i.e goto box A1
Backslash Commands :-
Press backslash (next to cursor left
key). Then:
A ..... recalculate
B ..... blank current or range <esc>
C ..... copy A1:B1:C1 <esc>
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 <esc>
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.
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.
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.
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?
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