Skip to main content

Contact Issue No 3 1978 09 Apple Computers US

  • PublicationApple Periodicals
  • Date1978-09-01
  • Pages8
  • SourceContact_Issue_No_3_1978-09_Apple_Computers_US.pdf
← Magazines Contact Issue No 3 1978 09 Apple Computers US
/ 8
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
contact 3/the user group newsletter for sept. 1978 { catalog of user contributed (ware, and express our thanks to _ all those both inside and outside of Apple Computer whose efforts made it possible. The purpose of the contributed section of the software bank is to allow APPLE users to share pro- grams among themselves easily and at very low cost. By setting up a system to make this possible, we at APPLE hope to bring about a cross- fertilization of the user community, with better programs and applica- tions ideas as the result. Here is a brief description of the program. More details will be found in the enclosed catalog. As APPLE receives contributed programs, they are screened. The necessary documentation is assem- bled, and written catalog descrip- tions are produced for each program accepted. The author is then sent a $25 APPLE merchandise certificate. Periodically, the available pro- grams will be assembled onto diskettes, bulk duplicated, and supplied to APPLE dealers at a modest cost. The dealers will have unlimited reproduction rights to the programs on each diskette. As each diskette is released, APPLE will distribute a catalog of its con- tents to you along with CONTACT, When you see something you like, just call or visit your local dealer for a copy. The library is a resource. In it you will find some programs you can use as is, some you can improve upon, and some that may not interest you at all. That’s as it should be. Use what you can, send in your improvements, and let’s work together to build a super library! Oh, about the Bard on the cover. His image is one of many graphics demonstrations available on the first set of Software Bank diskettes. It was produced with a modified facsimile machine that digitized the original artwork, and a graphic processing program ona PDP-11/03 that reduced the image to an 8K byte database. It can now be displayed by the Apple in the Hi-Res Graphics mode. @oppie computer inc. ...and the beat goes on With this issue of CONTACT, we’re pleased to add five more groups to the rapidly growing list of APPLE user groups: CALIFORNIA — APPLE CORE Scott Kamins Box 4816 San Francisco, CA 94101 OREGON — STEMS FROM APPLE Ken Hoggatt 9195 S.W. El Rose Court Tigard, OR 97223 (503) 639-5505 (home) (503) 644-0161, x6136 (work) TEXAS — APPLE SEED The Computer Shop 6812 San Pedro San Antonio, TX 78216 Bill Hyde (512) 828-0553 (No name given for this group) c/o Computer Solutions Suite 124A, 9200 Broadway San Antonio, TX 78217 Philip W. Jackson (512) 828-1455 (800) 292-7652 (toll free) ARKANSAS — Interested in joining or forming an APPLE user group? Contact C. Johnson, c/o dataCope, 5706A. W. 12th St-, Little Rock, AR 72204. (501) 666-8588. If you’re interested in forming or joining an APPLE user group in your area, call or visit your local APPLE dealer; he’ll be glad to help. And if you know of an APPLE group that’s not yet been listed in this newsletter (see CONTACT No. 1 and No. 2 for the listings of the groups that we know about), write us here at APPLE. Direct your note to Phil Roybal, marketing manager, | LOOKING AHEAD --- Catalogs, Catalogs With this issue of CONTACT we've included an APPLE catalog and a price list. If they’ve been swiped by the time you read this, or if you'd like another set “for a friend,” just drop us a line — we'll be glad to send you the literature that you request. Note, too, that this mailing includes the first catalog of User Contributed Software, with instruc- tions on how to get it! EDITORIAL ooo OM USEF QrOUPs. by Jim Hoyt (Silicon Apple Programming Society) The name says it quite explic- itly. USER GROUP: individuals drawn together by a common interest in getting maximum benefit from their computer investment. Member benefits are manyfold. For the newcomer, programming techniques are explained, the inner workings of the computer made more clear. The answers to many beginner’s questions are found right here. More experienced members can get help or help others with soft- ware and hardware design. (Some of the things being done would amaze you: APPLE controlled cassette I/O and lower-case displays to name only two!) All members benefit from the group’s library. There is probably no better place to get low cost soft- ware or that back issue of the mag- azine you need. And many members enjoy newsletters published by their group which supplement our own with hints, local news, and application ideas. The growth of the personal computer industry depends on you, the USER. Join a group. If there is no local group, consider starting, one. A group ties it all together! APPLESOFT II and DOS .. squashing a bug Tf (in the DOS) you try to load a program that had been saved under RAM APPLESOFT II, but you are now using the ROM card version, your program will not run correctly. To get around this problem, load your program and then type CALL 54514 and your program will be correct. Similarly, a program that was saved onto diskette from the ROM card version and later loaded under RAM APPLESOFT II will also cause problems. Simply type CALL 3314 and your program will be correct. You can now save it onto tape. The earliest production DOS had a problem: when in APPLE- SOFT II, any Read or Write state- ments with line numbers of 256 or higher would be ignored. To solve this problem on any disks you may INIT in the future, bring up the DOS, remove the Write Protect sticker from your system’s master diskette, and then type: >PR#n (boot your system) >BLOAD RAWDOS >(hit Reset) D6:4C DS 3F 25DC:2E 3FDS5:E8 FO 1 60 4C DD 25 *3D0G >BSAVE RAWDOS, A$1B00, L$2500 Any new masters created from this original master diskette will now work properly. Two corrections to CONTACT 2, June 778 There is one correction to be made in each of two program list- ings in the HOW TO section of the last issue of CONTACT. — The CONVERT program on Page 6: statement 251 should read 251 IF T<>0 THEN NEXT B:B=B+l: IF B<E THEN 40 — The HOW TO SET LOMEM WITHOUT HARDLY TRYING program on page 7: we should have tried harder. We now hasten to point out that, in statement 40, B cannot be a variable, since setting the new LOMEM will destroy the variables (as we ourselves said, in the paragraph just preceding the listing). The concept works, but make sure that you POKE in numbers in that line, not variables. contact 3/the user group newsletter for sept. 1978 @opple computer inc. Cockpit errors and DOS A high percentage — 75 per cent, to be precise — of disk errors found so far are due to users trying to run APPLESOFT II by typing “RUN APPLESOFT.” This seems reasonable, but APPLE II doesn’t see it quite that way. As a result (among other things) you cannot reload programs saved on disk. To get things to come out right —all pointers where they should be, etc. —, from Integer BASIC simply type FP (Carriage Return) and you'll bring in APPLESOFT IT, pointers and all. To get back to Integer BASIC simply type INT. About that Communications Card manual... We’ve put together some addi- tional information that will be needed by many of you using our Communications Card. Included are a routine for use with low-speed printers, information on setting the card’s status register, information on setting up a 1200-baud data rate, and a number of other inter- esting tidbits, as well. We will be including this adden- dum to the card manual with all future card shipments, and we’ll also be distributing it to all our dealers. So if you already have an APPLE Communications Card, just call your APPLE dealer to get your copy of the additional card info — itll be available about the time that you read this. BITS AND PIECES APPLE software bank contributors .» please take note Document, document, docu- ment. It would be difficult for you to give us too much information about a program that you send us — we need to know as much (and sometimes more) about your pro- gram contribution as you can tell us. And never assume that potential users of your program are as clever as you; instead, assume that they know nothing — not even when to hit RETURN! Remember: The care you take in explaining your program is the only guarantee that it will be usable by anyone else. SAVE, then SAVE again. SAVE your program twice, one recording after the other, on the same cassette. By doing this you give yourself, and us, a safety factor in that if our computer cannot read the first SAVE, perhaps it will be able to read the second. (As you know, not all recorders are created equal.) By the way, please add your name and address to the program listing with REM statements before you save it, so that there will be no question as to whose program we’re running when we try it out. LOAD, check, then give yourself credit. After you SAVE your pro- gram, turn OFF the Apple to clear the memory space you’ve been using, then power it up and LOAD the program to be sure that it does in fact load and run. Finally, protect. After saving your program, make sure that it cannot be erased. Every cassette includes a write/protect feature in the form of two small plastic tabs on the edge of the cassette oppo- site its business end. When these tabs are pushed in, pulled out, or otherwise gotten out of the way, the cassette can no longer be written into. Clearing the air. We make no profit from your contributions to the user portion of the APPLE software bank. We set up this por- tion of the bank simply to encourage and to ease the exchange of pro- grams among APPLE users. The honorarium that we pay for contri- butions to this portion of the bank is merely our way of encouraging such contributions. From time to time, of course, APPLE does purchase software, and does so at the fair market value. Such purchases are negotiated indi- vidually, based upon market condi- tions, applicability of the product, etc, OUT OF THE MIST... .. ASCH character equivalents The following table presents decimal-number equivalents and APPLE keyboard equivalents to ASCH (American Standard Code for Information Interchange) char- acters. That is, if you were to scan the keyboard directly in BASIC, these are the characters that you would read; or, if you were to go into memory, these characters would appear as string-variable values. contact 3/the user group newsletter for sept. 1978 In the APPLE keyboard column, Such information can make as to what goes and what does not, read SMC asa SHIFT/CONTROL-M your programming life much easier, and in a way that tells you exactly BC as CONTROL-B, etc. The deci- because it lets you get keyboard what's wrong as you go wrong. mal numbers listed are those before data directly into a BASIC program ‘You can see one way in which clearing of the keyboard strobe; without the use of an INPUT state- this idea is applied in ‘Being Precise after clearing of the strobe, the ment. As you know, INPUT state- in INTEGER,” in this issue’s HOW number is the listed value minus ments can be limiting as, for TO section. In this Multiple Preci- 128 (e.g., after clearing of the example, when you type in a line sion Arithmetic listing, statements strobe, 145 becomes 17). If an and the screen yells SYNTAX 2500-2610 input data directly APPLE keyboard equivalent ERROR at you. Well, what is the from the keyboard; they tell you doesn’t exist, or if there is no deci- error? It may take a long time to find. exactly what’s happening, the mal equivalent, then the table Tf, on the other hand, the key- nature of any error you may have shows a double dash (--); if the key- strokes are picked directly off the committed, etc. — and all by board equivalent is identical to the keyboard then you — the program- making use of the equivalence in ASCTI character itself, then the mer — are in command every step the table presented here. table shows “‘sa.”’. of the way; you make the decisions TABLE OF ASCH CHARACTER VALUES ASCIE APPLE DEC ASCIL APPLE DEC ASCH APPLE DEC ASCIL APPLE DEC CHAR KYBD EQUIV CHAR KYBD EQUIV CHAR KYBD EQUIV CHAR KYBD EQUIV NUL SP© 128 sp BRB 160 @ sa. 192 ~ 24 SOH ac 129 ! sa. 161 A 193 a sa. 225 STX Be 130 " 162 B 194 b 226 ETx cC 131 it 163 é 195 c 227 EOT DC 132 $ 164 D 196 d 228 ENQ EC 133 % 165 E 197 e 229 AcK FO 134 & 166 F 198 f 230 BEL Go 135 : 167 G 199 g 231 BS 136 ( 168 a 200 h 232 ur 1 137 ) 169 I 201 i 233 LFS 138 * 170 J 202 i 234 VT Ke 139 + 171 K 203 k 235 FF LS 140 ; 172 L 204 1 236 cr Mo 141 = 173 M 205 m 237 so. NC 142 . 174 N 206 n 238 sl of 143 / 175 ) 201 ° 239 DLE PC 144 0 176 P 208 p 240 per Qf 145 1 177 Q 209 q 241 DC2 RC 146 2 178 R 210 r 242 DC3 sC 147 3 179 Ss 211 Ss 243 DC4 qe 148 4 180 T 212 t 244 NAK uc 149 5 181 U 213: u 245 syn vG 150 6 182 v 214 v 246 ETB. We 151 7 183 w 215 w 247 CAN XC 152 8 184 X 216 x 248 EM x 153 9 185 Y 217 y 249 SUB yf 154 : 186 Z 2 218 Zz 250 ESC sa. 155 i 187 [ S5 219 251 FS a 156 < 188 \ = 220 Vv 252 cs SMC 1s7 = 189 ] Sm 221 ALT - 253 rs SNC 158 > 190 t - 222 ae 254 US ee 159 ? 191 a 223 RUBOUT 255 LF = Line Feed; CR = Carriage Return; SP = SPace; ESC = ESCape; sa. = Keyboard character same as ASCII character. contact 3/the user group newsletter for sept. 1978 fl moving experience (Adapted from the Apple Core Newsletter, San Francisco, CA). Ordinarily, APPLE displays only Page | of its memory (locations 1024 to 2047). But it is possible to display Page 2 (locations 2048 to 3071) as well; and if you know how to do it, use of Page 2 will give you black screens in a hurry, and snap your graphics and/or text material cleanly on and off. Before you can use Page 2, how- ever, you must tell APPLE not to put any variables at locations lower than 3072; in other words set LOMEM:3072. After you’ve done this, you’re free to move the con- tents of Page | to Page 2, reload Page 1 with new data, and switch back and forth between the two pages. Here’s how to do it, using the general-purpose block move- If both pages contain similar graphics figures, then switching between the pages will yield simple animation; further effects may be gleaned from an inspection of the list of POKEs on page 30 of the APPLE II Reference Manual. (NOTE: Don’t try this with APPLE- SOFT in RAM. It starts at hex 800 — the second page of graphic. space. A block move into that area will send your APPLESOFT BASIC into the bit bucket!) The name of the game is the saving of the name if you’re an APPLESOFT I user working with, say, an inventory Goppie computer inc. list with names, then you’re in a bit of trouble if you want to SAVE the complete list to cassette tape, names and all: APPLESOFT II will save the numbers but not the names (strings). (Of course, the nicest way to SAVE such a list is to disk.) If you need to save strings to tape however, the following pro- gram will do the job very nicely. Note that statement 10 creates space for the strings; 1010 gives you information about free memory space and how far up the variables are; 1050 writes out the length of the tape’s string area; and 1070 writes all the desired information to tape. PRUO i “SYNTAX ERROR qWrst i REM 2 REM PROGRAM TO SAVE STRINGS 3 REM TO CASSETTE TAPE. 4 REM BY R.WIGGINTON (6/78) 5S REM 40 DIM AS(10) 20 PRINT "TYPE IN NINE STRINGS, SEPARATED BY" 30 FOR K = 1 TO 9: INPUT AS(K): NEXT K ment routines built into Apple’s PRINT "CARRIAGE RETURNS, " POKE -16299,0 (displays Page 2) POKE -16300,0 (displays Page 1) monitor. 40 REM NOW GAVE AS TO TAPE. n 50 GOSUB 1000 POKE 60, (old starting address 55 PRINT "STRINGS ARE NOW ON TAPE. TO RECALL, TYPE ‘COTO 100%, REWIND mod 256) AND START TAPE, AND PRESS ‘RTN‘ * oe . 57 PRINT "LET TAPE RUN UNTIL CURSOR RETURNS. " POKE 61, (old starting address 60° END / 256 100 REM THIS PART RECALLS THE 256) : 101 REM STRINGS FROM TAPE. POKE 62, (old ending address 102 REM 1256 110 DIM BS(10) mod 256) 120 GO0SUB 2000 POKE 63, (old ending address 180 FOR K = 1 TO 9: PRINT BSCK): NEXT K | 256) 1000 REM STORE A$ TO TAPE POKE 66, (new starti 1003 PRINT “INSERT CLEAN TAPE, START RECORDING. " ~ (new ting 1005 PRINT “HIT ANY KEY WHEN READY": GET 73 address mod 256) 1010 X = FRE (0): STORE AS: REM STORE AS REALLY STORES POINTERS POKE 67, (new starting 1020 REM IN ORDER FOR THIS PROGRAM TO WORK, HIMEM MUST BE AT THE SAME OKE 67, (new starting 1021 REM VALUE WHEN THE STRINOS ARE LLED AS WHEN THEY ARE STORED. address / 256) 1030 X = PEEK (115) + PEEK (116) # 256 ~~ PEEK (111) - PEEK (112) ® 256 CALL -468 (the actual move w0408 se0eUE: 2100 command) 1050 POKE 30,X ~ INT (X / 256) ® 256: POKE 91,X / 256: CALL ~ 907; REM PUT GO INTO LOGS 30%31, AND WROTE IT TO TAPE. Now, to use Page 2 (remember 1060 REM (X) 19 THE LENGTH OF THE STRING AREA. e hi er): 1070 POKE 60, PEEK (i11): POKE 61, PEEK (112): POKE 42, PEEK (115); POKE to set LOMEM to 3072 or higher): 63, PEEK (114): CALL. - 307 D4 “py ¢ *} 1080 REM HAVE NOW WRITTEN EVERYTHING. 10 POKE 60,0:POKE 61,4:POKE 1090 PRINT "0. A": RETURN 62,255 :POKE 63,7:POKE 2000 RECALL BS: REM GOT POINTERS Back “Py a “tt . at 2010 GOSUB 2100: CALL ~ 259; REM GOT LENGTH OF STRING AREA 66,0:P OKE 67,8: CALL -468: 2020 X = PEEK (30) + PEEK (31) # 256: REM XISLENGTH OF AREA TO READ IN POKE -16299,0 2030 X = PEEK (115) + PEEK (i146) # 256 - x ; 2040 POKE 40, X - INT (X / 256) % 256: POKE 61,X / 256 To switch back and forth 2050 POKE 62, PEEK (115): POKE 63, PEEK (116): CALL - 259 , A 2060 RETURN between Pages | and 2: 2100 RETURN : REM GET cass POKE 60,30: POKE 61,0: POKE 62,31: POKE 63,0: ETTE ROUTINE POINTERS “ contact 3/the user group newsletter for sept. 1978 @opple computer inc. Lining things up, point by point Since most BASICs justify (i.e., line up) to the left-most column, a display of multi-digit, decimal- pointed numbers can be awkward to read and somewhat unattractive. A solution to this problem would be to use a tabulation rou- tine that ‘Sustifies (or lines up) on the decimal point.” Such a routine would position the numbers in a column so that the decimal points are vertically aligned. The short pro- gram listed below does exactly that. Statements 10 through 50 are merely a demonstration routine that yields the sample run shown at the end of the listing. Statements 2000 through 2140 contain the routine that actually does the work. In effect, the routine aligns the numbers by right-justifying to the digit left of the decimal point, then tacks on the decimal point and the remaining digits to the right of the decimal point. 10: B&9: D=9 20 COSUB 2000: PRINT ". "5D 30 IF A>3000 THEN 1000 40 F=108F: D=D+A, 2000 REM RICHT-JUSTIFICATION ROUTINE FOR APPLE BASIC 2010 REM — INPUT IS ASSUMED TO BE IN VARTADLE "A" 2020 REM THE RIGHTMOST CHARACTER WILL, APPEAR IN COLUMN CONTAINED IN VARIABLE "DB 2100 ASS" "> TF ACO THEN Ags" =" GET SIGN OF NUMBER ABS (A): REM CONVERT A TO Pos. 4310-4 (A100) +(421000)+(A>10000) REM DETERMINE HOW FAR TO LEFT-SHIFT PRINTOUT 2130 TAB (B~C~1): PRINT AS: Ay: REM RIGHT-JUSTIFY PRINTOUT 2140 RETURN >RUN REN 2110 2120 10.9 100. 19 1000. 119 10000. 1119 Being precise in INTEGER The use of INTEGER BASIC limits you to the range of numbers between -32767 and +32767. Such a limitation is, at its best, frustrat- ing, and, at its worst, infuriating. Consider, for example, the business- man who daily deals with foreign currencies, for which the basic monetary unit may be very, very small. What’s a fella’ to do? Well, what he has to do is to go to multiple-precision arithmetic by means of a routine such as we present here. While this example is for addition only, it is readily adapt- able to subtraction, multiplication, and division by changes in state- ments 3000 through 3080. The pro- gram does its job on large numbers in the same way as we do it by long- hand arithmetic; that is, it operates on one digit at a time, then carries to the next, and so on. ‘This particular listing is long and slow, because we wanted to make it clear and easy to read so that you could see what’s happening. You may modify it to run much. faster. Incidentally, you can get a better understanding of the pro- gram’s operation by relating certain of its statements to the ASCII con- version table that is in this issue’s OUT OF THE MIST section. State- ments 2500 through 2520, for example, result in the keyboard being read directly. 2540 refers to CHAR = 141; reference to the table tells you that decimal 141 is actually the Carriage Return. Similarly, 2545 excludes all charac- ters except for the digits 0 through 9 (176 through 185). Again, state- ment 2550 converts the ASCII characters to the numbers them- selves (i.e., if CHAR = 181, then 181 -176= 5). ne seutax ene REN MULTIPLE PRECISION ARITHHIETIC REN AW INTEGER DASIC EXAHPLE REN THAT PROVIDES 20-DIOLT Gosue CETH: REN GET SECOND RUHDER 20SuB ADDITION. REH ADD HaTRICES ~ Gosve Pure: REN PRINT RESULT AUETIAL IZATION ROUTINES END 1000 Rent EH NeXT T Nextt 2545 IF (CHARCI76 OR CHARDIOS) THEN 2520: REN 2550 DUDPIRI=CHAR=176: REH 2553 PRINT DCOPTRO. -DPrnaDPIRs 3560 TF peTReal THEN 2070. PRINT 2970 cHARSO; GOTO 2590 AEH 2610 RETURN: REN LEAVE INPUT ROUTINES ny $020 Fon Ina9 To 1 step 2990 caRvour 3080 IF TENPC10 THEN 2060. 3030 CARYOUTHCARYOUT#1: TEP=TEHP10: GOTO 3040 REM FINISNED ADJUSTING CARRY FIGURES 3060 CCL) =TEH>. CARVINHCARYOUT 3080 RETURN 8000 REN OUrPUT ROUTINE 4010 Print. PRINT - PRINT 1 £020 IF (1200 THEN 4080, tats1: GOTO 4000, RE $080 Tan" 140" FOR var TO 90" PRINT AC: 060 IF 0¢19<90 THEN 4070. 1e1e1 4070 PRINT: “TAD 1070 IF C6 1)€20" THEN 4400: tetsL 4100 PRINT | “TAN T+7: FOR Jet TO 91 4110 TAB 198. FOR Vet "TO 90, PRINT C(v>s 4115 Print 4120 PRINT RETURN ur a va7aveza10 ya76sa2210 9999999999 19876942209 tho GOSue GETA: REN GET FIRST NUNHER INTO NATRIX A, ‘UY ANTO MATRIX E REM HOVE NUNDER INTO A ‘ur INTO MATRIX E REN HOVE NUMBER INTO B {TO GO:E(1)=0. NEXT T:chaRaO. DPTRst CONVERT ABCLT TO HABER AND SAVE INPUT Too LoNe--sTanT OVER": POP: Par Mintr ron NEXT KeysTROKE coro 2595) AEH GHD. RIGHT-WUSTIFIED TENPSACL)OCL “CARVIN, REM ADD COLUEKE PLUS CARVIN 207 4040: net TO: FOR Jol TO 90: PRINT Beds: NEXT a0ro 4090: REN PRINT Vavaaveanentanaganenonnneeusueutauesnauses: PRINT To MATRIX B eae Mor A MUNUER, SO IeNORE tT TONGRE LEADING ZEROS ouone Lrapino zenos lowone enpino zenas wees NEXT Je PRIN NEXT J pple computer inc: 10260 Bandley Drive Cupertino, California 95014 (408) 9964010 contact 3/the user group newsletter for sept. 1978 @oppie computer inc. OUTSIDE THE ORCHARD ... Personal software The G-2 line of personal- computer software is a series of program packages, with each pack- age consisting of a cassette and full documentation. The first programs offered are “Beat the House’’, a Las Vegas-like game set that includes Blackjack, Craps, Slot Machines, and Roulette; “Dollars and Sense”, a personal finance program; and “Clinic”, a medical program that offers information on longevity, biorhythms, and dieting. Standard and Extended BASIC packages are also available. GRT Corporation, 1286 Lawrence Station Rd., Sunnyvale, CA 94086, (408) 734-2910. Clock interface Designed specifically for APPLE I, this real-time clock inter- face features on/off control via software; a time display anywhere on the screen as desired; time-set- ting and testing from BASIC or machine language; relocatable soft- ware;andaslot-independent plug-in PC board. $32.95. System Design Engineering, Suite 40, 2460 W. 239th St., Torrance, CA 90505 (213) 539-2194. 6502 software An organization for the exchange of tested software for 6502-based systems has been set up. The company does not buy copyrights, but pays royalties for and sells the software. Because APPLE is a 6502-based system, the programs may be of interest to APPLE users. For information, write to The 6502 Program Exchange, 2920 Moana, Reno, NV 89509. Business programs Here is a group of programs oriented to the small businessman and independent professional. The programs offer mailing list and secretarial services, time and data management, tax planning, daily scheduling, and even an exercise program, Each program runs in 16K or less of memory, and includes documentation and a security function that allows identification of unauthorized copies of the soft- ware tape. Retail prices range from $19.95 (the exercise program) to $89.95 (the tax planning and pro- fessional secretary packages). Charles Mann & Associates, 1926 South Veteran Ave., Los Angeles, CA 90025. (213) 473-0244.
mp.ls