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