Text content (OCR)
Be RN \\ +
=a aN
fo \
BRITISH: -“APPLE- SYSTEMS: USER: GROUP
=
FORMAT- 80 : ENHANCED
FOR THE APPLE Il, Ile and llc. '
THE WORD PROCESSOR FOR THE
APPLE |
“so far ahead of the others, there is no second |
place”.
This is what an American magazine said about a
British word processor. And since then we have
improved the product by:
1.) Putting DOS 3.3 and ProDOS versions on one
disc. |
2.) Making it Ilc and Apple mouse compatible
3.) Adding a spreadsheet function to give fully
integrated text editing, Mail-list incorporation
and calculation facility.
And all without changing the price. So if you want a
word processor that will work on any Apple II with
64K(*), on any 80 column card, and on most hard disk
drives, and is above all simple to use, or just want to
find out where the quote was taken from, please |
contact:
ELITE SOFTWARE COMPANY
93 Eastworth Road,
Chertsey,
Surrey KT16 8DX.
Tel: 09328 67839
PRICE: £129 + VAT (£148.35)
(* ProDOS version requires 128K Ile or IIc)
August 1985
HARDCORE - The Journal of the British Apple Systems User Croup
Page 3
THE JOURNAL OF THE BRITISH APPLE SYSTEMS USER GROUP
BASUG Ltd.
Basug Committee
Jim Panks
P.O. BOX 174 WATFORD WD2 6NF
Chairman
We
is a non-profit-making company limited by guarantee.
CONTENTS
Editorial 4
Norah Arnold Secretary Chairman's Corner 4
Irene Flaxman Treasurer Product News 5
Graham Attwood Software Library A Statistical Database by Roger Harris 6
Richard Boyd Beginner's Columns by J. Sharp 9
Keith Chamberlain Membership Memdos by Dr. K. Molloy 12
Tony Game Bulletin Board Apple Ile-Centronics by G. BE. Randall 14
Peter Trinder SIC Mac
Ewen Wannop
Bill Watson
Tom Wright
Special Release Software
Sheila Hirst Coordinator
Peter Baron 84:BSGOSO
Peter Blair
Hardcore Editor
Assistant (credits)
AANAAARAARRARARARAAAAARAARAABARARARAAARAAR
BASUG "phone No.: ‘iti. (llliaien (lh
Please note: This number is administration
ONLY.
Bulletin Boards:
Tony Game :~ sifitit
Mike Jones :~ ity
Chris Williams:~ Hotline |{\| ‘if
(Mon-Fri 7pm-9pm)
eset) “vkbibie
Founder membere of the Association of
Computer Clubs.
The front cover and HARDCORE logo were
designed by Stefan Mucha.
Program Generators Pt.II by T. Corinda 18
Mactips 20
Pilot by H. Freeman 24
Tips, Tricks & Techniques 28
Software Reviews 32
Book Reviews 36
AGM & Club Matters 4
Reader's Letters 46
Group News 48
Diary. Advercisers 30
The fully justified proportional and some
other printing in this issue of HARDCORE
was done with the aid of FORMAT 80, using
Madeleine and Herald Elite daisywheels.
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 User Group. j
Page 4
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
EDITORIAL
Those of you who read this column will
remember that my last piece contained a
remark regarding the quality of the
printing, stating that | expected a
definite improvement. Well to give the
printer credit, he did improve it. But it
wasn't good enough, so this issue will
have passed through the hands of another.
The new printer is Bill Marks, a BASUG
member who runs s business in
Shoreditch. Having seen some of his work,
I predict that we really shall see an
improvement in this issue.
You should receive a copy of the accounts
of BASUG Ltd. with your Hardcore this time
and the Minutes of the AGM form a
substantial section of the magazine. Last
time, while bemoaning the departure of the
Chairman, | mentioned that he had managed
to get the finances back on track. On
track they may be, but you will see that
they still have a long way to go in order
to reach the high ground which represents
a secure financial situation. Members can
help, by buying items from BASUG, but
efficient, effective and business-like
management of the club is also absolutely
vital for its survival. At the present
time the membership numbers a little over
1000 and there can be little doubt that
the whole set up would be more viable with
a greater number of people. Perhaps you
can help by introducing a friend or
colleague ?
It will be the latter part of the summer
when you get this, a rather low time for
editors in general, so can I once more
urge you to write for and to me. Without
enthusiastic contributons, this particular
literary venture would not exist. 1 do
cajole colleagues and friends, many of
whom are not BASUG members, but we cannot
survive for ever on the goodwill of
others. | am very grateful to those
regulars who do write, but it is unfair
always to depend on them, and I need more
of you to make the effort and send
in new ideas and articles. Remember, I'm
fon the wire, (Dialcom) 84:8SG050 - you can
even get that one from Australia, Hong
Kong or the ‘States! Incidentally, there
are now over 100 members on the Force. One
wonders whether they consider it to be
good value for money and whether they use
the system for anything other than a chat
7 = Let me know.
CHAIRMAN’S CORNER
By Jim Panks.
I must first of all thank last years
committee for the sterling service
provided. It is with regret that
'Q'.Reidtord has been forced to resign
the Chairmans post due to increased
commitments at work. We all wish him
well. We have also lost our Course
Co-ordinator Richard Beck and Roger
Harris who ran the Literature Library.
Both Richard and Roger worked in the
spirit of helping in whatever fields they
could, It is our loss. 1 must welcome the
new Committee, many of them are old hands
but we have three new faces to help keep
us on the right track. Irene Flaxman
takes over my old position of Treasurer
and brings some expertise to this
important post. Irene is a Cost
Accountant and already has contributed to
the thorny financial side of the group.
Bill Watson and Tom Wright come to the
committee from Birmingham. Both are very
keen to help the club, and will provide
valuable new blood.
The Annual General Meeting on the 6th
July 1985 went well, as is usual on. this
annual occasion we had a fairly lively
meeting with most of the members present
contributing. 1 would like to thank all
those members that turned up and enjoyed
the meeting and workshop. My thanks also
go to the speakers who tried under
difficult conditions to get their voices
heard. The venue at County Hall is ideal
for structured meetings and courses and
it is well placed. Many members took the
opportunity to discuss with members of
the committee how BASUG could improve and
some offered to help in various fields. 1
would like to thank them all and assure
them that all the ideas will be
evaluated.
‘One of the major topics at the A.G.M. was
the financial situation of the club and
how best to put it in order ‘once and for
all’. Many suggestions were discussed
and the general feeling of those members
present was that the club will survive if
the membership supports the activities
offered. The most attractive disk prices
have been obtained for the members
benefit, not only will you get top
disks guaranteed for five years,
you will be actively helping your
<
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
Page 5
club. Another bonus is that by buying
disks you keep your membership fee down.
SO WHAT ARE YOU WAITING FOR - SUPPORT
YOUR CLUR NOW - AND SAVE MONEY.
The AGM saw the announcement of a major
new service within BASUG - this is the
formation of a Macintosh Special Interest
Group. The number of new and existing
members with Mac's has increased to such
an extent that we must now offer a
service to allow information to flow more
rapidly. The new SIG is a integral part
of BASUG and will prevent the club from
becoming stale. Those members who use the
Mac and did not join as a Mac member
should drop a line to the membership
secretary -, this will enable them to
receive a MACSIG newsletter in the near
future.
The Apple If range is still well
supported and my sources tell me that
many new software packages are being
produced in the States. 1 wonder how many
people thought that the Apple J would
still be in the top ten over six years
after its introduction. Whilst on this
subject BASUG will soon be in a position
to offer Software Disks running under
C.P.M. Our intrepid Software Librarian is
now in the process of having some disks
formatted for the Apple.
PRODUCT NEWS
By Dr. Peter Baron.
Among the press handouts which came
through my letter box during the last
couple of months, was one from Apple which
is, perhaps, yet another reflection of the
social ills of our time. After a meteoric
rise of sales and the creation of many new
jobs, the microcomputer industry seems to
have hit a definite low, well before many
companies thought that this would happen.
Anyway, back to Apple. The handout
states "Hemel Hempstead, June 17th 1985.
Apple Computer today began implementing a
reorganisation plan to streamline the
company and prepare for future growth by
announcing consolidations which will
result in a loss for the third fiscal
quarter of 1985." It goes on to say
that Apple intend to organise the company
along functional, rather than product
lines and will reduce the manufacturing
facilities from six to three, with a
reduction of 1,200 jobs. The Macintosh
factory in Fremont, California, will
become the primary manufacturing site,
where both the IIc and Macintosh will be
built. The Singapore factory will
manufacture the //e and that in Cork will
support the European market. The document
also states that it is expected that the
reorganisation will result in a unified
cost-effective company focussed on the key
markets of education and business.
DMS Electronics produce quite a few useful
goodies, including a stand alone barcode
reader suitable for all computers,
especially the Mac, and a DMS Apple/6322
interface which provides access to four 8
bit input or output ports, two handshake
lines for each port, four powerful 16 bit
timers and two shift registers. Recently,
they sent me some information about the
Peacock RGB colour module for the Apple
IIc. This connects between the computer
and an RGB colour monitor, does not
require a separate power supply and
produces enhanced colour graphics and
text, with a dip switch facility for
choice of text colour and background.
¢ £76.00.
Superbase was reviewed in Hardcore earlier
this year and we hope to have an article
on Superscript, a word processor, in the
next issue. Superbase is not just another
database, but is a full blown professional
package, with extensive features, making
it more powerful than dBase Il, but with a
friendly menu-driven approach. Programming
can be done by an easily understood form
of BASIC. Both Superbase and Superscript
run on the Apple //e and are available
from BASUG at 30% off RRP.
1 see that MacPublisher is available in
the UK, from P & P Microdistributors. Oh
boy would I like this disk, with Mac and
Imagewriter ! I haven't seen the
program in action, but it is supposed to
be a complete electronic publishing
system, allowing the computer to display a
fair approximation of the pages it will
print. Multi-column printing, headlines
and the inclusion of graphics are
possible, together with the ability to
constantly recalculate pages and change
their geography. MacPublisher remembers
the relationship of each element to every
other. There are programs available for
Apple Ils which follow the concept of
MacPublisher, though one suspects that
they are somewhat less able.
Page ©
WaxvcORE - The Journal of tne British Apple Systems User Group
August 1985
A STATISTICAL DATABASE
By Roger Harris.
The following article deals with a
statistical database which I developed
as part of a share market simulation
program. Historical time-series data is
stored in large HEX dumps which may be
updated on a rolling basis. Minimal use
is made of dimensioned arrays, e.g-
10 DIM A(99,51). HiRes graphics screen |
is available to the data.
The database is intended for use with a
standard 48K (i.e. 37K) M+ system with
at least one disk drive.
Although originally intended for use in
Processing share market prices stored in
a two dimensional array it could be used
with one or more time series measuring,
say, humidity, rainfall, pollen counts
or milk yields.
The database contains three main parts:
1.. A large two dimensional hex dump
containing, say, all the weekly
prices for a list of shares for
1980.
2.. Several hundred smail one dimensio-
nal hex dumps containing the prices
for the same list of shares with one
hex dump per week starting with the
first week of 1981.
+ A suite of programs to service the
hex dumps and to perform analysis.
The general scheme of operation is as
follows:
10 Load the large array
20 Do calculations on large array
30 Update it with a small array
40 Move the large array back one week.
50 GOTO 20
Moving the large .array back one week
and then updating it with a small array
works in a manner similar to that
employed in a moving average calcula-
tion:
10 Stare with a queue of numbers.
20 Calculate moving average.
30 Add a number to the head of che
queue.
40 Subtract a number from the tail.
50 GOTO 20
The simplest and most obvious way of
storing a large array would be an
array, say, A(99,51) which would store
100 files each containing 52 numbers.
Applesoft uses five bytes to store a
floating point number and a few extra
bytes are needed to record the name,
location and structure of an array $0
that 5200 numbers would need a minimum
of 26,000 bytes.
The loading and saving of such an array
would be slow if stored on disk in a
sequential file and slower still if in 4
random access file.
By storing the numbers in a hex dump one
gains the benefit of compactness (only
four bytes per number) and a significant
improvement in disk access times by using
BLOAD and BSAVE commands.
The ‘base ten' decimal system assigns
ten possible values in the range 0-9 to
a single character. By using a single
cight bit hex character one can use num-
bers in the range 0-255. By using the
position-value method a string of ‘base
256" hex characters can store numbers
much more compactly than ‘base ten'
characters.
Applesoft's floating point decimals may
have none or up to nine characters to
the right of the decimal point. Numbers
stored in the hex dump have none and one
must choose a suitable multiplier such
as 1000 which will give three decimal
places.
The maximum integer values which may D¢
stored in strings of bytes are as
follows:
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
Page 7
I byte = 256A1-1 = 255
2 bytes = 25642-1 = 65535
3 bytes = 256*3-1 = 16777215
4 bytes = 256%4-1 = 4294967295
The number of bytes chosen may be deter-
snined by the range of the floating point
numbers and the number of decimal places
needed. For floating point numbers with
three decimal places, four bytes will be
sufficient to store a number in the
range 0.001 to 4%,294,967.295.
In direct contrast, four ‘base ten’
characters can store numbers in the
Tange 0.001 to 9.999. One can easily
understand the lure of bytes with six-
teen or more bits.
Numbers in hex are prefixed with a '$*
sign so that $12 < 18 ‘buse ten’. For
example, 1,000,000 = $OF4240. In memory
ail the numbers are in hex so the '$' i
not shown and $0F4240 would look
this:
4200- 40 42 OF 00
The first number, $4200, is the address
number of the first memory location in
the line of numbers and $40 is the hex
number, or byte, in that memory loca-
tion.
Address numbers increase trom left to
right so that the position-value rules
of decimals work in reverse. You could,
if you wanted to, use descending
addresses to store increasing values so
that the hex strings in memory would
look like hex numbers written on paper,
CB
4200- 00 OF 42 40
A hex dump containing the numbers
1,000,000 to 1,000,007 would lok like
this:
4200- 40 42 OF 00 41 42 OF 00
4208- 42 42 OF 00 43 42 OF 00
4210- 44 42 OF 00 45 42 OF 00
4218- 46 42 OF 00 47 42 OF 00
That dump is quite easy to inspect for
the hex strings are in groups of four.
If they were in groups of three the hex
dump would look like thi
2
4210- 42 OF 46 42 OF
There is a saving of space of 25% with a
Corresponding 33% increase in capacity.
You will have to decide whether to
choose legibility or capacity.
A pocket calculator able to perform
hex<=>decimal conversions is desirable,
although not essential. For the greatest
convenience, choose one which can
perform all the common scientific func-
tions. It should be able to convert a
floating point number into an integer,
usually by setting the decimal place to
zero, and then convert the integer into
hex, and vice versa.
Both Casio and Sharp make such calcula-
tors. The Hewlett Packard 16C converts
integers only. There is no way of
directly converting floating point
numbers into integers without re-keying.
This is a distinct disadvantage. 11s
relevant floating point operations are
festricted to add, subtract, multiply
and divide.
Let us now look at the subroutines which
will be used to build and maintain a
database with the following character-
istics:
The database will begin at location
$4200 (16896) and stretch to $9340
(37696). A small area between location
$4000 (16384) and S$4IFF (16896) will be
used for file sequence numbers and for
updating data; this will be explained
later.
All the data is located above the top of
Hires graphics screen page 1. Ordinarily
for non-graphics requirements there
remains a program and array space of
14335 bytes stretching from $800 (2088)
to $3FFF (16383).
3 Decimal places
4 Bytes per floating point number
100 Files (time series)
52 Floating point numbers in each file
It will be necessary to protect the
database from Applesoft's string and
array handling routines so that HIMEM
will be set to 16383 ($3FFF).
Page 8
HARDCORE - The Journal of the British Apple Systems User Croup
‘august 1985
Let us first of all look at a subroutine
to convert floating point decimals into
hex-equivalent decimal integers which
may then be POKEd directly into memory,
AD = Address in memory
Fl = File number
PP = Floating point number
SN = Series number
SF() = Scale factor.
200 AD = 17104 + (FL * 208) - (SN * 4)
210 ::: PP = PP / SP(FI): REM Optional
220 PP = INT (PP * 1000 + 0.5)
227:
230 FOR X = 3 TO O STEP ~i
240 Z = 0: ¥ = 2560X
250 IF PP >= Y THEN Z = INT(PP / ¥):
Pe = pp - (2 * ¥)
257:
260 POKE AD + X, Z
267:
270 NEXT X
280 RETURN
Variable AD is the address in memory of
the least significant, leftmost, byte of
the four bytes which will store the num-
ber PP. The address will be indexed by X
within the FOR-NEXT loop. FI is the
number of the file being accessed and is
a number in the range 0-99. In line 200
the value 208 is the length in bytes of
one file, ie. 52 numbers multiplied by
four.
SN is the index number of a string of
four bytes within a file. In each file,
SN=1 is the highest address in memory
and SN-=52 is the lowest address. The
address of hex string SN is calculated
downwards from address Fl,
Thus, by assigning suitable values to FI
and SN, line 200 will calculate the
address of any of the 5200 hex strings.
In file 1, the hex string with address
SN=1 will tie just below the hex string
with address SN-52 of file 2.
When performing a weekly update of the
files, the latest data will be POKEd in
at address SN-0, thus overwriting the
last, ie. oldest, hex string of the
next file. Then, by moving all the hex
strings down in memory by four bytes al
SN addresses will be in the correct
relative positions in memory.
The subroutine.200-299 may be used to
load floating point numbers into memory
and the resulting tile may be BSAVEd by:
500 PRINT DS
1$5140'
510 RETURN
SAVE LARGE.FILE, A$4200,
One way of moving all the hex strings
down in memory is by BSAVEing the hex
dump starting at address A$4204. The
next time the hex dump is BLOADed, do so
at address A$4200.
Line 210 is optional. It caters for time
series which are not Continuous. In the
share market, share prices are sometimes
adjusted as a result of changes in the
share capital of a company. The value of
a company may be the share price multi-
plied by the number of shares issued.
For a given value and point in time, the
price of a share will vary inversely
with the number of shares issued.
In the case of a change in the company's
capital, a price of, say, 120 pence on a
Friday may be followed by a price of 60
pence on Monday. The share price has not
fallen by 50%. All that has happened is
that the number of shares has doubled.
The total value has remained the same.
The time series must then be compensated
for this change. One way is to multiply
all the historical numbers in the series
by a factor of 0.5. This does mean a lot
of reading and writing of files.
The simplest way is divide each number
by a scale factor when the decimal-to
hex conversion is performed. Then, to
read @ file, simply multiply the numbers
by the same scale factor:
Wed Thu Pri Mon Tue
Price in market 116 122 120 60 62
SCALE FACTOR 1 Fb 1 0S 0:5.
Price in File 116 122 120 120 126
Price when read 58 61 60 60 62
When there is a break in the continuity
of the time series then the Scale Factor
is changed, i.e. a single number, not
the whole file.
If your data is presented in different
units, e.g. inches one day and metres
the next, then the use of such factors
will ensure the integrity of the file
data.
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
Page 9
Once floating point numbers have been
poked into the hex files we will need a
subroutine to read the files.
100 FOR SN = FR TO LR
107:
110 AD = 17104 + (FI*208) - (SN*4)
120 PP = 0
127:
130 FOR X = 0 TO3
140 PP= PP + PEEKCAD+X) * (2564X)
150 NEXT X
157:
160 P(SN) = PP * SF(FT)
170 NEXT SN
Wit
180 RETURN
This subroutine will read one number
or all the numbers in a file depending
upon the values assigned to FR, first
record, and LR, last record, in line
100.
The numbers are loaded into a one dimen-
sional array PQ).
A calling subroutine might look like
this:
6000 FR = 1: LR = 52
6010 FOR FI = 0 To 99
6020 GosuB 100
6030 COSUB nnn: REM Do calculations
6040 NEXT FI
6050 RETURN
Line 6000 sets the range to be read in
each file and with the FOR-NEXT loop
ensures that all the numbers in all the
files are read and processed by sub-
routine.nnn.
There are further subroutines and files
to be explained but they will have to
wait for the next issue.
ore terri
** TICLUNG!! ee
In HARDCORE Vol 5(3), June 1985, page 43,
col.l the program lines 200-215 contain
the instruction ‘GOTO 120°. This should
read ‘GOTO 220'. The author apologises for
this error.
BEGINNER'S COLUMNS
MORE DEBUGGING TIPS
By John Sharp.
Some debugging hints were covered in a
Previous Beginners Page. There are a
number of things that can go wrong so we
will carry on trying to sort out further
problems.
Having carried out the tips in the
Previous articles, your program may still
not work because you have errors which
are errors of logic of some sort. These
are harder to debug, because the computer
doesn't tell you directly where the
Program is going wrong.
Consider the mistake of a misdirected
line number.
10 POR N= I to 10
20M=N*N
30 IF M-N > 30 THEN COTO 60
40 NEXT N
50 PRINT "NONE FOUND"
60 END
600 PRINT "IF N= ";N 5 "THEN M-N IS
GREATER THAN 30"
What we want to happen is that if the
difference between M and N is greater
than 30 then we print the value of N
(which as shown below should happen when
N reaches 7). Because of mistyping in
line 30 the program is directed to line
60 instead of the correct 600. By
looking at the listing this is fairly
obvious. However, this listing is short
and because of this it is easy to pick the
mistake up. This is often not the case,
especially if line 600 does not come up on
the screen at the same time as the
oftending line. Let us look at a
procedure for finding out what the problem.
is. Running the program produces the
prompt back.
You know it should produce a printed
result, so your immediate reaction is to
say “IMPOSSIBLE!! STUPID * #@ % II
COMPUTER" - but it is your fault in fact.
Page 10
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
The first thing to do is print the values
of N and M. Once you are out of the
program in immediate mode then the
variables are still stored within memory.
So just typing:
27.NM
produces the answer:
7 a9
A quick calculation with pencil and paper
says this is correct. If N = 7 then M =
7 * 7 and if N were 6 then M would be 36,
M -.N would be 30 and so the value of M-N
would not be greater than 30. Thus 7 is
the value we expected to cause it to go
out of the loop with at line 30. By
printing these values directly then you
know that that part of the program is
working correctly. Why then is is not
going where you want it to? Where is it
going? In this case looking at line 30
Tells you that the mistake is that it is
going to line 60. In more complicated
cases it may not be as easy. It would be
of great help if the computer told you
where the program was jumping to.
Fortunately the APPLE has just such a
means of letting you know what is going
‘on. The special command is TRACE. If you
set the trace on and type RUN as follows
the screen should look lik
TRACE
RUN
W10 #20 #30 #40 #20 #30 #40 #20 #30 #40
#20 #30 #40 #20 #30 #40 #20 #30 440 #20
930 #60
Every time the computer goes through the
line it prints the line nuniber with a ‘#
in front of it.
You can look at the listing and follow it
through working out logically what should
be happening. This is called “dry
running", and would be useful to do this
in case.
Line 10 first sets N = 1
Line 20 find the square of N and sets the
variable M equal to it.
Line 30 checks the value of M-N with the
number 30, if M is less than 30 then it
ignores the rest of the line. Since M-N
= 0 then the program moves onto line 40.
Line 40 sends the program round the loop,
ive. back to 20.
Line 20 says N is increased’ by | to 2. It
is not yet equal to the limit of 10 so
carry on to line 30 again and do the
check once more.
It continues going round and round until,
when N = 7, MeN is greater than 30 and
the statement being true allows the GOTO
60 to be executed. The last line number
Printed out by the tracing routine ts
"460. If you have noticed this then the
error is picked our.
In this case it is possible to put the
listing and the trace on the screen.
Normally great lines of accessed line
wmbers are generated and the your eyes
will go funny trying to keep up with what
is happening. One way to overcome this is
To use the same facility you can use to
slow listings down, the CTRL-S. Put the
second finger of your left hand on the
CTRL key and keep it there. Put your
index fingers over ‘S' key. By pressing
S' key alternately as an on and off
key, it is possible to have very fine
control over the scrolling.
Correct the error in line 30 by making it
600
again. What happened? All the line
numbers appeared again with something on
the end:-
RUN
#10 #20 #30 #40 #20 #30 #40 #20 130 #40
#20 #30 #40 #20 #30 #40 #20 #30 #40 #20
#30 #600 IF N =7 THEN M - N IS GREATER T
ea x»
The trace facility was still on and when
it came to line 600 it carried out the
print action straight after printing out
the ‘#600". This is very useful if you
wish to find out at which line number a
particular statement is being output or
where an input is expected.
The trace facility would be a nuisance
hereafter so switch it off by typing:
NOTRACE
_
LOSIS SOF T Tel:(09904) 4919
WiC >) or (0860) 315172
dBASE II £272.55
GRAPH FOR dBASE IL £152
LOTUS 123 (UK VERSION) £372.50
SYMPHONY £375
JAZZ FOR MAC £305.20
MICROSOFT WORD FOR MAC £152
MICROSOFT FILE FOR MAC £152
SUPERCALC 3 £142
HA APPLE/18M CONNECTION £160
THINK TANK £107
PFS FILE FOR APPLE //e £74.16
PFS REPORT FOR APPLE //e 74.16
PRINT SHOP £36
WORDSTAR 3.31 £195
SENSIBLE SPELLER IV £68
SARGON [11 FOR MAC £36
your arer friendly supplier
ALL PRICES EXCLUSIVE OF VAT, BUT INCLUDE FREE DELIVERY
* PRICES AND AVAILABILITY SUBJECT TO CHANGE WITHOUT NOTICE
* RING US FOR THE LOWEST PRICE POSSIBLE ON MANY OTHER PROGRAMS
* WE WILL ENDEAVOUR TO BEAT ANY PRICE QUOTED
L P.O. BOX 210, VIRGINIA WATER, SURREY, GU25 4QJ. TEL: (09904) 4919 or (0860) 315172 TELEX: 858623
BEAGLE DOS 60S £17
CALCSTAR £93
DATASTAR £140
COPY 11 MAC £40
PC TO MAC & BACK £112
DB MASTER FOR MAC £137
MULTIPLAN FOR MAC £152
FLASHCALC //e £64
VISIFILE FOR //e £91
ASCII EXPRESS PROFESSIONAL £92
APPLEWORKS £CALL
TYPING TUTOR III] £36
MULTIPLAN £77.85
SUPERWR ITER £179.65
SIDEWAYS £38.93
Page 12
HARDCORE - The Journal of the British Apple Systems User Group August 1985
le
°
By Kevin J. Molloy.
In’ the June issue Dave Miller described types of variables available to
MEMNOS as " quite powerful in its field include binary and date. The latter
of data manipulation and retrievai" but
"for program development, it is not as
powerful as Apple DO This broad
characterisation is supported by a list
of detailed comments on the way MEMDOS
organises and structures itself and the
systems you: can write with it. Virtually
without exception, important features of
MEMDOS are successively misinterpreted,
cited as of dubious value, and to a large
extent, reported with a degree of factual
inaccuracy sufficient to leave those of
us who know MEMDOS wondering if there
could be another product with the same
name. This unjustifiably bad press_was
unfortunately compounded by Tony
Corinda's article on program generators
in which MEMDOS was the first system
mentioned.
MEMDOS is not, nor has it ever been
promoted as, a program gencrator.
It is demonstrably the most powerful and
rapid application development environment
(with its own macro language tor
file/screen/report handling) available on
any & bit micro and will stand comparison
with most if not all systems on larger
machines. You can construct systems that
would be impossible or impractical with
DOS 3.3. However simple or complex your
application you can expect to write it
with as little as 10% of the code normally
required.
Many of the adverse points made in Dave
Millers article were relatively minor, as
in the case of quibbles with terminology.
However, some major sections were grossly
inaccurate, with both omissions and errors
of fact.
Data Dictionaries
The MEMDOS use of predefined data
dictionaries was said to be problematic,
because it increases the number of
variables in a program and “the variables
associated with MEMDOS files cannot be
used for other purposes". In fact the
variables can be accessed and manipulated
at any time for any purpose. Furthermore,
MEMDOS extends the number of different
allows dates to be stored in two bytes
and to be validated automatically when
used in an input screen or mask.
The fact that masks also have data
dictionaries allows (if you like) the
variables im a screen to be the same name
and type as in the file. This, plus the
fact that MEMDOS has its own macro
language for handling screens and files,
allows a screen full of data to be input
and written to file with only three 8-10
character statements. Another two or
three statements can retrieve and display
any record with the screen properly
labeled and formatted. Applesoft under
Dos 3.3 would require vast amounts of
code to achieve the same result!
Filing
ISAM filing receives much criticism.
Single key files are said to restrict the
search criterion to a test of equality
while multikey files are said to be only
a limited solution. It is simply untrue
that one cannot return a set of records
whose key lies within a given range. An
& character read statement will set the
lower limit, Blimit will set higher limit
and Next will return all the records
within the range.
It is true that one may wish to initiate
a complex search involving variables not
in the key and this does involve a test
of the form IF.. THEN. . However,
whereas this is sometimes necessary in
MEMDOS it is always necessary in
Applesoft and the amount of code required
will easily amount to 10 fold that
required by MEMDOS.
The most important thing about MEMDOS
filing is that the ISAM system gives an
order to the records which is associated
with active variables in the program.
Applesoft can only deal with records by a
number whose value is fixed according to
the order of creation and record length
must be fixed if data is to be
subsequently changed. MEMDOS records
vary in length according to the amount of
data at a given time.
August 1985
HARDCORE - The Journal of the British Apple Systems User Group Page ‘13
In a name and address file, if we want to
see records in alphabetical order or
print a report with such an order
Applesoft files must be sorted. With
MEMDOS we simply make "name" a key and
read by NEXT to return records in order.
Since we can have 10 keys we can have 10
prime orderings equivalent to having the
file presorted in 10 different ways.
Additionally, we can have sub-keys so
that each prime order may have
subdivisions e.g. part number within
customer order number within customer
name. All of this is achieved with two
statements when the file is created and
sort routines are usually only needed
when the system design is bad.
The automatic ordering of keys has other
benefits as when one Wishes to read one
record in several thousand. The
orderings allow MEMDOS to employ a binary
searching algorithm which can retrieve a
record with a given key value immediately
irrespective of whether it is the Ist,
the 10000th or anywhere in between.
Screens and Masks
Masks were said to be “very useful and
make it easy to construct comprehensive
programs with very little effort".
However, no mention was made of the
ability to use the screen to format print
reports. A screen image may be printed
with one statement, or report lines may
be set up which can be called
individually with 1 program statement. A
powerful feature allows print lines of 1
to several hundred characters to be set
up even on a 40 column screen.
The simple validation/formatting
characters that can be appended to MEMDOS.
screen variables ensure a perfect report
every time. Have you ever had to struggle
with aligning fields in Applesoft reports?
Incidentally, these formatting characters
will allow strings to be treated as reals
or integers, to have a decimal format with
@ given number of places after the point
and to determine display with left or
Fight justification. During input this
climinates all first line validation.
Utilities
The utilities disk on the review system
was clearly faulty and this is solely
MEMSOFT'S responsibility. However, of
the many useful utilities on the disk it
is unfortunate that a facility such as
the optimiser was singled out for
extended treatment.
Firstly MEMDOS is so fast at data
retrieval and programs tend to be so
short that the optimiser would rarely be
used. Most programmers only want the
optimiser to remove REMS from finished
systems which have large amounts of non
disk processing where the Apple's slow
Processor can be a problem. (MEMDOS has a
special calc function which can handle
decimals to 48 places without rounding
errors.) Secondly, the MEMDOS manual
specifically warns about the problems
that can arise if variables are
indiscriminately optimised. The
important thing is that you have the
choice to include
Process or not.
the variables in the
Error Handling
As with filing, the important point about
error handling was missed in the review.
When MEMDOS carries out a file or screen
related operation it automatically logs
whether it is successful or not. Unlike
Applesoft it does not "crash" every time
something goes wrong. This is very
powerful since traps may be built into
Programs to cause helpful branching as
when one meets the end of file. The
reason that there are so few error codes
is that one only needs these few to cover
all the eventualities. However, should
non-MEMDOS related problems arise all the
normal Applesoft error messages are
operative and can be trapped at location
222 as normal.
MEMDOS and DOS 3.3
When comparing MEMDOS to DOS 3.3 it is
important to be clear about a number of
points. It is simply not true that lower
case is not supported and MEMDOS docs
Support binary files. Many of the
utilities on the review system use binary
files! Furthermore, because MEMDOS
organises a disk in the same way it
organises a file, disk entities of the
same type list together on the catalog,
ise. all binaries together and in
alphabetical order, all masks together in
order, etc., etc. MEMDOS actually
supports a larger number of disk entity
types than does DOS 3.3.
It is true that at disk level MEMDOS and
DOS 3.3 are different environments but
this does not mean that they are
Page 14
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
incompatible. It is perfectly possible to
read an Applesoft file and write the data
as a MEMDOS file and vice versa.
Conclusion
MEMDOS achieves dramatic improvements
over standard languages such as Applesoft
and most of this power and economy of
code
stems from the novel way it
organises itself and its peripherals.
Because of these differences MEMDOS can
seem strange at first and will remain
puzzling if one is always looking for
equivalent operations and techniques to
those of DOS 3.3/Applesoft.
MEMDOS is in effect an ultra-high-level
language and just as one would expect to
use different techniques at assembly code
level and Applesoft level one must adapt
to the higher level environment of
MEMDOS. Once a programmer allows this
process to begin he can stop doing simple
things the hard way and begin doing
complex things the easy way.
Anyone who has the least interest in
programming and system design or who
wants to be able to control the exact
shape and performance of their systems
can benefit from MEMDOS, as have over
12000 other users throughout Europe.
* Dr. Kevin J Molloy
is the Marketing
Director of Memsoft Ltd.
APPLE //€ TO CENTRONICS:
A SERIAL TO PARALLEL CONVERTER
By G.
Having recently acquired an Apple //c,
one of the first problems became how to
make use of my existing printer. A
problem because the //c has a built-in
serial interface but my printer was a
parallel Centronics 737. The solution
was to design and construct a converter
circuit which could accept the serial
data from the //c, format it correctly
into parallel ‘bytes’ and pass this
parallel data to the Centronics printer.
Fortunately, most of the conversion can
be handled by a single chip called a UART
(pronounced U-art) which stands for
Universal Asynchronous Receiver
Transmitter- with a name like that you
can understand why the abbreviation UART
1s always used!
Circuit Description
The Uart needs a few additional
components around it to turn it into a
complete serial-to-parallel converter.
These additional parts perform the
following functions-
A. Clock
A continuous clock waveform 1s initialiy
F. Randall.
2ASTO MMe
4 2
. u2 4
a =a
iy &o boot
z
5 " We» Meo Bs
Core
var
generated by a standard 2.4576 MegaHertz
crystal and then this is divided down to
produce the clock needed by the Uart.
The Uart operates from a clock running at
16 times the baud rate of the serial
data. While the //c serial port can be
configured to a wide range of baud rates
from 110 bits/sec to 19200 bits/sec, the
default value is 9600 bits/sec and hence
the Uart clock is set to 16 times this
rate.
‘August 1985
HARDCORE - The Journal of the British Apple Systems User Group Page ‘15
B. Power up Reset
This simple arrangement generates a high
level to clear the Uart when the power is
first switched on.
sv
®
foot
“ 10
: Rane ut
Vel T eeser
ow
C. Input circuit
The incoming serial RS232 data is
presented as a digital stream of voltage
levels either around +12 volts or -12
volts. An input circuit is needed to
translate this to 5 volt logic levels (0
volts or +5 volts).
sv
tox
—
‘Seem DATA
Gas "
le i Vache
Ee
4m
ov
D. Strobe
When a complete character has been
received by the Uart and the parallel
byte is ready to be sent out to the
printer, a strobe pulse is generated.
The Centronics recognises this strobe and
accepts the next character. Printing
however does not take place until the
Centronics character buffer is full or a
riage Return is received. While
Sane is taking place the printer is
busy and can not accept any further data
so some way has to be found to tell the
Apple not to send any more serial data
until the printing has been completed.
This is achieved by feeding back a busy
Jn 2
Fou Steen to
vt FG Cneaneg
Hv
2eoope
—
To tes Servawen (0m 36)
Cose) Ftory Comte $
signal from the Centronics into the
serial port Pin 5.
Product Identification Number (PIN)
The baud rate of the serial link has
already been mentioned. However a
complete set of parameters have to be
correct if the Uart is to make sense of
the incoming data stream. The Apple //c
allows for all types of serial
communications by the use of a Product
Identification Number or PIN. A printer
is normally connected to Port 1 and the
default configuration for this port 1s as
follows-
Printer Mode
* 8 Data Bits and 2 Stop Bits
* 9600 bits per second
* No Parity
Do Not Echo Output on Screen
Insert LF After CR
Insert CR After 80 Characters
The parameters asterisked above are fixed
in the circuit design and changing these
entries in the PIN will stop the
converter working. By using the default
set of parameters, it is possible to just
connect up the converter and printer and
start printing.
Construction
T assume that anyone who decides to build
this serial-to-paralle! converter has
already some experience in constructing
digital circuits - I certainly wouldn't
recommend anyone to tackle this as their
first project!
Page 16 HARDCORE
The Journal of the British Apple Systems User Group
August 1985
HD 6402 CMOS/LSI Universal Asynchronous
(UART).
Receiver Transmitter
ov
Parauer
ovest
168
Tone hes)
a fe
tots Pew
Oe ge)
Er eeeseysreureeseys
%
Steere |
“ker © I
Seeune
One
A few general comments on the
Construction may be useful though.
All the components, including the Uart are
readily available and can be ordered
through the post (see the relevant
monthly magazines which specialise in
Electronics). A piece of Veroboard about
3.5 by 4 inches was used to hold all the
components and the completed converter
was then mounted in a small plastic box
to provide some protection.
It is strongly recommended that IC
holders are used especially for the
40-pin Uart. If the chip should fail for
any reason at least you can remove it
from the holder and try to sort out the
problem. Leave all the chips on their
protective foam until you have checked
and double checked the wiring, then
without touching the pins place the IC's
into their holders.
The use of an oscilloscope was essential
during the development of the circuit and
will be needed to check out the various
functions once the construction is
complete. I did not fit the UART until I
was satisfied that all the surrounding
circuitry was working properly. A final
check on each socket on the UART IC
holder is also worth while to ensure that
the wiring is correct.
ane He
Poer L Cmecnee,
Neeiy gare
ar
Lt 74Ls04
v2 741893
u3 TVAL$123
vs 2
Reser Oe “uae:
;
|
i
i
NOTE...Neither G. E. Randall nor Hardcore
can accept any liability for loss or
damage attributable in any way to this
article. Anybody embarking on a
construction project must accept total
responsibility for any adverse
consequences. If you have any questions,
please write to the Editor, Hardcore, who
will forward them to the author. Please
also remember that BASUG operates a
hotline service.
[——) MACBITS
‘SOUTH BRAMBLE
‘SUNNING AYENUE
‘SUNNINGDALE, BERKS
LASERWRITER PRINTING FROM YOUR
OWN MACINTOSH OR APPLE DISKS.
NEWSLETTERS: GRAPHICS - CHARTS
LETTERS
ADVERTISING COPY
LETTERS
SPREADSHEETS
YOUR OWN MANUSCRIPT
TECHNICAL MANUALS:
For details of photo setting end printing phone us
for e quote. Mac, DOS 3.3 and ProDOS Disks 0.K.
Telephone 0990-20232
TBM formet by errengsment
Let
MEMDOS
give your Apple e
MINI CAPABILITIES
* Multi-Key Index Sequential Filing (ISAM) up to 10 keys
* Dynamic Screen Design without programming
* Powerful Macro Instruction Sets
* Complete Utilities for development, maintenance, copying etc.
* True Multi-user capability up to 16 users and 120 MB hard dise
*Over 10,000 users
* Awarded ‘Pomme d’Or'’ for best development software
GIVES
* UP TO 90% REDUCTION IN PROGRAMMING TIME
* FASTER DISC ACCESS
*MORE EFFICIENT FILE STORAGE
* SIMPLE PROGRAM MAINTENANCE AND ENHANCEMENT
@ Available for Apple II+48 Kb with 16K card, Apple Ile and IIe.
MEMDOS diskette version £99 + £2.50 p&p, single user
MEMDOS 24K card version £139 + £2.50 p&p, single user
or discover its amazing power through
MEMDOS JUNIOR £15 + £2.50 p&p
(acts as £15 credit against purchase of full MEMDOS)
FILING - L.S.A.M. supports up to 10 keys each with 10 sub-keys if required,
each key being up to 255 bytes, simple macros to write, update, read, delete
and add records, virtual elimination of sorting, 16 multi-user record locking
modes on hard dise. SCREEN - interactively designed and modified in free
format using Utilities, 40 or 80 column, verification of data at entry, numeric,
binary, positive and date, forward and backward skipping between fields, full
editing within fields, specified decimal alignment, overlays and globals,
single command to display whole sereen. SUBROUTINES - called by name
with up to 32 parameters, local variables, nesting 250 deep and recursive.
REPORTS - free format design and modification (as for screens) using
Utilities. ADDITIONAL FEATURES - addition and subtraction of
character strings up to 48 digits, execute facility, extension of ‘ON ERROR’
capabilities.
MICHAEL SALT ASSOCIATES, 18-16J ACOB’S WELL MEWS, GEORGE
STREET, LONDON W1H 5PD MEMDOS isa registered Trademark of MEMSOFT (S.A.)
Page 18
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
PROGRAM GENERATORS - PART II
By Tony Corinda.
In the first part of this article we took
a general look at Program Generators, the
software tools that have been called
‘Programs that write Programs’. Perhaps
this is a misleading description because
they don't actually conceive the program
= more often than not, they offer you a
library of subroutines which can be
collated into a larger program. Having
organised the routines, the Generator
then codes it for you.
To be fair to the Program Generator, it
does a tremendous amount of labour-saving
work and offers you a wide range of
options. You have to contribute the
idea, the overall scheme of things, and
then its down to the Generator to
translate your ideas into a workable
piece of software. It is not creative and
cannot invent anything by itself. You
might say that you are the designer and
it is the manufacturer. As will be seen,
one depends on the other.
The quality of the end program is going
to depend very much upon the amount of
trouble you take in using the Program
Generator to best advantage. You cannot
produce any well designed programs
without planning ahead. You need to plan
as much with a Program Generator as you
would by any other method. What is very
different from normal methods is that you
are greatly assisted and controlled in
the planning stage. You often have
Choices and options but, just the same,
you are not free to do anything you like,
whenever and wherever you feel like it.
This control leads to a discipline which
effectively keeps you in check. (Let's
hope you haven't set your heart on a
chess program!).
Generally speaking, it pays you to design
the whole program before you start to
utilise the Generator. Using various
tables and charts that are supplied, it
is an easy matter to plan out your
requirements. This you can do for
yourself by simply writing it out in
plain English. It will be easy to
transpose from English to Code by
stepping through a selection of ordered
subroutines - and even
presented in Menu form, written in
English. Things like screen displays are
best worked out with pencil and paper
before coding. It is much easier to do it
with a graduated word processor rule or
by using pre-printed screen and printer
layout forms. These items are cheap and
are available from 'Inmac' - the computer
supply firm that dish out free catalogues
like as though they were tax demands.
these are
Another important reason for the great
"Plan Ahead! method is that when using a
Program Generator - you are constantly
required to move forward through the
program under construction. You can't
always stop when and where you like. You
have to reach certain set points before
you can exercise an option to Save
current work to a disk and continue
later. Pre-planning enables you to know
when and where you can opt out.
1 mentioned before a Program Generator
called "The Last One" (Called ‘TLO').
In my view this particular program is
unbeatable for this type of work. To give
an insight into the operation of TLO -
let us briefly run through the
construction of a program and see what is
involved. Let us suppose that we want to
create a program that produces a Library
of the contents of our disks. Notice we
say ‘create’ and not ‘write’.
Our Library Program should be capable of
telling us where any program is stored on
any disk. It is a glorified index and
filing system and to be effective, we
want it to store Catalog Names, Relate
them to the right disk, Retrieve names in
any order, Search for partly remembered
names (some of us forget them) and
produce a printed Alphabetical Index of
everything or selected subjects only.
This is enough for our illustration but
it is by mo means the limit of what could
be done in this direction. Now we can
start the planning.
The Program Generator will want to know
three main things. (1) What sort of
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
Page 19
information needs to be recorded, (2) How
much of each type. (3) What you want to
do with it. We plan our program so that
we can either add, modity or retrieve
information in any order, at anytime.
Information going in becomes the first
part of our program because it is a bit
tricky to retrieve from a disk -
something that hasn't been recorded.
We are required to identify and classify
information by type and size. Three types
are possible which ultimately depend upon
the method used to handle variables in
Applesoft - although you need not know
that. "Alpha" fields define nearly any
character. “Numeric” fields define
numbers which may or may not be used in
calculations. "Date" fields are
especially designed to hold dates. This
is a special field because TLO has a
subroutine which checks dates when
entered during the operation of your end
program - and rejects things like
FEB.3 Ist...
Classifying the information into the
right type is quick and casy with plenty
of user-friendly safety traps which allow
you to keep changing your mind. Next you
Say how much space you wish to allocate
to each piece of information. You simply
estimate the largest field (longest name)
likely to be required and that much space
is reserved for all in that field. The
Apple ‘Random File! structure is clearly
the basis of this technique. This done,
you have completed what is called "Field
Definition" and you move on to create a
Flowchart, trom a Menu of 14 Options,
which paramountly becomes the sequence
and order of your program.
To create the Library Program, we would
choose from the Flowchart Selection Menu
things like “Write to File", "Read File”,
"Sort or Search" and so on. We would plan
the sequence required before calling the
Menu and the planning is easy; could be
done on a serviette over a cup of coffee.
No funny drawings and mysterious
geometric shapes linked to look like DNA
chains. You will get a subroutine in
your Library Program that opens a file
(under any name you like), records to
that file, called "Writing" and Reads
from that file when you want to. All
done from the Flowchart Menu by selecting
a single number which designates some
specific subroutine tailored to your
needs.
This process of program design and
planning goes on until you have covered
all of your requirements. Nearly
everything you will want to do is allowed
for. You can even select a pre-written
subroutine to allow for mistakes to be
rectified if and when they happen later
in your end-program. This means that the
operator of your program can be
controlled and given the chance to amend
errors, edit or modify data as required.
If you want something exceptionally
different (perhaps, for example, to
insert your own ‘Password Routine’) you
are permitted entry into the code-writing
via an Option called ‘Calculations' -
which is their polite way of saying
‘write your own bloody Basic’. This
loophole lets you enter any formula you
like enabling you to contribute your own
coded work. It does, just the same, check
up on you as you enter it - and rejects
there and then anything questionable or
totally wrong. Effectively it monitors
your Applesoft. You can Peek, Poke, Call
and virtually operate with a’ free’ hand
via the Options available - and yet get
by, with little understanding of computer
code (Applesoft or anything else) by
sticking to the comprehensive Flowchart
subroutines. It allows you to create
without presupposing you are The Creator.
Once away from the Flowchart Menu one is
faced with a questionaire about things
like "EOF" (End of File) and others, all
of which amount to telling TLO where to
go. It needs to know some of the GOTO
Places - but finds out from you in very
simple English terms. It never mentions
nastly Basic phrases when a good old Yes
or No ? will do.
Here the general planning ends and you
are given a chance to formulate screen
displays for the end program. This is
where you can show a flair of your
artistic skills and give the program a
Professional appearance. Become the
Michaelangelo of the Monitor.
Information input points can be
positioned as required with borders and
boxes Situated to please the eye. Forms,
charts and suchlike are constructable
from simple designs and lend themselves
to give an overall professional touch.
Some "Screens" take quite a lot of
designing - and facilities are available
to 'Save' these to a working disk where
they can be recalled and re-used whenever
needed. (TLO has this as an extra and it
is called "Screensaver").
Page 20
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
It is not just a matter of ‘making things
look pretty! when it comes to screen
design. It is essential to smooth,
ergonomic working, that screens are
constructed and portrayed for ease of
use. First. things first. Top to bottom
or left to right - these things are taken
into consideration -and TLO takes them
into consideration and allows you to
decide on behalf of the operator. They
call it, "Tidy Screen" - but that's the
tip of the iceberg.
The final stage is reached when, having
gone from Ficld Definition, through
Flowcharting to Loop and Branch
(Gosub/Goto) control, through Screen
Design and Layout - you come to the point
where TLO takes over completely and
assembles your designed program and
eee
writes the code. It tells you how it fs
getting on as it goes along - writing
error-free code at about twenty compacted
lines per minute. When completed, it
saves the whole program to disk and from
thereon, the program written is
freestanding (needs no working subroutine
library) and it becomes your copyright
Property.
In the next part of this article 1 shall
examine methods to edit this end program;
how to modify and correct, if needed, and
the effect of Compiling the end program
from Basic to Binary.
Ed. Opinions expressed by Tony are his own
and do not indicate any bias on the part
of HARDCORE.
Thanks to Apple UK Technical
Submitted by Peter Trinder. ,
r\ Staff.
@ Macintosh Audie Output Specs
What are the specifications for the audio output connector on
the Macintosh? Is it 8 0 dd output. low or high impedence,
load resistance neoded, etc.
RESPONSE
The audio output connector for the Macintosh 1s designed to
drive a stereo amplifier; however, you can (snd we do) hook
1 © obm speakers directly to the audio output connector to
gel sound, The oulout signal Is 15 volts peak to peak tos
10K ohm laad, the source is in series with SO ohms. The
Macintosh hardware people sovise putting a potentiometer
between the amplifier input and the Macintosh output because
Uere Is the distinct possibility of overdriving a requler
stereo amplifier
@MacTerminal Receive - Transmit Pairs
MacTerminal does not support the RS-422 protoco!
MacTerminal supports an RS-232 type protocol and only uses.
Une TX- and RX- signals. In fect, the modem cable for the
Macintosh has TX¢ and RX* Lied to ground.
© MecTerminal Communicating te DEC-VAX -
Fonction keys net working.
I has been discovered that if you have not set the number of
dats bits correctly for communicating to the Dec Vax with
MacTerminal ten every thing willl work except for the
keyped function keys (i.e PFT etc.). The Vex we heve tried
required the setting of 8 date bils no parity,
© MacTerminal communication with
Macintosh transferring Mies
Another
To be able to communicate with another Macintosh elther over:
the phone or by direct wiring, Une best settings to use are as
follows:~
From the “Settings” menu:
TERFUNAL —_VT 100, ANS!
COMPATABILITY 8 Data Bits, No Parity
FILE TRANSFER XMODEM, ANOTHER MACINTOSH
The cable to wire # Fiacintosh to another racintosh is as
follows:~
engene
Bkouse
‘* Macintosh Numeric Keypad .... Commas and dots!
The Macintosh numeric keyped hes 8 comma (.) key. When
pressed it generates a period (.)!' in order to obtain the
comma you holé the shifl key whilst pressing period (.)
Therefore the only fault is that the keycao should be labelled
with = period under the comma like so:~
FIRST CLASS PERIPHERALS CREATE A NEW QUALITY/COST DIMENSION
Come with us into tomorrow
A totally new low-cost source of computer peripherals is available to you now.
FIRST CLASS PERIPHERALS.
With FIRST CLASS PERIPHERALS you get top-quality products direct from the manufacturer. And
the price we quote includes VAT, carriage, everything you need just to plug-in and play.
For starters, FIRST CLASS PERIPHERALS introduces the SIDER, a 10Mb hard disk add-on for your
Apple }[ + of //e for an amazing £899 including installation software for the four major operating
systems (DOS, CP/M, Pascal and ProDOS), host adaptor, power cable, manual and a full one
year's parts and labour warranty. NO HIDDEN EXTRAS.
Very soon we'll be offering other exciting disk and tape products at equally astonishing prices.
OUR PEDIGREE
FIRST CLASS PERIPHERALS is a wholly owned subsidiary of Xebec, the leading manufacturer of
disk controllers and subsystems for customers like IBM, Hewlett Packard, Toshiba and Texas
Instruments. It is dedication to innovation and quality control that has brought Xebec to the top of
the OEM field. The same committment will make FIRST CLASS PERIPHERALS number one inthe
direct marketing of advanced peripherals in a value-class of their own.
For more information just dial 100
and ask for
FREEPHONE FIRST CLASS.
PERIPHERALS
‘ayle DON Pras re rated ama Ap
Eeachemsinerracnerer seers wee RST
WME PERIPHERALS
amma Cl ASS
First Class Peripherals Ltd
Cockayne House
Crockhamwell Road
Reading RGS 3H
Page 22 HARDCORE
The Journal of the British Apple Systems User Group
August 1985
© MacPaint Printing Cataleg of Date Disk
Trying to print the Catalog of your data oNst using MacPaint
(Release 1.3) on 2 cow drive system causes the system lo
BOMB. After power up, you must print the contents of
document before # catalog can be printed.
@Macwrite 10 Point Feats and Superscripts
The top portion of a superscripted character is not printed
‘hen using # 10 point sized font in Macwrite
MacPaint ‘Show Page Crash ID=25
Following these Show Page steps will cause your Macintosn
512K or Macintosh XL to bomb and display error number
10-03, 10-02 or 10°25
1) Oven a MacPaint document - not tne MacPaint icon.
ii) Show Page, by double clicking on the hand or selecting
‘Show Page from the Goodies Menu, before salecting any other
‘option which displays an alect box ( box with options such es
“Save” or “Cancel”)
4i1) The next operation which displays # dialog box will cause
your system to bomb. Error number 10=03, ID=02 or 10=25
is displayed depending on the dialog box displayed
Workarounds:
‘A) Open the MacPaint icon, Close the untitled document,
then use the File Menu to Open your paint document.
oR
8) Before selecting Show Page, perform any other
‘operation which displays # dialog box. As long as tne Show
Page Dox 1s not the first dialog box accessed, the system
responds normally
¢MacWrite Printing Large Documents
The following 18 not # bug although it helps illustrate how end
Users become confused regarding printing large documents,
Mony users have received te disk full error message wher
trying to print large documents (over 40K), even after
removing ail unnecessary files from the disk Une documents is
fn. When the document is moved onto the Macintosh X's hard
disk, the printing is successful
Understanding the printing process explains this mystery
The Print driver creates 8 complete copybit file of the
document to be printed on disk, This file, which can be twice
the size of the document being printed. always resides on the
‘isk containing the driver file. Placing only system files on &
microdisk sllows your system to create a printfile up to 180K
(2 60 to 70K document), You must use a hard disk to print
larger documents. By the way. some programs do not
‘actually spool an image to disk first, you can then peint
massive Mles with these programs. You can easily tell if this
is the case, the program will not come up with the message
“Now saving Printed copy to disk". Instead it will just stert
printing when you select to print
eTMacWorks Printing garbage on fir:
There is @ bug you might find the first time you print after
turning your system on. if your document Is 2 pages or more
jin length. garbage. missing characters or a scrambled
‘Gocument 15 the result. Print tne document second time snd
ail is well, This is only encountered after first powering up
when using MacWorks.
* Loopback connectors for HacTest
When esting the Macintosh digital bosrd, Mactest requires
that two Loopback connectors are inserted. The Loopback
conectors consist of two links going from pins 4 to 6 and S to
J on each of the Serial Ports
* Meking an alternative dist inte the STARTUP
dist.
Avery usofu! tip.
‘You may have often had the need to change which disk should
be the startup disk, this can be achieved by entering an
application on the disk you want to become the startup disk
‘nd then quitting, BUT this is tedious, it can be acheived by
just holding down the COMPAND and OPTION keys and double
Clicking on the FINDER on the disk you wish to make the
stortup volume.
Try it = youll ike it!
* Getting more space on Multiplan disks
Those of you who need more space for your Multiplan
documents can use font mover to install a 9 point font on the
multipisn disk. This will allow you to have 70 columns on the
screen instead of 60 ond 120 cols. in Ure wide print mode
Instead of 60. if you have both Chart end Multiplan you can
Lash the system icon on a copy of the multiplan disc and
replace it with the system icon from the Chart disk
@ Macintosh External Video Port....rac te Monitor.
This handy device 1s available from:
Ty21
16 Quai de la Marne
75019
Paris, FRANCE Telephone: 33 1 241 2223
@ Macintosh External Drive Pin Outs
Pin tember Signo! Howe Pin ttumber Signa? Howe
2 CAO
3 oN 4 cat
3 oo 6 ore
? oD 8 LSTRe
9 nee ° (RTORTE
" +H 2 se
19 +1 4 ee
15 +120 16 ro
v +10 18 MATOATA
19 +120 20 eo)
FXIOOF/T 160 cps
X10 F/T 100 cps
4X80 160 cps colour
‘Dx100 20 cps aaisywneet
her
R25 25 cos aaisywnec!
Oki
182 NEW 120cps
192 NEW 160.cos
‘Oximate 20 colour
‘Smith Corone
TP! 12 cps darsywhee!
Fastex 60 80.cps.
D100 120.e0
Hewlett-Packard
Thonkiet 150 eos £42700
£447.00
Monitors
Zenith sii
12 green or amber £77.00
Sam
12° CRTIGH: Res £105.00
Microwtec
£38100
1456 inc. Apple RGB cara
Prikips
cr
Shinwa CPARO
100cps,
Daisystep 2000, dorsywhec!
20 characters/second r
NEW 2 speed, near letter quality 65 cos
st 165 cps
£193.00
PEANUT NLO £295.00
dot matrix tlly CP/M, DOS, Pase:
Compatible. liversion inc.inverse
ROM £49.00
80. COLUMN card with bualt-n
softswitch Auto 40/80 smich inc. inverse
‘vid00 chip - otherwise as standard 80
‘column card above £52.50
INVERSE CHIP 10r 80 column card. 1+
version, suitable for use wth or example,
£4700
‘16K RAM auus 16K to memory $0, for
example, a 64K machine has 34K for
Visicaic €42.50
WRITER programs popular
eprom chips wih compare, verity, copy,
fea etc tunctons £59.50
'80 COLUMN card high resolution, 9 x7
APPLE COMPATTELE PERIPHERALS
PEANUT COMPUTER
FREEPOST, DEWSBURY, WFIS 122,
PHONE: 0924 499366
(24 WOURS Answe SERVICE)
Money back guarantee Add }2°%VAI tow onces,
‘Eamrage tor o-sare ander €100-€200
We will match the price of any item
elsewnere provided documentary prodt s
‘ive, and the item is ex-stock
Dealer enquines weicome-inciBM
LOW price HARO OAIVE,
jOMByte 5.00
Low pice FLOPPY DRIVE, POD? ‘Eoso0
AL color copia card
compatible prinir cargt
three: ‘en Zero butter, 16K butter. 64K
butter, for £59,
LOW price DISKETTES, now made fr
Peanut by Fu £13.95
POD2 Peanut nai neight, direct drive
double sided, 280K capacity... £179.00
PODS NEW Peanut half height, direct
re out dent. single te 320K
£225.00
se kw double side, double density,
40K. omerwise as PODS.
PODS Anis ic compaiole.” Sttase
ODT NEW hail neiant, direct drive 140K
‘capacity - lowest price anywhere £105.00
098
control codes, including cable, full
‘graphic dump |
PRINTEF
‘of ime: consuming delays
180 column tor le with 64K mem,
7
2000
| eee COMPUTER
£795.00
i ot OA ee
ahaa ee
PEANUT HaRD oeive |
fa eons
MICROLEDGER the pertect integrated
‘accounts package for the smait business
Microledger 1 00333 Low price
exclusive to Peanut £99.00
£99.00
HILDERBAY Modules. invorwer, Payroll
Book-keeper, SSP all at £69.00
HILDERBAY ACCESS database power
‘Speed. versabiity. excellent vaive £69.00
FLASHCALC the new advanced
‘Spreadsneet program trom ine makers ot
Visicalc Compatible mith Visicalc ttes
For le, te £69.00
Many other programs avaiianie - check.
prices
KEYBOARD detached unit 24 function
keys, separate numenic and operator
secton, ndepender
‘controt- 96 ke}
Apple lt compatible
JOYSTICK now seit centreing
yw ASAD super joystick, tls IBM oF
Apple, optional sell centreing, ime
twin
POWER SUPPLY: 7 SAneavy duty
four way cursor
‘atylo. fully
£99.00
£1950
59.50
NEW PEANUT DISKETTES,
Fuji-brand SSOD top quality 5 year
guarantee Packs of 10,
(Add £1.00 carriage, £13.95
4
‘NEW All Purpose IC, TESTER CARDP!ugs:
into tne ADpHE lo Kenly andtesta wee
nge ‘and
range of 7ATTL ais
_\ DISK DRIVE CONTROLLER 130. )
te's
———
ceerenmecicccssca' ll
sector disks auto:run
NEW Grappler comoanible printer card in
three versions. These cards have printer
‘selection switches
No butter £59.00
18K butter £99.
‘64K butler 119.50
128K RAM blockbuster extra RAM
Page 24
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
“fs
By H. E. Freeman
Automatic PILOT!
At the last flower show was a chap with a
computer-based quiz program for
know-it-all plant-o-philes. The first
question on the screen asked for the
Renus name of the corn marigold (it's
Chrysanthemum).
My first thought was that the program was
doomed to failure - or a lot of
disappointment for people who knew the
name but couldn't spell it. Think about
it. How do you error trap input that
could range from the full correct name to
an abbreviated, correct form such as
‘chrysanth', to spelling variations on
these themes?
Easy! Here's the code:
3. T: What is the corn marigold's genus
name?
he At
5. Mz CAR*SANTUAMAM ! CARSSANTH
This code will print the question on the
screen and accept as correct any
variations on the theme you can think of.
That's not bad for 3 lines of code! Try
that in BASIC and you won't get away with
less than 2K of code ~ and what about the
other questions?
To be honest, these lines have a lot of
code immediately behind them, plus a
whole suite of programs that go to make
up PILOT, a neat name that stands for the
awful ‘Programmed Inquiry, Learning Or
Teaching. You'd be right in guessing an
American birth, in 1968, maturing to a
standard, COMMON PILOT, in 1978.
Implementations called ApplePILOT and
SuperPILOT exist for Apple Il and He
machines.
PILOT is an author language, which means
that what you see of the language is a
small number of commands (about 26),
behind which is an interpreter (and
more). The beauty is that you don't need
to know anything about BASIC or computing
at all to be able to produce robust,
interactive programs, complete with
animation, graphics and sound.
It should be fairly clear from the name
and the small program example that PILOT
isn't an ordinary computer language. You
can't write arcade games in it, or
database or CAD/CAM software. Bur it is
good at user/machine interaction - the
type of to and fro activity you would
expect from good educational software. In
fact PILOT is best used for the production
of Computer Assisted Learning (CAL)
software, and in this and the next article
I'l be looking at those features of the
language that best suit it for this.
Let's have a look at the code again:
3. T: What is the corn marigold's ge
name?
a at
M: C#RASANTH*M*M ! CARASANTH
The commands take the form of a letter,
such as 'T', and a colon. It doesn't take
much imagination to sce that 'T:' stands
for ‘print to the screen everything after
the colon’. Similarly the command ‘A:'
stands for Accept input. 'M! is the
'Match' command: two things are introduced
here: input is Matched to the text after
the colon, which here contains several '**
characters. These are wildcard
characters, so any letter can be used in
their place in the input.
Separating the two words is the ‘I!
character, which stands for OR, so this
program segment will accept any spelling
variations of the words “chrysanthemum”
and "chrysanth".
Clearly we must tell the person if they
got it right or wrong, and either let
them have another go at the question or
pass on to the next. Any action will
obviously depend on the answer, but first
we need some feedback to the input.
TY:WELL DONE!
August 1985
HARDCORE ~ The Journal of the British Apple Systems User Croup
Page 25
'TY' means print this text if the answer
is correct (Y=correct). Having
congratulated the user we must go on to
the next section. This is easily done
with the Jump command:
7. J¥:ROSE
Again we meet the MODIFIER, 'Y', which
means IF correct THEN Jump to the next
segment, called ROSE. ROSE is a label,
and the next segment begins with the
heading
20. *ROSE
However, we're jumping ahead of
ourselves. What happens if the answer is
wrong? There are two alternatives: we
can give no feedback, just jump to the
next section, but this is rude! The
least we can do is give a hint or two
before giving the correct answer. The
intention is not to test, but to inform
after all. Now we have a problem, because
we want to go back to the A: instruction
and at the same time give some new text,
such as ‘The answer begins with C'. What
we need is a WHILE-DO loop which keeps
going round until we get a right answer or
we lose patience and give the correct
answer. In PILOT this is very easy:
8. TH:Wot quite! Here's the first hint -
it begins with a
9. T2:Wrong again!
here's the second
hint - it starts ‘enr...*
10. T3:The answer is Chrysanthemum.
1. J3:ROSE
12. J:@a
13. Bs
20. *ROSE
A variable in PILOT called the Answer
counter is put to one each time an A:
statement occurs in the code. And every
time the SAME 'A:! statement is met, the
counter is incremented. It is easy to
tell the program what to do on a certain
value of the counter - just put the
number against the instruction. So, in
the example at line $ when the counter is
one the first hint is given. By the time
the counter is 3 the programmer has
decided to give the correct answer AND to
jump to the next segment by the command
'J3:ROSE! - ic, jump to ROSE when the
counter = 3, Line 12 is very important
because it tells the program what to do if
the answer is wrong. It says ‘Jump’ to
the ‘Accept! instruction, so a new answer
can be input. Line 13 indicates the ‘End’
of the segment, whilst line 20 is the
Start of the next.
It isn't necessary to use segments at
all, but they make debugging and program
reading very much easier. There is even
@ PILOT equivalent of a subroutine. It
has the command 'U:', standing for User
subroutine. If we want a nice display on
the screen when a user gets the right
answer we can replace the code at line 6
with something like
6. UY:GOTIT
"Ut is the command, 'Y' is the modifier
and GOTIT is the name of a subroutine
which like all segments begins with a
label, GOTIT, and ends with Ex. So our
subroutine could be
100. scoTIT
101.T: eeeceeoe
102.T: ee ee
103.T: @@ WELL @@
104.T:; @@ DONE @@
105.T: ee ee
106 -T: eeeeeeee
107.E.
The complete progra
following segments
ight consist of the
INTRO
CHRYS
ROSE
DANDELION
SUNFLOWER
FINISH
GoTIT
And the whole segment, CHRYS, might be
tT. ACHRYS
2. Rithie is a REMark, just like BASIC
3. T: What is the corn marigold's genus
ame?
4. oa:
S. M:CRR®SANTH®M®M ! CRRASANTH
6.
7. J¥:ROSE 8. T lot quite! Here the
first hint - it begins with a 'C*
9. T2:Wrong again! here's the second
hint ~ it starts ‘chr.
10. T3:The answer is Chrysanthemum.
11, J3:ROSE
12. J:@A
13. E:
20. *ROSE
In the next article we'll have a look at
more matching, maths, movement, graphics
and sound,
APPLE COMPATIBLE PRINTERS — DAISY WHEEL PRINTERS — DOT MATRIX
PERIPHERALS ; ; — NEW LOW PRICES!!!
NOTCHER disk capac ty DOU
8C Column Card ‘Videe Compatibie| 8
8C Col Card as azove with Sott Con:
INVERSE Video ROM lor above
80:40 Colume
£
ft
£
64K RAM.
Wild Card Plus... {
Four Pout Twin 6522 Card : £
6809 Card £
leteger Base Card £
L060 Cae £
doystick i q
“doysick elute vers.oni £
‘oysrick extension cord £
Apple Compatisie Power Supply 5A af
ASC Il Enceded Keyboard wath ic mod £
TBM STYLE heyboard for Apple £
‘iC Ceoing Fan (cp on) wth supress £
£
£
£
£
£
£
£
£
€
£
£
conten
29
i? DISCOUNTS CN 4ST ABOUT EVERY ALOR
calc son OUETATON ===
Forth Card.
BD8E Card with B4K (capacity 128Ki
Light Pea systen.
Graphics Table
IMAGE Processcr Icolimona/SSTV use)
¢ 10M Hard Orwe KT.
5/10 WB Hard Dive Contrle Cord
(Noie AN INTEC dives are UK duit and backed — Prees include
ard cables, gower supph uty and diagnste soltaare
tor DOS, FASCAL & CPIM. together wit 24 moetn service waranty]
:
ec Geraionin Bt
1 Dasiny 12° foige oeoicht
HEMEMEcR! Even if you don’t see it advertised here we can probably supply it AND FOR
LESS. Problems with limited space means that we are only able to advertise a limited
range of products. Additional prices on applicetion. Consumables, paper, ripbons etc.
supplied at exceptional prices, 24-HOUR DELIVERY on items ex stock.
CARRIAGE WITHIN UK: Items which may be dispatched by POST (eg peripheral cards
atc.) add £2.00 per order for any order under £50.00. ORDERS EXCEEDING £50.00
CARRIAGE FREE
SOFTWARE PACKAGES: CHARGED SEPARATELY MINIMUM CHARGE £4.00. Items
which must move by CARRIER (such as printers, monitors etc.) will be delivered within
24 hours for a charge of £10.00. VAT to all prices given. Remember, VAT is also
applicable on carriage 15%. Terms STRICTLY CWO. DEALER ENQUIRIES WELCOME.
FOREIGN enquiries if possible by telex please. Favourable rates to most destinations.
CALLERS BY APPOINTMENT ONLY
20 cp1 MC
e0.cos KO.
kb sicec lam vi
Ke a10PC 1am Vi
AG AA
BUSINESS SYSTEMS LTD
Be MAPLE DRIVE, EAST OMINOTEAD, WERT BUREEX, fea SUR
(0342) 24631/313427
Page 28
HARDCORE ~ The Journal of the British Apple Systems User Group
August 1985
TIPS, TRICKS
By Shmuel Brown.
WPL TIPS
A powertul feature of Applewriter II is
WPL, its word processing language,
enabling you to write your own procedures
or command scripts. I pass along two tips
that you may find useful:
i) writing embedded macros to
package often used sequences of commands.
ii) numbering footnotes or
references in a text, a feature not
provided by Applewriter.
For example, say you want to put a
quotation from a book in something you're
writing. Proper form is to indent the
text and print it single-spaced and you
should always acknowledge its source.
Embed the following directives in your
text as shown and then run the WPL
program quot. Note that the back-quote
is used for underlining. There must be a
‘return’ after the last line of the file.
The proper punctuation (1 or 2 spaces)
must be entered on the line preceding the
'FS directive for proper filling. This
is the text:
Here is a short excerpt from a book of
which I am very fond. It is supposed to be
a children's story, but there something in
it for everyone.
‘aL
For a long time they looked at the
river beneath them, saying nothing, and
the river said nothing too, for it felt
very quiet and peaceful on this summer
afternoon.
"Tigger is all right ‘really’ ,"
Piglet lazily.
"Of course he is," said Christopher
Robin.
said
"Everybody is‘really'," said Pooh.
"That's what'I*think," said Pooh. "But I
don't suppose I'm right," he said.
“Of course you are," said
Christopher Robin.\*F
QI
e, ‘The House at Pooh Corner‘,
Chapter VI‘In Which‘Pooh Invents a New
Game and Eeyore Joins In.
Te
At this point you can continue to enter
the text of your treatise. The proper
formatting is done by the embedded
directives\"F.
‘FS
This is just an example of another
footnote.
‘FE
You run the WPL program before issuing the
PNP. Please note that the letters all
represent Applewriter Il text files.
Here 1s a WPL program that will do it
PND
PPR CL]
Pur
PPR Delete old footnotes
OE/BASUG/O2222
PPR Number footnotes in text
8
PSX 0
[eat PSX #1
FANEZO0%
¥?
PGO LPL
PPR Loading heading, etc.
E
L/BASUG/OS 111
PPR Save footnote text
8
Lp2 FQ FSC
y?
PGO LAI
PGO EX1
LAL S/BASUG/Q2222'“FE'+
y?
Fea FED CG
y?
PGO LP2
€
\/BASUG/02222
PPR Footnotes added
is
F/°FE/ PFS
y?
8
F/Footnotes/
2
PPR Number footnotes themselves
PSX 0
LPs PSK +1
FORE). ¢
y?
PGO LP3
PPR Quote macros
8
FCOLC.LIO) .LM#6> .RM-66A
FO/QEC.LI1> LM=4) .RM#6) ><A,
8
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
Page 29
Speedier Applesoft.
By Dr. Charles Sheppard.
These two techniques turn two of the
slowest Applesoft proceedures into very
fast ones. They appeared some years ago
in a US magazine, and I have merely added
a couple of modifications. Programs still
appear in magazines which could be speeded
up enormously by their use.
1). We still often see programs published
which require extensive reading and
writing of numeric arrays to text files by
means of the very slow READ and WRITE
method. Large arrays take many minutes,
but there is a much faster way to do this.
You have probably noticed how BLOADing and
BSAVEing even large Bfiles takes a
relatively much shorter time. If you have
jarge numeric arrays to save and input
this can be done very much faster by
BSAVEing that block of memory where the
array is stored. Then it can later be
BLOADed into the right place into the same
or different running program. The only
things needed are the start point of where
the array is stored in memory, and its
length. Locations 131 and 132 store the
address of the last used variable. If the
array A(15,100) has been made in the
program and you wish to save it, then
100 X = 0 * A(0,0) + PEEK (131) + 256 *
PEEK (132
110 PRINT D$ "BSAVE name,A" X ",1L" 16 *
1ol® 5
The 16 and 101 are the number of
dimensions in the array, in this case 15
and 100 (remember there is a zero row and
column). The last 5 is used for real
arrays; it should be changed to a 2 for
integer arrays.
To Bload this array, the array should
first be DiMensioned to the same
dimensions as the array which was saved.
Use line 10G as above, and then
110 PRINT D$ “BLOAD name,A" X
String arrays cannot be used in this way
directly. 1 have, however, used it for
Storing alphanumerics by taking the
letters and numbers as ASCII codes and
regarding them as integer numbers. You
just have to convert them back and forth
in the program at the relevent point
between the character and the ASCII code.
It gets complicated when you mix
alphanumerics and real numbers though! |
have also found that you can increase the
size of the array (or database) in this
way. If you want to add 10 more records
to your table (or database) then DIM
A(15,110) and BLOAD in the array.
However, only the column number can be
increased (ie the second subscript).
Things get scrambled if the first
subscript is changed. I have not tried to
increase the size of arrays other than 2
dimensions in this way but imagine the
same principles apply. The method is very
fast when you start to get data sets of
several thousand values which you want
to load in and process, and the data
takes up less disk space too.
2) Programs also still appear which
initialise arrays (or set their values to
0) in order to reuse them. This can take
a long time when their dimensions are big
and when FOR: NEXT loops are used. It
can be done instantly by
100 POKE 109, PEEK (107): POKE 110, PEEK
(108)
Then redimension the array. All its
values are now 0 and it is reDIMed without
an error message being generated. That
line will delete all arrays and acts by
"closing up" the pointers to them. If you
want to delete some arrays but not all
then a longer version is needed. First,
you must make sure that the array to be
deleted is DiMensioned after the ones to
be kept. The lines are
100 X = 0 ® BCO,O) + PEEK (131) + 256 *
PEEK (132) ~ ¥
110 POKE 110, X / 256: POKE 109, xX-256 4
PEEK (110)
The value of Y must be 5 + (2 * number of
dimensions in array). eg 9 for a 2
dimention orray.. If the orcay. isa string
array, the B(0,0) in line 100 should be
VAL (B$(0,0) instead. Arrays dimensioned
before B(x,y) remain intact.
Ed.
1 understand the magazine mentioned was
ble. Our thanks to the Editor.
VACANCY
WANTED: - Person to repair and maintain
Apple //e and peripherals in East London
area. Ring ‘il #4 (lal) any time tor
further details.
Page 30
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
ARCADE
IBOARD INPUT ROUTINE
By Barry Brummit and Eric Rose
100 HGR: X = 20:¥ = 20
110 POKE - 16302,0
120 BS = AS: REM SET BS = LAST KEYPRESS
130 IF PEEK ( - 16384) > 127 THEN
140
" AND AS < > "J" AND AS < >
"" THEN AS = BS
145 HCOLOR-O: HPLOT X,
150 IP AS = "I" THEN ¥ =
160 TF AS = "K" THEN ¥ =
170 IF AS = "L" THEN X =
180 IF A$ = "J" THEN X =
190 IF AS =" " THEN GOSUB 1500
200 HCOLOR= 3: HPLOT X,¥: REM PLOT THE
REM ERASE POINT
Y-1
POINT
210 IF X9270 THEN HCOLOR*O: HPLOT X,Y:
Xe
220 IF X<1 THEN HCOLOR-O: HPLOT xX,
X=270
230 IF Y>190 THEN HCOLOR=0: HPLOT X,Y:
Yer
240 IP ¥<1 THEN HCOLOR-O: HPLOT X,Y:
Y=190
250 GOTO 120
1500 HCOLOR#3: HPLOT X,Y TO X,0
HCOLOR-O: HPLOT X,¥-1 TO X,0:
HCOLOR=3: POKE -16384,0: A$ = BS:
REM FIRE AND SET FORGET LAST KEY
1510 RETURN
Notes on Keyboard Input Routine.
1, The if-then statement in line 130
checks to see if a key has been
pressed. If it has the program
assigns it to AS. If a key is
nor pressed the program continues to
execute the last command.
2. The if-chen statement in 140 checks
to see if the key pressed is valid.
If it isn't the computer sets AS
equal to the last key pressed.
3. Lines 210-240 check to see if che
point has moved off the limits of
the screen. If it has it repositions
it on the other edge.
4. The commands for the keyboard input
routine are as follows:
"T' moves up
'K' moves down
‘J’ moves left
'L' moves right
"SPACE" fires
> "1" AND AS < > "K" AND AS
5. Unlike the standard keyboard input
routine which will fire continuously
until you press another key, this one
only fires once and then returns to
what movement you were executing
before.
6. When the program is run A$ and BS are
blank. When a key is pressed it
put into A$ and then checked. If it
is valid, che key in AS is copied
into BS. If it is not valid, the
value of BS is copied into AS. By
using this method one can insure that
invalid keypresses will not cause the
movement to stop, as it would in a
normal keyboard-input routine.
7. Making A$ equal ro BS in the firing
routine makes the computer forget
that the space bar was presged and
thus the computer continues executing
the last valid command.
8. NOTE: I chose to use I, J, K, L, and
SPACE as my movement/firing commands.
These can be changed quite easily by
changing the if-then statements in
Lines 140-190
9. NOTE: Because of the arrangement of
the keyboard buffer this program will
not run if GPLE is in the memory.
Variables used in the keyboard~input
routine:
~A$ holds the value of the most recent
keypress.
BS holds the value of the last keypress
-X holds the horizontal position of the
point.
-¥ holds the vertical position of the
point.
This program is available tor downloading
from SANCTUARY TBBS. The number is
0784-38110 24h CCITT 300d.
PILOT ARTICLE
*Ed. Howard Freeman is a one time
colleague of mine and is currently a
lecturer at Stow College, Glasgow where he
teaches technical aspects of biology.
AUGUST SPECIAL, Ree
For the morll. of, Auguatl, MCA Micronylema ane
BK RAMcand for Apple 1S tt 14395
Sle Sandonh 80 column card
Je UK Extended 80-coluimm card
MGA tHicroSystems
140 High Street
Tenterden, KENT
Prmctshop Graphic Osk 2 £24.95
Want a TOMB bard dink? How
about {950007 Aak lon detaihs
Page 32
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
Statistical Analysis Package
1 DOS 3.3 floppy disc
Author: Dr C Sheppard
Publishers Dr C Sheppard
Price: £25.00. inc
Hardware needed: Apple i, Apple J+,
Apple //e, or Apple //c. At least one
disc drive. Printer (optional).
By Andy Jackson
Review Machine: 64k Apple J[+.
Introduction
Statistics is a statistical analysis
package for the Apple J series of
computers written in Applesoft BASIC. It
allows the use of many of the more common
statistical techniques such as T test, F
test together with some less frequently
used techniques (by some!) like cluster
analysis.
Statistics is booted in the normal
way: there is no copy protection.
There are eight programs on the disc
together with a manual (over 60k bytes!).
I found that the best technique with this
package was to print the manual, using
the supplied program (READ MANUAL), and
study this at my leisure and then use the
package.
Manual:
The manual is excellent; this in
itself is unusual for many pieces of
software. It is split into several
sections: introduction, file editing,
statistical techniques available, use of
foreign data files, and references.
The manual not only describes each
operation but also gives hints and tips
on how to get full use out of the
option. In the sections describing
statistics a small example is generally
given to clarify the particular technique
used.
General Usage:
There are two versions of STATISTICS
supplied on the disc; one is integer
only, the other is real, The integer
version allows approximately 2.5 times
the number of data items and so is useful
for large data arrays. The entire program
is menu driven which is useful for the
novice but a little frustrating when one
knows exactly where one wants to go in
the program. When selecting a menu
option <RETURN> has to be typed after
each entry: here it might be useful to go
to single key depression using GETS
rather than INPUT only asking for
confirmation if something drastic will
occur. After selecting an option the
current procedure is printed at the top
of the screen which is a useful reminder.
I felt that it would be helpful to have
the name of the current file printed here
also.
Before carrying out any statistical
analysis the data has to edited into a
new file. The File Editor option is
seleted from the main menu. The number
‘of rows and columns of data then have to
be entered; in fact one has always to
write down what this size is since, when
reloading the data for analysis, this
information has to be given again. This
is a result of the fast loading technique
used on the data. However, I felt that
this could be avoided if two files were
created for each actual file required:
‘one containing the data and the other the
header data and some descriptive ficld.
All the data making up the file is
entered at ance, with no value being
entered by just RETURN. No values are
useful for data sets with missing data or
where the data will be filled in at a
later time,
Other operations possible from the file
editor menu include display of data
(screen or printer), addition of rows and
columns to an old data file, deletion of
a row or column, search for a specific
value, transform a variable (according to
some mathematical function), and change
value. The change value is perhaps the
most important of these since mistakes
are made on typing in data and here |
found the program a little difficult
since one could not work down a list of
values, entering the row and column of
each item of the data, then say yes to
change it. I felt that some sort of auto
August 1985
HARDCORE - The Journal of the British Apple Systems User Group
increment method and a single key (i.e.
no <RETURN> required) for changing the
value would be useful here. Leaving the
file editor automatically saves the file -
a useful feature.
Statistics:
After returning to the file editor the
Statistics section of the statistical
analysis part of the program may be
applied to the data just created or to a
previously saved data file. The options
available are summary statistics,
difference of means, m analysis of
variance, t test, chi squared test,
correlation and regression, ranked
correlation, Mann-Whitney U test, and
cluster analysis. One of these is entered
by typing the number next to the
appropriate option. It would be possible
to add extra procedures to this menu since
the program ‘sizes! memory and so extra
lines of BASIC would not cause it to fall
in a heap!
With each option it is possible to direct
output to the printer so that a
permanent record of ones analysis is
available. Also, having selected a
particular data file to work with it 1s
Possible to use the file for every option
without having to retype the relevant
details. Unfortunately for each file
analysed one has to remember the number
of rows and columns associated with it; I
think that if one used the program
heavily the scraps of paper with these
details on might easily get lost - also
if one returned to a data file after a
few months and the size was forgotten the
data would be hard to recover.
The different statistical options
available within the program cater for a
wide range of users; for me the
regression and correlation of the data
was the most useful giving not only the
intercept but also the variance of the
actual data with the fitted data.
Another useful option was the summary
statistics which gave mean, standard
deviation, skew, and kurtosis of the
data. Cluster analysis is the most
complex of the statistical procedures
available. An example of its use is in
the analysis of metals content of rain at
different sites; where it is useful to
know if there is relationship between
different sites. Here rows of the data
file would represent different sites and
columns the readings for each metal. The
manual is useful here in pointing out the
best method of tackling this analysis and
also that the analysis can take a very
long time.
Other programs:
The statistics program uses a peculiar
file format - a binary image of memory is
saved rather than the long winded Apple
DOS text file format. This format has
advantages and disadvantages: files are
smaller and load faster but they are
unreadable by other programs. Sensibly
Dr Sheppard has provided conversion
Programs to convert both to and from this
binary format. This offers a number of
advantages; if the Apple is being used as
a data logger it is possible for the data
to be ‘untouched by human hands' - a
small conversion program can turn the
data into a file suitable for
'statistics'. Working the other has
obvious benefits too.
A final conversion program converts teal
data files to integer data files.
Unfortunately there is no utility to work
the other way though if one is using
integers it is probably because there is
too much data to fit in the Apple Ils
memory!
‘Conclusions:
The program as a whole is very well
presented and a considerable amount of
thought has been applied to it in order
to make it easy to use. There are a few
areas where the program falls below its
own high standard - for instance in the
editing of data. The manual was
excellent, not only for giving a
description of a particular option (in
its widest sense) but also in decribing
its limitations and how different areas of
the program could be adapted to suit
personal needs with the minimum of
trouble. The program was also very
suitable for use as a teaching aid since
data could be altered and its effect on
results could be observed giving an
insight into the way these statistical
techniques work.
Page 34
HARDCORE - The Journal of the British Apple Systems User Group
August 1985
Titles:
MegaSpell.
Producer: Megahaus Corporation.
Price: UK not known-see end for U.S.A.
Hardware required: Apple Ils, //e and one
‘or two disk drives.
MegaWriter, MegaFinder,
By Dr. Peter Baron,
This ts bit like attempting to fit a
quart into a pint pot, but for months |
have been trying to get together a
summary review of Megawriter, Megaspell
and Megatinder So here goes.
Megawriter is a wordprocessor adapted
{rom parts of the USCD Pascal editor,
coupled with a disk organiser and print
formatter, so users of this language will
feel at home with some of the familiar
Top of screen prompts.
From an initial master menu, the
selection to W)rite, Olrganise or P)rint
must be made. The W), or edit, mode
allows most of the usual functions, with
main commands like adjust, copy, delete,
find, insert (which allows text to be
typed to the screen), jump, replace and
quit. There are also facilities tor
setting the writing environment (as
distinct from that for printing), like
line width, margins, page length and the
like. An unusual command, called S)hield,
is provided to protect text from
alteration when text margins are changed.
80 column boards are recognised
automatically, but when Megawriter was
used with Sup R Term, the cursor vanished
on the first key stroke ! The Videx board
functioned perfectly, though in this case
ctrl A must be used for switching between
upper and lower case, rather than the
shift key. Most commands are entered as
single key strokes, which is nice, but
unlike some other modern wordprocessors,
this one does not perform any
mathematical operations.
The O)rganise section of Megawriter
allows renaming, initialising, copying
and deleting, as well as the abilities to
compact disk files, use wildcards, see
the disk titles on tine and print the
catalog - to screen or hardcopy, which,
besides je titles, shows the dates on
which they were written. It also gives
the remaining space on the disk.
With the P)rint option, which defaults to
the Epson MX80, all the usual parameters,
including page numbering and special
printer facilities, can be set. It is
also possible to use microjustification
if your printer is able.
A Megatutor disk comes with Megawriter, so
as to ease the learning process. Also
available is Megaspell which is a simple
to use spelichecker supplied on another
disk. Points to note are that it allows
correction in context- with a superb
display, has a dictionary of 40,000 words
which allows the addition of another
10000, and automatically rejects false
alarms caused by format commands. Oh yes,
it is agonizingly slow - over 5 minutes
just to read in the text of this article
and the dictionary words.
Finally, just a brief look a:
these programs, Megafinder. Essentially
this is a file management package of
three disks, which, as far as 1 could
tell, will, amazingly, not allow any
simple mathematical functions to be
performed on numerical entries or
reports. Both 40 and 80 column displays
are again supported and either ready made
or user-designed entry forms may be used
by employing the two disks supplied for
these purposes. Interesting features
are; that information can be transferred
between forms, fields do not require names
and extra fields can be entered. Of
course, searches and alphanumeric sorts
can be performed (and the blurb claims
that Megafinder is much faster on search
than PFS) and a variety of attractive
report formats created. Megafinder can be
used with Megawriter in order to merge
mail lists. Editing functions are quite
adequate, other than that pesky ctrl A.
the last of
Tre only way to exit these programs seems
to be through switching off the Apple and
1 do not think that users will find this
method either convenient or desirable.
It always seems to me that no one piece of
software ever has all the features that
one needs and it is all too casy to pick
( PERIPHERAL CARDS.
TER
omni YO $5224 pon) 59 Format PC
IEEE including clock (battery 2k Static Ormbata Accounts
Rosco Printer Cards are CP/M, Pascal RAM, Battery back-up), Applosoft Qrmbate Invoicing
& Applesott compatible with full driver routines, Pasccl driver routines. Fast DOS .
graphic dump, allows activa analysis/debugging of the Copy I! Plus
cae (EEEABB bus £299 Mer!
incoder card, complete 2 Channel Routine Machine
Somat ricosrs idibalior- E79 | meettene aeee ates arte Microsoft Compiler
Parallel Printer + 32k butler €99 TTL quedratune waveform plus ref, Omnis 1 databas
Parallel Printer + 4x butter E119. signaltrom optical encoder... €285 — Omnis 2 databace
BOF CBDIG nn Dynamic Debugging-Real Time Ciock, Omnis 3 database
Parallel Butter (64k) « £149 16 inputs latched outputs. 2k RAM for Practicalc It
arate Sent tute (Sai) £174 user-definable routines ... £235 —(Sprood sheevdetobase)
1 Printer : £44 yO 32-32 input. 32 latched output 5V
Serial Butter (Gai) €149 or 12Vorupto SOV 235
‘Senal Butter (648) for Macintosh £183 Yasion,
Seriat Cable (Standard. Pam thy ee sa
caiiaaaibui Caribe Galouy modulator ¢ sound fori. £28
‘Nightingele Modem approved for use, | RGB forile BA
INSPECTION & TESTING
IC TESTER, Tesvidentity 74 series and
CMOS 4000 Series £110
Yeoorrs
Communi
eta te Memory IC Tester ¥ £190 oT
le
OTHERS CP/M cord allow use of 128k RAM in
SetaVCoMO nn E48 FAQ CeA te oF cag Apple Ne ran ol standacd CP/M
16K £44 program CFM 2.2 ana CriMn 2.23
ise Contac £38 £95
EPROM witer up to 2764's fea CP/M plus programmer pack including
EPROM writer upto 27256 £99 MAC. RMAC. UMP. £0, Sa
AccESSORIES External disc drive for lie
Keyboard ~ 52 Key Ascii encoded Serial butter (64K) for lle
keyboard (upper andiower case) ...€59 AGB cardtorile
Power Supply £69 ‘Supervision colour Monitor tle
AC Cooling Fan (line Surge
montrors
Suppression) £35
——~_—_ Joystick (cursur edjustselt centre) KAGA
whe £2012, Res\green or amber) £109
* Med:Res y £219
ee, £19 12"HiF-Res (AGB) £259
| eet Shee Kataiite SISO 12" Super Hi-Res (AGB)... E358
{00X01 10) sree e19 PRINTERS
Erson
we cou
Showing the first 100000 of 152699 characters.