robots ! hate them

Transcription

robots ! hate them
•>•> <• •> <•<•
HONORARY NATIONAL OFFICIALS
Chairman:
W ing Cdr. Mick Ryan
164 Chesterfield Drive,
Riverhead,
Sevenoaks, Kent TN13 2EH
Telephone: Sevenoaks (0732) 453530
General Secretary:
Jim Tierney
11 Collison Place,
Tenterden,
Kent TN30 7BU
Telephone: 058-06 2711
Regional Co-ordinator:
Eli Pamphlet
7 Lower Green,
Tewin,
Welwyn Garden City,
Herts AL6 OJX
Telephone: Welwyn (043 871) 7325
Treasurer:
Joseph Gabbott
Software Librarian:
Bob Wood
13 Bowland Crescent,
Ward Green,
Barnsley, South Yorks S70 5JP
Telephone: (0246) 811585 (work)
(0226) 85084 (home)
M embership Secretary:
Jack Cohen
30 Brancaster Road,
Newbury Park,
Ilford, Essex IG2 7EP
Telephone: 01-597 1229
Editor:
Ron Geere
109 York Road,
Farnborough,
Hants G U M 6NQ
Sub-Editor:
Mike Todd
27 Nursery Gardens,
Lodgefield,
Welwyn Garden City,
Herts AL7 1SF
D iscounts O fficer:
Dr. David Annal
142 W inderm ere Road,
Norbury,
London SW16 5HE
Telephone: 01-764 4043
169
I N D E P E N D E N T C D M K ID D D R E
PRDDUCTS USERS G R Q JP
V o l. 4 N o .4
N e w s le tte r
J u ly 1982
Europe's first independent magazine for PET users
»»♦»
Page
»»»•»<•»»»•>»»»»*»»»»♦»*
Contents
170
E d ito r's N o te b o o k
171
4022 P rinter M o d ific a tio n s
172
R ound th e R egions
173
W o rd s o f W a rn in g — D isk ID C hanging
174
P rin te r Presence Check
176
4022 S e co n d a ry A d d re ssin g
178
C om al C orner
181
V IC M a tte rs
188
V IC M e m o ry M aps
199
M a tte rs A ris in g
200
S h o p W in d o w
203
M icro ch e ss on Ice
204
D isk to Tape Save
211
C o m m o d o re C olum n
212
4 0 3 2 /8 0 3 2 S TO P Key Disable
214
Line 350 800?
216
R eview — T he PET Index
The o p in io n s expressed herein are those o f th e au tho r and not n e cessarily th o se
o f ICPUG o r th e e d ito r. Ite m s m e n tio n e d in "S hop W in d o w " are c u lle d fro m a d v e r­
tis e rs ' m a te ria l and ICPUG d o n o t n e ce ssarily endorse o r reco m m en d such ite m s caveat
nmofor
170
EDITOR'S NOTEBOOK
Newcomers to computing expect for
some strange reason their computer
to be accurate.
Now within reason
this is so, but it does depend upon
a
number
of
contraints.
Calculations are normally performed
to
a
specified number
of
significant
figures,
not
in
decimal, but binary. In the process
of conversion
from
decimal
to
floating-point binary format their
may well be a rounding error*
Furthermore,
trigonometric
functions are usually evaluated by summing a polynomial
series whose constants and number of terms are a compromise
between accuracy
in keeping with the rest of the machine,
and speed of summation. Having obtained a result, the PRINT
function usually outputs less significant figures than were
used in the computation.
Finally,
the software itself may
have bugs in it which produce assymetric results (e.g don't
expect ah expression Like 4 x 2 to give the same result as
2x4).
Such a bug occurs in the INT function.
When
programming one must allow for these restrictions, so don't
write something like:
FOR 1 = 1 TO 20 STEP 1.2: IF I = 4.8
THEN PRINT"I EXPECT 4.8" because chances are 'I' will not
compute to 4.8 but 4.800000001 for example.
I thought it was a little cheeky, but during the
Commodore Show in June,
Apple had their first exhibition,
not in the heart of London,
but of all places at Slough.
There is a tremendous amount of information available
in the User Group, more so than perhaps anywhere in the
world,
on Commodore equipment.
One fundamental problem is
the collation and dissemination of this vast resource. Most
of the work seems to be by the same overloaded few,
and as
a result, the upgrade to the 'Compendium' with new material
which was to form the 'Gazetteer', now seems unlikely to
appear.
R. D . G.
— oOo—
171
4022 PRINTER MODIFICATIONS
By Colin Spencer
I have a late model 4022 printer with the red error
LED
in
the form-feed
switch
and these mods
refer
specifically to this type of 4022 printer. I do not know if
they will work on the earlier model without the LED.
I am
very pleased with the
printer but
I
wanted other
facilities,
particularly the ability
to have the printer
work as a friction-feed type.
I saw that Epson do a
friction-feed conversion for
their MX-70T and MX-80T
printers and as the 4022
is based on these printers,
I
thought that this would work on the 4022. Chromasonics were
kind enough
to get this conversion on a sale or return
basis for me.
I fitted this to my 4022 without too many
problems.
The biggest problem was replacing the springs on
the ruler with the much stronger ones supplied in the kit.
This is a very fiddley
job and is best done with two
people.
The ruler
is the front mounting for the friction
feed.
The only disadvantage with this modification is that
the only tractor-fed paper that now fits the machine
is
that with the tear-off tractor holes.
This may create some
problems for people wishing to print labels.
With this
set-up, friction and tractor are available at all times.
The second modification
is to update the printer to
the 4022P.
The
1P 1 suffix means that
the printer
is
bi-directional and this is accomplished by a new ROM. It is
an 8K ROM,
and so is not readily copied.
In the Commodore
spares manual, the ROM is listed as a part no. 901631-02 or
325301-01.
This replaces the existing ROM on the board and
is just a simple matter of just pushing it into the socket.
In the spares manual
it lists this ROM as being suitable
only with printers fitted with an 8MHz crystal.
My printer
was so fitted and again Chromasonics loaned me a ROM out of
a defective printer which I plugged in and sure enough,
it
worked.
They therefore ordered one for me from Commodore,
but at the time of writing,
I am still waiting for it to
turn up from Slough.
I hope these modifications are of interest and if you
try them, good luck !
If you want to know more try me on
01-349-2345, or Chromasonics on 01-263-9493.
— oOo-
172
ROUND THE REGIONS
Watford
The Watford regional group have been very active
recently
in
putting PRESTEL
on
the PET and
VIC.
Telesoftware downloaders have been written and for the
price of £ 1 5 0 for the hardware to interface your computer
to the telephone line, your are in business,
delivery
permitting.
Full details may by obtained from Tony Sweet
at Prestel HQ on 01-983 5811.
Recent talks have been on the new hardware
from
Commodore by John Collins and one on business accounting,
including Visicalc, by business consultant Barry Miles.
Slough
It's early days yet but the newest ICPUG group at
the
East end
of Berkshire seems to be getting itself well
established.
It does by the way encompass both PET and VIC
users,
at present PET owners outnumber the VIC owners by 3
to 1, but new VIC members are appearing rapidly.
The survey for the initial meeting showed that almost
everyone was interested in
'games' and either education,
business applications or control systems (in that order of
popularity) as their other interest(s).
At the first proper meeting there was much to see and
do.
Jack Cohen the national membership secretary was there
and as well as signing up new members showed us Superscript
and some Comal.
Brian Jones, the group's instigator,
gave a talk on
'The value
of
truth'
including the use of Boolean
expressions in arithmetic operations,
and Geoff Luxford, a
co-organiser brought along his firm's copy of Silicon
Office to show people.
At the following meeting John
Collins from Commodore gave a review of the new hardware
and Derek Gerrish the group's software librarian,
showed
his Key Chip.
173
At the June meeting,
the group was shown the video of
the Commodore new
releases prepared for the PET show and
discussed various members' impressions of the show and the
new hardware.
In addition, a variety of 8032 games were on
display,
and 40-column PET owners as well as VIC owners
were heard to mutter about the limitations of their screen
size.
The July meeting is sheduled to have two of Slough
College's
students along,
both
currently
working for
Commodore,
to demonstrate VIC programs (Simplicalc and VIC
Writer) for which they have been preparing manuals. This is
in addition to be a PETSPEED demo.
The group has still yet to find a regular meeting
place or night,
but the first meeting after the summer is
likely to be Monday 20th September,
contact Brian Jones,
either
at Slough College,
Slough 34585 x8 1, or at home
Reading 661494 for more details.
— oOo—
WORDS OF WARNING - Disk ID Changing
Those of
you considering using Brian Grainger's
program to change the Disk ID, or for that matter Jim
Butterfield's earlier version, should heed the warning that
goes with so doing.
D0S2 versions automatically initialise
a disk by checking and detecting a change in ID. It follows
that two disks with the same ID will cause confusion if
they are not identical
in all other respects,
datawise.
This is because the drive's Block Allocate Map (BAM) will
not be correctly updated with the result that data could be
written to occupied blocks. The 'correct' ID is not the one
that appears on the header (which is the one readily
changed by software), but the one written to every sector
on the disk when it is NEWed.
Haphazard changing of the ID is therefore not to be
recommended and a program to restore the true ID appeared
in Commodore Club News, August '81, by JB himself.
R .D .G.
— oOo—
174
PRINTER PRESENCE CHECK
By Ray Davidson
At the programmers' Seminar of the Commodore Show a
question was asked about checking from BASIC to see if the
printer
is ready for use.
In the following program line
9000 checks for the presence of the printer and line 9020
outputs the message if it is not ready.
Line 9010 is a
cop-out
in case a fuse is blown or you've lost the
connecting lead or something similar.
Line 9030 programs a
'pound' sign for a Commodore printer.
9100 checks that the
printer
is on before making sure that the buffer is empty
and then closing the file at 9120.
9000 CL0SE4:P R = 0 :P0KE59456 , P E E K (59456):P= P E E K (59456)AND1
AND1
9010 G E T G $ : I F G$ O" "TH EN 20 0
9020 IF PT HE N P R I N T " < r t X r v s > CONNECT THE PRINTER AND
SWITCH IT ON <2up>":G0T09000
9030 A$=CHR$(13)+"?MA3"+CHR$(0):0PEN5,4,5:PRINT#5,A$:A$=,m
:CL0SE5
9040 0PEN4,4:PRINT#4:PR=1
9060 G0T0200
9100 IF(PEEK(59456)A ND1)THEN91 20
9110 IFPR=1THENPRINT#4
9120 P R =0:CL 0S E4:G0T0200
This
routine will only work with Computhink disks or
when there is only one device on the IEEE-488 bus.
A
Commodore disk drive can produce unpredictable results if
it is connected,
even though it is switched off.
If the
check for the printer
is made just after the printer
is
switched off, it will seem OK as it takes a few seconds for
the smoothing capacitors
in the printer
to discharge,
during which time it will respond to IEEE signals.
— oOo—
175
ROBOTS ! HATE THEM’
Marvin, the manic-depressive robot, from the B B C ’s ‘Hitch-hiker’s guide to the galaxy
176
4022 SECONDARY ADDRESSING
By H. Cohen.
In the article by Robin Harvey on the Commodore 4022
printer
in the March issue (p85), he noted he was having
difficulty with the number of
lines per page facility.
I
agree with him ! The manual is not very helpful, but I have
tested secondary address 3 on a 4022P printer and found how
it works (with the help, I must admit, from David Pocock of
CBM, Slough).
Secondary Address 3 - Set number of lines per p a g e :
This is shown in program 1, where line 10 opens secondary
address 3, directs 10 lines per page, and closes file #3.
The number of lines must be given as a CHR$ figure for
this printer only (the instruction
is different for 2022
and 2023 printers).
Line 12 opens the printer for paging and sends the
paging flag CHR$(147),
which must be followed by a
semicolon to avoid a new line. Line 40 sends the paging off
flag CHR$(19), again with
a semi-colon.
With paging in
effect,
the paging off flag performs a 1top-of-form1
setting.
The setting of SA #3 must occur before the page
flag is set according to David Pocock (I'm not sure why!).
Set Paging
This is shown in program 2, which is similar to program 1
but with line 10 removed,
variable J reset to 80 in line
15, and the print statement in line 20.
_Note that the printer remembers SA #3 until a new line
setting or the paging—off flag is sent,
or the printer is
switched off.
10 0PEN3,4,3:PRINT#3,CHR$(10):CL0SE3
12 0PEN1,4:PRINT#1,CHR$(147);
15 J=40
20 F0RI=1T0J:PRINT#1,"NUMBER OF LINES PER PAGE TEST FOR 10
LINES - LINE NO.",I
30 NEXTI
177
40 PRINT#1,CHR$(19);
50 CL0SE1:END
Program 2
12 0PEN1,4:PRINT#1,CHR$(147);
15 J=80
20 F0RI=1TOJ:PRINT#1,"NUMBER OF LINES PER PAGE TEST FOR 60
LINES - LINE NO.",I
30 NEXTI
40 PRINT#1,CHR$(19);
50 CL0SE1:END
— oOo—
ICPUG
Would officials of
regional groups referring to our
User Group as a whole,
please use the term ICPUG National,
since the term
ICPUG Central could be confused with
a
regional group in the Midlands, or thereabouts.
— oOo—
WANTED
Cassette unit for VIC-20 - will pay £ 30 (+ £ 5 p&p if
necessary)
OR floppy disk drive - will pay £ 150 + p&p.
Contact William McKnight,
65, Castle Road,
Skelmorlie,
Ayrshire, Strathclyde. Tel: (0475) 520164.
— oOo—
SPECIAL OFFER
Arrangements have been made for members to obtain a
new publication from Holland giving a complete annotated
disassembly
for
both old
and
upgrade ROM sets. The
publication comprises 70
A4 pages in loose-leaf form.
Should you wish
to order one,
send an international money
order or cheque for
US $20,
payable to 1Copytronics',
enclosing your name and address to Jack Cohen (see inside
cover for address).
— oOo—
178
COMAL CORNER
By Brian Grainger
The purpose of this article is to pass on the latest
knowledge
I have on the versions of COMAL distributed by
ICPUG (Version 0.11).
I was very fortunate in manning a
stand with Instrutek at the Commodore show. Instrutek wrote
the original COMAL interpreter for BASIC4 PETs so I took
the opportunity of clearing up some of my queries.
The
results are presented here.
1) In January,
I
said that
programs SAVEd from BASIC4
could not be LOADed into BASIC2 COMAL.
I have since found
that this was incorrect and that why I could not do it was
due to a hardware problem.
COMAL does not SAVE the start
and end program addresses like BASIC.
It stores offset
addresses and so SAVEd COMAL programs will LOAD into any
version.
An excellent idea.
Pity Instrutek have spoilt it
by making the latest versions of COMAL different in the
command usage, but more of that later.
2)
Please note that a
implemented in COMAL.
command such
as
RUN 120
is
NOT
3) In January,
I mentioned things that were automatically
added by COMAL and did not need to be typed.
I have since
found that one need only type CHR and the '$' will be added
automatically to make the CHR$ function.
4) I
was
not
totally
aware until
recently of the
flexibility of the string functions of COMAL. Values can be
assigned to substrings
in COMAL so making it very much
easier than BASIC when we have a database situation where
we have one string holding different items of information.
An example should clarify.
Suppose we have set up a
database where each record is held in a string with 3
fields of
information.
Girlfriends name,
Date last taken
out and telephone number, e.g.
A$="MARY— 5/6— 458923"
179
If you subsequently took Mary out on the 10th July you
would need to update your record.
In BASIC this would be
done by:A$=LEFT$(A$,6)+"10/7-"+RIGHT$(A$,6)
In COMAL it can be done simply by:A $ ( 7 :5)="10/7-"
5) In January
I gave the COMAL equivalent of PRINT# as
WRITE FILE. This is not quite true. When WRITE FILE is used
numbers are stored in floating point representation,
not
the ASCII representation.
This is very useful for database
applications because no matter what the number is,
it will
always use the same number
of bytes for storage (5). The
drawback
is that one cannot address other non storage
devices with WRITE FILE.
The solution is the command
PRINT FILE, which is identical in all respects to PRINT# of
BASIC.
There is also a command INPUT FILE to read the data
that was written using PRINT FILE.
With these two commands
the full input/output capabilities of CBM BASIC exist
in
COMAL.
6) There are
a number of keyword abbreviations
available:-
';'
is equivalent to PRINT
is equivalent to OF in string DIMstatements
'#'
is equivalent to FILE
N.B. To abbreviate PRINT FILE one can use PRINT # (note the
space) or
7) It is possible to LIST (or ENTER) a file as a sequential
rather than a program file.
To list the file FRED as a
sequential file it is necessary to type LIST"FRED,S".
As
newer versions of COMAL expect the LISTed file to be
sequential
this
is
rather
important
in transferring
programs from one version to another.
8)
Now for the best news of all.
Instrutek told me that
PRINT USING,
while not implemented in the full COMAL,
WAS
implemented in the split version.
I've tried it and they
are right.
180
In the above I have made reference to newer versions of
COMAL.
The current status is as follows.
The versions for
BASIC2, BASIC4 and 8032 machines distributed by ICPUG have
until
now been at version 0.11.
The version for 8096
distributed by Commodore Educational workshops and myself
(on 8050 disks)
is at Version 1.01. This version allows
over 30K of storage space for programs and data. The latest
version for BASIC4 machines
is version 0.12 but
is not
available as a 'split' version COMAL.
The next formal copy
for 8096 will be version 1.02 and I currently have version
1 .02A (on 4040 disks!)
which
is almost,
but not quite,
version 1.02.
The board version is currently equivalent to
1.02 and is available from INSTRUTEK,
Christiansholmsgrad,
DK-8700 Horsens,
Denmark.
This board fits any PET and
leaves virtually
all the RAM space for COMAL programs and
data. The cost is about 200 pounds.
The 8096 COMAL versions are in general as the BASIC4
versions with additional commands. Unfortunately, the newer
versions, e.g. 0.12, have some different command structures
from the originals,
e.g. 0.11, and programs are therefore
not totally compatible.
I hope in the next Newsletter to
identify these differences.
I might add that the new
versions also have new useful commands while leaving more
space available for programs
so there are some positive
benefits.
Let us hope that future enhancements will be
upward compatible.
— oOo—
THROWING SOME LIG HT ?
During the Commodore Show on the Friday afternoon, the
top brass became conspicuous by their absence. Now I happen
to know what was going on.
Was it game time on the latest
VIC,
or perhaps a demonstration of 'Complicalc' ?
No,
someone (who shall be nameless)
took along a Sinclair ZX
Spectrum - nothing like weighing up the opposition !
— oOo—
181
VIC MATTERS
By Mike Todd
Firstly, I have to admit an error on p23 of the January
Newsletter. The colour memory locations quoted are in fact
back to front - with video RAM starting at $1000, colour
starts at $9400 and if it is at $1E00, colour starts at
$9600. Thanks to Pete Rowan of Whitehaven in Cumbria for
pointing it out and my apologies for the error.
Arising out of this, it is often important to determine
where the video and colour RAM actually starts. When the VIC
is initialised, it makes a note of the address of the video
RAM in $0288 (648 in decimal) and the actual start address
can be determined by
PEEK(648)*256. The start of colour RAM
can be determined by ((PEEK(648) AND 3) OR 148) * 256.
This last calculation is based on the way the VIC itself
converts a video RAM address into a colour RAM address. If
you find that you would prefer to calculate the video RAM
address and then convert it straight into an equivalent
colour address then use DEFFNC(X)=(XAND1023)+37888 at the
start of the program and use something like V=video RAM
location, POKE V,character and POKE FNC(V),colour. Don't
forget that the "X" used in the function definition is a
"local" variable and does not change any current value of "X"
already calculated in the program.
BUYER BEWARE
There are currently two major books on sale covering the
inside workings of the VIC. There is VIC REVEALED by Nick
Hampshire, and Commodore's own PROGRAMMERS' REFERENCE GUIDE.
The VIC REVEALED, as many who've bought it will know, is
riddled with errors of fact, typing errors and just plain
awful presentation. I cannot recommed the book to anyone and
to those who have succumbed to the advertising I can only
offer my sympathies.
Fortunately,
the book is to be
republished in the next couple of months hopefully with the
errors corrected. If the new edition is accurate and better
182
presented then it will be a very useful book indeed, covering
aspects of the VIC which are not publicised elsewhere - not
even in my columns !
Of course this is no consolation to those who have
already bought the book. So in the next couple of months I
hope to produce an ICPUG errata for the first edition. This
will be available to ICPUG members free of charge - it will
also be made available to non-members at a price that has not
yet been determined. If you would like a copy, please send a
stamped (15.5p), addressed envelope (the same size as the
Newsletter envelope) to me and I will send the errata as soon
as it is finished. If you have any comments on the VIC
REVEALED please feel free to enclose them - you may have
found errors that I have missed. I would guess that the
errata would be sent out some time at the end of July.
The other publication is the PROGRAMMERS’REFERENCE
GUIDE published by Commodore. This too has errors (but not as
many as VIC REVEALED) but is very much better presented and
contains a great deal more material. This book is actually
from Commodore in the USA and when Commodore UK saw it, they
didn’
t like it. Demand for the book was quite strong and so
Commodore did eventually release it - not for the original
price of £1A.95 but for £9.95, reflecting their concern over
the accuracy of the contents.
Unfortunately, I hear that some retailers are selling
the book at its original price of £14.95. I contacted
Commodore who confirmed the price of £9.95 was correct and
that the book has always been sent out for sale at this
price. Therefore it follows that any dealer selling the book
at the higher price is taking advantage of the situation and
I would recommend that anyone who has bought the book at the
higher price should take the book and the receipt back to the
dealer and ask for the difference to be refunded. I must
stress that there is no legal obligation to do so.
I would like to see some pressure brought to bear on
this sort of unscrupulous dealing, especially as retail price
maintenance, although generally illegal, is allowable on
183
books and so Commodore could Insist on a specific price to be
charged for this book whereas they commit an offence if they
try to do it on anything else.
DOWNGRADING YOUR VIC
I have had several letters from people trying to use
programs that they've bought but which w o n ’
t run on their
VIC. Generally the problem is that some software is not
written to take into account the fact that the screen memory
may move, that the program could end up at the wrong address
or that there may be cartridges such as the SUPER-EXPANDER
installed.
The problems can be overcome by removing extra memory or
taking out the SUPER-EXPANDER cartridge. They can also be
overcome by downgrading the VIC using a couple of POKEs and
SYS commands. These should always be done before loading the
program since they effectively reset the VIC from scratch.
Firstly,
disconnecting the SUPER-EXPANDER is often
important, especially if you want to disable the STOP key.
There are two stages involved. Firstly, the kernal side of
the VIC needs to be disconnected and
this is done by
SYS64850. This could be done at the start of a program since
it doesn't affect the BASIC program in any way, however it
does disable the programmability of the function keys. The
rest of the SUPER-EXPANDER can be removed by SYS58232. This
SYS does upset the BASIC pointers and
will have the same
effect as NEW. This latter SYS is not required if any of the
following downgrade options are used.
The following POKE/SYS sequence is required to downgrade
the VIC:
POKE641,0:
SYS64824
P0KE642.X:
POKE643.0:
POKE644.Y:
X,Y and Z are determined from the following table:
POKE648,Z:
184
DOWNGRADE TO
MEMORY SETUP
unexpanded VIC
+3K only
+0K*
+8K
+16K
+24K
642
X
644
Y
648
Z
16
4
18
18
18
18
30
30
32
64
96
128
30
30
16
16
16
16
* NOTE: the +OK option is a condition that the VIC would
never set up itself. It is effectively the same memory map as
for a +8K machine, but with NO RAM expansion - all it does is
move the screen to $1000 and start of BASIC to $1200.
Inevitably, these POKEs require a lot of typing there’
s very little that can be done about that, although it
should (at least in theory) be possible to prepare the POKEs
on cassettes or disk and load them as required. Apart from
allowing you to run programs that would otherwise crash, they
also allow simulation of other machines just to confirm that
programs-developed on one set up will work on another. You
can even do a "pseudo upgrade" by using the larger machine
POKEs just to see what 24K bytes free looks like.
FINALLY (ALMOST)
A couple of other small points. Firstly, I still do not
have details of the VIC software library that I'd hoped to
publish this time round. Hopefully I'll have the details next
time.
You will know that line numbers greater than 63999
produce a SYNTAX ERROR - so try entering a line number 350720
- the results are interesting and covered elsewhere in this
Newsletter.
I had a recent opportunity to try out the VIC disk drive
and was pleased with the compatability with my existing PET
set up. Unfortunately, I was very surprised how slow the
drive was compared with my 3040 disk drive. It would appear
185
that the main reason is that everything in the VIC disk drive
is handled by a single microprocessor so that the "look­
ahead" features of the PET drives cannot be used. The result
is that the drives operate about half the speed.
GARBAGE COLLECTION
I mentioned last time that I would explain the problem
referred to as "garbage collection" which can cause the VIC
to stop everything for anything up to a couple of hours in
the extreme cases.
String variables are stored in a table, just like
numeric variables, except that the actual string itself is
not stored. Instead, the VIC stores the number of characters
in the string and then a pointer to where in memory the
string is actually stored. Storing strings in this way means
that string manipulation is fairly easy to perform and
strings do not have to have their length predetermined as on
some small computers.
The combination of the length and pointer to the string
is known as the string descriptor since it is describing the
string. This of course means that the strings themselves need
to be stored somewhere.
When you set a string variable in a program using
something like A$="STRING", the characters "STRING" are
already stored as part of the BASIC text and the descriptor
actually points to those characters in the text. This means
that no bytes are wasted storing a string twice. Even if you
then use B$=A$, the descriptor for B$ points into the BASIC
text.
However, as soon as you start to manipulate strings, the
descriptor can no longer point into BASIC text. For instance,
after A$="TEST", if you use B$=A$+A$, the resulting string
"TESTTEST" must be stored somewhere else.
works
The BASIC program text starts from a given location and
upwards through memory. The variable tables start
186
immediately following. It is not possible to store these
strings immediately after the variable tables since the end
of
the tables varies during program execution as new
variables are used. If the strings were stored here, they
would need to be constantly shifted around as new variables
are created and then the string descriptors would also have
to be updated as their strings are moved.
Instead, these strings a built from the top of memory
downwards and every time a new string needs to be stored it
is added to the bottom of the existing strings. Eventually,
these strings will move down so far that they are in danger
of overwriting the variable tables which are moving upwards.
As soon as the VIC detects that this will happen, it has two
options. It can either give an OUT OF MEMORY error or it can
see if any space can be recovered from the strings.
I
have said that new strings are added to the bottom of
existing strings - well, what happens in the situation of a
simple program like:
10 A*="ABCDE"
20 FORI=1T01000: B$=A$+A$: NEXT
In this case, only one string is actually evaluated (B$)
but in practice, the VIC adds the resulting string to the
bottom of the existing strings so that after only a couple of
times round the FOR..NEXT loop, there will be several copies
of B$ stored in memory and eventually this will result in the
bottom of the strings "hitting" the top of variables.
Clearly,
most of what is
in the string space is
"garbage" - that is unwanted strings that need to be got rid
of. That is taken care of by the "garbage collection"
routine.
This routine has a pointer which is initially set to the
very top of
the strings. It
searches ALL the string
descriptors for a descriptor nearest to its pointer. This
must be the first used string in the string space and this
string is then transferred up to the garbage pointer which is
187
then set to the bottom of
descriptor updated to point
position.
this string and the string
to the string in its new
The procedure is then repeated all the way down the
string space, used strings being shifted upwards to overwrite
unused garbage. In our example, a garbage collection would
ignore nearly all the strings in the string space except the
last, which would be shifted up to the top. We now have a lot
of space left for new strings.
If there are a lot of strings in use, the situation
could arise that
a
garbage collection would recover
insufficient memory to store another string, in which case a
genuine OUT OF MEMORY will occur.
Looking at the program on p139 of the May Newsletter, we
are assigining the string "ABCD" to random locations in an
array. As the array is filled, the string space will contain
many copies of "ABCD", some of which are required, some are
not. When the space is full, garbage collection has to scan
string space of up to 500 strings and for each it must scan
the 500 descriptors in the array. 500*500=250000, which is a
lot of work! Hence the pauses in the program.
MEMORY MAPS
Detailed memory maps
for
the VIC are few and far
between. The only one that
I have seen was produced (in a
hurry I would guess) by
Jim
Butterfield.In thenext few
issues, I want to try to give details of RAM/ROM usage along
the lines of the details I produced in the IPUG COMPENDIUM a
couple of years back. I have started with the RAM usage maps
for the VIC and these include labels which, as far as
possible, are the ones used by Commodore and other software
authors. Where no definitive label exists, I've invented my
own. There are also the BASIC 2 references to assist in the
conversion of PET programs to VIC (or even vice-versa).
188
0
0
bO
g
•H
G
-P
W
CO
CO
H
M
<
a
J
g
o
Cm
a
)
•H g
P o
3 •H
O W
G CO
0
G
<
P
L
. (X
«
O
PC
w
>
cd
P
1
CvO
tCM
ro
+
o
p
O
<
Pk
g
•H
P
G
•H
O
P<
cvo
tCM b 0
CO G
1 •H
— P
cd
>H o
1—1
C
m
«aj
G
•H
25
o
H
H
a.
H
«
o
00
w
Q
CO
bO
G
•rH
G
P
W
cx
3
bO
G
•H
P
P
<D
00
O
P
>
o
<U
b -i
H
M
O
<
K
•a !
SB
O
2
O
m
•o
G
cd
Eh
25
M
O
<
[x<
PC
CO
13
0
0
CO
■—
G
•rH
O
CL.
PC
CO
O
G
o
•H
P
O
G
3
Cm
O
CO
1—1
cd
o
«
o
CD
x!
H
G
O
•P
o
a)
>
CO
CTi
O
ffi
O
TD
G T3
cd <D
G >H
i—1
Cl)
bO rH
bQ < d G
cd
CD
•H o
P
G G
G •H G G
•H
cd CD
G
O CD
0
W -O
O
P
bO
CD G
CO
P
o
CD cd
*=t: G £
X!
•rH £
Eh
P
p
■o S !
g
G
CD H
CD CO
0
3
G
>
G
G
0
O O G P
o
O
CD <M
P
cd
1
1 O
cd
«a! t — G LO
CTi cd i n
<
i— CO X ! CM
Q Q
O
I
o
O O
G
P
P
CD
P
G
G G •H cd
O o
b0
a
P
p
•H 0
O o rH p
0
CD CD G
H
Q
>
>
CL
a
3
•o
-3
W
PQ
<U
0
G
•H
P
3
O
G
cc
o
w
Eh
S3
M
Q
25
<U
\
PC
O
bO
G
•H
G
3
T3
G
CD
bO
a)
p
G
•rH
o
H
CO
<
CQ
w
b0
G G
G
•H o •H
G •rH
P
p
W o t—
II
G
bO 3
G Cm
•H
>H
G CQ [3L,
G <U M
cd EH «
H
O
CO bO >
G
G •H G
0
t. O
X3 3
£ X3
O
T 3 X 3 II
0
0 —
CO CO
3
3 «
«aj
G 0 O
0
O hJ
P
cd
O a
?,l>a
cd w Cm
G
•H
cd G P
x: o
G
o
0
>
0
P
cd
•H g
>>
T5 0
G
cd
0 p
a •H G
g
O
a
0 •rH CX
rH a
p
G
0
0
H
Q Eh
PC
O
W
Eh
23
H
«
m
o
Q
S2
0
•H
O
P
bO
cd
rH
Ui
«
>
CQ
<
Eh
>»
cd G
G •H
G
cd
G
G
3
•H O
Cm
CO
G P
O
O
•H G
CO
G Cm
0 •rH
g
•H
0
p
<M cd
O 0
G
G O
0
O
0
a O
3
G o
p
X)
G
cd
X3
'O
0
G
•H
i—1
T3
0
O
s
tD
«
O
-a
>,
cd
G
G
cd
«3j
Eh
•a:
Q
G
bO 0
G
bO
•>
•H 0
Eh
G P
P
G CO
W •rH H
J
Cm Cm
•H • H bO
G
|X4 O
•H
[x , OO G
II 3
II
T3
■P
G
CO
•H X3
O
G
a
O
O
•H
G
0
s
3
G
Cm Cm
■H •H
O
o
II
O
O
II
G
•rH
1
oo
G
0
P
O
cd
G
cd
G
o
Cm
O
G
0
rO
a
3
S3
bO 0
cd
i I >»
Cm P
(X
G
O
•rH
-P
cd
0
G
O
>,
cd
G
G
<
O
«
o
K
w
>
O
Eh
S
o
o
o
S
H
Q
bO
G X3
•H 0
P
>
cd G
o
0
rH CO
Cm
0
G
Cm
•H 0
i—1
O
O
G
II cd
-G
G
0
O
bO P
0
P
£
G
O
• H -G
X)
0
0
P
P
0
cd cd
o
o
3
rH •H •H
cd T 3 T 3
>
G
G
N
•H •H
0
rH O
O
o
P
P
cd
• H bO bO
cd cd
G
cd rH rH
[x , PE-I
>
04
>H
Eh
-J
<C
>
W
O
0
bO
cd
O
G
cd
O
-4
CO
w
EH K
<
E25 O
M Q
o
O
: -l
c o
cd 0.
-p
O
P
0
0
O
G
0
N
a
{X4
bO
G
G
•H O
G
3 -P
T3 Q .
•H
0
G
O
O
G
CO
O O
3
>» W
rH
G
>»
cd
O
G
P
G
O
cd
0
i—1 ••
i—1 0
o ■—I
o o
cd
0 •H
bO G
cd cd
o
>
G
cd «
bO O
pL|
0
O
G
G •rH
O
Cm
>»
cd
O
G
-P
G
cd
•o s
G
0
w
0
bO
3
0
bO P
cd G
i—! •H
Cm
>
P
O
O i—1
0 i-H
i—1 cd
rH
W
o •H
O TD
Q
Cm
•H
Eh
G5
On
S!
M
<M
•H
O
O
1
bO
cd
i—l
Cm
0
G
•H
P
3
O
G
TD
cd
0
G
bO cd
cd p
r H cd
(X | Q
0
co
3
1
V
•
•
W
P
0
CO
3
H
CO
II
* X)
G
o
cd
CQ
3
w
Eh
p
0
co bO
G
/N •H
G
—' 3
T3
bO
cd T 3
i—I 0
CO
Cm
3
G
O
0
CO P
•H > »
G O
cd
G
bO
a
o •H
o
CO
T)
CX
O
o
2! -J
J
CO O
[X4 |X l <
CO
<
PQ 0-4 s
3
o
<U
Eh 0
CO H
Q
cnrom^
o o o CQ TL in O^ oO NO c Oo aO i cO ^ O^ WO Oo
Oil o
o o o o
Io o o o o o o o o o
CM -=3- VO
O
O
O
OOO
III
T—
0 CO i n c - t - c— OO cr> < d PQ O
W (x .
O
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
O
O
O
O
Q
O
O
O
O
0
0
[X4
O
O
O
u W
O
O
CO
0
G
•H
P
3
O
G
>
H
Q
E
»
2
3
M
G
O
O
O
cd
-p
w
G
0
p
a,
•H
G
O
CO
0
XJ
G
O
0
O
cd
CX
00
00
G
O
P
Q*
•H
G
O
O
CO
cd 0
p
T3
CO
bO
G
G
O •H
P
G
f t P
•rH CO
G
0
0
CO 0
0
G
x)
P
G
O T3
rH
>> O
G J3
P
O
G
0 P
&
0
1—1
0
cd
rH
•rH
cd
>
cd ■ P
CO
p
cd
X 1— 1
0
G
O
p
0
-p
G
0
P
0
G
•H
G
O
04
H
X
V.
Eh Eh
O-i a .
0-. H
S
O
W <3j
0-4 Eh J
K
W
X)
G
cd
O
CO Eh
J
pi
G §
cd
G
>> O
G Cm
O
0
a
(D O
cd
a
tt
» CO
w
G
G
0
O
O
a
CO
3
G
cd
Vi
X) Xi
G
cd
>>
G
O
a
0
a
•>
co
bO
G
•H
G
-P
W
X
G
G
O
O
0 Qh Cm
O
G
cd G
cu 0
0
P
w P
G
G
G •rH •rH
0
O
O
Q. O 4
X
X3
0
ro
3
G
0
P
W
•H
bO
0
G
m in
o o
O
I I
G
0
P
G
•H
O
CL
W
PC
tX4
G
O
O
P
O
P
co
G
0
G
•H
O
O4
W
P
G
•H
O
CL
£
1
1
CO co
P
p
O
P
G G
•H •H
bO
O O
O 4 CL G
0
•H W
1
8 G
P
co
O
0
G H
0
O O •H
cd cd
<
CL
bO PQ
w w
G
•rH G
O
0
a
G
Cm
3
25 p
w
H H
OS PC
0
Eh Eh p
1—1
c o CO G X>
0
cd
Cm Cm
O 1— 1
0 •H
O O
G
cd
P
>
G P
cd
cd 00
G P
O >>
0
00 a
G
O
O O 0
a
p
P
P
0
a
G G
G
0
0
0 Cm
-P P
P
0
G G G
•rH •rH •H
O O
O G
Ok 0-4 0 k W
bO
G
•rH
-P
cd
rH
3
O
1—1
cd
0
Xi
0
G
•H
P
3
O
G
Eh
-4
pp
22
C3
X
w
Q
S
M
Xi
a,
Xi
CM
«
X
w
s
Q
CO Q
w
3
Q
H
«
<
O
CM C - VO
CM CM CM CM
OOOO
I II I
f c r - m in
T— T— T— T— T— C M C M C M
OO T—
T— CM
O
O
0
0
G
Cm
W
bO
G
•H
G
P
00
O
P
0
N
•H
CO
Eh
CO X
0-4 W
Q
0
3
Eh H
u
w
cd
G
bO
O
G
a
0
P
>> 0
XI P
>>
p
O
w
G
0
•H G
«M O
Oh
O
bO
G
•rH
1—1 rH
G
cd cd
3
G P
G
T3
G
0
0
G
G •rH
0
0
O
G
bO bO
0
T3
0
0
bO T 3
P
P
G
cd
> > > > •H
O
O
P
CO
cd
O
O
O rH
1— 1 O
>
£ 1 Eh |X4
LD W
a
ro
G
bO
O
G
a
PC
Cm
►J
<m
O
bO O
O
G
0 •rH G
P
P
G 0
P
•rH > > P
a x i CO Cm
•H
cd
1—1 P
1—1
CO cd Ok
G 0
G O
0
a
0 Eh
G W
S
O 0
0 PC
1—1 p
bO
1—1
cd
G
O
cd 0
p
G
co 0
bO
>»
0
G
cd P
G
>>
O O
O4
0
a
G
0
Eh O
t- *OO O
O
II
II
t- r - r o ^ - v o C
t —
G
O
w
>>
cd
G
G
cd
o o o o o o o o o o o o
CM CM
O
O
Q*
XJ
X
<
r—
03
cd
G
O
•H
CO
G
0
>
G
O
O
0
G
•rH 0
P
3 •H
w
O Cm
p
G
1
04
P
a Eh cd
W
O
o
G O
1—I
Cm
04 3
H
W hJ
«
CO
0
>> Q
G O
Eh
cu
O 4 T3 W
0
3
O
W P
cd i>»
1 3 O
1—I
0
cd T 3
O
0
>
•H 0 - P
cd
>
s 3
0
0"> rH
cd
cr> >
O
\
CO 0
M vo
1 *-s
P
0
LO
G
CO
LO
0
G
G in
G
0 vo
3
bO 1
O
0 0
p
<M G
O •H 0
3
G
G 1—1
0
0
cd
O
O
>
a
a
G
3
3
G
G
0
bO
0
0
0
r—1 G P
•H •H G
Cx» hJ H
O
P
0
CO
CT> .—%
CM
PQ
•
CO
Eh P
W
0
CO
O
O
■=r
X)
G
0
X!
>
W
K
Cm
•H
>»
0
P
O
G
Cm
CM CM
r - r -
o
M
>
c
d
a) 0
■
—iG
o c
d
cd
CD
♦H b0
c
d cd
> G
c
do
PQ W
o w
CO w
o a.
a
u
g
CT\
CO m <
CM CM CM CM
O
O O O
VO c - c n CM CM ■=r O CO
*— T— r — CM CM CM CM C\J
O O
O O O 0
O O
Cm
O
p
G
0
P
«m
cd
cx
ft*
Cm
O
Cm
O
P
P
4-3
G
G
G
cd cd cd
p
p
-p
CO w
00
O
0
p
O
p
G
G
0
0
P
P
G G
•H •H
O
O
PL, 0 k
G
0
-P
G
•H
O
PL,
PQ
<
Eh
Eh
X
Eh
PQ
<
Eh
>H
PC
<
PQ
<
Eh
PC
<
>
C * PQ Q
CM CM cm
o
I
o
I
o
o
-P
0
CO
(X
'O
PL.
O
Eh
W
Eh PC
CO |X |
Q
W
K
O tsi
0-4 M
co
&3 z :
PC
(x< s
r - m in
r o ro
o o
cm co
o o
I Iw oI cm
I ^=rI
CO <3 o
CM C\J cm
o
0
O
cd
CL
co
Xi
0
rH
O
cd 0
Eh - p rH
X
X)
pa w
cd
Eh
p
cq
O
<s
M M
PC K
< a <33 PC
PQ >
<U
Cm
O
0
p
o
cm r o r o ro
o o o o
O W O CM ■=r VO 30
CM CM CO CO r o r o r o
O O O
O
0 0 0
1
f f i Q [14 J L r o
CM CM CM CO r o
O O O
0
0
in
ro
c-~
CO
0
0
189
0
P
>»
ra
p
•H
XI
0
G
a
<D
P
G>
O,
)Z
M
W
:-T
ra
CD
i—I
X>
cd
•H
G
cd
>
G G
•H
<M
0
G G rH
0 0 X>
P P
cd
0 0 •H
a a G
cd cd cd
G G >
cd cd
ft f t p
0
Q QZ b0
Z O G
W cd
p
0 0
O
G
x:
p
P P
Eh
<*3
O
<D
xj
O
a
E-*
Z
P
ra
cd
rH
o
o
P
O
0)
>»
g
xi
G
0 0
P
G 0
<M •H rH
cd p X )
GJ cd
G O *H
0 G G
P
cd
O
>
cd 9
G W G
cd 0 5 •H
0
ra
G
o
<M
+
Z
p
G
0
a
>» 0
X) p
cd
p
ra
3
p
G
0
G
G
x:
o XJ G
G
z
o
M
Eh
Q->
M
«
O
CO
W
«
t-4
l*4
o
G
•H
G
0
P
O
X cu cd
G
0) o
Eh
cd
t t ) CO XJ
O
P
ra
G
•H
p
b0
G
•H
P
G
•H
O
ft
Eh
0
G «$ P
•H O C
O
-H
-P O
G P.
W 0
XJ G <
rH G E-»
O 3«aJ
X O Q
-3
W
ra
cro
o
cq
VO
m
o
<u
m
c_>
H
>
0
bO
<d
G
O
P
W
0
XI
o
p
0
1—1
XJ
cd
•H
G
cd
>
<M
o
(I)
S
cd
G
<D
-H
>>
G
cd
G
O
ft
>,
-P
*rH
-p
Eh
M
g
§ XJ0)
0)
r—I
^
X>
j
cd d)
CQ P
G
E-*
-H
D ID H
O i—t
t
-Q P
O
O
o
o
tH
•H 0 M
EH
^ (fl X
CQ
P
G
at
-P
CO
X) XJ
G G
cd cd
a B
a a
G P
cd
> O
-P
G G
•H
t ! T-|
g
O S
o <a
z
G «
O <U
-H >
G
0
-p
G
-H
O
M
<
ra
G XJ
O >»
O ,Q X>
G
G
a>
-P
G
rl
o
O XJ
P 0)
CQ
G 3
a>
-P x
G 0
rl-O
o c
CL,
M
ov
m
o
w
(>n m
oC_>
1
PQ Q
m
o
o
G
0
P
G
•H
G XI
cd >
W
2
O J H
ft > ;=> K
w o ,
O s z
ra E h
g
r H C*4
-H
cd
*
b O Q CQ
| G <JJ G
-H W O
0> G « -P
rl 3
cd
■O M t
G <1>
o
I
I
^ t- ^ o > < i: o 'W
o
Eh « E
h E
h
X CO Z Z
Eh <5 CL, CL4
K 2 [*4 PQ
<U &4 W «
> O Q O
cr»
^r
o
o
o
o
o
o
•h rap
G
O
*H
-P
cd
G
~
fl)
ft
o
O
o
X2
(D
bo
cd
^
bO G
G cd
•H bO
G
- P bO
ra G
-H
bO G
G 3
•H XJ
G
3 d)
XJ rH
XI
ra cd
^ h
O G
cd
>
ft
G
Q)
p
G
•H
O
o
o
£1
p
bO
—,
G
0)
o
o
a)
G
•H
-P
3
O
G
-H
3
ra
G
O
*H
-P
O
G
3
<in
cd
G
Q)
ft
O
P
0)
a
fi
-P
..
G
cd
bO
g
G
O
P
cd
•—I
3
a
3
O
O
cd
•H
O G
-P P
G X)
•H
<D - P
G
_ . . •H
3 (d O
-r~i >
ft 3
o o>
P
ft
bO
G
I—I •H
X> Q_» -P
0 ) G cd
ra
o
3 > rH
o
XJ
X fH
X o
X
x
XJ
CU rH
S
O
ra
CO
CO
m
in
o
o
1
J. CO ■
=
*
•
in m in
o o o
|JL| |X4 CVJ .
PQ
in in
in
oo oo oo
o
o
I
I I I I
I
I
(iiQ W W W o r o 4 ’ v o ^
ir> i n i n i n i n
o o o o o o o o o o
o
O
O
, ,
o
0
G
G
0
ra
G
0
<4-1
>
ra
G
cd
G
p
13
Eh
kJ
PQ
p
-H
H
H
O
CO
<
1
P
cd
O
■
—i
<M
N
P
cd
O
i—i
<M
1
M
M
O
CO
G
bO
G
•H
ra
•H
0 i—1
G cd
x:
G
O
O
0
bO
cd 0
X> X3
G
cd o
t* )P
XJ
G
XJ
©
G
G
G 0
0 Cm
0 ra
X) G
cd
ra G
cd P
G
O
•H
XJ
G p
XJ G
XJ ■H
cd O
ft
XJ
G • *»
0 P
•H
G>
Eh
-J
CQ
O
CO Eh
(*4 a vO « > [*4
CU P-, c c w o CU
s o ZD p-1 Q s
w CO o s XJ m
Eh Q C
o Eh
*
4
O O (*4 W
=x =t
o o o O
1
O
O
CO
<
£
,
C
Q
VO
CQ CQ Q o
■=r=T = t zT ^ =* =* ^ r i n
o O O O O o O o o
o
o
ra
G ft
co
c \j -=r v o
o
0
O
cd
ft
w
ra
•=r
o
G
O
-H
G
O
ra ra c*,
C^-
i—1
0 0
M
E
h
Z K
P
i Eh
«
o CL4
1*4 O
G
O
•H
P
O
0
rH
o
o
1—
1 XI o
XI
o
XJ I—1
«M 0 x>
o ra
3 <M
ra
o
ra
xj
oC_> o o o
( 1 1 1
r - ro in
p
E-<
w
o
CQ-H ft G
h EH
Eh E
Z «
w
M EH « < a, Z z co CO
XJ CL, Eh Z o cu cu s 2
Eh E
h CU PC w « E
h Q E
o
XI XI
«
3
jZ < Q 3J CO
O O « Q M > Pu > XI
w
cr> CQ Q t*
in
.
m
m m m m =r ■=r
o o o o O o
o
■
■ ■
i
o o <c o w o OJ ■
=r ■=rVO VO
m c n m m ^ ■=r ■=r
■=3* •=r
o o o o o o o o o o o
o
>»
r
a ft
G 0
0 rH a )
> x> >
G cd cd
o *h
O G
cd o
o > -P
•H
G <i-i Eh
0 ) O CO
a
m
0
x>
X
0
i—I
X5
cd
0
0
-H
X ! X5
G
- P -P
cd - P G
> Zt o
C G
O -p
G cd
I—I
G <*J G O *H
- p Zi
G G cd Eh 3
0 ) (1) > CL, XJ rH
o a
P -P
Q) 3
O
cd
0 0 Eh
cc G
s x : (DE-t O
cd w H P h -rl
jQ E - h -P
O
g
g z
-P
cd cd
• cd X cd
ft ft
• -P H rt
0 G
«
0)
bO -H
cd O
X X
o
G G
X) f t
O O
- P <M f t G G
cd cd
3 O cd W)
a a -p cd
g 0
•H bO G
•H
XJ 0 0 ) bO -P - P
P
G G f t cd a) O > > P
CQ O G O G CQ G x> cd
o
G 0
3
o
•H 0
O O - P o <m XJ rH
CD <m
■p ra -p
Cm W
O G
O
Q) 0 -P •H > » x J P
3 >»
G
G 0)
XI XJ
P P G
s.. cd ra G G cd
a> 1 ) l . 3 0 o t ,
-P
ra ra p - P O
p
o
■ 0 -0 G G f t ^
G
rH r l r l •h a ra •H •H a
O O O
o <d cd O o 0
PL, PL4 Eh
K P*
<
z Z EH
H M X
XJ XJ H
w Q Q
o
co
<4
E-« XJ
ZD 0
CU G
z O
M G
cd
G 0
•H ra
cd
P p
<M cd
0 XJ
I—1
O
ra p
•H
G
1 0
P
G
, . 9 -H
0 W O
X) K f t
a
3 > ,< M
G x> O
0 X>
O C 0)
■p -h n
•H 3
G
0 <Jj G
P
O
o cd <M
ce; ra
r>
0
■—1
XI
cd
ra p
XJ
0
G
G
0
<M
ra
G
cd
G
P
•*
Eh
O
[*4
z
M
C*4
>—
»
\
>>
cd
G
G
cd
G
O
Cm
Eh
£3
O
ra
x: Eh
p
XJ
0 W
p
G
G *H
cd P
ra
G 0
p
TD
cd
•
O
X> P
0
0
0
G
0
ft
ft
3
G
*H
P
G
•H
O
ft
0
X>
Eh
CO
M
>»
X>
XJ
0
ra
zi
0
O G
<M P •H
-H
rH
i — O «M
II o O
t>- rH
CQ x> P
G
1 <M cd
o p
Z
M
[* i
EH —'
ZD
O G
C*i O
•H
\
ra
z
M G
C*4 0
v_^ >
G
M o
M o
O
CO p
<
cd
1 o
P ■—i
cd <M
o 1
0
«H
G
G
p -p P
O
3 -H 3 ■P -H \
O G O cd o p
G *H G rH 0 Cd
3 X) o
rH
G G G a
0 0 0) 3 0 <4-4
U-i £ 1 <»H
o O M
G
c id <H H
cd > i cd
0 o
G cd
p xi co
G +3 G \
P
<
G
-H G
cd X O 0 ) >>
O
o f t -P X>
O «4H O
<«-«
rH o rH bO cd XJ
XI
x> G
0
p
■rl ra -P
>» G >> p p
cd
X ) cd XI Cd r l 3
O bO i—I
-P
x» ra x J i—1 * h cd
0
0 Cm XJ >
ra o ra
3 - p 3 >><M
G O P
G G G cd
G
0 0 0 G G
p p p
G
G G G f t X> O
ra
ra
Z
ra
M
E*4
o
0 p
G
XJ G
XJ 0
cd p
G
p •H Eh
G O w
cd f t o
p
ce
ra
Eh
PL4
z
M ---GO kJ
Eh O G
O
PQ (*4 G
cd
0 >» 0
G X> ra
G
O
•r-i
r
a
G
0
>
G
O
P
G
•H
O
Q.
bO
G
•H
P
cd
0
rH
<4-4
1
_ .H
ra £ ra
U) G
0
tH
G ra
P G
x> cd
G
XJ P
cd
0 ^
G O
O
p rH
G X>
•H
O >»
f t X)
O ^ i ■HG
O 0
rl rl rl
O O O
0 3
Pl< P * CU £-• Z
co
Q
re
o
H
EC
P XJ
O 3 G
CO O 3
<
G O
0
G
-h
rH
0
P
O H
0 O
•H CO
rH CJJ
o
O bO
G
O
bO G
Cd 3
XI XJ
P
X
0 -H
p
P
G
cd
p
rH x j ra
cd 0
a ra o
•H 3 p
0
0
XJ
bO
Cd
X rH
W Cl-<
ft
G
0
P
G
-H
O
P-4
G
0
P
G
-H
O
P-4
cd p
bO G
0
G
O
ft
X
G
O
m
0 0
G
Cm
® ft O
P
cQ
G ^
G
■H G bO
O O *H
^ 2= CO
E
h « C
v
JE
h CL, o
« «
h 1*4 Z X
Z E
« Eh H
CL4 S Ph O w C
h P
L
, P-4
*
4E
>H O s o
E
h
Z K
M 0 w § O, O M <
E
h
«
=
UW Eh «
XI >
«
VO vO c o Q
in in in in
o o o o
cd
CL,
O
Eh
PQ
K
O
« Q « Q
i n m i n ln
o o o o
I
l
i n m t “~ cr« < CQ O o o
in in in in in m in in in
o o
in in
(T> Ch CQ
in in in
O O O
I
I I
CO CO <
in in in
o o o
oo o
o o o o o o o o o o o
0
<0
O
1
O
in
o
o o o
VO vO VO
O o o
I I
[*4 Ct< Cm (*4 E*i
in in m in m
o o o
vO
Q W
in in
o o
o
O
I I
o
190
G
d)
P
*H
a
•H
i—1
Q)
XJ
E-*
13
O
G
O
G
d)
P
P
d)
i—1
—
o
s
\
ffi
o
s
\
o
s
\
CL,
X
w
H
E-h
cu
M
«
o
CO
W
Q
CO
«=$
CQ
O
M
>
g
•H
to
4-5
G
d)
a
3
Q>
G
cd
g
0
t«o
cd m
G
o G
o
P
to P
td
rH
g
3
o
p
•H<m
4-> o to XJ
d> r—1
3
o g G o
G o •H -G
•H 4->
■pp 3 o
cd cd o p
O 3
G
■1
1
—i
XJ
Cm Cd G d>
1 > o to
H d) •H 3
H
P
cd g
U h
c o cd to o
«3j -H •H p
i
—1 cd
> > o ctf rH
X) G a 3
>» G g
•O H O 3
o
cd
g
0 ft
o
g
cd 4-5
g
G
G
G *H Cm 4-5 d>
d>
g
XJ XJ
•H 3
a
o
o
O*
s
H
O o
CO <
53
O
CO
O
O d) >
p
o
G G
bO 3 P
*H O •H
CO O CQ
O W
►J w
1X4 K
S O
iH
P
cd
o
i
Cx,
o
G
13
O ^
O &L,
SO
t~* o
CO
vO vO
O
1
O
1
m
o
LPi
o
m
in
vo
o
ft
a
ft
O
o
ft
O
>>
X ft
a
« - J X Eh
>
E-* o Eh CU
CU t-* CU >H
O
Cx* « S t-J
O
CD CD 0 O
K H <
x
<C
x
, CQ o Eh CU
<
«
: CO p
o
1
EH
Pu
Cx,
CD
CQ
Q
Cu Cu Cx,
vo vo VO
vo
o o
1 1 1
O
O
1
in vo CQ u O Q W W w w W
vo vo vo VO VO vo vo vO vO vo vO vO vo vo
o O O o O O o o o o O o o o
^r
Q
O
vo
o o
VO VO v o
O O o
vo vo vo
o O o
CVJ CM CM
o
cO
o
I j
!
1
r— *
— v o t - t - 3 0 <y* w U-*
o
vO VO
O OQ
> O O
rS
o o o
CO CO s
o H K
VO
w w m
o
cd
a
bO t1:
■
— •H
< U W M PS «
x
,C
<
Q C
k CO Q m
«
j
j
O O
s
J
vO
G
G
O
-H
O
P
•H
M
P
cd
M
d)
cd
O d) G
3
■—1
CO G O
<u •H
cd
>>
1 P
>
d)
p
3 cd
G
cd O
o
o G G
i—i
*=C rH
cd
cd
•H
Ex* Cm EC
O bO
6
o
G
G G a
G
O -H CD •H
K G G >»
P
Cd XJ O 3 O rH
rH 0
XJ •H O
ft
3 « bO
P
>> O
p1
•H
G bO
G G 3 G
3 G Cm •H
G
cd g > XJ cd
G
O
CQ
►J 3
<M <*: XJ
•H
P
-P
G — Cx, o >
d)
cd
•H
CD
3
o cd CQ d) bO rH
ft d)
rH
N a X>
G
•
H
•H
cd
cd
bO cd G to G p
>
G
Q)
3
0)
•H G <M bO XJ to
p
o
P
O <M G
•H
cd •H 3 •H
G
P
cd
O CO X> P
rH G
cd On 4 ^
d)
Cm d> P rH EH CO
> 3 3 X G
si
O Eh O
G G
p
-H <d •H O G rH
O
p
cd a *H Cv> Cm
O O Cm
cd G
M O
O
•H
Cm O G M M G d)
*H bO P
O
O O
cd G
<M CO <
P
«
3
J CQ XJ G cd
bO
p
rH G d)
dJ
o
P
to
3 •H P
3 CO
p P
P X> G G
o
•H •H d)
p
G
m rH O G G cd cd G
O cd rH d> d)
G d>
to o p
( h Cm P P
G d> G G G
G
•H
G d> -H -H G
•H
O 5) O
EH CU
CO o O f t , fU s
a
S
a <d O O to w S-. >»
rH
ft
G 0)
<u 3 CO
G 3 <M
cd S-, to
G bO
1—1C «M G 0 G <M C
a
CM
>
d)
o
d> j
ft zi
O
M
cu
— XJ
53 G
M cd
Cx,
•H O
G O
O cd
to
0 4-5
X> G
•H
bO O
G a
•H
G t
>
o
P
g
•H o
P
cd Cx,
G o
m
cd
G Cm O
o
a
G G
•H bO
53 cd •H
H s CO
W
CQ
o
•H
4-5
cd
3
r—1
CD
M
«
H
to
0
p
>>
X)
W
>>
g
g
<M
0
G
cd
55
O
to
to
o
•H
4-5
o
a
o
►J
G
O
•H
to
G
©
>
G
O
a
VO
o o
«- T—
o
to o o
1 1 1
T—
t - t - c^- c o o
o o
G
d)
bO
<D
P
G
•H
>»
Cm
•H
P
G
0
XJ
•H
0
G
•H
P
3
O
G
XJ
G
cd
P
X
0
p
Eh
O
O
o
cc
o
«
H
<
CQ G
0
P
o O
a
<M G
cd
G x:
0 o
p
O p
cd G
G 0
cd G
x: G
o 3
O
p
\
Eh
Cx]
O
K
CC
o
>>
x>
XJ
0
to
3
p
X
0
P
w
to
G
CD M
0
G
0 XJ o
XJ
(0
0 P
G 3
O
jQ
m
o
p
G
EH •H
G
O
•H
P
a
G
3
Cm
Q
«
G
O
Cm
XJ
0
0
CO
to
cd
XJ
0
w
3
1
XJ
0
p
cd
G
0
G
0
bO
G
0
X>
3
G
a
O
§
cd
P
W
XJ
0
G
*H
P
3
O
K
U
«
S
O
G
0
P
G
•H
to O
«JJ CU
P
Eh
Cxi
O
K
Eh
O
O
&
K
Eh
P4
EH
O
O
EH
f
iX
EC f
t*-
CXJ
O
1
oo
ro
i
G
M
CO
X
Q
a
«
o
cx>
o
c-
cr-
s
00
00
<
CQ
o
o
Cx,
00
O vo
o o o
CO
1
I
m CT>
c ^ C^ c o O o
<
O
o
1
CQ
OO
O
191
0
rH
o
ft
•H
XJ
CVJ
W
0
CO
CO
cd
ft
a
CO
4-5
G
cd
4-5
XJ CO
0 G
W o <—*
CO o <
0
o
G b0 O
ft G
■H 0
i>» B 0
0 •H CO
M 4-5 <w»
CU
O
Eh
CO
<M
•H
W
Cm
CO
•H
1
0)
4-5
cd
XJ
ft
3
M
Eh
z
o
M
H
CL,
H
«
U
CO
w
Q
H bO
00 c
—- •H
G
0 3
P XJ
>>
XI 4-5
CD
CO CO
-P
Cd
4-5
CO
Cu
OJ
T—
o»
CP <4-1
P
o
P
0 >»
to f t
w o
Cd o
O
1
XJ
G bO
Cd <d
i—I
CO Cm
3
X> >>
0
i—1 M
cd
•H f t
G O
0 4-5
CO 0 0
-J
cq
CQ
«ai
-J
CO
p
E-«
<
E-i
CO
G
•H U
cd «
a CQ
>
4-3
CO <M
3 O
•O
x j >»
cd f t
o
o o
-P
1
XJ
0 0
CO G
3 •H
-P
XJ 3
G O
cd G
0
ft
cd
40
i—1
cd
a
G
O
G
a
o
G
Cm
4-5
G
0
w
0
-Q
O
4-5
rCQ
bO
G
•H
0
X)
bO
G
•H
-P
•H
cd
>
XI
o
-p
0
Cm
cd
40
cd
XJ
G
0
4-5
O
cd
G
cd
X3
o
<0
0
4-5
0 rH cd
ft 0 o
cd G •rH
4-5 G XJ
0 G
a X •H
o
G G
1
<M •H
bO
XJ
cd
0 Cm rH
> M <M
•H K
G CQ +5
0 >
3
XJ
ft
G 4-5
0 o 3
-P
o
>> Q
XI <c XJ
o
0
bO - J G
G
G
•H 0 0
a 4-5 Cm
•H cd 0
-P o XJ
•H
1 XJ rH
G cd
XJ •H •H
cd
G
0 O 0
G 4-5 CO
G
O
Cm
XJ
0
>
•rH
0
O
0
G
O
G
0
•H
40
3
ft
4-5
3
o
G
O
Cm
G
0
4^
O
cd
G
cd
X
O
O z
r—I M
O
<
cd CQ
-p
cd bO
XJ G
•H
Cm G
O 3
XJ
XI
G G
0 0
40
0 W
40 •H
cd bO
o 0
•H G
XJ
G X
•H
Cm
O O
40
0
bO bO
cd
cd
X! i—i G
o Cm O
40
r—1 1 CO
cd
•H XJ >»
G cd G
0 0 cd
CO G G
\
O
w bO CQ cq W f t
CU cd cq cq CL, a
0
< rH PQ cq <
Eh CM M H Eh Eh
-J O
CM >
CM O
X
cu K o K Eh CQ CU
o CQ « EC < O
Eh CO cq O Q cq m
CO Eh > M H Eh Eh
G
0
P
O
cd
G
cd
XI
o
C\J
m
C\J
CO
K
XJ
G
cd
o
X)
►»
0
-—.
G
0
0
G
O
CO
—^ —
bO
G
•H
G
3
XJ
G
0
-P
W
•H
bO
0
G
>4
<M
O
0
bO
cd
G
O
40
w
>»
G
cd
G
o
ft
g
0
Eh
>h
CU
S
W
Eh
O
>>
i—l
z r-H
w cd
cu a
o
G
o
>) G
r-H
40 1
G
0 0
G O
G •H
3 >
O 0
XJ
CO
0
rH Eh
•rH G>
<M CU
Z
«M H
O
40
G G
0 0
X) G
s G
3 3
z O
m
0
ft
cd
40
O
40
G
0
40
40
•H
G
>>
i-H
i—1
cd
a
G
O 40
G •rH
XI
1
<M
0 O
O
•H >»
> 40
0 •H
XJ G
Eh
cd
ft
CU 1
Eh
0
n
O 40
•rH
■P G
G
0
G W
G P-i
3 <
O Eh
CO
a H O
Eh Eh
H ►J hJ
Ct4 CX4 P4
z Q Q
•>
s
={*;
K
O
K
«
0
W a
cd
O
G
N. 0
M rH
c •rH
Cm
G
O 0
Cm 40
40
VO 0
CQ CO
>— CO
cd
XJ
0 W O
40 W
0 0 bO
i—1 G G
f t f t •H
a ft G
G
o 3
o CO 0
Cm
O CO
o 40 G
G
c3
O G
0
II 4 0
40 40 \
>> •H bO
X ) XI G
•H
0 IX
40 0 O
cd bO 0
o cd XI
•H W o
XJ co
G 0 0
•rH a rH
•H
O o G
40 N
£
M
bO
0
cd CO
r-H CO r\j
Cm 0 G
G 0
1 f t rH
f t •H
3 Cm
XJ CO
cd
O
0 O 40
G 40
X
CQ bO 0
CU cd X!
rH G
Eh b H
Eh J
H h
H
< >4
CU CQ
Eh Eh
O
_3
Cl,
O
CO
s
CQ
<
EH
«
W
Eh 0
a
0
ft
cd
40
o
40
bO
G
•H
40
•H
G
£
G
O
Cm
G
O
•H
40
cd
o
•H
Cm
•H
40
G
0
XJ
•H
G
0
XJ
cd
0
as
G cd
•H G
0
CO rH
0 •H
CO Cm
CO
0 0
G -P
XJ 4 0
XJ 0
cd W
W
G cd
O o
G
G bO
0 G
•H
Cm G
O G
0
JX Cm
O W
cd G
G cd
-p G
-P
w S
f t bO
0 G
0 •H
X
0
1 0
XI
bO o
O
rH 0
rH
G •H
O XI
G S
G
0 G
0
t— Cm
Cm
co 3
co XI
cd
ft 0
ft
l cd
40
XJ
cd o
0 ■p
G
X
CQ 0
CU XJ
<U G
Eh H
X cu O
f t r*
H Eh «
S
«
Z Q W
Cm K Eh
X
fHt
S
Z
o
0
i—1
bO
G
•H
CO
XJ
0
P
O
0
G
G
O
O
cd
CQ
Eh
«
W
Eh
O
P
G
•H
X
0
XJ
G
•H
1
bO
O
i—1
G
O
G
G
0
OJ
CO
CO
cd
ft
1
XJ
cd
0
G
CQ
CU
<
Eh
O
M
K
O
O
Eh
OJ
o
M
CO
<Xj
CQ
0
>
•H
0
O
0
G
G G
0 0
P P
P P
•H •H
G G
?
£
G
0
bO
0
P
G
•H
G
O
XJ
G
0
CO
0 O
P P
>>
-O CO
P
m •H
XI
i
i—1
XJ cd
G •H
o G
o 0
0 CO
CO
OO
G
0 G
ft O
Cm
CO
0 G
a 0
•H P
P
G
3
O O
VO O
CO
0
P
cd
XJ
ft
3
P
•H
XI
1
0
P
1 •H
G
*
o \
o XJ
rH cd
a
0
G
>,
Cm w
Cm cu
•H
Eh
K
X
H
Eh
O
Eh
Z
O
Cm
CO
Eh
G
0
Cm
Cm
3
O
___
\
b.0
G
•H
XJ
cd
0
G G
0
P
0
O i—1
cd •H
G XI
cd £
XI
O XJ
cd
XI 0
p
G
•H
? CO
XJ
cd
0
G
0
0 G
CO 0
1—1 X!
3
f t XJ
0
0 Cm i—1 cd
O O XI p
a cd
o G 0 ) XJ
p
0 CO
XI CO Cm
H a cd O
O 3
W G 0 P
p
G
Cm G >> cd
•H O XI P
Cm __ CO
t—
II G G o
t- 0 0 p
CQ P P
G CO G
1 3 •H £
O bO o
bO O 0 XJ
cd
G p
rH 1
G
Cm
P
3
0 Cm O
M P •H O
O •H x :
W G CO 1
£
CO
CO 0
3 XJ 3 P
X) cd X) •H
0
G
i—1 G 1—1 £
cd
cd
•H CQ •H CQ
G CU G CU
0 <
0 <
CO Eh CO Eh
CO
0
CO
i—1
3
ft
G G
•H •H
P
G
O
XJ
CO
Cm
O
G
0
XI
a
3
G
Cm
O
G
0
P
G
3
O
O
1
»—
G
G
0 0
XI
p
G
3
O
O
G
0
<M
Cm
3
Xl
G G
0 0
Cm Cm
Cm Cm
3 3
XI X>
W
G
0
P
O
cd
G
cd
XJ
o
bO
G
•H
G
3
XJ
p
G
0
CO
H Eh
O Z
CQ O
K Eh
CQ CQ
CO Eh
II
/N
G G
0 0
X2 X2
>
bO
G
•H
P
•H
G
0
G
cd
0
rH
•H
XI
£
II
p
•H
XI
bO
G
•H
G
3
XJ
CO
G
O
G
G
0
OJ 0 J
CTv
a
3
G
G
0
<M
Cm
3
rH X)
cd
•H 0
G ft
0 cd
CO Eh
«
3
O
CO
G
0
P
Cm
O
O
cd
G
G
cd bO 0
G G O
O •H a
O 3
Cm XJ G
O
>> CO
G rH P
0 P
G
XI G 3
a 0 O
3 G O
G G
3
1
Cm O
P
O
CO G
G •H 3
0
O
P
0 O
G P
G
3 P
O 0 0
O CO O
CO cd
1 cd f t
o CO
OJ
N
CO G
G CO 0
0 cd XJ
X> f t cd
0
a
3 x : rH
G o
•H 1
G XJ
0 s
0
Cm
P
Cm Cm •H
3 O G
X>
P
0 G CQ
f t 3 CU
cd O <a
Eh O Eh
Eh
Eh
>h Z Z v— CvJ
PQ Q o X X
« H Cm Q Q
CQ Z EC H H
CO o CO Eh Eh
S
£>
Z
CO
«3J
cu
p
•H
XI
XJ
0
>
•H
0
O
0
G
G
OCm
0
bO
cd
G
O
P
CO
>,
cd
G
O
ft
a
0
p
OJ
CO
OJ
co
K
Eh
Z Eh
H
c e CQ
Q Z
-J H
CJ
Cm
oo
O
v o CQ O Q O in CQ Q
CT. CT. CT. cr> < < «*! «si
O o O o O o O O
— 0J
w Cm O x
1
«a|
PQ CQ CQ
o O O O O
■=r ■=r O i n
1
CQ CQ O
CQ O
O
o o O o
Q C"OO CQ
O O
1
CT.
CQ
O
1
<
CQ
o
CQ O Q Q
CQ CQ CQ CQ
1 O O O O
1
CVJ
O
M
>
<
o
O *— CVJ m -=r in vo C*- t cr. cr> cr* c r. cr. c r. cr> cr. CT>
o o o o o o o o o
mC
m
CO CT* < PQ O Q w CQ CQ C
O* o> cr> CT. CT. CT> c n <T> CT. <T< CT.
O o o O O o o O O O O
o CO CO ■=3- ■=t i n i n VO
<x|
■=a| < < < <
O o o O O o o O
C- C*- t*<
<
1 o
o
<
O
192
o
■p
cd
o
•H
XJ
S3
•H
Sh
o
Sh
Sh
0
09
cd
XJ
CD
w
G
XJ
cd
<D
Sh
CQ
0
W
i—1
G
cx
9
o
g
se
o
XJ
P
SB
>»
XJ
Q
<U
O XJ
0
>
0 o
a a
cd
-p 0
X)
w
w
0)
Sh
bO
O
Sh
cx
o o
Cm p
rH
rH
cd
XJ
G
0
1
05
w
Eh C\J
H S
CQ S
Eh
T—
3
o
o
Eh
X
H
Eh
Eh
Sh
cd
a
w
z W
o Q
3 O
y
H
05 H
<
3
Eh
>-t
< 00 O Eh
Oh Oh
Q
H O CO H
05 Eh Eh 05
Q
Q
<
Eh
CO
05
Eh
CO
Oh
05
Eh
J
Oh <tj O
-J W O
0
G
Cm
O
G
0
Cm
Cm
CJ
X>
CM
3
o
o
Eh
C^ t"- cr»
O o o
1 O o o
[lH
Co
CQ
Eh
CO
Eh
Eh
M
CQ
0
i—1
•H
Cm
>»
rH
0
a
CO
O
•H
G
C
m
O
0
G XJ XJ
CX G 0 -p
0 G G
0 CQ •H 0
X> CO
G
O O a
a -P o 0
o XI
P
0 •H
O
CX X> bO -P
cd
cd
-p -P i—i 0
m -P
X C
<M 0
>>
o G G x>
O
XJ 1 G 1
G
G
0 -P 0 p
•H
•H
1 a 1 a
w
CO
G
G
XJ cd XJ cd
cd G cd G
0 -P 0 -P
G
G
CM
CM
w ro w ro
Oh CM Ph CM
■aj co
oo
Eh 0h Eh 05
Eh
O
w
H
Eh
H
CQ
Eh
X
S3
05
05
05
W
Eh
«aj
Eh
<
Q
O
05
C«
O
<
O o U
O O O
ro ro
CM
CJ
o CJ
1 O 1 o o
05
O
05
05
W
Eh
XI
G
0
1
Q Q ClH b-,
«3l
<
o o o O
CO oo CO CT> cx» cr> < < CQ CQ CQ o o u W
< < < < < < < < <*S < <=Z <u <JJ <rj <
o o o O o o O O O o O o o O O
CQ O VO W
O O Q CJ
o O O O
r_
XJ
0
1—1
XJ
a
0
CO
CO
cd
0
O
•H
>
0
XJ
05
05
05
W
Eh
X)
cd
C O OO
W W
& h tu
CQ CQ
CQ CQ
O O 1 O O
—'
G
0
X3
a
G
G
G
O
•H
P
cd
G
0
CX
o
05
O
H
05 H O
05 E Eh
H
W
Eh H CQ
Sh
0
cm
>
cd
•p
cd
XJ
P
G
3
bO O
cd o
rH
<M -p
•H
bO X i
G
•H -p
a •H
•H a
-P w
G
XJ cd
cd G
0 -P
G
CM
W ro
Oh CM
CO
Eh 05
0
-P
•P
•rH
G
£
O
O
w
w
0
Sh
XJ
XJ
cd
0
CX
4-> -p cd
G G -p
cd cd
•P p 0
CO CO •p
G G -p
O o 0
O o w
CQ
bO bO rd
G a o
•H •H
a a Cm
•H •H O
-P -P
CO
1 1 CQ
0
0 0 G
-P -P XJ
•H •H XJ
G G cd
5 l»
-p
W W G
Oh Oh cd
< <«: -p
Eh EH CO
0
-p
-p
<D
W
09
Cd
O
co
<
CQ
XJ
cd
0
G
•p
0
w
O
o
II
ro
l
o
CQ
XJ
Sh
bO O
G £
•H
G
G O
XJ
«m
0 i—1
-P cd
>> XJ
XI
•p
G co
•H Sh p
•H g
Sh Cm
O
o
Sh Sh o
Sh O
0 <M CO
■p
bO bO *H
cd cd XJ
rH pH
Cm Cm T3
0
1 1 >
•H
0 0
'O ■P O
cd •H 0
0 Sh Sh
Sh £
C\J
w W ro
Oh Oh CM
< <J CO
Eh H 05
g
►J
W
CQ
<
hJ
O
P
to
0
-P
SB 0 Q
0
O G «3J
SB
i—1
•H •H o
(X
-P i—1
•H
s SB
cd
a
3 0
XJ CD o
SB O 1—1
•H ■p
cd Sh o
•H -P cd
P
0 0
•H
XJ •p
Sh x : CO
CO Sh Sh
0 •H
•H
0 0 0
3 Sh
XJ •P CO
cd XJ
£
oH
•P 0 XJ
G
Sh
cd 1—1 cd
CO •H Sh
-P (1)
XJ XI 0
cd O o
S
h
CX Cm
ii
Sh
a
XJ
vo 0
XJ
o Sh
x : cd
CQ CO Sh CD
0 W G
CQ cd O •P
CO a
CO 0 Sh
•> cd -P •H
3
•H Sh
XJ
Cm 3
XJ -P 0
Cm xJ
cd 09 cd c r
SU 0 cd co
O Sh
0 •H
0
0 CO G 3
o
p 3 •H H
Sh
Sh
XJ Sh
0
0 0
SB
-P
X5 Cm X Cm -P •P Sh
•H 1 CO bO
0 G
O
a O o O >» cd 0
0
XJ ■
—I o
CU -P XJ •H
3 cd
Sh
G Cm XJ XJ
Sh
• » Q) o 3
r—1 O SB 0 o (X
0 XJ rH CO
w CO •p XJ
SB cd
(1) XJ P II -p cd N
> ' 3
o u
0
•H C'< H Sh XJ
0 0
0
CO
X) X) CQ 1
—
-P G
XJ -P CQ
a XJ
CD o P
Sh
cd >> XJ G G 3
o G d) 0 CO 0 -p G cd •H
O >>
0 cd XJ Cm M 1—1 •H cd
SU
rH a Sh
a) W -p o <m O
CO^ a 3 0 Cm cd
rH
O
o
SB G
X> X! o CX <A O • K a
0 O 1 p
O
o Sh w 0
0
Sh Cm
G 0
O
XJ
> a
bO 0 -P M •p p
W <
0
C
m bO cd G >» O bO >» Sh
CO Sh
Cm cd i—i Sh XI O SB x> O Sh
3
•H rH Cm
rH 0
<M O Sh O
o XJ O i—1 XJ
Cm o i—1
XJ Cm
C
O
0
0
0
Cm o
o
1 1 > 1 > 1 1 > CO x>
•H
•H
•H 0 0 CO
0 0
0
0 0 Sh CQ CO o
XJ -P O XJ O XJ -P o XJ 3 0 p
G
cd •H 0 cd 0 cd •H 0 XJ
<D Sh Sh 0 Sh 0 Sh Sh cd Sh XJ Sh
0 XJ 0
Sh ?
Sh
Sh £
C\J
CM
CM •p -p cd p
G
w W ro w ro W W ro t. G
Oh Oh CM Oh CM Oh Oh CM cd •H XJ •H
< <3J co
co < <JJ oo p o G O
Eh Eh 05 EH « H Eh 05 co Oh W O,
x>
cd
0
G
S3
O
H
H
Oh
H
05
U
CO
w
Q
cd
•p
cd
XJ
G
0
G
G
G
O
0
XJ
p
0
•H
'—
0
•H
•H
Cm
-P
0 G
0 Cm rH 0
G
O
•H
aD
C
Cm G
G ✓—s
G
0 G -P O 0
i—1 0 G
a
•H XJ 0 Cm gj
Cm a G O G
G G
0
G G G CO rH
•H
O CQ •H
0 Cm
0
W rH Cm G
G •H O XJ C
m
0 Cm
XJ O
■P '—■ W cd
CO
O
CO
cd W 0
W
G CO G -P 0
cd 0) XJ CO G
XJ G XJ G XJ
o XJ cd •H XJ
<M cd
XJ
Cm
cd >» w
G
O
bO
rH cd >» G
G ed V . G •H
0 o G cd -P
X> •H o a G
s bO o •H cd
3 O 0 G p
CO Oh co
525
05
Q
«*J
s < < <5J S
ClH i-q CO Cxh &H
S
w
0
CX
cd
-p
a
o
G
C
m
XJ
cd
0
G
0
P
>»
XJ
1
XJ
cd
0
G
CO
bO •H
G
•H 0
G •P
•H >>
0 cd XJ
CX a
cd 0 0
p G G
0
o CQ XJ
■p X ?
O
G O G
0 i—1 0
P XJ Cm
Cm
-P
•H Cm G
G O XJ
SB
G XJ
0 0 G
XJ XJ O
a £
O G
-P G i—1
cd
0 1 •H
-P
G
>» 0 0
XJ -P CO
•H
1 G 1
£
0 S.
-P XJ XJ
•H cd cd
G 0 0
G G
W W W w
Oh Oh Oh Oh
< <*! <U <
Eh Eh Eh Eh
M
05
EC
CJ
Eh
O
05
CC
CJ
Eh
a
Q
H
hJ CO
PQ PQ
Eh Eh
CQ
Q
O
tin
O
1 o
O
Q
1 O
1
ro
CQ
O
o
CM ■=r ■=r in in vo vo
CQ CQ PQ CQ CQ CQ CQ CQ CQ
o o O O o o o o O
r - CM ro ^ r <c
Q Q Q Q Q
O O o O o
« Q W P*H
Q Q Q Q
O O O O
u
CQ
o
CO cr> < c i
CQ CQ CQ CQ CQ
o o O O o
Q Q W &H
CQ CQ CQ CQ
o O o O
193
C
3
o
G
cd
ft
cd
pass
G
g
o
CO
G
3
on second
©
G
•H
p
XJ
G
cd cd
o
x j XI
G >>
cd <D
55
O
H
0-,
M
K
O
co
W
Q
bO
cd
iH
<M
xj
o
p
•H
ra
<D
4-5
-P
0)
CQ
10
cd
O
CO
G
o
© p
o
p
•H <D
G >
*
<M
© o
-4->
P
G
© 0)
(0 Cm
CO ra
cd G
o cd
G
'O p
c
cd G
o
<M
«aj
O xj
hJ
<D
CO
g
3
o
<M g
CD
CO p
CO g
CD *H
G O
xj f t
xj
X
W
3
o
-H
> g
CD Q)
G <M
f t <M
3
U ) XI
G
•H XJ
G G
3 cd
XJ O
X)
x j >>
CD CD
CQ
CO
CD g
G •H
ft
CQ
>» G
0 CD
P
O
«m cd
O G
cd
CD .g
3 o
i—I
cd <m
> o
cd H
cd X G
P
G -H ©
G CD G x>
a
cd G P
p
CD cd 3
CO U S s
-J
W
CQ
«aj
X
T— h4 X X
«aj « Eh X
H H CO o
o CO 0-«
53
CVJ
O
Cx,
O
1
PQ
fx . C*,
o O
o
M
W
<
CQ
CO
CO
©
G
ft
CVJ f t
T— 3
co ©
G
«M O •H
<M P rH
o
XJ P
<4-. © 3
•H co f t
3 G
o
•H
o
1
*—■
<M
p
O
3
g
o ft P
G
CO •H cd
•H
p
<M JO
XJ O
rH
u
CD © o
•H G
<i-«
■—1 U
©
©
10 G x»
O a
CD
3
> CO G
© G
G © ©
p
G
© o -H
P
cd rH
cd G
o cd G
•H G ©
XJ o ©
G
t.
•H «M O
o CQ
O
su <M
P
© O
t o X>
cd a to
i—i 3 o
Cx, z
G
cd
O
CO
G
o
CQ
G
3
XJ O
G II
cd *—
O
X) •»
>> G
© O
•H
O
►J
Cx,
00
>
CEJ
p
G
©
G
p
3 G
ft 3
G O
•H
bO
<M G
O •H
G
P
3
G XJ
cd
p
XJ
CO ©
CO
u CO
o ©
<M G
ft
G
a >»
3 ©
rH
O
o <M
O
G
0) ©
© 3
G rH
O cd
CQ >
<M X
O H
G
bO P
o cd
- J 2:
z o o -j
M o o <
>
Pu= S5
►i
S H O w
M
O
w &u T— m
CT> cr> cr> <c <
I O o o o o
G
O
ra
G
3
o
II
o
'—
XJ
©
G
•H
cr
©
G G
•H
G i—t
o XI
CO
G G
3 O
O CO
G
© 3
P
O
cd
o G
*H O
XJ <M
G
•H G
O O
P XJ
p
to G
cd 3
rH o
(x. o
«
o
CO
«
CD
O
c> O o
E-* CO O K
O K W CO
SS 33 K CX,
O :=> s
CQ o o M
-=r VO t - OO o\ <*: O
<3J < ^5 «=tj ■=< «=<
O o o O o o O
CM •=r
O o
O o
O
>
c
o
o
o
r— m
o o
<—.
CO
©
G
•H
rH
XJ
G
3
O
G
cd
ft
cd
G
£
CQ
©
XJ
3
i—1
© a
G G
•H
i—1 __
G
©
©
G
O
CO
G
O
P
G G
© O
G *H
G P
3 *H
O W
O
<M f t
O
G
CO O
CO CO
© G
G D
XJ O
XJ
cd P
G
Q)
p
G G
cd G
p
3
CO O
i n v o t - o o cr»
c_> o o o o o
CQ o
O o
O
O
w
o
Sxs O
o «
w
©
p
o
3
cr
©
p
G
O
CO
G
©
P
O
cd
G
cd
XJ
o
cd
o
•H
XJ
G
-H <M
o
o
p
G
©
to X)
cd a
rH 3
Cr, z
XJ
©
p
cd
3
P
•H
ra
ra
*H
G
O
ra
G
3
o
x:
o
•H
x:
G
O
G
©
X>
a
3
G
P
3
ft
G
•H
©
CO
■—I
3
ft
G
©
©
G
O
CO
©
rH
O
ft
•H
XJ
bO
G
•H
G
3
XJ
a
o
G
«m
XJ
cd
©
G
G
©
©
G
O G
CO ©
©
G G
O O
CO
G
© O
P P
O
cd P
G 3
cd f t
xi P
o 3
O
<M
o G
©
© P
O
1—1 cd
cd G
> cd
XJ
G o
©
© p
G CO
o cd
II
CQ
1
W
©
p
>>
XJ
x:
to
•H
G
CO
©
CO
CO
©
G
XJ
XJ
cd
X>
©
P
cd
3
i—1 ©
©
cd P
G
> >> t o -H
© x> G rH
_____________
•H
^ J XJ G
© G G ©
f t O cd ©
cd S P
G
p
CO O
CQ
a P
a 3 2
O ra O CO
XJ
G id
<M o i—1 i—1
© rH O
XJ XJ •H XJ
cd o P
©
ra i
G ^J
o ra ©
o P rH
P
•H 1—1 G x>
X> XJ © cd
CO P
1 1 z
H ©
©
G
XJ p <M -H
cd •H O rH
© G
G £ G G
© ©
w W X> ©
pL, O , a g
*=u «aj 3 o
Eh Eh U5 CO
ra
©
G
•H
P
3
O
G
rH
i—1
O
G
O
CO
G
©
©
G
O
CO
bO
G
•H
G
3
XJ
XJ
©
ra
3
bO
o
•—i
£
o
G
G
©
©
G
O
CO
X
•H
G
© P
P
cd
© a
-J
Cx] t o
Q G
•H
XJ XJ
G O
cd O
©
i—I XJ
«H
O XS
G G
O cd
CO o
x>
t o >»
G ©
•H
G
3 p
XJ G
©
>» G
G G
O 3
a O
©
a Cm
O
G
3 P
O G
rH cd
O P
O CO
G
G ©
© Cm
Cm Cm
Cm 3
3 XJ
X»
P
© •H
> a
•H CO
© G
O cd
© G
G p
<M Cm
O O
P
G
cd
p
CO
P
G
cd
P
CO
O O
p P
G G
© ©
P P
G G
•H •H
O <M O O
P
O ft ft
G CO 1
© CO
P
© CVJ
G G m
•H XJ CVJ
O XJ CO
CU <JJ cc
1
CVJ
cn
CvJ
CO
ee
Q
cq
CO
o
z
CO
[x.
G>
CQ
O
«
I
1
1
•=r v o OO < cq
Cx, Cx, Cx, Cx, Ex«
o o o O O
1 1 1
J - m -=r i n v o t— t>- C*- t>- OO O'* CvJ m i n r - CT. CQ
(x, (x, Ex, Cx, Cx, Cx,
Q Q
Q Q Q Q Q Q
o o O o O O O O O o o O o o o O o
K
EH
a.
«
o
CO
©
G
•H
cq s
W - 4 s G>
o Eh H S
PL, O
-I
O O CO 00
in
CJ
o
l
■=r VO Q
o O O
o O O
CVJ
o
o
o o o o o o o o o o o O o o o
©
G
•H
i—1
G
•H
cd
ft
errors
-- s.
«M
<M
o
o
o
CO
«»» G
©
XJ P
© O
G cd
© G
P
cd
G x:
3 o
O
a tG co
©
G
CO O
©
p in
o vo
3
c r •*
m
© •=r
a
•H
P T—
CVJ
>» ___
G
© ©
> G
© •H
rH
CO
ft G
•H ©
rH ©
<M G
O
1 CO
to correct
G
cd
o
ra
rH
•H
cd
G
p
G
©
XS
XJ P
©
p o
G o
©
> p
G o
•H G X—N.
o
CO <M >—■
•H t H
----- XJ
G
G
O © cd
CO w o
G cd x>
3 G >>
O ft ©
X
© XJ
•—I © G
*H p
O
x: G
? © ^—.
> m
G G '—
O •H
CO
G
G CQ ©
3 P
©
O •H G
O
© G W
x ; •H
p
a
W o
G •H G
©
<M
XJ G
£ O p
CO 3
G ft
G 3 G
© O •H
©
G © ©
O P P
CO cd cd
o o
G •H •H
O XJ XJ
G G
G •H •H
©
O
P
O
O P P
cd
G to to
cd cd cd
x; rH rH
o fr. fc ,
used
©
ft
b0
a
OFF-lOA
100-13E
13E-1FF
©
P
P
CD
CO
<0
cd
o
cn
p
>
CO
K
ca
o
o
cd
a,
0FF-10A
100-13E
13E-1FF
<
*j
o
-j
CO
H
«
«a!
P3
o
CO
o
«
«aj
CC
o
oo
Eh
X CO
CU
CO CJl,
H O Z K
IH O
«
Eh H S 00
OO
b
O
1
in c o cr> <y» CT, c r. o o
o o Q Q O Q Q W
o o o o O o O O
TCx,
o
O «
► J Eh
a,
K ►J
O o
CO CJ
1
i
X
Eh Cx,
&
P i CQ
cq M
« «
i
1
ASCWRK
TERTAB
-
©
o
Q
Assembly area for float-ASCII conversion
Error table set on first pass of tape read,
BASIC and hardware stack space
HCCS
>
g
194
G
0
ra
«M
XJ
>>
0
3 ^
XS G
a
G
0 •m
o
G
cd
o
G
O
Cm
ra
XJ
3
— p 40 X)
G X2 G
0
g
0
N
G
cd
8
o
x>
G
>,
0
o
Eh
>>
0
bO
G
•H
G
3
Xi
—
0
G
0
X3
0
40
CO
a
<D
G
0
10
G
d)
XJ
-H
>
0
XJ
3
G
to
o
x>
o
CO
tO
CO
G
0
G
0
Cm
Cm
3
X)
40
3
ft
<m G
—' XJ
XJ
CO Cd
0
CO ^
tO 40
CO
Q)
W
W
CD
G
CD _ XJ
G G XJ
XJ -H cd
XJ <M
td ^ >>
G
H >> Cd
cd G t j
O cd G
•H
O
bO •
O G 0
ft W
a O
G
•H
<
CO
*
a
j
PQ
fa
fa
§
CQ
C\J
I
o
o
cu
OO
IT t
o
M
>
CM
|
O
o
CM
►J
CQ
Eh
<U
J
J
CQ
H
«aj
[14
J
CQ
Eh
«aj
CO
<
w
LO VO VO
C\J CM CM
1 J, 1
*— CQ LO
lO LO vo
CM CM CM
CM
VO
CM
■
cr>
LO
CM
O
VO
CM
I
ro
vo
CM
vo
ECVJ
|
Q
vo
CM
0
0 40
40 > ,
>» X>
X>
S 5
<aj «
K
G
0
Cm
Cm
3
X!
x>
G
cd
0
CO
<Jj
CQ
w
CQ
40
O
cd
G
cd
XJ
o
0
rH
XI
Cd
rH
•H
cd
>
cd
rH
rH
•H
£
0
o
O Cm
40
CQ
0
XJ
bO
-H
33
f
a
£3
fa
s a fa
<
«
Eh
O
II
CM
CQ
0
G
cd
£
40
- Cm
>» O
0 to
X
>>
0 s
CQ
O
X3
bO
O •H
*H
33
x:
o
>1
0
X
+
0
X
G
CO 0
>> 40
G
3
O
X3 O
O
-H X5
X3 0
^ 0
40
«H
•H
X3
40
G
3
O
O
0
<M
CQ
G
cd
G G
40 <0
G
S
0
bO XJ
1
XJ
40 CO
3
G
0
X3 0
40 rH
X>
< - cd
II G
O- 0
CQ
O
Cm 40
*H
XJ
I 0
O
CQ
*—-* *H
ft
0 0
o
rH
X»
cd
rH
-H
cd
>
cd
G
0
40
to
-H
b fj
G
0
40 .
to
-H :
tfl
G
G :
0
bO 3 G Q
cd
O O >»
rH M O O X> G
<m cd
rH I
I rH 40
<M
o CO
G *H
bO G LO LT> 40 « )
bO Is lo m G 0
O o vo v o O G
40 XJ
O
W
§ o
o
0 XJ XJ XJ
G 40
CO
Cd
cd cd
o a co eo a 4 0
cu cu oo w
G G
0 0 CM CM CM CM
0 00 00 CO oo
G G CM CM CM CM
O O CO CO CO OQ
CO CO K K
o
0
40
Cd
G
©
a
O
©
ft
cd cd
40
40 40
o
bO
rH
G
G -H
G
0
0
3
■P 43 XJ
n
g
G co co 40 40 o
o 40 40 G G 40
<M G G -H -H O
O O ©
40
ft ft >
G
cd
I
I 40
40 I
ft
I
G G 3
G
G
© © G
a
o © © 40 4> ^
o 40 40 G G ©
G G •H -H 40
to - r l -H O O G
O O f t f t -H
•H f t f t
G G G
G G
40 0 0 <M <4-4 <M
<M <M <M «M
© <M «M 3 3 ©
40 3 3 XJ XJ G
cd X> X>
o
40 40 40
G
40 40 3 3 ra
XJ 3 3 ft ft
f t f t 40 40 >»
cd G G 3 3 G
Xi
O O cd
G A
CM CM CM CM CM O W
OO OO OO ro oo f t co
CM CM CM CM CM
S3
CO CO CO co co © s:
« K K K K H D
a
X>
<M
O
G
0 3 X0J
0
to
G
-H
a
0
M
3 3
0 3
0
©
rH
X>
cd
rH
iH
cd
X3 >
ra
0 0
rH XJ •
O G
G
G
©
40
o
Cd
G
cd
CQ CO X
s* cd ©
cn 40 +->
0
_
Cm
bO >»
cd 0 ^
>. H
O
cd <m
Q
0
CQ
>»
W
G to
0 -H
<m O
& XJ
O Cm 40 40
CQ
cd Cd 40
0 bO 0 0 Cm 40
N cd f t f t -H CO
-H rH 0 0 XJ cd 0
CO fa « K co J >
ft
0 I
> ^r
0
«-
Cd «m
Cm <*-, +o O
«m O W
XJ
3
X I 40
G
G CM ©
<m Cd O') —
O 40 CM
CQ CO ©
O
XJ —- «
cd
G
0 G o a
^
© 40 CQ
40
40 O 40 1+
3 cd 3 ©
ft G a< M
G cd 40 Cm
•H XJ 3 3
O O X»
G
40
O
cd
G
& cd
>» -H x J
rH 40 o
rH
cd lo
3 T40 t- 0
G 0\ 40
bO
O
U)
0 O
>»
G
0i!
40
>>
Xl
M
S
PQ
O
a
3 Cm
G Cm
3
0 X>
bO
— 0
cd XJ
ft G
Cd
0 O
•H X»
G
G
0
a 0
a
>>
0
w
3
G
40 0 G
3 XJ
O 40
O
cd
G G
3 cd
o xj
rH O
x>
PQ
>-i
W
G
X) O
_
G a Cm
0 3
0 G O
G
O
O S II
XJ
0
G
O
CO
G
3
XJ
>>
0
a
0O
XJ ^
40
CO
0
>
O
J
>>
0
•H 40
X Cd
cd 0
0 o -0
0
rH
X>
Cd
rH
*H
Cd
>
cd
XJ
0
rH
X>
Cd
0
Cm !*J
O
40 <C
cd
0 CQ
Cm II
XJ
0
0
40
cd
0
ft
0
G
a „
G
a 0
0
W
Eh
H
3J
1 ^
II
bO < cd
G
Cm
0
•H 0
3
a
G
•H
cd
40
40
0
CO
a
G
O
<M
G
O
to
G
3
O
>»
G Cm
O O
>>
0
a—
0
rH
40
o
cd
G
cd
xi
o
O
40
G
0 CO
x>
XJ
G
cd
3
G
xj
25
O
M
Eh
CU
H
«
U
CO
w
Q
3
o
cd
G
(1)
XJ
g
-J
o
CO
CO II
G
XJ
M
CQ
a
G
0 <U
rJ
rH
X>
cd
G
O
40
CO
®
«m
O <M
z
© © O
a 3
3
G
CM
OO
CM
CO
«
a
°
« K o
o M s
hJ 33 H
oo
C^
CM
1
fa
VO
CM
O
00
CM
CCM
OO
cr>
I
I
CM ■=T
X> X>
CM CM
I
I
I
I
I
I
I
l
o
i
I
I
I
I
I
I
I
O
VO
cr»
CT*
CM
CM
1
1
JL rr> LO VO C - CO o\ =
3
3 CQ O Q W fa *— CM OO
in t* - oo
oo OO OO 00 co CO oo OO OO OO OO oo OO <T> CT» CT» cn o * CT* o \
CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM CM
I
I
I
<«J
CT*
CM
1
cr» CQ o
cr* cr» OJ
CM CM CM
I
I
o f
a
fa
CM CM
8 I
195
T J XI
u72 -H Oc .
O- ■H >»
>» SS J fi
TJ o
43
© T>
9
43
J * ■0 0
43
©
ro 43
«
3 -0
■H - P O ®
uO Tt J. T©J
S
n - o
c
a
0
X
43
«
c
o
0
-Q
>
o
3C Sc 6
o
© o
43 ^3
TO <tf
« 4 3
43 «
■o c
•s
a
a
o
® r liJ - H
43
t.
X
U© -Ha
0
43«<
C
o
c c
3
O V fl
su
o
>
©
-H S3 © C
3 © -r4 XJ n
x> s « 4 3 ^
©
x» XI 9 0 0
a
©
3 s« C01 4O> -3O HH
(d
c 4©3 0 cd
S . SO
© c © al 43 i
to © G XZ SX
al -H O © C
© i
S. - n
h
rH
©
a
©
&3
►4
in
«<
E-*
05
O
CO
E4
Q
05
O
E-t
O
m>
«
H
Eh
w
05
PU
«
w
Eh
s
3
CQ
d
^
J
I
:
•I
1
©
O
x> M
oC
s« o
o
© (Q
Sh TJ
s« >
© XJ ©
c a
II a
l
w
O O
© S.
S h © 43
o
al
43
v. c 3
® r| H
JQ
Cd
1 >
Eh
©
CO CX
h
o
43
-I O C
1
rH ©
X
43
3
©
© CX C
m
c -H
© “H 4 3
©
CQ ©
© C
a
H
o c
a
C3
o
S .4 ^
43
0 4 3
a x ©
s
-h
© a
o
2
H
s : 43
o
j
a
m
i i i i i i
c coo <^-vo
r o CO
r -
W
CO
o o o o o o
S< S<So S< S< So
o 4o3 4o3 4o3 4o> 4o3
43
o oo o o o
© © © © © ©
> > > > > > ■
3
PC
O
Q
>»
©
43 43 43 43
x l ■H t { •H
M X X X
© © © ©
o ao
c
o
c
XI
©
43
©
XJ
cx
3
TJ
©
43
©
TJ
CX
3
■o
©
43
©
TJ
CX
3
Ix l
o:
o
E-<
CO
-:
K
S3
O
TJ
©
43
©
TJ
©
©
O.
3
©
S3
iH
43
3
o
Sh
X I TJ TJ TJ
C G C
© © © ©
c
©
©
c:
-H -H
43 43
3 3
o o
S-a
u
©
£
■HI
43
3
o
Shi
C
©
■H
43
3
o
o o o o
43 43 4» 43
o
43
TJ
©
©
©
©
CX
TJ
©
©
©
©
CX
1
B
0
1
ElH
CQ TJ
©
W ©
•H
o rH
43 ©
■H
TJ 43
© ■H
© £3
-HI
H
©
1
>*
co CO CO CO
JM
c/3 CO CO oo
uo
E-*
CO
J O
Q (Q Q
SS
m
g g 5 s §
©
bO
©
L.
o
43
©
uo
Sh
O
<w t - l
©
bO
©
Sh
o
43
©
Sh
O S.
©
© 43
rH ©
PS *H
s bO
3 ©
o Sh
o
«< X
43
Sh
o
W
-J
{Q
<<
E-t
to ©©
©
©
Sh
o
4>
©
KO
Sh
o
43
©
E-*
O
W
>
to
Sh
© ©
43 Sh
©
■H ©
3
© 43
©
to
U
<*; X
CO CO CO
>* X
CO CO CO
S
«
u
CO
CD
4-3 25
CO O
CO
CO
5m
CO
C
43 43
© ©
© ©
© ©
X> X>
pc
CO CO CO co
►*
> -l
CO CO CO CO
XJ
©
©
©
©
CX
o
>» >»
o
Sh Sh
E-« 43 43
CO C £3
© ©
XJ
c E3
© o O
a
u
X)
©
©
©
©
cx
•=?- °*5
TJ
©
©
©
©
Sh
CX
pa
© «
s o
© E-*
© CO
■w
CM
Q
W
&H
.£ 3
S< -HI CD CO -H -H
Sfl © PC H a l £.
PC
PC 3
W S
« (Q
3
©
CX O rH
© -H ©
3 S« 3 O
O © O -H
-h
Ch
as
43
a
a
43
cx cx o
©
ro
Sh
©
43
cd ©
£h
© ©
cx Sh
©
0 8 CX
a
C0
■o ^ a* -h
QJ >» c x
C
Sh
©
43
©
© 3
rH
o
©
©
ro ro
O 4*
x
ct
w
25
Ph
H
43
■H
S3
■H
S.
o
43
O
©
1 >
U
c
o O
43 *H
O 43
© o
> 3
Sh
O f 43
©
M CJ
■H
C
K
KUS
©
s PQ
Ui
1
©
TJ
I—1
3
O
©
o
©
xi
TJ
«—1
3
O
Xi© 3
Eh 3
Ed EG 3
O O M
©
PC
Ch EC EC
23
© O O O CJ
43
© © © ©
a © © ©
©
Sh © © ©
© a i
a
CX © © ©
© © ©
1—1
© ____
s t - cr» CO W
s< o o pt« O
o CM CO ro CM
S3 Ph Ex« Ph E*h
—^
M
(K
©
t,
o ©
>—■ 43
©
<< a
*< ©
pa Sh
PU ©
CX
o
43 I—1
©
XJ s
© s.
© o
•H S3
1—1
©
O
*H
<<
43 O ^=r
© \
•H ■=r co © O M
O
•H
fxa P i
•H «—-• »_- •H > rH
> © ©
© XJ f i
a
Sh o TJ
r-;
43 o
Sh o 43
o 43 O 43 3 c
4-3 O © 3 CX
O © > CX 43 ©
©
S3 3 Sh
pa •H O o
43
3 CO
M u o 43 4> ©
JgJ Oh -3 © © ©
25 O o co CO 05
u
>>
M
or
05 05 £
M CQ 3
CJ o o
3
Oh
O
Q
CO M O O
c-1 W W
CJ o CJ CJ
Q Q Q Q
E-»
ED
O PU
05 O
2! H
© ©
I §
03
<
o
tCM
Ex*
©
4-3
E*H
^
J*
o Ph
cd O
S-4 Eh
© CO
a
o
Xi XI
Sh
O
cd <d V i
3
CX
sb
M
£G
CJ
Q
Pk
co O
Ua 43
— P , XJ
l
to
C3
O
CO CO
43 43
a CX
rH
o
Sh
©
43
Q)
©
O
ro
Ch
tw Q) 0) ©
t -t.ro ro 43 43
o
cd
Sh
cd
M
Q
W
W
in
CO ptn
---
>>
4-3
PC
CQ
___ « pa
<aj >
CM O <
CO
CJ CO
U Sh ©
©
43
Ch
o
43
o
<D
>
1 PtH
CO <x;
o
1
Ex)
c <t
iH
C3
CO •H
ro
© X»
Sh C
XJ ©
XJ
•»
©
CM
43 CJ
Sh 1
© *—
43 o
CO
SB
•H
+3
•H 4-3
3 Sh
©
© -P
c ro
•H
4-3 X i
3 43
O •rH
Ch
4 -3 r^S
3 0
CX ©
•rH a SB
43 — • i 1 •H •H
O
•H
cd
4-3 CTi LO
Sh
cd
•H ■=r CO
,C CO C i n v o
O
<D •H P h Exh
—
rH
© -H 43
rH Cm 3 Sh Sh
X) o
43 43
H
'H i—I
n cd
© ©
Q
> >
Cd © pa
to CO
pa
4-> o CD <32 >
3 O <z
O O ED -3 CO
©
|X |
bO
—
©
Eh
O O h Eh
CO Q
EC H pa
O CO O CJ 05 J
Q a Q Q Q Q
3
5:
§ § § s § § s 3
CM
cr>
X—
—
Sh
©
Cm
Cm
3
O
1O O
3x: © ^
O CJ
>>
Xi
>
CO
«
§
jO
Q
pa
CO
ED
©
43
43
©
ro
CO
©
3
ED CJ
r—
Ex<
CD
04
1 CJ
CM
O
H
3
CQ
O
M
>
I
I
I
I
I
t
- m in
t- o
omq
o
o
mI o
oIo o
mI o
on
m
ro
I I I
O CM -=*• v o OO ■<
o o o o o o
ro ro cn m m ro
i
i
1
i
1
ro
I I l II l ll I II Il lI l
int-c^cQPfa’-coinh-cricQOCnT-ro
T - ^ - r - r - t- T - C M (M (\I C \J C \l(\J W (\lr O f O
ro
p a En o
O «—
o
CO CO CO CO r o
o
o
Q
o
rorororororororororororororororo
l OIC IO <IO IW IO IW l4 \ l
I I I I lO I( \ l I
O C O < < O W
^ V
r - r - r - r - r - i - ( \ |( M ( \ J f M C \ J O J ( \ J W r O C O
porofororofofororomrorofofoforo
I
<
CO
l ro i
W U
ro tin
ro ro ro
l
I
l
■Sf u Q
CO CO Ex*
CO CO CO
196
5
fa
fa
fa
53
fa
fa
fa
0
XJ
40
G
•H
40
►»
XS
CQ
CO
o
40
(1)
G
0)
0
O
I
o
o
Sh
G
s
•H
Sh
>H
OO
O
z
Eh
<J
o
«
CJ
XJ
G
cd
CO
w
Q
CQ
Sh
bO
O
Sh
Sh
CX
O
<m
CX
3
cd
CU
w
o
x
0)
40
73
Sh {
0
E
G f
53
<U
fa
X
fa
X
fa
O
2
g i;
O
Z
E
M
^
O
H
>
1
1
1
i
I
1
1
1
1
1
fa
OJ
O
H
1
1
1
1
1
I
1
1
1
|
1
1
I
3 !
CQ I
1
O
M
>
3
G
Sh
3
XJ
40
G
CQ
40
•H
XI
a h
«
2
M Z
Sh
1
1
1
1
|
1
1
1
1
O
40
5J
cd
X5 XJ
0 d>
-P -P
o o
>»
rH
G
O
0
XJ
•H
?
CQ
■H
W
40
•H
X»
0
40
t>>
XS
Sh
Sh
O o
fa Cm
Sh CO
o z
o
Cm
t
.
O O O
Sh
d>
0
0
O
Sh
O
fa fa
d>
U Sh Sh Sh
Q) d ) 0 ) 0
40 40 +0 40
O O o O
cd cd cd cd
Eh
fa
2
fa fa fa
Sh
Sh
3
x:
o o o o
«o
fa
•H J
50CQ
<D M
t, CO
CO
CX fa
O
eh
>
53 >
xj o
o <jj
«J
<z
3
O
i—1
o
o
23
fa Q
Q
ow
fa r
co co O CO
O
ro fa to
Z
z o z
33 o O
r - OJ CO
fa
O
fa
CO
Eh
X
<U fa
f
a X Efa
tSJ
fa
h
fa
fa
CO
.
o
1
o
o
o
o
i
1
o
o
=t
o
fa fa
fa
fa
CO
fa
fa
1
1
o o
o
o
o
o
fa
Q
1
o o
o o
•=r o
o *—
g
w
fa
O
fa
fa
fa fa
o o o
o o o
CO
CQ CQ CQ
t— fa
fo
am
fa
oco
co
I
I
o oo
o w
ooo ooon
CTi Cx,
fa fa
fa fa
7
T
O <Jj
O
fa
fa fa
I
fa
fa
fa
m
i
o
o
o
oj
fa
-3
I
I
fa fa
fa fa
fa fa
in tI
i
o o
o o
o o
= r vo
§
o
33
O
I
I
l
I
I I I
Ex*
[z, Ex* fa
O
o
O r -
I
(X| (X, |X4 fa
fa fa fa fa
cq oo
fa
omo oo co
oI oI oI oI
o
o o o
0 4 C C U
OO OO oo OO
I
fa
r- rcri cr
cr> cr> cr>
I
o
o
o
CT>
l
I
l
l
oo o o
t— t
— oj m
o t- t O '! O '! O '* O '!
I
I
I
O'* fa O'* fa
fa fa fa fa
in in
n
O * O '! CT* O'*
I
I
I
I
O
<U O
X
0
Eh
50
Eh
O
Eh Eh
50 50
O
O
\
N
Eh Eh
CO r
o
fa fa
<
o fa O fa
•=r i n v o t —
cr> cr> cr* O'*
Sh
O
<M
XJ
0
CO
5J
cd
0
Sh
cd
G
O
•H
CO
G
cd
cx
X
0
d>
bO
XJ
•H
Sh
40
cd
O
M
Z z
M
2
o
fa
oj co
in
fa fa
CQ CQ
o
CM f a
T - CO
X
0
fa bd
fa
fa
O
t- OJ
< -a;
M M
> >
fa
cd
0
Sh
cd
fa fa
<
fa
Q
fa
Eh
O
Mo MH
H
>
o
\
M
CX CX
XJ
o
cd
0
Sh
CQ
fa
O
<
fa
H
CO
CO
o
o
<u
•H
O
\
M
G
G
O
o
•H •H
CQ CQ
G
G
cd cd
0
40
>>
X>
Sh
CO f a
^J
O
O
■—1
XI
•H
w
Sh
cd cd cd cd
XJ X I
5J
G)
40
CO
^ j
o
o
iH
XS
cd
0
tn
cd
-= r
X!
O
cd
d)
CX CX
<M
bO bO bO bO
>H > -t
Eh Eh
-P 40
Sh
40 40 + o 40
cd cd cd cd
S-. Sh Sh Sh
(U 0
d
> d)
G G G G
■p
Sh o
G
O
a
p
0 3
a x»
G
Q
0) w
,<D CO
>1
Sh
OJ
-=r
5J
XJ
OJ
o
o
00 50
fa
W
CQ
«
=
J
J
•H *H
Sh
Sh
cd
>
cd
cd
p.
co
x
u
1
1
1
1
1
1
I
1
1
1
1
1
1
1
0) 0) 0)
40
cd
o
M
a
S3
O
H
CO
0 0
Sh
■P
w
4->
5-,
cd
+ + +
0 0 0
cx cx CX
cx cx CX
Q)
fa
fa
fa
o
Sh
0
XJ
CO CO co
cd cd cd
o o o
>»
XI
Z
H
0
bO bO rH
cd
0
00
Sh
cd
cx cx Q)
cd cd £
£« SU o
bO
H
0)
0
CO
CO CO cd
o o o
•H •H
XJ XJ u,
O
O
I
I
fa fa
fa fa
C
fra*
O'Q*c
ol ol
o o
00 O
CT* CTi
0
40
o
G
—'
X
X
X
X
X
X
X
S-,
0
X)
a
3
G
2
O
fa
X
X
X
X
X
X
X
su Sh
0
0
4 0 XS
0
a
Sh
CX G
Sh
0
2
40 O
G fa
•H
3
fa
O
fa
H
z
a
CO f
<«J f a
CQ fa
fa
o
o
fa
cq
I
fa
fa
fa
PQ
I
I
in fa
fa fa
o fa
W fa
I
I
O vo
o fa
o o
O
fa
ROM)
KERNEL
the
>»
r-H
in
G
O
bytes
O
M
CO
<d
CQ
E-h
O
<*;
PC
w
cu
o
00
W
Q
XJ
G
cd
o
M
CO
<
o
CQ
s-
O
CQ
CQ
tH
-_
Sh
o
:*
cd
cd
p.
CQ
>» O
£* G
O
O
M
cd
P
X
a>
W
O
M
>
8 P
0 3
B
G Q
0) W
o
M
CO
-a:
CQ
CO CD
W
O
<
Ph
tsi
Eh
X
W
Eh
z
w
w
p^
0
CO
Ct|
tX4
CO
0
h
3:
p
0 co
Sh 5D
O 53
co
<
m
o
M
>
•
•
•
•
0
0
0
0
O
O
O
Pt4
Ii4
1x4
Q
CT* [*4
&h C14
b (
i
t
.
0
0
^r
0
*7
0
0
W
^
0
0
0
0
Ph
s
w
s ss
us
0
0
m
us
0
0
-J
CQ
1
1
1
O
O
[ &C4
W CX4
CO CO
00 00
1 1
0 00
0 w
0 CO
00 00
CO
0
>-»
Eh
T— OJ CO
-J
CQ
«
*!
CO
53
<
P
X
w
2
>
a)
G
0
u
Sh
55
rH
-H
1
7
<
cx.
(X4
*“
a>
ra
cd
0
0
0
£4
0
cx
cx
m
cd
GQ
cd cd
0 0
Sh
0
CX
CX
3
Sh
0)
cx
CX
53
•a
a>
1—1 P 1—1
cd Sh cd
a 0 S
Sh >
O G O
G tH G
XJ
<D
-P
Sh
M
PC s
M 53
■a XJ
0 0
p
P
0 O
0 0
G G2
G G
O O
O O
CQ
fX4 P<H t»4
s
i
&
£
iC
2
1
&-a C
CO LO t-0
0
0
01
O O
O O
O O
^=r vo
P
cd
Sh
<D
G
0 a)
bO bO
-p
cd
£4
<D
G
0
bO
S4
0
p
0
cd
Sh
cd
Xi
£4
a>
p
0
cd
Sh
cd
Sh
0
p
0
cd
Sh
cd
ja
Sh Sh
0 0
Sh
<D
P
O
cd
£4
cd
xi X i
0 0 0 0
£=5
w
0
PC
cc
0
1
.G
O
P
(X
5*
Sh
Sh
0
P
G
■H
W ___
*-4
PQ
M
CO Sh
CO 0
w x>
O a
O 53
<S G
O
W
>
Eh <
O M
55 >
CQ
Sh
0
p
CQ
•H
bO
0
£4
CX
p
OJ CO
>»
*H
G
O
0
XJ
*H
£
GQ
•H
CQ
P
-H
X>
0
P
J»
OJ PQ
W
Sh 00
0 CO
Xi w
a 0
3 0
G <
Eh
O
53
«—i <—1
X i Xi
0 0
N N
IH M
CQ
-H
Xi
O
cd
0
—
0
p
>>
X3
2
<*J
PC
jG
O
cd
0
—'
£4
5>
0
•H
O
O
Q
W
CO
C3
53
CD
0 0
0 0
-=r
.0
P
CX
3
£4
Sh
0
P
G
tH
— w
H
>
2
*=$
PC
Q
W
CO
5>
Z
5D
K
CD
O
J
O
O
Q
W
co
5D
£3
CD
X
0
H
>
1
1
fX4 CX4 tX4
tLi
CO t- CQ
00 00 CO
i 1
0 0 0
0 0 0
0 = t 00
00 00 CO
1
(Z4
1X4
fe-i
CO
O
O
O
OO
are
O
■=r
O O
P P
>
G
•H
S4
O
P
cd
Sh
0
G
03
CQ
P
fH
a
0
Sh
O
P
cd
Sh
0
G
a)
bO
p
0
G
•H
1—1
1
I
T—
<$
M
>
OJ
<
H
>
1
1
s
PC
-3
O
O
I
C±4 (x« tX4 &H
CM Cr*
O O
O T — *— *— CO
cr* CT* cn cn cr*
l 1. 1 I l
0 O O 0 0
0 t—
CM CO
0 O 1— T—
cr* cr* CT* cr> cr*
h -t
I
that
a)
CQ
cd
O
U
©
G
•H
1—1
S4 S4 Sh £4
O O O O
Q-.
U-t
cd
a)
o
73
-3
2
O
■—1
X)
CX
p
>h
Q)
Sh
Sh
Q.
w
O
cd
Sh
cd
S,
cd
p
bO
O
Q)
O
^4
p
CQ
O
P
CX
3
cd
+
Sh
0
CX
CX
3
•o
<D
4->
+
l
1
l
cr* |X4 cr* Ct4
Exh tt4 [X4 [xh
LO LO E
'­ tcr* cr* er* cr*
1 l 1 1
0 < 0
0 (xi 0 {X|
-=J
- LO VO tcr* cr* cr* CT>
3
cd
Sh
O
<M
XJ
0
CQ
5*
(note
55
>»
x>
o
■=r
+
xxxxxxx
2
;
M
+
cd
0
cd
0
S4
cd
cd
0
Sh
cd
G
O
•H
CQ
G
cd
ix
X
0
G
O
-H
CO
G
cd
cx
X
0
E-*
5D
Ph
E-h
CD
O
■S
Eh
5D
Pl,
S
M
Eh
O
Ph
Eh
5D
O
\
Eh
5D
Ph
Z
M
OJ
US
►J
CQ
O
M
CO
US
J
PQ
O
M
1
1
1
[x, (x«
I
xh [
X4
CQ CX4
cr* cn
1 1
0 0
0 0
00 0
cr* a*
|X4
E
s
S
Sh
cd
G
0
•H
03
G
cd
CX
X
0
0
bO
XJ
•H
Sh
P
Sh
cd
O
2
O
«
10
US
0
0
CQ
CQ
1
O
O
O
<
ROM number
xxxxxxx
cd
a>
■—i
o
interpreter
ROM number
Sh
KERNEL
iH
XJ
0
P
BASIC
s
bO
Sh
0
£
O
rH
BASIC
bO
G
03
0
a
<1>
03
cd
O
KERNEL
O
CQ
E- *
CO
>-i
CO
o
0
DO
CQ CQ cd
O 0 0
*H •H
JG X 3 Sh
CX CX 0
cd cd z
(4 S4 0
bO b O rH
Sh
-
G
0)
<D
COOO-EOF5
E0F6-FFFF
oo
o
o
1
o
o
o
o
O
P
0
there
o
p
0)
245
m
•h
198
2
o
Ph
XJ
w
s
PS
w
«
i>>
X)
0
>> XJ
xj
rH <D
G CQ
0 3
O
M
CO
<U
CQ
p
P
O
G
CQ
0
p
P
3
CQ Xl
►»
xj
•rl
O
P
0
0
C
r
, XJ
OO
o
o
1
o
O
O
o
^
o
o
0
c
-H
Oh
M
OC
O
W
W
Q
o
cd
C O v o 4"
t~ OJ
Sh
CQ CQ CQ
•H *H *H
G G G
O O O
to
G
•H *H *H
•rH
W
G
cd
ft
X
CD
Sh
cd
H G
co cd
>h
CO CO
w
O «
S O
M Oh
Eh
<C Sh
PC O
W «m
CU
O 0)
i—I
>>
Xi
x)
a>
-p
ft
3
O
CM
P
cd
•rH
fc,
Sh
O
Sh
PQ
bO
cd
O
«M
0
O
cd
f t -H
O
>
W
G
Cd
ft
X
<D
>> o
Sh
O
a
0
G
p
Sh «3j
0
ft
0
o
cd
ft
CQ
P
X
(D
a
G Q
«l 2
P
W
PQ
OJ
C
r
,
C
r
,
on
o
CO
PQ
O
H
>
+
Sh
XJ
+
0
a
m
Sh
H
z
Sh
Sh
CD CD <D CD
f
t ft CX
ft ft
f t
f t
3
3
f t
3
cd
XJ
c G
•H *H
(D CD (D CD
CQ CQ CQ (Q
cd cd cd
o o o
Sh
O
O
p
p
p
0
3
Cd
0
XJ
3
G G
.. G
cd
ft
~
X
cd cd
ft ft
X X
<D Q) 0
CQ
0
P
>>
XI
Sh
Sh
Sh
Sh
Sh
Sh
O
O O O
p p p P
cd cd cd cd
Sh
222
G G
G G
PC PC PC
bO bO bO bO
«a
j■
=
*
!«
a
j
^
^
OO OO CO
0 0 0
0 0
Sh
O
Sh
*H
•H 0 XJ
Cr, CO Eh
Sh
Sh
0
Sh
0
Sh
0 0 0 0
.P
XJ
G XJ
P
Sh
ft
3
t,
Sh
O O O O
Cm Cm Cm <m
Sh Sh
Sh
Eh
u
Eh
,
r
,
C- C
i
x
jC
xh
cn m
OO oo
s
o oo
o C
x
3
o cn
1 CO co
•
•
•
1
O
o
•
=
3
O
C
r
,C
r
, CTiC
r,
C
r
,C
r
,Cr, C
r
,
r
,*
— t—
cn C
o O
1 | 1 TJ"
o o o <U
o o o C
r
,
o =r o '
—
o o x_
C
r
,
E
r
,
C
r
i
O
o
OJ
r~
o
o
o
o
T—
G
•H
Sh
P
P
P
O O O
cd cd cd
O
cd
Sh
Sh
Sh
cd cd cd
cd
Sh
uoou
xi xi xi xi
w
us
o o o
o o o
XI XJ XJ
CQ CQ CQ
1 1 1
r
,C
C
r
,C
r
,
r
,(
C
r
,C
r
.
t
.C
C
r
,p
r
,
on LO C|
o O O
o O O
o O O
OJ ■
=
!
•VO
§
o
PC
cc
o
1 1 1 1
r
,C
r
,C
Cc C
r
,
C
r
, Cc C
r
,C
r
,
r
,
cn C
'
-PQ C
co CO OO CO
o O O O
o O o O
o •=rOO O
CO OO oo 0O
Sh
0
x;
p
0 0
+
Sh
0
P
CQ
•H
bO
0
Sh
ft
•H
XI
O
O
H
>
P
ft
3
Sh
£h
G
W
XI
PQ
H
CO
CO
W
O
O
«aj
W w
Sh Sh
0 0
O
IH
>
2
a
!
W
J
o
cd
os
H
CO
CO
£h
3
O
i—I
O
o
x> w
Eh <
PS
3 0
G <
PS Q Q «
CD W W W
<xj H
J
o
O
O H M O
S5 >
2
>
Z
x— OJ
«
a
j<
a
j
H M
> >
1 i 1 1 I
C
r
,C
r
,C
r
, Cxh [
r
.
r
,
O O T— OJ C
- T— on
— t
O *
CT>(T> cr.cr. cr>
1 1
I 1
O o o o o
o T— X— OJ cn
— t
-1
—
o o X
cr.cr. cr.cr.cn
O CO CO CO
O
Z
O
CD CD
s s
CD CD
£h
O
Cm
XJ
0
CQ
3
p
o
G
X
X
X
X
X
X
X
cd
Sh
0 0
Sh
Sh
cd
XJ
Sh
O
CQ CQ
XJ
a a o
3
G
\
H
cd cd
O
*
— OJ CQ
o
O o
\
H
•H *H
>»
X)
G
•H *H
o
O
i—I
XI
G G
0 0
P P
CQ
O
O
H
X>
cd cd
t
— OJ cn
-3
<
G
O
•H
CQ CQ CQ
CQ O
c n CO CD
W UJ s
x
3
O cn C
«
3
j CU PC
Ph X O
N w CO
O
H
+
0
Sh
<D
£
O
H
Xi Xi X)
P
W
CD PC 0 CO
G
fc, CD
(D .** O S
O
cd cd cd
-P -P -p
o o o
bO
XJ Sh
f t CD
cd 5
Sh O
bO H
O O O
I—I I—I I—I
3
Sh
«aJ < <C
PC PC PC
XJ
ft
cd
0
£h
cd
(D
CQ
Cd
O
^o o^ o^
CQ
•rH
cd
' >
cd
CQ
2 2 2
CD
CQ
CQ 0Q cd
O O O
O
O
o
G cd
Cd rH
^
CQ CQ
G G
cd cd
ft ft
X X
CD (D
Sh
Sh
XJ X i
o
G
CD
CD
O
00
Xi
s*
S5
O
H
H
JX X
G G
Cd Cd
ft ft
X X
0 0
Eh
CD
(X,
Eh
C3
O
N
Eh
CD
Oh
S3
Eh
CD
O,
Eh
CD
O
X
Eh
CD
Oh
2:
X
2
PS
XJ
o
o
oj cn
W UJ
XJ XJ
PQ CQ
O O
H M
1 1 s I
cn C
r
, cn C
r
,
C
r
,C
r
,C
r
,C
r
,
LO LO E
'
­tcr.cr.en cn
1 1 1 1
o < o <C
r
,o C
r
,
o C
^r LO VO
cr.cr*cn cr*
1 1
C
r
,C
r
,
C
r
,C
r
,
PQ (
r
.
cn cn
1 1
o o
o o
CO o
cn cr*
0
G
o
•H
CQ
G
0
a
3
X
X
2
X
X
X
X
G X
o
Ph
cd
ft
X
Sh
Sh
0 0
0
P
0
feO
ft G
XJ
•H
Sh
P
Sh
0
Sh
XJ
a
3
Sh
0 2
P o
G OS
•H
XJ
PC
O
H
CO
<
CQ
LO
Ui
o
o
XI
CQ
XJ
r
l
CJ f
H £
CO PC
<2 w
CQ
1
1 1
LO C
r
,
C
r
,C
r
,
*
T|
o [
C
x
3C
r
,
1
1
o vO
o
o o
o w
s
C
r
,
C
r
,
CQ
i
O
o
o
<
J
J
Cx]
S
PC
Jxl
199
MATTERS ARISING.■■
Colin Mair informs me that there is a bug in Nick
Higham's program on p51 , March issue,
for POKing into REM
statements.
His program Looks for the value 143
in every
location from 1024 to the end of BASIC text and it is
possible to find this value in the locations used to hold
the link addresses and
line numbers.
POKing these could
cause program corruption, or even a crash when listing !
The solution lies in looking for the end of BASIC line
- indicated by a Location holding zero. When this is found,
the next four Locations,
which hold the
link address and
Line number, are skipped.
1
2
3
4
5
6
A = 42:REM A=124 FOR OLD ROM
M=PEEK(A)+256*PEEK(A+1):INPUT C
FOR 1=1024 TO M
IF PEEK(I)=0 THEN 1=1+5
IF PEEK(I)=143 THEN POKE 1+1,C
NEXT I:LIST
The cassette merge
(p92)
was,
as you may
have
realised,
for BASIC 2. For BASIC 4, the P0KE14,1 should be
P0KE16,1 and for the VIC-20,
P0KE19,1.
In addition,
for
other locations:
BASIC 1
611
525
527
3
2 & 4
175
158
623
vie-;
14/16
19
153
198
631
Input device # (CMD)
Keyboard character count
Keyboard buffer.
I/O off-normal flag
It has been pointed out that this is an excellent way
of loading a VIC with a program 'saved' on a PET/CBM.
— oOo—
200
SHOP WINDOW
The
computer-aided design package,
Path-Trace,
mentioned on p125,
comes from Ergon Design, 75,
Gilhams
Avenue, Banstead,
Surrey,
SM7 1QW. Tel: 01-394 0733. The
program requires a 'Supersoft'
high
resolution graphics
board (reviewed Nov '81 and listed at £ 149).
Many of you have given the odd sideways glance at
'Uncle
Clive's'
prices,
especially
the
100Kbyte
micro-floppy.
From late September
a 3" disk unit will be
marketed in the UK by BATS-NCL of Regents Park Road, London
(tel: 01-349 4511).
One-off price £ 65, extra disks cost
about £ 4.50.
The system,
called the mcd-1,
is being
configured into three different products by BMB Computers
of Woking. The first is for the VIC range using VIC's DOS,
the second is
an IEEE-488 unit for the larger Commodore
machines,
and the third is a CP/M version.
The drive is
made by Metrimpex,
a Hungarian company in Budapest. A unit
is also expected from Hitachi with a higher performance.
Looking
for
spare 65xx chips ?
Try
Datatext
(McLelland)
Ltd., Unit 3A,
Bankfield Industrial Estate,
Kitson Road, Leeds,
LS10 3YY. Tel: (0532) 455169. Typical
prices are R6502P £ 4.54, R6520P £ 2.64, R6522P £ 4.00 and
R6551P £ 5.63.
The 2MHz versions cost a little more.
UK
carriage free, first class letter post by return.
Supersoft have extended their range of software to
complement their hi-res graphics boards.
About ten new
utility packages are available on cassette or disk which
include hi-res
screen save, dump to printer (various),
function plotting.
MX-LIST and MX-DUMP can be used to
generate genuine 8 x 8 PET graphics characters (on a 7 x 6
matrix on the
4022 !).
Supersoft also offer the Epson
MX-80 F/T Type 2 for only £ 450 + VAT.
More details from
Supersoft,
First Floor, 10-14,
Canning Road, Wealdstone,
Harrow, Middlesex, HA3 7SJ. Tel: 01-861 1166.
201
VIC
users will no doubt have seen advertised
the
40-column capability with 32K RAM expansion provided by the
Colour Writer VIC Expansion at £ 220 + VAT.
Details from
Beelines (Bolton)
Ltd.,
FREEPOST,
Bolton,
BL3 6YZ. Tel:
(0204) 382741 .
Compsofts DMS has been around some while now, but the
latest release has its own internal mini-word processor.
Facilities are
limited to cover only those needed to
produce personalised letters which can the be addressed to
selected
clients.
Details from
Compsoft Ltd., Hallams
Court,
Shamley Green, Nr. Guildford, Surrey, GU4 8QZ. Tel:
(0483) 898545.
The Spriinter (yes, double-i) is an interface unit for
printers
which
incorporates a
standard converter,
a
spooler,
a protocol converter
and 32K buffer.
The unit
incorporates a 6502C processor (2.4MHz)
and can be used as
a
stand-alone
computer.
1/0
comprises two
serial
bi-directional ports, one parallel in and one out which may
optionally be made Centronics-compatible and two ports, one
in, one out, IEEE-488 which with optional software, may act
as a Iimited-function IEEE-488 bus
controller.
Further
information from Mutek,
Quarry Hill, Box, Wilts. Tel: Bath
(0225) 743289.
I have always fancied a no-break power supply for my
PET
to
avoid those disasters on
the mains during
thunderstorms.
Backpack
is a relatively small unit that
will keep PET (and disk drive if so fitted) going for 15
minutes after power failure. Backpack cost £ 140 + VAT from
Wego Computers Ltd., 22a,
High Street,
Caterham, Surrey,
CR3 5UA. Tel: 49235.
Now to plotting.
MICR0PL0T is claimed to be the first
plotter designed specifically for the PET.
Taking A4 size
paper,
it is driven by the IEEE-488 interface.
Plotter,
digitiser,
firmware and accessories can all be supplied by
Business
Electronics,
Rownhams
House,
Rownhams,
Southampton, S01 8AH. Tel: (0703) 738248.
202
The MW-1000 Mini-Winchester is a compact desk-top unit
giving up to 12Mbyte of hard disk storage under CP/M or PET
DOS, or both.
The 3Mbyte version costs £ 2538.
Further
details from Small Systems Engineering Ltd., 2-4, Canfield
Place, London, NW6 3BT. Tel: 01-328 7145.
Numerous accessories for the VIC-20 are available from
Stack.
VICKIT is a 1Toolkit'-type EPROM adding 9 commands
to BASIC for program development and supporting a LIST
command with space-bar pause.
Price £ 25 + VAT.
VICKIT II
is a 4K EPROM incorporating the above,
but in addition has
twelve statements to
greatly
simplify programming to
produce hi-res VIC graphics.
Both VICKITs fit into the
Stack Storeboard,
or ROM Switchboard.
Also available is a
light-pen and a low-cost RS232 interface (£ 22.99 + VAT).
Further goodies and information are available from Stack
Computer
Services Ltd.,
290-298,
Derby Road,
Bootle,
Liverpool, L20 8LN. Tel: 051-933 5511. Contact Neil Cornes.
Signal processing is accommodated by the Model 4096
package which features the following:
Firmware - 4K EPROM
giving FFT
(1024 point)
of input or computer generated
signals with automatic scaling for plotting.
Correlation,
auto- or cross- as required; amplitude statistics, spectral
density, double-density graphics and high speed histogram
plotting.
Hardware - wide ranging programmable sampling
clock, 4K RAM per channel, 8-bit A-D and D-A per channel
with -5 to +5 volt range.
The unit can function as a
spectrum analyser,
digital
correlator
or
storage
oscilloscope. Price £ 399 + VAT. Further details from Micro
Enterprises, 88 Park Hill, London SW4 9PB. Tel 01-622 6816.
Designers
of
add-ons may be interested
in the
components and accessories service from WASEC. The facility
provides a broad range of IEEE-488 and IEC-625 related
semiconductors,
connectors and literature. Full details in
a leaflet from WASEC, tel: 01-647 3199.
203
Another data acquisition system for the IEEE-488 bus
comes from Biodata and is known as Microlink.
A wide range
of
plug-in modules
is
available
and
prices
are
competitive.
Contact Biodata Ltd.,
6, Lower Ormond St.,
Manchester M1 5QF for details - tel: 061-236 1283.
Lamar Instruments produce two products of interest,
a
ROM simulator and a single board computer called Superkim.
The
latter
is
an
upmarket KIM-1/SYM-1/AIM-65 with
Multi-tasking and is KIM-1 compatible in many ways. Details
from Lamar Instruments, 2107, Artesia Blvd, Redondo Beach,
California 90278.
R. D.G.
— oOo—
MICROCHESS ON ICE
By Walter Green
After many months of investigation,
I now have a copy
of Microchess which, loaded and run on an old-ROM PET, will
behave like any other version but with extra facilities. At
any stage of the game,
typing
(minus) exits to BASIC.
From BASIC
a SYS call will enter the monitor which forms
part of the revised program. M 1900 1 9B0 will display zero
page as it was when
was typed. G 17F0 returns to BASIC.
Type
1P0KE6189,51:R U N 1 and the board appears with
white's King Pawn on K4, but black will not reply. Make as
many moves as you like, black and white, copy a game from a
book; make any piece appear on any square, or vanish ! Play
a game with a pal - if you wish to adjourn the game,
place
a blank cassette in your deck and type SYS2062 and make a
copy.
Reload the copy and RUN.
The board appears with the
pieces
in
the adjourned position.
You do not wish to
continue ?
Type 'R' and they return to
the initial state
for another game of Microchess.
If any Microchess owners are interested
in these
changes,
they may contact me at 151, The Hatherley,
Basildon, Essex, SS14 2QH.
— oOo—
204
DISK TO TAPE SAVE
By Brian Grainger
This is the first in what I hope will become a series
of articles. The aim is to introduce members to some of the
software that is available either in the regional groups or
through
the national library.
Sometimes the articles will
review software that is available and sometimes,
like this
one, complete programs will be presented.
This program started
life in the Watford regional
group before coming into the hands of the North Herts
Group. Its purpose is to take a copy of all programs from a
disk and put them onto a cassette.
As most ICPUG software
now comes on disk this could be a useful way for regional
group organisers of getting cassette copies of programs to
copy to those
ICPUG members without disks.
This first
program uses the standard CBM 'Save1 ROM routines so can be
quite slow for a full disk. It is written in BASIC4 but REM
statements indicate changes required for BASIC2.
10
20
30
40
45
46
47
48
50
60
65
70
75
80
85
90
95
96
100
REM IDEA & ORIGINAL PROGRAM
REM
REM BY GEOFF PYKE & MARTIN SIMPSON
REM
REM EXTENSIVELY MODIFIED FOR RABBIT
REM
REM BY PHIL M0RTIB0Y & B. GRAINGER
REM
REM MAY 1982
REM
REM *****************************
REM *PLEASE COPY BUT DO NOT SELL*
REM *****************************
REM
REM WRITTEN FOR USE ON A BASIC 4
REM PET WITH DOS 1 OR DOS 2A DISK
:
DIMD$(75),A (255)
PRINT"<cIr><rvs>*************************************
***";
110 PRINT"*********DISK TO TAPE BACK-UP **********";
205
120
130
140
150
155
160
170
180
190
200
210
23 5
PRINT"****************************************"
PRINT"<dn>THIS PROGRAM WILL COPY ALL THE PROGRAMS "
PRINT"
FROM ANY DOS 1 OR DOS 2A DISK "
PRINT"<dn>AND SAVE THEM ONTO A TAPE CASSETTE"
PRINT"
IN RABBIT FORMAT."
PRINT"<dn>
***********************"
PRINT"
**<rvs>PLEASE ENTER CHOICECoff>**"
PRINT"
***********************"
PRINT"<dn>
1: COPY ALL PROGRAMS TO TAPE
PRINT"<dn>
2: SELECTIVE COPY OF PROGRAMS
GETC$:IFC$<>"1"ANDC$<>"2"G0T0210
PR INT"<dn><rv s>**************************************
**";
240 PRINT"*********PLACE DISK IN DRIVE 0**********";
250 G0SUB2200
260 OPENl5,8,15,"l0":0PEN4,8,4,,,#":Z$=CHR$(0)
265 G0SUB2300
270 PRINT"<cL r>"£rvs>*************************************
***";
280 PRINT"**NAME:"DN$"
ID="ID$" DOS "D0$"**";
290 PRINT"****************************************"
300 T=18:S = 1 :D=0:G0SUB2500
305 IFC$="2"THENG0SUB2600
310 PRINT"<c L r>":P0KE212,1:SYS6 36 28:REM TURN CASSETTE ON
(BAS2 SYS63559)
320 P0KE249,52:P0KE59411,61:REM TURN CASSETTE MOTOR OFF
330 PRINT"<cIr>":X=32768:P0KE59468,14:1=0
340 R E AD A:IFA>=0THEN1=1+1:G0T0340
350 G0SUB2700
360 REM SET UP M/C ON SCREEN AND EXECUTE
470 RESTORE:FORA=33768-IT033767:READB:P0KEA,B:NEXT:POKE
33767,256-1
480 P0KE209,PEEK(32768)
490 P0KE218,1
500 P0KE219,128
510 SYS33753
1990 :
1991 REM ****************************
1992 REM * CHECK DISK ERROR CHANNEL *
1993 REM ****************************
1994 :
2000 INPUT#15,EN,ED$,T1 ,S1
206
2010 IFEN>19THENPRINT"<c I r><rvs>DISK ERR0R<dn>":PRINTED$:
CL0SE4:C L0SE2:CL0SE15:END
2020 RETURN
2090 :
2091 REM *************************
2092 REM * LOAD DISK BUFFER WITH *
2093 REM * RQD SECTOR DATA BLOCK *
2094 REM *************************
2095 :
2100 PRINT#15 ,"U1"4;0;T;S:G0SUB2000:RETURN
2190 :
2191 REM *********************
2192 REM * WAIT FOR 'RETURN' *
2193 REM *********************
2194 :
2200 PRINT"<rvs>****PRESS RETURN WHEN YOU ARE READY*****";
2210 PRINT"****************************************"
2220 GETAS:IFA$<>CHR$(13)G0T02220
2230 RETURN
2290 :
2291 REM *************************************
2292 REM * READ DISK NAME & ID & DOS VERSION *
2293 REM *************************************
2294 :
2300 T=18:S = 0 :G0SUB21 00:G0SUB2400
2310 DN$="":F0RI=1T016:DN$=DN$+CHR$(A(I+143)):NEXTI
2320 ID$=CHR$(A(162))+CHR$(A(163))
2330 D0$=CHR$(A(165))+CHR$(A(166)):RETURN
2390 :
2391 REM *****************************
2392 REM * GET DATA FROM DISK BUFFER *
2393 REM * AND PLACE INTO ARRAY A( ) *
2394 REM *****************************
2395 :
2400 F0RB=0T0255:GET#4,A$:G0SUB2000
2410 A$=A$+Z$:A(B)=ASC(A$):N E X T B :RETURN
2490 :
2491 REM ***********************
2492 REM * READ DISK DIRECTORY *
2493 REM ***********************
2494 :
2500 G0SUB2100:G0SUB2400:T=A(0):S=A (1):REM NEXT TRACK/
SECTOR
207
2520 F0RB=2T0226STEP32
2535 IFA(B)<>130G0T02560
2550 D = D+ 1:D $ (D)="":FOR 1=1T016:D$(D)=D$(D)+CHR$(A(B+I+2)):
I
FA(B+1+3)=160THEN 1=16
2555 NEXTI
2560 N E XT B:I F S O 2 5 5 G 0 T 0 2 5 0 0
2570 RETURN
2590 :
2591 REM ***************************
2592 REM * SELECT PROGRAMS TO COPY *
2593 REM ***************************
2594 :
2600 PRINT"<cIr>":F0RA=1 TOD
2610 PRINTD$(A);"
< COPY?
(Y/N)
2620 GETA$:IFA$="N"THEND$(A)= " " :G0T02630
2625 IFA$<>"Y"G0T02620
2630 PRINTA$:PRINT
2640 NEXTA:RETURN
2690 :
2691 REM ******************************************
2692 REM * POKE NAME LENGTH, NAME, PROGRAM START *
2693 REM *
TO SCREEN FOR EACH PROGRAM TO COPY
*
2694 REM ******************************************
2695 :
2700 F0RA=1TOD
2710 IFD$(A)=""THEN2760
2715 L=LEN(D$(A)):POKEX,L
2720 F0RB=1TOL:POKEX+B,ASC(MID$(D$(A),B)):NEXT
2725 X=X+B:0PEN2,8,2,D$(A)+",P":G0SUB2000
2730 GET#2,A$:LS=ASC(A$+Z$)
2735 GET#2,A$:HS=ASC(A$+Z$)
2740 IFLS=1ANDHS=4THENLS=0: REM NEEDED FOR RABBIT
2745 P0KEX,LS:X=X+1:POKEX,HS:X=X+1
2750 CL0SE2
2755 IFX>=33768- I-20THENA=D
2760 N E X T A :POKEX,0
2770 RETURN
19980 :
19981 REM ***********************
19982 REM *
PET SPECIFIC M/C *
19983 REM ***********************
208
19990 :
19991 REM *************************************************
**************
19992 REM * FOR USE WITH STANDARD PET 'SAVE' USING CASSETTE
NUMBER ONE *
19993 REM *************************************************
**************
19994
20000
20010
20020
20030
20040
20050
20060
20070
20080
20090
20100
:
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
LDA
STA
LDA
STA
LDY
LDA
STA
INY
LDA
STA
JSR
#$01
$D4
29990
29991
29992
29993
29994
30000
30010
30020
30030
30040
30050
30060
30070
30080
30090
30100
30110
30120
30130
:
REM **************
REM * COMMON M/C *
REM **************
:
DATA 160,0
REM
DATA 177,218
REM
DATA 73,128
REM
DATA 1 45 ,21 8
REM
DATA 164,209
REM
DATA 152
REM
DATA 170
REM
DATA 200
REM
DATA 200
REM
DATA 177,218
REM
DATA 133,209
REM
DATA 201 ,0
REM
DATA 208,3
REM
DATA 76,22,253
REM
LDY
LDA
EOR
STA
LDY
TYA
TAX
INY
INY
LDA
STA
CMP
BNE
JMP
#$00
169,1
133,212
169,0
133,150
164,209
177,21 8
133,251
200
177,218
133,252
32,227,246
301 40 DATA 24
REM CLC
(START)
#$00
$96
$D1
($DA),Y
$FB
($DA),Y
$FC
$F6E3
(BAS2 DATA 32,164,
246 JSR $F6A4)
($DA),Y
#$80
($DA),Y
$D1
($DA),Y
$D1
#$00
LAB2
$FD16
(BAS2 DATA 76,209,
252 JMP $FCD1)
(LAB2)
209
30150
30160
30170
30180
301 90
30200
30210
30220
30230
30240
30250
30260
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
138
105,3
101,218
133,21 8
144,2
230,219
169,0
133,150
133,157
169,8
133,212
32,93,243
30270 DATA 208,0
30280 DATA -1
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
TXA
ADC
ADC
STA
BCC
INC
LDA
STA
STA
LDA
STA
JSR
#$03
$D A
$D A
LAB3
$DB
#$00
$96
$9D
#$08
$D4
$F35D
(LAB3)
(BAS2 DATA 32,41,2
43
JSR $F329)
REM BNE START
REM END OF DATA
As a means of speeding up the program a version was created
that
used the
'Rabbit' save routines.
It will
need a
'Rabbit' chip (or relocated 'Rabbit' machine code) to work.
The routine below should replace lines 19980-20100
in the
original and then a whole disk can be saved in about 17
minutes i I used relocated 'Rabbit' code in the routine
below but instructions are given on how to change it for
the various chip versions.
Note it does NOT work with the
original
RAM
'Rabbit' that used the first cassette buffer
for storage.
Apart from the speed this type of program is
extremely useful for making a cassette backup of disks so
that when the day comes to have your disk away for repairs,
or your disk is inadvertently erased,
you may get another
copy of your programs easily.
In both versions of the program it is up to the user
to ensure the disk does not contain programs that are too
long for the available RAM space.
Next Newsletter
I hope to
the 'SAVE' in 'Arrow' format.
provide the routine to do
210
19981
19982
19983
19990
19991
REM
REM
REM
:
REM
***********************
* RABBIT SPECIFIC M/C *
***********************
*************************************************
******************
19992 REM *
FOR USE WITH 'RABBIT' USING 2ND CASSETTE BUFF
ER FOR STORAGE
*
19993 REM *************************************************
******************
19994 REM * HUNT YOUR 'RABBIT' FOR THE BYTES C9 53. DISASSE
MBLE RABBIT FROM *
19995
REM *
THE 2NDVALUE AND YOU WILL SEE CMP#$53, BNE
$03, JMP $ABCD.
*
19996
REM *
USE JSR $ABCD IN LINE 20220
*
19997 REM *************************************************
******************
169,1
141,93,3
169,5
141,99,3
164,209
169,0
153,76,3
136
177,218
153,76,3
152
208,247
164,209
177,218
141,95,3
200
177,218
141,96,3
165,201
141,97,3
165,202
141,98,3
32,148,121
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
LDA
STA
LDA
STA
LDY
LDA
STA
DEY
LDA
STA
TYA
BNE
LDY
LDA
STA
INY
LDA
STA
LDA
STA
LDA
STA
JSR
#$01
$03 5 D
#$05
$0363
$D1
#$00
$034C, Y
(START)
(LAB1)
>V
:
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
c
o
19998
20000
20010
20020
20030
20040
20050
20060
20070
20080
20090
20100
20110
20120
20130
20140
20150
20160
20170
20180
20190
20200
20210
20220
$034C, Y
LAB1
$D1
($DA),Y
$03 5 F
($DA),Y
$0360
$C9
$0361
$CA
$03 6 2
$7994
211
COMMODORE COLUMN
The Commodore Computer Show this year was spread out
over a much greater floor space this year,
so much so that
the attendance Looked poor since there was ample room to
move. However, the show was very successful with attendance
in excess of 8,000 over the three days.
The show had its
moments,
especially
when one software dealer found that
someone else was apparently selling his wares ! There were
over 150 exhibits,
displaying over 500 innovations. VIC-20
sales were announced as over 40,000 since December.
Talking to a member the other day, it appears now that
Commodore admit to a bug in DOS2.5 (8050)
where if one
tries to copy all files on a disk to another,
it hangs up
around the 8th file.
This has been cured by the upgrade,
but no fix for 2.5 users has been proffered.
Commodore's new 16-bit machine, the DX256, is reported
as being priced from $2,995 in the US.
Dealers having difficulty
recruiting
sales
and
technical staff are being aided by Commodore in a £ 30,000
nationwide recruitment
project to find up to 60 more
salesmen.
Dealers are also sceptical about the appointment
of Mills Associates,
well known for their ICL maintenance
service,
as
the
authorised nationwide maintenance
contractor for PET systems.
The service
is designed for
users with more than one machine on site,
who do not
require the 24-hour response of a full service contract.
R.D.G.
— oOo—
ODD BIT
In nature,
nothing is ever
right.
Therefore,
everything is going right.__ something is wrong.
— oOo—
if
212
4032/8032 STOP KEY DISABLE
The usual way of disabling the STOP key whilst keeping
the TI/TI$ 'jiffy1 clock running is by shifting the IRQ
vector to a
routine in RAM that updates the clock
but
resets the zero-page key image before joining the interrupt
sequence.
This is fine for machines with 1/60th second
interrupts,
i.e. BASICs 1 and 2, but unfortunately BASIC 4
8032s and 12" (Fat-40)
4032s use a 1/501h second interrupt
with a software patch to speed up the clock which the above
routine by-passes with the result that the clock runs at
only 5/6ths of normal speed - highly embarassing if your
program includes a large digital time display !
As far as I know the 'speed up' patch is not listed in
any BASIC 4 ROM tables, but since for the 4032 the relevent
counter is at S03ED I was able to locate it by searching
ROM for the consecutive bytes ED 03 and found it at
$E42E-$E441. I do not have an 8032 so have not been able to
check the corresponding location CTry $E431-$E441 - EdD.
Just pointing the IRQ vector at the patch doesn't work
as it exits directly
to $E458 so the STOP key disable
cannot be inserted. However, by reconstructing the patch in
RAM, pointing the IRQ vector at it and following it with
the usual
'stop key disable'
routine,
the following
solution results:
4032
JSR
INC
LDA
CMP
BNE
LDA
STA
BEQ
LDA
STA
JMP
$FFEA CLK1
$03 ED
$03 ED
#6
CLK2
#0
$03 ED
CLK2
#$FF CLK2
$9B
$E458
8032
JSR
INC
LDA
CMP
BNE
LDA
STA
BEQ
LDA
STA
JMP
$FFEA
$F8
$F8
#6
CLK2
tto
;update clock, test stop key
; increment counter
;6th interrupt ?
; no - cont stop key disable
;yes, so
; reset counter and
;update clock an extra time
$F8
CLK2
#$FF
;disable stop key
$9B
$E458
213
A hex dump and BASIC loader (using strings,
not DATA
statements to avoid interfering with DATA in the main
program)
for the 4032 are presented and include the usual
disable (SYS900)
and enable (SYS938)
routines.
They are
located at $0384 - $03B4
in the second cassette buffer
since $033A - $03 80 is now used by DOS,
but obviously can
be relocated elsewhere.
10 REM ** STOP KEY DISABLE **
11 REM
W.LYONS 7.4.1982
12 :
13
14
15
16
17
18
A$="120169143133169003133145088096"
A$=A$+"032234255238237003173237003201 006208007"
A$=A$+"169000141 237003240236169255133155076088228"
A$=A$+"120169085133144169228133145088096"
FOR I=0T048:P0KEI+900,VAL(MID$(A$,3*1,3)):NEXT
SYS900:REM DISABLE STOP KEY (SYS938 ENABLE)
0384
03 8C
0394
03 9C
03 A4
03 AC
03 B4
78
91
03
A9
FF
55
60
A9
58
AD
00
85
85
00
8F
60
ED
8D
9B
90
00
------ I
85
20
03
ED
4C
A9
00
90
EA
C9
03
58
E4
00
A9
FF
06
F0
E4
85
00
03
EE
DO
EC
78
91
00
85
ED
07
A9
A9
58
00
oOo-__
MEMBERS PRIVATE SALES & WANTS
Two chips for
POWER - both for
with manuals.
£
041-639 6626 after
sale - rock bottom offer ! COMMAND-O and
8032, socket
UD12 ($9000)
and complete
35.00 each.Phone Jim
MacBrayne
on
6pm.
— oOo—
214
LINE 350800 ???
By M i k e Todd
When Jim Butterfield (cries
of
"who's he?" from
newcommers to the Commodore scene) arrived in the UK on a
recent trip he kept muttering something about line number
350800. Try using this line number and see what you get. The
results may not mean much to you, but it does demonstrate a
bug in the BASIC interpreter.
It works equally on all PETs and VICs; even the APPLE
(ugh !) has the problem but with
a different line number
(432640) If you haven't tried it
by now I ’
ll tell you what
happens. Both
PETs andthe APPLE crash to the monitor
although sometimes the whole machine hangs. On the VIC, the
effect is the same as using the RESTORE key.
Why it happens is actually fairly simple and due to a
bug I ’
ve had marked on my BASIC 2 disassembly for over 18
months, I ’
ve just never investigated the consquences.
In simple terms, the interpreter checks that the line
number is less than 64000 and should enter the SYNTAX ERROR
routine if not. Unfortunately it does this via a routine in
which line numbers in the range 350720-353279 (432640-435199
on the APPLE) will force the interpreter into the middle of
the ON..G0T0/G0SUB routine with the effect that memory gets
corrupted and the processor crashes.
If you understand machine code,
(based on BASIC 2, but the coding
BASICs - only the addresses differ).
here’
s the explanation
is identical on other
At $C883 the line number is checked for an intermediate
value greater than or equal to $1900 (6400 in decimal). If
the loop were to continue this would become an illegal line
number when multiplied by 10. The ERROR branch to $C7F0 is
done via $C85B which branches if the accumulator is not $89.
This is actually part of the ON..G0T0/G0SUB routine where,
having already confirmed that ON., is not followed by GOTO it
goes on to confirm that it is followed by a GOSUB token ($89)
- if not it generates a SYNTAX ERROR.
215
If the integer accumulated so far is in the range $8900$89FF the accumulator will be $89 and the branch is not
taken, SYNTAX ERROR is not printed and the O N ..G0T0/G0SUB
routine continues in the middle. This results in the stack
being corrupted (there is a PLA which corrupts the RTS
address) and the machine will eventually crash.
Line numbers of the form 35072x to 35327x result in an
intermediate value of $8900-$89FF and thus a line number in
the range 350720-353279 will cause the crash. On the APPLE
the range is $A900-$A9FF (since the APPLE'S GOSUB token is
$A9) and the resulting line number range is 432640-435199.
The coding is responsible is as follows:
$C7F0
JMP $CE03
$C853
$C85B
$C85D
;ON..GOTO/GOSUB ROUTINE
CMP #$89
BNE $C7F0
•
•
$C863
$C864
;SYNTAX ERROR
PLA
JMP $C702
;check for GOSUB token
;if not
;rest of O N ..G0T0/G0SUB
$C873
;READ LINE NUMBER ROUTINE
;clear $11/12
$C879
;RTS if current character not
$C87F
LDA $12
;get high byte of integer so
$C883
$C885
CMP #$19
BCS $C85B
$C8AA
JMP $C879
;is integer so far >= $1900 ?
;if it is
jmultiply by 10
;add in current digit
;get next character
;and handle it
— oOo—
216
REVIEW
The PET Index
£ 12.50
Gower Publishing Co. Ltd.,
Gower House, Croft Rd.,
Aldershot, Hants.
If you are looking for something interesting to read,
then forget it. But then a telephone directory doesn't make
good reading (the plot
is poor and
there
are too many
characters).
Over the years and from a limited set of
magazines I have made notes of where to find certain items
that may be of future interest.
My list is limited to the
articles that I have,
and to whether at the time I thought
the item worth noting.
In retrospect it's a mess, since my
interests and my computer equipment have changed in this
time and the list never seems to contain references to the
current requirement,
but PET Index to the rescue.
From a
wide
range of magazines,
mostly UK, the author has
systematically recorded each
relevent item
in a format
which initially looks a little odd, until one realises that
the data is also available on disk.
The format is designed
to enable fast retrieval by computer, based on the user's
search criteria.
Since the PET has not caught on in the US to the
extent that it has in Europe, the coverage in US & Canadian
magazines
is somewhat limited.
Mike has wisely omitted
references to their user group magazines,
since these are
somewhat difficult to obtain in the UK, and has restricted
the reference material to Byte,
Compute and
Kilobaud
Computing.
I regard the omission of
'6502/6809 Micro' as
serious for over the years this magazine has contained some
original material on subjects not
covered in
any other
source.
One virtue of the Index is that subsequent references
and corrections to that reference are also included,
so
that one does not have to suffer any inaccuracies that were
later corrected on the original text.
For completeness
I would have
liked to
have seen
included a list of PET-related books and an indication of
their coverage.
Never-the-less for the information seeker
this is a worthy addition to one's resources.
Don't forget
to get the disk o»f the book and let the computer do your
searching, it will find so much more.
R.D.G
— oOo—
CLEARSONS LTD.
Cash & Carry Computer
and
Word Processing Supplies
All ty p e s of c o m p u te r s ta tio n e ry
L isting p ap er E x-stock
Free q u o ta tio n fo r y o u r le tte rh e a d s, invoices, sta te m e n ts e tc.
A ppointed dealer for
COMMODORE
micro com puters
JUST LIFT THE PHONE
Farnborough, Hants
518022 & 518717
30 Camp Road, Farnborough, Hants.
Printed and distributed by Richardson Printing Ltd., Unit 23, Colville Road Works,
Colville Road, Oulton Broad, Lowestoft, Suffolk NR33 9QS, Telephone: (0502) 67029