Skip to main content

Hardcore Volume 5 No. 4 1985 08 BASUG GB

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

Showing the first 100000 of 152699 characters.

mp.ls