The Treasurer's Companion Overlaid
by D. Ambrose
Issue 39 contained a program MERGE, a utility I use in a program to keep track
of the members of the society of which I am Treasurer. The original program,
which achieved the objects for which I devised PROCmerge and PROCovly in a much
less satisfactory way, was published in Beebug - 1991, Vol.9 (9) p.10. Here, by
request, is the program revised in accord with my present greater experience
and made fit for inspection by others.
Although the Editor of Beebug, Mike Williams, accepted my program for
publication (and was most helpful with some details of programming that I then
had not mastered), he obviously thought my method of entering the details as
DATA unorthodox. May be it is, but I much prefer to have them in a form that is
immediately and easily accessible by use of normal BASIC commands (and can be
transferred to EDIT, which is useful when it comes to the end of the year and
all subscription entries have to be cancelled) rather than to use a "file" that
requires a special program to write it, and another program to read it - and
which, as I understand, one can never view easily as a whole. I have studied
"File Handling for All" from Beebug and have not been tempted to change from
the method used here that I have found entirely satisfactory.
However, change there has been - first in a triviality, that I did not allow
for sufficient components in the addresses, and my current program includes one
extra - and second, in the method of appending the DATA blocks to the program.
The program ADDRESS now offered uses PROCovly that was illustrated in my
program MERGE and will successively append and READ from DAT1, DAT2 and DAT3.
When the program is RUN I think the questions screened explain adequately what
is on offer. If anyone else wanted to use the program he would almost certainly
have to amend it to meet his needs, and I do not try to imitate the
professional in providing fancy menus. I do not like them and generally remove
them, if it is simple to do so, from programs I use that were written by
others. Explanation of what is required in the DATA will be found by LISTing
the first few lines of the program and examining DAT1, etc. The majority of my
members live in only two towns, which I may as well reveal, thus providing the
only connection of my DATA with reality, as Kingston upon Thames and Surbiton.
I have arranged for these to be abbreviated to a single letter in the DATA and
expanded when printed according to line 150. This has two versions of Kingston
because "upon Thames" is not needed for my membership list but is added for
printing labels for the postman to read.
I have a monochrome monitor and always operate in paged (VDU14) mode 131 but
have changed to VDU15 for printing. The program then counts lines (E%), stops
at the end of the page when E%>=55 (line 1670) and awaits a key press (A=GET)
after the insertion of a new sheet, before continuing. A third change to the
original program is the addition of *FX15,1 in line 1680. I do not use
continuous stationery and the FX command prevents the computer remembering that
I have pressed a key too long and continuing to print after reaching the end of
the page. My printer is arranged to print a pound symbol when hash appears on
screen.
I use labels 70 by 36 mm, three abreast, and have found their use to require
some care. (I have had to dismantle the roller of my printer more than once
because I got a label stuck to it.) Hence A=GET in line 1950, so that only one
row is printed at a time. Those with more skill or confidence could alter this.
Finally, I should say that my Master has a 65C102 coprocessor and now has
room for all my DATA in memory at once. I actually use a program incorporating
PROCmerge that was in my previous contribution to append the DATA blocks one
after the other, where they remain until I have completed my operations. It is
still convenient to keep the separate DATA blocks becaue they are then small
enough to load into EDIT.