By 5FD (James Farmer. Headfirst PD)
In response to your plea for a "deep
delete" command, allowing recursive
deletion of locked directories, I have
written a program, Dirwipe. This shouls
be placed in your library directory and
run using:
*DirWipe <dir name>
or */DirWipe if you already have a rom
using *DirWipe. It deletes the
directory given and all its contents,
accessing the files first to ensure
they delete. Of course it is only
intended for ADFS. However, it is
legally written (in the most, see
below) and so should work on Econet or
any other hierarchial filing system,
provided they conform to Acorn
guidelines. DirWipe does unfortunately
use zero page workspace from &86 to
&8F, so if the current language does
not reallocate that area for the user,
then DirWipe is not guaranteed to work.
DirWipe also uses the whole area from
&900 to &CFF and so will wipe out
ENVELOPES 5-16, function key
definitions, and user defined
characters. Dirwipe will also not work
if not running on the I/O processor.
If anyone wants to alter it, the source
code is also given (DWSRCE). Please
note that DirWipe is not Public Domain.
It is my copyright and I give
permission for copies to be made freely
by anyone and sold by PD libraries for
no mere than £2. I also give my
permission for it to be distributed by
any disc-based magazine or on any
magazine subscription or cover disc. If
the program is altered, all the
original credits must be left intact,
with just a note added saying who
altered it and when. It would be
helpful if anyone who alters it would
send it with the new source code to
Headfirst PD. This would help us keep
track of it. Altered versions may not
be distributed until this is done.
When I was younger (that's going back
a bit!) and looking in shop windows I
noticed that some price tickets had
letters with the price digits. As it
appeared to be a code I then jotted
down as many prices and letters as I
could see and then had a go at cracking
the secret(?) code.
The ten all different letters always
turned out to be a word. The code
usually reminded the shop keeper of the
price he/she paid for it. Recently I
was looking in an antique shop window
and there was another price code. (The
old way of coding was most probably as
antique as the goods for sale!). Much
to my amazement and amusement I cracked
the code. So, I thought, why not do a
program using the idea.
After a lot of sweating to find ten
letter words, and sweating over a
'spaghetti' program I managed to come
up with something that works. Being a
'make life easier bloke' I've given you
some very good clues (You wont get
these from a shop!) to make it very
easy indeed.
The name of the file is "PriceEi" this
is an 8-BIT SOFTWARE version. There is
another version, "PriceSo", it contains
different code words, that I have done
especially for SOLINET disc magazine.
Please let me know if you like it or
not or have any trouble. Best of luck.
ROY 20G
Wavey program - another YJ2 experiment:
÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷
This is another incomplete program of
mine which (I hope!) the intelligent
8BS members should be able to solve....
This program creates a "wavey"
pattern out of the drawing of a series
of circles which eventually fill up the
screen (good so far apart from the
fact that it is not very fast - now the
problem). I now want the colours (MODE
2) to cycle from 1 to 7 (once getting
to 7 resetting to 1) - unfortunately
I have found this harder than expected
and as a result all that occurs is one
colour change. Help !!!!
NOTE: The file "Wavscr" contains a
saved screen of the result for the lazy
of you out there.
By C.J.Richardson. MASTER ADFS ONLY.
After a while, an ADFS disc can end up
with large numbers of very small free
spaces.
This happens when you save and delete
programs lots of times. Eventually,
there may be a lot of free space on the
disc, but spread all over the surface
in small amounts.
You may then be unable to save a large
program onto the disc, even though, in
theory, there is plenty of room for it.
If you type *COMPACT 0E 72, the disc is
compacted by shuffling programs about
until the spaces join together to form
larger spaces.
Unfortunately, more often than not,
typing *COMPACT 0E 72 just once is not
enough. Usually I find that I have to
type it several times before the disc
is totally compact, especially when it
is nearly full. This problem crops up a
lot when compiling the ADFS 8BS issues.
This program *COMPACT's an ADFS disc
until the free area of the disc is all
in one place. This will enable you to
fill an ADFS disc to the brim without
having to type *COMPACT 0E 72
repeatedly.
The program simply clears the screen,
*MAP's the disc and sees where VPOS is.
If VPOS is greater than 3, then the map
has more than one line to it and is
therefore not completely compacted. If
this is the case, the disc is
*COMPACTed again.
Whatever you do, DO NOT stop the
program while the drive is working.
During *COMPACT the disc can be in an
inconsistent state (another word for
nearly useless), it is not a bad idea
to *BACKUP before comacting (listen to
me, I never bother, what if there's a
power cut).
This will not work in DFS folks! There
is absolutely no need for it in DFS as
*COMPACT always compacts the disc into
one lump straight off.
by Steven Flintham (15A)
------------------------
Decision Maker is a program which is
designed to help you to chose between a
number of alternatives. It accepts a
list of possible options and then asks
you to chose between pairs of these
options so that it can produce a
ranking table in order of preference.
You can then print out or save this
list to disc if you want to.
You might feel that this is a poor way
of making a decision, and you are
probably right. However, I have found
it useful on one or two occasions and
simply playing around with it might
help you to come to a conclusion in a
more sensible manner.
Using the program
-----------------
On running the program, you will be
asked for the filename of the file
containing the options. This file
should be produced on a wordprocessor
or text editor and should have one
option per line followed by a carriage
return or line feed. As an example, a
file 'Colours' is provided which
contains a list of colours to choose
between.
There is a maximum of twenty options.
If a file contains more than this, the
program will accept it but will ignore
any excess options. You will be warned
if this happens.
Having entered the filename, the
program then goes on to ask you which
of two options you prefer, allocating
points to the preferred option. This is
repeated until each option has been
compared with every other. Making the
decision in this way allows you to
concentrate your attention on just two
options at a time, rather than trying
to cope with the whole set at once.
Once this stage has been completed, the
program will display a list of the
options in your order of preference.
You can print this by pressing P or
save it to disc by pressing S. Pressing
R will re-run the program.
You can press CTRL-@ at any time to
escape from the program and return to
BASIC.
Comments
--------
Because of the way the options are
chosen for pairing, an option will
appear several times in a row. It
would, in my opinion, be rather
difficult to avoid this. Each option
still appears the same number of times
as each of the others.
To minimise the effect of a preference
for choosing (for example) the first
option of the two displayed, the
program picks the option to be
displayed first at random, rather than
displaying them in the order in which
they occurred in the list.
It would be possible to modify the
program to allow more than twenty
options but this has not been done
because:
a) Even twenty options require a lot of
individual decisions to be made - 190
in fact. The number of individual
decisions which has to be made is the
sum of all the numbers up to but not
including the number of options - in
mathematical terms, the sum of the
first n-1 integers, where n is the
number of options. It is therefore
unlikely that you would want to handle
more options since it would take a long
time to finish the decision making
process. 21 options would require 210
individual decisions, for instance.
b) The mode 7 screen is only 25 lines
deep and allowing for a heading etc
there is only room for about 20 options
to be displayed in the final ranking
table. It would be possible to
implement a scrolling ranking table,
but this would be quite tedious to
program and given the other problems
associated with large numbers of
options it seems a fairly pointless
exercise.
The printout has been kept deliberately
simple because I wanted to avoid using
any special features which might not be
present on certain printers. You should
be able to modify it to (for example)
use NLQ and print the title in bold, or
whatever you fancy.
Although some checks are made when
loading or saving a file, it would be
impossible to manually handle every
possibility. The error handler
therefore intercepts all errors in the
range &BD-&D6, which are those
generated by the DFS (and presumably
also the ADFS, in the absence of
specific documentation). If one of
these errors occurs, the program
informs the user and then executes a
GOTO file`error`line% in order to
return to the point in the main program
loop where the error occurred.
However, there is a problem with this.
As there are two separate parts of the
program in which such errors could take
place, the GOTO cannot have a fixed
line number - hence the use of
file`error`line%. This means that
inserting any lines before line 200 and
renumbering the program will prevent it
from running properly unless the line
numbers stored in file`error`line% are
modified accordingly.
Credits
-------
I must mention that this program is
based on a slightly simpler version
which appeared several years ago
(1986??) in The Micro User. However,
the program code is completely
original.
By C.J.Richardson. Mick Needham digitised a load of
pictures for me from a video that I
sent to him. Thanks Mick. I was left
with a few pictures that I thought
would be interesting, but not
interesting enough to fill 1/4 of an
8BS issue!
The idea struck me to squash some
pictures up onto one screen.
This program does just that.
To use it you have to enter the names
of the original screen files into four
data statements at the end of the
program. Then enter into the very last
DATA line the name that the finished
screen will be saved to disc by.
The DATA statements between the screen
file names contain hexadecimal numbers.
Leave these alone unless you want to
change the position of the squashed
screens on the final screen.
They are the start locations on the
screen for the top left corner of each
of the pictures.
The example screen 8BSpics is available
from the menu.