8-bit Software Disc Magazine (c) Duncan Webster 1991
Issue 14 (July 1991)
SOFTWARE DOCUMENTATION
PROGRAM: Periodic Tables Program
FILENME: $.PerTabB and $.PerTabM
The program contains basic information on all chemical elements and it
could be regarded as a kind of database.
After loading the program, the Periodic Table of chemical elements
appears on the screen as well as a window placed above the table and a
blank rectangular cursor located somewhere in the middle part of the
table. The window shows a name and a symbol of an element, its atom
number and its mass number. Pressing any cursor key moves a black box
from one element to another and changes the contents of the window,
whereas pressing the RETURN key gives a screenful of more detailed
information on the element selected. Pressing SPACE re-enteres the
main screen (ie. the screen with the periodic table).
To obtain reasonable speed of displaying and to make the program more
compact, some data and a part of the code have been located above the
TOP value. The machine code used is relocatable so the program is
compatible with all Acorn computers and all filing systems, provided
that the PAGE value is set between &0E00 and &2000.
There are 2 versions of this program on this months disc. The first
version being the $.PERTABB program which is automatically loaded from
the 8BS menu. The second version is called $.PERTABM which is a more
effecient version of $.PERTABB, but requires the Masters shadow RAM or
suitable equivalent to run.
----------------------------------------------------------------------
PROGRAM: MERGE, PSAVE and SNIP
FILENME: S.MERGE and S.PSAVE and S.SNIP
These utility programs so not appear within the 8BS disc menu, but are
stored on the issue 14 disc on side 0 under the filenames above. They
are in fact extra machine code source programs and it is recommended
that you copy the above 3 files to a separate disc and *RENAME them to
the $ directory. This can be performed either manually, or by using
the Directory Rename utility supplied on the issue 13 disc.
MERGE
The User Guide describes two methods by which two BASIC programs can
be merged together, but both these methods need careful adjustment of
the line numbers at least in a program that has to be merged. The
'Merge' is a source program producing the machine code utility that
adds a BASIC program to the end of one already stored in memory. The
resulting longer program is then automatically renumbered.
PSAVE
This program produces a machine code utility named PSAVE which in turn
will save a part of a BASIC program resident in memory. The machine
code can then be called by the following command.
*PSAVE <filename>,<lineno1>,(<lineno2>)
SNIP
The BASIC command DELETE operates very slowly and it often takes a lot
of time until a large part of the program is removed from memory. The
SNIP utility will immeadiatley remove any part of a BASIC program from
a given line to the end of the program and automatically adjusts the
TOP and LOMEM values. The utility can be called by typing *SNIP with
the necessary paramater (ie. the line number).
----------------------------------------------------------------------
PROGRAM: Braille Translator/Demonstration Routines
FILENME: $.BRAILLE
All Users of the BBC are familiar with ASCII codes as the means of
representing alphanumeric and other characters by 7-bit binary
numbers. The use of ASCII is virtually universal, and it may not be
realised that other methods of digital expression of letters and
numbers are possible. The oldest of these is probably BRAILLE, which
uses 6 digits or "dots". Since this only allows for 64 characters as
opposed to the 128 possible with 7 bits, there are certain
alterations. In level 1 (or standard) Braille, the same code is used
for upper and lower case letters, the control characters represented
by ASCII 0-31 do not occur, nor do ASCII 96 or 123-127.
Braille characters have dots in six possible positions. These are
conventionally numbered as follows:-
1 4
2 5
3 6
The observant will have noticed the simalarity with Mode 7 (teletext)
graphics character construction. If the following values are assigned
to the Braille dots:-
1 2
4 8
16 64
then, using separated mode graphics, Braille characters can be
represented (in minature) on the screen string display routine.
There are three routines. One will produce the pattern of the
required Braille character, the second a minaturised screen display of
the Braille equivalent of a string, and the third a printed
representation of a Braille equivalent of a string with the actual
string. All these are from keyboard input.
The program is loaded and run from the main 8BS menu, but can also be
accessed directly from BASIC by entering *BRAILLE <return>. Routines
are selected by function keys in accordance with the screen
instructions.
The Braille/ASCII equivalents are those of US Computer Braille. The
conventional descriptions of the Braille characters can be found in
the DATA statements from line 20000 onwards in the source code program
S.BRDEMOS (not on the 8BS disc but available upon request).
----------------------------------------------------------------------
PROGRAM: Member Y80's - HELP NEEDED by Alex Savvides.
There is a program in this months disc called $.Wierd which contains a
(yet unfinished) program. The development of this program has been
held up due to what seems to be an unfathomable error. I will let
Alex Savvides, the author of the program continue ...
Within the program, the procedure "files" reads the contents of memory
location &E00 onwards for the filenames appearing on the disc after a
"*." has been issued. This was done so that I could store the
filenames in an array which will later be used as a file selection
routine in my program whereby a scroll bar is used to highlight the
program requited etc. I have altered the program (available on the
issue 14 disc) just to demonstrate my findings...
For some strange reason the computer does not realise that it has put
the filename strings into the array as the procedure called "check"
will verify. After reading the filenames into the array, it will then
test to see if a filename called $.weird (it's own name) appears in
the list.
If it does, then I want the program to ignore it because it is the
program's own filename and therfore cannot be selected to be loaded
"into itself" - obviously doing this would crash the system.
The message "$.Weird ignored" should be displayed if the string has
been read into the array, but even though the dtring appears in the
array, the message above is not printed.
Is the computer contradicting itself by reading a string into the
array and then by not printing the message effectively saying that it
is not in the array? - Please someone sort this out for me - it is
driving me mad!
I have done the following in an effort to detect the cause...
1. Paged OUT all ROMs
2. Filenames contain NO control codes
3. Page is set at DFS (&1900)
----------------------------------------------------------------------
If anyone out there can help - or better still can submit a solution
ON DISC, then please write in a.s.a.p. as you will be providing
invaluable help towards completing, what I am sure will be a very good
piece of software.