Text content (OCR)
THE JOURNTAL
OF THE
BRITIGH APPLE
SYSTEMS
USER GROUP
hard core
MAY 1981 £1 VOLUME1 N°? S
BASUG. :.. LONDON COMPUTER FAIR
981
Page 2 HARDCORE - The Journal of the British Apple Systems User Group May 1
s
Lui Computer Services Lid.
108 THE PARADE HIGH STREET WATFORD WD1 2AW
Telephone: Watford (0923) 29513
* Business Software °* Professional Courses * Pascal
* Recreational Software * Interfacing * Cromemco Systems *
* Level 1 Service Centre * Utilities * Colour Monitors
* Supplies * Accessories * Enthusiasm * Open Tues - Sat *
Wida Software
2 Nicholas Gardens London W5 5HY
~~
Computer Assisted Learning Educational Software Development
apfeldeutsch
elf-tuition package in German for Apple/ITT Z
4 audio cassettes, workbook, textbook.Takes
Beginners to Fost O’Level,
(Classroom version also available)
Special introductory offer until Tune 36
Apple/ITT disks: £99
GERMAN FOREVER! Stand-alone set of perpetual self-testinn drills and
routines in German - article and adjectival endings, word
order, time of day, money, etc. Fine for Olevel revision
{BA Finals too!)
Apple/ITT disk! £20
TEACHER'S TOOLKIT! Define and Write your own instant assessment tests - any
subject - with no knowledge of computing.
Apple/ITT disk} £20
APPLEWRITER LOWER- Beats Optrex! Give your eyes a treat and insist on
CASE ADAPTOR lower-case for word Processing (and foreign character sets)
on screen with Applewriter, Plug-in ROM (Revision 7 Apples
only)
Page 3
May 1981 HARDCORE - The Journal of the British Apple Systems User Group
CONTENTS
4 EDITORIAL
6 LOCAL GROUPS
hardcore
THE JOURNAL OF
THE BRITISH APPLE SYSTEMS USER GROUP
P.O. BOX 174 WATFORD WD2 6NF
9 CHAIRMAN’S CORNER
10 BASUG NEWS
John Rogers & Tony Williams
12 THE DISAPPEARING ‘IF’ TRICK
lan Trackman
EDITED BY DAVID BOLTON 13 AMATEUR RADIO
BRITISH APPLE SYSTEM USER GROUP 14 TECHNOLOGY FOR THE HANDICAPPED
CHILD Norah Arnold
COMMITTEE
JOHN SHARP Chairman 14 COMPETITION NEWS
MARTIN PERRY Secretary 17 DOS DIFFERENCES
DAVID BOLTON Treasurer John Sharp
JOHN ROGERS 18 INDEXED RANDOM ACCESS METHOD atse
TONY W
TUETAMS 24 BEGINNERS’ PAGES
BANKERS John Sharp
National Westminster Bank Ltd., 24 BASUG AT THE LONDON COMPUTER
Brompton Square,London SW3 1HH. FAIR Tony Williams
; 28 VISICALC - PLUS
MEETINGS John Wingate & A,Graham-Bryce
29 PASCAL PAGE
Frank Kay
Tuesday 12 May 7.30 Starting Machine Code 30 PRINTER INTERFACING Part Z
Sunday 24th May 2.30 Canes Chris Murphy
Tuesday 2 une 7,30 Open Evening 3Z SCREEN FORMATTING
Nik Spicer
Sunday 21 June 2.30 ANNUAL GENERAL HEETING
Unless otherwise advised, these meetings will take place
at The Old School, Branch Road, Park Street, St Albans.
(On the old AS, about two miles south of St Albans town
centre)
—- <==
COPYRIGHT (C) - The contents of this journal
are copyright of the British Apple Systems User
Group and / or the respective authors. However
permission will normally be granted for
non-commercial reproduction by user groups
affiliated to the International Apple Core,
provided the author and source are properly
credited.
The opinions and views expressed are those of
the various contributors, and are not necessarily
supported by the British Apple Systems =
[Group
36
39
4
43
47
48
50
50
READERS LETTERS
OVERCOMING AUTOSTART
Michael Mathison
HOW TO GET HERE - Map
BOOK REVIEW - COMPUTER GRAPHICS
PRIMER Leo Crossfield & John Sharp
A WARGAMERS VIEW OF MICROCOMPUTER
GAMES Robin Hood
THE COLLISION COUNTER
Michael Mathison
COMBINING APPLESOFT AND MACHINE
CODE Neil McFerran
APPLE FOOTBALL
Graham Rubens
PIPPIN’S PAGE
Vernon Quaintance
SALES AND WANTS-Member’s
Advertisements
Page 4
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
EDITORIAL
BIGGER & BETTER
Well, here’s the third issue of Hardcore, and the
quality continues to improve - both in terms of
presentation and of content, The most obvious
change will be that, thanks to the higher
circulation and the increased amount of
advertising, it has been possible to change over
to folded AZ format with a glossy cover, The
extra costs involved should be amply repaid by
the resulting increase in over-the-counter sales,
which in turn will help to attract more
advertising,
Another change that will be noticeable by its
absence, so to speak, will be the reduction in
spelling mistookes (oops!) and grammatical
lapses due to Tony Williams’ invaluable
sub-editorial efforts, Tony has even managed to
surface occasionally to add his name to some
articles of his owns
Once again, the ‘typesetting’ for the bulk of the
magazine has been done on a Centronics 737
printer from Applewriter files, using Ian
Trackmans’ new printer module, We’ve had a lot
of enquiries about this since the last issue, and
are very pleased to say that this is being
marketed by Microsense themselves, and should
be available from your local dealer (or direct
from the author at Blue Chip Software) by the
time you read this, Ian is now working on similar
modules to interface the Epsom MX80 series, the
Paper Tiger, and the Anadex printers with
Applewriter.
Our contact with Microsense is bearing fruit -
they’ve promised to keep us in touch with all
developments, and are anxious to help us as much
as possible, The first example of their help is
that a copy of this issue is being sent to every
Apple dealer in the U.K.
THE SILENT MAJORITY
The publication in the last issue of the draft
constitution with a request for comments would
appear to have fallen on stony ground. In the
complete absence of any feedback the committee,
aided by Ian Trackman who is a lawyer (between
writing brilliant software!), are preparing a
proposed constitution and agenda for the
forthcoming AGM, and details of this will be sent
to all members shortly,
PAYMENT IN KIND
Well not exactly in kind, but contributors to
Hardcore will receive credits for the Contributed
Software Library at the rate of 20 units (sectors)
per published page. Provided both circulation and
advertising continue to grow, we also hope to
start paying a modest page rate to contributors,
The uses to which the Apple can be put are
widespread, and (perhaps partly because of this)
the ability and the level of knowledge of Apple
users is extremely varied. So whatever your own
particular interests and capabilities, there are
other users out there who can benefit by what
you have to say, Some of the articles that come
in are in draft or note form, so we also from time
to time need people to write these up into a
finished article,
One particular area where almost every user can
contribute to the journal is in reviewing
software, It’s in all our interests for both good
and bad software to be identified as such.
HELP WANTED
Do we have a photographer member who can help
occasionally by producing Black & White prints to
our requirements, from negatives and (ideally)
also from artwork, video screen, and real-life,
It would also be useful to know of other skills,
abilities, and contacts that members can make
available in case of need,
INEXPERT ADVICE
T.Tse’s article in this issue (Indexed Random
Access Method, or IRAM) will probably be
incomprehensible to a large number of you,
Although we realised this, we felt we should
still publish it because we need ONE OF YOU to
write a "Beginner’s Guide to IRAM". We already
have lined up for the next issue an experts
review (thanks, Nik Spicer), which again will
probably be over the heads of most beginners} so
please, somebody redress the balance.
DON’T CALL US..-
Some early BASUG literature gave the phone
numbers of several committee members, With the
continued rapid growth of the group it has
become impractical to deal with the
ever-increasing number of phone queries. So
please WRITE in, to the group’s Box number,
(enclosing an SAE if you want a reply), You‘ll get
a response as quickly as possible, but we are an
entirely voluntary group and you should allow for
up to fourteen days response time,
May 1991
HARDCORE - The Journal of the British Apple Systems User Group
Page 5
GOING DOWN
Computers are, in the west end of London,
Lion Micro Computers have opened a new and
enlarged Computer Book and Magazine section on
their ground floor, which in turn means that their
demonstration studio on the first floor can now
offer a better service to software and hardware
customers,
The Sofwarehouse has come down from its Ivory
Tower on the third floor of 144 Oxford Street
(although Mail Orders will still wing their way
from that location), The retail activity is now
located in a spacious ground-floor showroom
round the corner in Horse Shoe Yard, off Brook
Street, Keith Jones, the genial proprietor (a
BASUG member, by the way) ably assisted by his
assistant Paul, will now convert your unwanted
money into useful software, peripherals, etc., six
days a week, Keith points out that there’s plenty
of room to park your wife in nearby Oxford
Street while you shop.
EAD NEWS
When the group was started, it was intended
that, in addition to the benefits members have
already received, a free issue of Apple Orchard
would be given, However, with the difficulties of
getting bulk supplies at a reasonable price, and
the expenses of producing Hardcore (which has
grown somewhat from the original news-sheet
concept!), we have to place on record the fact
that there won’t be a free Orchard,
MORE BAD NEWS
The Pascal course, scheduled for May, had to be
cancelled at the last minute due to lack of
response, In retrospect we probably tried this
too early - there were only some forty members
at the time it was arranged, If there’s a call for
it, we intend rescheduling the course for the
Autumn. If you would want to take part, or have
any comments about when and how it should be
held, write in.
GOOD _ NEWS
Agar Computer Services run a series of two-day
courses in BASIC programming, as well as
various one-day familiarisation courses. They
will give a 10% discount to BASUG members.
Details from R.S.Agar-Hutton on 01-328-9232,
WINDFALL
BASUG was formed, only six months ago, because
at that time there was no active British user
group, and no readily available sources of
information for users,
Suddenly, user groups are springing up all over
the country (and BASUG is actively helping by
publicising these and assisting in forming groups
wherever there’s a gap)
Now, hard on the heels of Hardcore, comes news
of a second specialist Apple publication called
‘Windfall’, Unlike Hardcore, which is produced
completely on a voluntary basis, this is a
commercial proposition, and this will be reflected
in the style and presentation, which we
understand will be to the standard of "Omni", It
is a joint enterprise of Europress and David
Chadwick. The latter, who is the Editor, is also
an Apple dealer as well as a leading light of the
North West Apple Users Group} who, together
with other groups in the north-west are said to
be giving the new magazine their active help.
BASUG has been approached with a view to
Hardcore being absorbed into Windfall, and the
group providing information for a User Group
Section within Windfall, We felt however that
this would neither be to member’s wishes nor in
the best interest of the group. Hardcore is, to a
considerable extent, BASUG} and the reason we
get such active and enthusiastic help is
presumably because it is a voluntary and
non-profit making enterprise,
We wish Windfall well, The proliferation of
computer magazines in the states shows that
there’s plenty of room for everybody; although
the standards of some of the magazines over
there would suggest that even in that cradle of
computing there are problems in filling all that
room!
ITT DEVELOPMENTS
Two items of interest concerning graphics.
Firstly, ITT have provided us with Pascal disk
PALI, which replaces APPLE1 and corrects
Turtlegraphics for the ITT,
Secondly, Ron Davies has provided details of a
clever but simple-to-install hardware
modification to emulate Apple graphics on an ITT
— no more split-down-the-middle Space Invaders,
See the next issue for full details.
David Bolton
Page 6
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
LOCAL GROUPS
##* We offer space here for Apple user groups,
or indeed for any groups catering for Apple
users, to publicise themselves,
EAST MIDLANDS
On Wednesday Z9th April an inaugural meeting of
an Apple user group based on the Leicester area
was held. Twelve people attended and a general
discussion was followed by the election of a
Chairman and Secretary of the group,
It was decided that the group would initially
meet on the first Wednesday in the month at the
premises of the:-
Leicester Computer Centre
67 Regents Road
Leicester
The meetings will start at 7.30pm and will be
open to anyone from the East Midlands Area, The
next meetings are detailed below but if anyone
would like more information before this date
then please contact either:-
Chairman: Mike Preston
Secretary: Hazel Bown
Next Meetings!
Wednesday June 3rd Apple Graphics
Introduction to Machine
Language programming
Wednesday July Ist
We look forward to seeing any local B,A.S.U.G.
members at any of our meetings:
THAMES VALLEY
An inaugural meeting will be held at the
Bisham Abbey Sports Centre
Bisham
Bucks
at 8.00pm on Wednesday 27th May.
This is after the press date of this issue of
Hardcore, but up-to-date information can be
obtained from:-
Steve Proffitt Maria 70e
BRISTOL USERS AND
DABBLERS (B.A.U.D)
This well-established group meet at the
premises of!-
Datalink Microcomputer Systems Ltd
10 Waring House
Redcliffe Hill
Bristol BS1 4TB
Teli Birasiial Si 3427
Meetings are held on the second Thursday of each
month — but check this with Datalink.
BASUG LOCAL CONTACTS
An update to the list published last issue!-
Frank Fletcher
David Row
iWin
Bissunpstishe Sse
Leo Crossfield
John Maltby
Len Gould
Miasigieiyieaid) 745
Sinediineiia) Pode
Geoffrey Clements Bannan
advertisement
RELOCATED
INTEGER
A relocated version of RAM Based INTEGER is now
available, which is based on the standard Integer Basic,
but amended to reside at the top of available RAM
memory.
This avoids the common problem associated with the
use of RAM Integer Basic to run software written on
and for the original ROM Integer machines; whereby
the interpreter is overwritten by Page 1 of high resol-
ution graphics, and/or it is overwritten by machine
language sub routines which are frequently stored at
location $1000, the starting address for standard RAM
Integer Basic.
RELOCATED INTEGER differs from the standard
RAM Integer by remaining co-resident in memory,
giving the facility to switch between Basic langueges at
will, and in addition the Mini-Assembler facility (sacr-
ificed from Floating-Point machines because of ROM
size restraints) is provided, also co-resident in memory.
On DISC SYSTEMS Relocated Integer makes use of
the DOS ‘INT’ and ‘FP’ commands to switch between
Basics, thus giving automatic language change under
programme request, in the same way as if an Integer
Firmware Card were fitted.
On CASSETTE SYSTEMS Relocated
provides the following command structure:
-Enter Integer Basic (RELOCATED INTEGER)-cleared
for new: programme.
-Enter Floating-Point (Applesoft/Palsoft) Basic-cleared
for new programme.
-Enter Monitor.
-Enter Assembler (mini-Assembler).
-Resume Basic (with programme intact) from Monitor/
Assembler/Edit.
-Edit Mode clears screen and sets text window to width
33 (which forces both Basics to abandon the in-
dented format for listing) facilitating the editing of
Basic programmes.
Integer
SPECIFY MEMORY SIZE AND (FOR DISK)
WHETHER DOS 3.2 OR 3.3
CASSETTE R12 DISK £.14
DEALER ENQUIRIES INVITED
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
sdFeePete & Pam Computers
Microcomputer hardwore G sofwore
Specialists in Appletore
Peter & Porn Fisher
WE DISTRIBUTE FOR MICROSOFT, HIGH TECHNOLOGY.
STONEWARE COMPUTER STATION. CALIFORNIA PACIFIC,
DAKINS. BRODERBUND. STARCRAFT, SUB LOGIC AND MIR
ENTERPRISES. DEALER ENQUIRIES WELCOMED.
APPLE — 16K EXPANSION BOARDS
At last — Apple users can obtain additional
memory without the expense of buying a
language system. Fully compatable with
PASCAL, INTEGER BASIC as well as
MICROSOFT SOFTCARD. VISICALC owners can
also use additional memory.
MICROSOFT RAMCARD £109.95
ANDROMEDA EXPANSION CARD £109.95
(Can be chained to allow use of more than one
board)
2-80 SOFTCARD £169.00
A Z-80A microprocessor for Apple. Provides
CP/M and M BASIC-S. Allows use of
COBOL 80 £299.00
FORTRAN 80 £109.95
BASIC COMPILER £195.00
NEW
WORDSTAR, the price of wordprocessors, on
APPLE formatted CP/M disc £250.00
THE MILL 6809 BOARD £169.00
A 6809 processor for APPLE. Allows joint use
of 6502 and 6809 processors.
COMING SOON
PASCAL PATCHER — to double the speed of
APPLE'S UCSD Pascal.
VISICALC £75.00
A must for every APPLE owner — soon to be
enhanced by being linked to INFORMATION
MASTER.
CCA Data Management system £49.95
80 COLUMN BOARDS
SUP — R — TERMINAL £195.00
VIDEX £179.00
APPLE PIE 80 column word processor for above
£75.00
COMING SOON
A utility to link INFORMATION MASTER to
VISICALC, CCA CASHIER and many other files
PLEASE ADD 15% VAT TO YOUR ORDER
POSTAGE AND PACKING FREE
ASK FOR OUR FULL CATALOG
IF YOU WANT TO KNOW WHAT YOU WANT AND DON'T
WANT TO PAY AN INFLATED PRICE
GIVE US A CALL — WE SELL ALL SORTS OF THINGS
FOR APPLE
TEL 01-677 2052 (24 HRS) 7 DAYS A WEEK
98 MOYSER ROAD LONDON SW16 6SH
POST OFFICE GIRO NO. 585 6450
High
Technology
We make our
competition
obsolete
with Information Master.™
Information Master™ is the sophisticate of
software packages. but it also speaks your
language Its uncomplicated English:
speaking design makes it easy to learn
No programming knowledge 's necessary
Put itin your Apple ll and you re ready
togo
High Technology s Information Master
organizes and prints everything trom
mailing lists 10 stock market data Specily
what records to store. type in the informa
tion, and Information Mastér organizes.
calculates. stores and reports Design your
own reports and labels Information Master
is revolutionary in its adaptabilily and
comes with a simple step-by-step instruc.
tion manua! Its screen layouts are designed
to show you maximum information for
easy operation Information Master is SO
smart it slops mistakes that our competition
lets you make
i! your computer dealer doesn! have
Information Master, see one who does
High Technology s perlect complement to
Information Master Data Master.“allows
you to change your mind months later
without redoing
all the work
you ve
already
done
£75 + vat
Available in the UK from
Pete & Pam Computers
98 Moyser Road
ye London, SW 16 6SH
01-677-2052
*AopIe I
Apvle C
a trace cameo!
Page 7
Page 8
HARDCORE ~ The Journal of the British Apple Systems User Group
Accutrack Disks...
2
Because data reliability \
in disk construction.
is the important difference (
Anatomy of a disk.
Flexible disks are simple information
storage devices consisting of a
magnetic disk enclosed in a semi-stiff
protective jacket. The disk rotates
within the jacket while magnetic
recording heads on your data or
word processing systems “read” or
“write” information on the disk’s
magnetic surface. Since disk
operation is simple. it’s relatively easy
to make one that works But building
in reliability is something else again. It
takes specialized technology to build
disks that operate flawlessly over an
extended period of time.
What counts in
disk construction.
Key design objectives for a disk are
listed below. How well o disk
measures up to these objectives
relates directly to the throughput,
accuracy and overall costs for your
dato or word processing system. No
disk measures up better than
Accutrack.
* The magnetic coating must be
Precisely formulated and uniformly
applied. Imperfections as small as five
millionths of an inch cause signal
dropouts, data checks ond wasted
processing time as well as errors
* The disk surface must be
absoliely clean, totally flat and
permanently lubricated to prevent
excessive head wear with
subsequent signal degradation and
eventual loss of information. (This is
the most critical objective and the
one that’s most offen compromised
since poor operating results take o
while to show up. It’s also the area
that most effects the long term
reliability of your data.)
* The disk must be free to rotate
within its jacket without internal drag
to avoid further data checks,
excessive processing times and
errors.
* The jacket must protect the disk
from external contamination and
damage. It should also remove
microscopic particles of debris from
the disk surface before they can
damage the disk.
Why you'll never find
the best disk bargain
in the bargain basement.
While there’s little apporent
difference between other disks and
Accutrak, the performance
differences can be substantial. Simply
stated, an Accutrack disk is premium
priced. But the protection it gives
your informatiory the reliability it
provides to your operations; and its
substantially longer life make it the
best disk buy. After all, the real cost
of your operations is constructing
and processing the data stored on
the disk - not the disk itself It doesn’t
make sense to trust that data to
anything but the best disk
Accutrack.
£17:50 inctFREE LIBRARY CASE!
(ADD 50p POSTAGE / PACKING)
BRITISH APPLE SYSTEMS USER GROUP
P.O. Box 174, Watford WD2 6NF.
May 1991
BASUG BULK BUYING —SOOocr PRICE FOR IOs
May 1991
HARDCORE - The Journal of the British Apple Systems User Group
Page ?
CHATRMAN’S CORNER
Let me begin by personally thanking all those
who helped to make our stand at the Second
London Computing Fair such a success, In
particular David Bolton and Martin Perry for
setting up the stand to make it one of the most
professional there,
I should perhaps also welcome all those who
joined there, and indeed, those who have heard
about us in other ways. The group is now firmly
established and is obviously going from strength
to strength.
The people I met during my sessions on the stand
were a varied group, from the persons looking for
a machine to the one who had actually built his
own machine from the circuit in the manual!
The varied outlooks, and the different ways in
which the machine is being used are beginning to
surface, There is 4 response to questions being
asked. My page last month talked about the
Autostart Rom problems and, lo and behola!, an
article has appeared which looks as if it could
solve them. T hope it has managed to reach this
issue, We certainly do not have the problem of
DOS 3.23.3 SWITCH
Holds both FPS and FSA Eoot
Proms and Bellows you to
switch between them. This
gives you the easy solution
to those disks that wont
Muffin and even the few that
don’t like BOOT1I3.
No modification to the Apple,
so no warrants Problems.
Fitted in less than a minute.
Does not sit on the disk
controller card; so no
conflict with colour card or
ITT modulator (unlike some
American ones).
SPECIAL PRICE TO BASUG
MEMEBERS FOR THE DURATION OF
THIS ISSUE ONLY
£9,955 +vat plus 50p PSP
Mail Order only —- send cheque
for £11.95 to:—
Rumtree Ltd.,
4 Dashwood House,
128 London Rd-
Enfield, Middx.
filling the magazine, only what to leave over
until next time, It is not just quantity, it is
quality as well.
The beginners may be neglected a little, perhaps
because they are afraid to be measured against
more sophisticated machine code routines and
other highly involved articles, We do have a large
number of beginners so if you have written a
short ten line program, or discovered how to do
something quite simple, someone somewhere is
going to thank you for having put it into writing,
Computer users can be compared to car owners,
Some just use the machine to get from Ato B and
let the program take over; e.g. just booting a
Visicalc disk means you need know only what you
want to do with the huge sheet of paper you are
presented with, There are others who want to get
into the workings of the machine, dissect it, find
out how it works and put it back together again.
These may be hardware or software ‘mechanics’ «
But to follow up the analogy with the car people,
those who tread the middle way who program with
their knowledge of how the machine works and
bring together the software skills of others,
travel to the best places and enjoy the journey as
they go. We have to be thankful there are so
many of them about} they are the truly creative
ones who help enrich all our lives, The collectors
also exist, seizing all software they can, but
never really using it. They do not really get the
best out of the machine. It is only a toy. We are
all overwhelmed with a new acquisition, but the
time comes when you realise that you are not
really interested in all that software, you start
to get selective and delete some of it, The Apple
starts to ripen and really yields its fruit when
you can use it creatively whether at the problem
solving, intellectual level or to actually do
something with it. That is not to say that playing
games is not good. There are times when we all
need to relax and games are the best way to
learn and stretch muscles in the brain you didn’t
know you had, both in writing and playing them.
Some of them can be very creative in themselves,
almost a new art form,
The main problem with the one lifespan allotted
to us, is fitting everything in , if you have to
work to pay for such an expensive hobby as well,
This may be the last corner I write for the time
being. The AGM will have been held before the
next issue is out and it remains to be seen who
will be sitting in the Chairmans seat next month,
I have enjoyed the initial six months and look
forward to serving in some capacity in the coming
year as we move on to bigger and better things,
Page 10
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
BASUG NEWS
BASUG LEAVES THE NEST
By Tony Williams
On Sunday April 24 BASUG ventured far afield
from its burned-in Herts habitat, namely to
Covent Garden, at the invitation of the
Inter-Varsity Club, This Sunday afternoon
“Essential Utilities" bull session was attended
by some 60 or so members, many of whom were
new faces experiencing their first club meeting
after joining at the North London Computer Fair,
Broad were the smiles of members living south of
the river, grateful at not having to make the long
trek across town to St Albans,
The session began in a chaotic fashion, that is to
say, far too organized, but after Ian Trackman
had gamely kicked off with his "Demo on 1
Monitor For 60 Viewers!" John Sharp managed to
break the session up into more manageable units.
Club stalwarts demonstrated a variety of
utilities useful to all levels of competence,
ranging from Richard Teed’s presentation of
D-patch (how to recover lost machine-code
routines on disk - strictly for the advanced
D-Appler) down to Vernon Quaintance’s
exposition of Renumber, Merge and Append. As
Vernon said, we might fondly imagine that our
members have passed beyond this kind of thing
already. Not so ~ every hands-on demonstration
of these fundamental routines finds an avid
audience, Perhaps we should coin a BASUG’S
Law! "There is always another beginner!"
Frank Kay started out by demonstrating some of
the more confusing aspects of the Apple’s
various cursor control facilities but soon did a
shimmy off into his favourite Pascal country,
Qver in the dark corner Ian Trackman
demonstrated two utilities, a mini-assembler and
his very own Super Editor, while John Roger by
the door showed off a complementary package —
Synergistic Software’s PLE or Program Line
Editor. I am a Super Editor person myself and
have recently also discovered PLE, and can
hardly think back to those drear and far -off
days - was it four, five months ago? - when T
was trying to do some serious programming
without either of these vital props,
One other facility which quite inadvertantly
escalated into a minor attraction was the Spider
Software Database on which I was doing
on-the-spot registration of new members. I only
wanted the facts, sir, but instead had to explain
the system instead, Pity I wasn’t selling,
Major request from members south of the river
and others! could we put them in touch with Apple
users living in their vicinity. Answer} Yes we
could, and will, either by helping to form local
groups or by placing free announcements in “Hard
Core". One valuable suggestion came from a new
member, Mr Lepley (a former Sorceror owner, new
to Apple) that BASUG sub-groups might find it
easier to get off the ground by affiliating to
existing local hobbyist clubs. His club, for
instance, the East London Amateur Computer
Club, meets weekly in the Harrow Green Library
(Leytonstone - no connection with Harrow!) and
would welcome an Apple Users section,
Thanks then to our hosts, the Inter-Varsity Club
= some of whose computing members sat in on our
session, Bruce Snyder (BASUG member) summed
up the afternoon! "This was exactly what we
expect a club meeting to be like, No formal
presentation piece, but lots of scattered events
going on simultaneously, and in the middle knots
of people moving about and talking. People who
would hesitate to air ‘their’ problem in front of a
large gathering are much more ready to do so in
small groups obviously operating on their level,"
THE SOFTWARE LIBRARIES
By John Rogers
As B.A.S.U.G continues to gain new members at a
steady gallop, likewise the individual sections of
the group grow at a similar rate, the software
libraries being no exception! This can only be
good news to you the user, but it does mean much
more work for those running the libraries, Tt is
because of the current situation that the
decision to make the libraries virtually a totally
postal concern has been taken.
The only two aspects of the libraries that will
continue at the main meetings will be, firstly the
taking of orders for programs from the
Contributed Software Library (CSL) and, secondly
the purchase or ordering of disks from the
Software Distribution Library (SDL), Offers of
programs to the CSL will also continue to be
accepted but it would help if (as tends to happen
at present) you lend us your disk (or tape) to do
what ever is necessary.
In addition, we shall make a postage and packing
charge for each order from the CSL received after
the end of May. This will take the form of a flat
rate of 30p to all members in the U.K., and will
be payable at the time of ordering, either in
stamps or postal-orders, The cost of SDL discs
and tapes already includes postage and packing.
The duplication of programs within the CSL is
increasing and highlights the point that 1f you
are going to type in a program specifically for
submission to the library, you should contact me
before you do.
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 11
The next publication of the CSL catalogue will
have the heading LENGTH changed to VALUE,
The reasons for this are, firstly that a number of
programs are in fact a suite of two or more and
sometimes are not of the same type (eg, one
BASIC and one machine code program), Secondly,
that as mentioned in the software libraries
article in Hardcore 1, differing types of program
carry different values, The value for each
program (or suite of programs) is calculated in
accordance with the table below.
TYPE VALUE
BASIC =1
Machine Code =3
Text Files =1
Apple Writer Files * =0,5
Binary Graphics File ** = 0.25
Written Text * per page =5
(NB, all values are ratios to 1 disk sector, apart
from the written text)
# @g. program documentation - a page of written
text is taken to be 1 page of A4 paper,
hand-written or typed text or drawings.
#* File(s) created as a demonstration from a
program in the submitted suite.
Finally I would like to take this opportunity to
thank all those who have submitted programs to
the library and to those who are helping to keep
the libraries running. Keep up the good work !
PPLE USEK GROUP EUROPE
By Tony Williams
Users of BASUG’S Software Library will have
spotted a German disc sent over by the Apple
User Group Europe, which, to judge from the
information available, should properly be known
as Apple User Group Germany since the material
concerns German-speaking areas only,
The group is considerably older than BASUG,
having been in existence in various incarnations
since early 1979 and as of January 1981 it claims
500 members, The Chairman and leading light is
W.Dederichs,
Most information about the activities of the
group comes in a monthly magazine originally
called Apple-Com-Post following in the
cherished tradition of execrable apple puns, but
now renamed, quite incomprehensibly, P-USER
Magazine. The magazine, still edited by Mr
Dederichs, presents some Apple chit-chat,
publishes lists of Apple hardware available and
the Apple dealers who stock it, and prints the
names and addresses of User Group members,
It regularly publicises forthcoming meetings of
local groups (usually in pubs!) in various parts of
Germany, mainly in the north, Some of its
listings of programs and utilities, time-saving
tips, etc. are original, but most are culled from
Call-A.P.P.L.E, and other U.S. sources, The
editors are trying to tap the rich vein of
grotesque humour latent in Apple users, as
evidenced in the call for contributed absurdities
to match the following
10 FOR GET 100-200
20 FOR I=0 TO ABOUT 12
30 LET A=1.3 OR 1.4
40 GOTO 100 OR PERHAPS TO 200
(taken from BYTE 4/79)
Readers found some difficulty in matching that.
The magazine is naturally replete with
anglicisms, (well done! as Henry Root would say)
which makes the meat more digestible for any
interested non-German speaking BASUG
members. For their benefit I have browsed
through the articles contributed by Apple User
Group Europe members and singled out the
following titles which might be of vital
importance to you,
I have disregarded U.S, originated materials, Let
me know if you are interested and I will arrange
to make the material available to you with brief
explanations.
1, Assembler program for reading strings
containing colons, commas and quotes marks
(Apple-Com-Post 1)
2, Analysis of program storage in
memory (A-C-P 3)
3. Basic Program for Radio Hams to measure
distance and direction of other stations (Mr.
Boeder.a-c-p 3)
4, Hardware Modification Tips to Avoid Need for
DOS 3.3 Basics Disc
5. DOS 3.3 Disk Map
6. Music! How to calculate semi-tones
7, Printing Hires graphics on NEC printer,
a Game "“Simu Astro" (all P-User Magazine Jan
81)
internal
In his message to members of January 25, 1981,
W. Dederichs mysteriously apologizes for the
‘treacherous’ demise of Apple-Com-Post which
he attributes to pressure of business (on
himself!) and lack of contributions from apple
users, There are clearly lessons to be learned
somewhere here,
Page 12
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
THE DISAPPEARING "IF" TRICK
By Ian Trackman
Digital computers (presumably so called because
a scientist once poked his finger into a Ram
socket to see how it worked) are fundamentally
very simple-minded machines, distinguishing only
between "Yes" and "No", "True" and "False" or,
more specifically, "On" and "Off". The “On" is not
a question of whether you have plugged your
Apple into the mains socket, but whether a
speaific location in the processor chip (the 6502
CPU) is or isn’t carrying an electrical charge, By
the time that a host of clever engineers and
computer systems designers have worked on that
electrical charge, it has been turned into the
Basic "IF" function,
When your Apple finds an "IF", it carries out a
series of calculations with the sole purpose of
establishing whether or not the relevant part of
the chip is electrically charged and therefore,
whether the "argument" (that is, the formula,
equation or whatever else that comes before the
"THEN") is true or false. If the argument is true,
Apple celebrates the fact by giving the argument
full marks with a score of 1 out of 1. If the
argument is not true, that is, if the "IF" test
fails, it is awarded © out of 1, In the computer’s
simple On/Off world, there are no part-scores
for “nearly true". (Please note that not all
Basics adopt the same scoring system - some use
0 for True and -1 for False). Armed with its © or
1 result, "IF" then decides whether or not to
execute the rest of the statement after the
"THEN",
Let’s now turn our attention to another Basic
function, "NOT". "NOT" is like the compulsive
liar in those puzzles of logic about the traveller
who meets three strangers at the cross-roads,
one who always tells the truth, one who
sometimes lies and our friend "NOT", for whom
"Yes is always “No", "True" is always "False",
“False” 1s always "True", 0 is always 1 and 1 is
always 0, Let’s put "NOT" to the test !-
IF (6=2%*3) THEN ws
"6 = 2 * 3" is our "argument". We'll keep it
enclosed in brackets so that we can recognise it
easily. As our argument is true, Basic gives it a
score of 1,
IF (6=4%#7) THEN wy
is false and gets 0,
IF NOT (6=2Z+#3) THEN
Now, "NOT" inverts the situation and we get 0,
Finally, i-
IF NOT (6=4+#7) THEN ww
produces 1,
We could have put the last two examples in
another way, using the "greater than" and "less
than" functions, so i-
IF (6<>2#3) THEN w
and
IF (6<>4#7) THEN wu
but there’s method in our madness. (Wait and see
!)
At this stage, we can’t actually see the 0 or 1
score, since it’s internal to the Basic
interpreter, What we have established is that, in
certain situations, an argument by itself or
"NOT" plus an argument will produce a 0 or 1 in
the Apple. Let’s now try to find it. How about ‘~
PRINT (6=2%* 3)
and sure enough, Apple replies with a 1. You’ll
find that it works properly with the other three
examples,
Here’s a slightly trickier example ‘-
A=0;PRINT(A=0)
Since the argument "A = 0" is true, the result is
1, Moving on i=
A=4:PRINT(A=4)
and the result is 1 (not 4!)
If we add in "NOT", so !-
A=0: PRINT NOT(A=0)
A=4; PRINT NOT(A=4)
then 1 becomes 0. You can’t say ‘~
PRINT <> (A=0)
because that produces a syntax error,
What happens if, instead of using an equation as
our argument, we use a variable ? The answer is
that the True / False test still works. However,
we can’t demonstrate the "True" condition with a
straight-forward PRINT statement, since !-
A=4!PRINT(A)
simply prints the value of the variable A, which
is 4, On the other hand, we can show the "False"
case with a "NOT" i~
A=4: PRINT NOT(A)
which gives us 0. What Basic is doing here is
evaluating whether A = 0, If it isn’t, we score 1,
which is inverted by the "NOT" to 0. If A has
some other value, the argument "A = 0" is false
and our True / False score is 0. Let’s use "IF" to
demonstrate the situation where the variable has
a value other than 0 ~
A=4/1IF (A) THEN PRINT "TRUE"
and we get "TRUE",
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 13
So here we have the beginnings of a powerful
programming tool. If you want to test whether a
variable equals 0 or has some other value, you
don’t have to say i~
IF X <> 0 THEN «1
but simply '-
IF X THEN wy
As you write your ultimate Adventure, you can
include statements like ‘-
IF LAMP AND OIL AND NOT BLIND THEN «..
(LA, OI and BL are, of course, variables),
Besides making for shorter code, there is
another advantage in this construction - speed,
X=10:FORI=1 TO 5000; IF X <> 0 THEN A=
X {NEXT
takes approximately 23 seconds, whereas !~
X=10;FORI=1 TO 5000; IF X THENA=X;
NEXT
takes only 14 seconds, Using "NOT" instead of "=
0" also produces time savings.
The other major use of this 0 / 1 idea derives
from the fact that when you multiply a number by
1, it stays the same and when you multiply it by
Q, it becomes 0, Let’s justify the title of this
article and make the "IF" disappear !
Now you see it i-
IF X = 10 AND Y = 20 THEN Z = 30
and - drum-roll, maestro, please ‘-
2=30#(X=10)#(Y=20)
and now it’s gone !
What we are saying in this line of Basic is ‘-
If X <> 10 and Y¥ <> 20 then !-
=30#0#0 (ie,2=0)
If X = 10 but Y <> 20 then i-
Z2=30%1#0 (ie. 2=0)
If X <> 10 but Y = 20 then t-
Z=30*#0#1 (ie, Z=0)
If X = 10 and Y¥ = 20 then {-
2=30#1#1(ie,2= 30)
Actually, that wasn’t a very good example, since
those brackets and multiplication add to Basic’s
computing time. However, there are two
situations where the idea can be of great use.
The first is where you want to have the
equivalent of several "IF"s followed by another
"IF" which applies to all of the cases. One
method is to have a number of "IF" statements on
different lines, each one followed by a "GOTO"
to fall into the next main "IF" statement.
Extending our new method to such statements as
A=5#(X=10)+ 104#(Y=20)-5#(2=30)
we can handle the entire series of “IF"s in one
go. Notice how we use the plus, minus and
multiply operators as the arithmetical
equivalents of "IF", "AND", "OR" and "NOT",
The second situation makes the "FN" (function)
statement much more powerful. As you know,
Applesoft will not handle multi-statement
function definitions, It would be useful to be
able to say something like !~
DEF FN A(X)
IF B <= 50 THEN FN A=RND(1)#X
IF B > 50 THEN FN A = RND (1) * 100
FN END
which normally has to be done with a subroutine,
But how about !-
DEF FNA(X)=RND(1)#((BC=50)* X) +
B> SO) # 100 ))
Two final words of caution - using 0 / 1 control
logic in a program makes it less portable and
harder for others to understand instead of
simple "IF ... THEN" constructions. Also, do
some bench-mark timing tests if timing is
important.
P.S, Now tell your friends that you understand
about Boolean algebra !
AMATEUR RADIO
### This month’s copy seems to have gone astray,
so here are two items from your good Editor.
WARNING! - I write with complete ignorance of
Ham Radio.
1, Kevin Hawkins ( G8 KIO / A - North London)
will be monitoring S20 from 4pm local time
Sunday afternoons from 7th June onwards for
anyone who would like to set up an Apple Natter
group in the London area, Anyone with comments
/ ideas for times or frequencies please get in
touch.
2 My Schaefer, Mutterstadter Str, 2, D-6700
Ludwigshafen, proposes an European
HAM-meeting, to start the first Sunday of each
month at 0900 GMT on 14,260 MHz, His call-sign
1" DK4UG.
STULY HARDCORE
COPY DATE — 30th JUNE
Page 14
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
NEW DEVELOPMENTS IN
TECHNOLOGY FOR THE
HANDICAPPED CHILD.
By Norah Arnold
Although it has been apparent for some time that
‘chip’ technology opens up exciting new
possibilities for the severely disabled, there has
been very little movement towards familiarising
teachers of handicapped children with the use of
microcomputers, At the Lady Zia Wernher School
for physically handicapped children in Luton,
however, a series of meetings has been arranged
to encourage teachers to implement the new
technology by which severely disabled children
unable to write in tie normal way can record
Maths, Engli- h and graphics.
Mr. Peter Deakin, Project Co-ordinator for the
Spastic Society’s Neath Hill Professional
Workshop, brought an Apple II with him when he
arrived at the school for the first meeting in
March. He described how Apple systems have
recently been handed over to to six of the
Society’s schools for spastic children.
Incidentally, the money for these Apples came
from the recent Blue Peter Appeal fund,
Why had the Apple been chosen? Mr. Deakin
looked in detail at what many small systems had
to offer, including Nascom, Pet and TRS80 before
deciding on the Apple mainly because of the
expansion slots,
In order to isolate the problems involved in the
use of the Apple by spastics, twelve severely
physically handicapped people, all graduates of
proved learning ability, have, with Mr. Deakin’s
help, been trying to implement an all electronic
office, Next time you hit the wrong key spare a
thought for those among the twelve who are foot
operators.
The first obstacle that has to be overcome is the
question of interfacing the handicapped child to
the computer. A child with limited hand control
may be able to manage with a keyboard cover on
which they can rest their hand while using a
pointer to press the selected key, Often Reset
has to be disconnected or linked to separate
outside switches. More severely disabled
children may have to rely entirely upon some kind
of joystick. The Spastic Society have adopted a
single plug-in card with internal keyboard which
the Apple scans for use by the handicapped child,
In this situation speed of operation is a problem,
Appropriate software can help by cutting out
some commands, or by removing some characters
from words, Researchers at King’s College,
London and at Edinburgh University have
co-operated to produce a program called
Shiftless, This cuts out all the two-key strokes
which would otherwise present a great problem
to disabled operators,
On exhibition at the Design Centre, London, are
three items which show how great an impact
microprocessors will have on the lives of
disabled people. The first is a Splink touch
sensitive word chart enabling those without
speech to communicate via a television screen;
the second is a Lightwriter touch sensitive
typewriter keyboard, and thirdly an input method
designed by Patrick Poon of King’s College,
London, using only two large touch pads.
In the future it is envisaged that a handicapped
child’s first toy should be a cheap computer with
few controls, enabling the child to use switches
to control simple programs, The child would then
adapt easily to the use of computers as a
classroom resource. Small computers mounted on
wheelchairs would be used by the children to
enter their individual work. These would then be
linked to the classroom’s Apple system, and the
work dumped out on a printer or stored on a hard
disk. It is hoped that intellectually bright
handicapped children would be able to use a
computerised Stock Control, Pay-Roll and Mailing
List by the time they left school.
Mr, Roger Jefcoate, consultant assessor and
lecturer on technical aids for disabled people,
who also attended the meeting at Lady Zia
Wernher School, made an appeal that experts in
the field of microcomputers who are interested in
helping the disabled should share information as
quickly as possible. This may prevent people
from re-covering work already done by others.
COMPETITION NEWS
A number of members have asked for clarification
of the way in which we’ll be calculating the size
of the Hex-Decimal / Decimal-Hex routines in
our competition.
The number of bytes taken will be the difference
between the Applesoft "beginning of program"
pointer and “end of program pointer", Don’t
worry if you don’t know how to work this out -
just have a go at the routines. If you CALL a
routine from the Monitor or the Basic Rom, the
bytes used there will not be added to the total.
AS a considerable number of new members have
joined since the competition was announced, we
have decided to extend the closing date until the
30th Tune to allow them a chance to enter. And to
make the competition even more exciting (isn’t
the glory of winning enough ?), the prize in each
category will be two free disks of your choice
from the Software Distribution Library, Winners
will be announced in the next issue,
Please also let us have your ideas for future
competitions, Do you want fun problems or
solutions to serious programming difficulties 7
May 1981 HARDCORE - The Journal of the British Apple Systems User Group Page 15
Verbatim.
MINIDISKS
Verbatim, the world’s
leading producer of minidisks,
makes the widest range of
minidisks available for word
processing and data processing
applications. Intent on main-
taining this position of leader-
ship, we constantly strive to
make our minidisks even better.
Each Verbatim minidisk
is equipped with a hub reinfore- ‘Try new Verbatim disks
ing ring to aid in registration, for the performance
reduce errors and give better of a lifetime.
alignment repeatability.
SPECIAL OFFER TO B.A.S.U.G. MEMBERS ONLY
10 x MINIDISKETTES £19+SOLNCLUSIVE OF
V.a.T._AND POST. ——
T ENCLOSE A CHEQUE MADE PAYABLE TO
B.A.S.U.G. CHEQUE No PLEASE
FORWARD TO ME BY RETURN AT THE ENCLOSED
Page 16 HARDCORE - The Journal of the British Apple Systems User Group May 1981
NEW PROGRAMS FOR
THE APPLE IT
D/DATABASE
D/DATABASE uses advanced Programming techniques and unique data Storage and retrieval
routines, A special high-speed disk 1/0 controls the data held on disk, searching and
evaluating information at many times the rate achieved by the standard DOS's random access
capabilities. Every possible byte on a disk is available for data storage on a DDA formatted disk.
D/DATABASE is not operated using limiting numbered indexes, All 'conversation' with the
system is in the form of logical Statements, similar to BASIC statements.
10 databases per disk maximum - 128 characters maximum record size.
9 character field names - 909 (DOS 3.2) or 1119 (DOS 3.3) useable records per disk.
9 user named fields per record - 27 characters maximum per field within total limit,
16 character index files - D/DATABASE is VERY user-friendly.
£39.95 Basic and machine-code, Requires 48K. Specify DOS 3.2 or 3.3 when ordering.
DDA FILES CONTROLLER (D/DATABASE DISK UTILITIES)
This package controls Sorting, copying, restructuring ete of D/DATABASE files. Facilities
include:- Copy disk; Copy database; Alpha-sort database (any field etc); Modify format; Re-
format and restructure files; Create DOS random access file from database; Move blocks of files +
much more.
£39.95 Basic and machine-code. Requires 48K. Specify DOS 3.2 or 3.3 when ordering.
OLDORF'S REVENGE
An exciting hi-res game using over 100 pictures. As you explore the caverns and castles
looking for treasure you must battle the one-eyed, two-thumbed Torkie; find the Grezzerlip's
sword; visit the Snotgurgle's palace and journey through the domain of the three-nosed Ickyup,
£14.95 on disk only. Requires Applesoft and 48K,
TARTURIAN
Explore 160 rooms (each in hi-res) gathering weapons and treasure that will prepare you for the
final battle against the Tarturian. You will encounter deadly Krolls, battle the Minotaur, try
and get by COunt Snootweeker, decipher the Yummy Yakky's secret and avoid ghouls,
£19.95 on disk only. Requires Applesoft and 48K.
PROGRAM LINE EDITOR
This program operates in two modes, firstly as a program editor allowing insertion, deletion and
modification of any line, and when the changes are complete, hitting RETURN anywhere in the
line, adds the now changed line to the Program. The second mode is the 'Keyboard Macro' mode.
The much neglected "ESCAPE! key allows you to assign any sequence of characters to any key on
the keyboard, Thus, frequently used commands can be reduced to two keystrokes,
£24.95 Machine-code. Available on disk only,
All the above software packages and many more for your Apple system are described in our free
catalogue. Please write or telephone for your copy, The prices quoted above include VAT at
15 but please add 50p P+P for orders under £30.00 totally.
SPIDER SOFTWARE
44 LENHAM ROAD, SUTTON, SURREY SM1 4BG
TEL:- 01-661 2365
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 17
DOS DIFFERENCES
By John Sharp
Those people who have bought their machine with
DOS 3.3, as well as those who have not yet
upgraded to 3.3 from 3.2 are not always clear
what is the difference between the two, and what
they can and cannot do with the DOS they are
using:
If you have DOS 2.2, you can only run and
initialise DOS 3.2 disks.
If you have DOS 3,3 you can run and initialise
DOS 3.2 and DOS 3,3 disks,
If you have the Pascal system, then you have
DOS 3.3,
IF YOU HAVE DOS 3.2
The disks you are using have 13 sectors on 35
tracks. Three of these are normally used to store
the DOS so that you can boot from the disk, and
one to store the catalog or directory information,
This leaves 31 tracks to store your programs on,
giving you 31#13 = 403 sectors = 101K of memory.
(Each sector holds 2546 bytes»)
If you wish to update to DOS 3,3 then you must
buy a DOS 3,3 UPDATE KIT which consists of two
chips, the PSA and P46A proms which replace the
P5 and P4 proms on the Disk controller card,
There is also a copy of the DOS 3.3 manual, and
two Disks, a 3.3 MASTER and a BASICS disk, It
is possible (but not necessarily easy) to get hold
of the two proms seperately, but you would still
need a 3,3 MASTER disk in order to boot and
initialize 3.3 disks.
IF_YOU HAVE THE LANGUAGE CARD OR
PASCAL SYSTEM
When you bought the PASCAL system, you had to
replace the PS and Pé proms with the PSA and
P6A proms, if you had a DOS 3,2 system, You
would also have had a BASICS disk the function
of which is to allow you to boot a DOS 3.2, ive, 13
sector disk, In order to run DOS 3.2, all you need
now is a copy of the 2.3 master disk»
If you have bought a language card or Ramcard
separately and are still running DOS 2,2 and have
not replaced the PS and Pé proms with the PSA
and P6A versions, you may have trouble running
certain programs and languages. You will only
get the full benefits of the card by having DOS
3.3,
IF YOU HAVE DOS 3.3
The disks you are using have 16 sectors on 35
tracks, but with the directory and DOS on the
disk there are only 31 available, giving
31#*14=494 sectors =124K of storage.
If you wish to run a DOS 3.2 disk, you can either
run the BOOT13 program on the MASTER disk, or
run the BASICS disk which is essentially the
same, There seems to be a problem with a few
programs, if you try to run them from a DOS 3,Z
disk through the BOOT12 program. If you know of
any then write in} someone else may need to
know, or they may know why.
If you have got a DOS 3,2 disk booted up this
way, and you initialise a disk it is now a DOS 3.2
slave disk. (If you think you have not got one
then you can use the INTRODUCTORY DISK.
These are all DOS 3,2 at the moment precisely
because everyone can run a DOS 3.2 disk as it
stands. The reverse is not true, you need the
P6A prom on the controller cardto run a DOS 3,3
disk. You need the PSA to boot up on DOS 3.3,
but not to run it.)
If you want to move a program from a 13 sector
disk to a 14 sector disk, then there is a MUFFIN
program on the 3,3 MASTER which enables you to
do this, It requires DOS 3.3 to be active. To
reverse the procedure, use the PUFFIN program
on DISK 3 of the SOFTWARE LIBRARY (also
available as a _ single program in the
CONTRIBUTED SOFTWARE LIBRARY). This
requires DOS 32 active, There are also
DMUFFIN and NIFFUM which serve the same
function. These are also in the CONTRIBUTED
SOFTWARE LIBRARY,
seesesttte WARNING tit eattitee
There are a number of utilities in the SOFTWARE
LIBRARY, which came in as DOS 3,2, which only
work with DOS 3.2 active. If you get a disk which
is DOS 3.2 (this means all available at present,
ives up to number 16) from the SOFTWARE
LIBRARY then you could irreversibly corrupt a
DOS 3.3 disk if you are using a DOS 3.2 Utility
which writes to the disk, This does not apply to
normal programs}; they can be MUFFINed over and
used with no trouble,
— — -- _ ——
APPLE W/ITT 2020
109 Program featuring tully automate
and compre eit en
48K and one Diak drive
Costing around @ hundred Dou
RELOCATED INTEGER
Enabias any InCeger Program to run without an
loteger Card includes mini-assembler and now
DOS 3.2 compatible. Specity memory size when
oraerng
Cassette Systems £12.00 Disk Systems £14.00
‘*** TRADE ENQUIRIES INVITED ***
sujet “tm a eo a
dseantn teil Ty
Tal ‘un ratte eae
Page 18
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
AN INDEXED RANDOM ACCESS
METHOD FOR THE APPLE IT
(C) Copyright By T Tse
"99% of business programming involves simply
storing and retrieving information”
(Nik Spicer - Hard Core Vol 1 No 1)
How true! Data storage on any computer system
is generally not a problem at all, The slow and
tedious work normally involves the search and
retrieval of the damn information, Anybody who
has written a stock control or name and address
system will know exactly what I mean.
The index search routines presented here provide
a simple and fast indexing method for looking up
data records stored in a Random-access text file.
For most applications, an index search and data
retrieval time of less than five seconds will be
achieved.
The machine code routines written for a 48K
Apple II system interface with Applesoft
programs via the usual CALLs. The codes, and
indeed the index storage area, are situated in
the high part of memory (Fig, 1), and should be
protected from Basic by resetting HIMEM! to an
appropriate value,
Figs 1, System Memory Map
1
SAE nnn
! Program and
Data Storage
Area
HIMEM: 32768 ($8000)
t
Index Area
Rnd-Ace File
pee ata
Ref Key ! Red 0 Unused
$8000 +
TT
$ 3 Index 1 ! Red 1
SING te
$9600 +
! Data Buffers
! Maxfiles 3
'
$9000 +#-—-—--—--
! Aeple DOS
! Applesoft
! Monitor
1
$FFFF +
Notice also that the index keys are stored asa
Binary file on disk - the obvious advantage here
being the fast BLOAD and BSAVE of the index
data, Within the index storage area itself, index
key ‘ZERO’ is used to store the reference key for
the search, and is used internally by the machine
code routines quite often, The second index key,
referred to as index key ‘ONE’ indexes the data
stored at Relative Record Number ‘1’ of the
Random-access file, Program 1 lists a typical
HELLO boot program to partition the Apple II
Memory area before linking to a main application
program.
The routines written, though not transportable
to other parts of memory, are flexible enough to
allow easy user modification of the index area
size, provided certain strict rules are observed,
For convenience, several variables can be defined
at this stage.
INDEX = 8 x 4096
Start Of Index Area
Reference Key Stored Here
(Also HIMEM;)
CODES = 9 K 4096 + S * 256
Start Of K/C Code Routines
MAXNO = 330
Max No Of Keys In Index
RCDNO = PEEK(CODES + 31) x 256
+ PEEK(CODES + 30)
Record Number Being Indexed
The machine code routines have five main entry
points for easy interfacing with Applesoft
programs. These are detailed and commented
upon below.
1, CLRALL - (CALL CODES) - $7500
This clears the whole of the index area to nulls.
To be used with care!!
Z, FREKEY - (CALL CODES+3) - $9503
This call returns the record number RCDNO of
the first occurrence of a free index key (null
key). If RCDNO > MAXNO then the index area is
full,
3. FINKEY - (CALL CODES+6) - $9506
This routine tries to match the reference key
against one stored in the index area, If RCDNO >
MAXNO then no key match has been made, and
this is usually an error condition. If RCDNO <=
MAXNO then a match HAS been made at RCDNO.
On an Add option, this implies a DUPLICATE key,
while on an Amend option, the data stored at
RCDNO can be read in and displayed in seconds.
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 19
4, REPKEY - (CALL CODES+%) ~ $9507
This routine moves the reference key into the
index area pointed to by RCDNO,
5, DELKEY - (CALL CODES+12) - $750C
This last routine deletes the reference key
specified from the index area at key RCDNO,. The
index key is reset to nulls,
It is left to the user to ascertain that the
RCDNO parameter passed to the machine code
routines (in 4 & 5 above) is valid for these
operations, Failure to comply may scramble the
index area,
The size of the index storage area can be
modified at will to suit most applications, For
this the user will need to provide the following
parameters to the codes. This data portion
occupies only five bytes of memory, starting at
address $9510,
KEYST $9510-11 $ $00 $80
Start Of Index Key Storage Area
In Reverse Hex 6502 Format
KEYLEN $9512 + $10
Length Of Each Index Key
$9513-14 $ $48 $01
Max No Of Keys In Index PLUS 1
Tn Reverse Hex 6502 Format
As a general rule,
KEYMX = CODES($7500) - KEYST
HIMEHS = KEYST
Finally, the source listing of the machine code
routines used in the index search is included here
for the advanced programmer who intends to
improve on them by adding sorting and multiple
key search routines, The listing of an Applesoft
program to demonstrate the index search
facilities also follows.
For the less experienced programmer, a
demonstration diskette containing all the
necessary software is available from the
Contributed Software Library. (Please contact
John Rogers)
APPLE IT 48K
INDEX SEARCH DEHO
WRITTEN BY T TSE
(C) COPYRIGHT 28-JAN-1981
ALL RIGHTS RESERVED
“g8 888
7
10 TEXT ! HOME : SPEED= 255
20 PRINT CHRS (4)"HAXFILES 3"
30 HIMEM: 8 x 4096
40 PRINT CHR$ (4)"GLOAD INXCODES,A$9500"
50 PRINT CHRS (4)"BLOAD TNDEXKEYS,A$8000"
60 PRINT CHR$ (4)"RUN DEMOPROG"
APPLE II 48K
INDEX SEARCH DEMO
WRITTEN BY T TSE
(C) COPYRIGHT 28~JAN-1981
ALL RIGHTS RESERVED
“a8 888
10 INDEX = 8 x 4096! REM START OF INDEX
12 CODES = 9 x 4096 + 5 x 256; REM START OF H/C CODES
14 MAXNO = 330; REM MAX NO OF KEYS
16 KEYLN = 163 REM INDEX KEY LENGTH
oh
20 «TEXT + HOME + SPEED= 255
22 \VTAB 1! PRINT “INDEX SEARCH DEMO PROGRAM"
24 = VTAB 2? PRINT "WRITTEN BY T TSE"
26 VTAB 3} PRIN ee
28 VTAB St PRINT "VERSION 1,0"
30 VTAB 6: PRINT "28-JAN-1981"
32 VTA 10: PRINT "PLEASE SELECT AN OPTION"
34 VTAB 12% PRINT "1, ADD NEW DATA"
36 VTAB 13! PRINT "2, AMEND DATA"
38 UTAB 14} PRINT "3, DELETE DATA"
40 UTA 15; PRINT "4, INITIALISE DATA"
42 VIAB 16+ PRINT "S, TERMINATE SYSTEM"
9%
SO VTAB 19! PRINT "WHICH (1-5)"
55 VTAB 19: HTAB 12+ INPUT AS
60 IF AS = "" OR LEN (AS) > 1 THEN So
65 IF AS < "1" OR AS > "5S" THEN 55
70 ON VAL (A$) GOSUB 1000,2000,3000,4000,5000
75 GOTO 20
Wit
98 $ REM INTERFACE ROUTINES
ay
100 FOR I = 0 TO KEYLN ~ 1% POKE INDEX + 1,0} NEXT I;
RETURN : REM CLEAR REF KEY
110 RCONO = PEEK (CODES + 31) x 256 + PEEK (CODES + 3
0): RETURN + REM RECORD NUMBER
120 GOSUB 100! FOR I = 0 TO LEN (I$) - 13 POKE INDEX
+1, ASC ( MIDS (I$,I + 1,1))! NEXT Ti RETURN ! REM ST
ORE A REF KEY
Page 20 HARDCORE - The Journal of the British Apple Systems User Group May 1981
1975 397 $
198 + REM INTERFACE CALLS 398 $ REM INPUT A KEY
199 + at
200 CALL CODES! RETURN + REH CLEAR ALL INDEX KEYS (CA 400 VTAB 4% HTAB 113 INPUT "";A0$
RE!!) 405 IF A$ = "" THEN POP ! REM TO MENU
210 GOSUB 100 CALL CODES + 3% GOSUB 110; RETURN + REM 410 IF LEN (A0$) > 16 THEN ADS = LEFTS (A0$,16)
FINDS RCD FOR A FREE KEY 415 VIAB 43 HTAB 113 PRINT ANS}: CALL - 868
220 GOSUR 120; CALL CODES + 6} GOSUE 110: RETURN + REH 420 RETURN
FINOS RCD FOR REF KEY 497 +
730 CALL CODES + 9! RETURN $ REM SAVE REF KEY INTO IN 498 : REM INPUT DATA
DEX 499 $
240 (CALL CODES + 12} RETURN } REM DELETE INDEX KEY 500 TAB 7} HTAB 11 INPUT ""jAAS! IF AAS < > "" THEN
27 ALS = AAS
298 $ REM SCREEN DISPLAY ROUTINES 505 IF LEN (Al$) > 20 THEN Al$ = LEFT$ (A1$,20)
299 + 507 TAB 7! HTAB 11! PRINT Al$}3 CALL - 868
300 TEXT + HOME + YTAB 1; INVERSE : PRINT A$! NORMAL S10 VTA 93 HTAB 11: INFUT "";AAS! IF AAS < > "" THEN
305 VTAB 43 PRINT" KEY oe A2$ = AAS
310 VTAB 73 PRINT" DESC os 515 IF LEN (AZ$) > 10 THEN AZ$ = LEFTS (A2$,10)
315 VTAB 9: PRINT" DATAL 4, 517 VTAB 9: HTAB 11! PRINT A2$}3 CALL - 868
320 VIAB 10} PRINT " DATAZ . 520 TAB 10 HTAG 113 INPUT "";AAS: TF AAS < > "" THE
325 VTAB 11: PRINT “ DATAS « N ASS = AAS
330 YTAB 133 PRINT" OTHER 525 IF LEN (Ag$) > 10 THEN A3$ = LEFT$ (A3$,10)
335 TAB 173 PRINT "CONFIRM ."+ RETURN 527 VTAB 10} HTAB 112 PRINT A$$: CALL - 848
349 3 530 VTAB 11! HTAB 113 INPUT "SAAS! IF AAS < > "" THE
350 TEXT : HOME $ VTAB 1! TNVERSE $ PRINT A$! NORMAL N A4S = AAS
355 TAB 4! PRINT" KEY “AOS 5O5 IF LEN (A4$) > 10 THEN A4$ = LEFTS (A4$,10)
360 YIAB 7: PRINT" DESC “ALS 597 VTAB 11: HTAB 11: PRINT A4$}i CALL - 868
365 TAB 9{ PRINT " DATA 1 = "“AZ$ 540 VTAB 13! HTAG 11; INPUT “"jAAS: IF AAS < > "" THE
370 UTAE 10: PRINT " DATA 2 "AIS N ASS = AAS
375 VTAB 11: PRINT" DATA 3 "A4S S45 IF LEN (A5$) > 7 THEN AS$ = LEFTS (AS$,7)
380 YTAB 13} PRINT" OTHER "ASS 547 VTAB 133 HTAB 11! PRINT AS$}} CALL - 868
385 VTAB 17} PRINT "CONFIRM =." RETURN 550 RETURN
APPLE ORCHARD
To subscribe direct write to :-
APPLE ORCHARD SUBSCRIPTIONS
PO BOX 1493
BEAVERTON
OR 97075
USA
The subscription is $10 per year, for 4 issues,
published quarterly, with overseas postage of
$10 giving a total of $20, The Bankers Draft or
Money order in $USA should be made ot to "THE
INTERNATIONAL APPLE CORE ", You can get a
Bankers Draft from your bank, but it will cost
you about £3}; you can get an International
Money Order from The Post Office, again at a
colossal fee. The cheapest way is to find a
branch of BARCLAYS BANK INTERNATIONAL,
which will make you out an International
Money Order over the counter for about 60p.
Se
|
HELP WANTED
SOFTWARE
LIBRARY eae
HELP & ADVICE
ETc
MAGAZINE
MEETINGS tee
EXHIBITIONS
SPECIAL
ETC
cee eee
eee
OFFERS
cee eee
eee eee
Q. Where does all this
stuff come from 7
A.From You — or some of
you !
BASUG
qaroup; and
services are
BY, as well as FOR;
members themselves.
a voluntary
all these
provided
the
is
So if you can help in any
way, Please get in touch.
Page 21
May 1981 HARDCORE - The Journal of the British Apple Systems User Group
: 397 + 1997
598 REM CONFIRM “Y’ OR ‘N’ 1998 ¢ REM AMEND DATA
: 1999 5
:
59
600 GOSUB 350: REM RE-DISPLAY
605 VTAB 173 HTAB 11! INPUT ""SAd$
610 IF Aés THEN 605
612 IF LEN (A6$) > 1 THEN 600
615 IF Aé$ = "Y" OR A6$ = "N" THEN RETURN
620 GOTO 605
697
678
699
700 PRINT CHR$ (4)! GOSUB 230; REM SAVE KEY INTO IND
REM WRITE A RECORD
705 PRINT CHRS (4)"0PEN DATAFILE,L64"
710 PRINT CHR$ (4)"WRITE DATAFILE,R"RCDNO
715 PRINT A1$: PRINT A2$} PRINT A3$i PRINT A4$! PRINT
720 PRINT CHRS (4)"CLOSE"SUF = 1: RETURN + REM UPDAT
ED FLAG
797 $
798 + REM READ A RECORD
799 $
800 PRINT CHRS (4)
805 PRINT CHR$ (4)"0PEN DATAFILE,L64”
810 PRINT CHRS (4)"READ DATAFILE,R"RCONO
815 INPUT A1$,A2$,A3$,A%$,A5$
820 PRINT CHRS (4)"CLOSE") RETURN
997 +
998 + REM ADD NEW DATA
999 $
1000 A$ = “ADD NEW DATA": GOSUB 300
1005 GOSUB 210; REM FIND A FREE SPACE
1010 TF RCDNO > (MAXNO) THEN 15003 REX NO SPACE
1015 GOSUE 400: REM INPUT KEY
1020 I$ = A0$; GOSUB 220; REM INDEX CHECK
1025 IF RCDNO < = (MAXNO) THEN 1600! REM DUPLICATE K
ey
1030 ALS = ""IAZ$ = "ASS = ""IAKS = "LASS = 8
1035 GOSUB 500; REM INPUT REST OF DATA
1040 GOSUB 600: REM GET CONFIRMATION
1045 IF A6$ = "N" THEN 1015
1047 GOSUB 210: GOSUB 120
1050 GOSUB 700! REM WRITE RECORD
1055 GOTO 10003 REM REDO
1497 $
1498 | REX NO SPACE IN INDEX
1499
1500 A$ = “INDEX SPACE EXHAUSTED - HIT RETURN KEY"
1505 VTAB 23; HTAB 1; INVERSE } PRINT AS}? NORMAL
1510 GET AS} IF ASC (A$) < > 13 THEN 1510
1515 POP i RETURN
1597 ¢
1598 + REM DUPLICATE KEY ENTRY
1599 +
1600 A$ = "DUPLICATE KEY FOUND - HIT RETURN KEY"
1605 VTAB 23: HTAB 1! INVERSE ¢ PRINT AS}? NORMAL
1610 GET ASS IF ASC (A$) < > 13 THEN 1610
1615 GOTO 1000
2000 AS = "AMEND DATA": GOSUB 300
2005 GOSUB 400! REM INPUT KEY
2010 I$ = A0$: GOSUE 220} REM INDEX CHECK
2015 IF RCDNO > (MAXNO) THEN 2500! REM KEY NOT FOUND
2020 GOSUB 800; REM READ RECORD
2025 GOSUB 350! REM DISPLAY RECORD
2030 GOSUB 600: REM CONFIRH OK
2035 IF Aé$ = “N" THEN 2000
2040 GOSUB 500: REM AMEND DATA
2045 GOSUB 600: REM CONFIRH AGAIN
2050 IF Aé$ = "N" THEN 2040
2055 GOSUB 700; REM RE-WRITE RECORD
2060 GOTO 2000! REM REDO
2497 +
2498 $ REM KEY NOT FOUND
2499 ¢
2500 A$ = “KEY NOT FOUND - HIT RETURN KEY"
2505 YTAB 23: HTAB 1: INVERSE } PRINT A$}} NORMAL
2510 GET AS IF ASC (AS) < > 13 THEN 2510
2515 GOTO 2000
2997 +
2998 + REM DELETE DATA
2999 ¢
3000 AS = “DELETE DATA"! GOSUB 300
3005 GOSUB 400; REM INPUT KEY
3010 I$ = AQ} GOSUE 220; REM INDEX CHECK
3015 IF RCDNO > (MAXNO) THEN 35003 REN KEY NOT FOUND
3020 GOSUB 800: REM READ RECORD
3025 GOSUB 350: REM DISPLAY RECORD
3030 GOSUB 600; REM CONFIRM OK
3035 IF Aé$ = "N" THEN 3000
3040 GOSUB 240: REM DELETE INDEX KEY
3045 GOTO 3000: REM REDO
3497
REM KEY NOT FOUND AGAIN
3499
3500 AS = "KEY NOT FOUND - HIT RETURN KEY"
3505 VTAB 23% HTAB 13 INVERSE } PRINT AS}3
3510 GET AS; IF ASC (A$) < > 13 THEN 3510
3515 GOTO 3000
39975
3996
3997
3998
3977
4000
4005
REM CLEAR INDEX AREA
REM BSAVE EMPTY INDEX
REM INITIALISE DATAFILE
PRINT CHRS (4)! GOSUB 200
PRINT CHRS (4)"BSAVE INDEXKEYS,A$8000,L$1500"
4010 PRINT CHR$ (4)"OPEN DATAFILE,L64”
4015 FOR I = 1 TO MAXNO
4017 TAB 21: PRINT “DATA RCD } “T
4020 PRINT CHR$ (4)"WRITE DATAFILE,R"I
4025 FOR J = 1 70 5} PRINT ""S NEXT J} PRINT CHRS (4)
4 NEXT I
4030 PRINT CHRS (4)"CLOSE"! RETURN
4996
4997
A998
4999
5000 PRINT CHR$ (4); IF NOT UF THEN 5010
5005 PRINT CHRS$ (4)"BSAVE INDEXKEYS,A$8000,L$1500"
‘S010 END
REM TERMINATE SYSTEM
REM BSAVE INDEX TO DISK
Page 22 HARDCORE - The Journal of the British Apple Systems User Group May 1981
eee ee — —
IO=88
TSE COMPUTERS APPLE JC ASSEMBLER PAGE 81
ID=81
?
$9508
CLRALL
FREKEY
FINKEY
REFKE'’
DELKE'’
B35 )35)
i
yunhintan
COUNTH
RTRCCL
RTROCH
une tana
CLRKEY LDAIM
CLRONE Lo
LOY LENPAR
CEY
CLRLOP STAIY INDEX
DEY
BFL CLRLOP
RTS
TRANSF LOVIM $07
TRHLOF LOAN KEYSTL
i STAAY STPARL
B530: 953C 2 ceYy
B54: 953 18 FP BFL TRNLOP
B55G: 953F 60 RTS
COPYRIGHT
N-13S1
'TO
Wai)
'Ta
'TO
!TO
CLEAR ALL KEYS
FING A FREE KEMSPACE
SEARCH FOR SPECIFIED
REPLACE SPECIFIED
CELETE SPECIFIED KEY
'HUMERIC ZERO
AGE ZERO INDE
‘START OF KEY STORAGE
!DEFINE START OF KEY STORAGE
“DEFINE KE'! LENGTH IN HEX
'DEFINE MAX+1 WO OF KEYS
'L=LOWEYTE H=HIGHEYTE
IN INDEX
'THIS IS RECORD NUMBER COUNTER
'INITIALLY SET TO ZERO
'KE START PARAMETER ¢LOl>
'KEY START PARAMETER ¢HIGH>
'KEY LENGTH PARAMETER
'MAS COUHT PARAMETER <¢LObl>
'MAX COUNT PARAMETER ¢HIGH>
'RETURH RECORD NUMBER ¢LOlW>
'RETURN RECORD NUMBER ‘HIGH?
(LEAR: REFERENCE KE’
ESAUE: IN PAGE ZERO FOR INDEX
+81
'CLEAR A KEYWSPACE
'GET PARAM FOR INDEX
!NUST DO THIS
'CLEAR KEY BYTE
'READY FOR NEST BYTE
'LOOP TILL FINISHED
'TRANSFER KEY’ PARAMETERS
‘LOAD KEY DATA
'SAVE KEW PARAMETERS
'REACY FOR MEST BYTE
'LooP TILL FINISHED
May 1981 HARDCORE - The Journal of the British Apple Systems User Group Page 23
O36:
TSE COMPUTERS APPLE JC ASSEMBLER FAGE 62
PNTUPD
CEHERe
ADDCHE
ENE
INC
RCDCHE LBA
CMF
BHE
LDA
CMF
BNE RETU IRM! 3
BEG = POPRTH ROR: RO HUMBER HERE
COMFAR LDY = LEHPAR !KEY' COMPARISON
EY ST
COMPIT LOAIYY’
CMPAY k ' INST REF KEV
BNE RETURN ! RETURN FOR NEXT
DEW GALL BYTES
MUS
BFL CCMPIT 1 LGOF TILL DONE
POPRTH FLA 5 ere CHECK OK
PLA LIES TO MATH CALLING PROG
RETURN RTS IST aTEHTFORVIARD RETURN
REPLCE LOY’ LENFAR !REPLACE REF KE’ INTO INDEX
DEY ‘AGAIN MUS
REPLOP LORA! KEVSTR !GET A REF KEY BYTE
Stary INDEN !SAWE INTO INDEX AREA
REPEAT FOR ALL BYTES
REPLOP !LOOP TILL FINISHED
CLRALL JSF
CLRLUPF
CLEAR TH Co
'LOOP TILL ALL COHE
FREKE' 'CLEAR REF KE
FINKE’ ! TRANSFER
COMLOP = PHTU TE RECORE POINTERS
ISR COMPAR MPARE REF KEY TO INDEX
JMP COMLOF !L TILL ALL POHE
REPKE! JMP REPLCE !REPLACE REF KEY INTO INDEX
CLROME 'CLEAR INDE KEY
Page 24
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
BEGINNERS’ PAGES
By John Sharp
PEEKING AND POKING
To a beginner Basic is quite a mindfull to deal
with, It does have some connection with the
English language, in that commands such as
PRINT mean something related to their everyday
use, The two commands PEEK and POKE have an
aura of mystery about them, however. They are in
fact used precisely as their name suggests. PEEK
lets you look at something, and POKE lets you
push something into a certain location. This word
location’ is the key to what is happening. The
computer memory (be it RAM or ROM) is a set of
locations like pigeon holes which store numbers,
which are processed by the microprocessor (the
brain at the heart of any micro) to carry out the
instructions you tell it by means of your
program, The microprocessor (in the Apple the
4502 microprocessor chip) runs along these
memory locations executing the instructions it
sees in each of the pidgeon holes, Some of the
locations have specific tasks as switches to set
various conditions, for example to put you on the
graphics instead of the text screens, Others are
actual parts of a program,
When you see a POKE, there are always two
numbers separated by a comma, POKE 50,255
means put the number 255 into the 50th location
in the memory.
If you see POKES in a program it is important to
recognize the context in which they are being
used, especially if you want to convert programs
written for other machines. In general there are
two ways you might see one or more Pokes in a
program line, The first uses Basic to write a
machine code routine into memory, This is usually
a list of Pokes such asi-
POKE 74,1! POKE 749,32! POKE 770,221: POKE
771,221! POKE 772,206! POKE 773,0! POKE 774,33
POKE 775,248: POKE 776,96
and often is CALLED by the program elsewhere,
The CALL needs to be followed by a number
which tells the computer where to start in the
memory, and is very much like going to a
subroutine, except that it is a machine code
subroutine. The number will often be one of the
early numbers in the set of Pokes, In the case
above a CALL769 will evoke a response} if you
want to know what happens try it and see. If you
see this type of example in a PET program for
instance you would need to know some machine
code to understand what it is doing in order to
convert it, It may be possible to use it directly,
but normally it will have to be rewritten. A shape
table may also be Poked in as a set of numbers in
the same way,
The other way you might see a Poke is in
isolation. This is more often than not setting a
switch, In a PET program you would have to
know exactly what it did before you could find
the equivalent Poke or command to use on the
Apple. The location 50 can be used on th Apple as
a switch to set whether a character that is
printed is shown as NORMAL, INVERSE, or
FLASHing, You can in fact use these words as
commands in Applesoft, but not in Integer Basic,
so if you wish to use these effects in an Integer
Basic program, you have to use Fokes to flick the
switches. If you put the number 63 into location
50 with a Poke then the characters printed next
will be printed INVERSE, If you put 127 there
they will be printed FLASHING, To get back to
NORMAL it is necessary to POKE 255 into
location 50, The following short program
demonstrates this:-
10 POKE 50,255 ! REM SETS TO NORMAL
20 GOSUB 100
30 POKE 50,63:REM INVERSE
40 GOSUB 100
50 POKE 50,127!REM FLASHING
60 GOSUB 100
70 POKE 50,255:REM SET BACK TO NORMAL
8&0 END
100 PRINT "THIS IS A STRING "
110 RETURN
You might try putting other numbers (up to 255)
in this location, to see what happens. There may
be a load of rubbish or there may be nothing
printed out. Only the three numbers 63,127 and
255 are predictable, Numbers will not always
flash or come out inverse.
The POKE 33,33 and POKE 33,28 described in the
previous two ‘HARDCORE’ Beginners pages are
further examples of using POKES to set a switch.
In this case they set the text width across the
screen.
PEEK into this page next month for more POKES
and to learn about PEEKS,
PROBLEMS WITH OVERWRITING THE HIGH-RES
PAGES
Have you had the end of your program
mysteriously disappear when you tried to run it?
If it was a very long program, it is quite likely
that you cleared or used Hi-Res page one. If the
Program ran into that area of memory then all
code you put in to designate your program would
have been replaced and so your program
disappeared,
May 1981
HARDCORE -~ The Journal of the British Apple Systems User Group
Have you ever had a picture on the High-Res
graphics pages which suddenly developed a lot of
dotted lines such as the example shown? The
reason is that the program is using up a large
amount of memory either to store itself or for
data when it runs, This may be for instance
because you are filling up an array in even a
small program. As was discussed above the
values of the numbers in the memory locations
can be interpreted in various ways, depending on
how the machine is being used. When a number
other than zero is loaded into the area reserved
for the Hi-Res pages and the graphics is being
used they are interpreted as plotted points, all
of which are visually meaningless. This is why
you have to clear the page before using it, since
there is often some of this garbage to clear up.
How stupid to have the graphics located in the
middle of memory, you might say, This is
probably true at the moment, since almost
everyone has 48k with memory being so cheap,
but this wasn’t always so. If you only had 16k of
memory, at least you could use one page of
Hi-Res graphics, Then as you progressed to 24k;
another page became available. These pages were
fixed by the need to balance the selling point of
graphics with the machine, against the fact that
many people could not afford the higher memory.
There is a case for revising the ROM to take
account of this, but then someone else might lose
out,
There is a way to overcome the problem, It
requires a few POKEs to set some switches to
tell the Apple to load your Applesoft program
above the Hi-Res pages, so that any additions in
the way of arrays or variables happen well away
from the graphics area, If you are only using
HGR and not the second page !-
POKE 103)1
POKE 104,64
POKE 16334,0
Now LOAD your program in the normal way from
either tape or disk, and it will load where HGR2
normally resides+
IF YOU NOW USE HGR2 YOU WILL DELETE
YOUR PROGRAM,
If you wish to be clear of both pages then i-
POKE 103)1
POKE 104,96
POKE 24576,0
and now LOAD your program as normal,
The above is not necessary with INTEGER
BASIC, because the program is loaded from the
top of memory down and so you would need a
rather large program to encounter any trouble,
——
advertisement
BLUE CHIP SOFTWARE
SUPER TRACE
Super Trace is a high-speed 4502 machine-code
utility routine for use in debugging Applesoft
programs, When you run a Basic program, Super
Trace will list out each program statement as it
is executed, together with the values of any
variable types or functions in it that you may
have pre-selected.
* Programs can be written, loaded and edited
without affecting Super Trace
* Does not interfere with DOS
* Can be invoked and disconnected as often as
required during program run-time
% Simple to use — Run-time control by single
keystrokes
# Optional display of all statements or only
statements containing selected variable types or
functions
% Variables highlighted in inverse display and
| their values displayed
# Normal screen display not affected
* 6 run-time speed settings plus instantaneous
| stop and single-step facilities, all available by
keyboard control whilst program is running
# Optional review of previous 10 program
| statements without destruction of screen display
#* Fully documented
SYSTEM REQUTREMENTS
| Apple,Apple Plus or ITT 2020
Applesoft / Palsoft in Rom
48k of Memory
One disk drive
DOS 3.2 or 3,3
PRICE : £27.50
BLUE CHIP SOFTWARE
10 Huson Close,
London NW3 3JW-
Page 26
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
NORTH LONDON COMPUTER FAIR
By Tony Williams
For the first time in its short existence the
British Apple Systems User Group exposed itself
to the public eye by taking a stand at the North
London Computer Fair, held at the North London
Polytechnic, Holloway Road, from April 14 to 14,
1981,
Whatever the precise purpose and value of the
Fair - and the people we spoke to were not really
agreed on this - the chequebook-wielding crowds
pounding on the doors before the official 10.,am.
opening time, the periodic shutting of the doors
to counteract the fire and air pollution hazard
presented by computing’s very own
over-population problem, the coachloads of
fairgoers dumped at the entrance, the incessant
loudspeaker admonitions to ‘keep moving’
(presumably to spread the weight more evenly
over the flooring) - all this added up ample
testimony that the Fair meant something to an
awful lot of people.
Not that the exhibitors had anything especially
new to offer. We had the by now familiar mix of
hardware systems, software houses with their
games, amateur hobby users clubs, The micro
Magazines assumed a low profile for some reason
this year and while other stands were swamped
three deep, they wore a desolate air. Educational
applications as usual took a back seat and
indeed, Tandberg apart, one had to search hard
and long to find anything of real educational
interest.
| aa
“fF
—
=
If, as it seems, games are to be the name of the
game, excuse the expression, then the best
graphics systems will call the shots. Pet and
Tandy will have to place their main thrust
elsewhere. Apple will still be in the lead, of
course, but hard-pressed by Atari, DAI and the
Acorn Atom,
Of the hardware on show I have to say that
Atari-Ingersoll and the Belgian-made DAI with
their more than presentable graphics and sound
capabilities will give Apple a run for its money -
if only because they take less of the stuff, In all
honesty if one were starting afresh one would
find it hard to justify buying an Apple on the
strength of its graphics alone, when these other
goodies are around (although we as users know
that in the final analysis, Apple will come out on
top on value and other counts),
The Acorn Atom set-up, just across from the
BASUG stand, attracted great and unrelenting
attention, because of its acceptable graphics, its
up and running inexpensive Econet multi-user
facility,its low start up cost, and, not least,
because it is the machine chosen by the BBC for
their long awaited BASIC programming course
early next year. Again, could one say hand on
heart to a beginner "don’t choose an Acorn, you
have to go for an Apple"?
Pity the harassed exhibitors on the two Sinclair
stands ( Sinclair and the ZX80 Users Club) for
their non-stop three-day stint satisfying
customers’ queries and apparently doing a
roaring trade taking down orders, Even the
occasional Apple owner would find it tempting to
fork out the fifty pounds for a Sinclair for his
kids - or himself - to use as a second machine.
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 27
Why did both Microsense and Commodore, neither
of whom was represented, so misread the
importance and pulling power of this Fair, one
wonders. Another curious observation: One
amateur users club apart, there was not a TRS80
in any shape or form in sight - neither software
houses, nor speciality firms had chosen it for
their wares, Is the fickle finger of fate pointing
at Radio Shack / Tandy?
Sharp seemed to be doing good business on the
other hand, despite the high cost of their total
system including disks,
Words of acquired wisdom for the future
exhibitor! beware not only the disk and cassette
thief but also the clued-up 10-year-old software
ripoff artist who comes to the fair complete with
initialized disks. After playing "Phantoms Five"
he then proceeds to save it on his own disk,
Sometimes he forgets to change disks. These
unofficial collectors succeeded in corrupting
demo disks and cassettes the length and breadth
of the Fair, The DAI stand’s unequal musical
battle with Basug’s ALF tunes ended not in a
concession of defeat but because a visitor wiped
off DAI’s demo disk (no back-up!)»
But, to return to our hard-pressed BASUG stand.
What did our newly recruited members expect
from the club? In first place, I was told, they
wanted contact with other members to swap
experience and mull over joint problems. The
Contributed Software Library scheme drew some
close attention, but was not the predominant
reason for joining, (Various members already
have many of the utilities we have on offer and a
good deal else besides. It will be fascinating to
see whether this shows up in a flood of
contributions to the library) Few recruits
seemed overly concerned at not being able to
attend meetings on a regular basis for
geographical reasons, and most thought
membership was a good thing of itself, without
being too specific, On the stand we had no need
for hard sell to put the club across, The
immediate response of owners out there alone
with their Apples was one of relief that we
would be able to put them in touch with other
BASUG members living near them. It could be
that providing an Apple Users Comput-A-Date
service will be as useful a function of the club as
establishing more regular local groups or SIG’s,
A fair number of new recruits had ITT machines
and were anxious to swap experiences with other
owners on their particular problems — largely, as
is to be expected, concerned with the graphics
difficulties.
—— —
Astonishing and gratifying to see so many boys
of fifteen and under wanting to use their
chequebooks(!) to buy BASUG memberships
(although too young yet to possess banker’s
cards') Equally astonishing how many of them
have their own Apples, ("No, not Dad’s", they
insist, "Mine!") , Incredible also in this
depressed era to see customers moving from
stand to stand prepared to shell out over a
thousand pounds — the price is not what counts,
they have to get the right system - without
knowing quite what for. So many are buying for
their kids, Difficult to ask them how much of this
ready money comes from redundancy payments,
but equally difficult to shake off the feeling that
these are the farsighted ones, who want to
invest their sometimes not-so-golden handshake
on something more durable than a vacation in the
Bahamas. Whether a newly purchased micro will
justify their optimism remains to be seen,
a a
Apart from signing up fifty odd new members at
the stand, our decision to exhibit was justified
on a number of counts. In particular, it showed
that the group can count on the active support of
a dozen or so hard core members, (hard core here
meaning the small group prepared to take time
off work and spend seven hours on their feet
telling people what BASUG is all about!) This is
areal achievement,
So our thanks go to Leo Crossfield, Jeremy
Ensor,; Eddie Payne, John Rodger, Neil
Stephenson, Frances Teo, Ian Trackman, and of
course the long-suffering committee,
a
\
Page 28
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
VISICALC — PLUS
Two short but extremely useful articles have
come in to enhance the use of VISICALC
VISTILIST — A REVIEW
By John Wingate
A recent talk to BASUG on ‘VISICALC’, in
addition to revealing the value and flexibility of
the program, also pointed out a few minor
deficiencies. One such drawback is the
impossibility of recalling a long formula from
memory.
The program VISILIST from Computer Stations
Inc, gets over this difficulty and is very easy to
use, The VISILIST disk is booted to display a
choice from the following four options!-
1, Display on Screen.
2, Print thru Parallel Card,
3, Print thru Serial Card,
4, End,
At this stage, your VISICALC storage diskette is
inserted and after selecting the appropriate
option, the screen returns the message-
ENTER FILE NAME TO LIST
The contents of all grid locations are then listed
and the contents may be values, labels or
formulae.
The program also prints out commands and
parameters in effect on the file listed, For
example, /GC 9 indicates that the global column
width was current on the saved file,
All in all, a very useful addendum to VISICALC,
The price will tend to vary from dealer to dealer,
but you should have no difficulty in obtaining a
copy for around eleven pounds, plus VAT,
#VISICALC and VISILIST are trade marks.
CREATING VISICALC—READABLE
FILES
By A. Graham-Bryce
Visicalc is such a convenient dynamic tool that it
seems worthwhile to produce any tabular output
from a program in a form that Visicalc can read,
so that it can be easily manipulated, This is not
too difficujlt as they are straightforward
sequential files, Essentially the file consists of
table entries and format commands,
TABLE ENTRIES all start with > followed by the
coordinates and}.
There are three kinds of entry!
1, values e.g, >A20:422
2. labels e.g. ADI4:"TOTALS
or
3 formulae e.g, DIISi+B4#15-6
SHZ5PSUM(H200HZ4
FORMAT COMMANDS all start with / as they are
entered into Visicalc. The commands themselves
are also the same e.g. /GC8 for Global column
width 8 or /W1 for one window,
In order to relate the alphabet column headings
in Visicalc to outputs based on a normal
numerical loop in my program, I found it most
convenient to put them in an array, CL$ thus:
10 FORI=1 TO 43
20 CLS(T) = CHR$(64+ I)
30 IF I> 26 THEN CL&(I) = "A" + CHRS(64 + I -26)
40 IF I> 52 then CL$(I) = "B" + chr$(64 + I - 52)
50 NEXT
This note is not exhaustive on the subject, but it
does produce files which Visicalc can read.
—————
eee
SUPPORT YOUR LOCAL ADVERTISERS !
This journal is expensive to produce and distribute, but is
provided free to members as & benefit of membership.
In order to afford to continve this policy we need
advertising to defray these costs.
So DEALERS ! — please advertise with us — the rates are
low
and we provide a select audience of active Apple users.
And MEMBERS ! — persuade your local dealer to advertise
whenever you buy from advertisers tell them you “saw it
Hardcore"
— and
in
HARDCORE — THE ONLY SPECIALIST APPLE
MAGAZINE PUBLISHED In BRITAIN
May 1981 HARDCORE - The Journal of the British Apple Systems User Group Page 29
PASCAL PAGE Author? Frank Kays %
Recently received from International Apple Core is a Pascal Disk
containing the followine!-
- A Fortran Fixer utility, which patches Fortran code files
to make then fully consistent with the Pascal Operating
System. Apparently some system values are not being set
in the code file by the compiler, as described by the following
extract from the commerits in the program:
Information in the code files which Apple Pascal 1.1 expects is not properly
set by the FORTRAN compiler. USER DEFINED PASCAL INTRINSIC UNITS WILL NOT
WORK WITH FORTRAN, NOR WILL BUILT-IN PASCAL INTRINSIC UNITS HORK ALL OF THE
TIME WITH FORTRAN, UNLESS THE FOLLOWING POST-PROCESSOR IS APPLIED TO THE CODE
FILES,
After compiling any FORTRAN unit or host program, execute the included progran
(FORTFIX) on the resulting code file. This will fill in the necessary missing
information, This should be done for ALL FORTRAN code files even if they do
fot use intrinsic units or you will be running them on the 1,0 Apple Pescal
syste, In doing this you will be sure your FORTRAN cude file will work on
any Apple Pascal version.
It should be said that in the Fortran coding that I have
done ~ nothing very advanced, but using built-in intrinsics -
T haven’t come across this problem.
= A Listing program, which prints text files and has formatting
ard file-inclusion capabilities,
= A Utility and 2 set of documentation as described below,
Despite the fact that the documentation is dated 12-Jan-80 (!), its
availability really marks the coming-of-age of Apple software. Here
is 3 vital insight into the construction of the Apple UCSD Pascal
Operating System, which makes instructive reading even if you are not
concerned with interfacing new hardware with the system.
The first section describes the Utility Software and procedures for
adding your own Device Driver software to Pascal in a defined and
controlled manner. For those of you not familiar with Apple UCSD
Pascal, the Operating System automatically recognises the presence
of interface cards in the Expansion Slots of the Apple, and
configures itself to use these in 6 defined manners The information
given in this document allows you to add suitable software to control
new devices, or to modify the function of existing ones, without
having to resort to patching the operating system code, This is
very important if such an operation is to be carried out effectively
by users who were not involved in the design and writing of the
operating system in the first place. I am pleased to find such
an enlightened attitude amongst those involved in building
operating system software, instead of the rather secretive
approach adopted by many.
The second part of the documentation describes the extensions and
nodifications to Pascal 1.0 which comprise Pascal 1,1, It therefore
gives a useful description of the system as a whole, and illustrates,
for instance, how software can be written which inhibits the operating
system trapping the standard control characters (the Editor does this,
for instance). It also shows that the operating system has been planned
with further enhancesents in mind, and is capable of running with
interrupts enabled. I will report upon developments in exploring this
in later Pascal Pages. The article concludes with an annotated
listing of the Pascal 1.1 BIOS, All in all, a very significant and
useful document. _
yO
pis
'
Fv
ke 16K
J
ve
*
‘ bid
; ot
t
& Wemone K
EA yume Ss
“
: ot ye
» ‘ wily pRv
va"
moons
.
v
ay
{fF You THINK LU
UNG HIS
Waeer's
EASY, How
JHE wise
YAY-HoO.
WANTS A
LAncuate
Caan I
moan} ————
pascal
page
Page 30
HARDCORE - The Journal of the British Apple Systems User Group
May 1981
PRINTER INTERFACING — PART 2
By Chris Murphy
In the last article, I investigated the Parallel
Interface; now, I wish to investigate Serial
Interfaces, and look at the Apple High Speed
Serial Card, the C.C,S, Asynchronous Serial Card
and the Apple Communications Card, First let’s
define what the Serial Interface is and what it
does,
Serial Interfaces
We saw that one limitation of the Parallel
Interface is that there is a limit on the length of
cable between the computer and the printer j the
longer the cable, the more distorted the signal.
The solution to this problem is the serial
interface, where bits are transmitted one at a
time down one wire, However, this introduces a
complication, The computer is translating
information into bits, and sending zeros and ones
to the device at the other end of the serial
interface } this in turn has to try and
re-assemble the bits into characters so that it
can do something with them, Obviously therefore,
we need some means of telling the device at the
other end which bits are to be used to make which
characters,
There are two methods which are commonly used
to provide a_ solution, synchronous and
asynchronous transmission, Synchronous
transmission is usually used when sending large
amounts of information over telephone lines e.g.
a remote terminal onto a large computer. What
happens is that a pre-defined pattern of
synchronisation bits is sent before the data, so
that the device at the other end has the
information it needs to decode the stream of bits
which follow into a sensible format. This
obviously requires the transmitter and receiver
to work precisely in harmony.
SHoutS “ Don’T
SHooT!” WHEN
ALIEN
i)
IN-
The second method (asynchronous) adds a start
bit to the start of the data and one or more stop
bits to the end. Start bits are usually logical
zeros and stop bits logical ones. Then an entire
group of bits may be sent one at a time to the
device at the receiving end ; it can easily decode
and re-assemble the data bits, because there will
always be an exact number of data bits between
the start and stop bits, Most serial printers use
this method,
Because information is being sent bit by bit, it is
possible to vary the speed of transmission. This
is what is usually referred to as the Baud Rate,
where Baud may be taken as bits per second
(including synchronisation bits or start/stop
bits). Thus a 300 Baud line would be transmitting
at 300 bits per second, Common Baud Rates used
on printers are 300,600,1200,2400,4800,9400 and
19200, In the case of serial printers, it is vital
that both the transmiting end (the interface card)
and the receiving end (the printer) are working at
the same Baud Rate,
Having established how the computer is sending
data and how fast that data is being transmitted,
the last piece of the jigsaw is "handshaking" } in
other words, both the device at the transmitting
end and the device at the receiving end must be
able to let the other know when it is ready to
transmit or receive, (Incidentally, this is a major
difference between serial and parallel interfaces
on the Apple. Serial interfaces can be used to
receive data as well as transmit. The Parallel
Card can only send, This gives us another
definition - RS232C (or CCITT V24), This is an
industry standard connection using a 25-pin
connector, where each pin has a common use, In
its most basic form, a serial interface requires
four wires, These are pin 2 (Transmit data), pin
3(Receive data), pin 7(Signal ground) and pin 20
(Data Terminal Ready). In addition, two other
pins commonly used are pin 4(Request to send)
and pin S(Clear to Send) In order for the
handshaking to work, one end of the transmission
must be the DCE (Data Communications
Equipment) - usually the computer itself - and
the other end must be the DTE (Data Terminal
Equipment) - in our case, the printer. As stated
above, serial communication may be done over
long distances via telephone lines, in which case
Modems are required between the DCE and the
DTE,. Thus using RS23ZC it is possible to move
from a one-way transmit only interface requiring
four wires connected (for example, a keyboard) to
two way traffic. Our last two definitions for this
section concern types of two way traffic, These
are Half Duplex, where although two way traffic
is possible, it can only be in one direction at a
time, and Full Duplex, where traffic can be in
both directions at the same time, The interface
between the Apple keyboard and the screen is
Full Duplex, so that when a character is typed on
the keyboard, the computer receives it and sends
it to the screen,
May 1981
HARDCORE - The Journal of the British Apple Systems User Group
Page 31
Having looked in some detail at the principles of
serial interfacing, let us now look at two of the
three types of serial interface mentioned at the
start, Because of copy deadlines, a consideration
of the Communications Card will held over for the
next article,
The Apple High Speed Serial Interfac
The Apple High Speed Serial Interface Card
(HSSIC) can handle three main functions {-
i) The HSSIC can be used to send output from the
Apple to a serial printer or other serial device,
and can supply line feeds after carriage returns,
ii) Input may be taken from an external device via
the HSSIC.
iii) The Apple can handle Half Duplex
communication at various Baud Rates with a
printer, another Apple, or any RS232C device.
For the purposes of this article, we will only
concern ourselves with printers,
The card comes with a standard DB25 connector,
with six pins connected. Only three of thses are
actually used i- pin 2 (characters received from
an external device) pin 3 (characters sent to an
external device) and pin 7 (signal ground), Pins 4
and 5 have been jumpered together, as have pins
6, 8 and 20, No connection need be made on these.
In addition, there is a switch block with 7 dip
switches which control the way the interface
works, Switches 1, Z and 3 control the Baud Rate
(available Rates are 110, 134.5, 300, 1200, 2400,
4800, 9600 and 19200. Switch 4 allows a carriage
return delay to be implemented, If off, the
interface will wait for about a quarter of a
second after transmitting a carriage return to
allow the printer to complete the movement, This
is usually only needed on slow printers, Switches
5 and 6 control the output line width, Possible
values are 40 chars/line (with video enabled), 72,
80 or 132 with video disabled, Switch 7 specifies
whether the interface is to supply a line feed
after a carriage return or not.
Using the HSSIC with Basic is very simple. You
need the PR#n command to intialise the interface
(where n is the slot number of the interface) ; all
subsequent PRINT commands will go via the
interface until a PR#0 returns output to the
screen, The only real peculiari
Showing the first 100000 of 172490 characters.