Skip to main content

Hardcore Volume 1 No. 3 1981 05 BASUG GB

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

Showing the first 100000 of 172490 characters.

mp.ls