Edited by
C.J.Richardson.
Welcome to 8BS issue 28 which is again
packed to overflowing with all sorts of
text articles and software.
What must have struck you immediately
is the brilliant new menu system. This
has been totally re-written by Steven
Flintham who very kindly (and amazingly
rapidly) re-worked the menu for us. He
has left in all the features of the old
system so all you have to do is press
f0 to find out how to access them.
Please examine the structure of the
menu program and compare it with my
higgledy piggledy botch on issue 27.
Please don't credit Steven with the
choice of colour for the menu. His
program allows for a wide choice of
varied colour and my first few attempts
may be a bit gory. It doesn't help when
you are colour blind.
Sadly (I think) space precludes my
usual waffle file this issue, so you
will find my comments lurking around
the odd spare line here and there
instead.
Before continuing, two important
points:
1. How to submit Text The following guidelines have been laid
down by Daniel Shimmin. I repeat them
for you:
To make my job easier, please send all
text messages to me under the following
filenames:
999 Messages/info/adverts/questions
for all members
ARTICLE Text for the mag
ART2 Further text for the mag
COMMENT Comments on software etc.
DOCUMEN Textfile for the mag containing
info on a program submitted
DOCU2 Further textfiles of info
MESSAGE A message to me specifically
!<ID> Private message
If there is more than one message in
999 or COMMENT, join all the files
together and separate them clearly.
Private messages will be sent only to
the member with this ID. Do not send
private message unless the message is
actually private. Otherwise everyone
else may miss out.
PLEASE QUOTE YOUR USER ID IN ALL
CORRESPONDANCE!
2. is being edited by MYSELF
So send off your submissions, discs
and 50p's to:
The deadline for issue 29 is August 16.
The issue date is August 25th (ish).
You will notice that this is a very
slightly reduced period between issues.
The reason for this is the fact that as
I write this, on 21.5.93, issue 28 is
almost full, there is still a month to
the deadline! So if your submission is
not on this issue, fear not, it is
already on issue 29!
In two parts. The part you are reading
now is section 1. Select section 2 by
pressing BREAK now. Or type *thi2 from
Basic. When using the mode converter
you will be asked whether you want part
1 or part 2.
An arena for you to display your
eloquence. Come on, let's have some
controversy!
In two parts.
From other members and myself.
Comments on programs.
Gleaned from questionnaires completed
by members.
Yes, I know, most of you have sent in
questionnaires, but one or two could do
with updating and there are some
members that seem to have slipped
through the net.
YJ2 (Andrew Snodgrass) must have burnt
a few gallons of midnight oil compiling
this alphabetical list of everything
that has ever appeared in 8Bit software
up to issue 27.
YJ2 has also sent this, a bit of
information on how to use the above
catalogue plus more information about
previous 8BS issues.
483 (Daniel Shimmin), now he is taking
it easy (joke Daniel), has found a bit
of spare time to write this article.
Just the sort of thing that everyone
seems to have been asking for.
27N (John Ilsley) has been the most
vocal member (in the past) regarding
the quantity of text issue. The issue
itself caused a good bit of discussion.
Now he apparently contradicts himself
with a short series of large articles
on electronics. This first part covers
the basics. Equipment, components and a
foretaste of future articles. I have
recently ventured in to the highly
dubious (sometimes hairy) art of poking
bits of wire into my computer and
waiting for the fizzle, coaxed by John.
Now it's your turn.
John has sent two AMX pictures to go
with this article. I have written a
program which will read these in for
you. It is a bit slow but does the job.
Select AMXprt from the utilities menu.
By Mick Needham.
By: 3PM (DP-J)
Use: Random numbers
Program name: Ftbl
Associated program/file/s: None
Language: Basic
General info: Text by 3PM
Ftblpls Issue 26 program by Roy Dickens
for anyone interested in the algorithm
he used. It concerns the bit of Roy's
program that generates random numbers
and prevents duplicated numbers
appearing in the output. As a new
number is generated a nested loop is
employed to look at all the previous
numbers to see if a duplicate has
occurred. Working through the loops on
paper shows that its not quite as
simple as it looks, so the demo
confirms that bit for you. But you
still need to be interested enough to
analyse it, otherwise don't bother.
In related problems of selecting,
shuffling, sorting, combining etc it is
often necessary to ensure that memory
and speed are not inefficiently used.
In Roy's case of selecting about 11
from 58 items it's not important so
I've simply used his algorithm out of
interest in the general approach to
these kind of problems.
Instructions: CH. "Ftbl" and use fkey9 repeatedly.
fkey8 to LIST. The REMs show whats
what. The original line nos are
retained with extra test lines
indented.
Duplications produce (see white dr nos.
) TWO decrements of dr from within the
en loop except when the duplicated nos
happen to be contiguous, when only ONE
decrement is made. Do a few runs if
necessary to see this. You will also
see that in the former case, by
carefully comparing the magenta and
cyan lists, perfectly valid random nos.
get rejected as well as the duplicated
ones. If you now add en=dr as above to
line 2030 and run it again only single
dr decrements are made. This saves both
on loop cycles and, since less random
nos. are generated (no spurious rejects
), there is less probability of
duplication anyway. This is apparent
from repeated running and noting the
trend of loop counts in the two cases.
The difference is more obvious with
more Selections (try 21).
Why use a different, albeit neat, two
array method to do the same job at
lines 1430 to 1530 and why not just RND
(58) at line 1500?
By: 483
Use: Questionnaire
Program name: Quesair
Associated program/file/s: QUEST (data)
Language: Basic
General info:
I include the questionnaire on this
issue. If it is a while since you
filled one in or if you have not filled
one in. Would you please do so. The
information that you give is VERY
helpful and determines the direction
that 8BS will take.
Instructions: Read the info obtainable from the mag
menu. Then copy the program "Quesair"
onto a blank disc, run it. Previously
Daniel has included your old data file
on the disc. I have NOT done this. It
does not matter, the program will
create a blank data file called QUEST
ready for you to fill in. Send this
data file to me and I will use my new
software to produce a white rabbit from
it.
Sent in by: 27N
Use: Various
Program name: 27N4
Associated program/file: None
Language: Basic
General info: 27N sent me a large collection of
programs. Here are four very short ones
that I put together. Examine the
program itself. The totally separate
routines run from 10, 2000, 3000, and
4000 respectively.
By: 2J3
Use: Reads an AMX screen
Program name: AMXprt
Associated program/file/s: DRAW1 DRAW2
Language: Basic
General info: This program reads in the two AMX
screens that John Ilsley sent in to
accompany his teach yourself
electronics article.
By: L1J
Use: Mode conversion
Program name: MoConv (4 files in one)
Associated program/file/s: Henry1
Language: Basic : L1Jinfo
General info:
I have put four files into one so that
they would fit on this issue. They run
from a separate menu. Please read L1J's
info file.
By: L1J
Use: Disassemble machine code
Program names: UDA19 UDA70
Associated program/file/s: L1Jinfo
Language: Machine code
General info:
Please read L1J's info file
By: 27N
Use: Menu system ADFS and DFS
Program name: NewScan
Associated program/file/s: None
Language: Basic
Instructions: Read the REM lines at the start of the
program. This program scans the screen
to retrieve filenames. The program then
waits for you to enter a two digit
number which is the code for the
program to be loaded. Or enter one of
these keys:
A - Access one or all files. Reversing
the current 'lock' status.
D - Delete a selected file. You have
TWO chances to abort.
$ - Select DIR $ in ADFS and in DFS.
P - Printer dump of the screen.
(You may call your own dump here).
* - OSCLI command
Q - Quit from program.
S - Change sides or drive of the disc.
DELETE - If you enter the wrong first
number, You can delete it and start
again.
By: 3PM (DPJ)
Use: Utility
Program name: Altrit
Associated program/file/s: None
Language: Basic
Info: By DPJ
Altrit was written for a specific job
but is offered here as a utility
algorithm which can be adapted to other
use. It allows changes to be made to
the value of a selected parameter(s)
during run-time via the usual keyboard
input prompt.
Altrit is applicable when the program
output is related to sequential events
and has parameters subject to
unpredictable change. For example, the
interest charges payable on a loan will
reduce (predictably) month by month as
the debt is paid off, but also depend
(perhaps unpredictably) upon the
interest rate charged. So we set up a
program which makes the calculations
monthly with a pre-determined fixed
interest rate. If this rate changes
unpredictably we need to make a direct
input of the new rate at the
appropriate time. Simple enough? An
input prompt and some program
reorganising to use the original rate
prior to that month and the new rate
subsequently. Or is it? What about
several (how many?) changes and maybe
some of them back dated?
Also we don't want to keep repeating
the keyboard inputs each time a re-run
is required (for what-if? purposes)
particularly if there are several
changes.
Altrit is a simple algorithm to deal
with the above type of requirement. It
stores the inputs in an array and
re-cycles (not re-RUNs which would lose
the data) the program in such a manner
as to update the value of the selected
variable over a contiguous range of
applicability and not elsewhere. This
can best be seen by CHAIN "Altrit", and
following the example:-
Note that a back-dated change at month
4 automatically changes the appropriate
subsequent months but has no effect on
month 18 et seq which coincidentally
had the same pre-change value(10%).
Also note that all calculated values
are correctly updated in the simple
running total used for illustration.
This kind of job can of course be done
on a spreadsheet but would require a
considerable amount of messing about
to re-specify the 'box' contents every
time a change is made. Ughh. So it may
suggest some practical applications.
Altrit can, with re-definition of the
array data storage sequence, cater for
more than one parameter change. To use
a particular application for periodic
reference or updates, the array data
will need to be saved to disk and
provision made for re-loading it. I am
currently attempting a perhaps novel
way of doing it for this type of job.
By: 3PM (DPJ)
Use: Illustration
Program names: OSCLI
Associated program/file/s: None
Language: Basic
Info: By DPJ
Here's a problem for you:Question:
How does one dump the keyboard buffer
DURING a Basic progam run?
I don't mean display it as for
P.?buffer or flush it as in Osbytes &0F
/&15, but such that it behaves as
normal keyboard input. Was never told
about Basicus Interruptus and have not
found an appropriate OS command. Yet it
seems such an obvious requirement. Why
am I not seeing it, I ask myself?
Better start delving into IRQ vectors I
suppose.
I have written a little 'commedia dell'
arte' to illustrate the problem it can
cause. CH."OSCLI" and then study the
listing. fkey8 to List, fkey9 to Run.
Pity I do not have a suitable Overture
to accompany it, but then it may
obscure the point even more. And OSCLI
is a bit of a brew on its own! Its
really just a question of order. On the
Master 128 it ends with 'syntax error',
which I thought rather appropriate. A
bit of Beeb AI? I wonder how long it
takes an 8BS fan to spot the reason for
this?. Could offer a prize (free ticket
to the show?) but I suppose they'd only
cheat.
Did you know that while OSCLI and
*FX138,0,etc will each cope with 255
chars. that OSCLI"FX138,0,etc" will
only take 31 including the carriage
return? Never seen it documented and
it threw me. So I need an answer to my
original question and/or a way of
getting round the 31 limit implicit in
DEF PROCim thereby allowing 'im to be a
bit more articulate. Seriously, I need
it for another idea currently on the
stocks. Which raises the point that it
will be Issue 29 before the possibility
of a response from the membership.