$3.50 OCTOBER 1986 EfTE THE SMALL SYSTEMS JOURNAL® The Multifaceted Apple II GS: Mixed Blessings from a 16-bit CPU BCtC -. — v- Public Domain Powerhouses Reviewed: New Compaq II $4.25 CANADA / £1.75UK, A McGRAW-HILL PUBLICATiOls Turbo Pascal Programming? ssss Strategies. $10.00 Scratch 'n Win Rebate! Turbo GameWorks® Also recently released, Turbo GameWorks is what you think it is: "Games" and "Works." Games you can play right away (like Chess, Bridge and GoMoku), plus the Works— which is how computer games work. All the secrets and strategies of game theory are there for you to learn. You can play the games "as is" or modify them any which way you want. Source code is included to let you do that, and whether you want to write your own games or simply play the off-the-shelf games, Turbo GameWorks will give hours of diversion, education, and intrigue. George Koltanowski, Dean of American Chess, and former President, United States Chess Federation, reacted to Turbo Game- Works like this:" With Turbo GameWorks, you're on your way to becoming a master chess player" And Kit Woolsey, writer, author, and twice Champion of the Blue Ribbon Pairs, wrote, " Now play the world's most popular cart game— Bridge . . . even program your own bidding and scoring conventions!' Suggested retail: $69.95. Use a $10.00 Scratch 'n Win Rebate and you're talking an incredible $59.95! Minimum memory: 192K ' v Turbo GameWorks' Chessboard 2 w. JL. SgL ■ - --..-* - Recognition lor Borland International has come Irom business, trade, and media, and includes both product awards and awards lor technical excellence and marketing. -America's Cup. Coming Soon! Send a buck to the boat! II you'd like to help America's eflort to recapture the America's Cup from Australia, you can make a tax-deductible donation to "Heart of America" Challenge, 11 South LaSalle St., Suite 1670, Chicago, Illinois 60603 create ;»« G ' r 5cs! $10.00 Scratch 7? Win Rebate! Turbo Graphix Toolbox® It includes a library of graphics routines for Turbo Pascal programs. Lets even beginning programmers create high- resolution graphics with an IBM, Hercules,'" or compatible graphics adapter. Our Turbo Graphix Toolbox includes all the tools you'll ever need for complex business graphics, ea^y windowing, and storing screen images to memoiy. It comes complete with source code, ready to compile. Suggested retail: $69.95, but with a $10.00 Scratch 'n Win Rebate, only $59,951 Minimum memoiy 192K The ultin 1316 erJenC e! $10.00 Scratch 'n Win Rebate! Turbo Tutor® 2.0 The new Turbo Tutor can take you from "What's a computer?" through complex data structures, assembly languages, trees, tips on writing long programs in Turbo Pascal, and a high level of expertise. Source code for every- thing is included. New split screens allow you to put source text in the bottom half of the screen and run the examples in the top half. There are quizzes that ask you, show you, tell you, teach you. You get a 400- page manual— which is not as daunting as it sounds, because unlike many software manuals, it was not written by orangutans. Suggested retail: $39.95. Use a $10.00 Scratch 'n Win Rebate and you're down to an unheard of $89,951 Minimum memory: 192K How to use Scratch 'n Win Rebates It's really simple. You purchase the product between 9/5/86 and 3/31/87, and return the license agreement along with dated proof of purchase and your rebate card. We'll mail you a check for $10.00 on single product purchases or a check for $15.00 when you buy an advertised "bundle"— which means our Turbo Pascal Jumbo Pack, or Turbo Lightning and Lightning Word Wizard, or Reflex: The Analyst and Reflex Workshop, or SideKick and Traveling SideKick. (Restrictions do apply. Rebates are not valid in combination with any other Borland or dealer discount. See Official Rules on back of Instant Winner card). ^m Pascal * Language- $10.00 Scratch 7? Win Rebate! Turbo Prolog 1 " "Borland International, Inc. is gunning onto the fast track in the artificial intelligence and engln- eering-lsnguagewftmre race, tiding aboaM a new $99 Turbo Prolog, " says Tom Schwartz in Electronic Engineering Times. And so we are. Our new Turbo Prolog has drawn rave reviews—which we think are well deserved— because Turbo Prolog brings 5th-generation language and supercomputer power to your IBM PC and compatibles. Turbo Prolog is a high- speed compiler for the artificial intelligence language, Prolog, which is probably one of the most, powerful programming languages ever conceived We made a worldwide impact, with Tuibo Pascal and you can expect, the same results and revolution from Turbo Prolog, the natural language of artificial Intelligence. Danyl Rubin, writing in AI Expert said, "Turbo Prolog offers generally the fastest and most approachable implementation of Prolog. " Suggested retail, $99.95. Use a $10.00 Scratch 'n Win Rebate and that goes down to only $89,951 Minimum memoiy; 384K Technical Specifications: TURBO PASCAL 3.0 Minimum memoiy 128K. includes 8087 and BCD lealures lor 16-bit MS-DOS and CP/M-86 systems CP/M-80 version minimum memory 48K; 8087 and BCD lealures not available TURBO DATABASE TOOLBOX Minimum memory 128K CP/M-80 minimum memory 48K Requires Turbo Pascal 2.0 or later TURBO CRAPHIX TOOLBOX' Minimum memory 192K Requires PC/MS-DOS 20 or later. Turbo Pascal 3 0. and IBM CGA. Hercules Monochrome Card or equivalent TURBO TU TOR 2.0 Minimum memory: 192K CP/M-80 version minimum memory 48K, Requires PC/MS-OOS 20 or laler and Turbo Pascal 30. TURBO EDITOR TOOLBOX' Minimum memory 192K. Requires PC/MS-DOS 2.0 or later and Turbo Pascal 3 TURBO GAMEWORKS' Minmum memory 192K Requires PC/MS-DOS 20 or laler and Turbo Pascal 3 TURBO PROLOG' Minimum memory 384K, REFLEX: THE ANALYST' Minimum memory 384K Requires IBM CGA. Hercules Monochrome Card or equivalent Works with Intel's AboveBoard-PC and -AT. AST's RAMpage" and RAMpage' AT, Ouadram's Liberty-PC and -AT; Tecmar's 640 Plus: IBM's EGA and 3270/PC; AT&T's 6300 and many others. REFLEX WORKSHOP' Minimum memory. 384K. Requires Reflex: The Analyst. TURBO LIGHTNING' Minimum memory. 256K Two disk drives required Hard disk recommended. LIGHTNING WORD WIZARD' Minimum memory 256K Requires Turbo Lighlning Turbo Pascal 3 required to edil source code. SIDEKICK' Minimum memory. 128K. TRAVELING SIDEKICK' Minimum memory 256K SUPERKEY' Minimum memory 128K "For IBM PC. AT, XT, PCji and true compatibles only, running PC/MS-DOS 2 or taler Turbo Pascal Programming! &&* $10.00 Scratch 'n Win Rebate! Turbo Editor Toolbox™ Recently released, we called our new Turbo Editor Toolbox a "construction set to write your own word processor." Peter Feldmann of PC Magazine covered it pretty well with, "A 'write your own word processor' program for intermediate level programmers, with lots of help in the form of prewritten procedures covering everything from word wrap to pull-down windows!' Source code Is included, and we also Include Micro- Star, a full-blown text editor with pull-down menus and window- ing. It interfaces directly with Turbo Lightning to let you spell-check your MicroStar files. Jerry PournelleofByJB magazine said, "The new Turbo Editor Toolbox is the Turbo Pascal source code to Just, about anything you ever wanted a PC- compatible text editor to do" Suggested retail: $69.95. Use a $10.00 Scratch 'n Win Rebate and you'll get all this for only $59.95! Minimum memory: 19SK MicroStar file directory accessed by pu l-down menu Borland's Business Productivity Programs: Reflex: The Analyst' Analytical database manager. Provides complete, new look at data normally hidden by programs like 1-2-3" and dBASE* Best report generator lor, and complement to, 1-2-3. Reflex Workshop' Important new addition to Reflex: The Analyst. Gives you 22 different templates to run your business right. SideKick Complete RAM-resident desktop management includes notepad, diater, calculator and more. Traveling SideKick* Electronic version of business/personat diaries, daytime organizers; works with your SideKick files; important professional tool. SuperKey" Keyboard enhancer. Simple macros turn 1000 keystrokes into 1. Also encrypts your liles to keep confidential files confidential. Borland's Electronic Reference Programs: Turbo Lightning' Works with all your programs and checks your spelling while you /ype' Incfudes 80.000-word Random House* Concise Word List and 50,000- word Random House Thesaurus. Forerunner of Turbo Lightning Library" Lightning Word Wizard' Includes ingenious crossword sotver and six other word challenges. II you're into programming, Lightning Word Wizard is also a development toolbox and the technical reference rnanuaf for Turbo Lightning. All Borland products are registered trademarks or trademarks ol Borland Internalional. Inc or Borland/Analytica. loc Turbo Lightning Library is a trademark ol Borland Inlernalional Inc AST TurboLaser. RAMpage 1 AT. AdvanlagePfemiuoi. SixPak Premium, 3G Pak and RAMpage' are trademarks ol AST Research. Inc. Lotus 1-2-3 is a registered trademark ot Lotus Development Corp dBASE is a registered trademark ot Asfilon-Tale IBM is a registered Irademark ot Inlernalional Business Machines Corp Random House is a regislered Irademark ot Random House. Inc. Hercules is a trademark ot Hercules Compuler Technology CP/M is a registered Irademark ol Oigital Research. Inc Traveling SideKick is not in any way associated wilh Traveling Sottware. Inc ol Seattle. Washington Copyright 1986 Borland Internalional BI-1075 News from Borland International! Vol. 1 No. 2 How Borland is helping bring the America's Cup back to America! "I think those who grasp the technology will prevail" Bill Shore, President, Shore Sails Co., Newport, EI Borland's Philippe Kahn at the helm of with Shore Sails' President Bill Shore HEAKT Of AMERICA Sail-making is traditional— a craft— but I think we're huge steps ahead of the competition when we get involved with higher technology," says Shore. He and Shore Sails' 17 different franchised sail lofts in the U.S. are in what Shore describes as a "highly competitive business, whether it's America's Gup racing or any race." And he adds, "You guys (Borland) do good stuff that's affordable, which is one of the reasons why we wrote all our sail design programs in Turbo Pascal.®" "These days," he says, "there are many parts to a sail, and Turbo Pascal lets us arrange all the parts properly. We design what the garment industiy calls a marker'— and rely on Turbo Pascal to do critical things like getting thread line in the same direction as load lines. We take the diskette to our new $250,000 laser cutter, which follows the Pascal program precisely, draws out the sail and cuts out the sail. We glue and sew and you've got the best there is." "Heart of America" surfing downwind, Sanla Cruz, California "The wrong sails will sink your chances— if not your boat —so we wrote Turbo Pascal programs" The right sail design, at the right price, right now, has to happen in 17 different Shore Sails Lofts across America. It had to happen with America's Gup challenger HeaH of America which carries Shore sails— and it has to happen with the (cur- rently) 700 different boats that Shore Sails has in their Turbo Database Ibolbox" Sail design, sail pridng and "beating the handi- capper" are all done at Shore Sails with Turbo Pascal In case you don't know the sharp end from the blunt end of a boat, the right sail design for any boat is more than design and price. It's tactical advantage. Design- ing sails that take the greatest advantage of the boat's basic design and rigging without getting stuck with a heavier-than-desirable Official Handicap. (Handi- caps can eat your chances faster than a Great White.) The "right sail" design bends but doesn't break the Win Fowler, Shore Sails Co., Portland, Maine. racing rules written by, amongst others, MORR (Midget Offshore Racing Rules) or IOR (International Offshore Rules). Turbo Pascal spills out "right sail" designs for Shore Sails so their cus- tomers tend to "handicap" the Rules Committee instead of the other way around. Shore Sails' connection with Borland doesn't end with Turbo Pascal and our Database Toolbox. Shore's Fowler has also written SuperKey® macros for "eveiy file we have" and says, "We'd be lost without them." He uses SideKick® to dial eveiy phone call and Side- Kick's Notepad to commun- icate between all the Lofts, saying, "That way we don't need a word processor." Shore Sails also uses Turbo Lightning 8 and Reflex The Analyst.® So why so many Borland products in one company? Win Fowler says, Wed be sunk without them!" is no second P^e " Omar Bradley Borland's Instant Winner Game Scratch this card now and you could instantly win 2 free round-trip airline tickets to Australia for the America's Cup Race! # First Prize ($10,000 value!) includes $10,000 ^^ accommodations for two in Perth, Australia during the final America's Cup races, which start January 31, 1987. See America win it hack after our only loss in 134 years! There's more than one instant winner in Borland's Instant Winner Game, because you could win one of two new $6,895 4-WD Suzuki Samurai convertibles, ^^^g, or a $4,995 AST TurboLaser 11 printer, or a $4,499 •«ilBP^ Toshiba T3100, TU or a $2,399 Toshiba Tl 100™ W 1 ^ Plus, or a $595 AST SixPakPremium™, or a $69.95 Traveling SideKick,®or any one of hundreds of other Borland products— and at rfpi,. | s tM the very least a Borland Rebate Coupon, good for $ 10 off any single product or $ 1 5 off any bundled product offer! f i>. V $4,499 $69.95 See Official Rules on the back of this card for details. Don't delayl There will be a second-chance drawing for the trip If not claimed by 12/30/86. There's also a second-chance drawing for the wo Suzukis If not claimed by 8/28/87. All rebate coupons are good for products purchased 9/5/86-3/31/8?. Product prices above are suggested list prices Rub the silver box to reveal whether you win a prize or get a rebate coupon. blank to the right. Then fill in the second-chance entry ■ ' ': %? Jys .'■■■ •' ■ 7' •'.■-'■■■ •-'■*■■ ."..; W wer and facilities you need to write great programs, faster than you ever dreamedof. Programs that are easy to use. Programs that are a pleasure to write. And to you that means true satisfaction. You've coveted those nifty pop-up help windows some major applica- tions feature. But you can't afford the time and energy it takes to write them into your programs. That's the way it usedto be. So we fixed that, too. CLARION'S HELPER is an interactive utility that let's you design the most effective pop-up help screens that you can imagine. And they're "context sensitive, meaning you can have help for every field in your application. Unlike the other micro languages, CLARION provides declarations, procedures, and functions to process dates, strings, \^ screens, reports, indexed files, DOS files and memory tables, SAY IT IN a CLARION DEPT. A4BY/6 1-800-354-5444 Imagine making_ source program changes with the CLARION EDI- TOR. A single keystroke termi- nates the EDITOR, loads the COM- PILER, compiles the program, loads the PROCESSOR and executes the program. It's that easy! Our data management capabili- ties are phenomenal. CLARION files permit any number of compos- ite keys which are updated dynami- cally. A file may have as many keys as it needs. Each key may be com- posed of any fields in any order. And key files are updated when- ever the value of the key changes. Like SCREENER and RE- PORTER, CLARION'S FILER utility also has a piece of the CLARION COMPILER. To create a new file, you name the Source Module. Then you name the Statement Label of a file structure within it. FILER will also automatically rebuild existing files to match a changed file structure. It creates a new record for every existing rec- ord, copying the existing fields and initializing new ones. ^Sounds pretty complicated, huh? " Not with CLARION'S docu- mentation and on-line help screens. If you are currently competent in BASIC, Pascal or "C" you can be writing CLARION applications in a day. In two days you won't believe the eloquence of your CLARION programs. Okay, now for the best part of all. You can say it in CLAEtON for $295.00— plus shipping and handling. All you need is an IBM® PC, XT, AT or true compatible, with 320 KB of memory, a hard disk drive, and a parallel port. And we'll allow a full 30 day evaluation period. If you're not satisfied with CLARION, simply return it in its original condition for a full refund. If you're not quite ready to take advantage of this no-risk opportunity, ask for our detailed 16 page color brochure. It vividly illustrates the elegance of CLARION. Consider it a preview of programming in the fast lane. Either way, the 800 call's a freebie. gjgjMgTON SKTCMSJNC ISO EAST SAMPtl ROAD KjjjgjjjO BEffl F10MM 33064 305/785-4555 IBM is a registered trademark of International Business Machines Corporation. CLARION™ is a trademark of Barrington Systems, Inc. ©1986 Barrington Systems Inquiry 34 OCTOBER 1986 • BYTE 21 LETTERS secretaries and stenographers with voice- writing devices. Alex Gross New York NY Combining Languages 1 would like to comment on the remarks in the June Best of BIX about the similari- ties and differences between Ada and Modula-2 (pages 376-378). 1 believe that the real debate between the proponents of each language should not rest upon whether one should have an "everything but the kitchen sink" philosophy or a "do the rest by yourself" philosophy. The real debate is on how much information a programmer can ab- sorb in learning while remaining proficient at the job and how to increase program- ming efficiency. The first philosophy (that of Ada) creates an environment where programmers must absorb an incredible amount of informa- tion. They must remember not only the keywords of the Ada language but also a very sophisticated syntax. In this philosophy, programmers are easily overwhelmed, especially if they already know another language. On the other hand, this philosophy provides an identical environment for all Ada program- mers. An Ada programmer can move from one environment to another with very lit- tle difficulty. The second philosophy (that of Modula-2) represents a language stripped down to its essential parts. It becomes a pure and simple tool. What is the problem with that? you might say. There is the lack of an identical environment for all Modula-2 programmers. Having a module capability provides access to indepen- dently written functions fordoing all sorts of work. But this capability, if left completely free, can have harmful effects, too. For exam- ple, each time Modula-2 programmers have to change systems, they have to relearn the graphics procedures of the other environment. This is a matter of philosophy, not implementation, because, although it would be easy for Modula-2 to define the workings of certain external modules, this clashes with its minimalist philosophy. Still, the learning problem remains. We become victims of what is commonly called the "tyranny of large numbers" by electrical engineers. This problem arises in the construction of VLSI chips. These chips contain around 200.000 com- ponents. It has now become impossible for an engineer to design and lay out one of these chips without the help of logic simulators, circuit simulators, and a slew of computer-aided engineering tools. If you compare the situation of electrical engineers to that of today's programmers you see that, although programmers are faced with tasks of ever-greater complex- ity, they do not have the computer tools that will help them perform their jobs with the greatest possible efficiency. Program- ming as a discipline has not changed since 19 59. In other words, we are using 27-year- old technology We are still entering our programs by hand, still designing them (sometimes) with pencil-drawn flowcharts, and still using simplified documentation systems (i.e.. comments). Can you imagine an electrical engineer spreading out a large sheet of paper on the kitchen table to design even a very simple microproces- sor? Yet many programmers are faced with tasks of this complexity. What programmers really need is not a (continued) That's how easy it is to implement on the Apple Macintosh the enormous volume of applications written in dBase III for the IBM PC, Using dMac III, you can develop applications on the Macintosh and transfer them to the PC where they can be implemented under dBase III. With dMac III, the IBM PC and the Apple Macintosh work as a smooth running, tireless team. • dMac Ill's nearly limitless range of power includes: •Up to 2,000 procedures per procedure file *Up to 2.000 memory variables * Up to 2,000 fields per record * Up to 253 bytes per field • Like dBase III, dMac III features a powerful programming language that offers Macintosh users the ability to create professional business applications. • dMac HI shares data with other major Macintosh software packages... in both directions • To run dMac HI you need: * Apple Macintosh or Macintosh plus with 512 KB RAM *two disc drives or one disk drive and a hard disk III is immediately available at a suggested retail price of $49 5 A For your authorized dMac III dealer contact: FORMAT SOFTWARE, INC. 11770 Bernardo Plaza Ct. Suite 217 San Diego, CA 9212& (619) 487-6946 IBM is a trademark of the IBM Corporation. dMac III makes the exchange smoothly and in stride. AMAZING Ten Good Reasons to Buy an Amazing Things™ Model "A" Series™ Modem 1 . Amazing Things Modems Provide Access to a Wealth of Information through Data- bases. You can access over 2,500 informational databases with an Amazing Things Modem. Research topics from astro- logy to zoology, stock quotes, news, weather, sports, legal references, medical information and more. 2. Amazing Things Modems Network. Connect your personal computer to any other personal computer in your office or in the world. 3. You can Telecommute with Amazing Things Modems. Work at home and send your data to the office via tele- phone. Observers believe that 15-20 percent of the office work force will be telecommuting by 1 990. 4. Amazing Things Modems are Direct Links to any Mainframe. Access your company's mainframe from your office, from your home or on the road with an Amazing Things Modem. 5. Amazing Things Modems Overcome Incompatibility Problems. Send documents from one personal computer to another, even if the systems are incompatible. 6. Amazing Things Modems Bring You Elec- tronic Banking and Shopping. Many banks now offer banking and investment services over the telephone. And you can shop for thousands of products — from cameras to clothing — with electronic catalogues. 7. You Can Send and Receive Electronic Mail with Amazing Things Modems. Send letters and memos instantly. Mass mail them auto- matically, across the office or across the country. 8. Amazing Things Modems are Inexpensive Alternatives to the Telex. Send and receive volumes of information overseas at a fraction of the cost of a Telex. 9. Amazing Things Modems are Fun. Through various bulletin boards, you can join clubs, exchange software, advertise, meet people, find jobs and much more. 10. Amazing Things Modems are Inexpensive. The Amazing Things Model "A" Series I200B Modem is priced at $149.95 — about one third the price of an equivalent Hayes Modem. And the 2400B is priced at only $289. • 300-1200 Baud $149.95 • 300-2400 Baud $289. • Half-Card • Auto-Answer, Auto-Dial • Hayes®-Compatible • Full or Half-Duplex • Two- Year Warranty • For Leading Edge® Personal Computers, IBM and Compatibles For a dealer near you or to order direct, call 1-800-835-0139, (6 17)551 -0880 in MA. MasterCard and Visa accepted. Amazing Things Inc. 57 Providence Highway Norwood, MA 02062 Amazing Things and Logo and Model "A" Series are trademarks of Amazing Things, Inc. Hayes is a registered trademark of Hayes Microcomputer Products. Inc. IBM is a registered irademarkof International Business Machines Corp. Apple is a registered trademark of Apple Computer Inc. Leading Edge is a registered trademark of Leading Edge Products, Inc. Inquiry 163 LETTERS single "do it all" language but an environ- ment providing tools for creation, verifica- tion, and documentation of programs. Who cares if the program is written in five different languages if each one is used to perform a task it is intended for. The goal of a programmer is not to program in a certain language but to produce a pro- gram. Loyalty to a programming language is ridiculous! The end justifies the means. It would seem logical to call these systems computer-aided programming (CAP). Un- fortunately, these systems do not have widespread use. Instead of worrying about user-friendliness, how about worrying about programmer-friendliness a little bit? If programmers are given better working conditions, they will find it easier to pro- duce user-friendly interfaces. It seems evi- dent that more effort will be put into designing something if the design process becomes simpler. You may be wondering why I wrote this letter. I am an 18-year-old student and I CONSIDERTHISJUST ABRIEFAUDITION. ACTOR™ is a new, interactive pro- Moreover, ACTOR is a new, object- gramming system, the first with Micro- oriented piogramming language. Wind- soft® Windows. You have Windows ing objects up and turning them loose when you write a program, and users is a lot easier, more productive, and more have Windows when they run it. fun than old fashioned programming. Thanks to a new method of" in- cremental garbage collection," ACTOR never has to slow down to clean up memory like other advanced languages. You can even use it for real-time con- trol. It's that fast. ACTOR ofTers all the features of an ideal artificial intelligence language, but in a familiar, Pascal-style syntax. Which makes artificial intelligence pro- gramming easier. And what could be smarter than that? From a brief audition like this, you really can't see how much better it is programming with ACTOR ACTOR is more than just a research tool. It's an effective language for developing real applications. For more information, write us at the address below or call 312-491-2370. It'll help you appreciate the performance. TheWhitewaterGroup Technology Innovation Center *■ 906 University Place, Evanston, IL 60201 find it difficult to understand why grown men can be such crybabies when it comes to computer languages. 1 also find it hard to believe that, after 27 years, we do not have commercial CAP systems readily available for many machines such as the IBM PC or the Macintosh. At a time when businesses talk about '"efficiency" and "productivity" 1 find this aberrant. Although I have voiced a number of strong opinions. I would like to thank you for producing the Best of BIX column. It provides an excellent forum for user feed- back and lets many of us, who do not ac- cess BIX directly, benefit from the ex- periences of others. Although I do not always agree with many of the comments. I enjoy reading them very much. Ronald J. Perrella St Jean de Br aye, France Accessing Foreign On-line Services I have been following the discussion of in- ternational access to data networks, and I'd like to add my part of the story. 1 have called different on-line services from Argentina, where the organization of telephone lines, as well as the access to data networks, is government-controlled, as in Europe. The rates are $ 1 2 an hour, plus $.58 per kilosegment, plus the call to the local node, about $.60 an hour. There's no membership nor minimum usage and neither annual nor monthly fees. 1 noticed that some readers had com- plaints about some on-line services bill- ing a surcharge for the network usage within the U.S., which added to the ser- vice fee plus the international access, which increases the overall cost even more. There is, however, an on-line service that not only doesn't surcharge for net- work usage, but also has a flat. 24-hour fee for international users. This system is Delphi, which is located in Cambridge, Massachusetts. Anyway, all the letters up to this point have been about access to the U.S. What about access from the U.S. to foreign on- line services? I moved to the U.S. last December, and since then 1 haven't been able to call the Argentinian systems. Maybe a reader can come up with some idea? I called the network's customer sup- port numbers without success. Javier Henderson Alta Loma. CA Inversion Divergence After reviewing "Inverting Large Matrices" by Thomas E. Phipps (April), we ran the program on page 186 without lines 150 [continued) 24 B YTE • OCTOBER 1986 Inquiry 324 QTKxtemisyour ^£K%*n *% Auto-dial^uto-answer/ /• Tbne or pulse dial / J^^T^t 3 Models: •201 (2400 baud) • 21 2 AT/201 (1200 and 2400 baud) •208 (4800 baud) Description: / SYNCmodem is an IBM PC, XT or AT bus compatible interface card capably of operating as a synchronousjnociem or as a synchronous interface card. -^SYiSIQmoctern is ideal for remote PC-to- mainf rame or PC-to-PC communications. It comes fully integrated with 3780Plu5™, CLEO-3270 SNA or BSC, and CLEO-5250 SNA software packages. 3780Plus allows fast and efficient file transfers, over common phone lines, between your PC and any micro, mini, or mainframe that supports 2780/3780 Bisync protocol. CLEO-3270 SNA or BSC and CLEO-5250 SNA allow your PC to emulate a remote 327x or 525x terminal device. All you need is a phone line. The 212/201 modem includes the Mirror asynchronous software package in addition to your selected CLEO SNA or BSC package. For details call 1(800)233-CLE0. In Illinois 1(815)397-8110. OEO CLEO Software a division of Phone 1, Inc. 1639 North Alpine Road Rockford.IL 61107 TELEX 703639 CLEO irfa registered trademark of CLEO Software. SYNCmodem and 3780Plus are trademarks of CLEO Software. Inquiry 62 LETTERS and 160. We found that the technique was highly oscillating in nature and diverged within 5 iterations. With the above lines, the program converged in 5 minutes, 20 seconds with 14 iterations. We would like to hear the author's comments on this. H. V. Ramakrishnan Bombay, India Dr. Ramakrishnan is quite correct about the instability of the published algorithm for the case in which entries (whether random numbers or user-supplied num- bers) are all of one algebraic sign. This took me completely by surprise, since 1 had assumed that random signs would stress the algorithm more, and I failed to check this unwarranted assumption. Other users of the program have re- ported occasional instabilities of large- matrix inversions. The cure for all such problems is im- mediate if we recognize that the plain Newton's iteration is always stable. The SPEED WARE" A DIVISION OF AMERICAN AFFORDABLE SOFTWARE CORPORATION PRESENTS Turbo Debugger™ Features • User-Definable custom windows — Change window sizes or colors • Single-step tracing with "Back-Tracing up to 100 instructions • In-Line relocating Assembler with non-destructive insert capability • Fully Symbolic, Create Comments and Line Labels, Keyboard macros • Dual Monitor support, with Screensave • Specify several Breakpoint condi- tions with the built-in Assembler • Use NMI Breakout switcher > User-definable i hotkeys . j* • Read, Write an& Modify, EXE files} Turbo Editasm'" Features • Integrated WordStar compatible Editor • Integrated Microsoft compatible Macro Assembler • Ful8088, 8086, 8087, 80186, 80287, 80286(R) & (P) support • Full Macro expansion capability • Built-in Calculator & Xreference Capability • Limited DOS command support • Supports In-Memory Assembly il{ m To maximize your programming potential order the ultimate 'Turbo Team" today — the first well-tuned, high-speed assembler/debugger for the IBM RC. and compatibles family. 00 $CQ00 w=8eae 8*:eeeo I tc:2nEn eczua c^zaeU s*-2MA j fy-mxi tn::iee«i=tD jcoeai t>x:9m B s\-mon D\-ma it-awi sp-ftra |hv u? ei pi Mi tu ra * Turbo Editasm® Turbo Debugger^ THE TURBO TEAM I Inside California 334-3664 • Outside California (800) 443-6190 I $99.00 n Turbo Editasm" $89.00 a Turbo Debugger™ Amount Enclosed ^B Speedware [M 9779 Lincoln Village Dr., Ste. 303 Sacramento, CA 95827 ■-. I I I I I I I I I I Mi ll i i Dealer and Education Discounts Available. B □ ulsulR LISA add 10% ar trouble lies in my' Improvement" on that algorithm— particularly in my choice of parameter value m = 4 in equations 12 and 13, in figure 1 of the article (page 182). The smaller the m value, the greater the assurance of stability. The choice m = I provides a reliable compromise be- tween speed and assurance of stability for inverting matrices whose real-number entries are all of one sign, (m = 2 also works, but m > 2 is unsafe.) Thus, in the program listing one just changes line 380 to read 380 FOR 1=1 TO N:X(l,l)=1 + E(l,!):NEXT For greater flexibility 1 find it useful to rewrite the program to make m an op- tional input parameter. THOMAS E. Phipps (r. Urbana, IL New Chip Shipped by Request Only After visiting COMDEX in Atlanta this spring, we were immensely impressed with the new Star Micronics NX-10. It is without a doubt the best sub-$300 printer available. Having owned a Star Gemini- 10X, we were cognizant of Star's excep- tional quality, cost, and performance. Im- mediately, we each ordered one and we were startled at what we received. The problem was that the print quality and print fonts were completely different from, and substantially inferior to, what we saw at COMDEX. Fortunately, we had re- tained a sample printout from the printer at COMDEX and quickly notified Star of our displeasure. After first denying the problem then taking our names and telephone numbers, the people at Star assured us they were aware of the prob- lem and action would be taken. Approximately four weeks and three phone calls later, the new EPROM chips arrived. They were labeled version 1.3 and replaced version 1.2. The print is nearly identical to that of the COMDEX display. Finally, we asked how long someone would have to wait in order to purchase an NX-10 with the new chip from a local computer store. The technical representa- tive said Star has no plans to update this chip in the NX-10, and if you want the new chip you have to call Star and ask for it. How do you tell which version your NX-10 has? Simply remove the ribbon car- tridge and look through the plastic cover at the chip beside the two banks of DIP switches. The number is printed on the chip. Our advice is to call Star and ask what action to take for replacing the chip. Dale S. Owens Arthur "J. Faske Atlanta, GA ■ 26 BYTE • OCTOBER 1986 Inquiry 20 New Line of Everex Cards For Your AT Everex announces a new line of add-in peripheral cards that increase the power and performance of your IBM AT ™ or compatible. Magic I/O™ The Everex Magic I/O is a half size multifunction board that is just right for extra I/O. You get one standard RS-232C serial port, an optional serial port, and a parallel printer port. Extra I/O at a low price! Maxi Magic EMS™ The Maxi Magic EMS gives you the maximum amount 4MB of RAM in a single slot. This expanded memory card supports the Lotus- Intel-Microsoft expanded memory specification. You can configure the memory any way you like with user-selectable memory addressing. And there's split memory addressing so that you can use some of the RAM to upgrade your PC to 640K. 1-800-821-0806 1-800-821-0807 In the USA In California 48431 Milmont Dr. Fremont, CA 94538 (415)498-1111 EVER for Excellence ™ Manic 1/0. Masi MaRic EMS. RAM MX), and MaRic Card 1 6 are trademarks of MU» SYSTEMS. INC. IBM AT is a trademark of International business Machines Com. Inquiry 104 for End-Users. Inquiry 105 for DEALERS ONLY. RAM 3000™ The RAM 3000 is an extended memory board that gives you up to 3MB in user-assignable RAM, using either 64K or 256K RAM chips. This board is perfect for UNIX and those applications that require direct memory addressing. Magic Card 16 ™ This multifunction has it all! Two megabytes of RAM that lets you customize the memory to your existing memory. One standard serial port and a parallel port, plus an optional serial port handles all your I/O problems. There is also a game port, and included is word processing, Ramdisk, spooler, and Form Manager software. Call your local dealer for a demo, or call EVEREX to get all the facts on our new line of AT peripheral cards. OCTOBER 1986 • BYTE 27 Tech Personal Computer's Tech PC Twin Multiuser Starting From $1699 Tech PC/XT base unit with 640K, and two 360K disk drives. Two high resolution monitors, two selectric style Hi-Tek keyboards, 50 feet of shielded cable to separate the two stations. System supports up to six printers. Full software support with multi-level file, security, electronic message facility to send and receive messages between users, password logon system, and system operator command level. System supports all popular software such as Wordstar, dBaselll, Lotus 123, Multimate, etc. Tech PC Triad Multiuser Starting From $2599 Tech PC/XT base unit with 640K, and two 360K disk drives. Separate Intel 80188 microprocessor running at 8 MHz and 512K for each terminal. Three high resolution monitors, three Selectric style Hi-Tek keyboards, 50 feet of shielded cable to separate the three stations. System expandable to 32 workstations. System supports up to six printers. Full support for multitasking multiterminal use with print spooling for multiple printers, background monitoring of the system, dial up bulletin board support, passwork protection, and file/record locking supporting PC Network protocol. System supports all popular software such as Wordstar, dBaselll, Lotus 123, Multimate, etc. THIRD PARTY MAINTENANCE AVAILABLE THROUGH MOMENTUM SERVICE CORPORATION IBM, IBM XT are registered trademarks of International Business Corporation. Multiuser Systems • . . Tech PC Quad Multiuser Starting From $4499 Tech TurboPC/ ATbase unit in portable or desktop configura- tion with 512K, multiple serial ports, three Tech PC terminals, connecting cables, and networking software. Four users expandable to nine users over dumb terminals or PC's with terminal emulation software. Capacity for up to 16 printers at remote sites with up to 6 local printers attached to the main unit. Each user can access 512K of RAM with memory expansion boards. Full support for multitasking multiterminal use with print spooling for central or terminal printing, background monitoring of the system, dial up bulletin board support, password protection, and File/Record locking using PC etwork protocol. System supports all popular software such as Wordstar, dBaselll, Lotus 123, Multimate, etc. Tech PC Turbo Quad Multiuser Starting From $5999 Tech PC/XT base unit in portable or desktop configuration with 640K, multiple serial ports, three Tech PC terminals, connecting cables, and networking software. Separate NEC V208088 Intel compatible 8 MHz CPU and up to 1 MB RAM for each terminal on the system. Two fully functional serial ports per terminal. Four users expandable to 32 users over dumb terminals or PC's with terminal emulation software. Capacity for unlimited number of local printers. Full support for multitasking multiterminal use with print spooling for multiple printers, background monitoring of the system, dial up bulletin board support, password protection, and File/Record locking supporting PC Network protocol. System supports all popular software such as Wordstar, dBaselll, Lotus 123, Multimate, etc. 714/385-1711 1911 Betmor Lane, Anaheim, California 92805 Telex 272006 Answer Back - TECH FAX: 714-5568325 Inquiry 297 far Erid-USfirs. Inquiry 298 for DEALERS ONLY. <^' ^ Open Access II Comparison Chart o Co CD CO . § .2 got fe « CC W *- 0> W ~ £, >-^5^Q ocdczcu^s^ i I — C_> fHT r ^ d CO -Q r- ^ > ^ ■£ f n CO UJ ^ t ' Qu_oc0a:0coa)0 50 CD CO CD o ! Open Access II • s • * V* lS tS 1/ 1/ * W 595 00 1 Lotus 1-2-3 s \ A A 495°° Symphony V? S A \ A \ A A A 695°° Framework s A A A \ A A A 695°° Enable \S A A A A A A 695°° Smart v> A A A A A A A 895°° NETWORK VERSION AVAILABLE INTRODUCING OPEN ACCESS® II THE FULLY INTEGRATED BUSINESS SYSTEM WITH THE WORLD AT YOUR FINGERTIPS Open Access II is a new, super-program which can perform virtually every managerial and business task you'll ever need with performance and ease-of- use unheard of in the industry. Open Access II combines an extremely powerful relational data- base and superior spreadsheet with data communications, word processing, 3-dimensional graphics, and time management. Information is conveniently changed from module to module. Open Access lis Database features an effective and flexible report generator and user definable screens. "Programmer," our new Database language, features simple interacting English-like commands to produce your customized applications. Open Access H's Spreadsheet offers a unique combination of business problem solving capabilities; including goal-seeking, and an advanced table look-up command. Professional business presentations are easily produced by the enhanced graphic capabilities. Open Access H's improved Word Processor can merge data from Spreadsheet or Database easily to produce reports, mail merge and graphic presentations. Inquiry 280 for End-Users. Inquiry 281 for DEALERS ONLY. Open Access H's data communications provides you with the capabilities to handle any of your micro computer communications needs. All of Open Access H's modules work together and data is easily communicated to the rest of the world. BEST OF ALL, THE PRICE U.S. Version Only $595. Open Access H's super program is also available in the network version. Askfor details. Call (619) 450-1526 in California, or (800) 521-3511 if outside Cali- fornia for your nearest authorized dealer or distributor and expand your business base with Open Access II, the fully integrated business system. SPI SOFTWARE PRODUCTS INTERNATIONAL 10240 Sorrento Valley Road San Diego, California 92121 (619)450-1526 For Your Authorized Dealer In California (800)621-7490 Outside California (800)521-3511 1956 Software Products international. Inc. All tights reserved Open Access isa registered trademarks Soflware Products in OpenAccess llisa trademark ofSoflwareProductslnlernational.tnc Lolus 1-23andS)fmphonyare registered Irademarksol LolusOe»eloDmenlCorp Framework is a ie(Jistered[lradernark ot Ashlon Tale. Enable is a trademark of Trie Soltware Group Smart Is a trademark ol InnovativeSoftware.lnc. •Price:U.S.VersionOnly WHAT'S NEW Tbndy Announces Five Systems Tandy Corp. has intro- duced five computers, including two PC com- patibles, an XT compatible, an AT clone, and a new ver- sion of the Color Computer. The 1000 EX, a PC com- patible which sells for $799, is a one-piece unit that resembles a wide Apple He. The EX's dual-speed 8088-2 runs at 7.16 or 4.77 MHz. The machine comes with one 5 /4-inch floppy disk drive (an external 3/2- or 5!4-inch floppy drive is op- tional); 2 56K bytes of RAM (expandable to 640K); three Plus expansion slots; and a new version of DeskMate, called Personal DeskMate, that has a graphical inter- face similar to Microsoft Windows. A monochrome monitor costs an extra $129.95; a color monitor, $299.95. The landy 1000 SX, priced at $1199, a PC compatible that physically resembles the current 'landy 1000 and comes with two 5!4-inch floppy disk drives, 384K bytes of RAM, five PC- compatible expansion slots, DeskMate 11. MS-DOS 3.2, and GW-BAS1C. The com- puter uses the same pro- cessor as the EX. An exter- nal 3/2-inch floppy disk drive costs $279; monitor options are the same as with the EX. The first of the new 3000 series, the 3000 HL, uses an 80286 but is not fully com- patible with the IBM PC AT landy bills the $1699 ma- chine as an XT compatible. The HL comes with 5I2K bytes of RAM, one 360K- byte floppy disk drive, and Tandy's 1000 EX, an 8088-based IBM PC compatible. IIIIIMIltllltllll r jr *• r r i ; : 1* ■ : r • M 1 < * *"*■*■.»■< ■ » 1 * i .1 . ■ V t. S The Tandy 3000 HL, an XT compatible based on an 80286. seven expansion slots. Hard disks are optional: a 20- megabyte unit costs $799 (plus $399 for the con- troller), and a 40-megabyte model costs $1799 (plus the $399 controller). A monitor is extra. The 80286-based 3000 HD is an enhanced version of the AT-compatible 'landy 3000. Priced at $4299, the HD comes with a 1.2-mega- byte floppy disk drive, a 40-megabyte hard disk drive, 640K bytes of RAM, 10 ex- pansion slots, and a real- time clock. An optional parallel/serial adapter costs $79.95. A monitor is extra. The system will run XENIX System V. which will enable its memory to be expanded to 12 megabytes. Iomega Corp. says its new Beta 20 internal disk drive, which utilizes 20-megabyte 5!4-inch removable cartridges, is available as an option with the 'landy 3000 HL and 3000 HD. The Color Computer 3, priced at $219.95, uses a 6809E processor with clock speeds of 0.87 or 1.7 MHz. It comes with 128K bytes of RAM (expandable to 512K) and a memory-management unit; I 5- and 30-megabyte hard disks are available as extras. The machine displays 640 by 192 pixels! 80 characters by 24 lines, and four colors (out of a possi- ble 64) on its CM-8 color monitor, which costs $299.95. The C0C0 3 can run the OS-9 Level 2 operating system, which gives it multitasking capabil- ity, and it's software- and hardware-compatible with the C0C0 2. 'landy said it is discontinu- ing the Model 1200 and the old 'landy 1000. For more information, contact 'landy Corp./Radio Shack, 1800 One Tandy Center, Fort Worth. TX 76102, (817) 390-2129. Inquiry 550. [continued) OCTOBER 1986 • BYTE 31 WHAT'S NEW Amiga Expansion Chassis The PAL System, an ex- pansion chassis for the Commodore Amiga, enables you to add extra RAM, hard disks, and other options to the computer. In its base configuration, the unit sells for $1795. This includes I megabyte of RAM, which is located in the Amiga's re- serve memory and can be autoconfigured; a battery- backed clock/calendar; and five DMA expansion slots that conform to the com- puter's 100-pin connector ar- chitecture. The chassis can hold three half-height drives and comes with a 200-watt power supply and fan. Units with 20- and 45- megabyte hard disks are available for $3195 and $3995, respectively. Optional expansion cards include pro- totyping cards ($63) and a 2-megabyte RAM card ($1195) that can be up- graded to 8 megabytes. For more information, contact Byte by Byte Corp., 3736 Bee Cave Rd. Suite 3, Austin, TX 78746, (512) 328-2983. Inquiry 551. PFS Products Replaced with Series The PFS:Professional series for IBM PCs and compatibles combines four individual programs for database management, word processing, spreadsheet analysis, and network capa- bilities. The programs work with other common office software, exchange data with each other, and read current PFS files directly PFS:Professional File, the database management pro- gram, has searching and sorting capabilities and of- fers global updating and reporting with up to 64 sort- ing levels, crosstab reports, and mailing labels. It re- quires 256K bytes of RAM The PAL System, an expansion unit for the Amiga. and MS-DOS or PC-DOS 2.0 or higher and sells for $249. PFS:Professional Write, the word processing program, offers a 70,000-word spelling checker with a thesaurus that has 20,000 keywords and 120,000 synonyms. Other features include an address book for mail merge, a line-drawing capability, single- and double-spacing of the same document, and block editing capabilities. It requires 320K bytes of RAM and MS-DOS or PC-DOS 2.0 or higher and is priced at $199. PFS:Professional Plan, the spreadsheet program, com- bines recalculation ability and expanded spreadsheet size with analytical graphics. Its formulas are cell- as well as row/column-oriented, and its 94 formula keywords pro- vide date, logic, mathe- matical, statistical, string, financial, if-then-else, and table lookup functions. Pro- fessional Plan requires 384K bytes of RAM and MS-DOS or PC-DOS 2.0 or higher. The list price is $249. The series also includes PFS:Professional Network, which sells for $499, and enables multiple users to share Professional Series programs on a network. Re- quirements for Professional Network, as well as any of the series when used on a network, include 512K bytes of RAM and MS-DOS or PC- DOS 3.1. For more information, con- tact Software Publishing Corp., P.O. Box 7210, Moun- tain View, CA 94039. (415) 962-8910. Inquiry 552. Two Token Ring Networks 3Com introduced a line of networking products, called TokenPlus, for con- necting computers and workstations to a 3Com or IBM Token Ring network. The products include the Ringlap ($95) and TokenPlus Cabling System, connectors and cables for hooking com- puters and workstations to a Token Ring network; prices for the trunk cables start at $50. The TbkenLink Plus, an 80186-based adapter card that sells for $1095, pro- vides 256K bytes of RAM for a computer or worksta- tion connected to a network. The Token Connection ($1295). an expansion card for 3Com's 3Server, con- nects the file server to a Token Ring network and can act as a gateway between a Token Ring and an Ethernet network. The company's 3+ net- work operating system soft- ware provides support for an Ethernet or Token Ring network; 3+NetConnect, a 3+ software module, con- nects Ethernet and Token Ring networks. A TokenPlus Starter Kit. which contains three Token- Link Plus adapters, three Ringlaps, and associated cabling, sells for $375 5. For more information, contact 3Com Corp., 1365 Shorebird Way, P.O. Box 7390. Moun- tain View, CA 94039, (415) 961-9602. Inquiry 553. Univation's LANscape is an Ethernet-based local area network for IBM PCs and compatibles that pro- vides links to Token Ring and UNIX systems. The 10- megabit-per-second network supports NETBIOS applica- tions and uses Novell's Ad- vanced Netware 2.0 op- erating system software, to which the company has added menu-driven diagnos- tics, monitoring, security, and software loading functions. The system consists of the FS 2000 Series file server, which is based on a 10-MHz Intel 80286 and is available in capacities from 30 to 1200 megabytes. The unit can support up to 100 work- stations. The network can also- convert existing per- sonal computers to file servers. A second compo- nent is the NC 516 Network Interface Card that connects computers, workstations, and file servers to Ethernet- {contimed) 32 B YTE • OCTOBER 1986 TIME" MACHINES TheFacit a C-line" includes the 400 cps, 15-cobr C7500 and the 250 cps, 7UN:Facit0634-40 20 80. G/?££C£: Computer Application Co.Ltd.. 01-671 97 22. /yONCATONC .Oilman^ Co. Ltd, 5-893 0022. /C£L/IA(D; GisIi'J. Johnsen HE 354-64 12 22. INDIA: Forbes Forbes Campbell & Co. Ltd.. 22-20 48 081. IRELAND: Ericsson Information Systems Ltd., 75 30 93. ITALY: Facit Data Products S.p.A., 039-63 63 31 JAPAN.-Electrolux (Japan) Ltd., 03-479-3411. KOREA: K.D.C Corporation, 723-8555/8236. r//£N£77/£/?Z7WZ)S: Ericsson Information Systems BY., 03480-709 11. NEW ZEALAND: Northrop Instruments and Systems. 501-801. 501-219. NORWA Y: Ericsson Information Systems A/S. 02-35 58 20. PORTU- GAL: Regisconta Sari. 1-56 00 91. SINGAPORE: Far East Office Eqpts Pte Ltd., 745 82 88. SPAIN: Facit, 91-457 90 81. SWEDEN: Ericsson Information Systems Sverige AB, 08-28 28 60. SWHVERLAND: Ericsson Information Systems AG, 01-3919711. WEST GERMANY: Ericsson Information Systems GmbH. 0211-61090. INSTANT PAPER LOADING AND SWITCHING To save more time, paper loading is fully auto- matic with a choice of three different paper paths. This enables accurate feed of multi-part invoices and paper tear-off without losing a single form. You can even hold a continuous form in stand-by while cut-sheets are printed. To facilitate easy integration in your system, both parallel and serial interfaces are provided as standard along with Epson FX/JX or IBM Graph- ics Printer emulation. You can use the pre-defined set-ups to alternate between different hosts, if required. For a demonstration of how the Facit C7500 and C5500 boost the efficiency of your computer system, contact your nearest Facit representative. It will be a real timetrip. WHAT'S NEW based networks. The NC 516 is equipped with 16K bytes of memory; the half-size card plugs into a single ex- pansion slot in an IBM PC, XT, AT or compatible. The system's software in- cludes Novell's Netware 2.0 with drivers for the Univa- tion hardware, along with a Workstation Shell that the company says provides transparent access to file servers and supports DOS commands. An optional NETBIOS Emulator supports applications written for IBM's PC and Token Ring networks, and the UNIX soft- ware implements the TCP/IP protocol, which enables nodes on the network to . communicate with UNIX or other TCP/IP-based systems. A five-user system without a file server sells for $4665; with a 30-megabyte file server, $12,260. Contact Uni- vation Inc., 12 31 California Circle, Milpitas. CA 9503 5, (408) 263-1200. Inquiry 554. Two- and Three- Dimensional Business Graphics EnerCharts lets you create up to four bar, pie, or line charts on one screen in both two- and three-dimensional display. This business graphics pro- gram from Enertronics is compatible with over 3 5 printers and plotters, as well as with the Polaroid Palette for creating 3 5mm slides or photographs. With EnerCharts you can customize your presenta- tions by adding text, lines, and symbols; by changing font, size, color, slant, angle, or text; and by framing lines of text or the whole chart. On-screen prompts and pop- up help screens facilitate your editing. The program runs on IBM PC XTs. ATs, and com- EnerCharts presentation graphics package. 6 File Edit Criteria Question Tent Font Control Examples: decision ■■' ' ' '■ '.■ ; ' ■ :: : ; .... ' ■B wind mag vis decision Hn i * * n auto 2 * * y noauto mn 3 * * H no auto Rule: decision ill 4 * * y noauto 23 nodes. 5 tail * y noauto i 2 3 vis I-— n : auto ififl g * y noauto 1 ? * L auto "" - — LX : noauto — XL : noauto — • SS : stab f— xstab : noauto '— staf: mag ',—■ : noa ! — L : auto j— • M : aut ' — S : autc —MM : stab ■ — xstab : noauto ro Question window Is the Shuttle LUithin the desir RND Controllable? □ No ed trajectory enu elope £l □ V es .■■'■■ ..:.- — * SuperExpert expert-system development interface. patibles with at least 384K bytes of RAM running MS- DOS or PC-DOS 2.0 or higher. A color graphics card and monitor are re- quired. EnerCharts is priced at $395. For more informa- tion, contact Enertronics Research Inc., #5 Station Plaza, 1910 Pine St., St. Louis, MO 63103, (314) 421-2771. Inquiry 555. 80386-based Board Runs LISP Gold Hill Computers and Al Architects have intro- duced an Intel 80386-based board for IBM PCs, XTs. ATs. and compatibles that runs the Golden Common LISP (GCL1SP) Developer. The board, called the 386 Hum- mingBoard, executes GCL1SP five times faster than an IBM PC AT, the company claims, and is tailored to run large LISP applications. The board's 32-bit 80386 processor runs at 16 MHz, and its directly addressable on-board memory is ex- pandable to 24 megabytes with 1-megabit DRAMs or to 6 megabytes with 256K-bit DRAMs. The HummingBoard offers 32-bit data paths, 2K line high-speed cache memory, and multibuffered nonsuspensive I/O that enables it to compute in parallel with I/O operations, the company says. Also pro- vided is an interface for sharing expanded memory with the computer's base processor, as well as op- tional support for Intel's 80287 or 80387 floating- point coprocessor. The GCL1SP 386 Devel- oper that runs on the board includes a compiler, an in- terpreter, a GMACS editor, an on-line help facility, and a tutorial. With 6 megabytes of RAM and the 386 Devel- oper, the HummingBoard costs $7000. For more infor- mation, contact Gold Hill Computers, 163 Harvard St., Cambridge, MA 02139, (800) 242-5477 or (617) 492-2071; or AI Architects Inc., One Kendall Square, Suite 2200, Cambridge, MA 02139, (617) 577-8052. Inquiry 556. Expert-System Development Package with Spreadsheet-like Interface SuperExpert is an expert- system development package written by Donald Michie's group at the Turing Institute in Glasgow, Scot- land. With SuperExpert, you use a spreadsheet-like interface to enter and adjust informa- tion. You can enter a set of examples and let Super- Expert induce its own rules. And the query system is in natural language, so non- experts can understand it. The program runs on IBM PCs, XTs, ATs, and com- patibles that use PC-DOS or MS-DOS 2.0 or higher and have at least 2 56K bytes of RAM. An Apple Macintosh version is also available. SuperExpert comes in three levels. The most powerful version is Level 3 ($1199), which lets you enter up to 1000 examples for each problem, up to 50 logical or integer attributes per problem, and up to eight levels of attribute sub- problems. Level 2 ($599) lets [continued) 34 B YTE • OCTOBER 1986 Inquiry 207 tor End-Users. Inquiry 208 for DEALERS ONLY. — ♦ Clipper is the fastest dBase III and dBase III Plus™ compiler available. Nothing else comes close. When performance counts, experts rely on Clipper for more speed, more power, and more creative freedom. You can, too. Call for details. • Clipper compiled programs run 2 to 20 times faster. • No royalties. ..no runtime fees. • Source code security. • User defined functions. • Arrays. • Simple menu commands. • Context sensitive help can he included with programs. • More fields; more memory variables. • Call C and Assembly programs. • Complete debugging facilities. • Multiple file relationships. •IBM PC, XT, AT, 3270 compatible™. • Multiuser capabilU Clipper •I* ■■• .i. mi ■ «■'' ' a ^"V- .-. L * *!>■ » *~ t **, ' *j !T*»*W SLA ^ *•*-«<** CLIPPER. THE dBASE COMPILER. A WINNING PERFORMANCE EVERY TIME. Nantucket Nantucket Corporation 5995 South Sepulveda Boulevard Culver City, California 90230 (213) 390-7923 Outside California call toll-free: 1-800-251-8438 dBase, dBase III, and dBase III Plus are trader of Ashton-Tate, Inc. IBM PC, XX AT, and 3270 are trademarks of International Business Machines Corporation. Clipper and Nantucket are tradei of Nantucket Corporation. WHAT'S NEW you enter up to 200 ex- amples per problem, up to 31 logical or integer at- tributes per problem, and up to four levels of attribute subproblems. With Level 1 ($199). you can enter up to 50 examples per problem, up to 31 logical or integer attributes per problem, and up to two levels of attribute subproblems. For more information, con- tact Softsync Inc.. 162 Madison Ave.. New York, NY 10016. (212) 685-2080. Inquiry 557. CADKEY Version 2.1 CADKEY. a computer- aided design and draft- ing system for IBM PCs and compatibles, is enhanced with new font files, entity grouping, and two- and three-dimensional cubic parametric splines. The new version supports high- resolution color graphics cards, color printers, and plotters. Version 2.1 costs $2695. It requires a minimum of 51 2K bytes of RAM, a color graphics card, and an input device. For more informa- tion, contact Micro Control Systems Inc.. 27 Hartford TUrnpike. Vernon. CT 06066. (203) 647-0220. Inquiry 558. Imagraph's Hi-Res Graphics Boards Imagraph Corp. has re- leased the Imaging series of high-resolution graphics controllers and a display adapter that works with the controllers. Based on the Hitachi HD-63484 Advanced Graphic Chip, most of the controllers consist of a single board that plugs into an IBM PC. XT. AT, RT. or compatible. The boards can display 8- to 24-bit two- and three-dimensional shaded images, as well as 8- to 12-bit gray shaded medical images. Enhanced CADKEY design and drafting package. The controllers are avail- able with five display resolu- tions: 512 by 480, 640 by 480, 768 by 480, 768 by 576, and 1024 by 1024. Each resolution offers pixel depths ranging from 8 to 24 bits per pixel and provides a programmable palette of 16.8 million colors. All of the boards support a dis- play refresh rate of 2 5/30 Hz interlaced; a 60-Hz non- interlaced refresh rate is also available. Priced from $1995 to $3495, the boards feature a draw rate of 40.000 vectors per second and an image update rate of 5 million 8-bits/pixel per second; ac- cording to the company, this is equivalent to loading a 512 by 512 by 8 display buf- fer at 20 frames per second. Software drivers for Media Cybernetics' Halo and GSS's VDI are available. The company's Single- Monitor Graphic Adaptor (SGA) board, which sells for $895. is compatible with the IBM Color Graphics Adapter. The SGA lets you combine a CGA monitor and high- resolution monitor in a single system and enables you to switch between CAD and CGA-compatible soft- ware via software com- mands. The board accepts RGB video signals; its horizontal scan rate is 50 kHz or 64 kHz. For more in- formation, contact Imagraph Corp., 400 West Cummings Park, Suite 3600, Woburn, MA 01801, (617) 938-5480. 938-5480. Inquiry 559. Portfolio Management on the Apple Compusec is a portfolio management program for the Apple II family that sells for $79.50. It performs 18 functions automatically, according to the manufac- turer. Some of the functions include calculating com- pound growth rates between any two earnings-per-share figures, calculating years re- quired to earn back market price, showing daily volume, and recording the date and time of the quote. Compusec requires one disk drive, but you do not need a printer, as the pro- gram gives you the option of viewing reports instead of only printing. For more information, contact Com- punetics Inc.. 6601 River Rd., Bethesda. MD 20817. (301) 320-5820. Inquiry 560. Webster's New World Writer A word processor, thesaurus, and spelling checker are what you get with Webster's New World Writer. The on-line thesaurus has more than 120,000 synonyms and phrases. The word processor offers a graphics key, so you can draw lines and boxes around your text, and another key recovers copy you've accidentally deleted. You'll need an IBM PC. XT, AT, or compatible with at least 2 56K bytes of RAM and MS-DOS or PC-DOS 2.0 or higher (3.0 with an AT). Two floppy disk drives or one floppy and one hard disk drive are required, along with an 80-column color or monochrome display. With an IBM Enhanced Graphics Adapter, the program can support a 43-line display. The list price is $150. Contact Simon & Schuster Computer Software. Gulf & Western Building, One Gulf & Western Plaza, New York, NY 10023. (212) 333-2882. Inquiry 561. WordPerfect Enhanced WordPerfect Corp.'s WordPerfect version 1.1 includes an install pro- gram, a 50,000-word speller, and support for proportional printing. The word speller checks a word, page, or document and lists a variety of spellings to help you find the correct one. WordPerfect 1.1 runs on the Apple He and He with 128K bytes of RAM. The price remains at $179. Con- tact WordPerfect Corp., 266 West Center, Orem, UT 84057, (801) 227-4020. Inquiry 562. [continued) 36 B YTE • OCTOBER 1986 YOU ARE ABOUT TO BE SEDUCED BY POWER AND MONEY. Admit it You're intrigued with the idea of C programming. You may be working in BASIC, Pascal or Assembler now But you're drawn to the power, por- tability and flexibility of C. And if money is what motivates you, imagine having it all for just $75 with Mark Williams Let's C® EVERYTHING YOU COULD ASK FOR IN A C COMPILER. Let's C is no mere training tool. It's a complete, high quality C compiler. With the speed and code density to run your programs fast and lean. It won't get you side- tracked on some quirky aberration of C; Let's C supports the complete Kernighan & Ritchie C language-to the letter. And it comes from the family of Mark Williams C compilers, the name chosen by DEC, Intel, Wang and thousands of professional programmers. POWERFUL UTILITIES ARE A REAL BONUS Let's C doesn't stop with being a high performance C compiler. It includes utilities you'd expect to pay extra f or-like a linker and assembler plus the MicroEMACS full screen editor with source code included. Having the source code not only allows you to customize the editor, it offers a close up, fully commented view of C programming at its best. REVIEWERS ARE SOLD ON LET'S C, TOO. "Let's C is an inexpensive, high-quality program- ming package... with all the tools you will need to create applications." -William G. Wong, BYTE, August 1986. 1 'Let's C is a thoroughly professional C environment loaded with tools and pro- gramming utilities . . . another fine Mark Williams product." -Christopher Skelly, COMPUTER LANGUAGE, February 1986 ^ , l~ "The performance and V *fc; documentation of the $75 )\ Let's C compiler rival those of C compilers for the PC currently being sold for $500... highly recommended ..." -Marty Franz, PC TECH JOURNAL, August 1986 <& Features • For the IBM-PC and Compatibles • Fast compact code plus register variables • Full Kernighan & Ritchie C and extensions • Full UNIX compatibility and complete libraries • Small memory model . • Many powerful utilities includ- ing linker, assembler, archiver, cc one-step compiling, egrep, pr, tail, wc • MicroEMACS full screen editor with source • Supported by dozens of third party libraries • Upgradeable to C Program- ming System for large scale applications development • Not copy protected Let's C Benchmark Done on an IBM-PC/Xi; no 8087. Program: Floating Point from BYTE, August, 1983. Exec Time in Seconds Let's C 134 MS 4.0 147 MARK WILLIAMS LET'S C $75 60 DAY MONEY BACK GUARANTEE ADD THE csd DEBUGGER AND CUT DEVELOPMENT TIME JN HALF. Invest another $75 and you've got Mark Williams revolutionary source level debugger, csd lets you bypass clunky assembler and actually debug in C. That's a big help when you're learning C and indispensable when you're programming, csd combines the interactive advantages of an inter- preter with the speed of a compiler, slicing development time in half. This is how Byte Maga- zine summed it up: "csd is close to the ideal debugging environment." William G. Wong, BYTE, August 1986 ARE YOU STILL RESISTING? If there's any doubt that now's the time to get your hands on the power of Q consider Mark Williams 60-day money back guarantee. You can't lose. But with Let's C and csd, imagine what you could gain. Ask for Let's C and csd at your software dealer's, in the software department of your favorite bookstore, through the Express Program at over 5500 Tandy stores or order now by calling 1-800-MWC-1700 * In Illinois call 312-472-6659 Mark Williams Company 1430 West Wrightwood, Chicago, Illinois 60614 © 1986, Mark Williams Company Let's C is a registered trademark of the Mark Williams Company UNIX is a trademark of Bell Labs. Inquiry 183 MARK WILLIAMS LET'S C. 0NIY *75. WHAT'S NEW SYSTEMS S-100 Board Based on 80186 The Thunder Plus 80186, an S-100-bus single- board computer, runs on an 8-MHz 80186 microproces- sor. The board is equipped with I megabyte of zero- wait-state memory, two RS-232C serial ports, a parallel port, and a floppy disk controller that can con- trol 8-, 5H-, and 314-inch drives. Available as options are a 10-MHz processor and an 8087 math coprocessor. The board, which sells for $1195, comes with Concur- rent DOS. For CAD applica- tions, the company also sells fully configured systems based on the Thunder Plus. Contact Lomas Data Prod- ucts Inc., 182 Cedar Hill St., Marlboro, MA 01752, (617) 460-0333. Inquiry 563. XT Compatible with Voice Control Microphonics Technology has announced the VOX/COM PC. an IBM PC XT-compatible computer that incorporates the com- pany's Pronounce voice- control system. The Pro- nounce system gives you the ability to operate PC-DOS and MS-DOS software using spoken commands. Priced at $2495, the com- puter operates at speeds from 4.77 to 14 MHz. Stan- dard features include a 20-megabyte hard disk and a 5^-inch floppy disk drive. A monochrome graphics dis- play adapter. AT-style key- board, and internal Hayes- compatible 1200-bps modem are also included. For $199, you can upgrade the modem to 2400 bps The computer provides communications functions such as automatic redialing of busy numbers, password security, call progress tone detection, and an electronic mailbox buffer. A Touch-Tone decoder enables the com- puter to accept data input from Touch-Tone phones. With an optional speech synthesizer connected to the computer's audio input jack, the system can read mes- sages to callers at remote locations. Using the concur- rent software provided, you can create voice macros that perform like keyboard macros but instead are in- voked with words. Contact Microphonics Technology Corp., 25 37th St. NE, Suite B, Auburn, WA 98002, (800) 32 5-9206. Inquiry 564. AT Compatible Equipped for Color MicroDirect has intro- duced the SST 286/C. an IBM PC AT-compatible computer with full color capabilities. Priced at $4786, the 6- or 8-MHz machine comes with an EGA-compat- ible graphics adapter, an NEC Multisync color monitor, and an NEC P56 XL 24-pin dot-matrix color printer. Standard features of the base model include I mega- byte of RAM. a 1.2-mega- byte floppy disk drive, and a 30-megabyte hard disk drive. 'Iwo serial ports, a parallel port, and eight expansion slots are also standard. The computer is bundled with PC-DOS 3.1; also in- cluded in the base price is a one-year warranty and on- site service contract. Accord- ing to the company, the computer is compatible with software and networks de- signed for the IBM PC AT. Contact MicroDirect Inc., 180 Bent St., Cambridge. MA 02141, (617) 494-5300. Inquiry 565. Multibus Board Runs on NEC V30 Comark's MV30/3 5 is an 8-MHz Multibus single- board computer that fea- tures a NEC V30 micropro- cessor and up to I mega- byte of dual-ported parity- checked RAM. The system provides sockets for an 8087 floating-point co- processor, an 8089 DMA controller, and four 28-pin EPROMs (up to 2 56K bytes). Its I/O support includes two 16-bit-wide SBX connectors and programmable parallel and serial ports. Other standard features in- clude three independent counter/timers, a program- mable interrupt controller, a programmable PROM dis- able, on-board status LEDs, and a 4-bit page register. The MV30/3 5 is compatible with Intel's iSBC 8630 and iSBC 863 5: it is also avail- able with Concurrent DOS and a 10-MHz processor. With 128K bytes of RAM. the board costs $1067; with 2 56K bytes, $1139; and with 1 megabyte, $1355. For more information, contact Comark Corp.. 93 West St., P.O. Box 474. Medfield, MA 02052, (617) 359-8161. Inquiry 566. PERIPHERALS I/O Interface for Apple He The Simple Interface He System lets you connect Apple He computers to a variety of test and measure- ment devices. Priced at $46.95. the system consists of a plug-in card and exter- nal interface unit and op- tional special-function condi- tioner boards. The interface enables you to connect up to eight switches and eight loads, in- cluding lamps, relays, and small motors. The card plugs into a slot in the computer; connections to various devices are made through signal-conditioning circuits that are housed in a car- tridge case connected to the card with a cable. The unit can be operated with BASIC or machine language pro- grams and is accompanied by a sample program disk. Available plug-in condition- ing boards include opto- isolated I/O conditioners, terminal strip boards, relay output boards with up to 7-amp control capability 3-channel 8-bit A/D con- verters, and temperature sensors. Contact Proteus Electronics Inc., RD 2. Spayde Rd.. P.O. Box 693. Bellville, OH 44813, (419) 886-2296. Inquiry 567. Hard Disks for Laptop PCs The Diskit Portable Series of hard disk drives works with the Zenith Z-171, Kay- pro 2000, and IBM PC Con- vertible portable computers. The series features an auto- booting 20-megabyte hard disk with battery backup and an average access time of 65 milliseconds. The Z-l 7 1-compatible drive plugs into an expan- sion port on the computer and works on AC power or with an optional DC adapter. Its controller lets you add a second drive or drives with a capacity of up to \80 megabytes. The Kaypro-com- patible drive works with 100/ [continued] 38 BYTE • OCTOBER 1986 MARK WILLIAMS C. AN ENLIGHTENING DEVELOPMENT FOR ATARI ST USERS. If you've tried your hand at developing applications on the Atari ST, you know the problem. Pro- . gramming tools aren't only hard to come by, they're hard to use. One might even say primitive. But now for some enlightening news: you can have all the power, portability and versatility of the C language from a leader in professional C pro- gramming tools, Mark Williams. BRING YOUR PROGRAMMING UP TO SPEED. The Mark Williams C compiler produces fast, dense code and supports the complete Kernighan & Ritchie industry stan- dard C. You'll have access to GEM's AES and VDI libraries for programs using graphics, icons and the Atari mouse. And Mark Williams C lets you take advantage of the full 16 megabytes in Atari's 68000 microprocessor. STREAMLINE DEVELOPMENT WITH POWER UTILITIES. Mark Williams C is loaded with everything you'll need for professional development. Bring the power of the UNK environment to your Atari ST with our ?^ Jj^ \ W> andrecomp S^^^/^Mr affectedl ? r o:^~ r- Features C compiler • Complete Kernighan & Ritchie C plus extensions • Up to eight register variables • Full access to AES and VDI librariesfor programs using graphics, icons and mouse • Complete UNIX-compatible librariesalloweasy portability to and from UNIX development environment. • Over 300 Atari-specific routines • One-step compiling, linking with cc command • English error messages •Lint-like error checking Microshell Command Processor, powerful UNIX style shell includes I/O redirection, pipes, command substitutions MicroEMACS Full Screen Editor with commented source code included Make Program Building Discipline Complete symbolic debugger with single-step, breakpoints and stack traceback Assembler, linker and archiver Powerful Utilities Package: egrep, sort, diff, cmp, pr, tail, uniq, wc and more Over 600 pages of documentation including 1 20 sample C programs Not copy protected MARK WILLIAMS C FOR THE ATARI ST $179 95 60 DAY MONEY BACK GUARANTEE Microshell Command Processor including pipes, I/O redirection and more. Edityour program with the highly acclaimed MicroEMACS full screen editor. Accelerate and simplify compiling with make which finds and recompiles only those modules your changes. Then, when you're ready for debugging, call on our db Symbolic Debugger with single step, breakpoint and stack traceback functions. Over 40 commands, including a linker and assembler, provide a total development package foryour Atari ST. DEPEND ON A NAME WITH A HISTORY OF PERFORMANCE. Mark Williams C for the Atari ST is part of our growing line of C compilers. A line that includes the C compiler chosen by DEC, Intel, Wang and thousands of profes- sional programmers. Now our Atari C compiler is earning its own reputation: "Finally a great C compiler that exploits the power of the ST-Sigmund Hartmann, President, Atari Software Group 'The all-around best choice for serious software development on the ST.' -Douglas Weir of ANALOG COMPUTING GET WHAT YOUR ATARI ST HAS BEEN WAITING FOR. Mark Williams C is just what your Atari ST was made for powerful, professional programming. So now that you can have Mark Williams C for just $ 179.95, what are you waiting for? Ask your Atari dealer about Mark Williams C or order today by calling 1-800-MWC-1700.* •In Illinois call: 312-472-6659 Mark Williams Company 1 430 West Wrightwood, Chicago, Illinois 60614 © 1986, Mark Williams Company UNIX is a trademark of Bell Labs. Inquiry 184 AT Power, Toshiba-Style. ■ Try tucking this into a drawer when you're done! Until now, you had to be tied to your desk in a tangle of cables and hardware to get AT power. Toshiba's T3100, on the other hand, puts AT perfor- mance anywhere you want. Specifications: • IBM PC-AT compatible • 80286 processor, running at 8MHz or 4 MHz • 640KB RAM, extendable to 2.6MB • Built-in 10MB hard disk • Built-in 720KB 3 J /2" diskette drive • MS-DOS 2.11 operating system • High-resolution gas plasma display • IBM Color Graphics Adapter (CGA) compatible • 80 x 25 character display • 640 x 400 bit-mapped graphics display • RGB, parallel, serial and external diskette drive ports • Carrying case, MS-DOS,™ BASIC included • Full-sized 81-key keyboard • 110/220 VAC switch-selectable power supply • 12.2" W x 3.1" H x 14.2" D • All this— and only 15 pounds The Toshiba T3100. Toshiba teclinology improves on AT functionality: The T3100 gives you the power of an IBM® PC-AT™ in a lean, 15-pound computer that looks superb on your desk, and slips into a drawer when you don't need it. Take it home, take it to a meeting, take it around the world— wherever your work takes you. Don't let its size fool you. The T3100 is less than a third the size of the Compaq™ Portable II, yet every bit as powerful. It uses the same 80286 microprocessor as the AT, and is fully IBM-compatible, so you can share data with the other desktop computers in your office. The T3100's 10MB internal hard disk gives you ample storage for sophisticated applications. A dual-voltage power supply lets you plug in and go to work just about anywhere in the world. And Toshiba built in an advanced gas plasma screen, to give you the clarity and brightness of a CRT display— without the bulk. "Big" system expansion options. Like any full-function desktop system, the T3100 grows with your computing needs. Toshiba offers a full line of internal ■\;-.: ■:•;■•.■::?•■•.:•.. Compact is as compact does: The T3100 is less than a third the size of the Compaq Portable II. More memory for more applications. The T3100's full 640KB RAM lets you work with the most popular IBM PC/XT™ and AT software: Integrated financial and analysis programs, large spreadsheets, lengthy documents, elec- tronic filing and more. A built-in 720KB diskette drive handles the new industry standard 3 1 //' diskettes. Each IBM- compatible pocket-sized disk holds twice as much information as a conventional 5W diskette! And you can easily transfer data to and from other desktop compu- ters using Toshiba's optional external 5 l A" diskette drive. Trademarks: PC-AT, PC/XT— International Business Machines Corporation; Compaq— Compaq Computer Corporation; MS-DOS— Microsoft Corporation. Registered Trademarks: IBM — International Business Machines Corporation; Hayes— Hayes Microcomputer Products, Inc.; SuperKey andSideKick— Borland InteniatioiKil, Inc. Software, everywhere: The T3100 runs the most popular applications written for the IBM PC/XT and AT. and external options, including an expan- sion chassis with 5 IBM-compatible slots, and an internal 300/1200 bps Hayes®- compatible modem. The next generation of computing is here. And it sure would look great on your desk. Or away from it. Desktop computing will never be quite the same again, thanks to Toshiba's advanced CMOS and proprietary gate array LSI technology. The T3100 is backed by our reputation for high quality electronics, and by our 110-year com- mitment to technological excellence. See where desktop AT power is headed. The T3100 is here now! Call 1-800-457-7777 for your nearest Toshiba dealer. Now! Includes SideKick and SuperKey. In Touch with Tomorrow TOSHIBA TOSHIBA AMERICA, INC., Information Systems Division WHAT'S NEW PERIPHERALS 220-volt AC power or with a cigarette lighter adapter. Retail prices for the drives range from $1095 to $1295. For more information, con- tact Systems Peripherals Consultants, 9747 Business- park Ave., San Diego, CA 92131, (619) 693-8611. Inquiry 568. Plug-in IEEE-488 Controller Designed for test and measurement applica- tions, the BusMate instru- ment controller enables computers with an RS-232C or RS-422 serial port to con- trol up to 14 instruments. The $695 unit contains firm- ware that enables it to operate as an IEEE-488 bus controller and run programs written in BASIC. FORTRAN, Pascal, and other languages. The controller accepts the instructions you write and generates the appropriate IEEE-488 control commands and codes; a demonstration disk and instruction manual are packaged with the unit. For more information, con- tact ICS Electronics Corp., 2185 Old Oakland Rd. San Jose, CA 95131, (408) 263- 4844. Inquiry 569. Peachtree's Hard Disk for the Mac Plus Peachtree Technology's S-20Plus hard disk drive offers 20 megabytes of stor- age capacity for the Apple Macintosh Plus. The external drive connects to the com- puter's SCSI port and pro- vides a controller and self- diagnostic capabilities. Retail price for the drive is $1395. For more information, con- tact Peachtree Technology Inc., 3120 Crossing Park, Norcross, GA 30071. Inquiry 570. Centronics Laser Printer Centronics announced its first laser printer, the PagePrinter 8, which prints at a rate of eight pages per minute. The standard model comes with 2 56K bytes of memory, which enables you to print 3 square inches of graphics at a resolution of 300 by 300 dots per inch. To print a full page of graphics at 300 by 300 dpi, you can add a memory board that upgrades the printer's RAM to 1.5 mega- bytes. The $2495 printer offers a choice of three interfaces- parallel, serial, and IEEE- 488— that come on plug-in modules. The resident font is Courier 10; other fonts and character sets are avail- able on plug-in cards. Stan- dard emulations include Diablo 630 and Epson FX-80, with Diablo 630 ECS, IBM ProPrinter, and IBM Graphics Printer emulations available as options. Contact Centronics Data Computer Corp., One Wall St., Hudson, NH 03051, (603) 883-01 JJ. Inquiry 571. A D D - I N S Boards Combine 2400-bps Modem, Display Adapter Emulex's Persyst Division is selling enhancement boards for IBM PCs. XTs, ATs, and compatibles that combine communications and display capabilities on a unit that holds a 2400-bps modem, a display adapter, a parallel port, and a clock/ calendar. Modem Combo cards are offered in two ver- sions: the Modem Mono Combo, which provides a monochrome display adapter and lets your machine run software writ- ten for IBM's CGA, and the Modem Color Combo, an IBM-compatible color display adapter. The async full-duplex modem is compatible with the Hayes Smartmodem and responds to the AT com- mand set. The serial port is dedicated to the modem. Communications parameters are set using software. Because no jumpers are needed to set parameters, you can configure your com- puter using a batch file, Per- syst says. Both modems have a parallel printer port that's compatible with a Centronics or Dataproducts interface. You can configure the bidirectional I/O port for custom devices that require two-way communications. The monochrome version supports a 7- by 9-dot char- acter in a 9- by 14-dot field and provides an 8-character by 2 5-row display. The color display adapter supports a 7- by 7-dot character in an 8- by 8-dot field. Both boards include IBM's 256- character set and work with a light pen. Suggested list price for each Modem Combo card is $899. Contact Emulex Corp.. 3 545 Harbor Blvd., P.O. Box 672 5, Costa Mesa, CA 92626, (714) 662-5600. Inquiry 572. Recoverable RAM Disk for Mac Plus MacMemory's MaxSave recoverable RAM-disk system for the Macintosh Plus combines a card with RAM disk and print spooler software. In the event of a system crash, the company says, you only have to press the computer's reset button to recover the RAM disk's data; MaxSave intercepts the reset signal to preserve RAM disk information while rebooting. The unit plugs into the Mac's ROM sockets without modification and uses the machine's internal memory. It can fully use 1 -megabyte or larger memories. The system's MaxRAM software automatically cre- ates the RAM disk when you boot up the machine and copies your files to it. MaxRAM works with hard disks, 400K- and 800K-byte drives, and memory sizes from 512K bytes to 4 mega- bytes. MaxPrint, a desk- accessory print spooler, handles graphics as well as text. It enables you to spool several documents at once and change applications while printing. It can also spool to a hard disk. The MaxSave System sells for $119. You can buy Max- RAM and MaxPrint as a separate package for $49.95. Contact MacMemory Inc., 473 Macara Ave., Suite 701, Sunnyvale, CA 94086, (408) . 773-9922. Inquiry 573. Card, Software Let PCs Read Apple Disks The Matchpoint-PC pack- age, which includes a card and software, lets IBM PC users read from and write to Apple DOS, Pro- DOS, SOS, and CP/M disks. The half-size card fits in a PC expansion slot and in- (continued) 42 BYTE • OCTOBER 1986 Inquiry 262 — ► Where to look to find over 600 software programs* Introducing the 1987 edition of Radio Shack's software reference guide. Now there's no more searching for the "right" program. The new 1987 Radio Shack Software Reference Guide is all you need for one'Stop shopping. You'll find hundreds of programs for all our computers — from XENIX® and MS-DOS® lines to portables. This catalog features the most comprehensive software selection available. Essential business pro* grams such as accounting, data- base management, and business graphics are available, as well as a variety of word-processing, entertainment and educational software programs. 1987 Radio Shack* Software Reference Guide Over 600 programs listed by category and available off the shelf or through our Express Order" service. Radio /hack COMPUTER CENTERS A OIWSJON OF TANOr CORPORATION EDUCATION (HOME) GRAPHICS/DESIGN INDUSTRY-SPECIFIC TOOLS INTEGRATED PRODUCTS OPERATING SYSTEMS PERSONAL MANAGEMENT PROGRAMMING TOOLS WeVe got the program for your specific need There is a variety of industry- specific programs from which you may choose regardless of whether you are a doctor, a lawyer or other professional. And of course, there are dozens of programs and utilities specifi- cally for progammers, including the popular XENIX Development System, and Microsoft MS-DOS languages like COBOL, Fortran, and Pascal. We also included such utilities as Superkey™, which customizes and automates your software, and XMENU™, a XENIX utility that gives your system a menu-driven interface for the system administrator. We offer you the software you need most — whatever the applica- tion. So visit a Radio Shack Com- puter Center today — it's your one-stop software store. Radio /hack The Technology Store" A DIVISION OF TANDY CORPORATION Send me an RSC-18 Software Guide. Mail To: Radio Shack, Dept. 87-A-297 300 One Tandy Center, Fort Worth, TX 76102 Tandy/Registered TM Tandy Corp. XENIX and MS-DOS/Registered TM Microsoft Corp. Superkey/TM Borland International. XMENU/TM Telexpress. WHAT'S NEW A D D - 1 N S eludes connectors and cable to hook it to the floppy disk drives. Besides Matchpoint soft- ware, the package comes with UniForm-PC (version 2), which makes the computer read CP/M disks as if they were PC-DOS disks. Used with the Matchpoint board, it also lets you use Apple SoftCard and North Star CP/M disks on a PC. MatchPoint-PC retails for $195. Contact Micro Solu- tions Inc.. 125 South Fourth St., DeKalb. 1L 60115, (815) 756-3411. Inquiry 574. Memory Upgrade for Atari 520ST EZRAM 520, a 512K-byte memory upgrade for Atari's 520ST. raises RAM to I megabyte. 'Ierrific Periph- erals says the kit is designed for simple installation. You make the 13 solder connec- tions on a template, not on the motherboard. The kit comes with a high-speed digital signal cable, and the memory banks are fully de- coupled with high-frequency ceramic capacitors. The upgrade kit has a sug- gested retail price of $199 and is covered by a 180-day warranty. Contact 'Ierrific Peripherals, 17 St. Mary's Court, Brookline, MA 02146. (617) 232-2317. Inquiry 57 5. Multiuser Converter Adds Serial Ports Control Electronics has a line of multiuser boards compatible with Software Link's MultiLink and with UNIX-based systems. The MultiSerial-4 and Multi- Serial-8 add multiuser capabilities to IBM PC ATs and compatibles through the use of fully wired 2 5-pin RS-232C asynchronous ports. Each serial port can support either a modem or a terminal. The ports are fully programmable for start bits, stop bits, parity bits, and data-transmission rate. You can address as many as 64 ports. The MultiSerial-4 port board lists for $2 59; Multi- Serial-8 lists for $3 59. Con- tact Control Electronics Inc., 374 50 Enterprise Ct., Farm- ington Hills, Ml 48018, (313) 553-3400. Inquiry 576. SOFTWARE • PROGRAMMING LANGUAGES AND AIDS AC/FORTRAN Compiler for the Atari 520ST and 1040ST Absoft Corp. designed its ANSI FORTRAN 77 compiler with debugger to run mainframe programs downloaded to an Atari 520ST or 1040ST. AC/FOR- TRAN is a disk-based com- piler, requiring 46K bytes of RAM, which enables you to develop large programs on a standard 256K-byte machine. Native object code for the MC68000 is generated by AC/FORTRAN. Development tools support of overlays and virtual arrays and dynamic linking of programs at run time. Included are a full-screen source-level sym- bolic debugger, linker, library manager, single- and double-precision floating- point software, complex number support, and a C in- terface. According to Absoft, there is no limit on code or data size. AC/FORTRAN is source- compatible with Microsoft's FORTRAN compiler for the Macintosh and AC/FORTRAN for the Amiga. The program is not copy-protected and sells for $199.95. For more information, contact Absoft Corp., 4268 North Wood- ward. Royal Oak, MI 48072, (313) 549-7111. Inquiry 577. C Library Support Package C Tools Plus consists of over 200 functions sup- plied in source code that run on the Microsoft and Lattice 3.0 C compilers. A utility is included that for- mats the source code listings for printing. The program supports the IBM Enhanced Graphics Adapter, and you can create applications using more than one display adapter and monitor at a time. Other features include screen handling, windows, interrupt service routines. DOS directory and file handling, memory manage- ment, and string functions. You can write memory- resident routines by access- ing DOS functions from within an interrupt service routine. A sample program is provided that dumps the screen to a disk file. To use C Tools Plus, you must have an IBM PC, XT, AT, or compatible with MS- DOS 2.0 or higher, and a Microsoft or Lattice 3.0 (or later) C compiler. C Tools Plus sells for $175. For more information, contact Blaise Computing Inc.. 2 560 Ninth St., Suite 316, Berkeley. CA 94710, (415) 540-5441. Inquiry 578. Program in C Using English Syntax Programming in C is possible without know- ing C, according to cLine. The language cEnglish uses English-like syntax and com- piles your programs into Lattice C-compatible source code. Programs in cEnglish run on IBM PCs with MS-DOS or PC-DOS 2.0 or higher and a hard disk. They also run on the AT&T 3B series running UNIX, the ITT XTRA, XL, and XP series running XENIX, and the DEC VAX series. The cEnglish Data Base In- terface Library's functions provide access to C-ISAM and compatibility with PC- NET and any other MS-NET file-sharing system, the com- pany reports. The price of cEnglish is $79 5. Contact cLine Inc., 3550 Camino del Rio N, Suite 208, San Diego, CA 92108, (619) 281-5593. 281-5593. Inquiry 579. Pascal Cross Compiler The CP-97 Pascal Cross Compiler for the 8097 16-bit microcontroller on a chip runs on IBM PCs and compatibles. The CP (Con- trol Pascal) system includes a screen editor, cross com- piler, interpreter, translator, terminal driver, and run-time support software. Compiler output is in in- termediate p-code, which is later translated into 8097 object code. The editor, compiler, and interpreter are integrated into a single menu-driven module. The CP-97 system costs $200. Contact Allen Sys- tems, 2151 Fairfax Rd., Columbus, OH 43221, (614) 488-7122. Inquiry 580. (continued) 44 BYTE • OCTOBER 1986 Inquiry 192 — ► THE GREAT ESCAPE! FROM IVORY TOWERS AND COLD COMPUTER ROOMS TO THE WARMTH OF YOUR OFFICE. Artificial intelligence for business has arrived in a revolutionary new product . . . Guru. At last, artificial intelligence designed espe- cially for business! Guru brings together expert system capabilities of artificial intelligence, the productivity of familiar business computing tools and the ease of communicating with your computer using menus, commands or plain English. All available in a single, integrated program. Guru works like human experts, considering uncertainties, reasoning through forward and backward chaining, asking for more infor- mation when needed, and explaining its recommendations. Guru's expert system works hand-in-hand with all the familiar business computing tools like spreadsheets, statistical analysis, business graphics and a programming language, always available for both expert consultation and your everyday business computing needsr Best of all, you won't need to learn LISP or PROLOG or buy fancy computers . . . Guru runs on your PC and communicates in plain English! Guru is artificial intelligence that means business. For more information, call or write Micro Data Base Systems, Inc./Marketing & Sales, P.O. Box 248, Lafayette, IN, 47902, 317/463-2581, Telex 209147 ISE UR. ARTIFICIAL INTELLIGENCE THAT MEANS BUSINESS mdbs is a registered trademark and Guru Is a trademark of Micro Data Base Systems. Inc., P.O. Box 248, Lafayette. IN. 47902 -r iiidbs WHAT'S NEW SOFTWARE • SCIENTIFIC AND ENGINEERING TUTSIM Linked with FFT FANSY is a program that analyzes the time re- sponse of a TUTSIM model on the IBM PC and com- patibles. Developed at the University of Waterloo in Canada, FANSY stands for frequency analysis and synthesis. TUTSIM is a computer simulation program that uses block diagrams to im- plement system equations term by term. You can vary the model design, add or delete blocks, change inter- connections, and vary parameters and values at any time during a simula- tion. Conversion of a filed time response of a TUTSIM simulation to the frequency domain is done by FFT routines. FANSY requires the IBM Color Graphics Adapter to show gain and phase plots versus frequency. Two ver- sions of FANSY come on one disk: Both run on the IBM PC. but one is for the PC with an 8087/80287 co- processor. FANSY is priced at $185. For more informa- tion, contact Applied i. 200 California Ave.. Suite 214. Palo Alto. CA 94306. (415) 32 5-4800. Inquiry 581. Data Acquisition and Display on the Apple He and He You can perform numerical operations on large sets of data on an Apple Me or lie with Vidi- chart-IV The program enables you to define four data sets of up to 8192 values, each with its own scaling information that transforms the raw data into physical values in any units you choose. On a high-resolution screen (560 by 192 pixels), EE Designer circuit design CAD package. you can display up to four windows of any size at any position. Each plot is labeled with numbers and text labels along the axes, and you can superimpose additional labels anywhere on the screen. You can plot or overlay any data set in any window, using dotted or solid lines or filled-area plots in white on a black background. In any window you can shift, compress, or expand the x or y scale, or you can zoom in on a region framed by the cur- sors. The cursor displays any value along a curve. You can enter data from the keyboard, disk, or joy- stick, and output data to the screen, disk, or printer. Menus list options, and on- line help screens are avail- able for any commands. The program includes utility numerical, normalization, •baseline definition, and peak integration commands. You must have an Apple lie with a 64K-byte extended 80- column card or an Apple lie. The price is $165. Con- tact Interactive Microware Inc., P.O. Box 139. State Col- lege. PA 16804-0139. (814) 238-8294. Inquiry 582. EE Designer Enhanced Visionics announced en- hancements to its EE Designer CAE/CAD software for circuit design and printed circuit board layout. It now supports the En- hanced Graphics Adapter in 640 by 350 resolution in 16 colors. And it supports the bus version of the Microsoft mouse and compatibles as well as the serial mouse. The $97 5 package runs on IBM PCs. Xlfc. ATs. and com- patibles. Contact Visionics Corp., 1284 Geneva Dr., Sunnyvale, CA 94089, (800) 22 5-5669; in California, (408) 745-1551. Inquiry 583. Three-Dimensional Graphics on the Atari ST CAD-3D is a computer- aided design program for the Atari 520ST and 1040ST It can create solid- model animation sequences and three-dimensional scenes in color, with shading from adjustable multilight sources. The software uses Digital Research's GEM interface and comes with four sample scenes. It is priced at $49.95. For more informa- tion, contact Antic Publish- ing Inc., 524 Second St.. San Francisco. CA 94107, (415) 957-0886. Inquiry 584. Mainframe Statistics Package on the AT&T UNIX PC P-STAT has been con- verted from mainframe software to a package that runs on the AT&T UNIX PC (Model 7300). It manages and analyzes data by com- bining data and file manage- ment, data display, statistical analysis, survey analysis, and report-writing capabilities. P-STAT features an on-line help facility, an interactive editor, flexible data entry and validation, relational database capabilities, macros, and statistical pro- cedures. The program con- sists of a single source file of about 300,000 lines of FORTRAN code and costs $995. For more information, contact P-STAT Inc.. P.O. Box AH. Princeton. NJ 08542, (609) 924-9100. Inquiry 585. Uni-CAD for MS-DOS Systems Xysys announced that Uni-CAD. a computer- aided design program, is now available for IBM PC XTs, Afe, and compatibles. Uni-CAD supports systems with Color Graphics Adapters or Enhanced Graphics Adapters and one monitor, or it will run with two screens. Uni-CAD requires PC-DOS or MS-DOS 2.1 or higher, 640K bytes of RAM. a graphics adapter, and a plot- ter. Prices start at $1695. Contact Cyber/Source. 24000 Telegraph Rd., Southfield. Ml 48034, (313) 353-8660. Inquiry 586. (continued) 46 B YTE • OCTOBER 1986 THIRD GENERATION PROGRAMMERS FROM GTEK GTEK MODEL 9000 (E)(E)PROM/MPU PROGRAMMER If time is money, then let us save some for you. The new model 9000, using its quick pulse algorithms, can program a 2764 in 10 seconds. The 9000 offers higher performance than the competition has even be- gun to think about. Baud rates to 57,600. Supports thru 1024K standard, 8 meg wordwide parts with adapter, Cypress proms, mpu's. NO personality modules. As with our other programmers, RS- 232, ASCII data formats, and flexible hand- shaking make the model 9000 compatible with virtually any computer. Introductory price $749. MODEL 7228 (E)EPROM/MPU PROGRAMMER The standard by which other other programmers are judged. With thousands in the field, the time proven 7228 has become our most popular programmer. Intelligent al- gorithms standard. Programs a 2764 in one min- ute. Supports devices thru 512K, mpu's, eeproms cmos. NO personality modules. ^_ Price $599 MODEL 7956 GANG (E)EPROM/MPU PROGRAMMER The 7956 can program eight 2764's in one minute using intelli- gent algorithms. Standard support thru 512K, eeproms, cmos, mpu's. A must for production emvironments. Available in stand alone only configuration for $979 or with RS-232 interface for $1099 MODEL 7128 (E)EPROM/MPU PROGRAMMER The programmer that won't die. Thousands manufactured since 1982. Supports thru 256K. PRICE REDUCED to $389 including free PGX communications software, a $95 value. MODEL 705 Motorola 68705 family programmer. Transfers object code to 28 and 40 pin mpu's. Single key stroke operation $299 MODEL 7324 PAL PROGRAMMER The 7324 has a built-in compiler. It supports 20 and 24 pin pals by MMI, NATIONAL, and TI, including the new shared product parts 20S10, 20RS10,20RS8, 20RS4. It operates stand aloneor via RS-232 with PALX communications package. Functionally tests parts after programming and securing. External compilers are supported thru JEDEC and AHS object formats $1499 MODEL 7322 Same as 7324 but no stand alone capability $ 1 249 UTILITY PACKAGES PGMX High Speed Communications Package. For IBM PC, AT and compatibles. Bi- directional data rates to a scorching 57600 bps. Provides flexible manipulation of Intel Hex files, both 8 and 16 bit formats, and binary files. Use with model 9000 $149 PGX Utility Package. For PCDOS, CPM, TRSDOS, ISIS, MSDOS. Use with 9000. 7956, 7228,7128 $95 PALX Utility Package. Provides communication, download of Palasm source, JEDEC and AHS objectfilesto models 7324, 7322, 7316pal programmers $95 CROSS ASSEMBLERS and SIMULATORS You name the cpu, we've got the assembler. Simulators allow target software development and testing on your computer. Versions available for PCDOS, MSDOS, CPM. . Start at $250 ERASERS— We stock both Ultra Violet ACCESSORIES CABLES-serial $30, parallel $30, custom Call For Quote MODEL 481/482/483 8048family adapters $98 MODEL511/5128051 family adapter $174 MODEL 755/756 8755 adapter ... $135 SPECIAL REQUIREMENTS? Call Us For A Quote On Custom OEM Programmers. Products and Spectronics f o r your selection. MODEL CHIPS TIMER LAMP PRICE DE4 8 N Tube $80 PE14T 9 Y Tube $139 C25 25 Y Grid $350 C50 50 Y Grid $600 r V Run CPM Software on Your IBM or IBM Compatible AH Call GTEK's CPM Hotline 1-601-467-9019 If you are a CPM user who wants to convert to MSDOS or PCDOS or a PC user who would like access to the thousands of CPM programs in existance, here is the perfect solution to the problem: CPMulator from GTEK. CPMulator is the only field proven emulator which emulates the complete Z-80 instruction set. Terminal attribute emulation is Televideo, Lear Siegler, or the ANSI standard. CPM .COM programs reside under PCDOS and are executable under PCDOS as well as 8086 pro- grams. Comes complete with COPYCPM, a disk con- version utility which allows transferring data and programs to and from 54 different CPM disk formats. Free CPM utility programs are also included. For speed use the 8080 CPMulator along with theNECV20orV30chip. PRICE REDUCED Z80 CPMulator. DR5PC-EMZ80... $ 99.00 8080 CPMulator, DR5PC-EMV205 $ 99.00* Z80, 8080 CPMulator, DR5PC-EMZV205 $149.00* •Requires NEC V20 or V30. NEC V20 (5Mhz) $ 12.00 Single Board Computer Model 2010 • 64 to 256K bytes data or program ram. • Use 2764 or 27512 eprom or eeprom program memory. • Uses single ended 9V @ 500 ma supply. • Use 8031. 8032, 8751, 8752 mpu. • 40 bit programmable I/O lines. • Expansion interface connector. • Baud rates to 57,600 baud. • Built in 5 volt regulator. • Built in rom monitor. • Small — 3.5 x 7 inches. • 8052 AH basic option. ONLY $299.00 WITH MANUAL MODEL 8014 PRINTER BUFFER/SWITCH OK is $99, 128K is $339, and 256K is $399 TEK Development Hardware & Software P.O. Box 1346, Bay St. Louis, MS 39520 U.S.A. (601) 467-8048; TELEX 315814 (GTEK UD) ,INC. Inquiry 128 GTEK, PALASM, CPM, MS-DOS, PC-DOS, ISIS, TRSDOS, & CPEmulator are registered trademarks. OCTOBER 1986 IYTE 47 WHAT'S NEW SOFTWARE BUSINESS AND OTHER Design and Paint with Atari ST The GEM-based package PaintPro lets you design and paint on the Atari ST. It supports up to three active windows and comes with free-form sketching, lines, circles, ellipses, boxes, fill, copy, move, spray, zoom, undo, and text capabilities. PaintPro works with most dot-matrix printers, the com- pany reports, and it works with either monochrome or color systems. The price of the program is $49.95. For more informa- tion, contact Abacus Soft- ware. P.O. Box 7211. Grand Rapids. Ml 49510. (616) 241-5510. Inquiry 587. Amortization in C MicroCost Software an- nounced Effortless In- terest, an amortization pro- gram written in C that runs on 64K-byte RAM CP/M-80 systems or IBM PCs and compatibles with PC-DOS or MS-DOS 2.0. The company reports that the program is accurate up to 14 significant digits. With Effortless Interest, you select daily, weekly, bi- weekly, monthly, quarterly semiannual, or annual payments on a loan, or compounding interest on a loan. Up to 36 combinations of time periods are possible. You can also value a month- ly payment as an annuity, on the assumption of monthly payments and com- pounding of discounts, for as many months as you select. Effortless Interest costs $2 5. For more information, contact MicroCost Software. 22015 Marine View Dr. S. Des Moines. WA 98198. (206) 878-2796. Inquiry 588. Palantir's window-oriented spelling checker. Spell-Check Windows Palantir Software's Win- dows Spell was created for use with Microsoft Win- dows, but it will work with most windows documents, the company reports. Windows Spell can check spelling in long documents while you work on another application. It will flash when it spots a spelling error. The program comes with a 65.000-root-word dic- tionary, and it will display guesses to help you correct misspellings. Suggested retail price of Windows Spell is $79.95. It runs on IBM PCs and com- patibles with 512K bytes of RAM. For more information, contact Palantir Software, 12777 Jones RcL Suite 100, Houston, TX 77070. (713) 955-8880. Inquiry 589. Printer Command Control The memory-resident program Key Print from Instant Data Processing Inc. lets you send commands to keypress. You can set the trigger keys and printer commands although the program has predefined files that you can use or recon- figure. IDPI claims that the pro- gram supports all printers. It is compatible with the IBM PC family and requires MS- DOS or PC-DOS 2.0 or higher. The minimum mem- ory requirement is 128K bytes of RAM. Key Print sells for $18. For more information, contact Instant Data Pro- cessing Inc., 411 East Com- mercial Way La Habra, CA 90631. (213) 691-0216. Inquiry 590. WHERE DO NEW PRODUCT ITEMS COME FROM? The new products listed in this section of BYTE are chosen from the thousands of press releases, letters, and telephone calls we receive each month from manufacturers, distributors, designers, and readers. The basic criteria for selection for publication are: [a) does a product match our readers' interests? and [b) is it new or is it simply a ^introduction of an old item? Because of the volume of submissions we must sort through every month, the items we publish are based on vendors' statements and are not individually verified. 1/ you want your product to be considered for publication [at no charge), send full infor- mation about it. including its price and an address and telephone number where a reader can get further information, to New Products Editor. BYTE. One Phoenix Mill lane. Peterborough. NH 03458. Business Database for IBM PCs TeleMagic! maintains your database of con- tacts, telling you who to call and when, and even dials the phone. You can produce labels, letters, order forms, invoices, packing slips, envelopes, phone lists, and customer names with one keystroke. A scripting feature enables telemarketers to run through a sales presenta- tion, making changes as necessary according to the customer's response. The list price of TeleMagic! is $95. Contact Remote Con- trol. P.O. Box 2861, Del Mar, CA 92014, (800) 992-9952; in California, (800) 992-5228. Inquiry 591. Small Business Accountant PC Accountant enables you to keep track of your small-business income and expenses. It can print and address checks, balance your bank accounts, and track accounts payable and receivable. It can also pro- vide reports on income and expenses. PC Accountant can handle up to 200 names and addresses. 200 accounts with balances, and 1500 transactions per month. Menus and windows guide you through the program. You need an IBM PC or compatible with 128K bytes of RAM. MS-DOS or PC- DOS 2.1 or higher, a mono- chrome or color monitor, an 80-column printer, and one floppy disk drive. The program costs $39.95 plus $5 shipping. Contact Business Applications Inc.. 3211 Bonnybrook Dr. N. Lakeland. FL 33803. (813) 644-5026. Inquiry 592. 48 B YTE • OCTOBER 1986 EVENTS AND CLUBS October 1986 Events PC Expo. McCormick Place II. Chicago, IL. Jim Mion, PC Expo. 333 Sylvan Ave., Englewood Cliffs. NI 07632, (800) 922-0324; in New Jersey, (201) 569-8542. October 7-9 ECCO's Sixth Annual Educational Computer Fair-The Computer Connec- tion: Using the Computer in the Class- room, Cleveland. OH. Alice Fredman, Educational Computer Consortium of Ohio. 1123 S.O.M. Center RcL Cleveland. OH 44124, (216) 461-0800. October 9-10 Sixth Annual Symposium on Small Computers in the Arts, Philadelphia, PA. Symposium. P.O. Box 1954, Philadelphia, PA 19107. October 10-12 Fifth International Electronic Imag- ing Conference & Exhibition, Arlington, VA. Conference Management Corp., 17 Washington St.. P.O. Box 4990. Norwalk. CT 06856-4990. (203) 852-0500. October 14-15 Second Annual Conference: Computer Technology/Special Education/Rehabil- itation, California State University, North- ridge. Dr. Harry Murphy, CSUN Office of Disabled Student Services, 18111 Nordhoff St., Northridge. CA 91330, (818) 885-2578. October 16-18 UNIX Expo. Jacob K. Javits Convention Center, New York. NY. National Exposi- tions Co. Inc., 49 West 38th St., Suite 12A. New York. NY 10018, (212) 391-9111. October 20-22 Infomatics 86. Sheraton Centre. Tbronto, Ontario. Canada. Infomatics 86, Interna- tional Information Management Congress, P.O. Box 34404. Bethesda, MD 20817. (301) 983-0604. October 20-23 Second Annual Symposium for Micro- computers in Law Enforcement, Jack- sonville, FL. Russ Arend, Institute of Police Technology and Management, 4 567 St. Johns Bluff Rd. S, Jacksonville, FL 32216, (904) 646-2722. October 2 1 -23 Ergodesign '86: THE Evolution of the Electronic Workplace, Montreux, Switzerland. Ergodesign '86, P.O. Box 122, CH-1820 Montreux. Switzerland, tele- phone: (21) 63 04 40, telex: 453 2 54 mtx ch. October 21-24 THird Annual Flat Information Dis- plays Conference, San Jose, CA. Interna- tional Planning Information Inc., 465 Con- vention Way, Suite I. Redwood City, CA 94063, (415) 364-9040. October 22-23 International Computers & Communi- cations 1986-2000, Washington, DC. In- ternational Computers & Communications, P.O. Box 17392, Washington, DC 20041, (703) 476-2604. October 22-25 Fourth Annual Computer Technology for the Handicapped International Conference, Minneapolis, MN. Closing the Gap, P.O. Box 68, Henderson, MN 56044, (612) 248-3294. October 22-26 Medinfo 86: Fifth World Congress on Medical Informatics, Washington, DC. Medinfo 86, Secretariat: Office of CME, George Washington University, 2300 K St. NW, Washington, DC 2003 7, (202) 676-8929. October 26-30 Fifth Annual Pacific Northwest Com- puter Graphics Conference, Eugene, OR. Pacific Northwest Computer Graphics Conference, University of Oregon Con- tinuation Center, I 5 53 Moss St., Eugene, OR 97403, (800) 228-6891: in Oregon, (800) 824-2714 or (503) 686-3537. October 27-28 Ninth Northeast Computer Faire, Boston, MA. The Interface Group Inc.. 300 First Ave.. Needham, MA 02194, (617) 449-6600. October 30-November I. 1986 National Conference-East: Com- puters & Reading/Learning Difficulties, Philadelphia, PA. Diane Frost, Educational Computer Conferences, Dept. N, 1070 Crows Nest Way, Richmond, CA 94803. (415) 222-1249. October 30-November I 1986 International Workshop on FORTH and Its Applications, National Taiwan Institute of Technology, Taipei, Republic of China. FORTH Interest Group, P.O. Box 8231, San Jose, CA 9515 5, (408) 277-0668. October 31 -November 2 1/ you send notice of your organization's public activities at least four months in advance, we will publish them as space permits. Please send them to BYTE (Events and Clubs), One Phoenix Mill hxm, Peterborough, NH 03458. Clubs Nashville Macintosh Users Group, c/o Clark Thomas, 2305 Ellison Place #C-5, Nashville, TN 37203. (615) 327-1757. PC-S1G News, 1030 East Duane Ave., Suite D, Sunnyvale, CA 94086, (418) 730-9291. World Wide ST Users Group. WW STUG, 77 Kenton Place, Hamburg, NY 14075. Satronics Information Exchange (satellite TV SIG), Mark Miller, P.O. Box 52261, Philadelphia, PA 191 1 5. BBS at (21 5) 698-1905. Hot Flash (newsletter for UNIX users), Unisource Software Corp., Donna Woz- nicki, 23 East Street, Cambridge, MA 02141, (617) 577-8383. Southwest APL Users Group (SWAPL), Jim Fiegenschue. 120 Oak Grove Circle, Double Oak, TX 75067-8461, (214) 539-9281. Tinker Atari Computer Enthusiasts (TACE), P.O. Box 194 56, Oklahoma City, OK 73144. Calgary Hyperion User's Group (CHUG). David Tansey, 3411-33 Street SE, Calgary, Alberta, Canada T2B 0V9. Green Country Computer Association, Michael S. Keller, P.O. Box 497, Tulsa, OK 74101. MS-DOS User Group (MUG) o f Olympia, Brian Geppert, 1321 Skyridge Street SE, Lacey, WA 98503. The Carrier (journal of the Telecom- munications Users Group), P.O. Box 45254, Seattle, WA 98145-0254. CodeWorks (magazine devoted to prob- lem solving with BASIC), 80-Northwest Publishing Inc., 3838 South Warner, Tacoma, WA 98409-4698, (206) 475-2219. Laserboard, New York's Electronic Mac User's Group, Stuart Gitlow, 1212 Fifth Avenue. Suite 15C, New York. NY 10029-5210. (212) 831-6413 (voice). 348-5714 (data). the SErfTlNEL (newsletter for TI Profes- sional users), Dick Mitch, Box 635, Dunlap, CA 93621, (209) 338-2472. ■ OCTOBER 1986 -BYTE 49 Princeton. The Here are some of the reasons why Full EGA and CGA support. Princeton EGA monitors bring you 64 brilliant colors and bright sharp images in enhanced graphics mode, with 640 x 350 resolution. Your EGA software never looked better. Plus our HX-12E and HX-9E automatically switch from EGA to CGA mode, when needed. Compatibility. Princeton monitors are 100% compatible with leading personal computers like IBM®, Compaq®, and more. No matter what system you have, there's a Princeton monitor that's right for you. Quality Image. A .28mm dot pitch (the finest dot pitch of all leading EGA displays), bright colors, and sharp resolution give Princeton monitors a quality image that cannot be beat. Easy Viewing and Ergonomlc Design. Princeton monitors are designed Tor easy use, too. You get easy viewing with the HX-12E's black matrix tube and etched nonglare screen. The lines are crisp, the characters sharp, and the colors even, so you're more productive. Controls are located on the front, where you can reach them. Reliability. Princeton monitors are designed and manufactured to meet your most demanding needs. Only the finest components are used. The result: dependable performance day in and day out. Value. No other monitor gives you more for the money than Princeton. Compare for yourself. Feature for feature there's not a better value around. Availability. Princeton monitors are as easy to get your hands on as they are easy to use. You can find them at computer stores around the world. Reputation. More and more, people are making Princeton Graphic Systems their number one choice in personal computer displays. Because people know Princeton delivers the ultimate in compatibility, reliability, and performance. IBM is a trademark of International Business Machine, Inc. Compaq is a trademark of Compaq Computer Corp. Wall Street Journal is a registered trademark of Dow Jones, Inc. 50 BYTE • OCTOBER !986 best choice EGA monitors. For the no-compromise enhanced graphics monitors, look for the Princeton Graphic Systems name. Princeton delivers everything you need in a quality EGA display, from crisp, clear, full EGA support to rugged reliability. When you choose Princeton you choose the best. HX-9L The first IBM compatible 9" high reso- lution color monitor to support EGA. Has a .28mm dot pitch black matrix tube and etched nonglare screen for sharp, crisp displays and features a built-in tilt/swivel stand and green/amber switch. HX-12L The first IBM compatible high resolution color monitor to support EGA with a .28mm dot pitch. The HX-12E builds on the award winning features of the HX-12 and features 640 x 350 resolution for sharp, crisp text and colorful graphics. PRINCETON GRAPHIC SYSTEMS AN INTELLIGENT SYSTEMS COMPANY 601 Ewing Street, Bldg. A Princeton, NJ 08540, Telex: 821402 PGSPRIN, (609) 683-1660, (800) 221-1490, Ext. 804 Inquiry 239 OCTOBER 1986 -BYTE 51 Conducted by Steve Garcia ASK BYTE Foreign-Language Daisy Wheels Dear Steve. A letter by Chris Leiss in the November 1985 BYTE (page 48) attracted my atten- tion. He is using a Brother CE-50 type- writer to print Arabic; I'm using a Brother HR-15 XL printer (which uses the same daisy wheels) and a BASIC program to print in various European languages (generally, European versions of American word processors do not permit you to mix several languages in the same text). I would like to know who sells Russian and/or Greek daisy wheels that fit the Brother printers. J. Dings Pisa, Italy You 're in luck! I found a distributor that can obtain Russian and Greek print wheels for your printer. Mr. Peter Neidenbach Printer Land Inc. 210 West Roosevelt Rd. Villa Park, IL 60181 (314) 833-5074 Mr. Neidenbach stated that he could obtain other foreign-language print wheels as well—Steve C Compilers Dear Steve, At present, I am doing some initial work using a BASIC compiler. I am not satisfied, however, because the resulting programs are far slower than I expected (besides, the version I have does not support the 80287). I would like to use a C compiler instead and 1 need one that meets the fol- lowing requirements: • Optimized for the 80286/80287 instruc- tion set • Supports virtual memory • Graphics support for the IBM Profes- sional Graphics Adapter (PGA) • Can address more than the 640K-byte memory limit imposed by PC-DOS • Has a friendly and effective editor and debugger Also, I recently acquired an OEM board of an IBM PC AT-compatible computer. This machine is equipped with an 8-MHz 80286 and 80287. I intend to use this machine for real-time 3D graphics anima- tion. Could you help me find references for further study? I am also very interested in fractal geometry. Do you have any suggestions? Anthony Cayetano Paranaque, Philippines The January 1986 issue of PC Tech Jour- nal reviewed a crop of C compilers. Rather than pick one out of the list for you, I'd suggest that you go through the article and match them against your re- quirements. However, some caveats are in order. None of the compilers will generate code for the 80286 in protected mode because DOS doesn't support this. Therefore, all of your programs will treat the 80286 as just a faster 8086. Similarly, the 80287 will be run as a faster 8087. The 640K-byte limit imposed by DOS is, unfortunately, rooted in hardware: That's all the space that's left after you account for all the display adapters and whatnot that share the address space with the system RAM. The 80286 can ad- dress up to 16 megabytes in protected mode, but you can't get there from here. The new Lotus/ Intel /Microsoft Expanded Memory Specification boards allow you to stuff up to 8 megabytes in a PC, but it's bank-switched using four 16K-byte windows inside the 640K-byte limit and isn't handy for your project. Similarly, virtual memory is handled by the operating system rather than the lan- guage. PC-DOS, as you might have guessed by now, doesn't support virtual memory. Support for the PGA isn't part of the compiler but is provided as either a set of library functions or a device driver. Given the complexity of the PGA, the support code is only now starting to ap- pear, and 1 don't have any recommenda- tions on any packages. The basic reference for fractals is The Fractal Geometry of Nature by Benoit B. Mandelbrot (W. H. Freeman, 1982). It's not particularly helpful with program- ming, but it gives you a good understand- ing of just what fractals are. The Com- puter Recreations column of Scientific American has had several fractal and 3D programs lately— Steve New Life for Lil' Orphan Adam? Dear Steve, I am planning to buy a Coleco Adam. It's cheap, comes with a word processor in ROM and a printer, and has a keyboard that feels comfortable to me. However, I like to program in C, and since the machine does not come with CP/M or a disk drive, I must find a way to port a C compiler over to the Adam. 1 have decided that the easiest way to do this is to write a macro assembler in Coleco's SmartBasic, use the assembler to write a TIL (threaded interpreted lan- guage)-based operating system, and then write a C compiler in TIL code. The com- piler that I have settled on is the Small-C compiler. 1 have the source code for this compiler in The Small C Handbook by Hen- drix (Reston, 1984). Unfortunately, the compiler uses a standard function library as well as an "stdio.h" file, and the source code for either file is not listed in the book. Where can I get an example of the source code for a Z80-based system? Also, I was recently reading a copy of Computer Shopper magazine, in which I ran across an advertisement for a subscription to a magazine called Computersmyth. I cut out the return slip and purchased a money order for a two-year subscription, but [continued) IN ASK BYTE, Steve Garcia answers questions on any area of microcomputing. The most representative questions received each month will be answered and published. Do you have a nagging problem? Send your inquiry to Ask BYTE do Steve Garcia P.O. Box 582 Glastonbury. CT 06033 Due to the high volume of inquiries, personal replies cannot be given. All letters and photographs become the property of Steve Garcia and cannot be returned. Be sure to include "Ask BYTE" in the address. The Ask BYTE staff includes manager Harv Winer and researchers Eric Albert. Bill Curlew. Ken Davidson, kannette Dojan. )on Elson. Roger \ames. Frank Kuechmann. Dave Umdberg. Edward Hisley, Dick Sawyer. Andy Siska. and Robert Stek. 52 B YTE • OCTOBER 1986 COPYRIGHT© 1986 STEVEN A. C1ARC1A. ALL RIGHTS RESERVED. MICROSOFT LANGUAGES NEWSLETTER Vol. 1, No. 10 News about the Microsoft Language Family Compiling With The cl Interface in Microsoft® C Compiler The cl interface is an alternative driver to msc that comes with the Microsoft C Compiler. It is very similar to the XENIX® and UNIX™ cc driver, cl will not only compile your program, but will also compile and link multiple source files, object files and libraries, all in one step, cl looks at the file name extension (.c or .obj) and determines whether it is necessary to compile and link or just to link. Example: cl - Ox - FPa - F 2000- Zi main.cmblobj - link myliblib This example compiles main.c, creating main,obj, then links main. obj file with subl.obj, the alternative math library (/FPa) and mylib.lib. /Ox sets maximum optimization, with stack checking off The executable stack size is set to 8K (decimal) with /F 2000(hex). Full symbolic information for use with Microsoft CodeView™ is enabled. As with msc, cl will automatically use the PATH, INCLUDE, TMP and LIB environment variables. This allows you to set up specific search paths for your executable compiler files, include files, temporary files and library files. All of the options available with msc are also available with cL The default options for the Microsoft C Compiler Version 4.0 interfaces are as follows: —As Small Model. — FPi Generous floating point calls; selects emulator math library. — Ot Controls optimizations; favors execution time. — Ze Enables language extensions, such a cdecl } far, fortran, huge, near, pascal. The default for the —Ox option has been changed to favor execution time. In addition, cl will automatically invoke the linker and use the default C libraries. The following are some of the options that are available from cl: —link ' t libraryfield M The linker is invoked; linker options and alternate library names may be given. Suppress linking. -Fe — Fm Names the executable file. Creates a map file. Third-Party Libraries Available For Microsoft FORTRAN Compiler Microsoft FORTRAN for MS-DOS® provides a number of utilities and math libraries in the product itself, but there are a number of additional subroutine libraries that can be obtained through third-party software vendors that could speed your development even more. There are a whole range of graphic libraries such as plotting libraries (ATC, Microcompatibles, GSS), 3-D graphics (Microcompatibles), ANSI/ISO graphics (GSS, ATG), image processing (Werner Frei) and general graphics (Media Cybernetics). If you need data management, Sdftcraft provides Btrieve for ISAM support and Microrim provides a Microsoft FORTRAN program interface to their RBase product. Although Microsoft FORTRAN math support is already extensive, there are other more specialized math libraries available such as modelling (Mitchell &l Gauthier), FFT (MicroWay, Wiley), vector, matrix numerical analysis, signal and image processing libraries (Wiley, Quantitative Technology Corporation, Systolic Systems), statistic (Wiley, IMSL, MAGUS, IMSL), and broad engineering/scientific math libraries (Wiley, NAG). General purpose libraries are available through MEF that provide communications, file management, graphics, DOS, screen handling and string handling support all in one package. Even very specialized libraries such as IEEE 488 Support (Tecmar) are available. Contact these third party vendors for more information on their libraries for Microsoft FORTRAN or receive a copy of the Language Support Directory by contacting Microsoft. For more information on the products and features discussed in the Newsletter, write to: Microsoft Languages Newsletter 16011 NE 36th Way Box 97017, Redmond, WA 98073-9717 Or phone: (800) 426-9400. In Washington State and Alaska, call (206) 882-8088. In Canada, call (416) 673-7638. Microsoft. MS-DOS and XENIX are registered trademarks and CodeView is a trademark of Microsoft Corporation. UNIX is a trademark of AT&.T BcU Laboratories. Look for the Microsoft Languages Newsletter every month in this publication. Latest DOS Versions: Microsoft C Compiler 4.00 Microsoft COBOL 2.10 Microsoft FORTRAN 3.31 Microsoft Macro Assembler 4.00 Microsoft Pascal 3.31 Microsoft QuickBASIC 2.00 ASK BYTE before I could mail it out I lost the slip of paper with the address on it. Can you help? Derek A. Benner Missoula, MT Woof! You Ve certainly got a project in front of you! The original source for Small-C was Dr. Dobb's Journal in 1980. Version 2 of the language was presented in that magazine in December 1982 and January 1983. with source for a small library. An ex- panded library was printed in May and June of 1 984, and a variety of additions, corrections, and modifications have come out since then. Most of the library functions are in C rather than assembler, so you may well be in luck. Also, you may want to look at Dr. Dobb's Toolbook of C. a recently published book available from M & T Publishing Inc. ((415) 366- 3600, ext. 216). In all seriousness, I think that your proj- ect is too big for an Adam. Given the amount of software you're planning to write and the amount of debugging re- quired to get it all running, you're going to spend an unreasonable amount of time watching those little tape drives whir. You can get a single-board CP/M system for about the same money, so an orphan Adam doesn't make sense. Computersmyth caters to hardware tinkerers of all flavors and has had a variety of interesting articles in the first four issues. The address is Computersmyth P.O. Box 1 76 Peterborough, NH 03458 —Steve Computerizing Model Railroads Dear Steve, One of my hobbies is model railroading. For many years 1 have wondered about the practicality of using a computer to com- pletely control a model railroad (including switching operations), which I could scale up to a railroad of arbitrary size. I think that I have solved all the engineering prob- lems except one, and perhaps you can help me with it. The problem is train sensing. Most train sensors I know of merely detect whether railroad cars are in track blocks. 1 need more precision. I recently had an idea to use strain gauge sensors in the track, possibly across rail gaps, to sense when train wheels pass points on the railroad. Using wheel counting and a real-time clock (and software that I believe I can write). I could get very precise measure- ments of train position and speed. 1 could even sense derailments and broken trains. I know very little about strain gauges. How sensitive are they? 1 need to sense the presence of % ounce (3-ounce model railroad car divided by 8 wheels). Thanks for any information you can give me. David W. Roscoe Chelmsford, MA Strain gauges are very tricky com- ponents, and you can make them as sen- sitive as you need. They are used in microgram analytical balances, which are more sensitive than any beam balance. They provide millivolt signals, however, and require complicated amplifiers and very effective noise shielding to work properly. I would recommend that you try an- other approach to train sensing. An op- (contmued) The Complete 68000/10/20 C Compile $595 under DOS || $1390 under XENIX ||$2790 under UNIX Superior compiler diagnostics help you minimize recompila- tion and locate errors precisely. It's fully documented and backed by professional support services. YOU WON'T FIND A MORE COMPLETE PACKAGE - Includes a full 68020 macro assembler, type-checking linker, and all the utilities you need to put your program in ROM. UNIX is a trademark of AT&T. XENIX is a trademark of Microsoft. Software Development Systems, Inc. 3110 Woodcreek Drive, Downers Grove, IL 60515 Call today (312) 971-8170 In England call UnitC, Ltd., (0903)205233 Prices subject to change without notice. Call for host machine availability. Mainframe Powered CROSS ASSEMBLERS dj O Q C Complete S>^i#*)under MS-DOS* 1 $695 The UniWare™ family of cross assem- blers. Fully relocatable, of course, but absolute listings are no problem even in loads with many source files. With a linker so capable that even multiple overlays are a breeze. Lots of macro power. And all tools have unlimited symbol capacity. UNIX is a trademark of AT&T. XENIX and MS-OOS are trademarks of Microsoft. Complete under XENIX** i $1395 Complete under UNIX* Intel 8086, 80186, 80286, 8051 , 8048, 8080/5, 8041 Motorola 68000, 68010, 68020, 68HC11 , 6809, 6805, 6801,6800 Hitachi HD64180, 6305, 6301 Zilog Z80, Z8 Others 6502, 1802, TMS7000, 3870/F8 Software Development Systems, Inc. 3110 Woodcreek Dr., Downers Grove, IL 60515 Call today (312) 971-8170 Visa & Master Charge Accepted (U.S.A.) England: Unit-C, Ltd., (0903) 205233 •Minimum 512K memory recommended. "Call for host machine availability. The above prices Include one assembler. Discounts avail- able on purchases of multiple assemblers; prices subject to change without notice. 54 BYTE • OCTOBER 1986 Inquiry 336 for C Compiler. Inquiry 337 for CROSS ASSEMBLERS. We have 100's of Software and hardware items in stock. Shipments on almost all items within 24 hours! Call for programs not listed SPECIAL WORD PERFECT $195 Technical & Other Info. (602) 246-2222 TOLL-FREE ORDER LINE 1-800-421-3135 FREE! UP TO $100 SOFTWARE FREE! With every purchase over $1 00.00 you can select one of the following MS/DOS diskettes at n o charge. Please indicate choice(s). 1 . Blueberry I - 54 basic utility programs includes printer select, graphic generation, etc. Retail value $10. 2. Blueberry 1 1 - includes a banner generator, a label maker and a checker game (requires graphics card). Retail value$10. 3. Print Select program - Assembly language program to select different type fonts, etc., or make your printer function as a correctable typewriter - perfect for envelopes, notes, etc. Adaptation modules for popular printers included and capability to adaptto any printer. Retail value $40. 4. Deposit Program Compiled DBase to list and total cash, check, bank card for bank deposit and keeps history - Developed for our corporate use - Super Program! (source code available). Retail value $40. Select an additional diskette for every additional purchase of $150 or purchase over $500 and receive all four at no charge. DATA BASE MANAGERS Clipper $334 Clout 2 117 Condor III 310 Knowledgeman II 2&0 Nutshell Filer 59 Powerbase 2.2 212 PFS: File 76 Q&A Call Quickcode 138 Quickreport ". 138 Revelation 445 R: Base System V 332 WORD-PROCESSING Easy 88 Leading Edge w/Merge/Spell . . 75 Microsoft Word 252 Multimate Advantage Call Peachtext5000 145 PFS: Write 76 Volkswriter 3 139 Webster Spellcheck 37 Wordstar 162 Wordstar Propac 233 Wordstar 2000 233 Wordstar 2000+ 278 SPREADSHEET Microsoft Multiplan 108 PFS: Plan 78 Spreadsheet Auditor 3,0 82 Supercalc 4 Call VP Planner 49 ACCOUNTING BPI AP, AR, PR, GA 299 ea. Cyma Call Dae Easy Accounting 39 Managing Your Money 94 INTEGRATIVE Ability 59 Enable 312 Smart Software Call COMMUNICATION PROGRAMS Crosstalk 89 Microsoft Access Call Remote 89 Smartcom II 83 GRAPHICS Chartmaster 205 Energraphics 2.0 269 In-A-Vision 249 Microsoft Bus Mouse 106 Microsoft Chart 164 Microsoft Serial Mouse 119 Newsroom 33 PC Mouse W/DR Halo II 106 Printshop 33 Signmaster 132 PROJECT MANAGER Harvard Total Project 262 Microsoft Project $219 Super Project Plus 239 Timeline 2.0 209 EDUCATIONAL Flight Simulator 28 Turbo Tutor 20 Typing Tutor III Call LANGUAGES Lattice C Compiler 242 Microsoft C Compiler 249 Microsoft Fortran 195 Microsoft Macro Assembler ... 84 Microsoft Pascal Compiler . . . 166 Microsoft Quick Basic 55 Ryan McFarlan Fortran 305 Ryan McFarlan Cobol 479 Turbo Pascal w/8087 + BCD ... 55 UTILITIES CarbonCopy 115 Copy UPC 19 Copy write 39 Desqview 55 Double Dos 27 Fastback 85 Microsoft Windows 55 Norton Commander 37 Norton Utilities 3.1 49 PC Tools 19 Prokey 4.0 70 Sidekick 31 Sidekick (unprotected) .'■. 47 Sideway 3.1 36 Superkey 39 Traveling Sidekick 39 XTree 27 ACCESSORIES Copy II PC Board 75 IBM 135 watt power supply 59 Mini Micro Parallel Print Buffer 69 Masterpiece 88 Masterpiece Plus .... — 113 INCREDIBLE VALUE Nationally advertised boards for IBM PC and most compatibles at giveaway prices. Keyboards (similar to 5151 $79 Monochrome Board w/printer port (similar to Hercules Graphics) $79 Expansion Board 0to576K $42 Multifunction Board w/game port (similar to AST six pack) $79 Four Drive Floppy Controller $39 Color Card w/o printer port $69 Color card w/printer port $79 KEYBOARDS Keytronics 5151 $155 Keytronics 5153 265 PRINTERS CANON LASER 1939 CITIZEN MSP-10 285 MSP-15 385 MSP-20 325 Premiere 35 Daisy wheel 469 EPSON - Call on all models NEC NECP5XLP 1126 NEC P7 Parallel 635 NEC 8850 1098 NEC P6 Parallel 455 Elf 360 398 OKIDATA - Call on all models PANASONIC 1091 235 1092 299 1592 425 KXP3151 399 STARMICRONICS LV1210 179 NB15 975 NX10 232 SG15 365 SR15 585 TOSHIBA P351 969 P341 768 P321 Call MONITORS AMDEK310A 142 AMDEK 600 395 Magnovox Color RGB Call Multitech Color RGB 259 Princeton Max 12 159 Samsung TTL Amber 72 Samsung TTL Green 70 EGA MONITORS AMDEK 722 505 NEC Multisync Call EGA BOARDS Everex Enhancer EGA 235 Paradise Auto Switch EGA Card 359 Quad EGA Plus 365 STB EGA Plus Call Vega Video 375 RAM 64K150NS(setof9) 11.50 256K150NS(setof9) 30 256K 200NS (set of 9) 39 8087-2 Call BOARDS AST Advantage $329 AST Premium 359 AST Sixpac (384K) Call Hercules Color Card 145 Hercules Graphics + 182 Intel Above Boards Call J Lazer (Tall Tree) Call J Ram III (Tall Tree) 179 J Ram III AT (Tall Tree) Call STB Chauffeur 185 STB Mono 155 COMPUTERS ABBOTT TURBO PC IBM Compatible Computer, 4.77 or 7.47 key selectable, AT style keyboard, 640K, dual drive, 135 watt power supply $599 or with 20 MB Seagate Harddrive $970 6 month limited warranty Corona PC Call Multitech 900 Accel IBM AT Compatible, 512K, expandable to 1 MB on the mother board, one 1 .2 MB drive, 195 watt powersupply, MS/DOS 3.1, clock, 6 or 10 MHZ key selectable, soft white monitor, AT style keyboard, 1 year TRW warranty Call Multitech Turbo IBM Compatible Computer, 256K, dual drives, 8 MHZ, ports- parallel-serial-clock, 5151 type keyboard, graphics board (sim ilarto Hercules), mono monitor DOS 3.1, 6 month national warranty Call Sharp Portable Call TERMS: Add 3% for C.O.D. orders. Shipping on most software is $5.00. AZ orders +6.7% sales tax. Personal check - allow fourteen (14) days to clear. We accept purchase orders from authorized institutions. All returns are subject to our approval. There will be a20%restockfee. Min- imum phone order $50. No Charge for Master Card or Visa TOLL-FREE ORDER LINE 1-800-421-3135 WAREHOUSE DATA PRODUCTS 2701 West Glendale Ave. • Phoenix, AZ 85051 Hours 7 A.M. to 5:30 P.M. M.S.T. - Mon. thru Fri. Saturday 10:00 A.M. to 3:00 P.M. Inquiry 318 OCTOBER 1986 • BYTE 55 ANYONE CAN BUILD A CLONE, BUI. MAIN CIRCUIT CARD CONTROLLER CARDS POWER SUPPLY ROM/BIOS CHIP FLOPPY DISK DRIVES METAL CHASSIS AND COVER ONLY PANASONIC GIVES YOU A BUSINESS PARTNER Everyone seems to be jumping on the bandwagon. Today, companies that weren't there yesterday, and may not be there tomorrow, are building computers from easily assembled components. The result is a sea of computer clones with little to distinguish one from another. THE PANASONIC DIFFERENCE-A POWERFUL BUSINESS AUY. Our approach to offering you a computer was entirely different. We looked at what would work best for you and your business. The result is the Panasonic Business Partner and Panasonic Business Partner 286. Two powerful business allies, designed to answer your most demand- ing computer requirements. YOU CAN SEE THE DIFFERENCE PANASONIC MAKES. With our long, unparalleled heritage in video tech- nology, you get high-quality, high resolution monitors. An optional Panasonic CGA PLUS board is switchable to let you use a color or monochrome display for both graphics and text. BUILT-IN FLEXIBILITY. No two businesses run exact- ly the same way. So you can configure the Business Partners to your own individual needs. In addition to their built-in floppy disk drives, you can add a hard disk drive, addi- tional half-height drives— even a magnetic tape drive. SPEED AND PERFORMANCE. The Business Partner 286 is built with maximum power and speed. Its 80286 processor runs at 6 MHz or 8 MHz, with the ability of addressing up to 15Mb RAM. JThe Business Partner, with its 8086-2 processor, runs at 4.77 MHz, and for projects that need added acceleration, it will run up to 716 MHz. FUTURE GROWTH. Both Business Partners have been designed to grow as your business grows. Extra slots are built in to offer you the flexibility- BB^IM ll lltl lt l W now and in the future— ^_ to add on cards for j _ ^ high resolution graphics, ^™"™ mKim *— mmmm - .,,,.. _,, . communications accessories and other peripherals. *IBM is a registered trademark of the International Business Machines Corp. POWER TO SPARE. As your business grows, you'll put greater demands on your Business Partner. Don't worry, it can handle it. With 130 watts on the Business Partner and 220 watts on the Business Partner 286, you'll be able to drive additional peripherals and expansion boards. IMPORTANT DESIGN CONSIDERATIONS. The deluxe, detachable keyboards on both models have been designed for comfort and ease of use. We've separa- ted the cursor keys and numeric keys for quick, convenient access. Swivel monitors adjust for each operator. On the Business Partner 286, you can lock the cabinet with a key to help prevent tampering and prying. SOME REASSURING LAST WORDS. You'll find the Business Partner compatible with the IBM* PC/XT And the Business Partner 286, with the PC/AT So you'll be able to run the most popular software. You'll also get compat- ibility with Panasonic's wide range of quality peripherals, for the complete Panasonic office. And more importantly, both Business Partners are from Panasonic, the company firmly committed to building a high-quality and dependable reputation in computer pro- ducts. So both are backed with a full-year limited warranty. m^ ^nia For more information, and the location of the dealer nearest you, call 1-800-PIC-8086. Or write: Panasonic Industrial Company, Computer Products Division, Two Panasonic Way, Secaucus, NJ 07094. And discover how the right Business Partner can make r unni ng your business easier You'll see THE EASIER, THE BETTER. Panasonic Inquiry 224 ASK BYTE tical sensor placed under the track would work very well. If you want to sense wheels, you could put sensors on op- posite sides of the track, just peeking over the top of the rails. You could put these in housings that would look very much like standard railway equipment, so as not to be unrealistic. A sensor under the track could sense available room light, while the wheel sensors could use paired infrared emitters and detectors. A third approach would be to use the reflective sensing emitter-detector sets and put a bit of aluminized plastic tape on the bottom of each car that could be sensed from below the track. To get really fancy put a bar code on each car and have the computer keep track of indi- vidual cars and locomotives. If the sensors are infrared photo- transistors, the interface to TTL levels can be a transistor or a comparator: The com- parator gives more sensitivity and a way to set each sensor for the optimum USRobotics' COURIER 2400™ .. .The most dependable at2400- or1200-bps You get 2400/1200/300-bps data communications and every first-class feature you'd expect in an auto-dial, auto- answer modem... at a surprisingly affordable price. But a modem at any price is only as good as its performance... And that's where Courier 2400 really shines. Don't take our word for it. Ask any of the nearly 2,000 electronic bulletin board system operators who have chosen the Courier 2400 for one of the most demanding modem applica- tions imaginable. Listen to the unanimous chorus of praise for the Courier 2400 from tough reviewers at more than a dozen highly respected computer magazines. Consider Courier 2400's perform- ance record— less than one percent of all Courier 2400s sold have been returned for service, a record we chal- lenge the industry to match. And we back up our confidence in Courier 2400 58 B YTE • OCTOBER 1986 with a full two-year parts and service warranty. Quality, performance, value— your modem should be this good. It is, if it's the Courier 2400 from USRobotics. [fiobotics The Intelligent Choice in Data Communications 8100 McCormick Blvd., Skokie. Illinois 60076 Phone toll free 1 (800) DIAL USR In Illinois (312) 982-5001 7b learn more, send for our FREE booklet: "24 Questions and Answers on 2400-BPS Modems!' NAME APPREPR HTY STATE COMPANY- 7IP TITLE PHONE ( ) PERSONAL USE □ BUSINESS USE □ Inquiry 3I3 for End-Users. Inquiry 314 for DEALERS ONLY threshold to compensate for mechanical, optical, and component variations (which are rather large in LEDs and photode- tectors). —Steve USING AN IEEE-488 PORT Dear Steve. I have a Zorba CP/M computer that has. among numerous other features, an IEEE-488 port installed. I am interested in using this port to drive peripherals such as speech synthesizers, voice recognition units, and nonwire communication links (light beam, radio, etc.) to robots and other computers. There seems to be a dearth of information on this port in the popular literature. Have you had any experience using the IEEE-488 port? Can you refer me to any sources of information on it? From what I have seen, it has been wrongfully neglected. Billy R. Rogue Lake Havasu City AZ The IEEE-488 bus is an 8-bit parallel bus that was originally designed to con- nect test and measurement instruments to early programmable calculators to form production test systems in factories. The document, IEEE Standard 488-1978, Digital Interface for Programmable In- strumentation, can be obtained from the IEEE. Another source is the Intel Com- ponent Data Catalog. The section on the 8291, 8292, and 8293 circuits has much information on this bus and describes in- terface circuits as well. Intel calls the IEEE-488 the GPIB (general-purpose in- terface bus) and Hewlett-Packard origi- nally called it the HP-IB. Intel in Phoenix ((602) 997-9695) or BFA in Scottsdale ((602) 924-5400) should be able to get you the Intel catalog.— Steve CIRCUIT CELLAR FEEDBACK LED Graphics Display Panel Dear Steve. I am interested in building a light panel with incandescent or LED lamps (colored, if possible) that I can use as an advertise- ment board. I would like to construct a panel ranging in size from 3 feet by 4 feet to possibly 12 feet by 12 feet, capable of displaying text, graphics, or anima- tion. 1 presently have an Apple He, an 80- column card, Duodisk, Imagewriter. and a green monochrome monitor. I have seen [continued) $2000? That's Too Darned High! Why should a CAD package cost more than a Word Processor? It shouldn't! Lots of people ask how we can offer a CAD system as good as Pro Design II at a price as low as $299. It's easy. A PC Software Package does not cost $2000 to manufacture. It doesn't even cost $200. It makes us ask the questions, "Why do comparable CAD packages cost $2000 and more?" "What makes a CAD package cost more than a Word Processor?" ProDesign II doesn't. ProDesign II is the complete CAD package you get for $299. With ProDesign II, you get such advanced features as Auto Dimensioning, Area Fill, Fillets, Mirroring, Isometrics, Curve Fitting, Object Snap, Attributes, Drawing Merge, and many, many more. Features once available only for $2000 or more. Features you get at no extra charge with ProDesign II. But there is another, very important reason you should get ProDesign II. ProDesign II is very unique among CAD packages. It is easy to learn and use. When we call ProDesign II "The Easy To Use CAD System", we're not joking. You will be productive with ProDesign II in an hour or two instead of a week or two. What else does ProDesign II offer? Compatibility. Compatibility with over 100 printers. Compatibility with over 50 plotters. Compatibility with most graphics adapt- ers, digitizing tablets, and mice. Compatibility with most display adapters. Compatibility with any software that can produce HP plotter commands. Compatibility with main- frame CAD systems (IGES). All at no extra charge! (You can also get an AutoCAD Interchange Utility for $99 that converts drawings to or from the AutoCAD format.) What additional hardware do you need? None! An IBM PC compatible and 512K RAM are all you need. ProDesign II produces high resolution drawings on your dot matrix printer - better than .005" resolution on an IBM/Epson compatible printer. Andyoudon'thavetoget a mouse or digitizing tablet. ProDesign II is designed for easy and efficient keyboard use. You won't even need a math coprocessor, although it is supported. From a small drawing on a dot matrix printer to an E-Size drawing on a large plotter, ProDesign II is the one to use! ProDesign II — Affordable, Compatible, and Usable! Where do you get it? See your local dealer or contact: American Small Business Computers, 118 South Mill Street Pryor, OK 74361 918/825-4844 Inc. PRODESIGN II — ONLY $299! Inquiry 24 OCTOBER 1 986 • BYTE 59 Inquiry 6 How to tackle a 300 page monster. Turn your PC into a typesetter. If you're writing a long, serious document on your IBM PC, you want it to look professional. You want MicroTj?X. Designed espe- cially for desktop publishers who require heavy duty typesetting, MicroTgX is based on the Tj?X standard, with tens of thousands of users worldwide. It easily handles documents smaller than 30 pages to 5000 pages or more. No other PC typesetting software gives you as many advanced capabilities as MicroTgX. So if you want typesetting software that's as serious as you are about your writing, getMicroTEX. Call toll free 800-255-2550 to order or for more . information.* Order with a 60-day money back guarantee. MicroT E X from Addison-Wesley Serious typesetting for serious desktop publishers. •Dealers, call our Dealer Hot Line: 800-447-2226 (In MA, 800-446-3399), ext. 2643. Copying diskettes will never be easier than pushing one button. While your computer is busy doing other things, your Victory Duplicator can be making as many as eight copies of a diskette at once — producing up to 400 copies in an hour. DualMaster™ models can even make multiple copies of two different diskettes simultaneously. Just insert the diskettes and press one button. Copy different formats, flawlessly. An automatic format analysis program makes it possible for the Victory Duplicator to copy virtually any 5 l /i, 3V2 or 8-inch diskette. The system tests for quality and accuracy at every stage of the process. It practically services itself. Each drive has a separate controller to maximize up- time. Simple diagnostics to verify drive alignment and industry standard drives allow you to maintain your system without waiting for outside service. All at an attractive price. Victory Duplicators offer fast copying, serialization, Come see us at Fall COMDEX. copy protection, a commu- nications port, a four-month warranty and much more — all for one low price. Call 1-800-421-0103. Call today for more information. (In Texas, call 512-450-0801.) RYV VICTORY ENTERPRISES Technology, Inc. 8910 Research Blvd., Suite B2 Austin, Texas 78758 CIARCIA FEEDBACK software from Broderbund called Fanta- vision that does color animation on the He and is reportedly able to do up to a three-hour show. I know a little about electricity and would like to build a small panel to experi- ment with. Can you give me any informa- tion on this? Kent Barnard Wayne City, IL Volume II of Ciarcia's Circuit Cellar (BYTE Books, McGraw-Hill) contains details on a self-refreshing LED graphics display panel. The circuits shown in that article could be readily adapted to the Apple lie (you could drive them using a parallel port). This would allow you to ex- periment with the fundamentals. The April 1984 Circuit Cellar column featured a scrolling LED display driven by the Z8 control computer. This display could also be driven by a suitably equipped Apple.— Steve testing and recalibrating Floppy Disk Drives Dear Steve, 1 am in charge of the PC Laboratory at the Weizmann Institute. We have over 100 IBM and IBM-compatible PCs and two of us to give advice on purchasing hardware and software, hooking it all up, arranging for maintenance, etc. 1 wonder if you could help us with one of our biggest mainte- nance headaches— floppy disk drives. As a research institution, we are exempt from custom duties on most laboratory equipment that we buy. Therefore, we often buy mail-order equipment from the United States (often from advertisements in the back of BYTE), since it can be cheaper than ordering from a dealer here. This has had mixed results in terms of the quality of the hardware we purchase. For instance, we have ordered drives that, when we receive them, don't work until we play around with the little jumpers on the drive circuit board (e.g.. DS0, DSI. MS, HS, etc.). Of course, the drives never come with documentation, so I am working in the dark. I have been forced to pay an out- side laboratory to adjust some drives that I couldn't get to work. 1 also find that heavily used floppy disk drives go out of calibration. There is a laboratory here that repairs drives, but it seems a shame to pay them $75 to cali- brate a drive that costs $100 new. While we do not intend to become a facility for repairing drives, 1 would like to be able to recalibrate them here. Could you recommend a book on flop- py disk drive maintenance? Also, perhaps [continued] 60 B YTE • OCTOBER 1986 Inquiry 317 With all these SoftLogic Solutions, you could run out of problems* Now there's a whole family of low-cost, easy to use Softlogic software for the IBM PC, XT, AT, and compatibles. They'll save you time, aggravation, and lots of money. Got a problem? Check out these Softlogic Solutions. Software Carousel— The easy way to move from one program to another. What a hassle. Saving, exiting, loading, retriev- ing—just to move from one application to another. With Software Carousel, you can keep up to ten programs loaded and ready to run. Best of all, you can use all your memory in each and every one. Supports AboveBoard™ and RAMpage?' too. Disk Optimizer— Speeds up your disk by cleaning up your files. You may not notice, but your hard drive is get- ting slower. Because your files keep getting frag- mented and scattered on your disk. Reading, writing, everything takes longer, because your disk is working harder. Disk Optimizer puts back the speed by putting your files back in one piece— where they belong. 'JZMa. f st&tf Cubit— Packs more of your data onto less disk space. Filling up your hard disk again? Don't run out and get a bigger drive. Get Cubit, and get up to twice the storage capacity from the drive you already have. Cubit compresses and decom- presses word processor, spreadsheet, database, all kinds of files — quickly, safely, invisibly. DoubleDOS — The multitasking software that takes less of everything. You can spend more money, load more memory, and read more manuals with systems like Top- View™ or Windows™ Or you can get Double- DOS, the amazingly simple concurrent software environment that lets you and your computer each work on different tasks at once. Nothing could be easier. And nothing costs you less. Put your problems behind you. Order these SoftLogic Solutions today. $ 49 95* Each So why put up with problems? Especially when you can get dependable SoftLogic Solutions for just $49.95* each. Ask for SoftLogic products at your computer dealer. Or order directly from SoftLogic Solutions by calling 800-272-9900 (603-627-9900 in New Hampshire). Order today: 800-272-9900 SoftLogic Solutions, Inc. 530 Chestnut Street Manchester, NH 03101 800-272-9900 (603-627-9900 in NH) *P\us $5.00 shipping &. handling. SoftLogic SOLUTIONS Inquiry 277 OCTOBER 1986 • BYTE 61 M Now In Our 8th Year" In The World of PC Upgrades PC HARD DISK KITS 20 MEGABYTES $429 30 MEGABYTES $525 PC/AT TANDY 1000 HARD DISK CARD 21 MEG HARD DISK FREE SCSI PORT THC-21 $675 PCHC-21 $675 PC/AT TANDY 1000 HARD DISK CARD SO MEG HARD CARD PCWD-SO $795 TWD-SO $795 PC/AT TANDY 1000 HARD DISK CARD 20 MEG HARD DISK PCWD-20 $479 TWD-20 $479 TAPE BACKUP 40 MEG INTERNAL MT40 $595 40 MEG PORTABLE MT40P $695 TAPE BACKUP 60 MEG INTERNAL MT60 $795 00 MEG EXTERNAL MT60E $895 PC/AT HARD DISK KIT BO MEG HARD DISK FREE SCSI PORT IS80-S $1995 HIGH CAPACITY AT XT HARD DISK KITS 70 MEGABYTES $1995 120 MEGABYTES $3995 PORTABLE FLOPPY DRIVE CAPACITY: 720K MF720P $295 SCSI HOST ADAPTER CARD CONNECTS YOUR PC TO 7 OTHER DEVICES SCSI-1 $100 TANDY 1000 MULTI-FUNCTION CARD SERIAL PORT DMA CONTRL CLOCK S12K TMF-1 $269 WITH ALL HARD DRIVES DIRECT/ASSIST $4998 R/ASSIST $4998 LIGHT SPEED $7998 CALL FOR OUR FULL LINE OF HALF CARDS COLOR GRAPHICS MEMORY CARD FLOPPY CONTROLLER CALL FR€€ l v€rr wnrmnNTv, 30 drv moncv back guaranty 6985 University Boulevard, Winter Park, Florida 32792 305-6778333 Inquiry 193 1 V€flR LURRRRNTV, 30 DRV MON€V BACK GURRRNT€€ Micro Design InternotionciL Inc. CIARCIA FEEDBACK you could suggest what sort of equipment we would need to keep drives calibrated? Samuel Gamoran The Weizmann Institute of Science Israel The minimum equipment you need to test floppy disk drives is a computer to run the drive, an alignment disk, and an oscilloscope to read the output signals produced by the alignment disk. PC Tech Journal reviewed five floppy disk drive diagnostic disks in the May 1985 article "Testing 1,23,4,5" by James Chumbley. These disks provide data on speed, alignment, centering, head back- lash, etc. Of the five, only the following vendors provided quantitative data: Interrogator Dysan Corporation 1244 Reamwood Ave. Sunnyvale, CA 94089 (408) 734-1624 Memory Minder I & M Systems Ltd. 15 100 A Central Ave. SE Albuquerque, NM 87123 (505) 292-4182 ReadiScope ReadiWare Systems Inc. P.O. Box 515 Portage, Ml 49081 (6161 327-9172 Recent issues of Computer Shopper magazine carry ads for disk drive service manuals from Consumertronics Co. Attn.: Computers 2011 Crescent Alamogordo, NM 88310 and a drive tester, the EX2000 Disk Drive Exerciser: from Proto PC 2439 Franklin Ave. St. Paul, MN 55114 (612) 644-4660 —Steve Music Project for the IBM PC Dear Steve, 1 am interested in using an IBM PC- type computer for music synthesis and audio editing. Ideally, such a system would be capable of digitizing input data on a single channel with 12-bit resolution and 50-kHz sampling rate. It should also be capable of synthesizing two channels with a 12- to 16-bit dynamic range at the above sam- pling rate. A 40-megabyte hard disk could store six minutes of input data and three [continued] r SOLD TO; | ATTENTION ■-^40 J 0B INVOICE J r ,W oIno.: „ 2T0 -SteioONo, 5lea ODE: 1 AMOUNT: 51 0.237.50 A r ll South Seas Shipping Company November 20, 1986 Ms. Cathy Lyons Import Officer Botanical Research Ltd. 55 Wewak Road Moresby. Papua, New Guinea ^eacch This letter confirms the agreement we reached at our meeting last week in San Francisco. Botanical Research, Ltd. will recommend the optimal conditions for shipping palm fruit and palm oil. — ct important issues lor consideration are: temper at uro during snipping and length o t time between r ~w shipping. " ko completed by Juno 1, 1987. Sou ' h Seas =a,i„ . C °">°™le CW^ Com "any gan,«„'o„ a/ Char, -—^cwW ZL V* c£ •« be a ^1*»\, **»& Of?, ■Oo ,r »sm \Mkif.. YOU COULD PRINT EVERYTHING ON THIS DESK FROM A BUSINESS PC? The world's best-selling desktop laser printer has somethingin store for just about every business that's ever dealt with the printed word. Because the Hewlett-Packard LaserJet Printer is the only printer of its kind specifically designed to work with over 300 software programs. And since it hooks up to almost any business PC, it's right for all kinds of users — not just the art department. So you can print everything on this desk— from simple memos to your life's memoirs. And get high-quality, professional-looking output. Combined with our very fast, very versatile HP Vectra PC (it's IBM PC/AT compatible) and the software of your choice, the HP LaserJet is the cor- nerstone for a complete desktop publishing solution. One your whole company can easily use. Of course, the HP LaserJet also works with IBM PC's and compatibles. As well as software like Lotus 1-2-3, WordStar and d:BASE II. And, for around $3,000, it's the laser printer you can afford. V\fe can't print all the reasons our npvectrapc HP LaserJet is the printer of choice. But if you stop by an authorized HP dealer or call us at 1 800 367-4772, Dept. 276D for the one nearest you, we'll show you why HP quality printing makes very good business sense indeed. Print samples pioduaid on u LaserJet Plus wrth the fallowing software packages: Studio Software Spellbinder* Desktop Publisher, MicroPro WordSlOf 2000* Lotus I -2-3» and FormMoker HJ" HP Ueclra PC is a Iraaemortt of Hewlett-Packard IBM PC is o registered trademark of International Business Machines Corp Lotus I -2- 3 is a registered trademark of Lotus Development Corp, WordStar ts a registered trademark of MicroPro International. d:BASt 11 ts a registered trademark of AshtonTate,© !986HewicM-PackordCo M ''■f-2 HP LaserJet WSSk HEWLETT mLCm PACKARD Business Computing Systems Inquiry 137 PG601BT0 Introducing the Lattice MS-DOS C Compiler, Version 3. There's never been a better time to buy Lattice C. Professional programmers the world over have made Lattice C the standard compiler for serious MS-DOS programming. Now Version 3 offers even more of the features that have made our previous versions so popular. Our new compiler features include: ANSI language constructs including, unsigned as a modifier, void data type, enum data type, structure assignments, structure arguments, structure returns, and argument type checking. The compiler also contains better aliasing algorithms, more efficient code generation, and more flexible segmentation, in-line 8087 code generation, and 80186/ 80286 code generation. The library contains more than 200 new functions, including: ANSI/UNIX/XENIX compatibility; extended support for MS-DOS; extended support for networking including file sharing, file locking, and I/O redirection; and flexible error handling via user traps and exits. Plus the library has also been re-engineered to produce much smaller executables. Try the new Version 3 C Compiler from Lattice. Because C-ing is believing. Lattice Lattice, Incorporated P.O. Box 3072 Glen Ellyn, IL 60138 312/858-7950 TWX 910-291-2190 INTERNATIONAL SALES OFFICES: Benelux: Ines Datacom (32) 2-720-51-61 Japan: Lifeboat Inc. (03)293-4711 England: Roundhill (0672)54675 France: SFL (1)46-66-11-55 Germany: (49)7841/4500 (49)8946/13290 CIARCIA FEEDBACK minutes of stereo output. Obviously, the data transfer rates would be quite high (200K bytes per second), requiring spe- cialized hardware such as a dual-port memory buffer. Are you aware of any commercially available option boards for the PC that might perform these func- tions? If not, do you have any interest in developing such a board? David ]. States San Diego, CA I don't have a music project like you re- quested in the works at this time for the IBM PC There are a few AID boards capable of sampling at rates of 50 kHz or more; a couple of vendors are Metrabyte 440 Myles Standish Blvd. Taunton, MA 02780 (617) 880-3300 Data Translation Inc. 100 Locke Dr. Marlborough, MA 01752 (617) 481-3700 If you can reduce the 50-kHz sample rate, you might get by with an IBM PC with a hard disk. I calculate a data rate of 100K bytes per second, assuming the 12 -bit data is stored as 16 -bit words to save time (1 don't have a calculation for the compression time). This is a little fast for a PC. The Norton Utilities Disk Test can read an entire 10- megabyte hard disk with an interleave factor of 2 in just about 2 minutes, or 83K bytes per second. This isn't up to the specified data rate of 5 megabits per second for this drive/con- troller, but it is consistent with wait states for the PC DMA controller and a little processing by the controller, and, thus, is probably close to what you can expect in real applications. A PC AT or one of the faster clones might be better. If you want real speed, you might consider an array processor of the type available from Data Transla- tion or Datacube as well as other com- panies. These are usually used as high- speed graphics processors but are quite adaptable.— Steve ■ Over the years I have presented many dif- ferent projects in BYTE. I know many of you have built them and are making use of them in many ways. I am interested in hearing from any of you telling me what you've done with these projects or how you may have been influenced by the basic ideas. Write me at Circuit Cellar Feed- back, P.O. Box 582, Glastonbury, CT 06033, and fill me in on your applications. All letters and photographs become the property of Steve Ciarcia and cannot be returned. 64 B YTE • OCTOBER 1986 Inquiry 161 AN OLD RESPECTED NAME. A BOLD NEW LOOK. Computer Mail Order is one of the oldest computer mail order companies in the country. We've succeeded where others have failed, because year after year, we've delivered to you the most product performance for your dollar and given you the attentive service you desire and deserve. This month we launch a new look. We hope you'll find it as easy on your eyes as Computer Mail Order has been on your pocketbook. We also hope you'll do us the honor of calling us C-M-O. FINE PRODUCTS. When you call CMO toll-free, you order from a selection of the finest computer hardware, software and peripherals available. More than 5000 items from the best sources in the business (including PC-TOO? the tailor-made clone, direct from CMOS). FINE PRICES. Call us. Compare us. Talk to us. We wont hang up. We like talking price as much as we like talking computers. FINE SERVICE. We know computers. And we back that product knowledge with w__ 1~ _ — ^M. m ■ mm ■■■ ■■■ ■ ■ ■ ■ ■ on our entire inventory. At CMO, we're committed to keeping you up, running and satisfied. NO FINE PRINT. We're CMO. No hot air. No come-ons. No hang-ups. And no fine print. Turn the page. Explore CMO. ¥«im MKa/zMi] 20 MEG, XT-COMPATIBLE FOR AS LITTLE AS $999. // , I i i i i t ' f ' i i J i"" r" j " f* '".. t t r i ■' i i i ii v i t 1- "? i ist r j" r ' r" t" !;■■!■" t 1 iff r i i i r i t f t i j v& I Presenting PC TOO: Only from CMO. When you think of tailor-made, you think expensive, right? Think again. NowCMOcan offeryou a20 Mb PC-compatible-one weassemble in our Pennsylvania lab just for you. To your specifications. With the attention to quality and performance you've come to expect from CMO. All for just $999. Every tailor-made clone we make is backed with a full 90-day warranty on labor and parts, a 30 day money back guarantee and easy access to CMO technical support after the sale— the kind that keeps you up, running and satisfied. For $999, you get: A 20 Mb, PC-XT compatible that runs thousands of programs, including Lotus 1-2-3™ A 4.77 Mh chip speed An XTchassis with 256K (expandable to 640K) ■ A 20 Mb hard drive ■ A 360K floppy drive A floppy disk and hard drive controller A 150 watt power supply (not just 130) ■ Open architecture with 8 expansion slots (not just 7) ■ And an 84-key, XT-style keyboard. Need more power and more flexibility? Call us. Let's talk about your tailor-made PC TOO. Your options are unlimited. CMO. Policies and particulars. Next day shipping on all in-stock items. • Free technical support from our own factory-trained staff. •Toll-free order inquiry. • No surcharge on VISA or MasterCard orders. • Credit cards will not be charged until the order is shipped. • No limit and no deposit on COD orders. • No salestax on orders shipped outside PA. • No waiting period for cashier's checks. SHIPPING. Add 3% (minimum $7.00) shipping and handling on all orders. • Larger shipments may require additional charges. • Returned items may be subject to a restocking fee. • All items subject to availability and price changes. EDUCATIONAL INSTITUTIONS: 1 800 221-4283 «*.[• When you want to talk computers. When you want to talk price. Call toll-free: 1 800 233-8950. Outside the U.S.A. 717 327-9575 Telex 5106017898 CMO. 477 East Third Street, Dept. Alio, Williamsport, PA 17701 All major credit cards accepted CMO. Doing business-to-bi Person to person. Nottoo long ago, I got a call from a new customer with an unexpected problem— we had delivered his order too quickly. He had placed a COD order with one of our sales consult- ants on the 1 4th. It went through our system and was shipped the 15th. When the shipment arrived, the customer called. He said he hadn't expected it so soon and hadn't had time to arrange for payment. It turned out the customer had worked as a sales rep for a competitor of ours. He said it takes them 3 or 4 weeks to complete most orders. Con- sequently, he didn't think there was any hurry to get a check ready for the CMO order. 'They must have a lot of can- celled orders," I said. He said yes, that in a typical month they only ship 40% of what's ordered. Thatsurprised me. I told him we ship 90% of our orders the next day. And we have very few cancellations. Well, everything worked out. I apologized for our prompt- ness. He laughed and said he'd be ready for us the next time he ordered. And we'll be ready for him. CMO is committed to its cus- tomers. We operate an IBM System 38 with state-of-the-art software to help expedite the tens of thousands of orders we receive. Thanks to this sys- tem CMO is able to provide cus- tomers with up-to-the-minute information about their orders. SOFTWARE. Ansa Paradox $499.00 AshtonTate d-Base III + 429.00 Framework II 429.00 Borland Reflex 59.99 Lightening/Word Wizard 99.99 Central Point Software Copy II PC 24.99 5th Generation Fastback see special IMSI Mouse w/Dr. Halo 119.00 lUS-Sorcim General Ledger 299.00 SuperCalc III 329.00 Super Project Plus 299.00 Lifetree Volkswriter III 149.00 Lotus Lotus 1»2«3 329.00 Symphony 449.00 MECA Managing Your Money 119.00 MicroPro Wordstar 2000 + 299.00 Wordstar Professional w/GL Demo 189.00 Microrim R:Base 5000 359.00 Micro Soft Micro Soft Word 289.00 Micro Soft Mouse/Serial 139.00 Micro Soft Mouse/Bus 139.00 Microstuf Crosstalk XVI 89.99 M ultimate Multimate 3.3 229.00 Multimate Advantage 289.00 Norton Software Norton Utilities 57.99 PFS First Choice 99.99 Professional Write 129.00 Professional File 159.00 Satellite Systems Word Perfect 4.1 219.00 The Software Group Enable 369.00 MODEMS. MONITORS. Amdek Color 600 RGB, IBM CGA $399.00 Color 722 RGB, CGA/EGA 499.00 Color 730 RGB Analog 699.00 Magnavox 8CM515 RGB Monitor 80 289.00 7BM623 PC Monitor 80 99.99 NEC JC-1401P3A Multi-Sync 599.00 JB-1280 TTL Green 139.00 JB-1285 TTL Amber 139.00 Princeton Graphics MAX-12 Amber 169.00 HX-12 16 Color 429.00 HX12e 64 Color 509.00 SR-12e Super Hi-Res 589.00 SR-12e RGB Analog 649.00 Taxan 640 RGB Hi-Res 539.00 Anchor Expressi 1200 Half Card $149.00 Everex Evercom 920 1200 Baud 139.00 Hayes Smartmodem 1200B 359.00 Smartmodem 2400 599.00 Smartmodem 2400B 539.00 Practical Peripherals Practical Modem 1200SA 179.00 CMS Drive Plus 20 MB Card $499.00 T-120 20 MB Tape-Backup 469.00 T-160 60 MB Tape-Backup 699.00 Iomega A210H 10 + 10 Bernoulli Box... 1899.00 A220H 20 + 20 Bernoulli Box. ..2499.00 Mountain Drive Card-20 689.00 Drive Card-30 949.00 Priam Innerspace ID-60AT 1349.00 Seagate ST-4026 20 MB Hard Drive 689.00 ST-4038 30 MB Hard Drive 739.00 DRIVES. Thomas A. Penfield Sales Manager, CMO usiness, person to person. PRINTERS. Canon LBP-8 Lazer see special Citizen MSP-10 Dot Matrix 299.00 MSP-20 Dot Matrix 349.00 Premier 35 Daisy wheel 449.00 C.ltoh 8510-SEP Dot Matrix call Diablo 635 Daisywheel 1099.00 Epson FX-85 Dot Matrix call FX-286 Dot Matrix call LQ-800 24 Pin call LQ-1000 24 Pin call Hewlett Packard 2686A Laser call 7475S Plotter call 7550S 8-pen Plotter call Juki 6100 Daisywheel call 6300 Daisywheel call 551 0C Color call NEC P560, P660, P760 call 3550 Spinwriter 779.00 8850 Spinwriter 1099.00 Okidata ML-192 IBM call ML-193 IBM call OK293 Dot Matrix call OK2410 Hi Speed call Panasonic KX-1091 Dot Matrix 229.00 KX-1592 Dot Matrix 469.00 Star Micronics NX-10 Dot Matrix 249.00 SR-15 Dot Matrix 549.00 Toshiba P321 24 Pin 479.00 P351 24 Pin 1049.00 Maxell MD-2 DS/DD 5V4 12.99 MD-2HD Hi Density 5Va 24.99 Sony MD2D DS/DD 5Va 11.99 MD2HD Hi Density 5 1 /4 24.99 MFD-2DD DS/DD 3V 2 5 pak 9.99 DISKETTES. MULTIFUNCTION CARDS. MS/DOS SYSTEMS AT&T from $1699.00 Compaq from $1499.00 Corona from $995.00 IBM-PC from $1199.00 IBM-XT see special IBM-AT from $2799.00 Leading Edge from $1299.00 Sperry $1899.00 Zenith from $995.00 AST Six Pak Plus PC/XT $169.00 Six Pak Premium PC/XT 369.00 Advantage IBM/AT 339.00 Rampage PC/XT 279.00 Rampage-AT IBM/AT 479.00 DCA IRMA PC-3278-I/0 849.00 Everex EV-640 Edge Card 259.00 Hercules Graphics Card 219.00 Graphics Card Plus 219.00 Color Card 169.00 IDEAssociates IDE-5251 Emulation Board 589.00 Intel 1110 PC-Above Board call 2010 AT-Above Board call 8087, 80872, 80287, 802878 call Paradise Modular Graphics Card 269.00 Color/Mono Card 139.00 Multidisplay Card 179.00 Polaroid Pallette Computer Image Recorder 1399.00 Quadram Quad EGA Graphics Adapter.. ..369.00 Expanded Quadboard 1 49.00 Silver Quadboard 239.00 STB EGA Plus w/Dr. Halo 319.00 Video-7 Vega Video adapter-EGA 339.00 Zuckerboard Color Card w/parallel 89.99 Monochrome Card 99.99 576-Memory Card 59.99 CM Only! 5th Generation Fast Back $89 CM Only! Amdek 310A Amber Screen $139 CM Only! Paradise Auto Switch EGA Card $359 CM Only! Hayes Smartmodem ^a^a 1 200 External TQ f 5j CM Only! CMS 20 MB Kit w/Western Digital Controller $399 CM Only! IBM-XT 268 w/Americare *1699 CM Only! Toshiba 1100 + Lap-top Computer $1749 CM Only! Canon LPB8 Laser Printer $1789 When you want to talk computers. When you want to talk price. Call toll-free: 1 800 233-8950. Outside the U.S.A. 717 327-9575 Telex 5106017898 CMO. 477 East Third Street, Dept. Alio, Williamsport, PA 17701 All major credit cards accepted BOOK REVIEWS CD ROM: THE NEW PAPYRUS Steve Lambert and Suzanne Ropiequet eds. Microsoft Press Redmond, WA: 1986 619 pages, $21.95 PROGRAMMING PEARLS Jon Bentley Addison-Wesley Reading, MA: 1986 195 pages, $14.95 ADVANCED UNIX PROGRAMMING Marc J. Rochkind Prentice-Hall Englewood Cliffs, NJ: 1986 265 pages, $24.95 CD ROM: THE NEW PAPYRUS Reviewed by Paul E. Hoffman Very few technologies come with their own fanfare before they are generally available to the public. The possibilities for CD-ROMs (compact-disk read-only memories), however, have intrigued so many people that the announcements and pronouncements on their future have preceded their commercial use. Industry prognosticators often use phrases like "revolutionary medium" and "huge acceptance" when they discuss CD-ROMs. CD ROM: The New Papyrus is a hefty collection of papers on all aspects of CD-ROMs, ranging from the technical aspects of how data is stored and retrieved to the com- mercial aspects of CD-ROM technology. The authors of the papers are active in the CD-ROM industry, and they speak with the authority and enthusiasm that you would expect from people in a cutting-edge field. Fortunately. The New Papyrus is not simply a glowing report of how wonderful the CD-ROM will be; it includes a number of skeptical views and warn- ings about what needs to be done to encourage con- sumer acceptance of the product. Overview CD-ROMs are very similar to audio compact-disk players except that they hold data instead of music (for an extended discussion of CD-ROMs, see the May BYTE theme articles). A single CD-ROM disk can hold more than 500 mega- bytes of information, or half a billion characters of text. Unlike floppy disks, CD- ROM disks can be read from but not written to. These two features, huge storage capacity and no capability for modification, force hardware and soft- ware manufacturers to treat CD-ROMs very differently from current magnetic media. The New Papyrus covers a wide latitude of subjects and is thus a useful refer- ence both for people new to the field and for those who already know something about it. Forty-five articles are arranged into sections by topic. The structure of the book makes it easy for readers to skip the familiar parts and get to the meat of each arti- cle. While some articles are highly technical, many are sim- ply theoretical discourses on the future of CD-ROMs. The book's introduction offers a useful overview of the current state of the CD-ROM industry. It includes a fas- cinating article by Vannevar Bush, written in 1945, that predicted the technology of the CD-ROM medium before computers were even commercially available. The second section on the CD system covers the nuts-and-bolts tech- nical issues of CD-ROM hardware and file systems. Other sections of The New Papyrus cover the steps in- {continued) ILLUSTRATED BY JOE RUTT OCTOBER 1986 -BYTE 65 Chalcedony PROLOG A REAL $QQ95 Clocksin & \J \J Mellish Prolog for BOTH major microcomputing operating systems — with full cross-compatibility. Complete with the predicates necessary for POWER AI programming: op () name () functor () clause () = .. ("Univ") ...And no constraining data typing. BOOK REVIEWS Floating point Math functions Step-by-step tutorial Integrated editor PROLOG0 Extensible overlay library, 8087 support, large memory model (up to 640K) PROLOG^ Complete Macintosh en- vironment with extensive pull-down menus and dialogue boxes. No Risk Offer: Examine the PRO LOG A or PROLOG/ m documentation at our risk for 30 days. II not completely satisfied, return with disk still sealed for refund. APPLICATIONS— Complete with SOURCE CODE NFL X-pert $4995 A true interactive expert system written by a professional knowledge engineer. A valuable learning tool for any Prolog programmer inter- ested in using Prolog to develop expert systems. TOOLBOX $29 95 More than 50 subroutines that speed and com- press list handling, searches, sorts, and reversal algorithms. An inside look at the tricks of the professional Prolog programmer. TOYBOX $29 95 Written by an academician to help his students understand Prolog, this collection of puzzles and mind-teasers will illustrate how the Prolog programmer creates programs that find the best solution to the problem. Turn your com- puter into a super reasoning machine! c * 0> System Requirements: Minimum 256K RAM (320 K recommended) PC DOS/ MS-DOS ANSI Standard Support Minimum 512K Macintosh Macintosh-plus and HFS Compatible CHALCEDONY SOFTWARE, INC. 5580 LA JOLLA BLVD. SUITE 126 B LA JOLLA, CA 92037 (619) 483-8513 SAVE 10% when you buy either PROLOG /i or PROLOG/m and all 3 applications. I PHONE ORDERS: 1-800-621-0852 EXT 468 □ PAYMENT ENCLOSED $ CA residents add 6% sales tax D CHARGE MY: □ MasterCard ■ Card No. "■ Signature □ Visa Exp. Date . Mr. /Mrs. /Ms. Address (please print lull name) City /State /Zip mem an mm mm PROLOG/i $99.95 ■ PROLOG/m 99.95 I Check: MS-DOS □ Mac Q , NFL X-pert 49.95 I TOOLBOX 29.95 I TOYBOX 29.95 g Complete Pack 188.82 I SHIPPING: $ 5.00 U.S. 7.50 Canada 10.00 Carribean, Hawaii Air 20.00 Overseas Air « volved in producing a CD-ROM (it's significantly more com- plicated than producing a floppy disk) and designing the data that goes on CD-ROMs. The authors of these sec- tions explain in great detail the salient features of CD- ROMs that must be addressed before you can create a CD-ROM. Even though CD-ROM disks contain much more information than floppy disks, it takes longer to find in- formation on a CD-ROM drive than with even an inexpen- sive floppy disk drive. This means that manufacturers must spend a great deal of time analyzing the best way to ar- range the information on the disk before putting their data on a master for duplication. On the other hand, this necessity means that you can arrange data "neatly." which is more difficult on media like floppy disks. The book's final sections cover the future of CD-ROMs in publishing and other applications. The publishing sec- tion discusses the importance of computer display tech- nology to the public acceptance of CD-ROMs, since most people are happier with books on paper than on a com- puter screen. Most of the applications in the last section discuss CD-ROMs as giant databases for specific fields such as library science, medicine, and law. The use of CD- ROMs in vehicle navigation suggests the unexpected places that we may find CD-ROMs in the near future. Coverage Since almost every author represented in The New Papyrus works in the CD-ROM industry you might expect all the articles to paint a rosy picture of the future of CD-ROMs. That is not the case, although many authors chose to ig- nore some of the major technical difficulties of CD-ROMs. The first two sections of the book were especially well ba- lanced with respect to the strengths and weaknesses of the medium. The technical articles go into great detail about both hardware and software. Instead of glossing over the tech- nical points, The New Papyrus presents detailed descriptions of the servo systems and optics of the CD-ROM readers. The book also covers many system-level software issues such as error detection and correction and how to design file systems that exploit the medium's strengths while minimizing its weaknesses. You may find that the 60 pages of technical information alone are worth the price of the book. Other sections also contain technical detail that many readers are unaccustomed to in a book that is sup- posed to be an overview of a new technology. For exam- ple, the article on cartographic databases includes the data structures for the maps that the authors describe. Another example is the article on compressing digitized images; the author ably describes the technical problem and solution to getting as many images as possible onto a CD-ROM disk. Unfortunately other authors ignored the technical aspects of the system when they wrote their ar- ticles and ended up describing systems that would be ex- cessively slow and clunky due to the long seek time of CD-ROM readers. You may find The New Papyrus interesting reading if only to see the discrepancy between some of the suggested (continued) 66 BYTE • OCTOBER 1986 Inquiry 60 for End-Users. Inquiry 61 for DEALERS ONLY. THE PROFESSIONAL'S CHOICE Lotus 1-2-3 $319 Paradox $469 dBase III Plus $389 PrameWork II $389 MultiMate Advantage *269 Software Word Processing Editors FANCY FONT $139 FANCY WORD $109 FINAL WORD II $219 MICROSOFT WORD 3.0 $279 MULTIMATE MULTIMATE ADVANTAGE OFFICE WRITER/ SPELLER PFS: WRITE SAMNA WORD III THINK TANK TURBO LIGHTNING VOLKSWRITER3 VOLKSWRITER SCIENTIFIC WORDPERFECTS WORDSTAR 2000 WORDSTAR 2000* WORDSTAR PRO XYWRITEIII Database Systems CLIPPER CONDOR III DBASE III PLUS KMAN2 PARADOX PFS: FILE/REPORT PLEASEI Q&A QUICKCODEIII QUICKREPORT R BASE 5000 REFLEX REVELATION Graphics CHARTMASTER DtAGRAPH DIAGRAM MASTER ENERGRAPHICS2.0 FREELANCE GEM DRAW GRAPHWRITER COMBO IN-A-VISION MAPMASTER MS CHART PC DRAW PC PAINTBRUSH PFS: GRAPH PICTURE PERFECT GRAPHICS PRINTSHOP SIGNMASTER WINDOWS/DRAW !NEC Multisync $529 $219 $269 $239 $ 89 $259 $109 $ 65 $159 $259 $209 $249 $289 $259 $239 $359 $339 $389 $339 $469 $169 $99 $219 $159 $159 $359 $89 $499 $219 $309 $199 $339 $209 $149 $299 $259 $239 $189 $209 $ 99 $ 89 $245 $ 49 $149 $119 Integrated Packages ENABLE $349 FRAMEWORK II $389 JAVELIN $419 LOTUS 1-2-3 $319 MULTIPLAN $135 OPEN ACCESS $259 SMART SYSTEM $439 SPREADSHEET AUDITOR $ 99 SUPERCALC3 $209 SYMPHONY $449 TWIN $ 79 Network Applications DBASE III LAN PAK $639 KMAN2 $899 MICROSOFT WORD $Call MULTIMATE $639 MULTIMATE ADVANTAGE $749 OPEN SYSTEMS $459 R BASE 5000 $799 REVELATION $999 SAMNA WORD III $799 WORDPERFECT $450 Desktop Environments DESQVIEW $ 69 MS WINDOWS $ 69 GEM DESKTOP $ 39 SIDEKICK $ 39 Project Management HARVARD TOTAL PROJECT MANAGER MICROSOFT PROJECT PROJECT SCHEDULER NETWORK QUICK NET 500 SUPERPROJECT+ TIMELINE 2.0 Communications/ Productivity Tools CARBON COPY CROSSTALK PROKEY RELAY GOLD REMOTE SMARTERM SMARTCOM II SUPERKEY Statistics SPSS/PC* STATGRAPHICS STATPAC GOLD- WALONICK SYSTAT-NEW $249 $339 $539 $269 $239 $129 $ 99 $ 85 $149 $109 $Call $ 99 $ 49 $575 $449 $399 $499 Languages/Utilities CONCURRENT DOS $179 COPYWRITE $ 45 C86 C COMPILER $319 FASTBACK $ 99 LATTICE C $269 MARK WILLIAMS C $319 MICROSOFT C COMPILER $249 MS BASIC COMPILER $249 MS FORTRAN $229 NORTON UTILITIES $ 59 QUICK BASIC $ 65 SUPERKEY $ 55 TURBO PASCAL $ 49 TURBO PROLOG $ 69 XENIX SCall ZERO DISK $ 70 Accounting BPI $309 GREAT PLAINS $479 IUS EASYBUSINESS $309 ONE WRITE PLUS $159 OPEN SYSTEMS $409 PEACHTREE $259 REAL WORLD $399 STAR ACCOUNTING PARTNER II $529 Hardware * Multifunction Boards AST ADVANTAGE (128K) $349 AST I/O MINI $139 AST MP MINI $199 AST 6 PAK PLUS (64K) $169 AST 6 PAK PREMIUM (512K) $359 AST RAMPAGE PC $249 AST RAMPAGE AT $459 AST SHORTRAM (OK) $159 GOLD QUADBOARD (OK) $419 INTEL ABOVEBOARD PC $279 INTEL ABOVEBOARD AT $439 INTEL ABOVEBOARD PS $329 $239 $179 (64K) JRAM AT-3 (OK) JRAM 3 (OK) ORCHID CONQUEST (OK) ORCHID ECCEL (OK) PC TURBO 286 (1MB) PC TINY TURBO 286 QUADBOARD (64K) SILVER QUADBOARD (OK) $279 $399 $799 $459 $139 $219 Display Boards GENOA SPECTRUM $239 HERCULES GRAPHICS CARD $199 HERCULES COLOR CARD $159 PARADISE MODULAR GRAPHICS $259 QUADRAM EGA+ $369 SIGMA EGA 350 $379 SIGMA COLOR 400 $449 STB EGA PLUS $339 TECMAR GRAPHICS MASTER $399 TSENG ULTRA PAK $429 TSENG ULTRA PAK-S $369 Emulation Boards AST 5251-11+ $649 AST 5251-12 $499 AST BSC $489 AST SNA $599 IRMA $799 SMART ALEC 5251 $699 Modems AST REACH 1200 $359 HAYES 1200 $389 HAYES 1200B $349 HAYES 2400 $579 HAYES 2400B $549 TRANSNET 1000 $279 VENTEL 1200 HALF CARD $369 VENTEL 1200 PLUS $300 WATSON $339 Mass Storage/Backup IOMEGA 10+10 W/INTFC $1999 IOMEGA 20+20 W/INTFC $2599 IRWIN 120D 20MB TBU $599 IRWIN 145AT 40MB TBU $699 MOUNTAIN DRIVECARD 20MB $719 PLUS HARDCARD 10MB $569 PLUS HARDCARD 20MB $719 PRIAM 42MB AT $949 SYSGEN SMART IMAGE 20 MB (INT) $625 TALLGRASS $Call TECMAR QIC-60AT TBU (INT) $1199 TECMAR QIC-60H (EXT) $1599 Networks AST PC NET NOVELL ORCHID PC NET 3COM $Call $Call SCall SCall Drivecard 20 Vs Card Word Perfect 4.1 $209 Monitors AMDEK 310A AMDEK 600/722 NEC MULTISYNC PRINCETON HX-12 PRINCETON MAX-12E PRINCETON SR-12 PRINCETON HX-12E PRINCETON HX-9 SAMSUNG TAXAN 122 AMBER TAX AN 630/640. $159 $429/539 $529 $449 $179 $499 $539 $529 SCall $159 $469/539 Printers/Plotters BROTHER TWINWRITER $939 DATAPRODUCTS DIABLO 635 EPSON FX-85 EPSON FX-286 EPSON HI-80 EPSONCR-420I EPSON LQ-800 EPSON LQ-1000 HP7475A NEC 3550 OKIDATA182 OKIDATA 192 OKIDATA 193 OKIDATA 292 OKIDATA 293 TOSHIBA P321 TOSHIBA P341 TOSHIBA P351 Input Devices KEYTRONIC5151 KEYTRONIC 5153 MICROSOFT MOUSE PC MOUSE/PAINT+ SCall $1149 $399 $549 $349 $1569 $589 $729 SCall $799 $249 $379 $519 $539 $589 $565 $829 $1069 $179 $299 $129 $139 Accessories CABLES SCall CURTIS SURGE PROTECTORS $Call DATASHIELD BACKUP POWER SCall DATASHIELD SURGE PROTECTORS SCaJI GILTRONIX SWITCHES SCall MASTERPIECE PLUS $135 MICROFAZER INLINE BUFFERS SCall 256K RAM SET $ 39 8087 MATH CHIP $135 80287 MATH CHIP $199 •CALL FOR SHIPPING COSTS $719 $369 K $349 $839 IRMA Board $799 *CALL FOR SHIPPING COSTS LOWEST PRICE GUARANTEE!! We will match current nationally advertised prices on most products. Call and compare. fie ei Diskette Library Case with your order 1-S00-221-1260 TERMS Checks— allow 14 days to clear. Credit processing— add 3%. COD orders— cash, M.O. or certified check— add $5.00. Shipping and handling UPS surface— add $3.00 per item (UPS Blue $8.00 per item). NY State Residenls— add applicable sales tax. All prices subject to change. In New York State call (718) 438-6057 MON.-THURS. 9:00AM-8:00PM SUN. & FRI. 9:00AM-4:00PM Softline Corporation P.O. Box 729, Brooklyn, N.Y. 11230 TELEX: 421047 ATLN Ul FAX: 718-972-8346 byt-1 Inquiry 276 OCTOBER I986 -BYTE 67 Inquiry 31 Put Wings On Your PC... For a lousy $1 99.00 (excl. VAT.) your IBM (or IBM-compatible) PC will be twice as fast: PC-TURBO-BOARD Test results with Lotus®, Open-Access®, WordStar® dBaselll®. .. (may differ by program) 'Si-factor 1,7. Speed variable from normal (4.77 MHz) to Turbo (10 MHz). > Guarantee: 1 year 1> Technical requirements: 1 free slot (normal length) 1» Includes: 1 Turbo board + installations instructions h Delivery cash-on-delivery (postal charges extra). Delivery on first-come, first-serve basis. Offer valid as long as supply lasts. Order today! AUSTROKOP A-3400 Klosterneuburg • Egon Schielegasse 24 Austria BOOK REVIEWS "It's a Bloody Miracle!" —William E Buckley, Jr. William F. Buckley, Jr.* editor of National Review, writer and political commentator famous for his way with words, says: "Your Word Finder has changed my life! I never used to use a thesaurus... the speed is incredible, the wit of its arrangements marvelous." PC Week agrees: "A huge synonym list. . .the intelligence of the word-list [makes it] a genuinely useful business tool." Finding the RIGHT word and finding it FAST can mean the difference between success and failure, in business or anywhere. More words. OVER 220,000 SYNONYMS. 4x the competition. Easier to use. • Not copy-protected • A more contemporary vocabulary • Uses only 31K of memory • Works with 24 popular word processors (see list below) • Best price performance. Write better memos, make better speeches, expand your vocabulary. (Students improve SAT test scores.) Get your way with words. COMPATIBLE WORD PROCESSORS: DisplayWrite 3. Easy. Easy Writer II. Einstein-Writer, Framework. IBM Writing Assistant, Leading Edge. Microsoft Word, M ultimate. Norton Editor, OfficeWriter, Palantir, Pfs.Write. Practiword. Ready, Sidekick, SuperWriter, Think Tank. Volkswriter Deluxe, Word Perfect, Wordstar. Wordstar 2000. and XyWrile III. •Mr. Buckley volunteered this statement about Word Finder, and is not being compensated lor his endorsement. ( ' ■ f e CP/M ver SIO n has 120. 000 synonyms.) Interested dealers plea se call or write. Fill oul this coupon and send to: MICROLYTICS, INC, SUITE 123, 300 MAIN STREET ONLY $79.95 Special volume discount: east Rochester.' ny 14445 ONLY S395.00 for 10 Word Finders CALL: 800-828-6293 EXT 123 (In NYS: 716-377-0130) EXT 123 WRD ■ I JI^I#EIV Computer. | GET YOUR WAY WITH WORDS Add $2.50 shipping. NYS residents also add sales tax. My check for $ attached, {use envelope) C.O.D. □ VISAD MCn AMEXD Expiration Date Card # Name Company Street City State Zip Phone Op Sys I DOS Si/4- l CP/M" Format_ applications and the limitations of the medium. It is clear that many authors were enamored of the capacity and ig- nored the access-speed problems. Only a few of the ar- ticles address how the CD-ROM will fit in with the current state of computers where users expect to be able to save information in their own formats for future use. Some authors assumed that consumers would want to be able to access vast quantities of data on a computer, while others noted that the assimilation of computers has already slowed and that the expected boom in electronic publishing has failed to materialize to the extent predicted a few years ago. The New Papyrus describes the important features of CD- ROM use. A great deal of space is devoted to a discus- sion of how the user will interact with such a large quan- tity of data. Appropriate warnings are given to people de- signing CD-ROM applications: If they do not do a great deal of planning, their products will go unused. Since many of the proposed applications for CD-ROM tech- nology involve people who haven't used computers before, the user interface for handling such a huge amount of data will be very important. Some of the articles go off on tangents that detract from the overall quality of the book, but they are easy to skip. Most of the book is well grounded in facts and concepts that the readers can use. One criticism, though, is that the authors' biographies are at the end of the articles instead of at the beginning. Many articles describe commercial products, and it is disconcerting to find at the end of an article that some of the products described are produced by the author's company. While some authors are candid about their company affiliations, others slip in references to their products without indicating their legitimate biases about them. The skeptical reader should read the author biographies before reading the articles. Summary CD ROM: The New Papyrus contains enough information to give any reader an in-depth view of the CD-ROM market. Considering how few CD-ROM players are in commercial use, this collection covers an incredible amount of infor- mation from a wide variety of sources. It will be a valuable reference over the next few years as CD-ROM technology matures. Paul E. Hoffman (2000 Center St.. Suite 1024, Berkeley, CA 94704) writes and edits books. He holds two degrees from MIX and he is the editor of 'Ifext In Computers, a new scholarly jour- nal. PROGRAMMING PEARLS Reviewed by Michael O'Neill Ion Bentley's column "Programming Pearls" has ap- peared in the journal Communications of the Association for Computing Machinery (CACM) since 1983. This popular feature presents interesting and useful programming tech- {continued) 68 B YTE • OCTOBER 1986 Inquiry 347 In*a*Vision "a marvelous little CAD system" Listen To What The Critics Are Saying About ln*a*Vision PC Week September 1985 "Stands out from the crowd." "It has the makings of a winner." InfoWorld February 1986 "In*a*Vision is very easy-to-learn and easy-to-use." PC Magazine March 1986 "Fast, accurate and fun to use." "Excellent template system." Computer Buyers Guide March 1986 "A remarkable value." "Fast and easy to learn." PC Magazine i_ ■& e 31 \ JJ . i \ 4 \ e . 6 | a ^S~ - Power. Versatility. Ease. All of these add up to perform- ance. And performance is what In*a*Vision is all about. Power! "What surprised us was how fast In*a*Vision works." PC Magazine "Even complex command sequences are generated with lightning speed." "This is arguably the first piece of software that fully utilizes the power of the AT." Computer Buyers Guide Versatility! "In*a*Vision's text provisions are flexible and impressive." This advertisement was created with In*a*Vision and output at 300 DPI. "The spooling mechanism is a real timesaver." PC Magazine "The system is ideal for the kind of fine detail work that engi- neers, draftsmen and designers demand." Computer Buyers Guide Ease! "An hour with In*a* Vision and even the most devoted MAC fan will be a convert." PC Magazine "The program is quickly mas- tered; intuitive quickness is what this system is all about." "The program's ease-of-use and speedy execution allow you to concentrate on design..." Computer Buyers Guide MICROGRAFX The Picture of Success "In*a*Vision is so easy to learn that its menu bar will tempt you to begin using it without even reading the documentation." "The program's use is intuitive." InfoWorld Order Now! 1-800-272-3729 Yes, I want to improve my CAD performance with In*a*Vision. Please send me copies at $495 each. Optional Clip Art library (two diskettes) copies at $39.95 each. I enclose: Q Check Q Money Order f"| Visa Q] MasterCard [""I Amer. Exp. Credit Card: Name Company Name Address City State Zip Country Credit Card No. Exp. Date Send to: MICROGRAFX, Inc. 1820 N. Greenville Ave. Richardson, TX 75081 In Texas: 214-234-1769 Runs with or without Microsoft Windows on two-floppy or hard disk IBM PC or compatible with 320K; hard disk and 512K recommended. Inquiry 197 OCTOBER 1986 -BYTE 69 ONE SIMPLE QUESTION CAN MAKE YOUR PC CLONE A GOOD INVESTMENT. . . Is the power supply a FORTRON®? Your PC represents a substantial investment, it does not make sense to risk costly downtime or system failure due to the use of a so called "BARGAIN" power supply At Fortron we insist on quality and reliability that is what earned us a full U.L. rating, and why we feel confidence in offering our warranty as well as technical support. Invest in the best and you will be delighted at how little it cost to be powered by FORTRON® PROFITABLE DISCOUNT PRICES FOR DEALERS & SYSTEM INTEGRATORS AVAILABLEI FC 5192 PC AT |200W) SI 89.00 PC XT SIDE SWITCH PC XT 150WMAX. REAR SWITCH (J 30W) S 1 29.00 S 1 09.00 U.L. recognized, file #E-IOII)5[s) • OVR OCR short circuit protection Meet European safety spec. • IBM® standard pin-out or Faraday 115/230 AC convertible Type pin-out selectable Low noise DC fan • 100% 24 hrs burn-in, 100% pre- Good for up-grading PC or shipping test. One full year replacement to original PC warranty. power supply. • Meet FCC class B. tfe FORTRON ORDERS ONLY: |800) 82 1-9771 3225 SELDON CT. \N CALIF.: (4 1 5) 490-8 1 7 1 FREMONT, CA 94538 TELEX: 559291 FORTRON U.D. BOOK REVIEWS niques gathered from a variety of sources: journals, pro- grammers' folklore, the author's own experience, and that of his friends and correspondents. Programming Pearls con- sists of revised and expanded versions of thirteen of these columns. ample Choice Bentley usually presents more than one application of each technique; Column 2 and Problem 2.2, for example, explain some not widely known applications of the wide- ly known binary search technique. Bentley often presents more than one way of solving a given problem as well. For instance, in Column 1 1 he shows five different ways to perform one task, and he details the conditions under which one or another approach would be superior. Programming Pearls contains some awfully clever tricks. My favorite is the combination of tricks that is used to store the dictionary for a commercial spelling checker program. Doug Mcllroy, the program's author, managed to store 75,000 English words in 52K bytes, less than a fifth of the space required for storing the dictionary as ASCII char- acters. (Sorry, I don't have the space here to tell you how he did it.) Column 2, "Aha! Algorithm," and its associated problem set contain several very clever tricks, too. There are many more. But Bentley does not present cleverness for the sake of cleverness; each of his tricks provides in- creased efficiency, comprehensibility, or both. The book, however, is not just a bag of tricks; Bentley has tried, with some success, to organize his material into a coherent whole. While there may be many books on pro- gramming, there are few collections of tricks of the trade. Programming Pearls is the best collection I've seen. Structural Schemas The book is divided into three parts: "Preliminaries," "Per- formance," and "The Product." The first section contains material dealing with what might be called pre- and post- programming issues. Here Bentley offers program plan- ning and verification techniques. "Performance" contains the columns that concern ways of producing efficient pro- grams. "The Product" consists of four columns in which Bentley presents applications of the previously given tech- niques to more involved programs such as the spelling checker. This organizational scheme is very approximate; there is considerable overlap of material from section to section, and the assignment of columns to sections is somewhat arbitrary. Bentley imposes a second form of organization by high- lighting certain motifs that recur throughout Programming Pearls. Each column includes a section called "Principles" in which the author lists the motifs that appear in the col- umn. Some of these motifs are programming techniques such as binary search; others are general principles such as "Keep it simple" and "Work on the right problem." This organizational scheme effectively links the individual col- umns together and is more successful than the previous- ly mentioned three-part schema. Bentley includes a section of hints and solutions to [continued) 70 BYTE • OCTOBER 1986 Inquiry 112 for End-Users. Inquiry 113 for DEALERS ONLY. Powerful MS-DOS Software. For the IBM®- PC, XT, AT & others with generic MS-DOS/PC-DOS 2.0 or higher. tAcA copV Only pvote' cte<^ UTAH • :<• TM Whether student, teacher or professional programmer, this is the one you've heard so much about. It'seasy to use. Compiles 5000 statements on a 128K machine. 170 clearerror messages, i.e. DATA-NAME IS MISSING OR MISSPELLED. Distribute your object code programs royalty free. Small object code programs conserve disk space. Fast compile times to increase programmer pro- ductivity. Over 25 times faster than one compiler costing $995! You get a diskette and 213-page manual with lots of examples and 16 complete COBOL source code programs. $39.95. Also available: COBOL Application Packages, Book 1 $9.95. □ UTAH TM □ □ □ □ □ D PASCAL 14-digit precision, BCD math, no round-off errors with decimal arithmetic for business and floating point + 63 -64 for scientific. A very niceTRACEstyledebugging. Arrays up to 8 dimensions and 64K strings. External procedures and functions with dynamic auto-loading. One-step compile, no assembly or link required. You get a 132-page manual and diskette. $39.95 UTAH PILOT TM □ D D D Perfect for industrial training, office training, drill and testing, virtually all programmed instruction, word puzzle games, and data entry facilitated by prompts. John Starkweather, Ph.D., the inventor of the PILOT language, has added a built-in full-screen text editor, and much more. Meets all PILOT-73 standards for full compatibility with o/der versions. You get a diskette, 125-page manual and ten useful sample programs. $39.95. Also still available for 8-bit machines with CP/M® is our world famous Nevada Software Series used by 50,000 customers in 40 countries. These include Nevada COBOL, Nevada FORTRAN, Nevada PASCAL, Nevada PILOT, Nevada BASIC and Nevada EDIT. $39.95 each. Satisfaction guaranteed. If for any reason you're not completely satisfied, justreturn the package within 15 days in good condition, and we'll refundyour money. IBM is a registeredtrademark of International Business Machines Corp. CP/M is a registered trademark of Digital Research. MS is a trademark of Microsoft Corp. © 1985 Ellis Computing, Inc. Each! UTAH FORTRAN □ FORTRAN IV based upon ANSI-66 standards. □ Very fast compile times and easy to use. □ IF.. THEN.. ELSE constructs. □ Chaining with blank and named common. □ Copy statement. □ ENCODE and DECODE. □ Free-format input and output. □ A very niceTRACEstyledebugging. □ 150 English language error messages. □ You get a diskette, and 223-page manual. $39.95 TM UTAH EDIT TM □ A character-oriented full-screen video display text editor designed specifically to create COBOL, FORTRAN and PASCAL programs. □ Only requires 15K disk space so it can fit on the same disk as your compilers. □ Completely customizable tab stops, default file type, keyboard control key layout and CRT by menu selection. □ Diskettecomes with easy to read 58-page manual. $39.95. UTAH BASIC TM This interpreter has a built-in full-screen editor. Single- and Multi-line user definable functions. BCD Math- no round-off errors. Full Matrix operations. You get 220-page manual and diskette. $39.95. Handling/Shipping: No shipping charge within US. Overseas add $10 for first package, $5 each additional. Checks must be in US Dollars, drawn on a US bank. Utah Software requires 128K RAM and PC-DOS or MS-DOS 2.0 or higher. HOW TO ORDER. Send check or money order to Ellis Computing, Inc. with VISA or MASTERCARD order by phone. Sorry no COD's. ^^^^ Ellis Con M ^ 5655 Rig< m ■ Reno » Ne W Phone (7 SINCE 1977 ELLIS COMPUTING Ellis Computing, Inc. 5655 Riggins Court, Suite 10 Reno, Nevada 89502 Phone (702) 827-3030 Inquiry 1 02 OCTOBER 1986 -BYTE 71 NOW POWERFUL WITHOUT POWE Aunt Betty's Baked Good5 A typical DBMS user's screen, after the 497th line of code. With most database management soft- ware for the IBM PC family and com- patibles, you're quickly confronted with a painful reality: the only way to make your package live up to its promise is to learn its program- ming language. Which can take months. Then you have to write the code, line after frustrating line. But now, there's R:BASE™ System V. And for the first time, you can quickly create programs that automate your most impor- tant data management tasks. Without programming. Of course, with R:BASE System V, you can enter, query, and report on data in a non- automated, ad hoc fashion. With- out programming. And there's a high-level procedural language for programmers. But that's just the beginning. R-.BASE SYSTEM V IT GIVES NON-PROGRAMMERS POWERFUL PROGRAMS. With the EXPRESS System in R:BASE System V, you can access powerful features, without programming, that other data management software can't touch. With Definition EXPRESS, I SELECT ALL TROM callrpt SORTED BY calldate WHERE.. — Choose an operator to combine conditions-Choose (Done) when done- AflD OR AMD MOT OR HOT (Done) Column district district calldate comment Value Boston MewYorh March 12, 1985 American Baking Company An R:BASE System V Prompt-By-Example (PBE) screen. With PBE's query capabil- ities, you can retrieve just the information you need. Without programming. you can build a database structure with advanced features like com- puted columns, and searchable note fields. VIEWS that combine up to five tables in a single, powerful table. Data validation rules that check incoming data for errors. All without programming. Then you can use Forms EXPRESS to create customized data entry forms. The forms you create can load data into five different tables, linked in One-To- Many relationships. You can also include scrolling regions, custom borders, and custom colors, all without programming. And with Reports EXPRESS, you can design reports exactly the way you want. And see what they'll look like, right on the screen. To see how complex your reports can be, take a close look at the example at the end of this page. Finally, you can tie it all to- gether with Application EXPRESS. First, you design your own multi- level system of menus. Your first menu level might look like this: "Aunt Betty's Sales Reporting System (1) Enter Sales Data (2) Edit Sales Data (3) Print Daily Sales Report (4) File Processing (5) Exit For each menu choice, you assign an action. For example, to define Transaction date; 6/23/86 D Transaction number: 4609 Customer number: 666 name; 5peedy Shopper. Inc. Address: 4092 Industrial Way City, 5tate, Zip: Dryden, Mew York 13053 Phone: 000-555-0661 Stock » Brand fity. 207 Bake-A-Batch Cookies 93 308 Peanut Butter Crunch 100 Price Extended Price 2.00 186.00 2.50 25000 619 Double Rich Brownies 150 4.95 742.50 A data entry screen designed without programming, using Forms EXPRESS. menu choice #3, choose the action "PRINT" select the report you just created in Reports EXPRESS, and specify the appropriate data sorting and selection criteria. Then Application EXPRESS auto- matically writes the program code. Which means youve just created a very sophisticated pro- gram to deliver the full power of your DBMS. And youve done it all without learning how to program. From this point on, every time you want to run a report, all you do is choose item #3. With one simple keystroke, youve got it. R:BASE SYSTEM V IT GIVES PROGRAMMERS A POWERFUL ENVIRONMENT If youre an experienced pro- grammer, you can use R:BASE System V to tackle the most demanding applications. You can use Application EXPRESS to create prototypes faster than with any other microcomputer- based DBMS. There's a high-level proce- dural language, and a full set of relational operators that can lever- age up to 80 tables, all of which can be open at once. While you're racing along, a data dictionary DBMS PROGRAMS RFUL DBMS PAIN. keeps track of the action. Automatically. For demanding analyses, there's a set of 70 math, statistical, financial, scientific, and string manipulation functions. You also get more capacity for your data. Comprehensive menu-driven import/export capabilities. Super- ior relational power. And much, much more. THE MOST POWERFUL DBMS FOR ONE USER OR A WHOLE NETWORK- ALL IN ONE PACKAGE. In addition to its standalone personal computing power, R:BASE System V has all the fea- tures you need to share data on a local area network (LAN) built right in. When you're ready to network— now or later— this is the only DBMS package you'll ever need. And no matter how many users you add, you'll never have any growing pains. Because an unlimited number of users, attached to a LAN, can access R:BASE System V. SEE FOR YOURSELF: $15.95. We're confident you'll find R:BASE System V the shortest distance to your data management solution. Visit your computer dealer for a trial run. Or, if you prefer, we'll send you a Trial Pack C*P*>65U%L Page Date: Time Tuesdi.^ 8:00 am f J* June 24. j 986 6-tam ;h<\ ■J*«& A V Altni Betty's Baked Q %' ,y S.He. Report r F °rJune23, 1986 wm%21L- 1 01-1986 ^ Sou thern California 3 Cracker Products ^ VV heat Crisps Rve Crackers Total C ra ckerProdUc(Sales Bdke-A.fiatchCooki.c ^■'Swc Goods ProduclSa|es Cr a cke rProduc , s "heai Crisps "ve Crackers To,a, Cracker Pro ductSa , es S-ee,G oodsProd fc*$y** T °TAL SALES 97.536.22 235.223.li 332.759.33 25.006 23 8.623.30 '9.446.90 113.636.01 '66.7j2.44 499.47]. 77 57,406 25 I75.223.56 232.629.8 j 45,146.55 47-123.80 9.390.99 5 ' 7 .446.25 619.107.59 851,737.40 for only $15.95, plus shipping. It's a fully functional, row-limited version of R:BASE System V Just call 1-800-547-4000, Dept. 969. In Oregon or outside the U.S., call 1-503-684-3000, Dept. 969. What if you already own R:BASE 5000? If you bought your copy before June 30, 1986, you can trade it for the full power of R.-BASE System V. For only $99. (Offer expires January 31, 1987.) Just give us a call at 1-800-248-2001. Outside the U.S., call 1-206-885-2000. A program to print this report daily, with a one-keystroke menu pick, was developed without program- ming using R:BASE System V's EXPRESS Technology. Whether you know how to program or not, R:BASE System V is the shortest distance to your data management solution. NEW R:BASE SYSTEM V '"■■*: - Trademarks/Owners: Microrim, RrBASE/Microrim, Inc.; IBM/International Business Machines, Inc. ©1986 Microrim, Inc. FROM MICRORIM SCSI ENGINES BOOK REVIEWS $495 Little Board/186™. High Performance, Low Cost PC-DOS Engine Boots IBM PC-DOS (not included) ► Three times the COMPUTING POWER of a PC » Data and File Compatible with IBM PC, runs "MS-DOS generic" programs ' 8 MHz 80186 CPU, DMA, Counter/Timers, 128/512K RAM zero wait states, 16-128K EPROM » Mini/Micro Floppy Controller (1-4 Drives, Single/Double Density, 1-2 sided, 40/80 track) • 2 RS232C Serial Porte (50 -38,400 baud), 1 Centronics Printer Port ► Only 5.75 x 7.75 inches, mounts directly to a 5-1/4" disk drive ► Power Requirement: +5VDC at 1.25A; +12VDC at .05A; On board -12V converter ► SCSI/PLUS™ multi-master I/O expansion bus » Software Included: • PC-DOS compatible ROM-BIOS boots DOS 2.x and 3.x • Hard Disk support OPTIONS PROJECT BOARD/186™ - adds 25 square inches of wire wrap prototype area with buffered and pre-decoded 80186 bus interface for Little Board/186 EXPANSION/1 86" - adds five key options to Little Board/186 • 512KRAM • 8087 co-processor • Battery-backed Real Time Clock • 2 RS232/422 sync/async serial ports • I/O expansion bus VIDEO RAM EMULATOR" -allows use of software that writes to display controller "VIDEO RAM" SCSI/IOP 1 " - permits connection of off-the-shelf STD bus industrial I/O interfaces (analog, digital, serial, display, power control, etc) DISTRIBUTORS ARGENTINA: FACTORIAL, SA, 41-0018 TIX 22408 AUSTRALIA: ASP MICROCOMPUTERS, (613) 500-0628, TIX 36587 BELGIUM: CENTRE ELECTRONIQUE LEMPEREUR, (041 ) 23-45-41, TLX 42621 BRAZIL: COMPULEADER COMPUT ADORES LTDA, (41) 262-1939, TLX 416132 CANADA: TRI-M, (604) 438-9012 DENMARK: DAN8IT, (03) 66 20 20, TLX 43558 UK: AMBAR SYSTEMS LTD,, 0296 3551 1, TLX 837427 FINLAND: SYMMETRIC OY, 358-0-585-322, TLX 1 21 394 FRANCE: EGAL PLUS, (1) 4502-1800, TLX 620893 ISRAEL: ALPHA TERMINALS, LTD., (03) 49-16-95, TLX 341667 SWEDEN: AB AKTA, (08) 54-20-20, TLX 1 3702 USA: CONTACT AMPRO COMPUTERS INC,. IBM®, IBM Corp.; 80186®, Intel, Corp,. COMPUTERS, INCORPORATED 67 East Evelyn Ave, • Mountain View, CA 94041 • (415) 962-0230 TELEX 4940302 • FAX (415) 962-1042 selected problems and a catalog of the algorithms con- tained in the book (classified by type). Different Approaches I have two suggestions about how to read this book. First the epilogue, in which Bentley interviews himself, is the best summary of the purpose of the book and the themes that run through it; read it first. Second, each problem set has many practice problems closely related to the material in its associated column. Try to do each problem set before reading the column because it may be too easy afterward. Ion Bentley has produced a fascinating collection of pro- gramming tricks. He obviously enjoys programming, and his enthusiasm and writing skill make this book fun to read as well as educational. By emphasizing recurring motifs, Bentley stresses techniques and rules of thumb that are of general usefulness for writing programs that are cor- rect, fast, compact, and easy to understand and maintain. If you are a programmer who wants to improve the quali- ty of the programs you write, Programming Pearls is well worth reading. Michael O'Neill (2227 Dwight Way #4, Berkeley, CA 94704) has been programming computers for 20 years. ADVANCED UNIX PROGRAMMING Reviewed by Brian Edginton Here, at last, is a book that can be put on the shelf next to definitive standards such as Kernighan and Ritchie's The C Programming language (Prentice-Hall, 1978) and Kernighan and Pike's The UNIX Programming Environment (Prentice-Hall, 1984). Marc Rochkind has given us a tech- nically coherent and complete guide to programming in the UNIX operating systems. System III, System IV, Berkeley 4.2, and XENIX. He has demonstrated the dif- ferences in programming techniques between the different systems and has conveniently included information relat- ing specifically to XENIX. System Calls Most programmmers write applications for end users that require little, if any, direct or visible interaction with the operating system. In fact, most of the common operating systems other than UNIX require that system calls and operating system interfaces be written in assembly lan- guage, a skill few COBOL or FORTRAN programmers have or want. The UNIX operating system requires the full use of system calls to display its entire range and flavor. These calls give the programmer very fine control over the operating system and the functionality of the programs. The chapters divide the system calls into logical groups. These include a review of fundamental concepts, file I/O, terminal I/O, signals, processes, and interprocess commu- nication. The book concludes with a collection of miscel- laneous system calls and two appendixes that contain a [continued] 74 BYTE • OCTOBER 1986 Inquiry 25 If you think you cant afford a UNIX system. we vegota $160 surprise. Turn your PC into a multi-user system. Convert your IBM PC-AT (or compatible) into a multi- user/tasking UNIX work station— at absolutely the best price anywhere, any time. Based on the AT&T-certified UNIX System V/286, the MICROPORT SYSTEM V/AT is designed for use in vir- tually any computer environ- ment, from office automation to software development. Over 200 utilities come standard. Grep, awk, sort, split, cut, paste, vi and ed (and many more) now let you search and modify files, make use of electronic mail, emulate terminals, calculate elec- tronically, convert data and publish. SYSTEM V/AT is more than a look-alike. It was derived from AT&T's own UNIX System V release 2 iAPX286. It thereby contains standard System V features the competitors don't support, such as the powerful symbolic debugger, sdb, the shell-layering job-control facility and the F77 Fortran compiler, as well as program- ming tools such as ctrace, cflow, and bs. Also standard is File System Hardening which greatly reduces data loss in a power failure. Want some more features? Console driver providing ANSI terminal interface for monochrome, CGA, Hercules and EGA cards. Multiple Virtual consoles allow up to four virtual windows of operation. Record and File Locking Supports the 286's 16 megabyte virtual address space and fully utilizes its other advance features. Supports all standard IBM drive types and most non-standard hard-disk drives. Requires only one hard-disk partition, and allows DOS to reside on the same hard disk. Provides utilities to transfer files to-and- from DOS file systems. U N I X and D WB ar e trademarks o I AT&T IBM and IBM PC-AT are trademarks of IBM CORPORATION. SYSTEM V/AT is a trademark of MICROPORT SYSTEMS, INC. Inquiry 198 Dynamic disk buffer allocation provides RAM disk performance for systems with large memory configuration. Rups on virtually all PC-AT clones. • Binary compatible with the AT&T 6300 Plus UNIX System. So, how do we do it? Super software- development environment We've provided everything: Make, yacc, lex, sees, cflow, ctrace plus every standard System V software-development tool. The F77 Fortran compiler. And the AT&T Portable C compiler for the 286. Both C and Fortran compilers generate 287 in- structions directly— for systems not con- taining 287 math coprocessors, a kernel- resident IEEE-compatible 287 emulator is provided. The large-model code produced by the compiler is among the densest and fastest currently available. MICROPORT offers SYSTEM V/AT at a fraction of the price of the competitors simply because we build on the generic System V/286 product from AT&T This en- tire utility package from the certified release has been copied directly to SYSTEM V/AT— without so much as a recompile. Not only does this mean that MICROPORT can offer SYSTEM V/AT at a remarkable low price, it also guarantees a level of quality present in few (if any) other UNIX-system implementations. (And, since our staff was part of the group that im- plemented the standard System V/286 port for Intel, MICROPORT can offer com- prehensive support for the system, as well.) And a dollar change The price is even better than you thought. Order right away and we'll return one silver dollar just as rapidly with your product shipment. (If you'd like a little more time we'll apply that dollar to the cost of a brochure— which we'll send right away too.) 90 DA Y MONEY BACK GUARANTEE dollar change. To order: Complete the information below. Your attractively-packaged and fully-documented order will be shipped within two weeks. MICROPORT SYSTEMS, INC. 4200 Scotts Valley Drive Scotts Valley, CA 95066 408/438-UNIX or 800/PC2-UNIX (outside CA) SYSTEM V/AT D RUNTIME SYSTEM Includes the SYSTEM V/AT operation system and over 200 utilities, for two users. QUANT: $160.00 □ SOFTWARE DEVELOPMENT SYSTEM The complete Software Generation System for 286 development. QUANT $169.00 □ TEXT PREPARATION SYSTEM Includes nroff, troff, spell and other programs. QUANT $169.00 □ THE COMPLETE SYSTEM Contains all three packages indicated above. QUANT: $439.00 □ OPTIONAL three to eight-user upgrade. QUANT TFI PPHOMF ADDRFSR CITY STATF COUNTRY 7IP □ VISA □ MASTERCARD CARD NUMBER □ BANK DRAFT □ CHECK FXP DATF $99.00 Subtotal: (CA residents add 6.5°/o tax per copy): Shipping and handling charges (In the USA, $14.00; in Canada, $18.00; and in Europe, $110. . . .: □ Send a brochure only and keep me on your mailing list, please. STATISTICAL PACKAGES Complete, high-performance data-analysis software from: StatSoft Unbeatable power and flexibility for unbeatable prices! 1. STATS-2™ (release 2.1): A complete, superfast statistical package. Can also be used as a statistical supplement for Lotus 1-2-3™ and other spreadsheet programs. Runs on IBM™ and compat- ibles, 256k, 2dd, 8087 support $149 2. STATFAST-2™ (release 2.1): The most powerful statistical package developed for the Macintosh™ 128k/512k/Plus, 1dd $119 3. APP-STAT™: A complete statistical package for the Apple II™ family of computers, 1dd $99 4. PSYCHOSTAT-3™: A complete sta- tistical package, available for Kaypro™ and all CP/M™ computers, 1dd $99 All of these statistical packages are user friendly and super- easy to use. They include the full range of basic statistical analyses (descriptive statistics, t-tests, correlations, cross- tabulations, nonparametric statistics, and much more) and advanced multivariate statistics (comprehensive multiple regression with forecasting, general multifactor ANOVA/AN- COVA up to 5 factors including a covariate, repeated mea- sures, contrasts, unbalanced designs, and more). All pack- ages can handle data files of unlimited size, include flex- ible Data Editors with complex transformations and com- plete data-base management functions, and can access data files from spreadsheets, data-bases, and mainframes. Ask for our statistical packages for other computers. TO ORDER: Send check, credit card number, or money order (plus $5 shipping and handling) to: StatSoft" LoiticCord) 2832 EAST 10TH STREET, SUITE 4, TULSA, OK 74104 (918)583-4149 To order by phone (Visa, MasterCard, COD. orders accepted) or talk to our technical staff for more information, call (918) 583-4149. STATSOFT. STATSOFT logo. STATS-2. STATFAST. APP-STAT. PSYCHOSTAT-3. LOTUS 1-2-3, IBM. Macintosh. Apple II. Kaypro. and CP/M are trademarks of respective companies BOOK REVIEWS summary of subroutines and System V process attributes. An excessive number of technical books on the shelves today spend an inordinate amount of time telling you "how to." There are books on programming and systems design that contain hundreds of lines of code but spend very little time explaining why and when to use the skills they teach. Advanced UNIX Programming goes beyond the normal how-to mindset and teaches the philosophy behind the different system calls. Rochkind very capably describes when to use the system calls that parallel each other in function and details the most common side effects of each call so that readers and programmers can decide which best meets their intended purpose and goals. This is very important when you are dealing directly with the operating system and when you want to avoid hours of debugging the results of an undocumented "feature." TERMINAL I/O Programming in UNIX involves the use of some com- plicated techniques to exhaust all the features available with a true multitasking system. And since this is still an evolv- ing operating system, the ability to add or modify existing support and application programs that depend on the hard- ware peculiarities of new and enhanced peripherals is of primary importance to the systems programmer. Terminal I/O is a complex topic that is handled very thoroughly in a chapter by itself. Terminal communications in UNIX take place through programs called device drivers. The user makes a request to the kernel for data transfer through a particular device, and that request is passed off to the appropriate device driver for processing, com- pletion, and error detection and recovery if necessary or appropriate. This means the device driver must be very comprehensive and must fully use a great many of the available system calls. The chapter on terminal I/O is indicative of the complete- ness and depth found throughout the book. With more than three structure types and 50 different flags to deal with in working with the typical communications line, the information is well presented and easily understood. Multitasking and Processes A full chapter is devoted to multitasking, one of the main features of the UNIX operating system. Ttoo chapters are devoted to interprocess communication. Rochkind takes the reader through a tutorial on the environment and ex- plains how to use system calls to read and write to the process environment, a feature that allows users to customize features of their shell. He also explains how to use other application programs that read environment variables. Since almost everyone who uses UNIX is familiar with the shell and how it operates, the author demonstrates the system calls exec, fork in its various forms, and related calls by building a small shell. The detail and complexity of the shell and its features are developed and matured as more and more system calls are discovered. This is an excellent way to learn to use the system calls because it [continued) 76 BYTE • OCTOBER 1986 Inquiry 288 The C for Microcomputers PC-DOS, MS-DOS, CP/M-86, Macintosh, Amiga, Apple II, CP/M-80, Radio Shack, Commodore, XENIX, ROM, and Cross Development systems MS-DOS, PC-DOS, CP/M-86, XENIX, 8086/80x86 ROM Manx Aztec C86 "A compiler that has many strengths . . . quite valuable for serious work" Computer Language review, February 1985 Great Code: Manx Aztec C86 generates fast executing compact code. The benchmark results below are from a study conducted by Manx. The Dhrystone benchmark (CACM 10/84 27:10 pl018) measures performance for a systems software instruction mix. The results are with- out register variables. With register variables, Manx, Microsoft, and Mark Williams run proportionately faster, Lattice and Computer Innovations show no improve- ment. Execution Code Compile/ Time Size Link Time Dhrystone Benchmark Manx Aztec C86 3.3 34 sees 5,760 93 sees Microsoft C 3.0 34 sees 7,146 119 sees Optimized C86 2.20J 53 sees 11,009 172 sees Mark Williams 2.0 56 sees 12,980 113 sees Lattice 2.14 89 sees 20,404 117 sees Great Features: Manx Aztec C86 is bundled with a powerful array of well documented productivity tools, library routines and features. Optimized C compiler Symbolic Debugger AS86 Macro Assembler LN86 Overlay Linker 80186/80286 Support Librarian 8087/80287 Sensing Lib Profiler Extensive UNIX Library DOS, Screen, & Graphics Lib Laige Memory Model Intel Object Option Z {vi) Source Editor -c CP/M-86 Librai-y -c ROM Support Package -c INTEL HEX Utility -c Library Source Code -c Mixed memory models -c MAKE, DIFF, and GREP -c Source Debugger -c One year of updates -c CP/M-86 Library -c Manx offers two commercial development systems, Aztec C86-c and Aztec C86-d. Items marked -c are special features of the Aztec C86-c system. Aztec C86-c Commercial System $499 Aztec C86-d Developer's System $299 Aztec C86-p Personal System $199 Aztec C86-a Apprentice System $49 All systems are upgradable by paying tbe difference in price plus $10. Third Party Software: There are a number of high qual- ity support packages for Manx Aztec C86 for screen management, graphics, database management, and soft- ware development. C-tree $395 PHACT $250 HALO $250 PRE-C $395 Greenleaf$185 PC-lint $98 Amber Windows $59 Windows for C $195 WindScreen $149 FirsTime $295 SunScreen $99 C Util Lib $185 PANEL $295 Plink-86 $395 MACINTOSH, AMIGA, XENIX, CP/M-68K, 68k ROM Manx Aztec C68k "Library handling is very flexible . . . documentation is excellent ... the shell a pleasure to work in ... blows away the competition for pure compile speed ...an ex- cellent effort." Computer Language review, Apiil 1985 Aztec C68k is the most widely used commercial C com- piler for the Macintosh. Its quality, performance, and completeness place Manx Aztec C68k in a position be- yond comparison. It is available in several upgradable Optimized C Macro Assembler Overlay Linker Resource Compiler Debuggers Librarian Source Editor MacRam Disk -c Library Source -c Creates Clickable Applications Mouse Enhanced SHELL Easy Access to Mac Ibolbox UNIX Library Functions Terminal Emulator (Source) Clear Detailed Documentation C-Stuff Library UniTools (vi,make,diff,grep) -c One Year of Updates -c Items marked -c are available only in the Manx Aztec C86-c system. Other features are in both the Aztec C86-d and Aztec C86-c systems. Aztec C68k-c Commercial System $499 Aztec C68d-d Developer's System $299 Aztec C68k-p Personal System $199 C-tree database (source) $399 AMIGA, CP/M-68k, 68k UNIX call Apple H, Commodore, 65xx, 65C02 ROM Manx Aztec C65 "The AZTEC C system is one of the finest software packages I have seen" NIBBLE review, July 1984 A vast amount of business, consumer, and educational software is implemented in Manx Aztec C65. The quality and comprehensiveness of this system is competitive with 16 bit C systems. The system includes a full optim- ized C compiler, 6502 assembler, linkage editor, UNIX library, screen and graphics libraries, shell, and much more. The Apple II version runs under DOS 3.3, and ProDOS, Cross versions are available. The Aztec C65-c/128 Commodore system runs under the C128CP/M environment and generates programs for the C64, C128, and CP/M environments. Call for prices and availability of Apprentice, Personal and Developer versions for the Commodore 64 and 128 machines. Aztec C65-c ProDOS & DOS 3.3 $399 Aztec C65-d Apple DOS 3.3 $199 Aztec C65-p Apple Personal system $99 Aztec C65-a for learning C $49 Aztec C65-C/128 C64, C128, CP/M $399 Distribution of Manx Aztec C In the USA, Manx Software Systems is the sole and ex- clusive distributor of Aztec C. Any telephone or mail order sales other than through Manx are unauthorized. Manx Cross Development Systems Cross developed programs are edited, compiled, assem- bled, and linked on one machine (the HOST) and trans- ferred to another machine (the TARGET) for execution. This method is useful where the target machine is slower or more limited than the HOST, Manx cross compilers are used heavily to develop software for business, consumer, scientific, industrial, research, and education- al applications. HOSTS: VAX UNIX ($3000), PDP-11 UNIX ($2000), MS- DOS ($750), CP/M ($750), MACINTOSH ($750), CP/M-68k ($750), XENIX ($750). TARGETS: MS-DOS, CP/M-86, Macintosh, CP/M-68k, CP/M-80, TRS-80 3 & 4, Apple II, Commodore C64, 8086/80x86 ROM, 68xxx ROM, 8080/8085/Z80 ROM, 65xx ROM. The first TARGET is included in the price of the HOST system. Additional TARGETS are $300 to $500 (non VAX) or $1000 (VAX). Call Manx for information on cross development to the 68000, 65816, Amiga, C128, CP/M-68K, VRTX, and others. CP/M, Radio Shack, 8080/8085/Z80 ROM Manx Aztec CII "I've had a lot of experience with different C compilers, but the Aztec C80 Compiler and Professional Develop- ment System is the best I've seeri." 80-Micro, December, 1984, John B. Harrell III Aztec C H-c (CP/M & ROM) $349 Aztec C H-d (CP/M) $199 C-tree database (source) $399 Aztec C80-c (TRS-80 3 & 4) $299 Aztec C80-d (TRS-80 3 & 4) $199 How lb Become an Aztec C User To become an Aztec C user call 1-800-221-0440 or call 1-800-832-9273 (800TEC WARE). In NJ or outside the USA call 201-530-7997. Orders can also be telexed to 4995812. Payment can be by check, COD, American Express, VISA, Master Card, or Net 30 to qualified customers. Orders can also be mailed to Manx Software Systems, Box 55, Shrewsbury, NJ 07701. How lb Get More Information lb get more information on Manx Aztec C and related products, call 1-800-221-0440, or 201-530-7997, or write to Manx Software Systems. 30 Day Guarantee Any Manx Aztec C development system can be return- ed within 30 days for a refund if it fails to meet your needs. The only restrictions are that the original pur- chase must be directly from Manx, shipped within the USA, and the package must be in resalable condition. Returned items must be received by Manx within 30 days. A small restocking fee may be required. Discounts There are special discounts available to professors, students, and consultants. A discount is also available on a "trade in" basis for users of competing systems. Call for information. Inquiry 181 To order or for information call: 800-221-0440 Inquiry 84 PCIVI Full Screen Editor for MS-DOS (PC-DOS) Looking for an Ultra-Powerful Full-Screen editor for your MS-DOS or PC-DOS system? Are you looking for an editor FULLY COMPATIBLE with the UNIX*V1 editor?Are you looking for an editor which not only runs on IBM-PC's and compatibles, but ANY MS-DOS system? Are you looking for an editor which provides power and flexibility for both programming and text editing? If you are, then look no further because PC/V1 IS HERE! The following is only a hint of the power behind PC/ VI: English-like syntax in command mode, mnemonic control sequences in visual mode; full undo capability; deletions, changes and cursor positioning on character, word, line, sentence, paragraph or global basis; editing of files larger than available memory; powerful pattern matching capabil- ity for searches and substitutions; location marking; joining multiple lines; auto-indentation; word abbrevia- tions and MUCH, MUCH MORE! The PC/VI editor is available for IBM-PCs and generic MS-DOS based systems for only $149. For more information call or write: Custom Software Systems P.O. Box 678 Natick, MA 01760 617-653-2555 The UNIX community has been using the VI editor for years. Now you can run an implementation of the same editor under MS-DOS. Don't miss out on the power of PC/VI! *UNIX is a trademark of AT&T Bell Laboratories. BOOK REVIEWS Advanced UNIX Programming is an invaluable aid in creating more efficient programs. exercises the programmer's skill and imagination in a learn-by-doing situation. Although this book is directed toward experienced pro- grammers who have already perfected their own bad habits, the style and consistency of the code examples will be a help to anyone who chooses to use this work as a guide or text. Interprocess Communication By the end of the fifth chapter, the author has covered most of the system calls used in programming and still has four more chapters to go. 1 say most because the calls used in interprocess communications are rarely imple- mented because of the lack of understandable documen- tation available before now. Pipes are generally understood at a lower level because shell programmers have always been able to use the "[" symbol to connect the output of one program with the input of another. In completing the shell started in the chapter on processes, Rochkind goes into detail on the construction and use of pipes. Bidirectional pipes are ex- plained, along with examples of where a pipe can be used and several examples of where pipes should not be used. FIFOs, semaphores, and shared memory are the ad- vanced interprocess communications techniques that have been developed and carried across the System III and System V families. Communications that were developed for the Berkeley family are not as portable or as easily understood as AT&T's and are not covered in this book. FIFOs are fancy pipes with names and attributes like files so that they can be used by different processes, and quite a bit of time is spent developing the proper use of FIFOs in a database management system application. The cov- erage of this topic is quite lively, and several primitives or functions are developed and supplied to the readers for their toolboxes. I have covered only half the information in this book; its depth and comprehensiveness go farther. The infor- mation is presented with thought and humor, and the author displays a genuine understanding of the subject matter. There are exercises at the end of each chapter that can aid in developing skills in using system calls effective- ly. No matter what version of UNIX you work with, the information in Advanced UNIX Programming will be an in- valuable aid in creating more efficient programs. Brian Edginton (551 Ramona Ave.. Salt lake City, UT 84105) is a consultant for UNIX, XENIX, PC-DOS, and networking applications. ■ 78 BYTE • OCTOBER 1986 Inquiry 165 The Shape. Sharp. Sleek. And amazingly adaptable. The Genicom 1000 Series Desktop Printers. Ready for anything from business forms to spread- sheets; word processing to heavy-duty data processing. With letter quality printing at 100 cps. And data processing printing at 200 cps. Open the clamshell casing and look inside. Discover just how simple the future can be. The Personality. IBM* Epson; Diablo*-the Genicom 1000 can be all of these printers and more. Because we've built their personalities into plug-in cartridges. Changing personalities is as easy as changing your mind. Simply plug in the personality cartridge of your choice, and your Genicom 1 000 is off and running. Working with almost any PC or software program you care to mention. Effortlessly. 'j* Express your personality. With font *^jP^ cartridges that plug right into the front of the printer. Pick your type; you've got hundreds of fonts to choose from. Insert up to three cartridges at once, and vary type styles within the same document. The Design. The Genicom 1 000 is the first desk- top printer designed with common sense, right down to its built-in printer stand. The unique design also makes paper load- ing faster and easier than ever before. Feed tractor paper straight through the bottom. Or from the rear. With Genicom's automatic, zero tear-off bar, no matter how you feed it, you'll never waste a piece of paper again. Whenyou wanttoprinton letterhead, justfeed single sheets of paper, typewriter style. You don't even have to remove the tractor paper. IBM is a registered trademark of International Business Machines Corp. Epson is a registered trademark of Epson America, Inc. Diablo is a registered trademark of Xerox Corporation. Inquiry Il8 But the 1000 Series was designed for more than ease of use. It was also designed for performance. Its 18-wire printhead delivers high resolution graphics and word processing printing that can only be called letter quality. The Controls. Easy to adapt. Easy to use. And easy to control. With the Genicom 1000's front panel, total command is at your fingertips. Choose fonts, character spacing, line spacing, form length and print quality with the push of a button. No dipswitches. And no fumbling inside the printer. The Track Record. When it comes to reliability, Genicom stands by its record. We've created a full line of printers: from desktop models to machines that print 800 lines per minute. Our printers have proven their rugged dependability performing for some of the world's largest corporations. Now we're ready to prove it to you. So stop by your authorized Genicom dealer today and ask for a demonstration of the new 1000 Series; the 1025 and the 1020 for wide column printing. We think you'll agree, these printers are a radical departure from the crowd. For the Genicom dealer nearest you, call 1-800-437-7468. In Virginia, call 1-703-949-1170. GEiMiCGiVI The Printers That Mean Business. One Genicom Drive, Waynesboro, VA 22980 Simply put: THE "highest quality and best value in computer products anywhere. THE ™ commitment to otir customers is compatibility, quality, value, service and support THE M backs every product with a 45 DAY MONEY BACK GUARANTEE and a FULL 1 YEAR PARTS AND LABOR WARRANTY THE M MULTI384 This multi-function card features 0-384K memory, a parallel printer port, a serial port for communications, a clock/calendar with battery backup, and a software bonus that includes RAMdisk and other utilities. Retail $90.00 THE M COLOR CARD 100% compatible with the IBM ,M colorcard with display modes of 80x25 alphanumeric and 320x200 graphic. Retail Price S75.00 Special Wholesale Price $60.00* THE ™576K MEMORY + Supports 0-576K of available memory and is compatible with all IBM™ PC's. Retail $46.25 Special Wholesale Price $35.00* THE™PRINTERFACE Supports all text and graphics features and is fully compatible with third party Software. Retail Price $23.13 Special Wholesale Price $18.50* •All Items Subject to Availability — Prices Subject to Change TM— Registered Trademarks of IBM/Ast Research/ MicrosofVHercules/Hayes THE ™ MODEMS 100% Hayes compatible THE™ 1200 COM EXTERNAL This self -testing 1200 BPS modem comes with auto answer.auto dial, auto redial and a built-in speaker. Retail Price $161.25; Special Wholesale Price $129.00* THE™ 1200 COM INTERNAL Features auto answer, dial and redial, with a built-in speaker, RS 232-C serial port and PC Talk III. Retail Price $148.75 Special Wholesale Price $109.00* THE™ 2400 COM EXTERNAL Eight times the speed of a 300 BPS unit makes this 2400 Baud modem truly affordable, and we've made it truly compatible. With auto answer, auto dial, auto redial, and a built-in speaker with Volume Control. Retail Price $346.25 Special Wholesale Price $259.00* THE ™H720 MONO This monochrome graphics card with printer port features 100% IBM™ and Hercules™ compatibility, at a fraction of their prices. Retail Price S91.25 $73.00* si 20.00 VRIVBI ADAM OSBORN'S PAPERBACK SOFTWARE • Paperback Writer • Paperback Speller • Numberworks Spreadsheet All three for only. . . $32.00* With the purchase of a PC + THE ™ 20MB HARD DISK Featuring a half -height IBM™ PC compatible internal 20MB disk drive, controller card, connecting cables and installation manual. Retail $458.75 Special Wholesale Price $357.00* THE ™MULTII/0 Feature for feature, THE™ matches the AST™ I/O + and comes up a winner, with serial/parallel and game ports standard, (a second serial port optional), a clock/calendar, RAMdisk and print Spooler. Retail Price $75.00 $60.00* THE ™ EG A PLUS With 256K standard this 100% IBM™ EGA and Hercules Graphics compatible card is ideal for high resolution graphics display of Microsoft™ Windows, Lotus™ and AutoCAD™. Retail Price $283.75* Special Wholesale Price $220.00* Thompson, Harriman and Edwards Computer THE TM Thompson, Harriman and Edwards Computer Products Company Ltd. THE ™ PC + COMPUTER THE™PC + is compatible with all business, professional and personal software written for the IBM™ PC. It will also enhance your productivity with its ability to switch to an 8 megahertz clock rate, enabling you to run your software twice as fast as the IBM™ PC. THE™ PC + also comes standard with an "AT" style keyboard, correcting the inefficiencies found by IBM™ on their regular PC keyboard. 256K standard (640K optional) on the mother board will allow you to run memory intensive programs such as Lotus 1-2-3, DBase III and Framework without adding extra memory cards. Plenty of power, with a 135 Watt source and lots of room for expansion with 8 card slots is also standard. Base unit includes: 256K RAM, Computer with One 360K 5W Floppy Drive, Dual Turbo Clock Speed, 8 Expansion Slots, 135 Watt Power Supply, 'AT" Style Keyboard, Full 1 Year Warranty and 45 Day Money Back Guarantee! Retail Price $586.25* Special Wholesale Price " :■::, ■ : '. : " ■ THE MOST INCREDIBLE LIMITED TIME OFFER IN COMPUTER HISTORY, FROM THE™ and PC NETWORK... THE TM . 'THE PC -f- is well built and has enough company support behind it to make it a very a ttractive alternative to ffl^lilj higher-priced competition, " PC LABS FIRST LOOK/ AUGUST 198(5 $444.00* (Monitor Not Included) r 1 f J } I 1 I I / I I 1 I ill 1 i I t " i i ' . 5 " ! ' J ' i ' l I m 1 \ 256K RAM, IBM ™ PC compatible, 360K5.25" Disk Drive, Turbo Speed, "AT" Style in\ Keyboard PC Network *JUI prices in this ad are wholesale— PC Network Members pay wholesale + 8% and shipping. CALL TOLL FREE B3NX (800) 621-SAVE In Illinois (312) 280-0002 Special Wholesale Price $444. 00 $469.00* for 640K System * Products Company Ltd. Deale rInqui ries Ca u THE '" at (312) 642 " 9626 319 West Ontario Street, Chicago, Illinois 60610 NETWORK BUY HARDWARE AND SOFTWARE AT WHOLESALE +8%, AND GET 14-30 DAY SOFTWARE RENTALS*. . . Listed below are just a few of the over 30,000 products available at our EVERYDAY LOW PRICES! The Network carries products for Apple, IBM, CP /M and most other popular computer families. GAMES & EDUCATIONAL SOFTWARE FOR YOUR APPLE // & MACINTOSH (Please add $1 shipping and handling for each title ordered from below.) Wholesale $42.00' 23.66' 17.25' 24.75* 30.25* 20.97* Wholesale Penguin Graphics Magician 28.97' Penguin Pensate/XyphusfTransylvania-Mac Only 17.70* Professional Software Trivia Fever 23.97' Pryorlty Software Forbidden Quest 21.00' Scarborough Master Type 22.77' Scarborough Run (or the Money 26.00' Simon & Schuster Typing Tutor III 28.25' Sir-Tech Wizardry 26.97' Sir-Tech Knight ol Diamonds or Rescue Raiders 18.97* Arrays Home Accountant-Mac Only Bluechlp Baron/MillionairefTycoon Broderbund Lode Runner, Choplifter Broderbund Print Shop Broderbund Dazzle Draw CBS Murder by the Dozen CBS Goren Bridge Made Easy 45.00* Counterpoint The News Room 26.97' Davidson Speed Reader It 31.00* Davidson Math Blaster or Word Attack! 21.50* 1st Byte Smooth Talker-Mac Only 44.00' Hayden DaVinci-House/lnteriors/Landscapes 23.00* Hayden Sargon III 24.75' Infocom Deadline or Suspended 24.00' Infocom Enchanter, Planetfall, 20.00* Cutthroats, Witness or Zork I Infocom Hitchhiker's Guide or Seastalker 20.00' Infocom Suspect, Sorcerer. Inlidel. Zork II or III 22.00' Layered Front Desk-Mac Only 65.00* Miles Computing Mac Attack-Mac Only 20.50' Palantlr Mac Type-Mac Only 26.37' BUSINESS SOFTWARE FOR YOUR APPLE // & MACINTOSH (Please add $2.50 shipping and handling for each title ordered from below.) ►Apple Apple Works Aaslmllatlon Process/Mac Memory Disk 21.00' 59.00' 49.85* 30.00' 209.00' 35.25' 16.25* 20.00* 26.50' 60.00' 40.00' 29.95' 24.00* 21.00* 98.00' Subloglc Night Mission Pinball Subloglc Flight Simulator II ►Spinnaker Alphabet Zoo, Face Maker, Kinder Comp, Hey Diddle Diddle, Rhymes & Riddles, Story Machine ►Spinnaker Most Amazing Thing/Delta Drawing ►Spinnaker Delia Drawing T/Maker Click Art-Mac Only Warner Desk Organizer Vldex Fun Pack-Mac Only Videx Mac Checkers & Reversal Virtual Comblnatlcs Micro Cookbook 20.00* 27.25* 15.97* 20,77* 24.97* 25.00' 59.90' 19.77' 25.17' 17.50' Beagle Brothers Macro Works Borland International Reflex for the Mac Borland International SlaeKicK w/pnonelink Borland International Turbo Pascal BPI GL, AP, AR. PR or INV Broderbund Bank Street Writer Central Point Copy II Plus or Copy II Mac Epyx Winter Games Funk Software Sideways Funsoft Macasm Haba Habadex Harvard Mac Manager Human Edge Mind Prober Human Edge Sales Edge Human Edge Communication Edge $160.00* ►Living Vldeotext ThinkTank-Mac Too! $75.00* 19.25' Main Street Filer-Mac Only 67.00' MECA Managing Your Money 99.00' ►Microsoft Word/File/Multiplan for Macintosh 97.50* Microsoft Excel for Macintosh 197.500" Microsoft Basic for Macintosh 75.00' Microsoft Char! for Macintosh 62.50* Monogram Dollars & Sense for Apple II 55.00* Monogram Dollars & Sense! or Macintosh 71.99' Odesta Helix lor Macintosh Reg's 512K 195.00' Provue Ovetvue-Mac Only 130.00' Sensible Software Sensible Speller IV 67.50' Softcraft Fancy Fonts 125.00' Softech Microsystems UCSD Pascal 37.00' Software Publishing PFS: File, Write, or Graph 61.00' Stoneware DB Master-Mac Too! 90.00' Telos Filevision for Mac 85.00' HARDWARE FOR YOUR APPLE // & MACINTOSH (Please add shipping and handling charges found in Italics next to price.) DISK DRIVES MODEMS 150.00* 65.00* 525.00* 745.00* 95.00* Apple MAC 800KB External Drive $349.95* ► Haba 800KB Double Sided Mac Drive 215.00* lOmega Macnoulli 5MB Removable 999.00' Drive for Macintosh lOmega DuaHOMB Bernoulli for Mac 1.800.00* with SCSI Port Micro Sci A2 143KB Drive Just like Apple's Own Micro Sci Floppy Controller ►Paradise Mac 10MB Hard Drive Hard Drive Subsystem ► Paradise Mac 20MB Hard Drive Hard Drive Subsystem ► PC Network 140K External Drive for Apple He ► PC Netwoik 140K Drive for Applelle 95.00* Tecmar 5MB Removable Drive forM AC 999.00* Tecmar 10 MB MAC Drive 999.00' BOARDS AND BUFFERS AST'" Multil/O-2 Serial/Clock $155.00' Microsoft Premium Softcard lie 243.67' Microtek Dumpling/GX 55.00* Orange Micro Grappler + 66.00' Orange Micro Serial Grappler 66.00* PC Network Z80 Card 35.00* Quadram APIC/G Graphics Interface 62.00' Quadram E RAM-80 88.00' Quadram Multicore-1 Parallel 140.00' 1 Serial/Clock Expandable to 256K Thunderware Thunderclock 104.00' Titan Technologies Accelerator lie 207.35* (7.50) (4.64) (21.58) (38.88) (500) (2.50) (11.34) (16.09) (2 50) (2.05) (21.58) (21.58) (2.50) (2.50) (2.50) (2.50) (2.50) (2.50) (2.50) (2.50) (2.50) (2.50) (4.48) Hayes Micromodem He w/Smartcom $125.00' (2,50) Novation Apple Cat II 174.45* (3.50) Prometheus 1200 A 253.00' (6.00) Low Cost 1200 Baud Internal Modem for Apple II PTome\heusPromodem1200/MacPack 299.00' (6.00) Prentice Popcorn MacPack 219.00' (2.50) 1200 Baud Modem, Cable, Straightalk ACCESSORIES Apple Macintosh Carrying Case Apple Macintosh Security Kit Curtis Ruby Surge Protector Hayes Mach III Joystick wIFire Button (or He Kensington Dust Cover for MAC or ImageWriter Kensington Starter Pack Kensington Surge Protector Kensington System Saver Fan ►Koala MacVision Koala Koalapad Touch Tablet M&R Sup-R-Mod RF Modulation PC Network Cooling Fan with Surge Protector & Dual Outlets PC Network SSDDDiskettes(BoxofW) PC Network Macintosh Diskettes Includes Free Flip & File Case These Diskettes are Guaranteed forLifeINo Generics! Sony Mac Diskettes (Box of 10) 15.50* (1.50) Thunderware Thunderscan 155.00* (3.24) $69.00* 29.00' 39.00' 26.50' (1.49) (1.50) (1-50) (1.50) 6.00* (1.50) 44.50' 29.50' 56.97' 144.50* (3.00) (250) (1.50) (3.00) 74.97* 44.00' 25.00* (1.50) (1 50) (250) 7.95* 12.50' (1.00) (1.50) MEMORY CHIPS (All Memory Chips Guaranteed for Llfel) Wholesale ►64K Memory Upgrade Kits (9 Chips) $7.75' (1.00) Quantity Discounts Available! ►64K Dynamic Ram Chips (Each) 1.00* (1.00) ►256K Dynamic Ram Chips (Each) 2.90* (1.00) ►12BKIBMATMotherBoardChips (Each) 3.50* (1.00) ► Intel Co-Processor 99.50* (2 15) EXTERNAL MODEMS Anchor Signalman Express $205.00* (5.00) Anchor Lightning 2400 309.00* (2.50) Hayes Smartmodem 300 125.00' (5.00) Hayes Smartmodem 1200 340.00* (5.00) ►Hayes Smartmodem 2400 525.00* (5.00) Prometheus Promodem 1200 247.00' (6.00) U.S. Robotics Courier2400BPSModen 345.00' (5.00) U.S. Robotics Password 172.00' (4.00) ALL THE" MODEMS ARE 100% HAYES COMPATIBLE THE" 1200 Com External 129.00' (2.58) THE" 2400 Com External 259.00* (5.59) MONITORS Wholesale Amdek Video 300G Composite Green $110.00' (3.00) Amdek Video 300A Composite Amber 120.00* (3.00) Amdek Video 31 OA IBM Type Amber 130.00' (300) Amdek Color 600 NEW! High Res RGB 365.00* (7.88) Amdek Color 722 Enhanced Graphics 424.00' (9. 16) Magnavox 121TL IBM Type Amber 79.00* (5.00) A great looking/performing monochrome NEC SC-1401 Multisync RGB 480.00* (10.37) Princeton HX- 12 RGB Monitor 369.00' (7.97) Princeton HX-12E CGAorEGA Monitor 430.00* (9.29) Princeton MAX-12e 138.00' (5.00) Works with Color or Mono Card Quadram Amberchrome 12' TTL 125.00' (2.70) Non Glare/Slow Phosphor Taxan 630 High Res RGB Monitor 383.00' (8.27) Taxan 640 Highest Res (720x400) 439.00' (10.69) Currently Available— Works with Persyst BOB Card & the AT&T Computer Zenith ZVM 1230A/HighRes/NonGlare 91.00* (2.50) TERMS & CONDITIONS "PC NETWORK-Members pay just 8"^abovethe wholesale price, plus shipping. All prices reflect a 3%cash discount Minimum shipping S2 50 per order International orderscall tor shipping & handling charges Money Orders, personal and company checkspleaseallow 10 working dayslo clear Al! pricessubiecl lo change without notice 1 tRENT BEFORE YOU BUY-Members are eligible to join the NETWORK'S Business an* Game software Rental Libraries and evaluate products for a lull 14 (Regular) or 30 (ViP) days to see it i! meetsyour needs And The NE WORK'S rental ttiargesarelarlessthan other software rentalservices-JuslJO^OFTHE MEMBER WHOLESALE PRICE. Rental titles available in tBM/Apple/MACand CP/M Formats. Hardware prices highltled oy ► reflect recent major price reductions GAMES & EDUCATIONAL SOFTWARE FOR YOUR IBM (Please add $1 shipping and handling for each title ordered from below,) Wholesale $23.00' ATI Intro to PC DOS Vol. I & II or BASIC Bluechlp Millionaire/Oil Baron or Tycoon 28.99' Broderbund Lode Runner 17.25' CBS Goren Bridge Made Easy 40.00* CBS Mastering the SAT 50,00' CDEX Training for Wordstar 37.25* Comprehensive Intro to Personal Computing 32.00' Davidson Math Blaster, Word Attack! 21.50* Davidson Speed Reader II 31.00' Hayden Sargon III 26.00' Individual Professor DOS 29.75' Individual T he Instructor 24.50' ►Infocom Zork I or Witness 20.00' ►Infocom Deadline or Suspended $24.00* Wholesale 27.00* 59.95* Microsoft Flight Simulator Mouse Systems PC Paint- Turn your PC Into A Color Macintosh! Pinpoint Publishing Micro Cookbook 21.00' Scarborough Master Type 19.75* Sierra On-Line Crossfire 18.00' Sierra On-Line King's Quest II 24.75* Spectrum Holobyte GATO 18.00* ►Spinnaker Alphabet Zoo. Kinder Comp, 15.97' Stoiy Machine. Face Maker, Hey Diddle. Diddle, Rhymes & Riddles ►Spinnaker DeltaDrawingorMoslAmazingThing 20.75' Subloglc Jet Subloglc Night Mission Pinbati BUSINESS SOFTWARE FOR YOUR IBM (Please add $2,50 shipping and handling for each title ordered from below.) ► Ashton-Tate DBase III or Framework II $365.00* Beagle Brothers Macro Works 21 .00' Borland Turbo Pascal 35.00* Borland SideKick (Protected) 26.00' Borland SuperKey 34.50' BPI G/L. AtR or AJP 305.00' BPI Personal Accounting 43.75* Breakthrough Timeline 203.00* ►Central Point Copy II PC 20.00' Computer Associates Supercnlc IV 239.95* Digital Research Gem Desktop 26.00* Digital Research Gem Draw 128.00" Enertronlcs Energraphics 147.00' FGS Fastback 85.00* Funk Software Sideways 32.00* ► Harvard Haivard Project Manager 190.00' Harvard Total Project Manager 250.00' ►Hayes Smartcom It-New VT100 Emulator 78.00' MicroPro Wordstar 2000+ MIcroRIm RBase 5000 Microsoft C Compiler Microsoft Word-Latest Version 3.0 Microsoft Mu Hi plan Microsoft Mouse Migent Ability Monogram Dollars & Sense ►Multlmate Muttimate (Latest Version) Norton Norton Utilities 3. 1 Open Systems P/O Sates A,R INV G/L AJP Team Mgr. - Ver. 3.X Power Base Power Base Real World G/l.A>P A/R or OE'INV Rosesoft ProKey Version 3 Ryan McFarland RM COBOL (Dev. System) ►Samna Samna III Word Processor ► Samna Word + ► Human Edge Management Edge or Mind Prober 24.00* ►Satellite Soflware WordPerfect Infocom Cornerstone 70.50' Softcraft Fancy Fonts Llfetree Volkswriter III 126.50* Software Group Enable ► Lotus Development Lotus ' -2-3 280.00* Software Publishing PFS:File. Write.Graph MDBS Knowledgeman/2 229.00* software Publishing PFS.Report MicroPro Wordstar 2000 27.50* 19.25' $259.00* 215.00* 230.00* 229.00* 98.00* 107.00' 55.00* 87.00* 180.00* 43.00' ea.395.00* 200.00' ea.350.00' 65.00* 520.00' 207.75* 340.00* 180.00* 125.00* 293.00' 68.00* ■59.50* HARDWARE FOR YOUR IBM (Please add shipping and handling charges found in italics next to price, MODEMS (36.94) DISK DRIVES $1,710.00' ► lOmega Bernoulli Box Dual 10MB Drives ► PC Network 10MB INTERNAL 1/2 299.00* Height Autoboot Drive: New lower price PC Network 10MB Tape Backup 395.00' Same unit used in Compaq's Desk Pro! P C Networks T 42MB Internal HD 1,050.00* 3SMS Access Time-Comes Complete PC Network 20MB Tape Backup 495.00' Halt Height Internal w/controHer ► PC Network Hall Height DS/DD Drives 78.00* ►Tandon TM-100 120.00' 2 Full Height DS/DD Drives ►THE" 20MB Internal 1/2 Height 357.00' Autoboot Drive: By Seagate or Microscience MULTIFUNCTION CARDS App3rat AT Rapn Expansion Card AST SixPakPremium '2MB Multi/OK ►AST SixPakPlus'with64K AST " I/O Plus II " AST" Advantage for AT "" Everex Magic Card II 64K Quadram Gold Card 384K Multifunction/Color Card w/OK Tecmar Captain Mulli Card w/OK ► THE "576K Plus Memory Board w/OK ► THE "Multl 384 A functional clone of AST's 'SixPakPlus. ' Includes up to 384K of expansion memoty, 1 senal, 1 parallel. 1 game port, a clock/calendar and 3 software standard. ►THE " Multi I/O Plus II Clone 60.00' Ser/Par/Game-'Clock standard Hayes Smartmodem 1200B $315.00' (2.50) with New Smartcom II T100 Emulator (6.46) Hayes Smartmodem 2400B 478.00' (2.50) PromelheusPromodem1200Blnternal 225.00* (250) (8.94) ►THE 'Internal1200 1200BPS Modem 109.00* (2.50) Lowest Cost Hayes Compatible w/FREE PC Talk II (2495) VIDEO CARDS (10 69) Hercules Color Card w/Parallet Port $126.00* ►Hercules Monochrome Graphics Card 162.00* $139.00' 315.00* 139.00' (2.50) (2.50) (2.50) 120.00* 325.00* 140.00' 340.00* (2.50) (2.50) (2.50) (2.50) 109.00* < 35.00* 67.00* (2.50) (2.50) (250) (1.68) Orchid Turbo EGA Card (2.20) Paradise Modular Graphics Card Quadram Quad EGA + Enhanced (7 7i) Graphics Adapter ►THE " EGA Plus EGA Clone with 256K & printer port ►THE "H720 Mono Mono Graphics with parallel port, 100' (2.50) ►THE * Color Card 610.00' 219.00' 323.00* (2.50) (2 50) (2.50) (2.50) (2.50) 220.00' (2.50) Hercules Compatible! 60.00' 100" , IBM Compatible! ACCESSORIES ►Brand Name DS/DD Diskettes $7.95' (1 00) Guaranteed for Life! Not Generic! ► DS/DD Bulk Rate Special each. 54" Packaged in 50 with sleeves and labels Guaranteed for Life! ► PC Network Replacement 130 Watt 79.00' (5.00) IBM-PC Power Supply— Gives your PC the same Capacity as an XT Good (or add in Tape Drives (without need for a piggyback unit) and large capacity disk drives. SM APCDocumate: Keyboard 9.99*ea. (1.00) Templates for Lotus/DBase/Multimate and others COMPLETE SYSTEMS Apple Macintosh Base System CALL ►Central Point Laser 128 S3 55.00* (7 67) Apple He and lie Compatible AT&T 7300 Unix PC 3,699.00' (79.90) 10MB HardDiskrt Floppy/51 2K COMPAQ DeskPro W/256K 1,805.00* (38.99) 1 Floppy.'30MB Hard Disk ► Citizen MSP-W NEW! $225.00* PRIN (4.86) WOCPS/WCOUFric + Trac ►Citizen MSP-15NEW! 340.00* (7 34) l60CPS : 132COUFnc + Trac ►Citizen MSP-20NEW! 299.00' (646) 200CPS/80COUFnc + Trac ►Citizen MSP-25NEW' 435.00' (9 40) 200CPS/132COUFnc + Trac ►Citizen Premiere 35 NEW! 420.00' (9 07) 35CPS Daisywheel/132COL/Fric ■f Trac Citizen 120-0 125CPS 10"/Trac 169.00* (3.63) ►Epson LX80 100CPS/80COL/LO 225.00* (486) ►Epson FX85 345.00* (7.45) ►Epson FX 286 NEW! 505.00' (10.91) ►Epson LQ 1000 NEW! CALL 180CPS>60CPS NLO Epson SO 2000 Inkjet Printer 1,453.00* (31.38) Epson DX 35 35CPS LQ Model 590.00* (12.74) ►NEC 2030 20CPS LQ Parallel 605.00' (13.05) ►NEC 2050 20CPS Letter Quality 570.00* (13.00) ► COMPAQ Hard Disk Portable 20MBHardDisk'l Floppy/256K y\BMPCBaseSystem2SDDFDC/256K 1 ,025.00' ► IBM PC Professional Hard Disk 1,337.00' IBM PC/AT Base System- 1.2MB 2,875.00* Floppy-'256K IBM AT Professional System CALL 1.2MB Floppy20MB Hard Disk/1 Ser/1 Par/512K $1,910.00* (41.26) (22.14) (28.88) (62.10) Copyright & 1985, PC NETWORK, INC. ►NEC 3530 33CPS LO Parallel ► NEC 3550 33CPSLQ ►NEC 8850 55CPS NEC PirtWriter P-7 180CPS/132COL Okidata ML 182 New 120CPS/LQ Model Fric/IBM Graphics & More Okidata ML 192 New Sleek Design i60CPS/LQ/Fric/IBM Graphics Okidata Color 20 80CPS/100 + Colors/LQ/IBM Graphics & More (Requires Interface) Okidata ML 193P 60CPS Okidata IBM Interface for Okidata Color 20 Okidata ML 84P 200CPS/132COL Okidata 2410 P Pacemark 350CPS Panasonic KX-1091 120/75/22CPS Panasonic KX-1092 180CPSw /Tractor Toshiba P341 210CPS/132COL Toshiba P351 P/5 288CPS/132COL Prices subject to change without notice. S888.00' 690.00- 949.00* 535.00' 188.00* 299.00* (19. 18) (14.90) (20.50) (1 1.56) (4.06) (6.46) 425.00* (9.18) 69.00' (1.50) 599.00' (12.94) CALL 220.00* (4.75) 329.00* (7.11) 714.00' (15.42) 974.00' (21.04) COMPLETE SYSTEMS (Optional local warranty service available in most major metro areas) IBM PC BASE SYSTEM 1BMPCW/256K Floppy Drive Controller 2 Double Sided Double Density Disk Drives Mix and Match with your Favorite Monitor and Printer! $1,025.00* CUSTOM CONFIGURATIONS WELCOME IBM PC HARD DISK SYSTEM IBM PC W/256K Floppy Drive Controller 1 Double Sided Double Density Disk Drive Half Height Hard Disk $1,337.00' CALL FOR LATEST IBM ANNOUNCEMENTS PORTABLE HARD DISK SYSTEM 256K/1 Floppy /20MB Hard Disk comma $1,910.00' APPLE /fc DESKPRO SYSTEM 256K CPU/1 Floppy/Hard Disk $1,999.00* $1,807.00* W/30MB W/20MB MACINTOSH SYSTEMS 64K IBM PC MEMORY EXPANSION KITS Quantity Discounts Available. Guaranteed fori s* juntsAvanaoie. ta % f t * * ** Set of 9 Chips $7.75' DISKETTES ^■«=»ranteed for Life! 3 1 / 2 "SS/DD Bx.10 $12.95* Free Flip & File Case 1/2 HEIGHT DS/DD DISK DRIVES The Network buys direct and makes fantastic deals with manufacturers like MPI/ Tandon/CDC/Shugart/Qume/ TEAC and others to bring you fantastic prices on Name Brand drives foryourPC/AT/ XT/jr/or Compatible. $75.00* Quantity Discounts Available $280.00* INTERNAL PC HARD DISK Low Power/Automatic Boot. Works on standard PC's and Compatibles. Includesdrive/controller/cables/ mounting hardware and instructions. Full one year warranty! 10MB m $299.00' 20MB $357.00' Quantity Discount Available WordPerfect $180.00* MultiMate" ea. ^Members pay 8% above this wholesale price plus shipping. CALL TOLL FREE 1-800-621-S-A-V-E {JSSSSm) In Illinois call (312) 280-0002 Validation code: B3X6 Customer Service and Order Status (312) 280-1567 TM & R-Registered trademarks of IBM/COMPAQ/APPLE/AST Research/LOTUS/Multimate lnt.,/IOMEGA. NETWORK SEE WHY OVER 150,000 HAVE JOINED MAKING US THE NATION'S #1 SOURCE FOR EVERYTHING IN COMPUTING • Our 600 Page Wholesale Catalog Over 30,000 products priced at Wholesale + 8%. Anything you will ever need at a Consistent low price... • Quarterly Catalog Updates Your Catalog is never obsolete! Keep on top of the newest products and latest price changes. • The Printout Our newsletter gives you fantastic specials alog with unbiased analysis of new products and industry trends. • 10 Day Returns on any Hardware!! If you don't like any hardware product —for any reason —return it for a refund. • 1000 + Title Rental Library 14 to 30 day rentals on over 1000 different titles. Try before you buy!! • Size, Strength and Stability The Network has over 150 employees, 45,00 square feet of office and warehouse space, inventory valued in excess of $15,000,000 and is ranked the largest computer product supplier in the nation! Our commitment is to serve our customers and our 90% repeat business rate is proof!! • On Line ,M Bulletin Board Download "Freeware" from the nation's largest single concentration of Public Domain software available! Get tied into the nation's largest technical information network! Place orders, get tech support or contact customer service from the Network's OnLine, '"not just a bulletin board but a complete customer information network. Y( Iff kl V CALL TOLL FREE 1-800-621-S-A-V-E (Orders— Membership and Advice!) In Illinois call (312) 280-0002 Your Membership Validation Number B3X6 You can validate your membership number and, if you wish, place your first money-saving order over the phone by using your VISA, MASTERCARD or AMERICAN EXPRESS. Our knowledgeable sales consultants are on duty Mon.-Fri. 8:00 AM to 7:00 PM, SAT. 9:00 AM to 5:00 PM CST. . PERSONAL COMPUTER NETWORK kl 320 West Ohio Chicago, Illinois 60610 Call now... Join the PC NETWORK and start saving today! Customer Service and Order Status (312) 280-1567 8:30 AM to 4:30 PM, Mon.-Fri. CST PC NETWORK • MEMBERSHIP APPLICATION YES! Please enroll me as a member inthePCNetwork~andsend my catalog featuring thousands of computer products, all at just 8% above DEALER WHOLESALE PRICES. I will also periodically receive "THE PRINTOUT," a special up-date on merchandise at prices BELOWeven those in my wholesale catalog, and all the other exclusive monev- saving services available to Members. 3X6 I am under no obligation to buy anything. My complete satisfaction is guaranteed. Please check (•) all boxes that apply: Basic Membership with optional 14 Day Evaluation, D One-year membership for $8 □ Two-year membership for S15 (Save $1) □ Business Software Evaluation Library for S25 add'l. per year-with 14-day returns D Games Software Evaluation Library for $10 add'l. per year □ Bill my credit card: DViSA Special V.I. P. Membership* with optional 30 Day Evaluation. D One-year membership for $15 D Two-year membership for $25 (Save $5) D BOTH Business and Game Software Evaluation Libraries for $30 add'l. per year-with 30 day returns *Vl.R members may receive advance notice on limited quantity merchandise specials D MasterCard D American Express Account Number: Exp. Date_ ITTTT □ Check or money order enclosed for S. Name City is ) State Zip My computers) D IBM PC □ IBM-XT □ Macintosh DOthe niBM- -AT □ Apple II Signature (Signature required to validate membership) Inquiry 229 EVTE Features product Preview: THIS MONTH OUR FEATURES SECTION starts with a Product Preview. The the apple h gs product in question, the Apple II GS. is the most recent incarnation in the by Gregg Williams and Richard Grehan .... 84 rather long and curious j ine f App ] e n s In t h e ir article. Senior Technical Editor Oarcias Circuit Cellar: Gregg Williams and Technical Editor Richard Grehan examine a preliminary build an Intelligent Serial eprom version of the machine and consider its potential A complete review of the *?S™eCto*ia 103 Apple " GS Wi " foll ° W in a subse Q uent issue - lJ A Back in February 1985, Steve Ciarcia's Circuit Cellar project was a serial programming Project: EPROM programmer. Steve intended it as an experimenter's project that would Safe Storage Allocation . , r . c ^ t ,. Ll \, , ,. , , by Jonathan Amsterdam 122 satisf y a certain core of supporters yet enlighten the larger audience of readers about EPROM programming in general. This proved to a miscalculation. It by David d Thiel 139 was muc ^ better received than Steve thought it would be. Unfortunately he hadn't arranged to have it made into a printed circuit board. To make up for a Useful Property of 2" ^is. Steve returns this month with an improved serial EPROM programmer by Robert c. Arp jr. 145 that includes an on-board CPU and intelligent firmware. ^^^^^^^^^^^^^^^^^^^ All useful programs need storage to go about their business, and Jonathan Amsterdam's "Safe Storage Allocation" explains how to avoid the dangers involved in allocating memory. This Programming Project focuses on four storage allocators that are available to readers in a variety of formats. In our ongoing coverage of 68000 machines, this month we look at the Com- modore Amiga. David D. Thiel's "Sound and the Amiga" explores the Amiga's enhanced, hardware-assisted, digital-to-analog converter approach to sound. Within processor and RAM limitations, says the author, you can do whatever musical flights of fancy you are clever enough to conceive. Finally, in his October Programming Insight, "A Useful Property of 2 n ," Robert C. Arp Jr. discusses how he solved the problem of a shortage of user flags by exploiting a property of summations of 2". OCTOBER 1986 -BYTE 83 PRODUCT PREVIEW The Apple II GS The 65C816 processor brings the Apple II into the \6~bit world. Editor's note: The following is a BYTE prod- uct preview. It is not a review. We provide an advanced look at this new product because we feel it is significant. A complete review will follow in a subsequent issue. The Apple II has a curious history. It was originally de- signed by Steve Wozniak and Alan Baum in 1 976 as a homebrew computer that squeezed maximum features out of minimum parts. Over the years, it evolved into the Apple II+, then the He, then the He. Once, Apple tried to kill it off with the Apple III (which itself died) and, later, with the Macintosh and the He. Despite corporate attempts to ignore it and retard its evolution, the Apple II continued to bring in the major part of Apple's income. Finally, in May 1 984 Apple acknowledged the reali- ty of the Apple II 's success when it titled its day-long introduction of the Apple He "Apple II Forever." (Despite Apple's wishes to the contrary, the He continued to sell better than the non- expandable He— people wanted their expansion slots.) By mid-1985, though, the Apple II began to lose its sales appeal and Apple engineers were already working on a product called, at various times. Phoenix. Col- umbia, Cortland, and Granny Smith: the Apple II GS. The Apple II GS looks back to the past and forward to the future, and the machine might best be summa- rized by saying that it takes a giant step in both directions. Its new styl- ing and modularity (see photo I ) fore- shadows a day when Macintosh and Apple II products will use the same keyboard and 3 /2-inch disk drives. System Description Here are the most important features of the Apple II GS: • Apple II compatibility: The Apple II GS will run most Apple II software and expansion cards. It can run at nor- mal Apple II speed or at a higher rate that makes most software run two to three times faster. | Editor's note: In this article. "Apple II" refers to the traditional Apple II computer as defined by the Apple II, II+, We, and lie] The Apple II GS com- posite video signal has been cor- rected so that it will be recorded cor- rectly by a videotape recorder. Apple He owners can upgrade to complete II GS compatibility by replacing the motherboard and back/bottom plate with a II GS retrofit kit. • A 16-bit, 6502-compatible pro- cessor: With a 16-bit address bus and 8 "bank address" lines, the Western Design Center's W65C816 can ad- dress 2 56 banks of 64K bytes each, for a total of 1 6 megabytes. It can also go into a 6502 mode, where it emulates the 65C02A used in the Apple He and He. The processor's ac- cumulator, stack pointer, and all its registers are 16 bits wide, and its in- struction set includes 1 1 new address- ing modes. • Greatly expanded memory capaci- ty: The machine's architecture reserves space for 8 megabytes of user RAM and I megabyte of system ROM. It comes with 2 56K bytes of RAM, 128K bytes of system ROM, and 64K bytes of dedicated sound-wave- form memory, but you will have to wait for new programs to use most of the memory above the first 128K bytes. Apple currently has plans for 1- and 4-megabyte expansion cards, although an 8-megabyte card is possible. • New graphics capabilities: The Apple II GS adds two "super hi-res" graphics modes: 200 by 320 pixels with a 16-color palette and 200 by 640 pixels with a 4-color palette; the colors come from a color set of 4096. The machine can use up to 16 pal- ettes per screen and change palettes and resolution on a line-by-line basis. Programmers can use two experi- mental modes: a 640- by 200-pixel, 16-color (with restrictions) palette mode, and a high-speed "fill mode" variation of the 200 by 320, 16-color mode. • New sound capabilities: The 32- voice Ensoniq Digital Oscillator Chip (DOC), used in the Ensoniq Mirage sampled-sound music synthesizer, and system firmware can drive the [continued] Gregg Williams is a senior technical editor at BYTE: he bought his first Apple 11+ in 1980 and now owns an Apple We. Richard Grehan, who has owned an Apple 11+ since 1985, is a technical editor at BYTE. They can be reached at One Phoenix Mill lane, Peter- borough, NH 03458. 84 BYTE • OCTOBER 1986 by Gregg Williams and Richard Grehan Deluxe Paint drawing program. (Photo by Electronic Arts.) Writer's Choice Elite word processor. (Photo by Activision Inc.] Photo I: The Apple II GS. PHOTOGRAPHY BY PAUL AVIS OCTOBER 1986 .BYTE 85 THE APPLE II GS chip to produce up to 15 musical "in- struments." • Mouse, keyboard, and disks: A one-button mouse and a detachable keyboard with keypad are standard equipment. The Apple II GS does not have an internal disk drive, but you can daisy-chain up to two 800K-byte 3!/2-inch drives and two 140K-byte 5^-inch drives to the disk drive port on the rear panel. The system soft- ware will come on 3 ! /2-inch disks, which silently but forcefully indicates Apple's intent to phase out the 5^-inch floppy disk. • The Toolbox: Application programs can use built-in code (some in ROM, some in RAM) to provide a mouse- driven desktop environment and orderly use of system resources. • The Finder: Finder software, sup- plied with the basic system, allows users to interact with disks and files using windows, icons, and a mouse- driven cursor (as popularized by the Apple Macintosh). • Desk accessories: The Apple II GS makes available Macintosh-like desk accessories: some are available from all programs, and others work only with programs specifically designed for the Apple II GS. The Control Panel, accessible from any program, allows the user to change the date, slot as- signments, operating speed, and similar parameters. • New languages and tools: For the software developer, Apple will offer a 6502/65C02/65816 assembler and versions of C and Pascal; the three languages share a standard editor and linker and allow object code modules from any source to be used together. For the hobbyist, Apple has extended the Apple He monitor to work in the Apple II GS 16-bit environment and has added new functions to it. • No enhanced, built-in language: Like the Macintosh (and unlike most other computers), the Apple II GS contains no built-in language (such as Microsoft BASIC) that interacts with the machine s new features. Applesoft BASIC is available in system ROM, but it has no way of directly interacting with the new Apple II GS features. •A new 16-bit operating system: ProDOS 16 extends Apple's ProDOS (which runs on the Apple II+, He, and He) to be the standard Apple II GS operating system; it runs on the 65816 in native 16-bit mode, is functionally similar to the 8-bit ProDOS, and shares an identical file structure with ProDOS. Apple has also made slight modifications to the 6502-based Pro- DOS so that it will run on the Apple II GS's Apple II emulation mode; this operating system is named ProDOS 8. Two Machines The case of an Apple II GS contains, in a sense, two machines: the full Apple II GS, with all its memory and new features, and a 128K Apple He. Much of this article will explain the design elements that allow these two 'machines" to exist together. You may want to refer to figure I , which is a block diagram of the Apple II GS. The Mega II The Mega II is a custom CMOS chip containing about 3000 gates and a 2K-byte by 8 ROM (for the character generator). It replaces the following chips from the Apple He and He: char- acter generator ROMs for eight lan- guages, several TTL chips that per- form logic functions, and the MMU (memory management unit), IOU (in- put/output unit), TMG (timing genera- tor), and GLU (general logic unit) custom chips. In previous Apple II designs, the re- freshing of memory was tied directly to the Apple II video mode. The Mega II includes an 8-bit counter for refresh- ing the 128K bytes of (slow) memory associated with the Apple Ile/IIc model; it does five cycles of RAM refresh during the horizontal retrace of each video scan line and refreshes the 128K bytes of memory in 3.2 5 milliseconds. By taking care of RAM refresh, the Mega II chip opens the Apple II design to new video modes that were impossible before. Speeding Up the II GS The Apple II GS designers had many conflicting goals. They wanted to make a machine that runs as much existing Apple II software as possible and to make it run software (both old and new) faster than on an Apple II. In order to accomplish this, they changed the memory map and em- ployed a technique called shadowing. Figure 2 shows the Apple 11 GS memory map. Remember that many memory areas in the Apple II are special; the memory-mapped "soft switches" in the C000-C0FF hexadec- imal region control many key func- tions, interaction with the peripheral cards occurs through locations in the CI00-CFFF hexadecimal region, and several areas of memory determine what graphics and/or text are shown on the video display. Many of these areas are limited by the original Apple II design to being accessed at I MHz. A straightforward expansion of the Apple II design would put the slow memory in banks 00 and 01, their location in the Apple He and lie. (A bank is defined as the 64K-byte ad- dress space from hexadecimal loca- tion XX0000 to XXFFFF Actually, the two 64K-byte banks of memory in the Apple He and lie are called simply the main and auxiliary banks, but you can imagine the bank select as the 17th bit of the corresponding Apple II GS memory address.) Instead, the designers put the slow memory (with the corresponding con- trol circuitry) in banks E0 and El hexa- decimal and assigned fast memory to banks 00 through 7F This gives you 8 megabytes of linearly addressed mem- ory (something new to Apple II pro- grammers), and all existing Apple II programs (which must run in banks 00 and 01) will run in fast not slow, mem- ory. (The 65C816 runs at 2.8 MHz, but the overhead of dynamic memory refreshing slows the average speed of RAM memory access to about 2.5 MHz; ROMs are accessed at the full 2.8-MHz speed.) This scheme gives us speed but not compatibility. Programs that do I/O using the peripheral slots and video display write to addresses in banks 00 and 01, but the hardware they need to interact with is tied to the slow memory in banks E0 and EI hexadec- imal. How can we get this scheme to work? The answer is shadowing. The Apple II GS engineers designed the Fast Processor Interface (FP!) custom chip to monitor any attempt to write to the area to be shadowed (in bank [continued) 86 BYTE • OCTOBER 1986 Q c/i-lOl- r-v W-IOH vo w_ioi- w CO-IOI- •* WJOh CJ . i ,_z< 5< * — IE O > O O tca.ui I =3 5 << 6 * z o o- z < 5 O -» ' I o m 0- Q W O I CZDC I -o m i p Q Figure 1: A block diagram of the Apple II GS. OCTOBER 1986 • BYTE 87 THE APPLE II GS 00 or 01). then slow itself down to 1 MHz and write to the location and its equivalent in bank E0 or El hexa- decimal. In many locations (video display memory, for example) read operations from the same location have no timing constraints and can proceed at the higher 2.5-MHz speed. Because other locations (like the ones associated with peripheral card I/O) must always be written to and read from at I MHz, the speedup of Apple Fast 2.5-MHz RAM 00 01 02-7F Language card area I/O card space High-resolution screen 2 High-resolution screen 1 Text and low-resolution screens 8K 8K p 4K 4K 4K 4K tXjjcai ioiui i RAM Shadowed 32K-byte video buffer Slow 1-MHz RAM E0 E1 - Super high-resolution screen FO-FD FE FF Expansion ROM System ROM Figure 2: The Apple II GS memory map. Shaded areas indicate shadowed memory, where any write operation is duplicated to the corresponding location in banks E0 and El hexadecimal The super hi-res screen does not need shadowing, but it is included as a convenience to Applesoft and 6502 programmers, who can only work with banks 00 and 0I. Memory areas are not drawn to scale. II software depends on the memory locations the software uses. Note that this scheme gets two things done. First, it allows existing Apple II programs to write to bank 00 and 01 locations at the correct speed and have the associated hardware perform the expected interaction. Second, it allows programs to execute in the fast 2.5-MHz memory, slowing down only at specific times. By default, the Apple II GS shadows text page 1 in both banks, hi-res pages I and 2 in bank 00, a 32K-byte area (2000-9FFF hexadecimal) in bank 01 used for the new super hi-res graphics modes, and the 4K-byte section of memory at CXXX hexadecimal in bank 00. However, programs can ac- cess a "shadow register" that can disable shadowing in individual areas. This speeds up program execution and allows the program to use the un- shadowed areas and their E0/EI (hexadecimal) counterparts for other things. (The bit that shadows the CXXX |hexadecimal| area also uses the ac- tual memory in locations C000-CFFF hexadecimal to hold the 4K-byte alter- nate language-card areas for both banks. When this shadowing is turned off, the language cards of banks 00 and 01 are no longer present, and the 65C816 sees a completely linear ad- dress space in banks 00 and 01. (How- ever, all Apple system software re- quires the CXXX shadowing to be en- abled.! The FPI chip controls shadow- ing and. in general, the intercepting and translating of all the address re- quests from the 65C816.) Slots and Ports The II GS's expansion slots are iden- tical in function and configuration to the Apple He's slots with the excep- tion of one added signal, /M2SEL, which appears at pin 39, replacing the 6502 SYNC signal. /M2SEL is an active-low signal that indicates when the II GS is executing at slow speed (I MHz) and the address lines A0-A 1 5 are valid (i.e.. the II GS is talking to the slow RAM or I/O). In some ways, this signal is redundant with the old IOSEL and DEVSEL signals in the II+/IIe, and boards that use these signals should have no problem operating in an 88 B YTE • OCTOBER 1986 THE APPLE II GS Apple II GS. Control-signal generation and clock-signal buffering on the ports are handled by the SlotMaker custom 1C. Associated with each \/0 expansion slot are built-in circuits and firmware that form an "invisible" port. The default settings for the seven slots are Slot I serial printer port Slot 2 serial modem port Slot 3 80-column display Slot 4 mouse Slot 5 3 /2-inch disk drives Slot 6 5!4-inch disk drives Slot 7 Apptefelk It is as though you had an Apple He with boards for all the above devices already plugged in. Unfortunately this wealth of built-in interfaces carries with it some restrictions, the most severe being that if you have an ex- pansion board you want to run in your II GS, you must give up the built-in port of whatever slot you plug the board into. (You use the Control Panel to choose whether a slot is using its associated default port or a plug-in board; this information is retained in battery-backup RAM.) The serial ports of the Apple II GS appear on the rear of the cabinet in the form of a pair of 8-pin mini-DIN connectors. They are pin- and signal-compatible with the serial connectors on the back of the Macintosh Plus-in fact, the USART in the II GS is the same as the Macin- tosh's: a Zilog 8530 serial communi- cations chip. If you access the serial ports through the firmware, they "ap- pear" identical to the Apple Super Serial Card (SSC), even though the SSC uses a different UART a 65 51. This has dire consequences for soft- ware that talks directly to the serial- port hardware on Apple lis equipped with SSCs. Such software— and this in- cludes practically all of the commer- cial communication packages— will certainly fail on the II GS. Programs that bypassed the SSCs firmware did so to break the speed limitations of the firmware's non- interrupt-driven, unbuffered I/O rou- tines, which were virtually useless for dependable communications at 1200 baud. The 11 GS's serial port firmware solves these troubles: It is interrupt- driven, and each serial port has input and output buffers that default to 2K bytes each but can be set to up to 64K bytes each. The Apple II GS's built-in disk port is a 19-pin miniature D-type connec- tor in the middle rear of the machine. You can daisy-chain up to four drives, up to two 3 /2-inch drives followed by up to two 5!4-inch drives. Owners of Apple lis who might want to use their drives on the II GS can simply plug their Disk II controller into slot 5 or 6 and override the default setting for that slot. Memory Expansion Slot The Apple II GS motherboard has a special memory-expansion slot de- signed for a card with up to 8 mega- bytes of RAM and 896K bytes of ROM (bringing the system's total ROM to I megabyte). The RAM maps into banks 02 to 7 F hexadecimal, and the ROM maps into banks F0 to FD hexadeci- mal. It is easiest to design 1- and 4-megabyte RAM cards (using 256K- bit by I chips and I megabit by I chips, respectively),' but the II GS engineers said that, with a few extra chips for interfacing, you could design an 8-megabyte RAM card; however, since the machine is not designed to hold user RAM above bank 7F hexa- decimal, an 8-megabyte RAM card would be unable to access the top two banks (128K bytes) of its memory. SmartPort SmartPort is a set of assembly lan- guage routines (held in firmware) for accessing block and (as yet un- designed) character I/O devices on the Apple II GS. The SmartPort routines provide support for 3 /2-inch disk drives, a RAM memory disk (called the /RAM device), or a ROM memory disk (5 /2-inch drives, though part of the daisy chain, are controlled by the Disk II firmware, and future hard disks can be designed to respond to Smart- Port routines without being part of the daisy chain). SmartPort handles I/O in blocks of 512 bytes; since the routines permit up to a 4-byte block number, Smart- Port can manage devices with storage capacities up to 2,199,023,255,552 bytes. SmartPort's basic functions in- clude get device status, reset a device, format a device, read a block from a device, write a block, and send con- trol information. Any I/O expansion card that ad- heres to SmartPort conventions will have signature bytes at specific loca- tions in its on-board ROM. The II GS's firmware will hunt for and recognize these at boot-up time, just as ProDOS currently does on the Apple II. As its name implies, the ROM disk is the equivalent of a RAM disk emulator in nonvolatile read-only memory. This could come in handy for keeping frequently used programs like assemblers, compilers, or the like on hand for rapid execution. The II GS memory space has eight 64K-byte banks set aside for ROM disk expan- sion, located just beneath the firm- ware ROM in banks F0-F7 hexadeci- mal. Desk Accessories and the Control Panel You can think of a desk accessory as a mini-application that can be run from within another program. Macin- tosh owners are already familiar with desk accessories— those utility pro- grams from the menu bar that appear when you click on the apple symbol. The II GS supports two types of desk accessories (with a tip of the hat, perhaps, to Coca-Cola): classic desk accessories (CDA) and new desk ac- cessories (NDA). A classic desk acces- sory can be activated only by a key- press. Classic desk accessories can be run with older Apple II programs (such as Appleworks) and new II GS programs. A new desk accessory runs in the II GS's desktop environment and is available from a pull-down menu similar to the Macintosh's desk- accessory menu. One classic desk accessory is built into the II GS: the Control Panel. You call up the Control Panel by simulta- neously pressing open-apple-Control- Escape, which presents you with a menu containing the following system configuration options: • Display selects color or mono- chrome monitor, display width, and colors for text, background, and border. [continued] OCTOBER 1986 • BYTE 89 THE APPLE II GS • Sound displays two "slider switches" used to adjust the II GS speaker's pitch and volume. • Speed selects 1.0-MHz or 2.8-MHz ("normal" or "fast") operation of the 65C816 CPU. •Clock sets the II GS system clock time and date. • Options alters parameters of the II GS's keyboard: keyboard layout, key- board buffering on or off, repeat speed and delay, and others. • Slots lets you indicate for each of the II GS's seven I/O slots whether the slot is running an "invisible" port or a plug-in board. Other selections from the Control Panel let you set parameters for the serial ports and enable a RAM disk. You can use the Control Panel from within any program; we even used it in the middle of a disk access with no adverse effects. Video Modes and the VGC Because the Apple II GS emulates the Apple II, it contains all the text and graphics modes of the Apple II: 24 by 40 text, 24 by 80 text, 48 by 40 low- resolution and 48 by 80 medium- resolution graphics with 16 pre- defined colors, 192 by 140 hi-res graphics with 6 predefined colors, and 192 by 140 double hi-res graphics with 16 predefined colors and 192 by 560 monochrome graphics. (Apple claims double the above numbers for hi-res resolutions in the horizontal directions, but the numbers here more accurately reflect the true nature of hi-res graphics because of the color limitations between adjacent pixels.) As stated earlier, removing the banks E0 and EI (hexadecimal) dynamic RAM refreshing from the video display circuitry makes new video modes possible. A new custom chip, the Video Graphics Controller (VGC), implements both old and new video modes as well as unrelated sup- port functions for the built-in clock chip, the disk drives, the interrupt system, and built-in chip and board testing routines. The VGC enhances current text modes by allowing the user to choose from the Control Panel Photo 2: Apple super hi-res graphics (200 by 320), fill mode, and line- addressable mode switching. The top {green) portion of this photo is in fill mode, while the bottom is not. Note that the colored outline of the cube determines what color a given face will be painted in fill mode. Note also the green line running down the left side the screen: this line makes the background color of the screen green. \Courtesy of Apple Computer] the color (or gray scale value) of the text, its background, and the border outside the active text/graphics area. These modes are available only when using an RGB color or monochrome monitor. Super Hi-Res Graphics The new modes are called "super hi- res." Actually, there are three modes that can be used in four ways; two of them are pretty straightforward and useful, while the other two are more experimental. Associated with the super hi-res modes is a 32K-byte chunk of mem- ory in bank El ranging from ad- dresses 2000 to 9FFF (assume that the addresses in this section are hexa- decimal and the quantities are dec- imal). The pixel map occupies the range from 2000 to 9CFF. an impor- tant set of pointers occupies locations 9D00 through 9DFE and color palette information fills the remainder of the area, from 9E00 to 9FFF (To get into these modes, write CI hexadecimal to location C029, and write 41 hexadec- imal into it to restore the Apple II modes.) The pixel map contains exactly 32,000 bytes arranged as 200 rows of 160 bytes each. Apple II program- mers, who have always struggled with a convoluted pixel-to-memory map- ping scheme, will be surprised by the fact that the super hi-res modes are completely linear, with a row-first stream of pixels corresponding to an unbroken, increasing progression of memory addresses. In other words, the first pixel on the first line uses the high bits of location 2000, while the same pixel in the second line uses location 20A0 (160 bytes later), and so on. There are two super hi-res modes. Both have 200 lines per screen, but one has 320 pixels per line (see photo 2), while the other has 640 pixels per line. Since each line is represented by 160 bytes, each pixel has 4 bits of memory in the 320 mode and 2 bits in the 640 mode (see figure 3). This scheme gives you 1 6 colors in the 200 by 320 mode and 4 colors in the 200 by 640 mode, with no restrictions on the color of adjacent pixels (a prob- [continued] 90 BYTE • OCTOBER 1986 IB were a few hackers, then came (he college students, next the major software houses, and now the rest of the programming world. Programmers everywhere are infected with the desire for SPEED, POWER, and PORTABILITY Its time to face the inevitable. You Ye going to catch the fever too! When you do, give us a call. We've got the best cure — an illustrated guide to the C language, plus a complete program development system. Everything you need to master the C programming language ... all at a price that's less than the cost of a book! But don't let this price fool you. Our system is powerful; it compiles twice as fast as the others, is completely standard, and its very easy to use. Most C compilers are designed for wizards. We have designed ours for you! Split Screen Text Editor $29 ! (Nut Copy Protected!) Works on allMSDOS) PCDOS and O'tM 7.H0 Computers an Incredible Value AT ONLY Our high powered editor is great for edit- ing high level lan- guages. It works just like Micropro s Wordstar® but macros allow you to create your own cus- tom editor, and the split-screen feature lets you edit two files at the same time. The MSDOS/PCDOS version is loaded with special features: • Execute any DOS command or RUN other programs from the editor. • Quickly edit tiles as large as 300,000 characters. • Compile MIX C programs directly from memory. The editor automatically positions the cursor to the lirst error in your program. that supports all data types and the latest features like bit fields, enumerations, structure assignment, and passing/returning structures. that loads separately compiled files, searches libraries, and builds an executable program. (including the standard C functions and the computer specific functions that provide direct access to the operating system and BIOS'). your programs for minimal space or maximum speed. Operators are standing by . . . Please use this Number for ORDERS ONLY! CALL TOLL FREE FOR RUSH ORDER DELIVERY! 1-800-523-9520 For Technical Support Please call 1-214-783-6001 MIX Software, Inc. / 2116 E. Arapaho / Suite 363 / Richardson, Texas 75081 Or contact our Worldwide Distributors direct in: Canada: Saraguay Software 1-416-923-1500 Switzerland: DMB Communication CH-1-825-53-29 Australia: Techno w 047-586924 France: Info/Tech 1-43-44-06-48 (RUSH REPLY ORDER FORM!) _ -. Please check method of payment: □ CheckD Money OrderD MasterCard/VISA Your Card #: Expires Shipping Charges: (No charge for ASM Utility) In the U.S.A.: Add $5.00 per Order. In CANADA: Add $10.00 per Order. OVERSEAS: Add $10.00 per Text Editor. Add $20.00 per C Compiler. Add $30.00 for combined C Compiler and Text Editor. Operating System: (Check one) " □ CP/M Z80 □ MSDOS/PCDOS Specify Your Computer Name _ Specify Disk Format NAME. ASM UTILITY an Incredible Value AT ONLY Call assembly language routines from your C programs. The ASM utility works with Microsoft s jMASM or M80 assem bier. Macros make it easy! Works just as if you were calling a C function, and you can even call C functions from assembly lan- guage. Lots of useful assembly language functions are included as examples. Inquiry 14 Description Spl it-Screen Text Editor ^rr^. C Compiler Quantity PRICE $29.95 $_ $39-95 $_ Total Order Telephone A/C ( ) . Street City. r&£ $54.95 $_ $10.00 $_ C and Text Editor (Special) ASM Utility Texas Residents Add 6.125% Sales TAX Shipping Charges (See at Right) TOIAL OF YOUR ORDER: State _ Country _ .ZIP. p^^f 2 116 East Arapaho J ^^V Suite 363 Software Richardson, Texas, 75081 Ask about our Volume Discounts! Call 1-214-783-6001 B THE APPLE II GS lem that complicates the Apple II hi-res modes). With the old Apple II hi-res modes, the electronic characteristics of both the Apple II and its video display determined the colors that were avail- able; for example, the hi-res mode gave you the colors violet, blue, green, orange, black, and white. The Apple II GS, through the VGC chip, gives you more control over the colors in your graphic display. The super hi-res mode lets you choose your palette of 16 colors from a color set of 4096. But which of these 16 colors are used in the 640 by 200, 4-color mode? The answer is all of them, the details of which lead us to one of the experimental super hi-res modes. The two bits of a pixel in this mode can have four values, so they are used in this mode to choose from 4 colors in the 16-color palette. Which 4 colors? Apple II programmers will recognize the answer as yet another convoluted video mode in the Apple II tradition: The 4 colors available for a pixel de- pend on its position within a byte (see figure 3b). Palettes and Pointers Actually, the Apple II GS defines a 512-byte area starting at location 9E00 hexadecimal; this area contains 16 color palettes of 32 bytes each, numbered from to F hexadecimal. Each color in a palette is defined in 2 bytes, using 4 bits each to describe the red, green, and blue components of the color. The first byte contains the values for green (bits 7-4) and blue (bits 3-0); the second byte contains the red value (bits 3-0), with the re- maining bits set to zeros. Why are there 16 palettes? Because each scan line can use any of them in any order. This brings the total number of colors that can appear on- screen to 16 x 16 = 2 56 colors. Ex- (a) Pixel data byte format, 320 by 200 mode 7 6 5 4 3 2 10 -► Selects 1 of 16 colors for 2nd pixel ->• Selects 1 of 16 colors for 1st pixel (b) Pixel data byte format, 640 by 200 mode 7 6 5 4 3 2 10 ->- Selects from colors 4-7 for 4th pixel ->• Selects from colors 0-3 for 3rd pixel -► Selects from colors C-F for 2nd pixel (hexadecimal) -► Selects from colors 8-B for 1st pixel (hexadecimal) Figure 3: (a) Pixel decoding in the 320 by 200 and (b) 640 by 200 super hi-res modes. pect to see some uncharacteristic graphics as soon as programmers learn their way around the machine. The final surprise of the super hi-res graphics modes comes from the pointer area. The pointer byte at loca- tion 9D00 hexadecimal corresponds to the top line of the video display with each successive scan line getting the next byte: 9D01, 9D02 etc. This byte is read and interpreted dur- ing the horizontal retrace of the previous video line. Within each pointer byte, bits 3 through determine which of the 16 color palettes is to be used. Bit 4 is not used and should be set to 0. Bit 6 does nothing if set to 0. If it and an interrupt register at address C023 hexadecimal are both set to I, the VGC generates an interrupt at the beginning of the line; this will allow the advanced programmer to wring extra performance out of the super hi- res screen by altering palette values (or making other useful changes) "on the fly"— that is, while the machine is drawing the video display. Bit 7 deter- mines the resolution: for 320 pixels, I for 640. This leaves bit 5, which does nothing if set to but which activates the final, experimental super hi-res mode, called fill mode (see photo 2). In fill mode (which works in 200 by 320 resolution only), you have access to 1 5 colors (numbers I through F. hexa- decimal). A pixel value of means that its color is the same as the last nonzero pixel to the left. In other words, pixels with the values 3000200000009000 would appear as colors 3333222222229999 and you could change the large area painted with color 2 to, say, color 5 by changing one pixel (the fifth one) from a 2 to a 5. (Note that the first pixel in a line must always be non- zero.) This mode will be good for drawing large areas and changing their colors very quickly. Sound The heart of the II GS's sound system is the Digital Oscillator Chip manu- [continued] 92 BYTE • OCTOBER 1986 12 MHz SPEED . . . . . . plus A MEGABYTE FOR DOS! THEY ALL NEED NUMBER SMASHER/ECM TM Turn your PC or XT into the machine it should have been! The 12 MHz Number Smasher/ECM is the fastest accelerator on the market It is also the most powerful, provid- ing a true megabyte for DOS! To break the 640K DOS barrier MicroWay designed a Memory Management Unit (MMU) that is tailored to DOS plus a 2000 byte resident driver- MegaDOS™. MicroWay calls this breakthrough Extended Conventional Memory. When you type CHKDSK with the board installed, your sys- tem will report 1,036,288 bytes total memory and 1,010,016 bytes free! Any conventional DOS program can utilize a full megabyte for data or code without changing a byte. Downloading a mainframe application? ECM memory runs with any program that uses DOS for screen services including RM and MS FORTRAN and MS and LATTICE C! This means you have an additional 384 K available for over- sized applications. Programs which write directly to the screen require a simple patch to adhere to the new standard. MicroWay has already developed patches for the Lotus, WORDSTAR and AUTOCAD screen drivers. Release 1 A of 1-2-3 jumps from 535,516 to 916,444 bytes available and runs faster than Release 2 for most worksheets. Micro WW Number Smasher/ECM is 100% compatible with all hardwareand software including EMS and EGAboards.The compatibility is a result of control: its speed is switch, key- board or software selectable from 4.77 MHz to 12.0 MHz. Applications which have not been upgraded to ECM can still be run by setting DOS to 640K or 704 K and using the memory above DOS for I/O enhancers. Number Smasher/ECM runs floating point bound pro- grams faster than an AT or any other 80286 based machine. In fact, Number Smasher's 1 2 MHz 8087 runs a factor of three faster than the standard 80287 on the AT, delivering up to 125 kflops. Software is included for RAM Disk, print spooler, and disk caching, which speeds up floppy and hard disks by a factor of 2 to 1 0! Number Smasher/ECM is the most cost effective pro- ductivity tool you can buy. The base board which runs at 9.54 MHz comes with 51 2 K and costs only $599! The com- plete system which includes a motherboard accelerator, one megabyte of memory and a 1 2 M Hz 8087 is just $1 1 99. Call today to discuss your particular configuration. Remember: "The advantage of buying from MicroWay is outstanding per- sonal service." (PC Magazine, 6/1 0/86 - p. 1 62) The World Leader in 8087 Support Inquiry 202 P.O. Box 79, Kingston, Mass. 02364 USA (617) 746-7341 Tempo House, London, U.K. call 01-223-7662 Number Smasher, ECM and MegaDOS are trademarks of MicroWay, Inc. MicroWay is a registered trademark of MicroWay, Inc. OCTOBER 1986 • BYTE 93 THE APPLE II GS factured by Ensoniq and used in the Mirage digital synthesizer. The DOC is attached to its own personal bank of 64K memory into which programs store wave tables that the DOC uses to generate sound. This memory is ac- cessible only through special registers in the Sound General Logic Unit, a custom chip that acts as an interface between the DOC and its memory and thus allows sound generation to proceed independent of other pro- cessing in the Apple II GS. Additional- ly, registers within the Sound GLU chip regulate the gain of the II GS's audio amplifier, providing control of the speaker's volume. The Ensoniq DOC contains 32 oscil- lators that the II GS firmware operates in pairs to generate a tone. Since one of the oscillators is used by the system to generate a time-slice interrupt for the DOC, the Apple II GS can produce up to 15 independent tones simulta- neously. A wave table is a series of bytes in the DOCs memory such that each byte represents the instantaneous value of the amplitude of the sound's output waveform. An oscillator on the DOC will step through this table fetch- ing bytes and passing them to an on- chip digital-to-analog converter that produces the analog waveform that, after filtering, goes to the speaker. This technique allows generation of a theoretically limitless range of sounds, bounded only by the amount of mem- ory available. The limit of 64K dedicated memory is no impediment, since the II GS allows you to fill one portion of a wave table while the DOC is fetching information out of another. The II GS passes the unamplified monophonic signal of the sound sys- tem's output to a mini stereo phone jack on the back panel of the ma- chine. This output is capable of driv- ing a pair of Walkman-style head- phones or, with the proper adapter cable, the input of a stereo amplifier. The designers of the II GS have also provided a connector on the mother- board that gives direct access to several useful DOC signals, including an unfiltered audio output, channel selection logic signals (can be used to implement eight independent audio channels), and an input to the DOCs analog-to-digital converter (for a sound sampler/digitizer). The Apple II GS Toolbox In the past, the Apple II could be almost completely described by its hardware features. The Apple II GS ends this tradition with its inclusion of significant amounts of system soft- ware in both ROM and RAM meant to be available to all programs. It is not accidental that these routines are similar in name and function to those in the Macintosh computer. The Mac toolbox is an elegant, powerful system proven to work and improved by two years of intensive use. The Apple II GS toolbox imple- ments the most useful Macintosh toolbox functions, though sometimes it does so in a different way; the Mem- ory Manager, for instance, works quite differently from its Macintosh counterpart because of the way the Apple II GS's memory is divided into 64K-byte banks. However, the Apple II GS doesn't duplicate all of the Macintosh toolbox. The code in the Apple II GS toolbox is divided into tool sets, and the in- dividual routines are called tool calls. The tool sets that are in ROM are the Tool Locator, Memory Manager, SANE (Standard Apple Numerics En- vironment) Numerics, Desk Accessory Manager, Event Manager, Sound Manager, Integer Math Tools, Text Screen Tools, Scheduler, and Miscel- laneous Tools. QuickDraw II is divided between ROM and RAM. The remaining tool sets are stored on disk and loaded into RAM by the application that needs them. Once in memory, they are indistinguishable from tools stored in ROM. They are the Menu Manager, Window Man- ager, Control Manager, Line Editor, Dialog Manager, Scrap Manager, and Print Manager. Tool Set Structure The Apple II GS tool set has no fixed routine entry points and only four fixed addresses associated with its toolkits, yet any program can execute any toolbox routine in RAM or ROM, even if a routine is changed or moved to a different location after the pro- gram is written. Both tool sets and tool calls are numbered (starting with I), and any tool call can be executed by the following assembly language sequence: push inpl Idx #CalllD jsl Dispatch This pushes any input onto the stack, loads the 16-bit X register with a call ID constant that has the tool call number in the high byte and the tool set number in the low byte, and does a subroutine jump to a fixed entry point. A high-level language would compile a normal procedure call as a series of or more push instructions, followed by a jump to a different loca- tion that performs the above function while handling an extra 3-byte return value on the stack. The Apple II GS designers estimate that this type of call has an overhead of about 118 microseconds. Parameters can be passed in several ways, based on the needs of the individual routine: on the stack, in a known block of memory, or in the A, X. and Y registers. To increase the usability and exten- sibility of the II GS, its designers pro- vided an identical but parallel struc- ture that allows programmers to build and use their own tool sets without "borrowing" tool set numbers that Apple may later use. The only dif- ference between the two is a different entry point, "UDispatch" instead of "Dispatch." Toolkit Memory Usage Many tool calls need their own mem- ory—sometimes page zero locations to speed up their execution, some- times other memory for passing pa- rameters or sharing or storing data. The Apple II GS designers resolved the conflicting memory needs of many different tool calls by regulating memory usage as follows: The pro- gram using the tool sets will itself allocate page zero memory and tool sets will allocate the other memory they need by asking for it through the Memory Manager. They can then point to it with the WAPT (Work Area Pointer Ikble) entry reserved for that tool set, and their tool calls will always [continued) 94 BYTE « OCTOBER 1986 Inquiry 149 — ► THAT IS O UTO F THIS WO R LD . . *389 $549 MODEL 2000 20MHz DUAL TRACE MODEL 3500 35MHz DUAL TRACE DELAYED SWEEP AT A DOWN TO EARTH PRICE At fast! Truly affordable test equipment with no compromise in design, and features you would expect to find only on oscilloscopes costing hundreds of dollars more! JDR Instruments presents two, new, high-performance models backed by a two year warranty and technical support which is only a phone call away. Perfect fdr the technician or advanced hobbyist, both models feature Dual Trace capability and a variety of operating and triggering modes, including CH-B Subtract and X-Y operation. MODEL 2000 has a 20 MHz I MHH MODEL 3500 features a 35 bandwidth and 20 calibrated ^^Ftft^Bft^^H MHz bandwidth and exceptional sweeps ranging from .2s to .2fjs. W \&f&£&m \ 1mV/DIV sensitivity. Delayed A convenient built-in component lyj M sweep and variable holdoff allow tester provides additional ^^^ Bffif|WWW M stable viewing of complex diagnostic power. ggQg|gg| | waveforms. ORDER TOLL FREE 800-538-5000 800-662-6279 ( ca) JDR INSTRUMENTS 1224 South Bascom Avenue San Jose, California 95128 (408) 995-5430 COPYRIGHT 1985 JDR INSTRUMENTS. EARTH PHOTO COURTESY OF NASA. THE JDR INSTRUMENTS LOGO IS A REGISTERED TRADEMARK OF JDR MICRODEVICES. JDR INSTRUMENTS IS A TRADEMARK OF JDR MICRODEVICES. THE APPLE II GS be able to access that memory in whatever way they wish. QuickDraw II QuickDraw II deserves mention because of its importance for desk- top-based Apple II GS software. It is a tool set, partly in ROM and partly in RAM, that provides a standard set of useful graphics routines for draw- ing window/menu-oriented screens. Wherever possible and appropriate, it attempts to work equivalently to a subset of Macintosh QuickDraw rou- tines. The pre-release documentation lists 146 QuickDraw II tool calls, of which 1 14 are listed as being the same as their Macintosh equivalents, 22 are listed as being similar, and 10 are en- tirely different or absent. The degree of consistency between QuickDraw and QuickDraw II will be very impor- tant to Macintosh software develop- ers attempting to convert their soft- ware to the Apple II GS. PRODOS Apple has crowned ProDOS the oper- ating system for the Apple II series of computers, and the company will be guiding ProDOS along a carefully con- trolled development path that pro- ceeds as follows: • ProDOS 1.1.1 will continue to be supported for the Apple He and lie computers and many ProDOS 1.1.1 programs will run on the II GS. • ProDOS 8, an altered version of Pro- DOS 1.1.1, will become the standard 8-bit operating system for the Apple II. It will work on the He, He, and II GS. • ProDOS 16 will be the 16-bit oper- ating system used for Apple II GS soft- ware. Version 1.0, supplied with the machine at its introduction, is built on a ProDOS 16 framework but is imple- mented by a ProDOS 8 core sur- rounded by a shell handling ProDOS 16-style calls. ProDOS 16 version 2.0 will be released in the first quarter of 1987. The Finder We did not see the Finder working when we saw the Apple II GS, but its preliminary documentation describes it as "a combination Program Selec- tor/Disk Utility for managing docu- Extended Apple II GS Coverage on BIX BYTE magazine has a lead time of several months, but the lead time on BIX (BYTE Information Exchange) is measured by how fast we can type. By the time you read this, we will have active a special 'Apple II GS event" on BIX that will include further technical details, exact prices, BIX users giving their impressions of the machine as it comes out of the box, and more. Much of this information will be excerpted in the Best of BIX section of BYTE as soon as our lead time allows. For more details about the special Apple II GS coverage in BIX, log on to BIX. type join apple, and then join the first topic with 'GS' somewhere in its name. ments and directing traffic between the user and storage devices." It seems to be a pretty faithful imitation of the Macintosh desktop interface, with several exceptions. First, the "Special" menu has two new items— "Check Drives" and "For- mat." The first causes the Finder to update its knowledge of what disk is in each drive (remember that, in an Apple II system, you can change the floppy disk in a drive without the com- puter knowing what you've done). The second will eventually allow you to format a disk in either ProDOS, Apple Pascal, DOS 3.3, or Apple CP/M for- mats; the initial release, however, will only format disks for ProDOS. Second, the Finder will interact most fully with ProDOS disks and pro- grams. Since only the ProDOS oper- ating system has subdirectories, only ProDOS disks will have folders in their windows. When you exit a ProDOS program, it will return you to the Finder. Third, the Finder does not support custom file icons. Each icon will have a shape determined by its file type. Finally, the Finder will support rudi- mentary printing of text files. A future version of the Finder will probably add the Macintosh MFS (old) and HFS (hierarchical) disk for- mats, Apple Pascal 1.3, and Apple CP/M to the file types supported. Apple Desktop Bus The Apple Desktop Bus (ADB) is used for the generalized connection of the computer with up to 16 input devices daisy-chained to a single connector on the back panel; it currently sup- ports multiple keyboards (for educa- tional and other programs) and a mouse (ending the daisy chain), but the design can accommodate other kinds of devices. Devices are con- nected through a shielded 3-con- ductor cable using mini-DIN-4 con- nectors. The ADB is controlled by a dedi- cated 8-bit processor called the ADB microcontroller (abbreviated here as ADBM); in addition, the mouse and keyboard are controlled by custom microcontrollers that interact with the ADBM. The ADBM and the intelligent devices "talk" on a bus where only the ADBM can issue commands; the devices reply as appropriate with data or requests for service. In general, the ADBM handles low- level interaction with the keyboard, mouse, and other input devices, thus freeing the 65C816 processor from having to handle such tasks. AppleTalk Unlike any other Apple Computer product, the Apple II GS includes built-in Appl£l£lk code in RAM and ROM. Through the Control Panel, you can configure slot 7 as Appl^lk; the II GS then uses one of the two serial ports as its Appl^felk port. The II GS implements the bottom two (of seven) levels of App\£fo\k pro- tocol: Link Access Protocol (LAP) and Datagram Delivery Protocol (DDP). It also implements enough of the next (continued) 96 BYTE • OCTOBER 1986 Explore AI on your PC Smalltalk/V transforms your PC into a versatile AI workstation Only Smalltalk/V lets you experience the thrill of a responsive AI work- station while learning artificial intelligence techniques and using them to create practical applications. "Smalltalk/V gives me the feel of an AI workstation on my PC." — Darryl Rubin, Technical Editor, AI Expert Magazine Watching someone use an AI workstation is a vision of what the computer was meant to be. Fingers dance across the keys as windows dilate, shift, overlap, and disappear on the bit-mapped display. Ideas spring to life as program fragments execute, are modified, expanded, combined and tried again in a creative arabesque of text and graphics. The interface vanishes, man and machine are one. Smalltalk/V brings that experience to your IBM-PC. "We use Smalltalk as our primary language for teaching artificial intelligence/' — Dr. John Pugh Director, School of Computer Science Carleton University Of the three main AI languages, Smalltalk, LISP, and Prolog, only Smalltalk was intended for individual use on a personal computer. Only Smalltalk was designed to provide a match between human and computer models of reality. Only Smalltalk is easy to learn, easy to read, and easy to use. "We found Smalltalk/V excellent for developing advanced decision- support tools based on decision analysis and AI techniques." —Dr. Samuel Holtzman, Professor, Stanford University Smalltalk/V is pure object-oriented programming — a powerful tool for designing frame/script- based knowlege representations, inference engines, expert systems, simulation environments, intelligent interfaces, network control software, communications interfaces, and much more. Methods, our character-based Smalltalk, is now available for $79- It has all of the features of Smalltalk/V except graphics, rules, source-level debugger, and object-swapping. However, it supports color, includes the communication package, and does not require a mouse. B\TE and BIX are trademarks of McGraw-Hill, Inc. IBM, IBM-PC, and IBM PC-AT are trademarks of International Business Machines Corporation. Unix is a trademark of Bell laboratories. Inquiry 92 "Smalltalk/V is the highest performance object-oriented programming system available for PCs." — Dr. Piero Scaruffi Chief Scientist Olivetti Artificial Intelligence Center Smalltalk/V Features • High-performance object-oriented programming Integrates object-based and rule-based programming with object-oriented Prolog A user-extensible, open-ended environment A responsive graphical user interface Supports exploratory programming and prototyping Class hierarchy with inheritance creates highly re-useable code Smalltalk source code included, with browser windows for easy access and modification A huge toolkit of classes and objects for building a variety of applications Object-swapping creates virtual memory on hard or RAM disk Bit-mapped graphics with bit and form editors A sophisticated source-level debugger Automatic change log for easy recovery from errors Powerful directory/file browser system for organizing DOS files Optional communications interface to Unix™ and other systems Access to other languages and DOS functions DOS command shell Detailed owner's manual designed for both beginners and advanced programmers YES! I want to turn my PC into an AI workstation. Send me . . ^\ Smalltalk/V $99 J Communications for Smalltalk/V . . M9 | Methods (including Communications) $79 Shipping and Handling £ CA residents add applicable sales lax $_ TOTAL Shipping and Handling U.S., Canada, and Mexico $ 5.00 Elsewhere $15.00 I enclose □ Check □ Money Order □ Credit card information □ mc □ visa Number:. . Expiration- Signature . Name: Street Address:. City/Slate/Zip: _ Phone: NOT COPY PROTECTED, 60-DAY MONEY-BACK GUARANTEE ON-LINE USER-SUPPORT CONFERENCE ON BYTE'S BIX™ SmalltalkA requires DOS and 5I2K RAM on IBM PCs (including AT) or "compatibles," a Microsoft or compatiblemouse, and a CGA, EGA, Hercules, or AT&T Hi-Res graphic controller. digitalk inc. 5200 West Century Boulevard Los Angeles, CA 90045 (213) 645-1082 THE APPLE II GS two levels, Name Binding Protocol (NBP) and Apptetelk Transaction Pro- tocol (ATP), to boot the II GS from a remote file server (thus allowing it to be used in a network environment without its own disk drive). Pricing The price for the Apple II GS had not been set at the time of this writing, but we expect the price for a starter system with one 3 '/2-inch disk drive and a monochrome monitor to be in the $1400 to $1600 range. Compatibility For many users, especially current owners, software and hardware com- patibility will be the make-or-break factor in their decision to buy an Apple II GS. The II GS engineers did an incredible job of designing a new, more powerful computer that is large- ly compatible with the existing body of Apple II hardware and software. One engineer estimated the II GS's hardware compatibility at "about 80 percent" and its software compatibili- ty at "95 to 99 percent." Complete software compatibility is impossible, largely because of the completely unregulated way the Apple II has been programmed in the last 10 years. People wrote code that jumped into the middle of ROM rou- tines, used machine language op codes that were unimplemented in the 6502 (but that are in the 65C816), and implemented countless copy- protection schemes, many of which depended on particular hardware details that were replaced in later Apple II designs. The final verdict must wait until we get to test a production-line machine, but we tested several Apple II game and business programs and found two that fail trying to execute former- ly unimplemented op codes (THE Spreadsheet and Serpentine) and one (HomeWord running under ProDOS 1.1.1) that doesn't work because the 65C816 does not completely emulate the way the 6502 wraps an X-register address from FFFF hexadecimal to 0000 (it wraps to 10000 hexadecimal). Most peripheral cards that do not implement "phantom slots" (where a multifunction card appears to be several cards in different slots) will work, but some cards won't; we were told, for example, that the Mountain Computer Music Card set won't work because of the way it uses interrupts. As with previous enhancements to the Apple II line, such differences cause problems for the first year or so, then they fade from consciousness as companies revise their products and users find patches or workaround measures for products that don't work. In general, the more recent your Apple II software or hardware, the more likely it is to run properly. Caveats We wrote this product preview in July 1986, after two days with the Apple II GS engineering staff, much study of seven volumes of developers' tech- nical documentation, and subsequent telephone conversations with the engineers. When we saw the Apple II GS, the firmware was about to be "frozen," and the machine itself was in "final preproduction"; only minor changes are likely to be made at this point. We did not get to see the Finder software, but we had several hours of hands-on experience and ran several impressive sound and graphics demos. (We wish to thank Rob Moore, Harvey Lehtman, and many other Apple people for their help.) Conclusions What do you say about such in- novative energy that has been directed primarily toward preserving a hardware design that is 10 years old? The Apple II GS designers' achievements are remarkable, but the burden of the classic Apple II archi- tecture, now as venerable (and out- dated) as COBOL and batch process- ing, may have weighted them down and denied them any technological leaps beyond an exercise in miniatur- ization. Also, the 65C816 may prove to be an IC of mixed blessings: While it does provide a. means of support- ing the 6502 within a processor that also operates in a 16-bit mode, to pro- grammers it represents yet another in- struction set that has to be learned and whose oddities will have to be dealt with. The Apple II GS affirms several trends in microcomputer design that we should not ignore: improved graphics and sound, larger processor and memory capacity, and the use of a mouse and a desktop/icon/windows user interface. The machine also follows a trend but breaks new ground in the Apple II line by including large amounts of system firmware that is as important as the machine's new hard- ware features. Because Apple perceives itself as a "premium label," its pricing will not be as aggressive as many users would like it to be. Apple is becoming— dare we say it?— more and more like IBM, selling more on name, reputation, and installed base of software and hard- ware (not a strong selling point, in the case of Apple \\ software) than on computing-power-per-dollar value. The Apple II GS. hog-tied by Apple II compatibility, approaches but does not match or exceed current micro- computer capabilities. The 8086-like segmented memory of the 65C816 is not as elegant as that of the 68000, used in the Apple Macintosh, the Commodore Amiga, and the Atari 520ST In addition, the 65C816 lacks the hardware multiply and divide in- structions available in both the 8086 and the 68000 processors. The Apple II GS's graphics, though now com- petitive, do not offer any advantages over the Amiga's or the Atari ST's, nor is its price competitive with either. Its only clear superiority is in its sound capabilities, which for many buyers will not outweigh graphics and price. Ironically, the Apple II GS will suf- fer from the traditional lack of soft- ware and hardware upon its introduc- tion. Vendors will take longer than they expect to come out with new products, and many will enhance existing products for the Apple II in- stead of writing new software that fully exploits (and is limited to) the Apple II GS. Granted, a tremendous amount of software is already, out there, but the Apple He and He will run it with fewer compatibility problems and at a significantly lower cost. As with new machines before it, people will buy the Apple II GS because they see the unrealized promise of its new features. ■ 98 BYTE • OCTOBER 1986 Microsoft FORTRAN. The overwhelming favorite. How did Microsoft®FORTR AN get so popular? It could be the mainframe compatibility. Our compiler makes porting applications a cinch with overlays and the ANSI features you need. It could be our support for arrays and COMMON blocks larger than 64K. So you can tackle mainframe-size problems. It might be the shelves and shelves of third party support libraries. No other FORTRAN comes close. Cut your development time dramatically. The Symbolic Debug utility, part of the Microsoft Macro Assembler, lets you debug your FORTRAN programs using your original source code or the resulting disassembly. For example, you can set breakpoints on line numbers, observe the contents of variables and expressions, and examine the contents of the stack. It could be the extensive math support. Our collection of math libraries is simply the largest available. Tackle real problems with direct 8087 support or emulation. Use IEEE floating point or— for extra speed— the altmath package. It could be the comprehensive set of utilities. A powerful linker and library manager com- bination. Plus tools like EXEMOD and EXEPACK. Standard. It could be the XENIX® and MS-DOS® source-level compatibility. Or the direct inter- language calling to Microsoft C, Pascal and Assembler. Or the ability to work with our Macro Assembler s symbolic debugger. It could be the value. Nobody offers a FORTRAN package this complete at this low a price. Why is Microsoft FORTRAN the most popular FORTRAN? All the above. Microsoft FORTRAN Compiler Version 3.3 for MS-DOS and XENIX 286 Microsoft FORTRAN Compiler ♦Implements most ANSI 77 standard features, plus extensions. ♦ Easily port mainframe/minicomputer programs with little or no modification. ♦Overlay support in the compiler and linker. ♦Common blocks and arrays greater than 64K. ♦Supported by the largest number of third party libraries. ♦ Includes a full set of math libraries to select from: ♦8087/80287 emulation. ♦8087/80287 coprocessor support. ♦Floating Point without 8087/80287. ♦BCD Floating Point. ♦Conditional compilation. ♦ Link your FORTRAN routines with Microsoft C Compiler (version 3.0 or higher), Microsoft Pascal (version 3.3 or higher), and Microsoft Macro Assembler. ♦ MS-DOS 3.1 network support and IBM* local area network support. ♦ Source code compatible between MS-DOS and XENIX 286. ♦Do source level debugging with the Symbolic Debug Utility, available separately with Microsoft Macro Assembler. Object Code Overlay ♦ Simple overlay linker combines relocatable object modules created using Microsoft languages into a single program. ♦ Link very large programs (over 1 megabyte) using overlays. Library Manager ♦Create, organize and maintain your object module libraries created with Microsoft languages. Microsoft EXE File Compression Utility (MS-DOS only) ♦A utility to pack EXE files for smaller size on disk and faster loading at execution time. Microsoft EXE File Header Utility (MS-DOS only) ♦A utility that allows you to display and modify the fields in EXE file headers. For the name of your nearest Microsoft dealer call (800) 426-9400. In Washington State and Alaska, (206) 882-8088. In Canada, call (416)673-7638. Microsoft The High Performance Software™ Microsoft, XENIX and MS-DOS are registered trademarks and The High Performance Software is a trademark of Microsoft Corporation. IBM is a registered trademark of International Business Machines Corporation. Finally, a language worth For years BASIC has been everyone s first language. And for almost as long, they Ve been tempted by other languages. Lured by promises of more speed, more power. We have a solution. A new language that s a substantial improvement over BASIC A. Faster. More structured. Finally, a compelling reason to leave BASIC. Introducing Microsoft's QuickBASIC Compiler, Version 2.0. At last, you can have the latest programming techniques, combined with the solid foundation of BASIC. Our new compiler is as compatible with BASIC A as you can get. At the same time it offers the extra speed and power you ve been looking for. Run faster with compiled code* If there's one thing you Ve asked for, its speed. And Microsoft® QuickBASIC simply blazes. Old BASIC A programs will run up to ten times quicker once they Ve been compiled. Sometimes even faster. Everything you need* Built-in* Making programs run faster is only part of the story, though. The new Microsoft QuickBASIC Compiler includes a full-screen editor, built-in. So now you can make the jump from writing to RUNning in no time flat. Edit your program, compile it, and run it. Faster than any other BASIC compiler around. All without leaving our on-line help and prompts. leaving BASIC for. i^ On the rare chance your program doesn't run 100% the first time out, we've got another sur- prise for you. The Microsoft QuickBASIC debugger. Our full-screen tracing lets you debug your programs while watching the source code execute. A line at a time, or with breakpoints. As easy as can be. Our compiler is also smart enough to save you time. First, by finding any errors in one pass. Second, by putting your editor s cursor on the problem. Automatically. So you dorit have to get lost in a maze of error codes and line-numbers. The BASIC virtues. And more* Speaking of line numbers, let s not. Because line numbers are strictly optional. And Microsoft QuickBASIC lets you use alphanumeric labels as well. Now you can GOTO ErrorCheck instead of line number 6815. Or you could stop using GOTOs altogether. There are a variety of options that could make the GOTO an endangered species. Features like multi-line IF-THEN blocks. And named sub- programs. Now your BASIC programs can be as structured and organized as you want. We've only just begun to talk about the virtues of Microsoft QuickBASIC. There are dozens of enhancements to your favorite language. Things like larger arrays. Local and global variables. Reusable modules that let you create libraries of your most often-used routines. All explained in a revised manual that includes a complete language reference. Making your quick escape* If all these features follow your BASIC instincts, then zip on down to your nearest Microsoft dealer. That's where youll discover the best surprise of all. The price. Only $99 for the best reason to leave BASIC. For the name of your nearest Microsoft dealer, call (800) 426-9400. In Washington State and Alaska, (206) 882-8088. In Canada, call (416) 673-7638. Microsoft® QuickBASIC The High Performance Software™ Microsoft is a registered trademark and The High Performance Software is a trademark of Microsoft Corporation. IBM is a registered trademark of International Business Machines Corporation. Microsoft QuickBASIC Compiler Version 2.0 for IBM® PC and Compatible Computers. BASICA Compatibility ♦ Sound statements including SOUND and PLAY ♦ Graphics statements including WINDOW VIEW DRAW GET PUT, LINE, CIRCLE, LOCATE and SCREEN. ♦Support of EGA extended graphics modes. NEW! ♦ BASICA structures are supported including WHILE/WEND, IF/THEN/ELSE, FOR/NEXT, GOSUB/RETURN, and event handling. f Microsoft Results of Sieve Benchmark BASICA 3.1 QuickBASIC 2.0 Seconds per iteration 78 0.52 Complete Programming Environment ♦ Built-in Editor that places the cursor on found errors auto- matically. NEW! ♦ Compile entirely in memory at speeds up to 6000 lines per minute. NEW! ♦ Link routines once when starting a programming session and no need to link again when changing programs. NEW! ♦ Built-in debugger with single-step, animate, and trace modes. NEW! ♦Create stand-alone programs. Alphanumeric Labels ♦ Can be used to make your programs more readable. Line numbers are not required but are supported for BASICA compatibility. Structured Programming Support ♦Block IF/THEN/ELSE/END IF eliminates the need for GOTO statements. NEW! ♦ Subprograms can be called by name and passed parameters. Both local and global variables are supported. Modular Programming Support ♦ Separate compilation allows you to create compiled BASIC libraries to use and re-use your programs. ♦ A library of routines to access DOS and BIOS interrupts is supplied. NEW! Large Program Support ♦ Code can use up to available memory. ♦ Numeric arrays, each up to 64K bytes, can use up to available memory. NEW! ix & LAN Solutions For IBM PC/Xy/AT "We weren't using our PC/AT effectively until we connected Kimtron terminals." Dr. Ed Generazio NASA MULTIUSER KT-7/PC 2 PC Work-a-like Terminal Compatibility: Multilink Advanced 3 , PC-Slave/16 4 , PC-Slave 12 Display: 80 x 25, IBM PC character set, PC look-a-like attributes, 14" green or amber Keyboard: AT style std. IBM scan/ASCII codes. 5161 /AT style opt. Pages of memory: 1 std. 2 or 4 opt. Communications: 2 bi-directional RS-232C serial (data & printer) ports Operating systems: works with PC-DOS 1 , MS-DOS 5 , QNX 6 , UNIX 7 , XENIX 5 , THEOS 8 , PICK 9 , and Concurrent DOS 10 . Retail price: $695.00 QUARTET 2 4-port I/O card, RS-232C Retail price: $299.00 LAN K-Net 2 Local Area Network Software Compatibility: IBM's NetBIOS 1 , Token-Ring 1 , PC Network 1 , Novell's Advanced Netware 11 , Kimtron's K-Net 2 Access Method: CSMA/CD Topology: Distributed Bus Data Rate: 1 million bps (baseband) Cable: Twisted-pair/phone wire Distance: Up to 4000 ft. Addressable users: Up to 255 Physical: Half-sized card Operating systems: PC-DOSVMS-DOS 5 2.0 or later Dedicated file server: Not needed Multiuser solutions supported: Multilink Advanced 3 , PC-Slave/16 4 , PC-Slave 12 Other features: message communication and print spooling Retail price: $395.00 WORKSTATIONS KW-l 8088, 4.77 MHz, 256 Kbytes Retail price: $995.00 KW-2 8088-2, 8 MHz, 256 Kbytes Retail price: $1,195.00 KW-3 80286, 6 or 8 MHz, 256 Kbytes Retail price: $1,995.00 All the above include: AT style keyboard, 8 slots, built-in K-Net 2 with remote boot. Upgradeable to "complete" PC. Monitors, video boards, additional memory, and other keyboard layouts are also available. (800) 828-8899 (4Q8) 436-6550 (In CA) 1705 Junction Ct., Bldg. #160 San Jose, California 95112 :< K imtron Trademarks: 'IBM 2 Kimtron Software Link 4 Alloy ^Microsoft 6 Quantum 7 tte)l Labs "THEOS Software y PICK Technologies '"Digital Research "Novell ,2 ADC © Copyright 1986 by Kimtron Corp. 102 BYTE • OCTOBER 1986 Inquiry 157 for End-Users. Inquiry 158 for DEALERS ONLY. CIARCIA'S CIRCUIT CELLAR BUILD AN INTELLIGENT SERIAL EPROM PROGRAMMER by Steve Ciarcia Steve's new and improved device includes onboard CPU and intelligent firmware I don't like admitting that I made a mistake, but ap- parently I did. Well, not ac- tually. You see, I was dragged into ... Let me start from the beginning. My February 1985 Cir- cuit Cellar article was a project on how to build a serial EPROM programmer, about which I said: "The latest Circuit Cellar EPROM programmer is a serial-port pro- grammer that has the speed of a turtle, the intelligence of the mightiest computer (that is, it has absolutely no smarts of its own), and is as functional as a doorstop between uses. On the positive side, it's fully docu- mented, universally applicable, and easily expandable to accommodate future EPROM types." What a mess after it was published! Every- body must have built this programmer. BYTEnet almost shut down the Peter- borough phone company as people down- loaded the BASIC listings, and my staff developed "postage tongue" replying to the correspondence. Needless to say, the proj- ect was well received. In truth, it was an experimenter's project intended to satisfy a certain core of sup- porters yet enlighten the larger audience of readers about EPROM programming in general. Because I could not gauge its potential reception, and also because I didn't see it as having any greater perfor- mance than low-cost bus-compatible pro- grammer boards, I didn't arrange to have it made into a printed circuit board as are most of my projects. I'm embarrassed to say that even after all these years I under- estimated the number of experimenters who wanted to build a serial EPROM pro- grammer. It's too late to go back now, but I have to make up for past indiscretion and find some way to save face. I know that there are warmed soldering irons all across the coun- try waiting for me to apologize appropriate- ly. I trust you'll accept this improved rendi- tion on an old theme as proper recom- pense. As the title indicates, this programmer is still intended for serial-port operation. Thus, it retains computer and bus independence. The primary difference between then and now, however, is the addition of a micropro- cessor that greatly enhances its functions. The new Circuit Cellar intelligent serial EPROM programmer (CCSP for short) pro- grams more types of EPROMs faster and [continued] Steve Ciarcia (pronounced "see-ARE-see-ah") is an electronics engineer and computer consultant with ex- perience in process control, digital design, nuclear in- strumentation, and product development. The author of several books on electronics, he can be reached at P.O. Box 582, Glastonbury, CT 06033. COPYRIGHT © 1986 STEVEN A. CIARCIA. ALL RIGHTS RESERVED. OCrOBER 1986 • BYTE 103 CIRCUIT CELLAR more reliably. It also functions as a stand-alone programmer for copying or verifying EPROMs. (See photo 1.) The following is a list of CCSP fea- tures: • RS-2 3 2-compatible (no handshak- ing necessary) • internal V pp power generation • menu-selectable EPROM types (no programming configuration jumpers) • default power-up selectable data rates • automatic power-down of EPROM for installation/removal • stand-alone or computer system/ter- minal-connected operation • menu-driven operation • single-byte or full-buffer write modes • 32K-byte on-board memory buffer • read, copy, or verify EPROM • Intel hexadecimal file upload/down- load • verify after write • verify EPROM erasure • screen dump by page or byte • BASIC driver that can be modified by the user • program EPROMs in standard 50- millisecond and 1-ms fast algorithm modes • support V pp settings of 2 5, 21, and 12.5 volts • program all 27xxx 5-V single-supply EPROMs, including 2716, 2732, 2732A, 2764, 2764A, 27C64, 27128. 27128A, 27CI28, 27256, 27512, and any func- tional equivalents Obviously, a list this impressive would take a great deal of effort to put together as a single month's project. The potential software development nightmares of assembly language serial drivers, menu displays, and table manipulations hardly made it worth adding a microprocessor to my original BASIC-language-manipulated unit. Besides, how could it be done in one month? BASIC allowed a significant level of interactive menus and help displays while requiring little software over- head. Unfortunately, using a high- level-language interpreter to simplify software development is of little value when the primary goal of producing a better programmer requires fast data manipulations that are best ac- Photo I: Finished printed circuit prototype of the serial EPROM programmer. The digital section and memory buffer are at the bottom center. The analog- voltage-level switching section is at the top center. complished in assembly language. Rather than be thwarted by this ap- parent dilemma, 1 decided to design a hybrid system that used both BASIC and assembly language. The obvious choice was the BASIC- 5 2 computer/ controller 1 presented in the August 1985 project. With the help of soft- ware guru and friend Bill Curlew, the CCSP was designed, built, and tested in two weeks flat. The CCSP uses an Intel 8052AH- BASIC microprocessor that contains an 8K-byte ROM-based BASIC inter- preter. Besides manipulating strings, tables, and menus, the BASIC contains serial communication drivers and easily links to assembly language rou- tines. It seemed the perfect engine for a quickly designed user-modifiable project. A Hybrid Approach The CCSP is a stand-alone microcom- puter with an application-specific I/O configuration. It supports 40K bytes of operating system and buffer RAM and I6K bytes of program ROM. It uses six parallel I/O ports to drive the programming-pin level-shifter voltage- control circuitry, EPROM address and data lines, and user-interactive but- tons and display. The CCSP can be used by itself to copy EPROMs or, when connected to a terminal or com- puter, as a full-function programmer/ verifier. It requires no programming jumpers or personality modules and is completely automatic. It programs/ examines/verifies all 5-V EPROMs from 2716s through 27512s in both standard and fast modes (on appli- cable devices). In the sections that follow, I'll describe the configuration of the microcomputer and its unique I/O structure. Once you have the hard- ware in hand, I'll describe the system software and how the different modes operate. First, I'll go over some EPROM basics. A Review A personal computer, even in its minimum configuration, always con- tains some user-programmable mem- ory, or RAM, usually in the form of semiconductor-memory integrated circuits. This memory can contain 104 BYTE • OCTOBER 1986 CIRCUIT CELLAR both programs and data. Any ma- chine-word-level storage element within the memory can be individual- ly read or modified (written) as needed. Any of several kinds of electronic components can function as bit- storage elements in this kind of mem- ory. TTLrtype 7474 flip-flops, bistable relays, or tiny ferrite toroids (memory cores) are suitable, but they all cost too much, are hard to use, and have other disadvantages. In personal computer and other microprocessor-based applications, the most cost-effective memory is made from MOS integrated circuits. Unfortunately, data stored in these semiconductor RAMs is volatile. When the power is turned off, the data is lost. Many ways of dealing with this problem have been devised, with essential programs and data usually stored in some nonvolatile medium. r In most computer systems, some data or programs are stored in ROM. A semiconductor ROM can be ran- domly accessed for reading in the same manner as the volatile memory, but the data in the ROM is perma- nent. The data in a mask-programmed ROM is determined during the manu- facturing process. Whenever power is supplied to the ROM, this permanent data (or program) is available. In small computer systems, ROM is chiefly used to contain operating systems and/or BASIC interpreters— programs that don't need to be changed. Another type of ROM is the PROM, which is delivered from the factory containing no data. The user decides what data to put in it and permanent- ly programs it with a special device. Once programmed, PROMs exhibit the characteristics of mask-pro- grammed ROMs. You might label such PROMs "write-once" memories. The ultraviolet-light erasable EPROM is a compromise between the "write-once" kind of PROM and volatile memory. You can think of the EPROM as a "read-mostly" memory, used in read-only mode most of the time but occasionally erased and re- programmed as necessary. The EPROM is erased by exposing the silicon chip to ultraviolet light at a wavelength of 2 53 7 angstroms. Con- veniently most EPROM chips are packaged in an enclosure with a trans- parent quartz window. HOW AN EPROM WORKS EPROMs from several manufacturers store data bits in cells formed from stored-charge FAMOS (floating-gate avalanche-injection metal-oxide semi- conductor) transistors. Such tran- sistors are similar to positive-channel silicon-gate field-effect transistors, but with two gates. The lower or floating gate is completely surrounded by an insulating layer of silicon dioxide, and the upper control or select gate is connected to external circuitry. The amount of electric charge stored on the floating gate determines whether the bit cell contains a I or a 0. Charged cells are read as 0s; un- charged cells are read as Is. When the EPROM chip comes from the factory, all bit locations are cleared of charge and are read as logic Is; each byte contains hexadecimal FF. When a given bit cell is to be burned from a I to a 0, a current is passed through the transistor's chan- nel from the source to the gate. (The electrons, of course, move the op- posite way.) At the same time, a rela- tively high-voltage potential is placed on the transistor's upper select gate, creating a strong electric field within the layers of semiconductor material. (This is the function of the + I2.5-V, + 2I-V. or +25-V V pp charging poten- tial applied to the EPROM.) In the presence of this strong electric field, some of the electrons passing through the source-drain channel gain enough energy to tunnel through the insulating layer that normally isolates the floating gate. As the tunneling electrons accumulate on the floating gate, it takes on a negative charge, which makes the cell contain a 0. When data is to be erased from the chip, it is exposed to ultraviolet light, which contains photons of relatively high energy. The incident photons ex- cite the electrons on the floating gate to sufficiently high-energy states that they can tunnel back through the in- sulating layer, removing the charge from the gate and returning the cell to a state of I . When data is to be erased from the chip, it is exposed to ultraviolet light. The 27xxx EPROMs contain bit- storage cells configured as individual- ly addressable bytes. This organiza- tion is often called "2K by 8" for a 2716 or "8K by 8" for a 2764. The completely static operation of the device requires no clock signals. The primary operating modes include read, standby, and program (program- inhibit and program-verify modes are important primarily in high-volume applications). Control inputs are used to select the chip and configure it for one of these operating modes. In the program mode, particular bit cells are induced to contain values. Both Is and 0s are in the data word presented on the data lines, but only a causes action to take place. For example, the 2 7 1 2 8 is in the programming mode when V pp input is at 2 1 V and CE and PGM are both at TTL low. The data to be pro- grammed is applied 8 bits in parallel to the data output pins. For regular programming, CE should be kept TTL low at all times while V pp is kept at 2 1 V. When the address and data are stable, a 50-ms (55 ms maximum) active-low T TL pro gram pulse is ap- plied to the PGM input. A program pulse must be applied at each ad- dress location to be programmed. Standard vs. Fast In the old days, all we had to contend with were 50-ms timing pulses (ne- glecting obsolete 1702 and 2708 EPROMs). Today, the newest EPROMs can use a fast closed-loop program- ming algorithm that lessens program- ming time (realize that a 27 512 takes about I hour to program in 50-ms in- crements). The CCSP supports fast programming. [continued] OCTOBER 1986 -BYTE 105 CIRCUIT CELLAR The fast algorithm uses closed-loop margin checking. To ensure reliable program margin, the fast algorithm utilizes two different pulse types: ini- tial and overprogram. The duration of the initial PGM pulse(s) is I ms, which will then be followed by a longer over- program pulse of length Ax ms; some chip types use 3x (x is the number of initial 1-ms pulses applied to a par- ticular location before a correct verify occurs). Once it is verified, four times that number of pulses are applied to the same location to permanently burn the data. If 1 5 (some chip types require 25 pulses) 1-ms pulses are ap- (a) PIN# 1 28 27 2716 N/C N/C N/C 2732 N/C N/C 2764 27128 V PP 21V . 21V 12.5V 12.5V 5V — Uv — »5V 27256 V PP 27512 A15 12.5V ,-, _ 5V \>CC* Vcc* Vcc* JL£" Vcc* N/C PGM PGM A14 A14 -5V — I 1— 5V 1— 1 1— 5V 1— | 1— 5V 26/24 V CC 5V V C C 5V LJ ov I — I ov — I LI ov — I i—l o\ A13 A13 A13 Jov N/C 23/21 V PP All All All All All JlXv JIXv JlXv JlXv JUTv 22/20 OE i5V 20/18 CE OE/Vpp OE 25V — |5V 21V OV — 'OV I OV CE _nr _m v — I !_0V — I L_o> -ov — i u— ov 1 OV 1 OV I— 'OV l-Jov * 6.0 VOLTS ONLY ON EPROMS THAT ALLOW FAST PROGRAMMING plied to any single-byte location with : out reaching the margin, the overpro- gram pulse is applied automatically. The entire sequence of program pulses and byte verifications is per- formed at V cc = 6.0 V and V pp = 21.0 V (V pp may be 12.5 V on some EPROMs). When the fast program- ming cycle has been completed, all bytes should be compared to the original data with V cc = V pp = 5.0 V. The fast algorithm may be the preferred programming method since it allows certain EPROMs to be pro- grammed in significantly less time than the standard 50-ms-per-byte pro- gramming routine. T/pical program- ming times for 27128s, for example, are on the order of 2 minutes, a six- fold reduction in programming time from the standard method. Configuration Maze The first problem encountered in any EPROM programmer design is to compare the pins of the various EPROMs (see figure lb). Among the 28 defined pins (four are unused on 24-pin devices). 21 are used for the same functions (address and data). Evidently, semiconductor manufac- turers never thought very far ahead or talked to each other, because the re- maining seven pins are a complicated switching maze. Among the different EPROMs. the same pin location can (b) 27512 27256 27128 2764 2732A 2716 27XXX 2716 2732A 2764 27128 27256 27512 ^J A15 Vpp Vpp Vpp C 28 3 Vcc Vcc Vcc Vcc A12 A12 A12 A12 c 2 27 3 PGM PGM A14 A14 A7 A7 A7 A7 A7 A7 c 3 26 3 Vcc Vcc N.C. A13 A13 A13 A6 A6 A6 A6 A6 A6 c 4 25 3 A8 A8 A8 A8 A8 A8 A5 A5 A5 A5 A5 A5 c 5 24 3 A9 A9 A9 A9 A9 A9 A4 A4 A4 A4 A4 A4 c 6 23 3 Vpp All All All All All A3 A3 A3 A3 A3 A3 c 22 3 OE OE/Vpp OE OE OE OE/Vpp A2 A2 A2 A2 A2 A2 c 8 21 3 A10 A10 A10 A10 A10 A10 Al Al Al Al Al Al c 9 20 3 CE CE CE CE CE CE A0 AO AO AO AO AO C 10 19 3 07 07 07 07 07 07 00 00 00 00 00 00 c 11 18 3 06 06 06 06 06 06 01 01 01 01 01 01 c 12 17 3 05 05 05 05 05 05 02 02 02 02 02 02 E 13 16 3 04 04 04 04 04 04 GND GND GND GND GND GND c 14 15 3 03 03 03 03 03 03 Figure I: (a) EPROM prograrnrning-pin functions by EPROM type, (b) The great EPROM pin-out maze, illustrating the configuration of those EPROMs the CCSP is designed to handle. 106 BYTE • OCTOBER 1986 CIRCUIT CELLAR supply power, address, or program- ming pulses. Figure la illustrates the differences in detail. In inexpensive programmers, con- figuration jumpers are frequently used to select the specific wiring con- figuration for different EPROM types. Wire jumpers rather than semicon- ductor switches are used because of the high currents involved. T£ke pin 26 (pin 24 on 24-pin EPROMs) with either a 2732 or 27128 installed, for exam- ple. In both cases, the voltage level is 5 V. On a 27128 it is a TTL AI3 ad- dress line; on a 2732 it is a 1 50-milli- ampere V cc power line. Similarly, pin 22 (all pin numbers are referenced to a 28-pin layout) has to be set at V, 5 V, 12.5 V, 21 V, or 2 5 V at currents ranging from 400 microamperes to 50 mA, depending upon the EPROM. Fortunately, only five of the seven configuration pins require elaborate voltage and current control. Rather than use mechanical jumpers, 1 de- signed a voltage-control circuit that could be preset to the voltage limits of the desired EPROM type and easi- ly pass high current when required. Figure 2 illustrates this basic circuit that is duplicated for each of the five pins (pins 28, 26, 1. 22, and 23). The level shifter uses an LM31 7 volt- age regulator as a programmable voltage controller. The basic LM3 1 7 output voltage is set by two resistors: RI between the adjustment pin and ground and R2 between the adjust- ment pin and the output. As the for- mula shows, with RI=665 ohms and R2 = 221 ohms, the output is 5.0 V. In this configuration, various RI resistors can be connected from the adjustment pin to ground through open-col'ector 7407 drivers. These were used since they operate at up to 30 V (don't substitute a 7417). The four drivers from top to bottom set 5 V, 12.5 V, 21 V, and 25 V, respective- ly (not all sections are required for each EPROM pin). Their inputs are fed by a parallel output port. Normally, the regulated output of an LM317 is 1.2 V to 32 V. An addi- tional two-transistor control circuit is added to allow the output to go to V on command. Rather than provid- ing a resistance path to ground, how- ever, this is accomplished by apply- ing a negative 1.2 V to the adjustment pin. Because there is no way to know how many of the control circuits will be set to V at any one time or if the 7407 drivers are enabled concurrent- ly, the -1.4-V bias source is itself a regulated supply. The CCSP level-shifter circuit can simulate a variety of programmable conditions. For example, by setting the 7407 driver that limits the output to 5 V and pulsing the 0-V enable line we have a TTL-level PGM, OE, or CE control line. (In the tests I conducted, the circuit easily responded to control input changes of 20 kilohertz with lit- tle overshoot on the output. At those speeds, however, the output filter ca- pacitor should be small.) Since the cir- cuit is also capable of supplying 500 mA at 5 V, it is also appropriate to use this same circuit to supply and con- trol V cc . The heart of the CCSP is found in the analog switching system and the management of the seven control lines in figure la. While I haven't ex- I designed a circuit that could be preset to the voltage limits of the desired EPROM. plained yet how these level shifters are individually controlled, it still seems appropriate to show how they are ultimately configured. Figure 3a demonstrates how they are con- nected to the Z1F socket (zero inser- tion force programming socket), and figure 3b outlines their power source connections. 8-bit Microcomputer Intelligence As 1 mentioned earlier, the CCSP's in- telligence is provided by an Intel 8052AH microcomputer. BAS1C-52 is particularly suited for this application, {continued) h30V u LM317 I A 7r^ 1C V F 35V rft -^ 0V, 5V, 12.5V, 21V, 25V -< 5V ENABLE -< 12.5V ENABLE -< 21V ENABLE -< 25V ENABLE -< 0V ENABLE R 1X R 2 Vout=VrefU+itM + «ADJ Rix 1.25 (l + -^-)+.00005 R 1X R 2 Figure 2: typical programmable voltage-control circuit for EPROM pins 28, 26, 1, 22, and 23. OCTOBER 1986 -BYTE 107 CIRCUIT CELLAR Three control lines— RD, WR, and PSEN— are gated to allow 64K bytes of combined program and data memory. providing IF. . THEN. FOR. . .NEXT DO. . .WHILE/UNTIL ONTIME, and CALL statements as well as a broad repertoire of 8051 assembly language instructions. Calculations can be han- dled in integer or floating-point math. The 8052 AH contains an 8K-byte BASIC interpreter in ROM, 256 bytes of RAM, three 16-bit counter/timers, six interrupts, and 32 I/O lines that are redefined as a 16-bit address and an 8-bit data bus. A minimum of I K byte of RAM is required for BASIC- 5 2 to function, and any RAM must be located starting at 0000 hexadecimal. (I won't go into great detail on this computer since it closely resembles the BCC-52 presented in August 1985.) The microcomputer section of the CCSP is outlined in figure 4. Three cont rol line s-RD (pin 1 7), WR (pin 16), and PSEN (pin 29)-are gated to allow 64K bytes of combined pro- gram and data memory. The three most significant address lines (AI3- AI5) are connected to a 74LSI38 decoder chip, IC4, which separates the addressable range into eight 8K- byte memory segments, each with its own chip select (Y0-Y7). The four most significant chip selects are con- nected to 8K-byte 6264 static RAMs, ICs 7-10. This area is the RAM buffer for reading or writing EPROMs. IC6, addressed at 0000 hexadecimal, must be another 6264 RAM for BASIC-52 to function. ICI I (2000-3FFF hexa- decimal) contains the programmer software and is intended for either a 2764 or 27128. All together, 56K bytes of memory are defined on the CCSP if you use five 6264 RAMs (as ICs 6-10) and a 27128 EPROM in ICI I. To use the pro- grammer, you need only the one RAM chip installed in IC6 (such a limited buffer area will require many passes to write or copy any large (a) (IC13-PB0) (IC13-PB1) (IC13-PB2) (IC12-PB7) +30V +12V 5V ENABLE 12.5V ENABLE 21V ENABLE A15 V PP /A15 (IC12- (IC12- (IC12 (IC12- (IC12 (IC12 (IC12 (IC12 (IC12 (IC12 (IC12 (IC12 PB4) •PA7) -PA6) PA5) -PA 4) -PA3) -PA2) -PA1) -PAO) -PCO) -PCI) PC2) A12 A6 A5 A4 A3 A2 Al A0 DO Dl AT D2 GND PIN #1 LEVEL SHIFTER 28-PIN ZIF SOCKET 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Vcc + 12V PGM/A14 VCC /A 13 A8 {IC12- ~ — (IC12 AH/Vpp PB0) ■PB1) +30V OE/Vpp A10 CE _ (IC12-PB2) D5 D4 D3 (IC12 ( IC12 (IC12 (IC12 (IC12 PC7) PC6) PC5) -PC4) -PC3) . PIN #28 LEVEL SHIFTER 5V/6V ENABLE POWER INH PIN #26 LEVEL SHIFTER A13 2 PGM 1C19 74LS51 <^<3 4 A14 (IC13-PB3) (IC13-PA3) (IC12-PB5) (IC13-PA2) (IC13-PB6) (IC12-PB6) 5V ENABLE LOs PGM (IC13-PA0) (IC13-PB7) (IC13-PA2) Figure 3: (a) Block diagram showing the connections to the ZIF socket. Note the level-shifter circuitry connections for those pins that require programming voltages or that differ across EPROM types. 108 BYTE • OCTOBER 1986 CIRCUIT CELLAR EPROM). The memory cannot be ex- panded since the rest of the address space is decoded as I/O. The address range of 6000-7FFF hexadecimal is divided into two I/O strobes at 6000 and 7000 through ICI 7. [Editor's note: For the remainder of the article, all addresses will be in hexadecimal] r IWo 82 55A-5 peripheral interface adapters providing three 8-bit I/O parallel ports each are controlled by a strobe line. The three I/O ports- labeled A, B, and C— and a write-only mode-configuration port on each 82 5 5 occupy four consecutive ad- dresses at 6000-6003 (ICI 2) and 7000-7003 (ICI 3), respectively. The ZIF socket and level-shifting circuitry outlined in figure 2 are connected to 4 1 of these parallel I/O bits. The lines attached to ICI 2 (the control PIA) are used primarily for presetting the level shifters and providing the program- ming pulses. ICI 3 (the address and data PIA) supplies the address and data bus lines to the EPROM. Figure 5 details the configuration and con- nection of the level shifters and power distribution. The CCSP communicates with a ter- minal or host computer through an on-board serial port. The port's data rate is hard-coded in the program ROM and is preset at 1200 bits per second, but you can reprogram it to any standard value between 300 and 19,200 bps. (The 8052 AH chip has the capability for automatic data-rate selection on the console port. Be- cause the CCSP has both a local and a remote operating capability trig- gered by the GET command, the Power supplies with the required output are readily available, so I excluded an on-board supply to keep costs lower. automatic data rate cannot be used.) MCI 488 and MC1489 drivers/re- ceivers (ICs 14 and 15) convert the 8052's serial I/O line TTL logic levels to RS-232. [continued] (b) INPUT POWER + 12V @ 2 00 mA + 5V • @ 800mA -12V © 30 mA (b) CCSP power-distribution block diagram. ZIF CONNECTION/FUNCTION AND VOLTAGE RANGE PIN #28 LEVEL SHIFTER +12 V TO ► _ RS-232C PIN #26 LEVEL SHIFTER f5V TO ETC. +5V TO +30V DC-TO-DC CONVERTER PIN #1 LEVEL SHIFTER ( PIN #22 LEVEL SHIFTER > 1 o -1.4V REGULATOR PIN #23 LEVEL SHIFTER -12V TO , RS-232C ZIF PIN #28 5V/6V/0V V C C ZIF PIN #26 V c 5V/0V ■ /A13 ZIF PIN#1 5V/ 12.5V/21V/0V V PP /A15 ZIF PIN #22 OE/Vpp 5V/12.5V/21V/25V/0V ZIF PIN #23 5V/ 25V/0V All/Vpp OCTOBER 1986 -BYTE 109 Figure 4: Circuit diagram of the CCSP's microcomputer section. 110 BYTE • OCTOBER 1986 CIRCUIT CELLAR Power for the CCSP is provided by an external supply that must deliver + 12 V at 200 mA, +5 V at 800 mA, and -5 V to -12 V at 30 mA. Power supplies with these outputs are read- ily available on the surplus market, so I excluded an on-board supply to keep costs lower. In fact, a perfect unit is the Coleco computer power supply available from Radio Shack for $4.95 (part #277-1022). Three V pp voltages must be con- tended with: 12.5 V, 21V, and 2 5 V. All are derived from the +30-V out- put of the DC-to-DC converter circuit shown in figure 5. IC24 is a 78S40 switching regulator configured as a voltage multiplier. This circuit is capable of producing 30 V at 50 mA from a 5-V input. (For more informa- tion on this regulator and this specific circuit, see my November 1981 arti- cle, "Switching Power Supplies: An Introduction.") The user entry/display interface is shown in figure 6. It consists of a two- button entry panel through which you operate the programmer in local mode, a local/remote LED indicator, EPROM power-on indicator, and a seven-segment display through which the computer displays EPROM type and errors. To save I/O bits, I used a somewhat unorthodox display driver rather than the usual parallel port and seven-segment decoder configura- tion. The seven-segment LED is at- tached to an 8-bit shift register that has each output connected to drive an individual segment and the deci- mal point. To display a character, the seven-segment information is ex- tracted from a memory-resident table and quickly shifted into the shift reg- ister. Ordinarily, I wouldn't use such a software-intensive approach, but I didn't have to write the software. Programmer Software The CCSP is controlled by a program that is a combination of BASIC and 8051 assembly language. The BASIC-52 program provides all ini- tialization and control functions, in- cluding local mode support and menu processing in the remote mode. The assembly language routines are used only where speed is critical, as in reading, comparing, verifying erasure, and programming EPROMs. In addi- tion, the Intel hexadecimal file upload and download routines are written in (continued) + 12Vo- +12VDC I m L LM317 PIN #28 825ft v 1 o /fe Z 2N2222 NEGATIVE BIAS SOURCE REGULATOR -12V o- LM337 T , ^pO-22 M F )> . -1.4VDC £ 120ft |l5ft /77 + 221ft - 'C20 1% 3480ft 7407 ■VVV— — -^C U -^ ZIF PIN #28 X 1/iF 5V ENABLE -< UC13-PB3) 9470 ft 2N2907 INHIBIT -<(IC13-PA3) I I O PIN #26 I LM317 * -m ^ ZlF p| N #26 1- ' > 221ft •-tn 1 ^ F A > 1% Ay 1 2 N2222 /77 p a Q)rQr 5vow/off < ,,cl2 " pB5, ~* ' 4.7K X i I lo PIN # 1 LM317 l>22lft 1% 665ft J 7407 He 21 -VW 1960ft I 3480ft ^SJ 1% k ^ 6 !^ -^ ZIF PIN #1 0.01/*F 5V ENABLE <(|C13 , pB0) -( (IC13-PB1) 12.5VENABLE J^ 2N2222 Oz I I \^TX 2N2907 — m — va — I 4.7K n* <tH MILLER 5506 OR 5507 30VDC k 35V ALL RESISTORS ARE 1/4 WATT 5% UNLESS OTHERWISE NOTED. LM317 \ PIN #22 221ft n /lC21 !<& 665ft / 7407 1% :Ti ' + J_ 665ft / 7407 50ft / ^ \ flO^Ill 1 ^ ZIF PIN #22 7jn;0.Q1/*F FINABLE <(lcl3 _ pC0) I 3480ft | 1% V JVSAr Ji!lSfltL< ( ici3-Pcii -ii< - +5V | 4.7K< (IC13-PA5) >! tu DATA QA QB QC QD QE QF QG QH IC22 74LS164 1 330 ft 3 TYP(8) 14 vw 13 O u. IC23 MAN74A (IC13-PC5) >- (IC13-PA6) >- (IC13-PA7) >- (IC13-PC6) >- LED1 Tl L220 "LOCAL/REMOTE" ^ ■&- 220ft + 5V +5V 220ft -vw LED2 RED/GREEN LED 220ft ■vw ~5V S4.7K PB1 GREEN = POWER OFF REMOVE/INSTALL EPROM RED = PROGRAMMER PWR ON DO NOT REMOVE /INSTALL EPROM (IC13-PC7) >- PB2 "START /NEXT 1 ' "TYPE ELECT" /77 Figure 6: The CCSP's entry/display circuit. OCTOBER 1986 -BYTE 113 CIRCUIT CELLAR All menus displayed on the terminal are generated by the CCSR A terminal-emulation program is the only software necessary to use this programmer. ASCII terminal. (See photo 2.) The data rate of the terminal must be hard-coded because the 8052 cannot automatically start the BASIC-52 pro- gram unless the data rate is defined. Using the automatic data-rate feature causes the 8052 to wait for a "space" character from the serial port before executing any program stored in it; this would eliminate the local mode of the CCSR The data rate is set at 1200 bps, but you can change it to any standard value by reprogramming the system ROM with the default data- rate byte changed (details on this pro- cedure are included with the soft- ware). All the menus displayed on the screen of the terminal or computer are generated by the CCSR No soft- ware other than a terminal-emulation program (if connected to a computer rather than a real terminal) is neces- sary to use this programmer. The remote mode menu provides the fol- lowing options: • read, compare, program, and verify EPROM • display and change RAM buffer contents • download and upload Intel hexa- decimal files • set EPROM type • set effective starting address of the RAM buffer The menu screens contain enough information to guide you through the use of most of these functions. Other pertinent information on the various options is given below. Read, compare, program, and verify EPROM all depend on the RAM buf- fer, and they usually use the effective starting address and the length of the RAM buffer to determine the area of the EPROM that is being worked with. Think of the RAM buffer as a window into the contents of the EPROM. If the RAM buffer is not large enough to show you the whole EPROM, you can move it around by changing its effec- tive starting address. Ljet's use an example. The EPROM type is a 27 512, which is 64K bytes, and the RAM buffer is 16 K bytes. It should be pretty obvious that you can't get the whole 27512 into the RAM buffer at the same time. In this case, you would set the starting ad- dress of the RAM buffer to 0000 to work with the first quarter of the EPROM and then set it to 4000 to work with the second quarter, 8000 for the third, and C000 for the last. The READ, COMPARE, and PRO- ( RESET /P0WEF M ALLOCATE STRING AND TABLE SPACE INITIALIZE STRING AND TABLE ENTRIES ■i.f: RESET HARDWARE AS IF 2716 EPROM SIZE RAM BUFFER MEMORY FLASH E-0 NO MEMORY AVAILABLE SET LED TO EPROM TYPE 1. 2716 CHART 2-A ENTER REMOTE MODE ■•! • - ENTER LOCAL MODE Figure 7a: Flowchart I of the CCSP's overall logic flow, showing the power-up and reset routines. 114 BYTE • OCTOBER 1986 CIRCUIT CELLAR GRAM commands would use the starting address of the RAM buffer to see where to read data from or write data to the EPROM. The greatest length of the transferred data would be the size of the RAM buffer or the remaining number of bytes in the EPROM, whichever was smaller. Even though the VERIFY command does not care about the size of the buffer, its default start and end ad- dresses are controlled as described above. This is because VERIFY gen- erally precedes a programming cycle (you use VERIFY to confirm that the EPROM is properly erased), and the RAM buffer addressing controls pro- gramming default start and end ad- dresses. The following functions— display and change RAM buffer contents and download/upload Intel hexadecimal files— are also tied into the RAM buf- fer. Since the RAM buffer is supposed to mirror the equivalent area of the EPROM, displays, changes, and up- loads/downloads must be addressed to the RAM buffer, just as they would be in the real EPROM. This means that the software will reject addresses outside the range of the current RAM buffer area, which is especially impor- tant when doing uploads and down- loads. These loads must be broken up to fit into the current RAM buffer area [continued) WRITE MAIN SELECTION MENU THIS IS REMOTE MODE, VIA A TERMINAL PUT OUT CIRCUIT CELLAR MSG Figure 7b: Flowchart 2, logic flow for the remote mode. OCTOBER 1986 -BYTE 115 CIRCUIT CELLAR Table I: The CCSP's EPROM selection number and corresponding EPROM types. Note that this list is of generic EPROM types . and other manufacturer designations should be cross-referenced to it. Also, since CMOS programming cycles are equivalent to those in standard EPROMs, separate 21Cxxx designations are not included. Number EPROM Type Number EPROM Type 2716 25 V 5 27128 21 V 1 2732 25 V 6 27128A 12.5 V 2 2732A 21 V 7 27256 12.5 V 3 2764 21 V 8 27512 12.5 V 4 2764A 12.5 V THIS IS LOCAL MODE. VIA BUTTONS SET LOCAL LED FLASH L-C, LOAD THE COPY START /\ NO NEXT PRESS „ STEP TO NEXT EPROM TYPE RAM BUFFER START = PROGRAM RAM BUFFER INTO EPROM SET HARDWARE FOR SELECTED EPROM TYPE SET LED TO SELECTED EPROM #. FLASH L-O. LOAD THE ORIGINAL CALC. NEW RAM BUFFER START ADDRESS SET LED TO CURRENT EPROM #. READ EPROM INTO BUFFER Figure 7c: Flowchart 3, logic flow for the local mode. address range, 'frying to go outside the range will abort the display/ change/load processes. The remaining two functions— set EPROM type and set RAM buffer starting address— let you deal with various EPROM types and manipulate the starting address of the RAM buf- fer. Setting the RAM buffer address lets you change the location of the window into the EPROM. This should be necessary only if the size of the EPROM exceeds the size of the RAM buffer. Otherwise, there is no reason to change the starting address from its default value of 0000. Under the Covers In order to handle the various com- binations of sizes, programming volt- ages, and control lines used with dif- ferent EPROM types, the software in- corporates control tables. Four such tables are used in the CCSP: • system global table G(x) • LED character table L(x) • EPROM string table $[x) • EPROM data table E(x) System Global Table The system global table contains infor- mation about current values for critical system information. The table's entries are set up as is shown in table 2. The values for these items change based on the type of EPROM you are using, how much contiguous memory is at address 8000 (or the 4K bytes stolen from system RAM), and the last bytes written to the 82 5 5s. LED Character Table The seven-segment LED display is controlled by a serial-to-parallel shift register. In order to create a character in the LED, the bits for the various segments must be shifted out in the correct order. This table contains the LED code byte needed to create the characters that can be displayed (see table 3). EPROM String Table BASIC-52 does not allow the mixing of text and numeric data in the same table, so the ${x) string table function is used to store this information. This 116 BYTE • OCTOBER 1986 CIRCUIT CELLAR table contains the EPROM designator and the programming voltage used with that type of EPROM. Actually the programming voltage indicated in the table is only a reminder. You have to set the correct bits in the EPROM data table to ensure that the programmer uses the proper voltage. EPROM Data Table The EPROM data table contains all the information the system requires to work with the different EPROM types. The items in each record of the EPROM data table are shown in table 4. Listing 1 illustrates how this is handled in BASIC. This data is main- tained for the use of both the BASIC and assembly language routines. BASIC passes data from the EPROM data table to the assembly language routines via the free registers of the 8052 device. The Assembly Language Routines The CCSP software is a hybrid of BASIC and assembly language. Be- sides reading and verifying, the EPROM programming pulses are ac- curately timed in assembly language routines. The derivation of the tim-. ing's accuracy is given in table 5. In Conclusion At first look, the CCSP appears to be considerably more complicated than my programmer of 18 months ago. I think at this point I can change my new description to more accurately state that "this programmer is a serial- port programmer that has the speed of lightning, the intelligence of the mightiest computer (on-board), and is far too functional to be used as a doorstop between uses." In actuality, only the explanation is more involved. With microcomputer intelligence, the CCSP achieves perfor- mance levels approaching kilobuck commercial units yet is flexible enough to be adapted to the next V pp change when it happens. I'm quite satisfied with my two-week miracle, but 1 still have to contend with a potential horde of builders. To make amends for my past indiscretion, [continued) Tkble 2: Contents of the system global table. Index Use Type number of the current EPROM. 1 Amount of RAM buffer available in 256-byte increments. increments. 2 Current starting address of RAM buffer: 3 Number of items in EPROM table entry. 4 Reserved. 5,6,7 Value of the last data byte written to IC12 address/data PIA (3 bytes, one for each port of the 8255). 8,9,10 Value of the last data byte written to IC13 control PIA. 11 Number of EPROM types in the EPROM string and data tables. Table 3: Contents of the LED character table. Index Use 0-9 Characters 0-9 (no decimal point) 10-15 Characters A-F (no decimal point) 16-25 Characters 0-9 (decimal point) 26-31 Characters A-F (decimal point) 32 Blanks LED 33 Character H 34 Character L 35 Character P 36 Character U CIRCUIT CELLAR SERIAL EPROH PROGRAMMER COPYRIGHT 1986, CIRCUIT CELLAR INC. PLEASE CHOOSE : 1 - READ EPROM DATA INTO MEMORY 2 - COMPARE RAM MEMORY BUFFER DATA TO EPROM i 3 - PROGRAM RAM MEMORY BUFFER DATA INTO EPRQM 4 - VERIFY EPROM IS ERASED 5 - DISPLAY (DUMP) RAM MEMORY BUFFER 6 - CHANGE RAM MEMORY BUFFER CONTENTS 7 - DOHNLOAP INTEL HEX FILE FROM TERMINAL 8 - UPLOAD INTEL HEX FILE TO TERMINAL 9 - SET EPROM TYPE 10 - SET RAM MEMORY BUFFER STARTING ADDRESS CURRENT SETTINGS EPROM TYPE 2716 25V SIZE 080BH BYTES RAM BUFFER STARTING ADDRESS B088H , WITH 8192 BYTES AVAILABLE ENTER YOUR CHOICE s ?l Photo 2: typical menu display presented when operating the serial EPROM programmer through a serial terminal or computer running in terminal-emulation mode. OCTOBER 1986 -BYTE 117 Inquiry 260 Try It. Then Buy It. PC-Write. A fast, full-featured word processing package for the unbelievable price of $10. Complete. You get a manual on disk, mail merge, split screen, keyboard macros, on-screen formatting, full printer support, and more. Try PC-Write tor $10. Then register for $75 to get: • latest diskette • printed manual • two updates • phone support • newsletter Registration supports our "shareware" concept that keeps our prices low, and allows our development of PC-Write enhancements. Shareware means you can get PC-Write from a friend or user group to try, and give away copies yourself. Then register if you like it. No risk! ^ r/i Byte Oct 1986 Soon Version 2.7 with built-in spelling checker, checks spelling as you type or afterward, guesses correct word. New manual, LaserJet support. New 2.7 registration price $89. Order PC-Write Today. Satisfaction Guaranteed. (206) 282-0452 219 First N. #224y Seattle, WA 98109 CIRCUIT CELLAR Table 4: Contents of the EPROM data table. Index Use Number of the EPROM. 1 Size of the EPROM in 256-byte increments. 2 The pin V cc is applied to, referenced to a 28-pin socket. 3,4,5 The initialization values for IC13 control PIA's ports A, B, and C. 6,7 The programming mode values for IC13's ports A and B. 8 Logic true value of the programming pin (CE and PGM). 9 Normal mode programming pulse width in milliseconds. 10 Fast mode programming pulse in milliseconds (0 if no fast programming allowed). 11 Maximum number of fast programming pulses before forced overprogram pulse occurs. 12 Overprogram pulse multiplication factor. Table 5: Derivation of the timing for the CCSP's 1-ms timing routine. Frequency Clock Periods Label Instruction of Execution Used PPLOOP EQU $ PUSH B CALL ONEMS POP B DJNZ B.PPLOOP RET A C C C C O 24 24 24 24 24 ONEMS EQU$ MOV B,#MSDLAY A C 24 MSLOOP EQU $ NOP NOP DJNZ B.MSLOOP RET A L L L C 12 12 24 24 MSDU\Y EQU 227 END A A Frequency codes: A— Assembler only, not executed C— Executed once per 1-ms count O— Executed only once per entry to subroutine L— Executed in each loop of the 1-ms routine Timing Calculations: 1MS=11059.2 clock periods (clock is 11059200 Hz) 11059.2 = 24 + (24+24+24+24+24+24) + N(12+12 + 24) 11059.2 = 168 + (N x 48) (11059.2 - 168J/48 = N N = 226.9 (round to 227) Error for 1- ms pulse is 0.1 x 48 x (1/11059200) = 0.000443 ms Cumulative error for 100-ms pulse is: 1105920-24-14400 4800 = 227.395 (use 227) 0.395 x 48 x (1/11059200) = 0.00171 ms 118 BYTE • OCTOBER 1986 CIRCUIT CELLAR Listing 1: The BASIC- 5 2 code to initialize the EPROM data table. 14170 14180 14190 14200 14210 14220 14230 14240 14250 14255 14260 14265 14270 14280 14281 14283 14284 14285 14286 14287 14288 14289 14290 14291 14295 REM REM INITIALIZE EPROM DATA TABLE REM FOR X=0 TO A: READ E(X):NEXT X REM TYPE SIZE PWR 7XPA 7XPB 7XPC 7PCP 7PBP PLV NPL FP FXP FACTR DATA 2716 I 008H,026 I 0BBH I 061H I 001H I 008H I 000H I 001 I 050 I 000 I 000 I 000 DATA 2732 , 01 0H , 026 , 0BFH, 05 1H, 001 ^008^000^000 ,050 ,000 ,000 ,000 DATA 2732,010H,026,0BFH,051H,001H,004H,000H,000,050,000,000,000 DATA 2764,020H,028,0BFH,014H,001H,000H,000H,000,050,001,025,003 DATA 2764,020H,028,0BBH,012H,001H,000H,000H,000,050,001,025,003 DATA 27128,040H,028,0BBH,014H,001H,000H,000H,000,050,001,015,004 DATA 27128,040H,028,0BBH,012H,001H,000H,000H,000,050,001,015,004 DATA 27256 , 080H , 028 , 0BBH , 052H , 00 1 H , 000H , 000H , 000 , 050 , 00 1 , 025 , 003 DATA 27512,0100H,028,0BBH,051H,002H,000H,000H,000,050,001,025,003 REM SET UP EPROM NAME TABLE $(1)="2716 25V u 25V " 21V " 21V " 12.5V" 21V " 12.5V" 12.5V" 12.5V" 2732 2732A 2764 ill:: $3)=" $(4p $(5)="2764A $(6)="27128 $(7)="27128A $(8)="27256 $(9)="27512 RETURN there is indeed a printed circuit board and kit for this programmer. For those of you with the components at hand and a desire for wire-wrapper's cramp, the finished code for the programmer is available on a 27128 EPROM or is downloadable from the Circuit Cellar BBS and BYTEnet Listings. The phone number for BYTEnet Listings is (61 7) 861-9764. This file contains the 12K bytes of executable code that should be put into a 27128 EPROM and in- stalled in ICI1. Circuit Cellar Feedback This month's feedback begins on page 58. Next Month Build the GTI80 professional graphic adapter for the SB180. ■ Special thanks to Bill Curlew for his software expertise. There is an on-line Circuit Cellar bulletin board system that supports past and pres- ent projects. You are invited to call and ex- change ideas and comments with other Cir- cuit Cellar supporters. The 300/1200/2400-bps BBS is on-line 24 hours a day at (203) 871-1988. Editor's note: Steve often refers to previous Circuit Cellar articles. Most of these past ar- ticles are available in book form from BYTE Books, McGraw-Hill Book Company, P.O. Box 400, Hightstown, NJ 082 50. Ciarcia's Circuit Cellar, Volume I covers articles in BYTE from September 1977 through November 1978. Volume 11 covers December 1978 through June 1980. Volume 111 covers July 1980 through December J 981. Volume IV covers January J982 through June 1983. Volume V covers July 1983 through December 1984. The following items are available from CCI P.O. Box 428 Tolland. CT 06084 1. Serial EPROM programmer experimenter's kit. Includes PC board, 8052AH-BASIC chip. 11.05-MHz crystal, operating system software on preprogrammed 27128 EPROM, manual, and detailed parts list $89 2. Complete serial EPROM programmer kit. Includes all board-mounted components, programmed 27128 EPROM, 80 52 AH micro- processor, and manual. Less case and power supply $199 3. Preprogrammed 27128 EPROM contain- ing serial EPROM programmer system software $22 The serial EPROM programmer is currently available only in kit form. It is available assembled and tested only in volume OEM quantities (telex: 643331). Price and delivery information available on request. All payments should be made in U.S. dollars by check, money order, MasterCard, or Visa. Surface delivery (U.S. and Canada only): add $5 for U.S., $10 for Canada. For delivery to Europe via U.S. airmail, add $20. Three-day air freight delivery: add $8 for U.S. (UPS Blue), $2 5 for Canada (Purolator over- night), $45 for Europe (Federal Express), or $60 (Federal Express) for Asia and elsewhere in the world. Shipping costs are the same for one or two units. Connecticut residents please include 7.5 percent sales tax. Most of the individual components are available from JDR Microdevices, 1224 South Bascom Ave.. San Jose, CA 95128, (800) 538-5000. To be included on the Circuit Cellar mail- ing list and receive periodic project up- dates and support materials, please cir- cle 100 on the Reader Service inquiry card at the back of the magazine. OCTOBER 1986 -BYTE 119 Dear Customer, Escort Refuses! From: Drew Kaplan Escort turned down our $10,000 head to head challenge described below. Escort says that Maxon's Radar Detector is "primitive", "bottom-end" and "an off-shore produced electronics 'gadget' ". I don't know about you, but to me these words conjure up visions of a cheap toy being produced off in the middle of a rice paddy somewhere in the middle of nowhere. Escort, on the other hand, which is made in the U.S., exudes a high cost, quality image. Don't you just bet that it costs a fortune to build Escort and Pass- port (the smaller version)? Well, we are going to challenge Es- cort AGAIN to a head to head 'duel to the death' on Maxon's electronic merits alone. And, we plan to win. But first there are a few things you should know. Cincinnati Microwave, the company that makes Escort & Passport, is a public company. And being public, they have to file financial information with the SEC. The public information they have pub- lished appears to show that in the year that ended Dec. 1 985, Cincinnati Micro- wave with "substantially all of its revenues and profits derived from the sale of radar warning receivers" made an operating profit of about $45,81 0,000 on sales of about $1 1 2,605,000. Wow! The $45 million profit is after all en- gineering, sellingand General &Admin- istrative expenses, but before taxes. Their cost of sales (goods) was only about $40,027,000. So, if you divide $40,027,000 by $1 1 2,605,000 it doesn't take a genius to figure out that cost of goods represents an average of only about 35.5% of selling price. Wow! I only bring up their profit to illustrate that a high retail price doesn't always WAS $10,000 mean a high manufacturing cost. There's no question in my mind that Maxon can manufacture cheaper in an off- shore 'rice paddy', but if you pay $245 for Escort or $295 for Passport, it should be based on a head to head test with Maxon, not on perceived retail price points. FORGET PRICE COMPLETELY So, forget that Escort costs $245, Passport $295, and Maxon $99 90 . Let's judge them on their own merits. And, let's look at just what Escort itself has to say about our challenge. (Please read DAK's and Escort's letters to the right.) Escort says that, "Regardless of the results, such an event lends credibility to the challenger." Well, they are abso- lutely correct. That's why I put up the $1 0,000 in the first place. Fair is fair. Plus, there are several radar detectors that claim to have won this or that rank- ing in "Independent Magazine Reviews." So, I'm ignoring any reviews and asking for a one on one, head to head test. But look at what Escort says in their letter: "Range is the easiest detector quality to measure, but by no means the only important quality." Wow, I thought range was really important?? Escort re- fers to "goodness" being determined by things not so easily measured. Well frankly, I don't know how to mea- sure "goodness". Escort, in my opinion, is a top notch company. They make a superb product I'd be proud to sell. And, they have great customer service. DAK has great toll free technical and regular customer service. But, I'd be the first to admit that with over $45 million in profits, Escort can probably run cir- cles around us in advertising, and may- be even in service. But, I don't think they can beat Maxon's Radar Detector. HOW GOOD IS GOOD? When Escort was introduced, it was revolutionary. But, you can only go so far. And in my opinion (someone else might object), radar detecting has gone about as far as itcan go. So, while Escort has made improvements, it's Maxon who has moved mountains to catch up. DAK UPs THE ANTE TO $20,000 Now I realize that next to $45 million dollars, $20,000 isn't much, but it's a lot to DAK. And, I'll even go one step farther. I'll print the exact results of the test, win, lose, draw, or no-show in the first catalog I publish after January 1 , 1 987. Escort, the ball is now in your court. Below is the"NEW" version of my chal- lengewiththetime and amount changed. I don't know what else DAK or Maxon can do to prove that the RD-1 Superheter- odyne Detector should be judged on its head to head performance against Escort, not on its selling price! A $ tO,000 Challenge To Escort Let's cut through the Radar Detector Glut. We challenge Escort to a one on one Distance and Falsing 'duel to the death' on the highway of their choice. If they win, the $20,000 (was $10,000) check pictured below is theirs. By Drew Kaplan We've put up our $20,000 (was 10). We challenge Escortto take on Maxon's new Dual Superheterodyne RD-1 $99 90 radar detector on the road of their choice in a one on one conflict. Even Escort says that everyone com- pares themselves to Escort, and they're right. They were the first in 1 978 to use superheterodyne circuits and they've got a virtual stranglehold on the magazine test reports. But, the real question today is: 1 ) How manyfeet of sensing difference, if any, is there between this top of the line Maxon Detector and Escort's? And 2) Which unit is more accurate at interpreting real radar versus false signals? So Escort, you pick the road (contin- ental U.S. please). You pick the equip- ment to create the false signals. And finally, you pick the radar gun. Maxon and DAK will come to your highway with engineers and equipment to verify the results. And oh yes, we'll have the $20,000 check (pictured) to hand over if you beat us by more than 1 feet in either X or K band detection. BOB SAYS MAXON IS BETTER Here's howit started. Maxon is a mam- moth electronics prime manufacturer. They actually make all types of sophis- ticated electronic products for some of thebiggest U.S. ElectronicsCompanies. (No, they don't make Escort's). Bob Thetford, the president of Maxon Systems Inc., and a friend of mine, was explaining their new RD-1 anti-falsing Dual Superheterodyne Radar detector to me. I said "You know Bob, I think Escort really has the market locked up." He said,"Ournew design can beat theirs". So, since I've never been one to be in second place, I said, "Would you bet $20,000 (10) that you can beat Escort?" And, as they say, the rest is history. By the way, Bob is about 6'9" tall, so if we can't beat Escort, we can sure scare the you know what out of them. But, Bob and his engineers are deadly serious about this 'duel'. And you can bet that our $20,000 (was $10,000) is serious. . . .Next Page Please . . .Challenge Continued We ask only the following. 1 ) The public be invited to watch. 2) Maxon's Engin- eers as well as Escort's check the radar gun and monitor the test and the results. 3) The same car be used in both tests. 4) We'd like an answerfrom Escort no later than December 31,1 986 and 60 days notice of the time and place of the conflict. And, 5) We'd like them to come with a $20,000 (was $10,000) check made out to DAK if we win. into action in just 1/4 of one second. Just imagine the sophistication of a device that can test a signal 4 times in less than 1/4 of one second. Maxon's technology is mind boggling. But, using it isn't. This long range de- tector has all the bells and whistles. It has separate audible soundsf orX and K radar signals because you've only got about 1 /3 the time to react with K band. There's a 10 step LED Bar Graph Meter to accurately show the radar signal's SCWHAT'S DUAL SUPERHETERODYNE? Ok, so far we've set up the conflict. Now let me tell you about the new dual superheterodyne technology that lets Maxon leap ahead of the pack. It's a technology that tests each sus- pected radar signal 4 separate times before it notifies you, and yet it explodes strength. And, you won't have to look at a needle in a meter. You can see the Bar Graph Meter with your peripheral vision and keep your eyes on the road and put your foot on the brake. So, just turn on the Power/Volume knob, clip ittoyourvisororputitonyour dash. Then plug in its cigarette lighter cord and you're protected. And you'll have a very high level of protection. Maxon's Dual Conversion Scanning Superheterodyne circuitry combined with its ridge guide wideband horn internal antenna, really ferrets out radar signals. By the way Escort, we'll be happy to have our test around a bend in the road or over a hill. Maxon's detector really picks up 'ambush type' radar signals. And the keyword is 'radar', not trash signals. The 4 test check system that operates in 1/4 second gives you ex- tremely high protection from signals from other detectors, intrusion systems and garage door openers. So, when the lights and X or K band sounds explode into action, take care, there's very likely police radar nearby. You'll have full volume control, and a City/Highway button reduces the less important X band reception in the city. Maxon's long range detector comes complete with a visor clip, hook and loop dash board mounting, and the power cord cigarette adaptor. It's much smaller than Escort at just 3 1 /2" Wide, 4%" deep and VA" high. It's backed by Maxon's standard limited war- ranty. Note from Drew: 1) Use of radar detectors is illegal in some states. 2) Speeding is dangerous. Use this detectorto help keepyousafewhenyou forget, not to get away with speeding. CHECK OUT RADAR YOURSELF RISK FREE Put this detector on your visor. When it sounds, look around for the police. There's a good chance you'll be saving money in fines and higher insurance rates. And, if you slow down, you may even save lives. If you aren't 100% satisfied, simply return it in its original box within 30 days for a courteous refund. To getyour Maxon, Dual Superheter- odyne, Anti-Falsing Radar Detector risk free with yourcredit card, call toll free or send your checkfor justSSS 90 ($4 P&H). Order No. 4407. CA res add tax. OK Escort, it's up to you. We've got $20,000 (10) that says you can't beat Maxon on the road. Your answer, please? Escort and Passport are registered trademarks of Cincinnati Microwave. INDUSTRIES CODE BY42 Call Toll Free For Credit Card Orders Only 24 Hours A Day 7 Days A Week 1-800-315-0800 For Toll Free Information, Call 6AM-5PM Monday-Friday PST Technical Information. . . .1-800-272-3200 Any Other Inquiries 1-800-423-2866 8200 Remmet Ave., Canoga Park, CA 91304 PROGRAMMING PROJECT SAFE STORAGE ALLOCATION by Jonathan Amsterdam How to avoid the dangers of allocating memory The term "storage al- locator" is an instructive misnomer, for the com- plexity of such a system lies not in allocating storage but in reclaiming it. If computer memories were arbitrarily large, storage allocation would be trivial. Because they aren't, the process can be complicated. I will discuss four storage allocators. The first, the basic allocator, uses standard algorithms and is quite common, appear- ing in many implementations of program- ming languages that provide storage alloca- tion, like Pascal, C, and Modula-2. The other three are all attempts to correct the prob- lems of the first. | Editor's note: The four allocators in Modula-2 source code, along with their driver pro- grams, are available on disk, and on BIX. The filenames are as follows: ALLOC.DOC (a "read- me" file). AITEST.MOD, ALLOCI.MOD, ALLOC1.DEF, A2TEST.MOD, ALLOC2.MOD, ALLOC2.DEF A3TEST.MOD, ALLOC3.MOD. ALLOC3.DEF; A4TESTMOD, ALLOC4.MOD, ALLOC4.DEF. MYTERMIN. MOD, MYTER- MIN.DEF, MACHINES.MOD, and MA- CHINES.DEF See the insert card after page 320. Listings are also available on BYTEnet. See page 4.| What Is Storage Allocation? All useful programs need storage to go about their business. A program could not accomplish much if it didn't use variables, and variables occupy space in the com- puter's memory. Many programs can get by with a fixed amount of storage, an amount determined when the program is written and compiled. Most FORTRAN programs fit into this category. Other programs need to allocate storage while they are running but can get by with a stack-based allocation scheme like that provided by many high- level programming languages— for example, a Pascal program that contains procedures with local variables. Some programs, how- ever, not only need to acquire additional storage while running but also cannot de- allocate that storage in the last-in, first-out manner demanded by a stack. Furthermore, they may require many pieces of storage of different sizes. For example, the SIMPL compiler I presented in the December 1985, January 1986, and February 1986 issues of BYTE ("A SIMPL Compiler," parts 1. 2, and 3) must allocate storage for parse trees and symbol table records. These objects must exist for long periods of time, across the execution of many procedures, and may be deallo- cated in an order different from that in {continued) \onathan Amsterdam is a graduate student at the Massachusetts Institute of Technology Artificial In- telligence laboratory. He can be reached at 1643 Cambridge St. #34, Cambridge. MA 02138. ILLUSTRATION BY BARRETT ROOT OCTOBER 1986 -BYTE 123 STORAGE ALLOCATION which they were allocated. So a stack- based scheme is inadequate. Some- thing more general is needed: a pro- gram that allows the allocation and deallocation of memory parcels of various sizes in any order. For the pur- poses of this article, such a program is called a storage allocator. The Abstract Storage Allocator A storage allocator is a program that manages a contiguous region of memory called the heap. It allocates ar- bitrarily sized, contiguous segments of the heap, called blocks, when asked to do so by other programs in need of storage. The storage allocator also allows these programs to deallocate, or free, blocks that they no longer need. To these basic facilities, I add the ability to examine and change any location inside an allocated block. If you call the minimal unit of storage a word, you can characterize a stor- age allocator in the abstract as com- prising these four operations: • allocate: takes the number of words to allocate as an argument and returns either a block of the appropri- ate size from the heap or an indica- tion that no block that size is avail- able. • free: takes a block as an argument and returns it to the heap for reuse. • getWord: takes a block and a number n as arguments and returns the nth word of the block. (By conven- tion, the block's contents are numbered from to one less than the size of the block.) • setWord: takes a block, a number n, and a word w as arguments and sets the nth word of the block to w. The Basic Allocator The first allocator organizes the heap as a linked list of available blocks called the free list. When a program requests storage, the allocator searches the list for a large enough block. If it finds one, the allocator removes the block from the list and returns a pointer to it to the request- ing program. If no available block is large enough, the allocator returns a NIL, or empty, pointer. When a pro- gram frees a previously allocated block, it is returned to the free list. This scheme, with minor variations, is used by many extant storage al- locators. For the scheme to work, each block must contain certain information. In my implementation, all blocks, whether free or allocated, contain a size field as their first word. The size is simply the number of words oc- cupied by the block, not including the size field itself. So, for example, if a block has a size of six, it actually oc- cupies seven words of memory. You can obtain the size of a block by call- ing the blockSize function, which takes a pointer to the block as its argument. When a block is allocated, all of it except the size field is available for use through the setWord and getWord procedures. When a block is not al- located, part of its space is used to hold a pointer to the next free block in the free list. (If a block is the last one in the free list, its pointer is NIL.) The number of words occupied by this pointer is the smallest allowable block size you may have; any request for a smaller block will receive one of this size. In my implementation, the minimum block size is two words because Macintosh pointers are two words long (on other microcom- puters, a pointer can fit in a single word). Hence, in my implementation, the smallest block actually occupies three words of memory: one for the size and two for the pointer. Initially, the free list contains a single block, which constitutes the entire heap. As blocks are allocated, the ini- tial free block is broken up; when allocated blocks are freed, they are added back onto the free list. When a program requests a block of storage, the allocator chooses one from the list to satisfy the request. If the block is just the right size, it is spliced out of the free list and returned to the program. However, if the block is larger than the amount of storage re- quested, it is split into two blocks: One is the requested size and is returned; the other is put on the free list. The chosen block may be only slightly larger than the request. In par- ticular, it may be small enough so that after splitting, the remaining portion is too small to form a block of its own. For instance, if a program requests 10 words and the chosen block has a size of 12, the block cannot be split, since the two words remaining are not enough to form a block. In this case, the allocator returns the entire chosen block. There are several possible strategies for choosing a block of storage. In the best-fit strategy, the allocator searches the free list from beginning to end and chooses the block whose size comes closest to the request without being too small. While this scheme re- quires searching the entire free list, it seems likely to make a good choice. However, if the chosen blocks are often slightly larger than the requests, then many small blocks are left on the free list. The allocator may then be unable to satisfy a request, not because there isn't enough storage in the heap, but because the storage is distributed among many different blocks, each of which is too small. This is called fragmentation. In an effort to reduce fragmentation, you might use the worst-fit strategy- choosing the largest block on the free list. Another strategy, called first-fit, chooses the first block on the list that is big enough to satisfy the request. And Donald Knuth has proposed a next-fit strategy, which is similar to first-fit except that on subsequent re- quests, the search for a suitable block resumes from where it left off during the prior request instead of starting again from the beginning of the free list (see reference 1). A lot of experiments have been done to see which of these methods allocates blocks most rapidly and results in the least amount of memory fragmentation. And the consensus on which one to use is that it depends. It depends on the order of allocation and deallocation, the size of the blocks allocated, and goodness knows what else. One thing's for sure, though: I. Robson has shown that for any allocation scheme that does not move blocks around in the heap to reduce fragmentation, there exists a sequence of allocations that will result in a request being made that cannot be satisfied due to fragmentation (see reference 2). Even if the sequence 124 BYTE • OCTOBER 1986 STORAGE ALLOCATION consists only of requests for one- word and two-word blocks, the allocator can fail when memory is only two- thirds full. So all the methods have the same worst-case behavior. (Moving blocks around in the heap is not feasi- ble for the basic allocator because the program allocating storage may have pointers to the blocks.) The conclusion I draw is this: Unless you have a particular application in mind and understand its allocation pattern well it doesn't much matter which strategy you choose. I have chosen first-fit for my basic allocator, since it is the easiest strategy to im- plement and has the undeniable ad- vantage that it cannot possibly take longer to allocate a block than best- fit or worst-fit. To deallocate, or free, a block, you could simply add it to the front of the free list. The speed of this process is hard to beat— two machine instruc- tions on many computers— but it has a disadvantage. If two blocks occupy- ing adjacent regions of memory have been freed, you want to merge them into a single block to reduce fragmen- tation, if you add freed blocks to the front of the free list, there is no easy way of checking for adjacency without searching the entire free list. You can do it if you incorporate more informa- tion into each block, but each word used in bookkeeping is a word denied the user. My method sacrifices time for space. I maintain the free list in order of in- creasing addresses, so that the first block on the free list has the lowest address of any free block. When a program frees a block, the allocator traverses the free list until it finds the right spot for insertion. It is easy to check for adjacency now because the only candidates are those blocks on the list immediately before and after the insertion point. Using the size fields of the blocks and their ad- dresses, it is easy to calculate if block boundaries coincide and the blocks can be merged. The algorithm for this method is summarized in the text box "Algo- rithm for the Basic Allocator" above. The scheme is simple to implement, versatile, and has a minimum of over- head. But I come to bury the basic al- Algorithm for the Basic Allocator 1 nitially: set the free list to point to a block consisting of the entire heap. allocate: takes as argument the number being freed. Let a be the block of words to allocate: returns a pointer ahead of b on the free list. to a block with at least that many Put / onto the free list between a and words if it can find one: returns NIL if b. it fails. If / and b are adjacent, merge them Begin into a single block. If there are no blocks big enough to If / and a are adjacent, merge them satisfy the request, fail. into a single block. Otherwise, choose the first block b End. big enough to satisfy the request. If the block is big enough to split. getWord: takes a pointer to a block b then and an offset n as arguments: returns split the block into two parts: c the nth word of b. starting from 0. with the requested number of Begin words and d with the re- If n < or w > size of b, then error. mainder: put d on the free list, Otherwise, add n to the address of and return c. b to index the nth word, and return Otherwise, remove b from the the word. free list and return it. End. End. setWord: takes a pointer to a block b. an offset n. and a word w as arguments. free: takes a pointer to a block / as Begin argument. If n < or n > size of b. then error. Begin Otherwise, add n to the address of Search the free list from the begin- b to index the nth word, and store ning until reaching a block b whose w in the word. address is larger than the one End. locator, not to praise it, for it has a serious flaw. The problem is the well- known dangling reference. For exam- ple, let's allocate a block and copy its pointer, newPtr := allocate(10); copiedPtr := newPtr; and then free the block by using free (newPtr). Even if the free procedure invalidates newPtr (by setting it to NIL, perhaps), copiedPtr still points to the freed block. It is possible for the program to use copiedPtr to ac- cess a deallocated block. You can avoid this by providing a bit in each block indicating whether or not it is free and by modifying getWord and setWord so that they detect accesses to a freed block and signal an error. But the real trouble occurs when the block is reallocated. Then copiedPtr can do some real damage, by chang- ing portions of a block it shouldn't be pointing to, a block that may even belong to a different application. I take this dangling reference prob- lem very seriously. Many program- mers think it is a minor nuisance that must be endured for efficiency's sake. I disagree. I expect programming lan- guages to do their utmost to protect me from myself— from the many stupid errors I am bound to commit when I program. Modern program- ming languages like Modula-2 have gone a long way in this direction, but storage allocation is still an area where they provide more than {continued) OCTOBER 1986 -BYTE 125 STORAGE ALLOCATION enough rope to hang yourself. The rest of the article examines ways to shorten the rope. The Tombstone Allocator One solution to the dangling refer- ence problem is never to reallocate a block once you have freed it. This is a little extreme, but a related solution might be worth exploring. When a block is freed return all but its first word to the free list. Put a special value in the first word so that getWord and setWord can recognize it if an il- legal access is made. I call these one- word markers tombstones. Tombstones are never freed; they are always there, ready to catch references to blocks that no longer exist. You can easily modify the basic allocator to use tombstones. When a block is freed, you put all but its first word— the one containing the block's size— on the free list. Then you set the first word to zero. When getWord and setWord are called, they check the block's size field and signal an error if it is zero. The tombstone scheme is simple to implement, but it too has a serious fragmentation problem. Each tomb- stone is an unreclaimable piece of storage in the middle of the heap. Ad- jacent freed blocks, which might have been merged by the basic allocator, can't be merged because of the inter- vening tombstones. You end up litter- ing the heap with tombstones. The Indirect Approach The dangling reference problem arises in the first place because several copies of a block's pointer may exist. You could avoid the prob- lem altogether if you could ensure that only one pointer to a block would ever exist. It's unreasonable to de- mand that pointers never be copied, and you couldn't enforce it anyway, but there is another way. When a pro- gram makes a request for a new block, the storage allocator allocates both the block and a pointer to it, called the master pointer. The al- locator then returns a pointer to the master pointer, or a handle, rather than a pointer to the block itself. Adding this extra level of indirection goes a long way toward solving the dangling reference problem. You can make as many copies of the handle as you want, but all references to the block go through the master pointer. When a block is freed, the allocator (a) (b) Block 1 Block 2 Block 3 Master pointers Block 1 Block 2 Block 3 Master pointers □ Allocated □ Free Figure 1: Compacting the heap: (a) shows the heap before compaction: (b) after compaction. adds it to the free list and sets its master pointer to a special value, say NIL. The allocator can then catch any subsequent references to that block. When the block is reallocated, a new master pointer is used. The technique is reminiscent of tombstones, but with one important difference: Master pointers need not be allocated in the middle of the heap. In my implemen- tation, I start allocating master pointers from the top of the heap, and I try to confine them to a contiguous region. Blocks, meanwhile, are al- located from the bottom. The severe fragmentation problem of tomb- stones does not arise. If this were the only benefit of dou- ble indirection, as the method is sometimes called, it would be worth implementing. However, since the storage allocator knows about all the pointers into the heap— the master pointers— it can play a couple of other useful roles as well. For one thing, the allocator can enable you to change a block's size, making it grow or shrink as you wish. To do this, the allocator allocates a new block of the desired size, copies the contents of the old block into it, and changes the master pointer to point to the new one. Any handles now reference the new block, and the original block appears to have magically changed its size. More important, the allocator can perform compaction of the heap. Because it has the only direct access to the master pointers, the allocator is free to move blocks around in the heap. In particular, it can implement the following simple algorithm: First, find the allocated block with the lowest address (easily determined by scanning the list of master pointers). Copy the contents of this block to the bottom of the heap and update its master pointer to point to the new location. Then find the second-lowest block in the heap and move it to just after the first block. Do the same for all the allocated blocks. The result is a heap free of fragmentation with the allocated blocks at the low end, the master pointers at the high end, and the middle free. Figure 1 shows before and after pictures of a compacted heap. If you want, you can compact {continued) 126 BYTE • OCTOBER 1986 Actual image on Sony CPD-1302. Look at the picture. It's got to be a Sony. 25 years have gone into the making of this picture. Every Sony advance in the quality of your TV picture has been applied to the improvement of your computer picture. That's why a Sony monitor is so clearly superior to other monitors. And that's why you can get a brighter; sharper picture for your computer the same way you'd get one for your home. Ask for a Sony Why the leading name in living rooms is about to become the leading name in offices. The monitor you see above, the CPD- 1302, is Sony's newest 13" Multiscan™ Monitor, with an actual image generated on it using an IBM® AT Its advantage is that it works with CGA f EGA and even PGA graphics cards. So, with Sony you'll not only have daz- zling high-resolution graphics, you'll have a monitor that won't become obsolete. But other Sony monitors have the same impressive .25mm Super-Fine Pitch™ SonyCPO-9000 9" High-Resolution Monitor Sony CPD-120! 12" High-Resolution Monitor Sony CPO-1310 13" Medium-Resolution Monitor Sony KV-1311CR KTCombination Computer Monitor/Receiver Sony KV-2011CR 20" Combination Computer Monitor /Receiver Sony KV-2511CR 25" Combination Computer Monitor/Receiver SonyVPH-1030QHVPH-2030Q1 100" & 200" Multiscan Video Projector Aperture Grille, giving them the highest resolution of any monitors in their class. Only Sony could give you 9 clear choices for better monitors. Only Sony could improve office images from desks, to conference rooms, to office auditoriums. Because only Sony makes color moni- tors from 9" to 25" plus Multiscan Video Projectors that display computer images on 100" and 200" screens, with astonish- ing resolution. And Sony has an answer for those of you who take your computer work home, too. We offer you monitors that are also remote-control Sony TVs. The bottom line is this: in business, everyone wants to see a brighter picture. In monitors, the brightest picture comes from Sony. To find out more, call Sony at 1-800- 222-0878 (in N.J., 1-800-222-0879). Trinitron Computer Monitors SONY THE ONE AND ONLY- 'c> 1986 Sony Corporation of America. Sony, Trinitron, Multiscan, Super-Fine Pitch and The One and Only are trademarks of Sony. IBM is a registered trademark of International 8usiness Machines Corp. Because the computer industry lacks standards. Sony does not and cannot make any warranty or representation with respect to performance of its monitors with each and every software or hardware option. Inquiry 284 OCTOBER 1986 -BYTE 127 STORAGE ALLOCATION Algorithm for the Double- Indirection Allocator I nitially: Set aside room at the top of the heap for master pointers. Set the free list to point to a block consisting of the rest of the heap. allocate: compact: resize: takes a handle h and a new size Begin Begin n as arguments. Allocate a master pointer m. getting Let / be the bottom of the heap. Begin a handle to it, k If no master While there is an allocated block Allocate a block b of size n as in the pointer can be allocated, fail. that is higher in the heap than 1: basic allocator. If none is found, do Allocate a block b as in the basic copy the lowest such block, b, to I; nothing. allocator. If none is found, com- update b's master pointer to point If a block b is found, then pact heap, and try again. If there to/; let m be the master pointer that h is still not enough room, fail. set I to the address just after b. points to: Set m to point to b and return k Set the free list to point to the re- copy the block pointed to by m End. maining free space. into the new block b: End. set m to point to b. allocate master pointer: returns a han- End. dle {a pointer to a master pointer). free: takes a handle as argument. Begin Begin getWord, setWord: as in the basic If there is room in the master pointer Let m be the master pointer that the allocator, but take a handle instead of area, allocate space for another handle points to. a pointer. master pointer, and return a Free the block that m points to as in Begin pointer to it. the basic allocator. If the master pointer that the handle Otherwise, compact the heap. Set m to NIL points to is NIL, then error. If there is now room to extend the End. Otherwise, access the block as in the master pointer area, then extend basic allocator, using the master it, allocate a master pointer, and pointer. return a pointer to it. End. If there is no room left, fail. End. the heap every time a block is freed, thereby making a free list unneces- sary. But since compaction can be ex- pensive, it is probably better to use the free-list method, saving compac- tion for the time when a storage re- quest can't be filled. The algorithm for this method is shown in the text box "Algorithm for the Double-Indirection Allocator" above. Macintosh programmers will recognize the scheme as a subset of the Macintosh memory manager. The Macintosh allocator allows reuse of master pointers, though, so it's not as safe as this one. There are two problems with my im- plementation of the double-in- direction technique. The first is im- plicit in the name: An extra indirec- tion (memory reference) must be per- formed for every access to a block. Furthermore. getWord and setWord have to check for a NIL master pointer on every access. You could do away with this check, but then an at- tempt to dereference the NIL pointer will make the program crash. If the allocator checks explicitly, it can die gracefully and provide information about the error, but even an uninfor- mative crash is better than no check at all. Another way to reduce the over- head of double indirection is to hand out pointers to the blocks themselves, rather than to master pointers, if specifically requested to do so. This feature should be used only where speed is of the utmost importance, and you should check carefully to be sure that no invalid copies of this direct pointer are created. If there is a chance that the allocator will per- form a compaction while the pointer is in a programmer's hands, then the allocator must provide a facility for locking a block in place so that it is not moved during a compaction. Pro- viding direct pointers to blocks com- promises the safety of the allocator, so I don't recommend it unless the application truly requires it. The second problem with my dou- ble-indirection scheme is more serious. You can't reclaim a master pointer; once it's allocated, it's there for good. It can't even be reused. So every new allocation decreases the heap size by the length of one pointer. The list of master pointers will march relentlessly from the top of the heap to the bottom, bringing the al- locator to a suffocating halt. The Capability-based Allocator My fourth and final allocator attempts to get around the problem of nonre- [coni'mued] 128 BYTE • OCTOBER 1986 1AKETHE McGRAW-Hlli CONCISE ENCYCLOPEDIA OF SCIENCE AND 1ECHNOLOGY YOURS ^ FOR ONLY $9.95! When you join the Library of Computer and Information Sciences. You simply agree to buy three more books— ot handsome discounts— within the next 12 months. 7,300 authored articles by the world's leading scientists Combining the accessibility of a dic- tionary with the thoroughness of a full-length encyclopedia, the McGRAW-HILL CONCISE ENCY- CLOPEDIA OF SCIENCE AND TECHNOLOGY brings the forefront of scientifi c research to your fingertips. World-renowned experts— from such acclaimed computer science institu- • a 2,000-page treatise worth $95.00 • more than 7,300 alphabetically arranged, cross-referenced articles • 1,600 illustrations and line drawings, many in two colors • a 30,000 entry index • measurements in both US and SI units • comprehensive bibliographic and data base listings • membership to the oldestond most respected computer book club tions as Carnegie-Mellon University and Burroughs Corporation— share their definitions, explanations, in- sights, and opinions on such topics as: • artificial intelligence and expert systems • computer graphics • database management • programming languages • real-time systems • simulation • software engineering • and much more, covering virtually every aspect of science and technology \bu also get • Bibliographies and Data Bases- documenting hundreds of books and journals arranged by subject category, as well as 81 of the leading scientific data base systems • Appendices— containing measure- ment systems and conversion tables; mathematical signs, symbols, and no- tations; fundamental constants; chem- ical elements listed both alphabetically and on a periodic table; semiconductor and electronic symbols; etc. • A 30,000 Entry Index— providing you with easy accessto the information you need. And all this is yours for just $9.95 when you join . So send for your copy today. The Library of Computer and Infor- mation Sciences is the oldest and larg- est book club especially designed for the computer professional. In the in- credibly fast-moving world of data processing, where up-to-date knowl- edge is essential, we make it easy for you to keep totally informed on all areas of the information sciences. Begin enjoying the club's benefits today! 4 Good Reasons to Join 1. The Finest Books. Of the hundreds of books submitted to us each year, only the very finest are selected and offered. More- over, our books are always of equal quality to publishers' editions, never economy editions. 2. Big Savings. In addition to getting the McGraw-Hill Concise Encyclopedia of Science & Technology for only $9.95 when you join, you keep saving substantially, up to 30% and occasionally even more. (For example, your total savings as a trial mem- ber—including this introductory offer- can easily be over 50%. That's like getting every other book free!) 3. Bonus Books. Also, you will immediate- ly become eligible to participate in our Bonus Book Plan, with savings of up to 65% off the publishers' prices. 4. Convenient Service. At 3-4 week inter- vals (16 times per year), you will receive the Library of Computer and Information Sciences News, describing the Main Selec- tion and Alternate Selections, together with a dated reply card. If you want the Main Selection, do nothing, and it will be sent to you automatically. If you prefer an- other selection, or no book at all, simply indicate your choice on the card and return it by the date specified. You will have at least 10 days to decide. If, because of late mail delivery of the News, you should re- ceive a book you do not want, we guarantee return postage. If reply card has been removed, please write to: The Library of Computer and Information Sciences, Dept. 7-DS3-6162, Riverside, N.J. 08075 to obtain member- ship information and an application. Byte 10/86 OCTOBER 1986 -BYTE 129 STORAGE ALLOCATION Algorithm for the Capability-based Allocator ' nitially: Set aside room at the top of the heap for master pointers. Set the free list of point to a block consisting .of the rest of the heap. Set the master pointer free list to NIL. allocate: returns a capability c. Begin Allocate a master pointer m, getting a handle h. If none is found, fail. Allocate a block b as in the basic allocator. If none is found, com- pact the heap and try again. If there is still not enough room, fail. Set m to point to b. Set c's handle to h. Set c's generation count to. m's generation count Return c. End. allocate master pointer: returns a han- dle (a pointer to a master pointer). Begin If the master pointer free list is not empty (NIL), remove the first master pointer on the list and return it. If the master pointer area has room, allocate space for another master pointer, set its generation count to zero, and return a pointer to it. Otherwise, compact the heap. If there is now room to extend the master pointer list, then extend the list, allocate a master pointer, set its generation count to zero, and return a pointer to it. If there is no room left, fail. End. compact: as in the double-indirection allocator. free: takes a capability as argument. Begin If the generation count of the capa- bility does not equal that of the master pointer that the capability points to, then error. Otherwise, free the block as in the basic allocator; increment the master pointer's generation count; add the master pointer to the master pointer free list. End. resize: as in the double-indirection allocator, but takes a capability instead of a handle. Begin If the generation count of the capa- bility does not equal that of the master pointer that the capability points to, then error. Otherwise, proceed as in the double- indirection allocator. End. getWord, setWord: as in the basic allocator, but take a capability instead of a pointer. Begin If the generation count of the capa- bility does not equal that of the master pointer that the capability points to, then error. Otherwise, access the block as in the basic allocator, using the master pointer. End. usable master pointers. It uses dou- ble indirection, but instead of pro- viding a handle to a block, it returns a capability. A capability uniquely iden- tifies the block; no two blocks ever have the same capability, not even if they occupy the same part of mem- ory. When a block is allocated, a unique capability is associated with it. When the block is freed, the capa- bility becomes invalid. Any block subsequently allocated, even if it comprises memory from the old block, will have a different capability. A capability consists of a handle and a nonnegative integer that is a generation count. Each master pointer has its own generation count. When a new master pointer is al- located, its generation count is zero. When a block is allocated and as- sociated with a master pointer, a capability is returned to the re- questing program. That capability consists of a handle and the master pointer's generation count. When the allocator frees a block, it increments the generation count of that block's master pointer. When getWord or set- Word accesses a block, it checks the generation count of the capability against that of the master pointer. If they are not the same, access is denied. The algorithm for this process is shown in the text box 'Algorithm for the Capability-based Allocator" above. In addition to the advantages of the double-indirection scheme, the capa- bility-based method allows reuse of master pointers. When a block is freed, its master pointer can be linked into a second free list that is used for master pointers only. There is nothing to worry about when you reuse the master pointer because the safety checks are performed with the gen- eration count, not with the value of the pointer. When the generation count ap- proaches an overflow condition, the simplest thing to do is to abandon the master pointer just before the over- flow happens. When the allocator frees a block, it increments the master pointer's generation count, but if the new value is the largest possible value for the counter, the allocator does not link the master pointer into its free list. This pointer will never be reused, but the generation count will still work to prevent access. The space occupied by the abandoned master pointer is wasted, but overflow should be a rare occurrence if you provide a large enough generation counter. 1 provide 16 bits, which makes overflow very unlikely unless the allocating program runs for days on end. 130 BYTE • OCTOBER 1986 STORAGE ALLOCATION You may wonder if you can imple- ment the capability scheme with only a single indirection. Why not let a capability contain a pointer to the block, instead of a pointer to a master pointer? The problem then becomes where to put the block's generation count. You can't put it with the block, because it must remain even when the block is freed; you would have a variant of the tombstone allocator in which the merging of adjacent blocks is impossible. If you put the genera- tion count somewhere else, you would basically have a second level of indirection. This might work, but I don't see how it would be superior to the capability scheme described here. A minor implementation problem arises that illustrates an important technique. A capability is larger than a pointer: It is in fact a pointer plus an integer. An object that large is in- convenient to manipulate in most pro- gramming languages; for instance, you can't return it from a function. A more serious problem arises in a Modula-2 implementation that does not export the representation of capa- bilities. This opaque export of types, as it is called, is what you want, since to export the capability's data type is to allow other programs to manipulate it. But the catch is that in Modula-2, an opaque type can be no larger than a pointer. How can you store a pointer and an integer in the space for just a pointer? My solution is to replace the pointer part of the capability with an offset, in words, from the start of the list of master pointers. Since Macintosh pointers are a hefty 32 bits, I can squeeze a 16-bit integer— the genera- tion count— and a 1 6-bit word offset into a single pointer-size area. If your pointers are only 16 bits long, you'll have to economize more: perhaps an 8-bit generation count and an 8-bit offset You can even do better than a word offset if you are willing to per- form a multiplication on each access: Since all master pointers are the same size and they are allocated con- tiguously, you can treat the list of master pointers as an array- An offset of n can then be used to pick out the «th master pointer, just like an array index. If the size of a master pointer is s, then the nth master pointer is s x n words away from the start of the master pointer list (assuming n = for the first master pointer). The word- offset trick can also be used to shorten the master pointers: Instead of containing a pointer to a block, a master pointer could contain an off- set from the beginning of the heap. While the capability scheme pro- vides the ability to reuse master pointers, it is not ideal. For one thing, you still can't reclaim master pointers. If the allocating program allocates 100 blocks without freeing any, then it must create 100 master pointers. If the program then frees 95 of the blocks, there are still 100 master pointers, and there always will be. The capability scheme also takes a lot of time. There is no getting around doing a compar- ison on each access of a block, unless you resort to the risky expedient of handing out pointers to blocks. (It is possible to provide facilities for ac- cessing several words of a block with a single check, but in most program- ming languages these can't be made very general.) Finally, the generation counts themselves occupy space that could be used for other purposes. Although we have been coming closer and closerto a safe storage al- locator, none of these approaches is perfect. All but the first of the allocators are safe, but at a price: slow access, in some cases severe fragmen- tation, and in all cases the inability to reclaim certain parts of the heap (tombstones or master pointers). There is also another problem: leakage. If the program allocates a block and then loses all references to it, that block can never be freed. If this hap- pens frequently, available storage leaks away until the program crashes, its memory source exhausted. Implementing the accessing pro- cedures in hardware would solve the speed problem, but the others won't go away so easily. If the storage al- locator is implemented as a subpro- gram, or module, in a high-level lan- guage such as Modula-2, you can't do anything about leakage or about re- claiming tombstones or master pointers. Since the storage allocator doesn't have access to the internals {continued) CopyWrite BACKS UP IBM PC SOFTWARE Hundreds of the most popular copy-protected programs are copied readily. CopyWrite needs no complicated parameters. It needs an IBM Personal Computer, or an XT or an AT, 128k bytes of memory, and one diskette drive. CopyWrite will run faster with more memory or another drive. CopyWrite is revised monthly to keep up with the latest in copy-protection. You may get a new edition at any time for a $15 trade in fee. CopyWrite makes back up copies to protect you against accidental loss of your software. It is not for producing copies for sale or trade, or for any other use that deprives the author of payment for his work. To order CopyWrite, send a check for $50 U.S., or call us with your credit card. We will ship the software within a day. Quaid Software Limited 45 Charles Street East Third Floor Toronto. Ontario M4Y 1S2 (416)961-8243 Ask about ZeroDisk to run copy -protected software from a hard disk without floppies. OCTOBER 1986 • BY Inquiry 79 STORAGE ALLOCATION 800-222-8324 20 Meg £395j Hard Other Specials Drives! slot) ffl 20 Meg Hardcard (uses 1 20 Meg Seagate for "AT" . . . 30 Meg for "AT" 20 Meg Tape w/cont. & soft 65 Meg Tape (3m) w/cont. & soft brother Ml 509 NEW • M-1109 ..$195 • HR-15XL .....S360 • HR-25... $499 • HR-35 S680 • Twinriter-5 Dual Head S Call EPSON • LO-800 $545 • LO-1000 $765 • LQ-1500 $999 • LX-80 $220 FX-85 S Call • FX-286 $ Call nr $499 $599 $549 $595 $695 % ^^ , iiiMiii __~_ /Okidata • 182 . . . $299 • 192 . . . $399 • 193 . . . $599 • 84 . . . $699 • 2410 . . $ Call Panasonic • KXP 1080 ....$199 \« KXP 1091 .... $239j Computers (IBM Compatibles) Base •$595 • I IDS PC-XT 8088 .... I IDS Turbo 8 Mghz 1 2 Drives MS-Dos $g 4 g . 1 IDS AT I 1 1.2 Meg Floppy/M.S. Dos & 1495 Mono •795 •895 - 1695 Color | '995 1095 18951 D . ^j^M^l4JLX'- Leading Edge Call tor Lowest Price AT&T 6300 Call for Lowest Price Epson Equity I. II. Ill ... . Call for Lowest Price MONITORS Samsung Amber TTL 12.. $89 Green TTL 12 S85 Green Composite .. S79 Amber Composite . S79 Mltxuba 510A TTL Amber . . . S99 w/Tifit & Swivel Stand 160A Composite 12 S99 Amber w/Tilt & Swivel Stand Sale on C.I. Accessories Floppy Disks Box of 10 Case of 100 TDK ss/dd 11.95 115.00 ds/dd 14.95 145.00 Maxell ss/dd 11.99 115.00 ds/dd 14.99 145.00 IBM Parallel Cables 510.00 A Full Line of Ribbons. Epson. Brother. Sale on our full line of brand name IBM & compatible Add on Cards - Call for Prices. Everex Products Everex -1 200 Modem , $149 Everex Edge Card $199 (Mono-Graphics-Color) Everex Mini Magic Card $129 (W/384k 1/2 slot) E 1-800-222-8324! COMPUTERS '^NATIONAL jami, FL 33143 ALL (305) 667-5936 of the programs that invoke it, it can- not know when a block no longer has active pointers. Moreover, the al- locator must always protect against at- tempted access by invalid pointers or handles. Thus, it needs some memory to note the invalidity of a particular pointer or handle value. Perhaps you could reduce the memory set aside to one bit per pointer, but I very much doubt it; in any case, there must be some memory usage. However, if the storage allocator does know about the internals of programs that invoke it— in other words, if the allocator is an integral part of the im- plementation of the programming lan- guage—then you can do something. Garbage Collection A storage allocator that has access to the constants, global variables, and stack of the program using it need not fear invalid pointers. It can periodical- ly search the program's storage areas looking for invalid pointers and destroy them, allowing reclamation of tombstones or master pointers. And if it finds no references to a particular block, the allocator can free it. So leakage ceases to be a problem as well. A storage allocator that frees storage without user intervention is called a garbage collector. It is possible to get by with garbage collection and nothing else. In other words, you can allocate storage but not deallocate it, leaving that job to the garbage collec- tor. (LISP uses this solution.) Garbage collectors eliminate the problems of dangling references and leaks and are even safer than the safe allocators for two reasons. First, while safe allocators can catch an illegal ac- cess and halt a program gracefully an illegal access can't even happen with garbage collection because the gar- bage collector won't free a block unless there are no pointers to it. Sec- ond, it is usually possible, especially in systems programming languages like C and Modula-2, to subvert a safe allocator. For example, if you are using a double-indirection allocator, you can subvert it by dereferencing a han- dle only once, resulting in a pointer to a block. There is no ironclad way to prevent this subterfuge, and in- deed, you may even want to provide pointers to blocks, because double in- direction is slow. Garbage collectors can also be subverted, but it is more difficult and would only be done maliciously; there is no good reason to do it. However, garbage collection also has its drawbacks. Unless you use special hardware to support it, the process itself can be slow (though references to blocks are not affected). Most garbage collectors cannot per- mit a user program to run while gar- bage collection is taking place, so noticeable pauses can occur when running a program that allocates a lot of memory. Garbage collectors can also be difficult to write and debug. Conclusion On a fast machine that can support it in hardware, garbage collection is definitely preferred. But on other machines, especially microcomputers, it is often desirable to let programs free storage as well. To compromise, you can use one of the safe allocators presented here and occasionally per- form a garbage collection to reclaim the space occupied by tombstones or master pointers and to free storage that has leaked. In fact, the tombstone allocator looks very good in this light: It allows fast access to blocks (a single indirection), and its fragmentation problems are greatly ameliorated by the garbage collector. Unfortunately, you can't implement garbage collection as an extension to an already existing implementation; you have to build it into the language you are implementing. So if you are thinking of designing a programming language, think about storage alloca- tion right from the start. Don't be one of those designers who, much to the chagrin of safety-conscious program- mers, have left storage allocation to be dealt with as an afterthought; who, in effect, have said: "See you later, allocator." REFERENCES 1. Knuth, Donald E. The Art of Computer Pro- gramming. Vol. 3: Sorting and Searching. Reading, MA: Addison-Wesley, 1973. 2. Robson. J. M. 'An Estimate of the Store Size Necessary for Dynamic Storage Al- location." journal of ACM. July 1971. ■ OCTOBER 1986 The most ' " iflcant development in monochrome graphics since the Hercules Graphics Card Announcing the Hercules Graphics Card Plus. Four years ago, the Hercules- Graphics Card brought high resolu- tion monochrome graphics to the IBM" PC for the first time. And revo- lutionized the world of personal computers. Now, it's happening again. Because now there's the Hercules Graphics Card Plus. A giant step forward in technology that creates a whole new standard for graphics hardware and a world of potential for software Three modes are better than two. Until now, graphics cards have had only two modes to work with: text and graphics. Text mode is very fast, but it's limited to 256 pre-programmed characters. Graphics mode, on the other hand, lets your software create as many characters as you want. But for text processing, graphics mode can be slow, painiully slow. Enter a new, third mode. Called RamFont'." Two years in development, RamFont gives you the best of both worlds. It blends the blinding speed of text with the flexibility of graphics. The heart of the Graphics Card Plus: the VU2 microchip, Hercules' next generation video processor that makes the RamFont mode possible. 134 BYTE • OCTOBER 1986 Enough flexibility to blow the doors off the 256-character limit of text mode. Because RamFont can handle an astonishing 3072 different characters of various widths and heights. Instead of 256 canned, unchangeable ones. The future according to RamFont. With all these characters and fonts to work with, software will never be the same again. RamFont word processors, for example, will put italics, boldface, and scientific characters right on the screen with standard text. So you can see what you're about to print. RamFont spreadsheets will use smaller characters to display larger amounts of information. So you can get the big picture. RamFont integrated packages will mix true text and graphics and turn your PC's screen into a fast-lane version of the Macintosh's.™ And if you happen to be one of those geniuses who's fluent in five lan- guages, you'll be able to type a letter in all of them. Simultaneously. A Herculean feat. How did we manage to combine the radi- cal new RamFont on the same card with Hercules' legendary sharp text and high resolution 720x348 graphics and still be 100% compatible with the original Hercules Graphics Card? It wasn't easy. In fact, it took two years and all of the sophisticated CAD tools at our disposal to create our exclusive V112 microchip* This totally new generation of video processor is at the heart of every Hercules Graphics Card Plus. It's also at the heart of a revolution in software that's beginning right now. Turn the page and youll see what we mean. *Patent applied for. The Hercules Printer Cable a $W value Jree with each Graphics Card Plus. Another Hercules innovation: the new LPT112. Its a parallel printer port on a chip. Inquiry 129 for End-Users. Inquiry 130 for DEALERS ONLY. OCTOBER 1986 -BYTE 135 All C r Salary Sarvay Computer Progra mmer Salar* iettifie " entitle Mtifitt ientific > ' . ' in fire , < I I Ml i j* I* C £ | v MX B*iri«Mi 22.4 «-l 27.5 1-2 32.7 2-4 37.1 > 4 2i.t •-! Computer Progranner Salary Survey (FroM Source EDP, 1982) $40 $38 Experience a 1-2 yrs + 2-4 yrs Lotus 1-2-3 Rel. 2 in the RamFont mode of the Graphics Card Plus: fast scrolling, a 90-column by 38-row screen and a pop-up graphics window. Software will never be the same again. The trouble with most new hard- ware introductions is that there isn't any software available to introduce them to. Not so with the new Hercules Graphics Card Plus. It runs everything the original Hercules Graphics Card runs. Better yet, it comes complete with the software you need to start using the revolutionary new RamFont mode right now with some of the world's favorite programs. Lotus blossoms. Of course, if you want to talk about the world's favorite programs, you have to start with Lotus* 1-2-3! You won't recognize Release 2. Because now you can put nearly twice as much information on your screen, scrolling right and left and up and down at speeds you'll remember nos- talgically from the days of Version 1A. Another thing you won't recognize is that cute little graphics window. You can thank RamFont for that. Now that RamFont is with us, you can pop up a graphics window any time you're in the mood and still keep your 1-2-3 spreadsheet in the background. And you can do the same with Symphony,™ of course. Or, if your tastes tend toward Ashton-Tate®'s Framework™ II, you'll be pleased to hear that you can really 136 B YTE • OCTOBER 1986 The Graphics Card Plus in RamFont mode showing multiple fonts created using FontMany a Hercules program that comes free with each Card. Ashton-Tate's Framework II with italics and boldface and speed in the RamFont mode of the new Hercules Graphics Card Plus. The programmable RamFont is so flexible, Symphony can mix true text and graphics. pie of the origl Sort, ill of tie kanalieg of text In 9x14 character cat. Ben frepktct Ktae, there are Like iUlicx, mo prahh x*ctly whit's kip»*fti»f ii awther attrtkete teat U kaaelee well hy mm »t.f« i far diiplayinf characters * . _in»ot he displayed in normal text ■oea. The proklea with graphics Hoae occurs when the text |sti to the hot toe of the display area and the prograa needs to scroll the screen, As you are about to see, a graphics Cory is lets Foi vfxiamm frtnt Quit Rep I. ■•lost opt In or type eomM le Par* 1 tp> tp Insert Jiwp Library 'raasfer Undo Ulr*- Hicrosoft Mar*: TBTTILI.MC Microsoft Word in RamFont mode: italics, boldface and small caps — plus speed and lots of it, at last. burn rubber with its word processor. The revealed Word. Speaking of word processors, remem- ber a couple of pages ago how we said they would be forever changed? Well, the change has already begun. For example, the Hercules Graphics Card Plus with RamFont makes Microsoft® Word a whole new program. Suddenly the italics, boldface, superscripts and subscripts scroll superfast. Which means you don't have to twiddle your thumbs waiting for the screen to catch up with your fingers. More to come. As time goes by, more and more major programs will take advantage of the extraordinary capabilities of RamFont. Which gives you two choices. You can buy a Hercules Graphics Card Plus and look forward to getting your socks knocked off. Or you can buy another card and watch while technology leaves you and your socks behind. To help you make up your mind, we've prepared a little surprise for you on the next page. Just make sure you're sitting down. IERCULES Inquiry 131 for End-Users. Inquiry 132 for DEALERS ONLY OCTOBER 1986 -BYTE 137 Shocked? We thought you'd be. Imagine, the new Hercules Graphics Card Plus with the power of RamFont plus everything that made the original Hercules Graphics Card the monochrome standard. At about half the old price. Now that's progress. Call 1-800-532-0600 ext. 202 (in Canada call 1-800-323-0601 ext 202) for the name of an Authorized Hercules Dealer near you and well rush you a free info kit. Hercules. \Wre strong on graphics. Address: 2550 Ninth St., Berkeley, CA 94710 Ph: 415 540-6000 Telex: 754063 Trademarks/Owners: IBM/IBM; Macintosh/Apple; Lotus, 1-2-3, Symphony/Lotus; Microsoft/Microsoft; Framework II /Ashton-late; Hercules, RamFont, FontMan/Hercules. 138 BYTE • OCTOBER 1986 Inquiry 133 for End-Users. Inquiry 134 for DEALERS ONLY. by David D. Thiel Sound and the Amiga The amount of RAM available to the sound system provides the limit of what you can do While the Amiga's sound-producing capabilities surpass the primitive square- wave sounds of early personal com- puters, the machine still has limita- tions to overcome. Making sound with microcomputers is sort of a trick. For example, when a microcomputer makes a clarinet sound, it actually pro- duces a square wave. The result sounds like a clarinet because a clarinet's waveform is close to a square wave. But the waveform of a piano or a flute is more complex and can't be created easily with most microcomputers. Sound data is a description of how you want to push air around with a transducer (speaker) so that the re- sulting fluctuations in air pressure are perceived by the ear as sounds. The amount of data involved in making complex, realistic sound events is tremendous. Consider the compact disk: 75 minutes of high-fidelity audio on a disk or 5 50 megabytes of 8-bit data; that's roughly 1 2 K bytes of data per second. That much data can quickly swamp the capabilities of an 8-bit microcomputer. Hardware-generated Sound Before the advent of microcomputers, mainframe hackers had discovered that printing certain sequences of let- ters on a line printer would create cer- tain pitched tones. Before long, enor- mous amounts of paper were being used to play Christmas carols. The KIM- 1, introduced in 1975, was not equipped to produce sound. But by 1976 hackers were connecting its hardware timer to an output bit at- (contmued) David D. Thiel is vice president of research and development for Free-Radical Software (1323 South Yale Ave., Arlington Heights. IL 60005). He is a musician turned program- mer who has done considerable sound-pro- gramming work for coin-operated and home video games. ILLUSTRATION BY CLAUDIA TANTILLO OCTOBER 1986 • BYTE 139 SOUND AND THE AMIGA tached to a speaker. This simplified the sound data to a waveform that the hardware could make. This technique produces the square-wave sound found in digital watches and com- puters like the IBM PC. The advan- tages of this approach are its low cost and the minimal software and pro- cessor time you need to control a sound. With a little more hardware you can control the amplitude of the voltage swing from low to high and thus the amplitude, or volume, of the sound. The combination of a timer-based square-wave generator with amplitude hardware is the fundamental building block of the hardware-based sound generation found in microcomputers ranging in complexity from the Com- modore VIC-20 to the Atari 520ST. A pseudorandom hardware bit genera- tor can be added to produce non- periodic sound information, common- ly called noise. There are several advantages to this type of hardware-based approach: You don't need to spend a lot on specialized hardware, little processor intervention is necessary, and you won't use large quantities of memory to store the sound data. However, there are also disadvantages: The sound has a computerlike quality, you have a fixed and limited number of channels, and you are limited to coarse amplitude and frequency resolution. Another Approach In 1980, 1 started creating sound with microcomputers in a different way. I was given a 6502 microprocessor, 128 bytes of RAM, 4K bytes of ROM. an 8-bit DAC (digital-to-analog converter), and the assignment to "make a sound that goes boing." I quickly learned a technique that acknowledges the periodic nature of sound— using algo- rithms, tables of sound data, or some combination of the two. This tech- nique requires a DAC for the micro- processor whose output (after signal processing and amplification) you in- tend to hook up to a speaker. The number of bits in the DAC establishes the range of amplitudes and, to. a degree, the complexity of the wave- form. This approach is used in its simplest form on the Apple II, which has a 1-bit DAC directly under software control. Even though the Apple II has only two levels of output, you can precisely control the time between pulses, which allows an amazing variety of sounds, music, even speech. However, while the microprocessor is produc- ing sound data, there is little time for it to do anything else. Careful and meticulous interleaving of software tasks can give the appearance of two things happening at once, but this is time-consuming and not a general- , ized solution. The Macintosh takes the DAC ap- proach one step further by integrating sound production with video process- ing. While the monitor's video beam moves back to the left edge of the screen for each scan line, the Mac's sound hardware takes a byte out of a fixed-length buffer and outputs it to an 8-bit DAC. Since the microproces- sor is freed from having to interleave the sound-generation task with other tasks, the effect is a stable sound- generation rate. However, the micro- processor still has to put sound data in the buffer ahead of the video beam for every frame (60 times a second). There are trade-offs with the Macin- tosh's approach to sound. When the Mac creates four-voice sound, it uses about 50 percent of the microproces- sor's throughput. This doesn't include waveform scaling for independent control of each voice's volume. Since graphics on the Mac are processor-in- tensive, it's difficult to create elaborate sound and graphics at the same time. Sampling You can also directly digitize sound from other sources, store it, and play it back through the DAC This tech- nique is called sampling, and it has the best potential for reproducing NEW FROM LOGICAL DEVICES INC: - --V)',\ 1 Vtl'Vl < ■ f.~H ^-v;hm\<- ■:■■>■■■■-.'}/_ iU* \ f f f MJ iliJlflfflMff/i / £ PROMPRO-8X™Model II A stand-alone programmer starting at $895.00 can put you in business to program EE/EPROMs PAL/ PLDs,* Single Chip micros,* and Bipolar PROMs* + EPROM IN-CIRCUIT EMULATION* capability that can speed up your development time considerably and an RS-232 communications port that lets you integrate it with your IBM PC as a total firmware and Logic development station. All from a company with an excellent reputation for quality and service. A UNIVERSAL DEVICE PROGRAMMER 140 BYTE • OCTOBER 1986 SOUND AND THE AMIGA complex realistic sound with a com- puter. Once you have sampled the sound data you can process it further for special effects, splice it, loop it, and set it up for random access. One problem with sampling is the amount of sound data you need. The Mac's sampling rate, for example, is 22,300 samples (bytes of data) per second. For this reason, sampling has been used very little on the 128K-byte Mac. Sampling also has the special prob- lem of trying to produce realistic sound by pumping numbers through a DAC You can get audio-aliasing distortion, or the "sonic jaggies" (the sonic equivalent of the jagged lines you get when you draw angled or curved lines on a raster display). You can get false harmonics if you use too slow a sampling period to reproduce sound of a given frequency. The Amiga The Commodore Amiga offers an en- hanced, hardware-assisted, DAC ap- proach to sound. It has more than four times as much sound hardware as the Mac. Each channel is com- posed of an 8-bit DAC with 5 bits of amplitude control, and the micropro- cessor can output sound data to each DAC independently. The Amiga has a low-pass filter that cuts out most output with frequencies above 7 kHz. This eliminates the alias- ing distortion that occurs above 7 kHz when sampling at 28,800 samples per second. While not high-fidelity, the sound is good for a personal com- puter. The usable sampling period in terms of the filter is 14,000 to 28,800 samples per second. This range can be used for one octave of musical notes reproduced faithfully up to 7 kHz. In actual practice the sampling rate can be as low as 7000 samples per second for some applications where waveform data space is at a premium. The Amiga's hardware design phi- losophy is to leave the processor free as much as possible. The direct mem- ory access (DMA) hardware for sound generation complies with this rule. The Amiga uses four variable-period DMA channels. You can vary the sam- pling rate from 28,800 samples per second to one sample every two sec- onds. These samples can be any- where in a 512K-byte address space and can be as short as 2 bytes or as long as 2 56K bytes. The output of each DMA channel is processed by a low-pass filter that becomes effective at 4 kHz and cuts out sound frequen- cies greater than 7 kHz. To generate sound on the Amiga, you must load the DMA hardware registers with the starting location of the sound data, its length, and the The Amiga has four times as much sound hardware as the Macintosh. sampling period. When enabled, the Amiga generates sound until it gets to the end of the sound data; then it resets the location and length and repeats the process until it is disabled. This frees the processor from the ma- jority of the work typically associated with audio sampling. The DMA hardware retrieves each byte of the sound buffer sequential- ly. Since every byte in the wave table is pumped out, the length of the wave table determines the highest funda- mental frequency that the channel can play. For example, to play the musical octave from A (at 440 kHz) to G# (at 830 kHz) without the distortion of aliasing, the waveform length must be 16 bytes. This is not a lot of res- olution with which to describe a com- plex waveform. The waveform length for the next octave can only be 8 bytes, and so on. Therefore, reproduc- ing the sound range of the upper half of the piano keyboard is subject to (continued) LEADER IN DEVICE PROGRAMMING *some devices require optional adaptors. FEATURES: ■ Stand-Alone/RS-232 ■ 512K bits RAM buffer ■ EPROMs 2716-1 MEG ■ Capacity: Two EPROMs (set programming) ■ Accepts Intel, Mot. Hex files ■ Accepts JEDEC files ■ Optional Keypad/Alpha display ■ Tilt stand and carrying handle ■ Works with Exatron IC handler also available: UV ERASERS and GANG programmers. All products 100% made in U.S.A. CALL 1-800-331-7766 Logical Devices Inc. 1321 NW 65th Place Ft. Lauderdale, FL 3 3309 TELEPHONE TELEX U.S.A. (305) 974-0967 383142 Canada East (514)694-7710 05-823554 Canada West (604)291-8866 04-356533 England 0652-688626 527339 Itly., Ger., Swss (02)688-2141 845 79734 Australia (03)560-1011 790 35703 (02)736-1564 790 82635 WITH AN UNUSUAL PRICE TAG: $895 Inquiry 1 69 for End-Users. Inquiry 170 for DEALERS ONLY. OCTOBER 1986 -BYTE 141 SOUND AND THE AMIGA Substantial software exists to support the use of sound hardware in the Amiga's multitasking environment. some compromise. The DMA soundtiardware also has the ability to seamlessly join wave- form data together. When the audio DMA hardware reads its registers, it copies them into internal registers and an interrupt occurs. At this time you can change the data pointer and length so that when DMA starts the process again, it could be accessing a new and different piece of sampled data. This has many exciting ramifica- tions. You can simulate a musical in- strument's sound by sampling its at- tack and splicing that to its waveform. This saves a great deal of space and opens up a whole new world of hy- brid instruments. In addition, the Amiga has the first standard left and right stereo outputs in personal computer history. The four channels of DMA-driven sampling hardware are output through the low- pass filter and routed through fixed- assignment stereo jacks for connec- tion to external audio equipment. By using two complementary channels, you can position sound in left-to-right space with software. Obviously, there is a trade-off between the number of discrete channels desired and the stereo spread, but it is a lot of fun to put explosion sounds together with their visual counterparts. If you are using a monaural monitor, attaching a Y-connector makes it possible to hear all four channels. The Amiga's sound hardware also has the capability to modulate one channel's period and/or volume by the output of another's. You disable the modulating channel's audio out- put and then use its data to modify the modulated channel's frequency and/or amplitude. Used in its simplest form, this relieves the load on the pro- cessor for effects like tremolo (amplitude modulation) and vibrato (frequency modulation). Software Sound Synthesis In 1973, Dr. John Chowning published a paper in the journal of the Audio Engi- neering Society entitled 'The Synthesis of Complex Audio Spectra by Means of Frequency Modulation." This FM model of sound synthesis has be- come the basis for several profes- sional musical instruments, including the Yamaha DX-7. If you use channels to modulate other channels, the Amiga can achieve a variety of the synthesis models proposed by Dr. Chowning. While this mode uses up all of the Amiga's sound resources, it can create one very complex voice that rivals those of dedicated hard- ware synthesizers. Substantial software exists to sup- port the use of sound hardware in the Amiga's multitasking environment. Since many tasks can run concurrent- ly—each assuming that it "owns" the machine— there needs to be a way of arbitrating who gets the sound hard- ware. Audio software support on the Amiga follows the same device model established for all peripherals on the system. The Amiga allocates virtual audio channels on a priority basis and sup- ports all of the above-mentioned hardware features. It also supports in- terrupt processing for waveform splic- ing with a queue that stores the sound requests for a particular channel un- til it can process them. While the audio device is flexible, it is complex to use. For certain types of sound syn- thesis, direct access to the hardware registers is more processor-efficient. One sound innovation on the Amiga is its support of voice synthesis as a standard peripheral. Without any additional hardware, the narrator device does an understandable simu- lation of the human voice. The Soft- Voice program, which is the heart of the narrator device, provides all the elements for phonetic speech genera- tion. In addition, there is a text-to- phoneme program called Translator that you can use to create phonetic strings for input to the narrator device. The only costs for using speech as part of the man-machine interface are some RAM and some processor time. Resource Limitations It is important to remember that sound is data to a computer. This is the key to using the Amiga to produce sound. You must make major trade- offs in space and processor utiliza- tion. Unfortunately, Commodore has marketed the Amiga as a 256K-byte machine. Full utilization of its sound and graphics hardware requires a lot of memory. A wave table for six oc- taves of a good string sound takes 32K bytes. If you wanted to have six different instruments available for ran- dom access in a music program, and if your program required 70K bytes, the waveform data and program to- gether would need 262K bytes; in other words, they wouldn't fit. In my experience in recreational software, the resources allocated to sound production are usually one- eighth of the total. In the coin- operated video-game world of Reac- tor and Q*Bert, the sound program required 4K bytes of EPROM com- pared to 32K bytes for the game com- puter. In a Commodore 64 program, 3K to 6K bytes were set aside in RAM for sound. If this ratio holds true, then the available RAM for sound samples and the sound system on the Amiga is 32K of its 2 56K bytes. These numbers do not take into account the Amiga's multitasking nature that makes the available RAM an indefinite concept. The point is. the amount of RAM available to the sound system provides the limit of what you can do with sound and the Amiga. To overcome space limitations, you can use the Amiga's 68000 to create sound data "on the fly." This approach trades space for speed and is not usually acceptable unless you plan to dedicate the machine to sound pro- duction. The really exciting part of the Amiga's sound system is its hardware- assisted software-based approach. A DAC is to sound as a bit map is to graphics. A software approach is open-ended. Within processor and RAM limitations, you can do whatever you are clever enough to conceive. ■ 142 BYTE • OCTOBER 1986 ITS WHAT TDK MAKES FOR COMPUTERS THAT MAKES THEIR DISKS THE BEST The initial step from computer technology to computer disks was a natural for TDK, because they're more than manufacturers, they're creative innovators. TDK has used its expertise as one of the world's major producers of electronic compo- nent parts (including the most sophisticated heads for disk drives) to design floppy disks that deliver error free performance. Absolute quality has always been a major source of pride for TDK. Their position as the world's largest manufacturer of magnetic media has been earned by an unparalleled level of tech- nical superiority that spans over 50 years. &TDK Millions of people around the world rely on TDK for the ultimate in audio and video record- ing performance. Now they can rely on TDK for the same consistently high performance in floppy disks. After all, PCs have feelings too. They deserve the TDK advantage other sophis- ticated electronic equipment has always enjoyed. Let your PC know you care, choose from TDK's family of 5.25-inch standard, 5.25-inch High Density and 3.5-inch No-Risk™ Disks. Because it just doesn't pay to cut corners when it comes to floppy disks. 0tBW~STP!& ® THE NO-RISK DISK. Northeastern Region: 51 6-625-01 00; Southern Region: 404-948-1 346; Midwestern Region: 31 2-676-5356; Western Region: 71 4-863-1 844 © 1986 tdk Electronics Corp. Inquiry 295 OCTOBER 1986 -BYTE 143 LYCO COMPUTER MARKETING & CONSULTANTS, INC. 1080. ...$195 PANASONIC 1080 195 1091 225 3131 249 1092 309 1592 419 1595 595 CITIZEN 120-D 179 MSP-10 285 MSP- 15 385 MSP-20 325 MSP-25 485 Premier 35 469 C.ITOH 1550 SP+ CALL D1040 CALL Prowriter Junior CALL Prowriter8510SP+. . . CALL PANASONIC TR-122MYP 12" Amber TTL. 139 TR-122M9P 12" Green TTL. 139 TX-12H3P 12" RGB 369 DT-H103 10" RGB 349 MODEMS ZOOM PC 1200 ST 189 PC 1200 XL 259 PC 1200 XL/PFS 279 ANCHOR Volksmodem 55 Volksmodem 12 179 US ROBOTICS Password 1200M 189 Courier 2400 395 BRODERBUND (IBM) Bank Street Writer... 48. 95 Print Shop 24.95 Graphics Library I 22.95 Graphics Libary 2. . . . 22.95 Ancient Art of War . . . 22.95 Champ Lode Runner 22.95 Karateka 22.95 LEADING EDGE Nutshell 69.95 Nutshell Filer... 149.00 SAVE s= PRINTERS EPSON LX80 CALL FX85 CALL DX10 CALL HI80 CALL HS80 CALL FX286 CALL LQ800 CALL LQ1000 CALL SILVER REED EXP420P CALL EXP600P 489 EXP 800P 649 EXP 770 740 DIABLO D25 549 P-32CQI 699 635 . ,. 1029 P-38 1749 D-80 IF 2395 ZENITH ZVM 1220 89 ZVM 1230 89 ZVM 1240 149 THOMPSON 365 12 RGB CALL SEIKOSHA SP-1000 VC (C-64) .... 175 SP-1 000 ACentronics. . 1 95 SP-1000 IBM 195 SP-1000 As RS-232 ... 195 SP-1000APApplellC.195 BP-1300 469 BP-5200 649 BP-5420 999 Color Kit 119 BP-5420 Ribbon 12.50 SP-1000 Ribbon 8.50 BROTHER HR-15XL-P 359 HR-15XL-S 359 MONITORS HITACHI MM-1218 12" Green 99 MM-1220 12" TTL Amber .129 CM-1406C 13" color w/ cable 179 CM-1409 13"RGB 305 CM-1216D12" RGB 385 CM-1455S 13" 720x350.. .525 CM-1457A13"RGB 720x460 679 JUKI Juki 6100 CALL 5510 Juki CALL Juki 6300 CALL RS-232 Serial Board .... 55 Color Kit 105 6100 Tractor 119 6100 Sheet Feeder. ... 209 LEGEND 808 148 1080 CALL 1380 229 1385 289 TOSHIBA 321 P/S 495 351 Sheet Feeder 529 P341P 969 P341S 999 P351+ 1149 TEKNIKA MJ-10 149 MJ-22 249 MS-305 RGB 309 COMMODORE 1902 Color CALL 1802 CALL MISCELLANEOUS DUST COVERS PC-AT2pc 10.99 PC-XT2pc 10.99 DISK NOTCHERS . . S7.95H TANDON •320K °o Vo" Drive 115 JOYSTICK Tac 10(Ap/Pc) 22.95 AST Six Pack Plus 209 STB EGA Plus 329 MICRO- LEAGUE (IBM) ML Baseball 24.95 General Manager 24.95 85 Team Disk 14.95 INNOVATIVE CONCEPTS Flip-N-File 10 2.49 Flip-N-File25Lock. 10.95 Flip-N-File 50 Mini . . 10.95 Flip-N-File 50 Loc* . 15.95 Flip-N-File ROM .... 7.99 SUBLOGIC (IBM) Set Simulator 34.95 Scenery Disks. . . Each 1 4.95 Set 1-6 69.95 S.D. Japan 14.95 S.D. San Francisco ... 1 4.95 SSI (IBM) Battle for Normandy....24.95 Knights of Desert 24.95 Tigers in Snow 24.95 Computer Baseball 24.95 Cartels & Cutthroats ...24.95 NX-10....Call STAR MICRONICS LV 12-10 (New) CALL NL-10 CALL NX-10 CALL NB-15 CALL SB- 15 CALL SG-15 367 SD-10 319 SD-15 438 SR-10 469 SR-15 578 SB-10 589 OKI DATA Okimate 1 OXE 179 292 CALL 293 CALL Okimate 20ST 199 120 NLQ 205 182 214 1,92 348 93 CALL PRINCETON GRAPHICS MAX-12 Amber 175 HX-12 RGB 458 SR-12 RGB 575 DISKETTES MAXELL SSDD 9.99 DSDD 12.99 BONUS SSDD 6.99 DSDD 7.50 SKC SSDD 8.50 DSDD 9.50 ACTIVISION (IBM) Borrowed Time 24.75 Mindshadows 24.75 Music Studio 29.95 Alter Ego 29.95 Alter Ego (Male) 29.55 QUADRAM Gold Quadboard 399 Silver Quadboard 229 Quadboard 199 TOLL FREE 1-800-233-8760 NEW HOURS! Mon-Thur9AM-BPM Frl 9AM-6PM Sat 10AM-6PM In PA 717-494-1030 Customer Service 717-494-1670 RISK FREE POLICY or send order to Lyco Computer P.O. Box 5088 Jersey Shore, PA 17740 In stock Hems shipped within 24 hours of order. No deposit on COD orders. Free shipping on prepaid cash orders wiihin the coniinental U.S. Volume discounts availa- ble PA residents add sates tax. APO FPO and international orders add $5.00 plus 3% for priority mail service. Advertised prices show 4% discount for cash, add 4% for MasterCard and Visa Personal checks require 4 weeks clearance before shipping. We do not guarantee compatibility We only ship factory fresh merchandise. Ask about UPS Blue and Red label shipping. All merchandise carried under manufacturer's warranty. Return restriction applicable Returnauthorizationrequired. All items subject to change without notice. AMERICA'S MAILORDER HEADQUARTERS NEW HOURS! Mon-Thur 9AM-8PM Fri 9AM-6PM Sat 10AM-6PM Inquiry 1 79 PROGRAMMING INSIGHT A USEFUL PROPERTY OF 2 n by Robert C. Arp Jr. Simplified flag testing and input comparison by exploiting powers of 2 WHILE WRITING FEDERAL tax pro- grams for my HP-41CV calculator recently, I repeatedly needed more than the 11 available user flags. Because I have the Extended Func- tions/Memory Module (EF/MM). I con- sidered a suggestion from the owner's manual to increase the number of ap- parent general flags by using the X< >F (X exchange flags) function. For reasons I will discuss, 1 was not satisfied with the results. However, this exercise led me to observe a re- markable property of summations of 2". I do not intend to offer a rigorous mathematical proof of the 2" prop- erty; I have simply verified that the property functions within the limits of my calculator. I have studied many math and com- puter books during my career, but I cannot recall ever having seen refer- ence to this property. However, if there is someone to whom credit should be extended, then 1 apologize for the oversight. The Problem I had been designing a system of pro- grams for federal taxes that would permit updating of totals in a spread- sheet fashion. Because of the re- quired number of schedules and forms, I was using the status of flags to branch to labels in order to imple- ment various options. The HP-41CV has 1 1 general-purpose flags. I needed more. The EF/MM owner's manual sug- gests the use of X< >F to increase the number of apparent general- purpose flags. This is possible because executing this function sets the status of flags through 7 accord- ing to a status code previously entered into the X register. Simulta- neously, a code representing the former status of those flags is trans- ferred from the F register to the X reg- ister. A numeric code for each of the eight flags is shown in table 1. You set one or more of the flags, through 7, by forming a sum of the numeric codes for each flag affected. For example, to set flags 1 and 2 , you set the sum to 2+4=6. The sum 255 is required to set all flags; is re- quired to clear all flags. Flags whose numeric code is not an addend of the sum are cleared. You can realize the apparent in- crease in available flags by calculating several summations and storing them in separate registers for later recall and comparison. In this manner, a combination of flag statuses is under- stood to represent the status of an ap- parent flag. For example, if the sum 6 were stored in a register, by recall- ing its contents and comparing it to the contents of the X register after an execution of X< >F, you could deter- mine if and only if both flags 1 and 2 were set. I felt that I could tolerate the clum- siness of the operation; however, I could not afford to devote one regis- ter for each of the required status codes. Memory in the HP-41CV is or- ganized in registers of 7 bytes in size; most instructions require only 1 or 2 bytes. Of course, registers used for storage cannot be used for program- ming. While reviewing the X< >F func- tion, I had noticed that the numeric code for each flag n was 2". I am sure that it was this observation that prompted the lateral thinking required {continued) Robert C. Arp Jr. (278 San Tornas Aquino Rd. #1, Campbell CA 95008) holds a B.S. in electrical engineering. He is currently con- ducting independent research in natural and artificial intelligence. OCTOBER 1986 -BYTE 145 POWERS OF TWO for the unconscious formulation of a satisfactory method of generating any number of flags. The Question Because computers use the binary system and because powers of the base must certainly be associated with the system, I wondered if there was a property of 2 ' that could be ex- ploited to create an association be- tween the presence or absence of a particular 2". The Investigation After playing with numbers for a while, I made the following supposi- tion: If a E 2' is divided by X = 2", and X GO o o 3 Speed up your screenwriting 2-6x Extend your ANSI.SYS to full VT100 Add many more escape sequences Scroll lines back onto screen Save scrolled lines into a file Add zip to your cursor keys Free your eyes from scroll blinking Easy installation Get a 43 line screen w/EGA Get a 50 line screen w/CGA No more annoying typeahead beep Prevent screen phospher burnin Control many programs' use of color Generate breakpts from keyboard Shorten that annoying bell Over 40 other useful options > Q — o C/5 c o U 7) < C3 "The psychological difference is astonishing" —Lotus June 85 pg 8. "So many handy functions rolled into one unobtrusive package" —PC- World Feb 86 pg 282. "The support provided by the publishers is extraordinary" —Capital PC Monitor May 86 pg 25. "... the best choice for improving your console ..." —Capital PC Monitor June 86 pg 282. 400p Manual (w/slip case) & disks $75. Satisfaction Guaranteed! Order Yours Today! [HERSEY MICRO CONSULTING Box 8276, Ann Arbor, Ml 48107 (313) 994-3259 VISA/MC/Amex To the user, n is a flag that must be set cleared, or tested. teger, n, as a passed parameter. To the user, n is a flag that must be set, cleared, or tested. Each algorithm raises 2 to the power of n. The set-flag algorithm accumulates 2" as a com- ponent of a sum consisting of ad- dends 2\ where each i is a member of the set of all flags that you have set previously but not cleared. The clear- flag algorithm subtracts 2" from E2'\ The test-flag algorithm divides £2'' by 2", discards the quotient's fractional component, and uses remainder divi- sion to report the condition of flag n. When executing the test-flag algo- rithm, there may be times when you want to test for 2" Megs per minute • Runs under MS DOS or PC DOS •Pulse Soft ware Included MONO-II s 129 • 12" flat and compact screen • TTL signal input ' Built-in swivel and tilt base • Instant action system • Low distortion EGAds! MONITOR PC'S LIMITED SIX FUNCTION CARD w,ok s 99 -/««*149 • Upgradable to 384K • Clock/Calendar • Includes Software • Parallel Port • Serial Port • Game Port Two Year Warranty' SEAGATE 20, 30 AND 40 MEG HIGH SPEED 40 MS ACCESS TIME HARD DRIVES FOR AT ~ AND NOW -80 MEG 28 MS ACCESS TIME HARD DRIVE FOR AT "\ 2,. MEG * 579 M>M t (*699 PC'S LIMITED MINI I/O s 99 • Serial port • Parallel port • Clock • Software • Fits in short slot 40HEG s 819 ««i*l495 479 » CGA/EGA compatible » 13" screen » 31mm pitch Uses Linear Voice Coil Activator. Heads park automatically at power down. Includes Seagate Full Height Hard Disk, Cable, and Mounting Rails. Boots from Hard Disk. One Year Warrantv* pc's limited at multifunction cardi 8 199 wok Full IBM EGA compatibility. Full 256K Video RAM installed a no extra cost. UNIVERSAL GRAPHICS CARD II '199 XT ™ POWER 1 30 W s 99 Solve Your Power Problem. Directly replaces Power Supply in PC Fully XT™ compatible. One Year Warrantv.' ALLS OUTSIDE TEXAS, 1-800-426-M50 S CAJLLS INSIDE TEXAS, 1-800-252-8336 1611 Headway Circle, Building 3, Austin, Texas 78^54 Sales Calls from anywhere in the country, (512) 339-6962 Technical Support Calls, I -(800) 624-9896 or PC's Limited BBS (512) 339-4127 Customer Service Calls, 1(800) 624-9897 or MCI MAIL: PC's LIMITED Telex No. 9103808386 PC LTD FAX (512) 339-6721 Piggy Back Board 559 w /OK • Expandable to 3 MEG (1.5 on Board/ 1.5 on Piggy Back Board) • Supports 64 or 256K RAMS • Parallel Port • Serial Port (2nd serial option) • Fully compatible with IBM CGA, Plantronics COLORPLUS, IBM Monochrome, and Hercules compatible graphics modes. • Includes Parallel Port and fits in a "short" slot. TOTAL SATISFACTION GUARANTEE WARRANTY For warranty service; one year limited warranty on PC's Limited products. Contact Technical Support for a Return Authorization Number (RMA). Returns must be accompanied by your RMA, the invoice, and a brief explanation. During the warranty period. PC's Limited willrepairor replace items at our option. 30-DAY TOTAL SATISFACTION GUARANTEE Any item bought from PC's Limited may be returned within 30 days from the date it was shipped for a full refund of your purchase price. Returned items must be as-new. not modified or damaged, with all warranty cards, manuals, and packaging intact. Returned items must be shipped prepaid and insured, and must bear a PC's Limited Credit Return Authorization (CRA) on the shipping label. Call PC's Limited Customer Support Department forCRA. No credit issued after 30 days from date of shipment. CONSUMER TIP When shopping for PC products, ask our competitors about their refund policies Mitsubishi. Intel, ItlM, Hercules. Plantronics, Seagate. Western Digital. AT&T, Compaq. Tandy, Leading Edge, Sperry, Wyse.and ITT are registered trademarks of their respective companies. IBM PC. IBM XT. IBM AT. are trademarks of IBM Corporation, leading Edge VC. Sperry PC. Wyse PC, Compacj Deskpro, AT&T 6300. Tandy 1000 and Tandy 1200 are trademarks of their respective companies. Some quantities may be limited. PC's Limited sells equipment certified to be compliant with FCC Class B standards. All prices are subject to change without notice. Inquiry 231 OCTOBER 1986 • BYTE 151 mwmm BYTE Public Domain Powerhouses PD PROLOG by Robert Morein 155 An Icon Tutorial by Ralph E. Griswold and Madge T Griswold 167 Enhanced Console Driver by Anthony lackln 183 Abundance by Roedy Green 193 Z80MU by Robert A. Baumann 203 CP/M Hall of Fame by Brock N. Nleeks 219 I BEGAN MY "RESEARCH" on this theme last December by placing a call for submissions in the Fixes and Updates section. Within weeks, readers sub- mitted over a hundred programs. I have considerable regret that we can highlight only five of these, though I think you will agree that they are indeed powerhouses. Bob Morein's PD PROLOG is a public domain implementation of the fifth- generation language for MS-DOS and PC-DOS environments. Bob wrote the syntax to conform closely to the Edinburgh syntax, but his implementation contains several notable extensions. Ralph and Madge Griswold present a tutorial on Icon, a high-level language that emphasizes the processing of strings and structures. The language was originally implemented under UNIX, but it has been transported to other oper- ating systems, including MS-DOS. Anthony Zackin has written an enhanced console driver that will allow you to create your own user interface for DOS. This replacement for the ANSI.SYS file performs all of that file's functions plus many, many more. Read and be informed. Roedy Green's Abundance is a FORTH-based, data-entry, database, screen- handling language that performs a variety of housekeeping tasks automatically The language was originally designed to serve charities, but it is now a com- plete business programming language. Bob Baumann has written a Zilog Z80 and CP/M 2.2 emulator. With it, you may well be able to run some CP/M software on your IBM PC or compatible. We therefore asked Brock Meeks to summarize some of the best public do- main CP/M programs. His selections are included in a "CP/M Hall of Fame." There is a tremendous amount of code associated with this theme. Abun- dance, for example, comes on 1 5 disks. BYTEnet, BIX, and the disk copy ser- vice will be able to provide most, but obviously not all. Please read the editor's notes in each article carefully for instructions on how to obtain the programs. In my mind, a much larger problem is that we cannot feature many more of the programs that were submitted. Although it was not ready in time for this issue, we hope soon to provide a new portable implementation of the SAIL language called PSAIL, which produces C code and uses run-time packages also written in C. Other submissions are available now, and we are placing many of them on BYTEnet and BIX. These include New York Word, a fine shareware word pro- cessor for the IBM PC family, and a TUrbo Editor, VTI00 emulator, and Mandlebrot utilities from Tim McGrath. In addition to these programs, we have uploaded the text of an interview that Dave Betz and I carried out with Richard Stallman, the author of GNU (GNU's Not UNIX), a UNIX-compatible software system. After reviewing a tremendous number of programs, I am pleased to report that the public domain is as vibrant and potent as ever. — ]on Edwards, Senior Technical Editor OCTOBER 1986 -BYTE 153 A FRIEND INDEED. Face it. Everybody needs somebody some- time. And even the best PC occasionally needs help with faulty power. So give your hard disc or critical-use system LINE 2" power conditioning. And eliminate those nagging problems that your PC can't prevent. Like voltage sags and surges. Brownouts. Spikes. LINE 2 Power Conditioners are designed specifically with your PC in mind. High inrush currents don't affect them. Neither do power problems. And they're amazingly economical. A LINE 2 Power Conditioner can be your PC's best friend. And a friend in need is a friend indeed. Call us today at (619) 279-0831, or contact your local Square D distributor. TOPAZ A Subsidiary of Square D Company 154 BYTE • OCTOBER 1986 Inquiry 307 for End-Users. Inquiry 308 for DEALERS ONLY. PUBLIC DOMAIN POWERHOUSES PD PROLOG by Robert Morein A public domain version of the fifth-generation language PD PROLOG, an implementation of the Edinburgh syntax of Prolog, was a prototype for the commercial Pro- logs of which I am also the author. I intended the syntax of PD PROLOG to conform so closely to the Edin- burgh syntax that it would be possi- ble to execute PD PROLOG success- fully with only W. F. Clocksin and C. S. Mellish's Programming in Prolog (Springer-Verlag, 1981) as a compan- ion. Only two things distinguish PD PROLOG by their absence: debugging facilities and the definite-clause gram- mar syntax. And it contains several notable extensions to the Edinburgh syntax. [Editor's note: For an introduction to Prolog, see "Prolog Goes to Worfe" by Clara Y. Cuadrado and \ohn L. Cuadrado in the August 1985 BYTE, "logic Program- ming" by Robert Kowalski in the same issue, and Prolog for Programmers by Feliks Kluzniak and Stanislaw Szpakowicz {Academic Press, 1985).| PD PROLOG runs under MS-DOS and PC-DOS and uses all memory allocatable by DOS. There is a definite advantage to having 640K bytes of RAM, so coresident programs that use a lot of memory should be ex- cluded from the system. PD PROLOG is not a completely in- tegrated programming environment in the manner of BASIC because the edit and execute modes are distinct. You compose a Prolog program using a text editor (this can be done from within the Prolog environment), "con- sult" the program, and then execute it by giving goals. Users of small resi- dent auxiliary editors or "notepad" programs will find the process con- siderably streamlined and fairly in- teractive. Also, the latest version of PD PROLOG comes with a screen- oriented text editor. That is not to say that PD PROLOG is not a conversational language— the system prompt is ?-. which is the equivalent of "I am ready for your questions." A structure that you enter at this point is not construed as new knowledge to be entered into the knowledge base— rather, it serves as the initial goal of the backward-chain- ing inference engine, which is Prolog's inherent form of reasoning. The fundamental Prolog statement is the Horn clause, or simply clause, which has two manifestations: head( params ) :- body( params ). and unit( params ). In the first type of clause, a rule, the head is true if the body is true: hence the head is the consequent and the body the antecedent. The unit clause, also known as a fact, has no body and is always true if selected. The params are optional variables or structures that, when present, pass and return values to the clauses and allow Pro- log's pattern match to discriminate among clauses by embedded struc- ture. A set of clauses with the same name, if they have the same number of params in the head, is variously referred to as a module or function. Pattern Matching The selection process is guided by the resolution principle, one of the pillars of the Prolog computational process. The resolution principle is derived from predicate calculus and is closely related to proof by negation. But the basic operation is nothing (continued) Robert Morein is president of Automata Design Associates (1570 An an Way. Dresher, PA 19025) and a physicist with an interest in non-von Neumann architectures and symbolic computation. He is the author of PD PROLOG and commercial Prolog de- velopment systems. OCTOBER 1986 -BYTE 155 PD PROLOG more than pattern matching. Thus Prolog would match the structure alpha( 1, X). with the structure alpha( Y, 2 ). and the structure 'has a feature' ( chimney, door; window ). with the structure 'has a feature' ( X, Y, window ). Logic has no regard for computa- tional complexity or the methods of finding the solution; it merely rigidly prescribes the correctess of the pro- posed solution and in this regard is hopelessly detached from the real- world considerations of finite resources and time. The method uni- versally used for finding a solution is the backtracking depth-first search, which proposes to find the solution with the least expense, although it can be misled, which causes the pro- gram's downfall. The backtracking search is a me- chanical maze-searching procedure that can best be described visually. Imagine the clauses constituting a program as a tree, the search tree, through which Prolog will run, search- ing for satisfaction like a mouse searching for cheese. The ends of the tree are terminated with* unit clauses, which are true if matched. The ques- tion becomes, is the tree finite or infinite? Consider the following set of clauses: a :-b. b :- c. b. c :- b. If you give the program the goal "a" at the system prompt (i.e., if you ask, "Is a true?"), the search will recurse infinitely, an example of misleading the backtracking inference engine. The set of clauses should be reordered: a :- b. b. b :- c. c :- b. so that the system will see the economical solution: a if b, b is true, therefore, a is true. Variables Prolog variables are denoted by a capital first letter. Thus, X, Varsym, and Param3 are legitimate variable names. A variable's scope is limited to the clause in which it appears and to the particular instance of usage of that clause. In the clause a( X, Y ) :- b( Y, X ) the values of X and Y are entirely private and are not seen even by other calls to that clause elsewhere in the search. The binding of a variable to a value, known as "instantiation," is temporary in the following sense: The backtrack- ing search requires that Prolog run in reverse as well as forward, and a vari- able must frequently be returned to the unassigned state. In forward search, the value of an instantiated variable cannot be reassigned, as it can in a conventional language. Pro- log variables are "polymorphic— they may be bound to a structure, list, number, or anything at all. Once bound, the variable itself disappears, being transparent to the resolution algorithm. Lists A list is a data structure of the form [element! , element2, element3, . . . ]. The elements may themselves be lists or other data structures. The vertical bar, or list extraction operator, com- bines the virtues of LISP'S car and cdr operators. For example, [X|Y] is the list with a first element of X and a re- mainder list of Y Prolog's pattern matcher matches the two structures [X|Y] = [a.bAd] so as to set X = a, and Y = [b,c,d]. A functor-argument set is a basic structure: We take a group of struc- tures separated by commas, enclose them in a set of parentheses, and give them a functor name, such as alpha( X, 33, beta( xxx ), [a.b.c] ). Structures A classic example illustrates how Pro- log constructs data structures, thus leaving the realm of passive tree searches. Clause 1: append( [], L, L ). Clause 2: append( [X|List1], List2, [X|List3] ) :- append(List1, List2, List3). The general scheme is this: The definition consists of one fact and one rule. The rule will be used over and over again until what little is left of the goal given matches the fact. The 1 1 stands for empty list. The question that serves as the ini- tial goal is append( [a,b,c], [d,e,f], Result ). Clause 2 is invoked with arguments ( [a.b.c], [d,e,f], Result). Clause 2 is invoked again with arguments ( [b,c], [d,e,f], List3 ). Clause 2 is invoked again with arguments ( [b], [d.e.f], List3 ). The arguments are now ([ ], [d.e.f], List3 ). Clause I now matches. Since it is a unit clause, the search terminates. How does this cause a list to be con- structed? The key is in the third argu- ment, which returns the constructed list to the uppermost, or first invoked, rule. The inference engine matches it to [X | List3] in clause 2. Now let's trace this (in figure I) as clause 2 is suc- cessively invoked. In clause I , L is [d,e,f] for the follow- ing reason: Notice that clause 2 never alters List2 but supplies it to whatever clause it invokes. Thus, L in clause 1 is the original List2, or [d,e,f]. This example would not have worked if the order of clauses I and 2 were reversed. The backtracking, depth-first search strategy, which always attempts to use the first clause encountered, would have looped forever. Built-in Predicates Built-in predicates are required to make PD PROLOG a programming [continued] 156 BYTE • OCTOBER 1986 GOmPUTCR WAREHOUSE CALL1 !^™ E 1-800-528-1054 FREE Air Express Shipp NOW [BEST PRICES Charge for Bank Cards See Details Below PRINTERS Brother All Models Call Cannon Laser Printer SI 949 Citizen MSP-10 S279 MSP-15 S379 MSP-20 $315 MSP-25 $479 Premier35 $479 Diablo D-25 $489 635 S1035 DISKETTES EPSON All Printer Models . . . . Call Fujitsu Call IBM Proprinter $399 Juki 6100 $349 6300 $669 NEC 3510,3550.3515.3530 $729 8810.8830. 8850 $1039 P5 $959 P6 $429 P7 $609 OKIDATA All Printer Models Call Panasonic 1080 $ 1 99 1091 $239 1092 $309 1592 $425 KXP3151 $399 Maxell MD-2 (Qty 100) $100 Sony M D/2 (Qty 100) $119 MONITORS Amdex All Monitors Call N EC All Monitors Call Princeton Graphics . . Call Zenith All Models Call VIDEO TERMINALS Qume QVTGreen 101 $299 QVT Amber 101 $314 Wyse 30 $299 50... $419 75 $559 Wyse 85 $439 Wyse 350 $859 Zenith z-22 $455 Z-29A $559 Z-49 Call MODEMS Anchor Automation Signalman Express $235 Practical Peripherals Practical 1 200 Baud S1 24 HARDWARE"} BOARDS AST Advantage $329 Rampage AT $445 Rampage PC $239 Six Pack Plus $159 Hercules Color Card $149 Graphic Card $1 79 Intel Above Board PC(1 1 1 0) $239 Above Board AT (2010) $329 Above Board PS/AT (2110) $369 Paradise Modular Graphic06-1 $239 FivePak $115 Plus Development PlusHardCard20 Megabyte $669 Quadram Gold & Silver Boards Call Quadlink $329 Quad EGA+ $359 Tec Mar Graphics Master $445 Captain No Memory $169 COMPUTERS lM3f= PC 1 Drive 256K XT1 Drive 256K XT1 Drive 20 Meg 640K . AT/68 AT/339 comma Portable II — 2 Drive $1199 $1729 $2169 $2849 $4449 $1649 HAYES All Modems Call STARMICRONICS All Printer Models Call Toshiba 321 Parallel & Serial $449 341 $769 P351 Parallel & Serial $919 Laser Printer Call KEYBOARDS Keytronics 5151 $159 PLOTTERS Epson Hi-80 Call Prometheus All Models Call US Robotics Courier 2400 S369 Password 1200 $175 Microlink 2400 $369 DISK DRIVES Iomega Bernoulli 10 meg $1 359 Bernoulli 20 meg $1749 Bernoulli 40 meg $2469 SEAGATE 20 meg w/Western I/O . $395 PANASONIC Sr. Partner Dual Drive $ 11 09 Exec. Partner Dual Drive . ... . -r . . $1 759 Other Models Call TOSHIBA T-1100 ..$1299 T-1100Plus Call T-3100 Cail SPERRY SperrylT $1999 Other Models Call WYSE Wyse pc 1 100-1 $979 Wyse pc 1100-20 $1539 Zenith Computer Products SAVE u P to 50% All Models Call 256 Memory, One 360K Brand Name Floppy Drive • 135 Watt Power Supply, Slide Case, AT Style Keyboard 8 MHz Clock Speed, (Keyboard Selectable), 8 Expansion Slots TRAINING Flight Simulator . . PC Logo Typing Instructor . Typing Tutor III . . . SOFTWARE $28 $75 $28 $28 COPIERS Canon Canon PC-20 Canon PC-25 . . , .. . IBM PC and 100% Compatibles SPREADSHEETS Lotus 1-2-3 Multiplan Spreadsheet Auditor 3.0. . . . VPPIanner Call $108 . $82 . . $48 LANGUAGES C Compiler (Microsoft) Fortran Compiler (Microsoft) . , Lattice C Compiler Macro Assembler (Microsoft) . Pascal Compiler (Microsoft). . . Quick Basic 2 Run C Interpreter Turbo Pascalw/8087 & BCD . . Turbo Database Tool Box $249 $195 $242 . $84 $166 $55 $65 ..$59 Call PROJECT MANAGEMENT Harvard Total Project Manager $262 MicrosoftProject $219 Super Project Plus $239 Timeline 2.0 $209 COMMUNICATIONS CompuServe Starter Kit Best Price CrosstalkXVl $92 MSAccess1.01 $139 PFS Access $76 Remote $92 Smartcom II $83 INTEGRATIVE SOFTWARE Enable1.1 $319 Framework II Call Smart Software System $379 Symphony Call GRAPHICS Chartmaster Diagram Master Energraphics2.0 In-A-Vision Microsoft Buss Mouse w/PC Paintbrush 3.0 . . Microsoft Chart Microsoft Serial Mouse , Newsroom PC Draw . $199 $185 $269 $249 $106 $164 $119 ...$31 $199 Leading Edge Word Processor Leading Edge W/P w/Spell & Mail . Lightening Microsoft Word 3.0 Multimate Advantage PFS: Write w/Spell Checker Wordstar w/Tutor Wordstar Pro Pack $48 . $72 . . $55 $249 $269 $76 $162 $233 Supercalc 4 $259~| Word Perfect (Ven4 Wordstar 2000 + 2 1)$196 $278 Click Art Personal Publisher $99 PC Mousew/Dr. Halo II $99 PC Paint w/Mouse $115 PFS Graph $76 Printmaster $29 Signmaster $132 Turbo GraphixTool Box Call UTILITIES CopyllPC 1 DIR Fastback Norton Utilities 3.1 .'. Printworks Sidekick Sidekick (Unprotected) Sidekick— Superkey (Bundle) . Travelling Sidekick Turbo Prolog Sideways 3.1 Superkey $19 $46 $86 $48 $36 $30 $47 $85 $39 $54 $34 $39 MONEY MANAGEMENT Dollars & Sense w/Forcast $94 Tobias Managing Your Money Call DATA BASE MANAGEMENT Clipper $329 Cornerstone $67 dBase II Call dBase III Plus Call Extended Report Writer $74 Knowledgeman II $249 Nutshell 2.0 $59 PFS: File $76 PFS: Report $67 Quickcode $1 38 QuickReport $138 Reflex $82 Think Tank $91 R:Base 5000 SystemV $329 Many other titles available. Inquiry 75 for MS-DOS Products. Inquiry 76 for all others. COmPUTER WAREHOUSE Order Line: 1-800-528-1054 Order Processing: 602-224-9345 2222 E. Indian School Rd. Phoenix, Arizona 85016 602-954-6109 Store Hours: Mon-Fri 10-5:30 Saturday 9-1 Order Line Hours: Mon-Fri 7-5:30 Saturday 9-1 Order Processing Hours: Mon-Fri 10-3 Product shipped in factory cartons with manufacturer's warranty. Please add $6.00 per order for UPS ground shippi ng on orders up to 10 lbs. Orders 10 lbs. and under you pay for ground service, receive air service at no extra charge. Available on orders 1 1 -30 lbs. $17 for air service. Prices & availability subject to change without notice. Send cashier's check or money order..."all other checks will delay shipping two weeks. PD PROLOG system. In one category of such built- in predicates is the cut, symbolized by an exclamation point, which modifies the search behavior. Without the cut, implementing the resolution principle would be practically impossible. Main- taining the search tree in such a way that backtracking is possible is feasi- ble only for portions of a Prolog search. Once the program ascertains that the path chosen is a correct one. committing the system so that back- tracking is not possible permits reclamation of large amounts of mem- ory. It would be very desirable to use the exclamation point in conjunction with append in the following way: modified append( X, Y, Z ) :- append( X, Y, Z ), ! Thus, modified append recog- nizes that there is only one way to ap- pend lists, and backtracking informa- tion need not be retained. The ! means that memory used need not be proportional to the amount of time spent in forward search. The cut is an extralogical feature, one that com- promises Prolog's claim to be an im- plementation of predicate calculus, but it is necessary for practical programming. Other built-in predicates construct data structures or have residual side effects. Accomplishment by side ef- fect is typical of the way that parsers, or expression recognizers, construct data structures while seeming to answer the useless question "Is this a sentence in the language?" This is not a new idea. The predicate read creates a new structure in response to keyboard input or input from a file. The predicates asserta and assertz add new clauses to the database. Thus, if you were interested in adding integrated editing capability to PD PROLOG (so that you could add clauses without exiting to an external editor), you might write the following clause: add :- read( X ), assertz( X ). rem :- read( X ), retract( X ). Input The predicate see tells the PD PRO- LOG shell to accept goals from a file in place of the keyboard. You could write a form of another built-in predi- cate, consult, with the following primitives: consultfile( Filename ) :- see( Filename ), repeat, doread( X ), assertclause( X ), var ( X ), see( Filename ), see( user ), !. doread( X ) :- read( X ), !. doread( ). assertclause( X ) :- assertz( X ), !. assertclause( _ ). Result Remarks i Clause 2 [X | List3] (List 3 = [b,c]) l \ Clause 2 a [X' | List3'] (List 3' = [c]) i \ Clause 2 b [X" | List3"] (List 3" = []. the empty set) Clause 1 c L (in Clause 1 L = [d.e.f]) End. Figure I : The successive invocation of clause 2 {defined in the text of this article) with the end result L = [d,e,f]. Note that repeat always succeeds upon backtracking. This causes the read . . .assert loop. The form of loop control depends upon the nature of the parameter of doread. When end of file is reached, the read predicate fails, and doread returns an uninstan- tiated variable. This is accepted by as- sertclause, although assert fails, so the variable test var is executed. If end of file has not occurred, var fails because X is a bound variable, so con- trol backtracks to repeat which always succeeds, causing another clause to be read. If end of file is reached, var succeeds, the input stream is closed by see( user ), and consultfile suc- ceeds. The Control Strategy of Prolog It has been thought by some that the backward-chaining inference engine built into Prolog prescribes and limits the method of problem solving. This, the opponents say, implies that a lan- guage like LISP, which manipulates structures on a lower level, is better for serious work because you can build an inference engine especially for the problem at hand. I would argue, however, that while backward chaining is always conve- niently available for problem solving, it can be viewed on another level as simply a control structure. All lan- guages have control structures, which simply represent the bottom end of the capabilities of sophisticated in- ference engines. No one would sug- gest that the if, for, do, or while state- ments of the C language delimit what can be written in the language. The simplest inference engine you can construct in Prolog is the one used by Prolog itself: g( true ) :- !. g((E1,E2)):-!,g(E1 ), g( E2 ). g( E ) :- clause( E, Antecedents ), interpret Antecedents ). The ! in the first clause modifies the behavior on backtracking so that the Prolog system never attempts the other g clauses. This is desirable because true is a Prolog quantity that is, by definition, true. The second clause simplifies a logical expression {continued) 158 BYTE • OCTOBER 1986 MICRO CAP and MICRO LOGIC put your engineers on line, not in line. ^^^ /vfc'xr/ How many long unproductive hours have you spent "in line" for your simula- tion? Well, no more. MICROCAP and MICROLOGIC can put you on line by turning your PC into a productive and cost-effective engineering workstation. Both of these sophisticated engineering tools provide you with quick and efficient solutions to your simulation problems. And here's how. MICROCAP: Your Analog Solution MICROCAP is an interactive analog circuit drawing and simulation system. It allows you to sketch a circuit diagram right on the CRT screen, then run an AC, DC, or Transient analysis. While pro- viding you with libraries for defined models of bipolar and MOS devices, Opamps, transformers, diodes, and much more, MICROCAP also includes features not even found in SPICE. MICROCAP II lets you be even more productive. As an advanced version, it employs sparse matrix techniques for fester simulation speed and larger net- works. In addition, you get even more advanced device models, worst case capa- bilities, temperature stepping, Fourier analysis, and macro capability. MICROLOGIC: Your Digital Solution MICROLOGIC provides you with a similar interactive drawing and analysis environment for digital work. Using standard PC hardware, you can create logic diagrams of up to 9 pages with each containing up to 200 gates. The system automatically creates the netlist required for a timing simulation and will handle networks of up to 1800 gates. It provides you with libraries for 36 user-defined basic gate types, 36 data channels of 256 bits each, 10 user-defined clock wave- forms, and up to 50 macros in each net- work. MICROLOGIC produces high-resolution timing diagrams showing selected waveforms and associated delays, glitches, and spikes — just like the real thing. "Typical MICROLOGIC Diagram" Reviewers Love These Solutions Regarding MICROCAP ... "A highly recommended analog design program" (PC Tech Journal 3/84). "A valuable tool for circuit designers" (Personal Software Magazine 11/83). Regarding MICROLOGIC . . . "An effi- cient design system that does what it is supposed to do at a reasonable price" (Byte 4/84). MICROCAP and MICROLOGIC are available for the Apple II (64k), IBM PC (128k), and HP-150 computers and priced at 5475 and S450 respectively. Demo versions are available for 575. MICROCAP II is available for the Macintosh, IBM PC (256k), and HP-150 systems and is priced at S895. Demo versions are available for S100. Demopricesare credited to the purchase price of the actual system. Now, to get on line, call or write today! Spectrum Software 1021 S. Wolfe Road, Dept. B Sunnyvale, CA 94087 (408)738-4387 inquiry 287 PD PROLOG by subdividing it into two smaller problems, or goals, while the cut blocks the third clause from ever try- ing to satisfy a logical goal. The third clause actually searches the database with the built-in predicate clause and tries to satisfy the antecedents of what it finds. In most cases, the third clause will be invoked first, then the second, and the first possibly not at all. Thus, if you have a database of facts alpha( X, Y ) :- beta. alpha. alpha( X, Y, z ). and you give the Prolog system the goal clause( alpha( Var, const ), Body ) a search will be made for clauses in the database matching the descrip- tion given to clause. The only match would be Var = X, Body = beta. Backward chaining means to reason from a presumed form of the solution to find the proof that the solution is true. But this is only the basic motif of programming. Prolog is not a true implementation of predicate calculus {continued) A Prolog Strategy for Telecommunications Routing In my work for a large corporation, I was able to solve a common tele- communications problem in a flexible way. This corporation uses a private telephone network to communicate between various divisions located throughout the United States. The switching algorithm is handled locally utilizing routing tables prepared by a Prolog program. Optimal routing com- puted by an intelligent strategy is more efficient than a rigid star network topology. BY Li SU My program implements these con- cepts in PD PROLOG. In figure A. the large boxes represent corporate divi- sions, and the small boxes represent telephones, numbered 1 through 16. The short lines represent local (direct- connect) phone lines, and the heavy lines represent long-distance lines. The phones connected by long-distance lines are gate phones between the in- dividual offices. The rules for making a call are as follows: Figure A: Example layout for a private phone network with 16 telephones in four offices. 1 . If two phones are connected to the same local line (e.g., PH01 and PH02). the call will be routed through direct- ly. One local call is charged. 2. If two gate phones are connected by a long-distance line (such as PH04 and PHI 3), the call will be routed through directly. One long-distance call is charged. 3. If two phones are not covered by the preceding cases (such as PH05 and PHI I), the call will first be connected to the local gate phone. One local call is charged. Then the call will be con- nected by a long-distance line to the next gate phone (it is picked by the Prolog program). One long-distance call is charged. The rest of the handling will be in the same manner until the call is finally through. The total charges for the call will depend on how many intermediate connections are made. This is one of the advantages of using local switching. A text file contains a list of divisions, phone numbers, and gate phones. An- other text file contains all the physical connections between two divisions and the type of each connection. The reason for keeping two text files is that adding or removing a phone number will have no effect on the physical con- nections. On the other hand, changing the physical connections will not im- pact the phone numbers. Li Su (729 East 11th St. #301, Richfield, MN 55432) is a systems analyst working in the area of network management. 160 BYTE • OCTOBER 1986 LOGITECH MODULA-2/86 HOLIDAY mCKAGE $ 89 Price ■ Separate Compilation ■ Native Code Generation ■ Large Memory Model Support ■ Multitasking ■ Powerful Debugging Tools ■ Comprehensive Module Library ■ Available for the PC and the VAX Use LOGITECH MODULA-2/86 to decrease your overall development cycle and produce more reliable, more maintainable code. • LOGITECH MODULA-2/86 $89 Includes Editor, Run Time System, Linker, 8087 Software Emulation, Binary Coded Decimal (BCD) Module, Logitech's com- prehensive library, Utility to generate standard .EXE files. AND more! • LOGITECH MODULA-2/86 with 8087 Support $129 m LOGITECH MODULA-2/86 ^ PLUS $189 For machines with 512K of RAM . Increases compilation speed by 50%. • RUN TIME DEBUGGER (Source level!) $69 The ultimate professional's tool! Display source, data, call chain and raw memory. Set break points, variables, pinpoint bugs in your source! j} UTILITIES PACKAGE $49 Features a Post-Mortem Debugger (PMD). If your program crashes at run-time the PMD allows you to analyze the statusof the program and locate the error. Also includes a Disassembler, Cross Reference Utility,and Version that allows conditional compilation. LIBRARY SOURCES Source code now available for customization or exemplification. $99 ff WINDOW PACKAGE Build windows into your programs. Features virtual screens, color support, overlapping windows and a variety of borders. MAKE UTILITY $29 Figures out dependencies and automatically selects modules affected by code changes to minimize recompilation and relinking. • CROSS RUN TIME $199 Debugger anld ROM Package Still available at tfn introductory price! TURBO PASCAL to $49 MODULA-2 TRANSLATOR "Turbo Pascal. ..is a very good system. But don 't make the mistake of trying to use it for large programs" Niklaus Wirth* Our Translator makes it even easier for Turbo users to step up to Modula-2/86. It changes your Turbo source code into Modula-2/86 source, solves all the incompatibilities, and translates the function calls of Turbo into Modula-2/86 procedures. Implements the complete Turbo libraries! Call for information about our VAX/VMS version, Site License, University Discounts, Dealer & Distributor pricing. 30 Day Money Back Guarantee! To place an order call our special toll free number: ~~~ *^^ „„ A „ 800-231-7717 in California inquiry 173 800-552-8885 *as reported in Mierb Cornucopia. August-September 19(S5.1Furbo Pascal is a registered trademark of Borland international, $199 Special Holiday Offer Step up to the power of LOGITECH 1GDULA-2/86 at a saving of nearly $100 off our usual low prices! We're offering a complete tool set including our compiler with 8087 support (for use with or without an 8087), our Turbo to Modula-2/86 Translator, Run Time Debugger, and Utilities in one holiday package at a special price! V/^ITC I want to step up to I Lj LOGITECH MODULA-2/86! Here's the configuration I'd like: □ Special Holiday Package $199 □ Logitech Modula-2/86 $89 □ with 8087 support $129 □ Plus Package $189 □ Turbo to Modula Translator $49 □ Run Time Debugger $69 □ Utilities Package $49 □ Library Sources $99 □ Window Package $49 □ Make Utility $29 □ ROM Package $199 Add S6.50 lor shipping and handling .Calif. residents add applicable sales tax. Prices valid in U.S. only. Total Enclosed 5 □ Visa □ MasterCard □ Check Enclosed Card Number Expiration Date Signature Name Address City State . Zip LOGITECH Logitech, Inc. 805 Veterans Blvd. Redwood City, C A 94063 Tel: 415-365-9852 In Europe: Logitech SA. Switzerland Tel: 41-21-879656 In Italy: Tel: 39-2-215-5622 •ft • • •« • • 4 PD PROLOG and in fact has a procedural as well as logical interpretation. The side ef- fects of a Prolog proof, which may in- tentionally never be completed, are usually the most important part. These effects are the accumulated ir- reversible effects of the built-in predicates, which can change the state of the system over time. The assert and retract predicates allow a Prolog program to modify the source code as a routine procedure and let you construct systems that learn. The general problem solver notion (GPS) of Newell and Simon can be im- plemented easily in Prolog and ex- emplifies a forward-chaining inference engine (see listing I). This is schematic code that ignores the great problem of all forward-chaining engines, which is to narrow down the search space and obtain optimal solutions. But con- sider for a moment a "travel" prob- lem. You have a map of the United States. You wish to travel from New York to San Francisco. The road map is a network of nodes, each consisting of the intersection of two or more roads. Permitted moves are along roads. The procedure is roughly this: 1 . Find a town closer to the destina- tion. 2. Qualify the move. Is the town ac- cessible by interstate, for example? 3. Select a method of travel (a road and conveyance). 4. Add this to the route that is being constructed. 5. Repeat this procedure unless the goal has been reached. The monitoring of large systems can be easily handled through the state- variable approach. In such cases it does not suffice to consider only the variables local to a particular subpro- cess, since the goal is to avert hazar- dous conditions as well as recognize them. A Prolog system obtains a com- plete characterization of state, which is saved in added clauses. A logical analysis and recharacterization sue- Listing I : A simplified general problem solver algorithm progress( Current, Goal, Path. _sof ar , Path. .sofar ) :- Current = Goal , ! . progress( Current, Goal, Path. _sof ar •, Final _path ) :- find_move( New ), qua 1 i f y( New ) , select_op( Current, New, Method ) add_to_path( Path_sofar, New, Method, New_ ?ath_ sofar ), progress( New, Goal , New. _path_ .sofar , Final. _path ). Listing 2 : The state-variable monitoring approach. mon i tor_process :- repeat , get_state_of_system, check_a I arm, fai I . get_state_of_system :- retractal I ( state_of_system ), readf Temperature ), read( Pr asse asse ). rt( state_off temp, Temperature ) ), rt( state_of( pressure, Pressure ) ). s t a t e_o f ( t e state_of( pr check_a I arm s s Max i s T * Max > 340, a I arm_operator checka I arm. mp, T ), essure, P P, ). ceed each other indefinitely. The ex- ample in listing 2 gives the idea. Prolog Operators Prolog is a simple language compared to something like Common LISP. Pos- sibly jealous of LISP'S complexity, syn- tacticians worked arduously to com- plicate Prolog's syntax. The user-de- finable operator, really a functor in disguise, was found to serve very well. A simple Prolog clause might be alpha( argl, arg2 ) :- argl = arg2, argl > 40. but if we declare it as an operator op( 40, yfy, alpha ) where op is a built-in predicate, 40 is the precedence, and yfy describes the associative properties, it becomes possible to write argl alpha arg2 :- argl = arg2, argl > 40. In DECsystem-10-compatibIe Prolog it also becomes possible to write complex expressions like a op1 b + c - d op2 u xx v - y ** d op3 op4 To translate this, Prolog uses the dis- play predicate, which displays opera- tor-loaded expressions in functor for- mat. Note that an operator performs no function by itself but is merely food for Prolog's inference engine, just like a functor. An exception jvas made for arith- metic expressions. Evaluation of ex- pressions containing the operators +, -, * and / can be forced by the built- in predicate is. The goal X is 3 + 4 which is really the same as 'is'( +(3,4), X ) results in X = 7, while the goal X = 3 + 4 or '='( +(3,4), X ) gives the surprising result X = 3 + 4. The dual mode facilitates symbolic manipulation of arithmetic expres- [continued) 162 BYTE • OCTOBER 1986 IDC3M0USE HOIILW GRAPHICS PACKAGE i ^*S^ LOGIMOUSE C7 Just for the holidays we've wrap- ped up LOGIMOUSE and its Plus Software with Generic C ADD and PC Paintbrush into the graphics package of the year. LOGIPAINT- &-DRAW is the complete graphics toolkit for combining freehand and technical drawing. Use LOGIPAINT-&-DRAW to design your holiday greeting, enhance your spreadsheets, graphs and memos,or create and personalize a map or mechanical. Just create your CADD drawing, import it into PC Paintbrush, and embellish it with paint sketches and fancy fonts. At a saving of almost $50 off our usual low prices, LOGIPAINT-&-DR AW is a holiday package you can't afford to pass up. LOGIPAINT-&-DRAW includes : LOGIMOUSE C7 with Plus Software LOGIMOUSEis the high resolution (200-dot-per-inch) mouse that is ideal for CADD and paint. It connects directly to €\t serial port of any IBM PC/XT/AT or compatible, with no pad or external power supply required. The Plus Package is our tqp'of-jthe-Iine mouse software featuring a pop=upmenu system,ait automatic mouse configurator, a unique mouse interfacefor Lotus 1-2-3, and a mouse based text editor. *£a LOGIC ADD- Generic CADD 2.0 and Dot Plot Generic CADD is the sensational, new CADD package that offers the features and performance of high- priced at an unbelievably low price. The package alsoincludes DotPlot, the add-on utility that turns your dot matrix printer into a plotter. LOGIPAINT- PC Paintbrush PC Paintbrush is the most advanced paint set available for the PC. It's the preferred choice of professional users, but with its icon menus for both graphics and text it's easy and fun for beginners as well. It offers complete graphic capabilities as well as 11 type fonts and a palette of 16 colors. LOGIMOUSE $199 with Borland's Reflex Reflex, Borland's amazing data- base management program, flies with LOGIMOUSE! We offer Reflex with LOGIMOUSE and the Plus Package Software at a very special price! Inquiry 174 LOGIMOUSEis a registered trad emark of LOG ITECH. Lotus and 1-2-3 are trademarks of Lotus Development Corp. Reflex is a trademark of Borland- Analytica. Generic CA DD is a trademark of Generic Software. Inc. PC Paintbrush is a registered trademark of ZSof t Corp. *219 NEW LOGIPAINT-&-DRAW » place a credit card order call our special toll-free number: 800-231-7717 Call toll-free in California: 800-552-8885 • ••••••••••• •'• • • • • • • • • ••••••• 'VT'T^C] I want to add the power of I EjO LOGIMOUSE to my holidays! □ LOGIPAINT-&-DRAW $219 □ LOGIMOUSE w/Driver 3.0 $99 □ LOGIMOUSE w/Plus Software $119 □ LOGICADD w/Logimouse $189 & Plus Software □ LOGIPAINT w/Logimouse $169 & Plus Software □ REFLEX w/Logimouse & $199 Plus Software For my computer model: . 30-Day Money-Back Guarantee □ VISA □ MasterCard □ Check Enclosed Add 56.50 for shipping and handling. Calif, residents add applicable sales tax. Prices valid in U.S. only. Card Number Expiration Date Signature Name Address City State Zip F D hone DEALER INQUIRIES WELCOME LOGITECH Logitech, Inc. 805 Veterans Blvd. Redwood City, C A 94063 Tel: 415-365-9852 In Europe: Logitech SA, Switzerland Tel: 41-21-879656 In Italy: Tel: 39-2-215-5622 Inquiry 41 If You Need Data Communication Software Try BitCom™ 3.0 Before you invest in costly and hard to use communication software, look into BitCom 3.0. More than 100,000 users told us they prefer BitCom over other communications software. Here are just some of the reasons: Simple User Interface While other programs force you to type commands after commands, BitCom just gives you a form to fill out. To help you select the correct answer, there are even multiple choices for you to pick. Once you set up the parameters for communica- tion, you can startup BitCom without even touching a key. Flexible File Transfer Now, BitCom 3.0 supports the most popular public domain file transfer protocols including XMODEM CRC, YMODEM and batch file transfer. You can send and receive multiple files as easy as typing "*.*"'. With CRC error checking, you can be sure data are sent and received without error. Make Your Own Communication Procedures. There are over 70 powerful script file functions to turn BitCom 3.0 into a flexible tool. For example, you can set up a script file to dial into Western Union's Easylink™, check your mail box, read your messages, print them and save them to a disk file. Other features are: • Supports speed up to 9600 baud. • Uses XON/XOFF flow control for talking to systems with different speeds. • Can be set up to work on COM1 to COM4 • Can re-assign or re-define any function keys. • Phone directory stores up to 32,767 names and descriptions. • Sorts phone directory by name, ID or phone number. • Terminal emulation includes IBM 3101, VT100, VT52. • Set your own screen color during communications. • 132 column support with graphics " rd Only*69 00 Not Copy Protected. Order Today. Call (408) 262-1054 W Bit Software, Inc. P.O. Box 360619 Milpitas, CA 95035 BitCom is a trademark of Bit Software. Inc. Easylink is j trademark of Western Union, PD PROLOG PIE: A Prolog Knowledge by Simon Y. Blackwell While experimenting with modeling theories of knowledge via a computer, I found that no affordable expert system tools were flexible or powerful enough to meet my needs. Hence. I wrote PIE. a Prolog Inference Engine and TVuth Maintenance System, using ADA Prolog (the commercial version of PD PROLOG). Various versions of PIE have provided mechanisms for forward and backward chaining, consistency checking, and dependency-based truth maintenance. However, one of its most interesting features is an editor and compiler based on user-defined Prolog operators. Such an editor/compiler is outlined below. To implement the editor/compiler, you write Prolog rules in which the goals are the same as the syntax of a higher-level language developed to represent the knowledge. (The design of the higher-level language is left to the reader.) The antecedent conditions should be a series of Prolog predicates that assert Prolog clauses to the Prolog database. Suppose that only if is a logical connector in the higher-level language. Declare only if as an operator and define a rule as follows: Rule I Consequent only if Antecedent :- asserta(Consequent:-Antecedent). This rule will accept input from either the user or a stream opened using the Prolog predicate see(). For example. boy(X) only if (male(X),human(X),young(X)). would result in boy(X) :- male(X),human(X),young(X). You can take this several steps further by declaring another operator, @, This will allow you to name rules and assign a certainty factor to them, as in Rule 2 Rule @ Certainty @ Consequent only if Antecedents :- asserta(rule(Rule,Certainty,Consequent,Antecedents)), asserta(Consequent :- Antecedents,!, low_antecedent cert( Antecedents, L), Cons-cert is ((Certainty * L) / 100)) asserta(Consequent), asserta(fact(Consequent,Cons-cert,Rule))). Note the Prolog rule that is asserted in Rule 2. A rule of such a form takes full advantage of the built-in Prolog inference engine. A programmer might be tempted to write rules or have the compiler write rules of the form of Rule 3. Rule 3 fact(boy(X),Cert)):-fact(male(X) I Cert1)) I fact(ftuman(X),Ger;t2)), fact(young(X),Cert 3)), low_antecedent-cert([Cert1 ,Cert2,Cert3], L), Cert is ((< rule-certainty > * L) / 100). sions as well as simple evaluation. PD PROLOG supports 97 built-in predicates, all of which are described in Programming in Prolog or in the PD PROLOG documentation. Ramachan- dran Bharath provides exercises in the use of PD and ED PROLOG in Introduc- tion to Prolog (Tab Books. 1985). The accompanying text boxes by Li Su and Simon Y. Blackwell demon- strate the power of PD PROLOG to handle specific, physically constrained problems as well as knowledge rep- resentation in the abstract sense. 164 B YTE • OCTOBER 1986 PD PROLOG Base Editor and Compiler Such rules are not efficient because they generate a large list to be searched, the list of all structures with the functor fact Rule 3 may also have to be resatisfied if the goal fact(boy(X),Cert)) appears in several rules. Note, however, that all goals in Rule 2 are asserted once satisfied. This prevents them from having to be satisfied multiple times. Asserting the satisfied goal to the top of the database stack is very important; otherwise subse- quent calls to the goal will reinvoke the rule, since the rule will be higher in the search stack. The assertion of rule(Name,Certainty,Consequent,Antecedents) in Rule 2 gives you the ability to retrieve, print out, reason about, or reference rules easily. The assertion of fact(Consequent,Cons-cert,Riile) allows you to track the certainty of and provide justification for the facts. I have left the definition of the predicate low antecedent cert to the reader. Given the Antecedents, the predicate should return the lowest certainty by retriev- ing their fact forms with attached certainties. Cons-cert is ((Certainty * L) / 100) multiplies the certainty in the rule by the lowest antecedent certainty to determine the certainty in the consequent. I've arbitrarily chosen a scale of 1 to 100 for this example. The efficiency of certainty propagation could be improved by tagging each fact directly, for example, boy(X.Certainty). Such an implementation removes the need to search for certainties after satisfying the antecedent goals. How- ever, this is at the expense of considerably complicating the editor/compiler. A final modification of the editor/compiler will allow a threshold certainty to be placed on the rule. If the certainty in the antecedent conditions is below a set limit, the goal will then fail. This is accomplished by Rule @ Certainty @ Threshold @ Consequent only if Antecedents :- asserta(rule(Rule,Certainty,Threshold,Consequent,Antecedents)) assert(Consequent :- Antecedents,!, low antecedents cert( Antecedents, L), L < Threshold, Cons-cert is ((Certainty * L) / 100), asserta(Consequent), asserta(fact(Consequent,Cons-cert,Rule))), This rule will accept input of the form rule-1 @ 100 @ 75 @ boy(X) only if (male(X),human(X),young(X)). As a result. boy(< something >) would never be asserted with less that 75 per- cent confidence. The same principles, with some embellishment, can be used to convert input like X is a boy into boy(X), create a frame-based inheritance system, or imple- ment dependency tracking and forward-chaining mechanisms. For example, for a general forward chainer, you would declare an operator implies, define your own assert predicate, and utilize rule facts like those asserted by the editor/ compiler outlined here. Simon Y. Blackwell [Inference Corp.. 2777 Summer St., Suite 402. Stamford. CT 06905) is a knowledge engineering consultant. Editor's note: PD PROLOG is available on disk, and on BIX. See the insert card after page 320 for details. Listings are also avail- able on BYTEnet. See page 4. You will need an IBM PC or compatible with 256K bytes of memory and MS-DOS 2.0. There are four compressed files: PDPROLOG.EQE. PRO LOG.DQC, PROLOGED.CQM. and PR- CON F.EQE. as well as USQ.EXE, which you will need to decompress them. Simon Blackw ell's expert system shell. PIE. is also available. The files are KNOW.PQO. PIE.POT, and KOPS.QQQ. which must also be decompressed with USQ.EXE. ■ The ultimate time saving input device for IBM PC! KEYPORT 60 60 Programmable Function Key 5 1 Polytel'5 programmable multifunction Keypad, the KEYPORT 60, is your hey to one-finger pushbutton^ software. LO ^%x E^# \nstea doT • Every hey fully programmable. • Label the hey5 so you never forget which hey doe5 what • Ideal for entering repetitive commands with a single touch. • Ho need to memorize hard-to- remember command sequences. • Includes ready-to-go template5 for D05, WordStar, Lotu5 1-2-5, and BA5IC. • Runs on IBM PC, X7; AT. and compatible5. • Connects to game port— Ieave5 your other ports free. • Does not interfere with normal operation of regular keyboard. • 60-day money bach guarantee- no ri5h to you. • • • • Price— $139 • • • • (add $6 5hipping for each Keyport) — SPECIAL OFFER — Game port included! A $45 value! To order, call Polytel at 1-800-245-6655 In California, call 1-408-730-1347 Or5end $145 check or money order to: Polytel Computer Products Corp. 1250 Oakmead Parkway, 5uite 310 Sunnyvale, California 94086 In the (Jtt and Scandinavia, contact Electrone Ltd. Haywood house, high Street Pinner, Middlesex hA5 5QA Tel* 01-429-2433 V/I5A, MasterCard & American Express cheerfully accepted! OCTOBER 1986 • BYTE 165 Microprocessor Development Dreams Come True! On-Line Help menus, Command Glossary, and Word List. Windows can be used to view source files, previous traces, and more. Symbol translation or source code line display. Screen displays scroll off into history buffer - can be viewed later. ADfi ADR TO ADR Seta up the trigger specification for analyzer i -A15. { Sets trigger for AO to A19 if five digit a period. ) USAGE Deter mine 5 'which 16 bit addresses the „^~- -~ trigger on. Can also trigger on 20 bi With TO the trigger will occur on the froi edrl to adr2. 3. LOG modes LOG TO PRINT LOG TO FILE PRINTER NMI VECTOR SWI VECTOR cy» ADR DATA 1 0000 31FE18 LD SP,T 4 0003 DD213412 LD IX. 123 8 0007 FD217856 LD IY,567 C INITJPTO O00B 210019 LD 11.190' F 000E 3600 LD (HL).O 11 1900 00 write -K-INCJffiH 00 10 34 INC (HL) 13 1900 00 read 14 1900 01 write 15 0011 34 INC (HL) AF=808B (S2-a-pNC) BO0000 DE=0020 HL-1 INCJIEH 0010 34 INC (HL) Pop-up Mode Selection panel called by soft key. Disassembly of code in memory can be ^compared with trace in adjacent window. 0007 FD217856 LD IY.5678 000B 210019 LD HL.1900 S 0O0E 3600 LD (HL),0/ 0010 34 INC (H . 0011 34 INC (HL) 0012 14 INC D 0013 14 INC D 0014 210001 LD HL.100 :1234 IY-5678 SP«18FE PC=0010" resume) [^JJJ (top) Symbolic debug register display. Context sensitive prompt line. NEW UniLab IF: FOUR INSTRUMENTS IN ONE! Here are all the development tools you ever dreamed of integrated into one PC-controlled system: • An Advanced 48-Channel Bus State Analyzer • An 8/16-Bit Universal Emulator • A Built-in EPROM Programmer • An Input Stimulus Generator The synergy of these instru- ments that were designed together to work together saves you time and money. All UniLab II commands and menus are seamlessly integrated into a single, super-efficient working environment. ACTION COUPON Send me info on UniLab II and your No-Risk 10-Day Evaluation! Name: Company: Address: _ City: State/ZIP:. Tel.: .Title: Ext. UniLab II™ Universal Development Laboratory An Integrated Software Environment, too ! Imagine being able to split your screen and look at real-time program traces and the source code that pro- duced them at the same time! Then go to the On-Line Help or pop-up Mode Panels instantly. If you see something on a trace that doesn't look like last time, you can hold it in one window while you scroll back through your pre- vious displays. If you set a breakpoint and single-step you can then go back to using the analyzer without missing a beat. You can even execute a DOS batch file from UniLab to edit, as- semble, and link, then automatically load the new program and symbol table. UniLab uses the full power of the PC. Find bugs fast with Hardware -assisted Debugging The traditional way to look for bugs is to single-step through sus- pect parts of the code until you catch it in the act. This requires a lot of guessing and wasted time. With UniLab's built-in analyzer you eliminate the guesswork. Just de- scribe the bug symptom as a trigger, and let the UniLab hardware search for it as your program runs in real time. UniLab will show you a trace of the program steps leading up to the symptom, almost like magic. A friendly user interface UniLab lets you use commands or menus - or a mixture of both. An on-line manual, soft-key help screens, a glossary of commands and their parameters, with full-screen writeups are also at the ready. Reconfigure for any 8 or 16-bit processor in seconds Thanks to our unique approach to emulation, changes between pro- cessor types require only cable and diskette changes. At last count, we specifically support over 120 micro- processors. Bonus! The built-in EPROM Programmer and Stimulus Genera- tor are simply icing on the cake. Affordable capability How much does all this superior capability cost? A lot less than our less able competitors, and probably a lot less than you expect. Our pro- ducts are sold with a Money Back Guarantee, and our crack team of Applications Engineers is standing by if you need help. Get the full story on the amazing UniLab II and how it can liberate your development pro- jects, today. 702 Marshall Street Redwood City, California 94063 CALL TOLL FREE: 1-800-245-8500 In California (415) 361-8883 166 BYTE • OCTOBER 1986 Inquiry 219 PUBLIC DOMAIN POWERHOUSES AN ICON TUTORIAL by Ralph E. Griswold and Madge T. Griswold An expression can produce a sequence of results if it succeeds— or none at all if it fails ICON IS A high-level, general-purpose programming language that em- phasizes nonnumeric computation, that is, the processing of character strings and structures. It is written in C. Originally implemented under UNIX. Icon has been transported to other operating systems including DOS and VAX/VMS. It runs on ma- chines ranging from personal com- puters to mainframes. Its application areas include artificial intelligence, ex- pert systems, symbolic mathematics, text generation, editing, analysis, string processing, program genera- tion, cryptography, language transla- tion, molecular genetics, and others. [Editor's note: Versions for MS-DOS, U N IX, and VAX/VMS are available from the authors in executable and C source code: The MS-DOS executable code and some sample programs are available on BIX and BYTEnet under the following filenames: ICON- READ.ME, ICONT.EXEC ICONX.EXE, ILINK.EXE. ITRAN.EXE. HELUQICN. CROSS.ICN. CROSS.DAT, MEANDER. ICN. MEANDER.DAT, ROMAN.ICN. WORDCTN.ICN, OVERVIEW.DOC. EXTEN.DOC. RUN.DOC. REGIS.FRM. and TROUBLE.FRM. See page 4 and the insert card following page 320 for details. For the source code, write to the Icon Project. Department of Computer Science. The Univer- sity of Arizona. TUcson. AZ 8572 1.| The design of Icon stresses ease of programming, which permits short, concise programs. It has two major characteristics: expressions that can produce sequences of results and a goal-directed evaluation that automat- ically searches for solutions. In addi- tion to a large repertoire of simple string operations, Icon has a high-level string-scanning facility for pattern matching. Its data structures include lists with stack and queue access, sets that can have members of any type, and tables with associative lookup. A data struc- ture can have values of various types. For example, a list can contain both integers and strings— and even lists. Icon also has automatic storage man- agement; it creates objects at run time instead of during compilation. And you don't need type declarations; Icon has run-time checking and auto- matic type conversion. General Aspects of Icon You may not notice anything unusual if you look at an Icon program. It looks a lot like a Pascal, C. or PL/I pro- gram. It is not distinctive in ap- pearance. Icon's distinctive aspects lie in its unusual expression-evaluation mechanism, its data structures, and its emphasis on high-level processing of character strings. An Icon program consists of a col- lection of procedure declarations within which are the expressions that carry out the program's various com- putations. The simple program procedure main( ) write ("welcome to outer space") end does what you think it would— it writes out "welcome to outer space." [continued] Ralph E. Griswold. a professor of computer science at The U niversity of Arizona, was one of the originators of the Icon Programming language. He has a B.S. in physics and M.S. and Ph.D. degrees in electrical engineering, all from Stanford University. Madge T Griswold is a freelance writer and consultant on computing applications and computer-based publication techniques. She has a B.A. in history and journalism from Syracuse University and anM.A. in history from The University of Arizona. The Griswolds can be reached at the Department of Computer Science. The Univer- sity of Arizona. Tucson. AZ 85721. OCTOBER 1986 • BYTE 167 ICON TUTORIAL The syntax of expressions in Icon is similar to that in most other program- ming languages. There are the usual operations, both unary (prefix) and binary (infix), function calls, reserved words for control structures and declaration components, and so on. This article does not contain details of the syntax, but the examples given provide the general idea. A precise description of Icon's syntax is found in reference I. To understand Icon, you need to have a general idea of the types of data it supports and the operations it performs on that data. In addition to integers and real (floating-point) numbers, Icon supports many less conventional data types, including strings (ordered sequences of charac- ters), "csets" (unordered sets of char- acters), lists (ordered sequences of values), sets (unordered sets of values), and tables (unordered sets of value pairs). Icon even considers pro- cedures to be data types. You can represent integers, real numbers, strings, and csets literally. The syntax is conventional; for exam- ple, i := 20 n := 3.14159 greeting := "howdy" vowels := 'aeiou' Identifiers are sequences of letters, and the := operator indicates assign- ment. Strings and csets are enclosed in double and single quotes, respec- tively. Many operations compute values for the various data types. Since Icon has no type declarations, any variable can have any type of value at any time, depending on what happens during program execution. For example, you can write x := 1 x :"= "hello" Icon takes care of type checking and conversion; you don't have to specify them when writing your program. You can even use types that are collec- tions of values. A list, for instance, may have values (elements) of dif- ferent types. An example is city : = [ , Tucson"500000,1986]. The square brackets enclose the three list values, one of which is a string while the other two are integers. This ability to have heterogeneous structures often allows programs to be written more concisely. The freedom from type declarations certainly makes it easier to write programs albeit at some ex- pense in efficiency and error check- ing. Expression Evaluation One thing that distinguishes Icon from other programming languages is the method it uses to evaluate expres- sions. In most programming lan- guages, an expression always pro- duces a result— one result. It may be difficult to imagine how this could be otherwise. After all, computation means the production of a result. On the other hand, every programming language has conditional operations. An example is if i < j then write(i). Usually a conditional operation such as i < j produces a Boolean value, either true or false, depending on the specified relation. (Some languages use nonzero and zero integer values in place of Booleans but with the same meaning.) Control structures then test these values. Icon takes another view of this situa- tion: In Icon, if the relation does not hold (if i is not less than j, for exam- ple), the corresponding expression does not produce a result; it fails. However, if the relation does hold, the expression does produce a result- its right argument; it succeeds. Thus, i < j fails if i is not less than j and pro- duces no result; but it produces the value of j if the expression succeeds, that is, if i is less than j. Correspond- ingly, control structures in Icon are driven by the success or failure of their control expressions rather than by Boolean values. These conditional operations ap- pear exactly the same as they do in conventional languages, but Icon of- fers other possibilities. For instance, control expressions are no longer limited to those that produce Boolean values. In Icon, you can use any ex- pression as a control expression. It may produce a meaningful result, or it may fail. Since the result is not limited to being Boolean, you can use it in another computation. Consider, for example, while line := read() do write(line). The function read() pro- duces the next line if there is one, from standard input but fails at the end of the file. The value it produces is used in assignment, but the loop terminates at the end of the file. This has two important side effects. First, it eliminates any need for end-of-file testing; it follows automatically from the read function. Second, it is not an error for an expression to fail to pro- duce a result; it is a normal conse- quence of computation. In Icon, failure is "inherited," since, if an expression fails, there is nothing to operate on and no result can be produced. Thus, you can write this ex- ample more concisely if you omit the do clause and combine the read and write as in while write(read()). The distinction between success and failure in Icon's expression evaluation is only the beginning. Jn some situations, a computation may have more than one possible result. For example, the following function produces the position of one string that exists as a substring of another: s := "There are several errors" find("er"s) The string, or substring, "er" occurs at three different places in the string s. Most programming languages solve this ambiguity by picking one of the three results— usually the first one. Of the three positions— 3, 14, and 19— two would be discarded. If the dis- carded possibilities are needed, they must be obtained by using substrings or some similar mechanism. In Icon, however, an expression can generate a sequence of results if that is ap- propriate in context. There are two contexts in which this may be appro- priate: iteration and goal-directed evaluation. The control structure every expx\ do expxl performs iteration and causes expr\ to produce all its results in sequence. For every result expx\ produces, Icon evaluates expxl. For example, the function find can generate all positions, so that for the value of s given above, every i := find ( n er",s) do write(i) writes 3, 14. and 19. Generation, like failure, is inherited; therefore, you can write this expres- [continued] 168 B YTE • OCTOBER 1986 Now available worldwide: Prospero's professional language compilers for PCs and STs PRO PASCAL & PRO FORTRAN-77: FOR IBM PCs, XTs, ATs &. COMPATIBLES, & ALL OTHER MS-DOS MACHINES. ALSO FOR ATARI ST, AND SINCLAIR QL USE THE LANGUAGES THE PROFESSIONALS USE: PASCAL AND FORTRAN. C is high on performance but low on safety, structure, portability and maintainability. Pascal is excellent for education and for long-term projects. Fortran gives you access to hundreds of existing programs - and uses established programming skills! ISO-PASCAL Pro Pascal is validated to ISO 7185 / ANSI 770X3.97 Class A (no errors) on the Z80 processor under CP/M and the 8088 processor under PC-DOS. This provides a guarantee that the compiler is complete and works perfectly. FORTRAN-77 Pro Fortran-77 is a full implementation of ANSI Fortran-77 with no omissions and many useful extensions. Validation is imminent. Prospero Compilers Work! No known bugs when we ship - so you don't have to program around the holes! "Lazy I/O" for interactive use. Good Housekeeping All files closed on exit from procedure Hand-coded library Produces compact and efficient programs. Ideal for • software developers • universities and colleges • government and industry • students of computing • development of personal skills • solving technical problems • training institutions 16 digit accuracy Single and double precision IEEE format arithmetic gives 7 or 16 digit precision. Inquiry 243 50,000 Lines Big Compiles big programs >50,000 lines... >5,000 identifiers-Separate compilation to build libraries and massive program suites. Jumbo New Jumbo memory model with Pro Fortran-77 gives unrestricted access to all 640K under MS-DOS. Compilers include • compiler • linker • run-time libraries • librarian • X-ref program • sample programs • 200+ page manual GEM Full GEM AES and VDI bindings supplied with Atari products and (on request) with Pro Pascal for MS-DOS. Z80 Pro Pascal and Pro Fortran-66 are available for Z80 machines. Symbolic debugger 16 bit versions include Probe - a superb symbolic debugger. You can view fully compiled code as source, backtrack, display and change variables using source names, check the calling stack, and break anywhere. Pro Fortran-77 version can also Debug and produce execution profiles. Pascal « — » Fortran Interlinkable code means you can use the best of both languages. Ask for details. We Specialize At Prospero we specialize in writing language compilers. We produce the best possible compilers, conforming to the appropriate standard, and giving program- mers a secure base on which to build. Cross Compilers & Specials We can provide cross compilers in Pascal and Fortran within the 68000 - 8086 - Z80 triangle. We'll also develop special compilers to customer specifications. Quote: "Pro Pascal is not only ISO- validated, it is also a superb-quality and very full software development tool." Personal Computer World Nov 1985 Prospero compilers are used at more than 6000 sites around the world. It's easy to order! Credit card holders phone Sue Thomas on 703-354-0866. Mastercard, Visa, Diners & Amex accepted. Free Reviews & Info Call this number also for a free info pack with datasheets and magazine reviews. Prospero's compilers are also available from good software dealers and distributors worldwide. Software distributors Contact us for our Worldwide Distribution Guide, or see us in the Hilton at Comdex Fall, Las Vegas. US Distributors: PC: PC Brand 212-410-4001 Software Consulting 215-837-8484 Atari: Apex Resources 617-232- 9686 Oreman Sales 504-468-2001 QL: A+ Computer Resources 603-357-1800 Quantum 201-328-8846 Call for worldwide distributor list Pro spero Software ^LANGUAGES FOR MICROCOMPUTER PROFESSIONALS 190 CASTELNAU. LONDON SW 13 9DH, ENGLAND TEL 01-741 H531 TELEX 8814396 I 1 Mail order service Send this coupon with check to Prospero Software Ltd, 190 Castelnau, London SW13 9DH, England. Add $7 shipping and allow 28 days for delivery. Please supply (enter number required): __ Pro Fortran-77 for Atari ST at SI 49 _ Pro Pascal for Atari ST at $ 149 Pro Fortran-77 for Sinclair QL at $129 Pro Pascal for Sinclair QL at $129 __ Pro Fortran-77 for MS-DOS at $495 _ Pro Pascal for MS-DOS at $390 _ Pro Pascal for CP/M-86 at $390 I enclose payment of $ Name Address State/ Zip Telephone No In case of query call 011-441-741 8531 or telex 8814396. Tick product name if you just require information! Byte 10/86 OCTOBER 1986 -BYTE 169 ICON TUTORIAL sion more compactly as every write (find("er",s)). While iteration forces an expression to generate all its results, there are many situations in which you need only one result. Therefore, i := find ("er",s) assigns the value 3 to i. This method generates no more results since they are not needed. Thus, con- ventional expression evaluation oc- curs automatically if you don't use a context that generates more than one result. Another possibility: There are often several possible solutions to a prob- lem, but they don't all satisfy a larger goal. A simple example would be determining whether "er" occurs in both s1 and s2. It may occur in several positions in both, but locating a com- mon position is laborious in most pro- gramming languages. Icon automati- cally forces expressions to produce results if they are needed to satisfy a condition in an enclosing expression. An example: find("er",s1) = find ("er",s2) succeeds if and only if "er" occurs at the same position in s1 and s2 (the operator = compares for numerical equality). The mechanism is simple and auto- matic. If the left and right expressions produce results, but they are not equal, Icon generates the next result from the right expression. This pro- cess continues until either the com- parison succeeds or the right expres- sion has no more results. If the right expression has no more results, Icon generates the next result of the left expression, and each of the results for the right expression is generated again. It is simple and natural and straightforward. Much of the concise- ness of Icon programs comes from the use of this facility— and it is com- pletely general; it applies to all ex- pressions and to all types of results in all contexts. Given the idea of expressions that can produce sequences of results, there are all kinds of possibilities. For example, i to j is an expression that generates the integers from i to j. Thus, you can write a for-style control structure using every. . .do, as in every i := 1 to 10 do f(i). The rigid for- mat of the for-style control structure in conventional languages is not Listing I: An Icon procedure to produce the larger of two numbers. procedure max( i , j ) if i > j then return i else return j end Listing 2: An example of how a procedure can fail. procedure greater (i,j) if i > j then return i e Ise f ai I end Listing 3: A procedure to generate the successive powers of a number i. procedure powers(i) j := repeat \ suspend i " j j + :- 1 end needed. You can write this expression more concisely as every f(1 to 10). Another control structure that follows naturally from having se- quences of results is alternation: exprl | exprl produces the results for exprl followed by the results for exprl. In conditional contexts, this amounts to logical disjunction. For example, if find ("er",s) = (4 | 14) then write(s) writes the value of s if it contains "er" at posi- tion 4 or 14. In iterative contexts, alter- nation has the effect of "exprl then exprl." For example, every write(find("er"s1 | s2)) writes all the positions of "er" in s1 followed by all the positions of "er" in s2. Procedures Procedures provide a way of extend- ing Icon's built-in repertoire of operators and functions. For example, Icon has no function for producing the larger of two numbers. The pro- cedure in listing I does this. You call such a procedure exactly the same way you call a function: write(max(ij)). It can also fail the same way a func- tion can fail (see listing 2). In this case, if i is not greater than j, the procedure fails. An Icon procedure can also be a generator, by using suspend instead of return to produce a result. When a procedure suspends, its environ- ment is left intact and you can resume executing the procedure to produce another result. For example, the pro- cedure in listing 3 generates the suc- cessive powers of a number. The ex- pression i~j produces K The pro- cedure suspends for the first time when i is raised to the zeroth power (i.e., is equal to I). If the procedure resumes to obtain another result, j is incremented ( j +:= 1 is an abbrevia- tion for j := j + 1). The repeat con- trol structure is a loop that never ter- minates. Thus, the procedure powers next suspends when j is raised to the first power, then when it is squared, cubed, and so on. For example, powers(2) generates 1, 2, 4, 8, 16, and so on. Note that this generator pro- duces an infinite sequence (or could, except for arithmetic overflow). An in- finite generator presents no problem unless you use it in an iterative con- text. There is also a control structure exprl \ exprl that limits the number of exprl results to at most the value of exprl. Thus, every write(powers(2)) \ 5 writes 1, 1. 4, 8, 16. String Processing After considering the possibilities of Icon expression evaluation, character string processing may seem mun- dane. Nonetheless, much computing involves string processing, and con- ventional programming languages have limited facilities for such com- putations. Icon has two levels of string processing: analyzing and synthesiz- ing strings based on character posi- tion, and pattern matching, which lets you scan strings without worrying about the details. First, while strings are sequences of characters, Icon has no character data type. Strings can be arbitrarily long, limited only by available memory space. The underlying character set of Icon is ASCII-based. Any 8-bit ASCII character (including the null character) [continued) 170 B YTE • OCTOBER 1986 \?#!j .. ■■ The computer below gives you $6000 performance. The computer above gives you a $2995 price. Introducing (heTeleCAT-286: No matter how you look at it nowyou can have all the power and speed of the IBM AT- for the price of a comparably-equipped IBM XT. With the newTeleCAT- 286, from TeleVideo. It starts you off with every- thing you need. Including IBM AT compatibility. 5 12K RAM. A 20MB hard disk. A 1.2MB floppy. Plus an Intel 80286 CPU that runs at either 6 or 8MHz clock speed. All standard. But we didn't just stop at performance. We've also designed a complete set of ergonomic features into theTeleCAT-286. Like a high resolution 640 x 400 monitor. Sculptured keycaps on a high quality keyboard. Even LEDs right on top of the three critical locking keys, where they won't get covered up by overlays. Best of all, you get all this in a size 2 8% smaller than the IBM AT. ThenewTeleCAT-286. Want to learn more about it? Call usatl-800-TELECAXDept. 115, and we'll tell you the nearest place you can find one. Then check out the computer with performance above your ex- pectations-at a price below them. ©TeleVideo® Settle for more. TeleVideo Systems, Inc. 1170 Morse Avenue; Surinyvale?CA 94088-3568 (408) 745-7760 IBM is a registered trademark of International Business Machines, Inc. Inquiry 300 © 1986 TeleVideo Systems, Inc. ICON TUTORIAL can occur in an Icon string. Thus, Icon can process binary data as if it were string data. Icon strings are not arrays of characters. You cannot change a character within a string, although there are many ways to create new strings from old ones. This property lets you think of strings as atomic ob- jects that cannot be corrupted. Since a string is a sequence of char- acters, concatenating two strings to form a longer one is a natural opera- tion. In Icon, concatenation has the form s1 || s2. For example, the sequence s1 := "welcome aboard" s2 := "mate" s3 := s1 || ". " || s2 produces the value "welcome aboard, mate" in s3. Since Icon handles storage management automatically, you don't need to know— or worry about— how long a string is. (The oper- ator *s produces the length of s in characters if you need it.) Icon has a number of other opera- tions for constructing strings. For ex- ample, repl(s.i) produces i number of concatenations of s; and left(s.i) con- structs a string of length i with s posi- tioned to the left and padded with blanks to the right if needed. Much string processing involves analysis— locating the positions of substrings— or extracting specified Rowdy tttttt 12 3 4 5 6 Figure 1: A string's character location numbers start to the left of the first character. Rowdy tttttt -5 -4 -3 -2 -1 Figure 2: String positions can also start from the right and decrease in number. However, character referencing still begins from the left. positions from a string. A string's character locations are specified by positions that are between the charac- ters, starting at I (which is prior to the first character, as in figure 1). A sub- string within another string is specified by its bounding positions. For example, if the value of pet is "Rowdy", then pet[1:4] specifies the substring "Row". If you need only a single character, you can omit the sec- ond position, so that pet[1] specifies "R". You may assign this substring to another string, as in nickname : = pet[1 ,4]. This expression assigns a new string "Row" to nickname; it does not change the value of pet. Since Icon cannot change the char- acters in a string, it has a convenient abbreviation that appears to do this. If you assign a substring of a variable, Icon constructs a new string to replace the value of the subscripted variable. For instance. pet[1] := "D" appears to change the value of pet to "Dowdy". Icon really performs a concatenation: pet := "D" || pet[2:6]. Consequently, the first character of pet has not really been modified; pet has been assigned an entirely new string. A moot point, perhaps, but a different approach nonetheless. If you don't know how long a string will be when you write a program, you can specify string positions in a de- creasing fashion starting from the right as illustrated in figure 2. Thus, pet[-1] is "y." Note that although the numbering starts from the right, the position number for a particular letter still commences from the left. While strings are useful for repre- senting all kinds of textual material, there are situations in which the order of characters is not important but the properties of the character set are. Csets provide this facility and can be (continued) •mjs^smwmmamR ^"\/"\ Watt. The original micro- UPS that brought / standby AC power to Apple users in 1980. Still the POWER SOLUTION for serious applications of the MAC, small micros, and portables. Model 9012060 $350. FCC(15A&B). Now, POWER PROTECTION and MASTER CONTROL for full-size micros. Filters electrical noise/spikes and provides up to 10 minutes of AC power for the AT and supermicros Model 40012060 $695. UL-E101268. j~\ n /~v Watt. This DataSaver J I )( I standby UPS offers &L\J\J compact, cool and quiet line conditioning and backup power to PC, XT, and COMPAQ markets. Data and hardware are protected. Model 20012060 $495.CSA-LR51253. Cuesta Systems Corporation 3440 Roberto Court San Luis Obispo, California 93401 | 1986. Made with pride in th 805/541-4160 TLX:4949381 CUESTA Dealer, VAR, & OEM inquiries invited. 172 BYTE • OCTOBER 1986 Inquiry 83 Aztec C ... The Best C Frees the genius itf you You've got a great idea . . . . . . you're ready to write your programs. You don't want to be sidetracked by all the paper- work. With Manx Aztec C and the ingenious make function, your creative processes won't get bogged down in program administration and housekeeping. Manx Aztec C has the most sophisticated, hardwork- ing program administrator available to you. Once you've described your project, adding new features or enhancements is simple. You never have to concern yourself with the repetitive, tedious task of rebuild- ing your systems. The development process moves quickly. Com- piles, assemblies, link edits ... all finish in record time. Manx Aztec C is the fastest, most efficient C de- velopment system in the industry. Benchmarks show it . . . reviews commend it . . . users praise it. You're ready to test the program. You're ahead of schedule. The Manx Aztec C Source Level Debugger shows you the exact C language statement giving you a problem. You fix the problem quickly . . . you're still ahead of schedule. You've got some time for fine tuning. The Manx Aztec C Profiler examines your program, tells you where the slow spots are and validates your test pro- cedure. A few changes and it's exactly what you wanted. You've made it! Aztec C is available for MS-DOS/PC DOS. Call for details on Macintosh, Amiga, Apple II, CP/M-80, CP/M-86, TRS-80, ROM and others. To order, or, for information Call Today 1-800-221-0440 In NJ or outside the USA call (201)542-2121 30-day satisfaction guarantee. Special Discounts are available to professors, students, independent developers, and on a "trade-in" basis. Site licenses. " . . . a superb linker, a profiler, an assembler, and a set of development utilities are only the be- ginning of this package . . . performed admirably on the benchmarks, with short compile times and the best link times in this review . . . includes the most professional make utility . . . documentation is clear and complete. There is no doubt that this is a valuable and powerful programming en- vironment/' Computer Languages Feb. '86 " . . . execution times are very good, close to the best on most tests ..." PC Tech Journal Jan. '86 " Easily one of the fastest compilers overall . . . library provides a lot of flexibility . . . generates small .EXE files." Dr. Dobbs Journal Aug. '85 CTrime (Compiler, Assembler, Linker) $ 99. Aztec C 86-d Developer's System $299. Aztec C 86-c Commercial System $499. PC ROM (8086, 68000, 8080, or 6502) $750. Third Party Software for Aztec C: HALO,PHACT, C-tree, PRE-C. Windows for C, PC-lint, PANEL, Greenleaf, db Vista, C-terp, Plink-86, FirsTime, C Util Lib, and others. Manx Software Systems One Industrial Way Eatontown, NJ 07724 MS is a registered TM of Microsoft. Inc.. CP/M TM DRI. HALOTM Media Cybernetics, PANEL TM Roundhill Computer Systems, Ltd.. PHACT TM PHACT Assoc. PRE-C, Plmk-86 TM Phoenix, db Vista TM Raima Corp., C-terp, PC-lint. TM Gimpel Software, C-tree TM Faircom. Inc., Windows for C TM Creative Solutions. Apple II, Macintosh TM Apple. Inc., TRS-80 TM Radio Shack, Amiga TM Commodore Int'l. Inquiry 182 ICON TUTORIAL specified literally- Built-in csets are keyword values (values of special importance to Icon). A keyword name begins with an ampersand; for example, some cset- valued keywords are &lcase, &ucase, and &cset. The first two have cset values consisting of the lowercase and uppercase letters, respectively The last, &cset is the set of all 2 56 ASCII characters. You can perform set oper- ations on csets. For example, the cset union &lcase + + &ucase consists of all the lowercase and uppercase let- ters in the alphabet. Similarly, the cset difference &cset -- &lcase, consists of all ASCII characters except the lowercase letters. Both strings and csets are used for analyzing textual material. The func- tion find(s1,s2) is an example. A similar function, upto(c,s), generates the positions of the characters in the cset c that occur in s. For example, the code in listing 4 writes 3, 5, 7, 9, 12, 14, 16, 19, and 22. Both find and up- Listing 4: The \con code to generate the positions of the various vowels in s. s := "There are several errors" every wr i te(upto( ' aeiou ' ,s)) Listing 5 : The Icon code to break a text file into its individual words and write them out one at a time and one to a line. procedure main() letter := &lcase ++ &ucase while line := read() do \ i := 1 while j := upto( letter , I ine, i ) do \ i := many( I etter , I ine, j) wr i te( I ine[ j : i ]) end Listing 6: A rewrite of the code in listing 5 using string scanning. procedure main() letter := &lcase ++ &ucase while line := read() do line ? while tab(upto( I etter )) wr ite( tab (many ( I etter))) end do T^ble I: The input file used for the examples in this article. It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, liable 2: The output from the code in listing 5 when table 1 is its input. It was the best of times it was to have an optional third argument that tells Icon where to begin. If you don't specify that argument, Icon assumes it is position 1, the beginning of the string being examined. How- ever, you can specify any other value. For example, every write(upto ('aeiou' ,s,10)) writes 12, 14, 16, 19, and 2 2, the vowel positions beyond the tenth position, for the same s. An- other function that uses csets is many. For example, many(c,s) will skip as many characters as it finds at the be- ginning of s and produce the position in s following those characters. You can use the functions upto and many, which produce positions, in combination with subscripting opera- tions. For example, if you define a word to be a sequence of uppercase and lowercase letters, the program in listing 5 will break a text file into in- dividual words and write them out in- dividually. For each line, i starts at I. The position of the first letter is assigned to j; then i is set to the posi- tion of the last letter starting from that point. The value of line[j:i] is the word itself. The process continues until there are no more letters starting at i. Then another line is read and pro- cessed, and so on. For example, if the input file consists of the data in table I, the output of the program will ap- pear as in table 2. This typifies low-level string analysis: It computes positions, determines substrings by position, and so on. String scanning handles much of this detail automatically. In a string- scanning expression, which has the form exprl ? exprl, the string value of exprl provides the subject for analysis— corresponding to line in the example— and exprl contains match- ing functions that operate on this sub- ject, automatically changing position as they find specified substrings. The position starts at I. One matching function, tab(i), sets the position to i and returns the substring located be- tween the old and the new positions. Since i is a position, it can be provided by a function like upto, which assumes it is examining the current subject if you omit its second argument. Using string scanning, you can rewrite listing 5 as listing 6, and you don't need to {continued) 174 BYTE • OCTOBER 1986 ^MC^TGfitm 32-bit VME price/performance breakthrough! Motorolas MC68020 VME computer board meets system integration needs for less than $1500* in OEM quantities of 100 or more. ■4 MVME131 • MVME135 140-861 •* M VME 130 0. ■ s 4 MVME121 1- • M VME 133 1 •« M VME117 111 a • MVME110 * MVME10S/&T7 • • MVME101 I30 'B63 66000 68010 68020 MICROPROCESSOR This highly-integrated computer board features the 32-bit performance of our proven 12.5 MHz MC68020 MPU and our MC68881 Floating-Point Coprocessor — at OEM volume pricing of less than $1500? It's the smart answer for small single CPU systems and embedded controller applications in robotics, industrial automation, image processing and many others. Advanced features of the MVME133 include 1 Mbyte of shared local DRAM accessible from the VMEbus; on-board MC68881 floating-point math coprocessor; serial debug and multi- protocol serial ports; three 8-bit timers; real-time clock; four 28-pin JEDEC sockets for ROM/PROM/EPROM/ EEPROM; A24/D32 VMEbus 1 master interface; and built-in system controller which can provide all the required func- tions for many applications. You can also expand the board 's capabilities with one or more VMEbus- compatible modules from Motorola and over 200 other worldwide vendors of VME products. 'Pricing in U.S. dollars for U.S. delivery only, and is subject to change without notice. VRTX is a registered trademark of Hunter & Ready. PDOS is a trademark of Eyring Research. pSOS is a trademark of Software Components Group. MTOS is a trademark of Industrial Programming, Inc. VMEmodule, VMEl33bug, and VERSAdos are trademarks of Motorola, Inc. The software's also in place. To speed development of your application, we back up the M VME133 Monoboard Microcomputer module with our full-featured VERSAdos™ real- time operating system. And for initial system checkout, you can select Motorolas optional VME133bug™ firmware package with a full range of onboard diagnostics and debug utilities. Want to use your favorite real- time software package on the MVME133 board? Porting of pSOS, ,M pdos™ rtux; m MTOS,™ and VRTX® software packages is under way at their respective vendors, with availability planned for the Fall of '86. One-on-one design-in help. Get an engineer-to-engineer update. From anywhere in the U.S. or Canada, call toll-free any weekday, 8:00 a.m. to 4:30 p.m. MST. 1-800-521-6274 If the phone call itself can't answer your needs, we'll have our local applications engineer contact you face-to-face. With answers. And get you to market faster. For a data sheet on our new MVME133 computer board. . .or any of our other VME modules, write to Motorola Semiconductor Products, Inc., P.O. Box 20912, Phoenix, Arizona 85036. Or use the coupon below. M) MOTOROLA We're pnvour To: Motorola Semiconductor Products, Inc. P.O. Box 20912, Phoenix, AZ 85036 Please send me more information on the MVME133 Microcomputer board. Name. Company _ . State . .Zip. Call me (_ ICON TUTORIAL specify the subject of analysis within the scanning expression. Structures Different values often have a common property or are considered part of an aggregate of values. Conventional programming languages provide ar- rays or vectors for grouping values that occur in sequence and are re- ferred to by position. Icon provides such a facility in its list data type. It also has sets, which are unordered collections of values, and tables, in which pairs of values can be as- sociated. All of these aggregates are themselves data values and are con- structed during program execution. Therefore, you can compute their sizes as you need them rather than having to specify them when you write the program. Lists. A list is a sequence of values. You can construct a list by specifying its elements explicitly or by specify- ing its size and the initial values of all its elements. For example, tabulation := list(1 000,0) assigns a list of 1000 zero values to tabulation. You can reference list elements by position by using their subscripts, and you can change them by assignment, as in tabulation[30] := 10, which changes the 30th element of the list to the value 10. A list element is a variable and, like other variables in Icon, can have any type of value, for example, tabula- tion[1] := "first place". Since a list is a sequence of values, it is natural to have a generator (!a) produce this se- quence. For example, every write(la) writes out all the values in a. Since a list points to the aggregate of its elements (the address where the ele- ments are kept), a list element may also be a list. For example, nodel := ["a",0] node2 := ["b r, ,0] nodel [2] := node2 node2[2] := nodel The zero values are place holders that are then replaced by list values. Figure 3 depicts graphically the resulting structure. Therefore, you can use lists in Icon to represent graphs and other structures that have connections be- tween various objects. Note that these Figure 3: A graphic representation of the structure of an Icon list. Listing 7: The \con code to read in all the lines in a file and write them out again in reverse order, last line first. procedure main() I ines := [1 while push( I ines, read()) while wr i te(pop( I i nes)) end lists are heterogeneous, consisting in this case of a string value and a list value. Arrays in most languages are fixed in size and can be referenced only by position. Icon supports stack and queue access to its lists to allow them to grow and shrink. The function push(a.x) pushes the value x onto the beginning (left end) of the list a, in- creasing its size by one. The function put(a,x) puts the value of x onto the right end of a, also increasing its size by one. Correspondingly, pop(a) removes the leftmost value from a, whatever it may be, and fails if a is empty. The rightmost value is similarly removed by pull(a). You can use push and pop in com- bination to make a list look like a stack— a last-in, first-out data structure where you add and remove values at the same end. The function get is synonymous with pop; therefore, you can use put and get to make a list look like a queue— a data structure where you add values to one end and remove them from the other. Often a program reads data from an input file and puts it into a list for pro- cessing, yet you don't know the number of input lines you will have when you write the program. You can handle this by starting with an empty list (indicated by [ ]) and pushing or putting input lines into it. For exam- ple, the program in listing 7 reads in all the lines of a file and writes them out in reverse order, last line first. This kind of program is practical only if the file is small and can be stored in a list in memory at one time. Sets. Sometimes a collection of values has no particular order. In- stead, the values have some common property such as being words from an input file. Icon provides sets for such purposes and supports the usual set operations: membership testing, in- sertion and deletion of values, and the union, intersection, and difference of two sets. The function set(a) creates a set from list a. For example, articles : = set(["the","a"]) creates a set with two members. You can insert, or add, a member to a set, as in insert(ar- ticles,:"an"); adding a member more than once has no effect. The number of members in a set is limited only by the amount of memory available. Sets also share several other character- istics with lists: The operator !s gen- erates all the members of set s; a set value is a pointer to one of that set's members; and sets can have mem- bers of different types. A set can even point to itself as a member! For ex- ample, s := set(a) insert(s.s) There is no paradox here since a set value is just a pointer; the challenge is to find a constructive use for this capability The program in listing 8 illustrates one use of sets; it writes a list of all the different words that occur in the input file. The function sort produces a sorted list, so that the words are written in alphabetical order (see table 3). Each word appears only once regardless of the number of times it appears in the input file. Note that "It" appears before words beginning with lowercase letters because uppercase letters precede lowercase ones in the ASCII collating sequence. Tables. While lists deal with se- quences of values and sets handle un- ordered collections of values, Icon uses tables containing value pairs to 176 BYTE • OCTOBER 1986 ICON TUTORIAL Listing 8: An illustration of one use of \con list of all the different words that occur in an sets. This input file. program writes a sorted procedure main() letter := &lcase ++ &ucase words := set([]) while line := read() do line ? while tab(upto( 1 etter )) i nsert (words, tab (many ( 1 etter do '))) every wr i te( !sort (words)) end Ikble 3: The output from the program in listing 8 when table 1 its input. It age best foolishness it of the times was wisdom worst associate two values— for example, the number of times a word occurs in a file. One value, such as a word, is used as a key to index the table; the other value, such as the number of times the word occurs in the file, is associated with the key. Keys are unique in any table; only one value can be associated with a given key. To create a table, you use table(x), where x is the default initial value automatically associated with new keys, l&bles are initially empty. To add pairs to a table, you subscript the table with a key and assign a corre- sponding value. Thus, if t is a table, t["the"] := 1 assigns the value 1 to the key 'the" in t. Tables grow automati- cally as you assign values to new keys; the size of a table is limited only by the amount of memory available. Since you can compute keys, you may need to find out what keys are [continued) State of the Smart. SmarTEAM 2400 • 0-300, 1200, 2400 bps. Bell 103, 212A. CCITT V22, V22 bis. Full duplx duplex • Auto dial (pulse or tone), auto answer automatically switches between tone and pulse • Hayes 2400 commands compatible • 6 self test modes • Call progress detection (ringing, dial tone, busy) SmarTEAM 2400B • Internal slot modem for IBM PC. XT, AT and compatible computers • 7.5 inches length with the same great features of SmarTEAM 2400 • MITE + software optional 1200 BH Quality Communication mttmnm Products SmarTEAM 1200 BH • 5 1 /4' length with the same great features of SmarTEAM 1200 AT • Internal slot modem for IBM PC, XT, AT and compatible SmarTEAM 1200 AT • Bell 103, 212A standard • Fully Hayes compatible. Auto dial (pulse or tone), auto answer • 2 self test modes (analog loop back and remote digital loop back test) • Call progress detection (dial tone, busy) SmarTEAM 1200 CT • Compatible with CCITT V.21 and V.22 Alternate B 1200bps asynchronous • 0-300, 1200 bps full duplex • Compatible with Hayes commands Auto dial (pulse or tone), auto answer HEAD OFFICE: TEAM TECHNOLOGY INC. 2F,No.4, Szu Wei Land Chung Cheng Rd.,Hsin-Tien City Taipei, Taiwan, R.O.C. TLX : 19725 PETRCHEN FAX, {02)7251830 TEL: (02)918-9249 Inquiry 296 U.S Soles Rep. SmarTEAM INC. 19205 PARTHENIA St. Ste. J Northridge, CA 91324 TEL:(81 8)886-9726 INTERWELL CO. 13441 Pumice St. Norwolk, CA 90650 TEL(2l3)921-3799 CANADA BUDGETRON INC. TEL:(41 6)673-7800 SINGAPORE: PET Computers TEL5331313 SPAIN ARCE IBERICA. S.A TEL:(4)4440462 Hayes is a registered trademark of Hayes Microcomputer Products. Inc. IBM PC. XT. AT are registered trademarks of International Business Machines Corp. MITE is a registered trademark of MYCROFT LABS INC. ICON TUTORIAL Listing 9: An illustration of one use of Icon tables. This program lists alphabetically all the words in the input file with a count of how many times each one occurs. procedure main() letter := &lcase ++ &ucase wordcount := tablefQ) while line := read() do line ? while tabf uptofl etter ) ) do wordcount[tab(many( letter))] +:= 1 wordlist := sort (wordcount ,3) while wr i te(get(wordl ist ), " : " , get (wordl ist)) end Tkble 4: The output from the program in listing 9 when table 1 is its input. It: 1 age : 2 best : 1 foolishness : 1 it : 3 of : 4 the : 4 times : 2 was : 4 wisdom : 1 worst : 1 in the table: To do this, you can pro- duce a corresponding list in which keys and their values alternate with a := sort(t,3). where sort (with a sec- ond argument of 3) produces a list sorted on the keys. (Other second arguments for sort will produce dif- ferent kinds of sorting for tables.) The program in listing 9 illustrates the use of tables; it lists all the words occurring in the input file with a count of how many times each one occurs. The output is shown in table 4. Note that the initial value for a new key is 0. The final line of the program uses get(a) to extract alternate keys and their values. The function write may have several arguments; if it does, they are automatically concatenated on the output line. Other Features. Icon also has a number of other features worth noting (see reference I for a complete description). • Icon has an extensive repertoire of functions and operations for perform- ing numerical computation, string analysis and synthesis, and list pro- cessing. • You can call Icon procedures recur- sively allowing you to handle recur- sively defined structures, like trees, in a natural way. Generators also can be recursive. • You can declare records whose elements are referenced by names. This lets you extend Icon's repertoire of built-in data types. • You can contain expressions in co- expressions, so that generators can pro- duce their results as needed through- out a program. Implementations Icon includes a translator, a linker, and a run-time system. The translator con- verts an Icon source program to an in- termediate form that consists of in- structions for a "virtual" machine. This virtual machine can be thought of as an Icon machine, although it is imple- mented in software, not hardware. (A description of the implementation ap- pears in reference 2.) The linker com- bines virtual machine code from sep- arately translated modules and pro- duces a binary output, much like an assembler produces executable binary code from assembly language input. When an Icon program executes, the binary code is read into memory and interpreted. Using an interpreter rather than executing compiled machine code provides portability and flexibility. In addition, the inter- preter is only slightly slower than the compiler that was originally used. Compilation does not provide a big performance improvement because many Icon operations are executed in compiled run-time subroutines. This is true regardless of whether the source program is compiled into ex- ecutable machine code or translated into a machine-independent form for interpretation. In Conclusion Icon is a multifaceted, multifunctional character-string processing language available in the public domain. Its method of evaluating expressions- producing a result (or sequence of results) if the expression succeeds, and no result if it fails— distinguishes it from other high-level programming languages. Since Icon is written in C, it runs on a wide range of computers with little or no modification; you do, however, need a production-quality C compiler and library to compile it from source code. If you don't have a C compiler, executable binary files for DOS 2.0 or higher are also avail- able. ACKNOWLEDGMENT Icon is a result of ongoing research in program- ming languages supported by the National Science Foundation and The University of Arizona. REFERENCES 1. Griswold. Ralph E., and Madge T. Griswold, The Icon Programming \nnguage, Englewood Cliffs, NJ: Prentice-Hall, 1983. 2. Griswold, Ralph E.. and Madge T. Griswold, The Implementation of the Icon Pro- gramming language, Princeton, NJ: Princeton University Press, lb appear. BIBLIOGRAPHY Fonorow, Owen R.. "From SNOBOL4's Founder Comes Icon," Computer language, vol. 3, no. 7 (July 1986), pages 73-84. Fonorow, Owen R., "Users Press Icon Into Commercial Service." Computeworld, vol. XIX, no. 46 (November 18, 1985), pages 75-92. Griswold, Ralph E., and Madge T. Griswold, "High-Level String Processing Lan- guages: COMIT. SNOBOL4, and Icon," Abacus, vol. 3, no. 4 (Summer 1986), pages 32-34. ■ 178 B YTE • OCTOBER 1986 ACS-1000 • 8 Or 4.77 MHz • Up to 1 Meg Memory • 2 Serial Ports • 1 Parallel Port • On Board Disk Controller • On-Board C/ock/ Calendar ET-286 p/t/s • 10/6 & 12.5MHz • Up to 4 Meg Memory • 3 Serial Ports • 2 Parallel Ports • 8 Expansion Slots • 5 MHz DMA • On-Board Clock/ Calendar NOW AVAILABLE: •Optional 10 MHz Co- processor • ACS MS-DOS 3.2 • GW Basic 3.2 A HERITAGE OF EXCELLENCE In any marketplace one product stands out as the pinnacle of performance and value. In the PC/XT marketplace, that product is the ACS-1000: 4.77 or 8 MHz operation, 1 Megabyte memory, built in communications, built in floppy disk controllers, even a SASI interface — all packaged on a single board and priced competitively with the merely compatible. Building on the heritage of the ACS-1000, the ET-286 plus brings the same stan- dards of excellence to the AT marketplace. Push Back The Envelope: 10/6 & 12.5 MHz AT Compatibility IBM obviously positioned the AT as the hub of the microcomputer network. ACS hasincluded what IBM left out. SPEED The ET-286 nearly doubles the clock speed of the AT at 10 MHz and we are already 12.5 MHz capable. With access to 4 Megabytes of on-board memory via a 5MHz DMA bus, the ET-286 bypasses additional wait states required to maintain compatibility with expansion bus memory. With memory intensive network software like Unix and Xenix, this becomes critical. Naturally, the ET-286 toggles from Hy- perSpeed at 10MHzto 100% 6MHz compatibility for those applications that demand it. COMMUNICATIONS The ET-286 plus is designed with communications in mind. There are three on-board serial ports that are configu- rable as either RS-422 or RS-232 depending on your application. 2 parallel ports further extend your commu- nications ability. And there are still 8 expansion slots for additional I/O. AN ACCESSIBLE SOURCE Part of the success of the ACS-1000 and our other products is the availability of our people. We provide the support that OEM's need in order to win major contracts — engineering support, competitive pricing, even specialized packaging. Ser- vice is the key issue in the information marketplace and we provide the kind of ser- vice and reliability that you can only find in an American made product. ACS MS-DOS 3.2 We want to help you compete. That's why we have licensed MS-DOS 3.2 and GW Basic 3.2 and made them available in OEM packages at OEM prices. Even with all thpcc * — tures,] avail for un inforrrB q ^> 9 3 Inquiry 4 IBM, UNIX and XENIX are trademarks of IBM. AT&T and Microsoft respectively. NEW DASH FOR YOU The Imag Enhancer PC add-on board brings plotter-like output to dot matrix printers. GRAF Sales ] Your old printer should look so good. Introducing the ImagEnhancer™ PC add- on board. It enables ordinary monochrome or color dot matrix printers to produce high- quality, plotter-like graphics. THE OUTPUT IS OUTSTANDING. The ImagEnhancer is the perfect way to get presentation -quality graphs, charts and artwork from your old dot matrix printer. What's more, it comes with a built-in 512K memory. So while your printer is printing one job, you can use your PC for another. Which will improve your productivity tremendously. And of course, the ImagEnhancer works with the same computer products most everyone works with. IBM* PCs, XTs, ATs or 100% compatibles with graphics capability. Alps, Epson" or Epson- compatible monochrome or color dot matrix printers. And Houston Instrument (DM/PL) plotter- compatible software, including Lotus'* 1-2-3* Symphony,* PFS*: Graph and Framework™ among others. AND THE PRICE IS RIGHT. At $595f the ImagEnhancer costs a fraction of what you'd pay for a new plotter. It's simple to install, too. And backed by a one-year warranty. The ImagEnhancer is a product of Alps rica, a U.S. subsidiary of Alps Electric i. of Japan, an International Fortune J 3500 500 company. Other Alps America products include a full line of high-quality printers. For more information, print samples, or the name of the dealer /distributor nearest you, write to Alps America, 3553 North First Street, San Jose, CA 95134. Or call (800) 828-ALPS. In California, (800) 257-7872. In Canada, (800)858-2577. Better yet, send in this coupon along with your payment. And teach your old dot matrix some new tricks. Inquiry 15 for End-Users. Inquiry 16 for DEALERS ONLY idemark of Alps Electric Co., Ltd. Other computer or software names are trademarks and/or tradenames of their respective manufacturers. ©1986 Alps America. HOLD III T MATRIX [ICS BOARD MARKET recast — Off ice /Government 800 1986 1987 1988 1989 1990 evenues Source: Future Computing This image was printed with an ordinary color dot matrix printer and the Imag Enhancer PC add-on board. With a monochrome printer, you get the same high resolution in black and white. SO ORDER TODAY. Name; Address: _ City: State:. . Zip:_ Phone: Send_ . ImagEnhancer(s) at $595 each? *Add $10.00 shipping and handling for each. California residents add 7% sales tax. Offer available in U.S.A. only. Method of payment (circle one): Check Money Order MASTERCARD VISA Card number: . Exp. date: Signature: Mail to: Alps America 3553 North First Street San Jose, CA 95134 Orcall(800)828-ALPS In California, (800) 257-7872 ALPS AMERICA WE TOP IBM THOMSON &t I i n ) ■ BM's Personal Computer is the standard of the industry, but a Thomson monitor gives your IBM's great body a beautiful face. A Thomson monitor atop your IBM simply outperforms the IBM Col or Display. Here's proof: FEATURE Dot pitch (in mm J Screen Switch for green/amber text All major controls up front Warranty List Price THOMSON 38mm COLOR 38 Nonglare Yes Yes lyr. $549 IBM COLOR DISPLAY ,43 Glare No No 90 days $680 BENEFIT Superior resolution Less eyestrain Improved legibility Greater convenience Greater confidence A bargain Who is Thomson? Thomson is a six billion dollar multinational company. Unlike our competition, we design and build our own monitors with stringent quality control. We offer monochrome or color monitors from TV- grade to high resolution. Call 1-800-325-0464. In California call 1-213-568-1002 (Monday-Friday 9a.m. to 5p.m. PST) for your local Thomson dealer, and start looking at a beautiful face. THOMSON O A SIGHT FOR SORE EYES.™ © 1986 Thomson Consumer Products Corporation 5731 W. Slauson Avenue, Suite 111, Culver City, CA 90230 Thomson is a trademark of Thomson S.A, IBM is a registered trademark of Intel national Business Machines Corp. IBM model number 5153. list prices in effect on Feburary 18. J9i 182 BYTE • OCTOBER 1986 Inquiry 301 for End-Users. Inquiry 302 for DEALERS ONLY. PUBLIC DOMAIN POWERHOUSES ENHANCED CONSOLE DRIVER by Anthony Zackin Create a user-friendly interface for DOS with this ANSI.SYS replacement ONE OF THE most important func- tions of an operating system is to pro- vide centralized support for I/O devices. When doing an input or out- put operation via the operating sys- tem, a program normally needs only to identify the device— the operating system then handles the details. For example, writing to the console and writing to a printer are similar and may, in fact, be performed by the same high-level language program statement, but from the operating sys- tem's point of view they are quite dif- ferent. Consequently to handle the differences between computer I/O devices the operating system must provide a set of routines called device drivers, usually one per device type, that handle the peculiarities of each device. These drivers are resident ex- tensions of the operating system, which can call them as needed. Versions 2.0 and later of MS-DOS and PC-DOS allow user-defined device drivers. You can define drivers to support new devices or replace existing DOS device drivers. An addi- tional device driver for the console, which includes the keyboard and the display, comes in the DOS distribution package. This driver, ANSI.SYS, sup- ports a subset of the American Na- tional Standards Institute cursor con- trol sequences for terminal control. You can use these sequences, for ex- ample, to clear the screen, position the cursor, set display attributes such as foreground and background colors, and reassign the meaning of the key- board keys. Replacing ANSI.SYS I've written a complete replacement of the ANSI.SYS driver that provides the same functions and supports many more. I've also developed a utili- ty to make programming the driver a simple matter. My driver, the En- hanced Console Driver (ECD), has a 2000-byte key definition buffer, which is almost seven times larger than that of ANSI.SYS. | Editor's note: The ECD and associated files (CON DRV 4 3. SYS. CUEXT. README, AUTOEXECBAT, CONFIG- 43.SYS, MENU 2 5. BAT, STDKEYS.CU, CONDRV.DOC MENU43.BAT, MENU- 2. BAT, STDFKEYS.CU, and MENUBAT) are available on disk and on BIX. See the insert card following page 320. Listings are also available on BYTEnet. See page 4. You will need an IBM PC or compatible with DOS 2.0 or later] The ECD also provides for a more friendly user interface to the operat- ing system. It does this by adding an on-screen clock with alarm, a Caps Lock, Num Lock, and Print Screen in- dicator, and the ability to define text windows, which may be displayed by either an application program or the operating system PROMPT command. You control these functions in a manner similar to controlling ANSI.SYS— via special control se- quences that start with an Escape character (ASCII value 27) followed by a left bracket (|, ASCII value 91). How- ever, valid control sequences are never shown directly on the display device. The ECD examines all DOS output to the screen, looking for this sequence. If a control sequence is found, the ECD examines the remain- ing characters for a valid command and executes that command; other- wise, the output is displayed normal- ly on the console. Because device drivers become (continued) Anthony Zackin, an assistant vice president with Citibank N.A. (399 Park Ave., New York, NY 10043), has an M.S. in computer science from Rutgers and more than 1 2 years of professional programming experience with IBM mainframes and assorted micros. OCTOBER 1986 • BYTE 183 ENHANCED CONSOLE DRIVER resident extensions of DOS, you can issue commands to the ECD at any time. The only caveat is that you must execute the commands via the oper- ating system so that the console driver recognizes them. Thus, you may execute the ECD commands in any program that updates the display through a DOS function call (interrupt 21H). Since there are many programs that avoid DOS for performance reasons, the ECD has the additional capability to support programs that do their console output via the system BIOS. However, programs that write directly to the display adapter are not supported by the ECD. Windows Probably the most useful feature of the ECD is its ability to define win- dows in memory and then display them instantly on the console. One 80-column by 2 5-line text screen (4000 bytes, including 1 attribute byte per character) is available as a private screen buffer for storing windows. The ECD can also take advantage of the extra memory on the IBM Color Graphics Adapter (CGA). The CGA contains 16K bytes of memory of which only 4K are needed in the 80-column text mode. You may use the remaining 12K as three additional buffers to store more windows; unlike the ECD's private buffer, however, this 12K-byte area cannot be guaranteed across all program calls. A window is nothing more than a set of four coordinates defining the upper left and lower right window corners relative to the display buffer. Each set of window coordinates in a buffer has a number, which you assign, and each buffer can hold up to eight windows. You place window text in a buffer by passing to the ECD a color attribute, a row and column coordinate, and a string of text. To dis- play a window, you select the appro- priate buffer and pass the window number to the ECD. The ECD instant- ly displays the window during the ver- tical retrace interval. Other Display Options You don't have to use the windows, however, to take advantage of the ECD's other features. The ECD can also display the current time any- where on the screen and, if you have a color display, in any color. In a similar manner the ECD can display the seven-character (including spaces) string " C N P " to indicate the toggle settings for Caps Lock, Num Lock, and Print Screen— where the individual let- ters are displayed only when the cor- responding setting is on. The time display is a familiar hours- and-minutes format that you can easi- ly move or switch on or off. For ex- ample, Lotus 1-2-3 version I A does not display the current time, but with the ECD you could place the time dis- play in, say, line 2 5 using the same colors as the other 1-2-3 status items. [continued) "IF YOU'RE LEARNING C AND NOT USING ECO-C88, YOU'RE WORKING TOO HARD!" ■ Eco-C88 is a full C compiler for MSDOS machines. Everything you need is included in the low price of $59.95, including a full-screen editor. Here's what some reviewers are saying about the Eco-C88 C Compiler; "Eco-C performed well on all the benchmarks, generating code that was quite comparable to that of compilers 10 times as costly." Christopher Skelly. Computer language, Feb., 1986 "This compiler does handle syntax errors much better than average - no avalanche of spurious messages here." William Hunt, PC Tech Journal, Jan., 1986 "Eco-C88 is a high-quality package . . . convenient to use ..." Dr. David Clark, Byte, Jan., 1986 "Eco-C is definitely a bargain ... it includes both the compiler and an excellent Turbo-style editor. . . a useful compiler for advanced applications, and will serve farbeyond the beginning phase." Gary Entsminger. Micro Cornucopia. April-May, 1986 The compiler comes with a standard library of over 200 functions, cc and "mini-make" utilities, ANSI language enhancements (e.g., prototyping), expanded user's manual, plus much more, all for the low price of only $59.95. Also ask about our support products! If ordered with the compiler, the C library source code (excluding transcen- dental) is $10.00 and the ISAM file handler (as published in the C Programmer's Library, Que Corp) in OBJ format is an additional $15.00. Please add $4.00 for shipping and handling. To order, call or write: Ecosoft Inc. 6413 N. College Avenue Indianapolis, IN 46220 (317)255-6476 • 8:30-4:30 rcsmassHsin We've continually improved Microstat since it was introduced in 1978, and the latest release includes many new features you've wanted. Interactive and Batch Processing Expanded Data Management Subsystem with New Data Transforms Reading data files created by other programs (e.g., Lotus) 3 types of Analysis of Variance Time Series Crosstabs and Chi-Square Factorials, Permutations, and Combinations Hypothesis Tests Data sets that can exceed memory Multiple Regression (including Stepwise) Scatterplots (including best fit regression) Correlation Analysis 12 Nonparametric tests 8 Probability Distributions Descriptive Statistics Easy Installation Microstat's algorithms have been designed to prevent numeric overflow errors and yield unsurpassed accuracy. Microstat's price is $375.00 including the user's manual and is available for the Z80, 8086, 8088 CPU's and CP/M80, CP/M86, MS-DOS, and PC-DOS. To order, call or write. 1-800-952-0472 (orders only) ECOSOFT J Trademarks: Eco-C88. Microstat (Ecosoft), CP/M (Digital Research), MSDOS (Microsoft), PC-DOS (IBM), Z80 (Zilog), 8086, 8087, 8088 (Intel) ^F^F~1 s& wM 1 184 BYTE • OCTOBER 1986 Inquiry 342 Inquiry 185 ENHANCED CONSOLE DRIVER TkE CU Command Syntax The following is a list of the commands supported by the Console Utility. Variables that you supply are indicated with variable words written in lower- case. Items in square brackets refer to optional fields; items separated by a ver- tical bar (|) indicate alternatives, one of which should be used. Bracketed fields followed by an ellipsis mean that zero or more occurrences of that field are acceptable; for example, [ [attr] string ] . . . means that any number of occur- rences of a character string or a string preceded by an attribute or any com- bination thereof is valid. An attribute represents the color or brightness of a character displayed on the console. It consists of two letters, one for the background color and one for the foreground color. A capital letter usually sets a blinking field for the back- ground color and high intensity for a foreground color. Valid color values are w|W = white, b|B = black. u|U = blue, r|R = red, g|G = green, y = brown (Y = yellow), c|C = cyan, and ra|M = magenta. Commands @ row [,] col [attr] string [ [attr] string ] . . . or @ NEXTROW | NR [,] col [attr] string [ [attr] string ]. . . locates text in the current buffer. If multiple attributes and strings are specified, they will be placed in the next buffer position following the preceding specified string. The row value should be between 1 and 25 inclusive, the column value (col) between 1 and either 40 or 80 inclusive depending on the current screen mode. If NEXTROW or NR is used instead of a row number, the number used will be equal to the row value of the previous @ command -t- 1. ALARM [ [AT | @] hh[:mm][xx] [ [DISPLAY] [WINDOW] number ] or ALARM [ [AT | @] hh[:mm][xx] [ [DISPLAY] [attr] string [ [attr] string ] . . . ] hh:mmxx represents the ASCII value of the time on a 12- or 24-hour clock; if the former, xx should beam or pm; if omitted, hours between 8 and 1 1 inclusive will be assumed am, all others pm. The window number should be a value be- tween and 7 inclusive. If a window number is specified, then every time the alarm sounds, that window in buffer ZERO is displayed. If a string is specified, then up to 80 characters of text will be placed in row 25 of screen buffer ZERO and assigned to window 7; this is equivalent to issuing the three commands ALARM hh;mmxx 7; DEFINE WIND 7 AS 25,1 THRU 25,80 AT 24,1; @25,1 attr "This is the message text." Note that the message is placed in line 25 of the buffer but is displayed in line 24 because the latter is less likely to contain system status information. The alarm will sound approximately every 30 seconds until explicitly reset; this may be done by typing CU ALARM RESET or more simply bv pressing both the left and right Shift keys simultaneously (this will also reset a pending alarm). If no arguments are specified, the alarm will be sounded once. ALARM RESET turns off a currently ringing or pending alarm. BIOSTRAP OUTPUT | NONE OUTPUT means that output operations to the console via the BIOS will be trapped; that is, programs that bypass DOS calls using direct BIOS calls instead may issue console driver commands via their escape sequences. NONE means that BIOS call trapping will be turned off if set. {continued) Math CAD The Engineer's Scratch Pad FOURIER RECONSTRUCTION: SQUARE HAUE N := 40 j := ,.N ... 40 points 20) S. := i - 2 5(j Reconstruct function, using first two terns of Fourier series step function i := 1,3 ,.3 i'2lF- N L /' "-' \ \Sj 4 v-^i R := - > - sin j IT ^ — ' i i 1.5 CZ R ,S j J -1.5 A powerful computation and documentation tool for your IBM-PC. With MathCAD you simply and inter- actively create, edit and display for- mulas on the screen the way you are used to writing them. Equations are instantly computed and the results dis- played on the screen as a single num- ber or a plot. Text may be added to the screen and everything may be printed out as an integrated document. MathCAD has built-in hyperbolic and circular functions, performs all calcu- lations with real and complex num- bers, performs iterative calculations, handles all units, performs error checking and dimensional analysis and much more . . . The price of MathCAD-$189. In Massachusetts add 5% sales tax. To order send check, p.o., call us with your MasterCard number or call us for the nearest dealer. 1.800.MathCAD or 617.577.1017 Math Soft + V x / -S- 8 One Kendall Square Cambridge, Massachusetts 02139 OCTOBER 1986 • BYTE 185 Inquiry 2 30 PC-SIG Library Keeps on growing* ♦♦ New disks recently added to our library of user-supported and public domain software for the PC: □ #471 Present V5.1 Make your own slide shows for business or home using your color monitor. □ #477 Name Gram/Break Down/Fone Word Do anagrams, find what words your phone number makes. □ #480 PC-Outline Outline and organize information, much likeThinktank. Q #481 Still River Shell Makes DOS easy to use. □ #483 Mall Master Keeps track of multiple lists, sorts and prints by city, state, zip and name. □ #485 Icon Maker and FX-Matrlx Makes graphics characters like the MAC for your screen and you can paint them on your EPSON printer. □ #487 Reflex Point An action game modeled after the ROBOTECH cartoon series. □ #492 Nutrient Tracks your diet and its calorie/ nutrient value. □ #494,495,496 The World Digitized Find over 100,000 different locations in the world and display them on screen. □ #498 DOS-a-Matlc Load different programs and manipulate them with single keystrokes. □ #499 PROCOMM Communications with XMODEM, KERMIi; ASCII protocols, supports IBM- 3101, DECVT52/1000, ADM-3 and ANSI. □ #501 & 502 Saleseye Tracks prospects, leads and memos and prints letters with that information. □ #503 Reliance Mailing List Keeps track of multiple lists, sorts and prints by specific group- good for custom mailing. □ #506 Bibliography off Business Ethics and Moral Values The regularly updated master bibliography for those doing papers and research involving business ethics. □ #507 PC-Sprint Software and instruction on how ' to cheaply speed up your system 2-3 times. □ #508&509 Statistics Tools Factorexperiments, "FORGET-IT" plots, simultaneous confidence intervals, randomization tests, expected mean squares. G #510 Visible PASCAL Compiler Learn to program PASCAL and watch the internal functions of PASCAL as it runs. G #511 Turbo Sprites and Animation Create, maintain and animate your own images in TURBO PASCAL. RECENT DISK UPDATES G # 5 PC-HieVer.4 G # 78 PC-Write Ver. 2.6/1 G #124 Extended Batch Ver. 2.04a G #199 PC-CalcVer.3 G #212,334 RBBS-PC (2 disks)Ver. 3.7 G #388 100 Letters Ver. 1.1 G #393 Checkbook Ver 2 G #395 Home Inventory Ver. 2 G #397 Checkbook Program Ver 3 31 G #402 IBM 370 Cross Assembler Ver 11 G #403 Computer Tutor Ver. 4.2 G #417 ADA Prolog Ver. 1.90 G #449 Gags Vers. 1.06 G #468 CPA Ledger Ver. 1.1 G 350-page directory (disks 1-300) $8.95 G Printed Supplement(disks 301-454) $3.95 G 1 yr PC-SIG Membership ($35 foreign) $20 Includes printed directory, supplement, bimonthly magazine SPECIAL Any 5 Disks plus 1 -Year Membership $39 Disks are $6 each. Add $4 postage and handling ($10 foreign)- CA residents add state sales tax. Total Enclosed $ by Q Check DVISA □ MC Card No. Exp. date Phone Name Address _. - City _State_ -Zip. POSIGI To order, call: 800-245-6717 In CA: 800-222-2996 For technical questions or local orders: (408) 730-9291 1030-D East Duane Avenue Sunnyvale, C A 94086 213 ENHANCED CONSOLE DRIVER BUFFER number sets the current buffer: number should be a value between and 3 inclusive; default - 0. All subsequent commands affecting a buffer, namely @, CLEAR, DEFINE, and DISPLAY, will use this buffer until it is explicitly reset. CLEAR [attr] row [,] col [THRU | THROUGH] row [,] col clears a portion of the current buffer and resets its attribute bytes. CLEAR EOL "clears" from the current position to the end of that line by filling it with blanks using the last specified attribute. (The current position is the location in the buffer immediately following the last character written by the @ command.) CLOCK [attr] [BLINK] [SUPPRESS number] [ [AT | @] row [J col ] displays the time as hh:mmxx (xx=am/pm) at the specified location. The row value should be between I and 25 inclusive, the column value (col) between 1 and either 40 or 80 inclusive depending on the current screen mode. BLINK determines whether the colon will blink. SUPPRESS will suppress the next number clock calls so that this call may be effective even though a subsequent call to display the clock is made via the system PROMPT string; a value of 255 will keep the clock off until a subsequent CLOCK SUPPRESS call with a value < 2 55 (e.g., 0). If the [AT row.col] specification is omitted, the time will not be dis- played until the next CLOCK command with an AT row.col parameter. If the CLOCK is not set by the PROMPT string, then typing CLOCK alone turns off the display; if the CLOCK is set by the PROMPT use CLOCK SUPP 255 to temporarily turn off the display CLOCK DISABLE releases all control of the system clock and is useful to enable other programs to get control of the clock interrupt; the next CLOCK call without the DISABLE option will reenable control of the system clock. CLOCK DISABLE can be used to temporarily give up control of the system clock to allow a timer-sensitive ap- plication to get precedence. Control of the system clock is initially disabled. DEFINE [WINDOW number] [AS] row [,] col | [THRU | THROUGH] row [,] col [AT | @] row [,] col defines a window (default is 0) in the current buffer for a subsequent display The row values should be between l and 25 inclusive, the column values (col) between l and either 40 or 80 inclusive depending on the current screen mode. The AT parameters refer to the location on the screen where the window will be placed. DISPLAY [WINDOW number] immediately displays the specified window (0 if omitted) of the current buffer. This command may also be used as the redefinition value of a key EXIT takes you out of the CU program (needed only in the interactive mode). HELP [PRINT] [string] HELP string displays a summary of all commands whose names start with the specified string; commands include @. ALARM, BIOSTRAR BUFFER, CLEAR, CLOCK, DEFINE, DISPLAY. EXIT, LOCKS, READ, STACK, or KEY for key redefini- tion information. If HELP ALL or HELP PRINT ALL is specified, the full docu- ment is listed or printed. If PRINT is specified, the output will be directed to the printer. KEYDEF SUPPRESS number KEYDEF SUPPRESS n will set the DOS keyboard redefinition suppress count: = interpret redefinitions, 1-254 = suppression count. Keyboard redefinition should be suppressed prior to running programs that use DOS I/O and need to read the keys you have redefined for DOS. KEYDEF SUPPRESS 255 will [continued) BALANCE OF POWER. Introducing the new power in AT-class personal business computers. The NEC Advanced Personal Computer IV. You're the kind of person who's very serious about personal computers. The kind of person who will never settle for just a powerful machine. Or just a compatible machine. Because you want them both. You're a Power User. And the NEC APC IV™ is the one machine that strikes a perfect balance between compatibility and power. Because the APC IV offers both 6 MHz and 8MHz processing speeds. So you can run all the industry standard software. Like Lotus 1-2-3.™ dBase III.™ Multiplan.™ Windows.™ You name it. Plus the APC IV has the power of NEC behind it. The $ 10 billion leader in computers and communications. So you never have to worry about support. The new NEC APC IV. Because sooner or later, you're going to have to take it to the limit. For more information, call NEC at 1-800-343-44 19 (in MA 617-264-8635). NEC Information Systems, Inc., Dept. 1610, 1414 Massachusetts Avenue, Boxborough, M A 1 7 1 9 . NEC NEC Information Systems, Inc. ■ ^ B, fZ Computers and Communications Inquiry 213 OCTOBER 1986 -BYTE 187 Inquiry 142 Enclosures & power supplies for FLOPPY, WINCHESTER, TAPE DRIVES, SINGLE BOARD COMPUTERS & S-100 SYSTEMS. 8 inch 5 inch 3 inch CUSTOMIZING i AVAILABLE Call or write for free catalogs and applicationf"! assistance. ! 1 N IsjJj I Hill f I f [111! I I RESEARCH CORPORATION 8620 Roosevelt Ave. • Visalia.CA 93291 209/651-1203 TELEX 5106012830 (INTEGRAND UD) EZLINK 62926572 We accept BankAmericard/VISA and MasterCard ENHANCED CONSOLE DRIVER decrement the keyboard redefinition suppress count if it is nonzero (i.e., key- board redefinition has been suppressed); KEYDEF SUPPRESS -1 may be specified instead for clarity. This corresponds to Esc[136;255:, which normally should be part of the system prompt as $e[136;255: to explicitly decrement any nonzero redefinition suppress count. Note that this suppression count should be 1 greater than the count used in the other commands (e.g., CLOCK), since the count will be decremented explicitly by the system prompt prior to the use of any redefined key. LOCKS [attr] [SUPPRESS number] [ [AT | @] row [,] col ] displays the current toggle status for Caps Lock, Num Lock, and Print Screen (set/reset via Ctrl-PrtSc or Ctrl-P). SUPPRESS will suppress the next number lock display calls so that this call may be effective even though a subsequent call is made via a user-defined PROMPT string; a value of 2 55 will keep the locks off until a subsequent LOCKS SUPPRESS call with a value < 2 5 5 (e.g., 0). The row value should be between 1 and 25 inclusive, the column value (col) between 1 and either 40 or 80 inclusive depending on the current screen mode. If the AT row.col specification is omitted, the lock display will not be displayed until the next LOCKS command with an AT row.col parameter. If the LOCKS are not set by the PROMPT string, typing LOCKS alone turns off the display; if the LOCKS are set by the PROMPT use LOCKS SUPP 255 to temporarily turn off the display. LOCKS DISABLE releases all control of the keyboard and is useful to enable other programs to get control of the keyboard interrupt; the next LOCKS call without the DISABLE option will reenable control of the keyboard. LOCKS DISABLE can be used to temporarily give up control of the keyboard to allow a keyboard-sensitive application to get precedence. Control of the keyboard is initially disabled. MODE screen-size-number [SUPPRESS number] screen-size-number should be 2 5 or 43. MODE 43 sets the number of screen lines to 43 for use with the Enhanced Graphics Adapter or equivalent. MODE 25 resets the number of lines per screen to the standard value. SUPPRESS will suppress the next number mode calls so that this call may be effective even though . a subsequent call is made via a user-defined PROMPT string; a value of 2 55 will disable subsequent MODE calls until one with a SUPPRESS value < 2 55 (e.g., 0) is issued. (The console driver window buffers are still limited to 2 5 lines even in 43-line mode.) READ [device:][path]filename [ ,[device:][path]filename ]. . . accepts CU input from the specified file or files. This command can be specified only from the parameter string or the keyboard; that is. a READ file cannot con- tain another READ command. ■■...' STACK string puts the specified string at the end of the DOS keyboard input buffer. This com- mand is useful for providing a predefined response for applications that use DOS commands to read keyboard input. READ should be either the only com- mand or the last command in a file processed by CU READ since it causes CU to terminate. The ECD clock also includes an audible alarm. The alarm has a dis- tinctive sound, which you can use in lieu of the standard bell, for example, to signal the end of a batch file. Or, of course, you can set the alarm for a specific time. You can even have a text window display a message on the console when the alarm goes off. (If the alarm goes off when the display is in graphics mode, the text window will not be legible.) Once activated, the alarm will continue ringing until you turn it off by issuing a command sequence to the ECD or by pressing both Shift keys at once. In the latter case the ECD sounds two beeps to in- dicate the alarm has been reset. For systems with an IBM Enhanced [continued] 188 BYTE • OCTOBER 1986 WhyDoTheyLo<± SoMerent But Cost AboutThe Same? This is Toshiba 24 pin letter quality. T h i s i s 9 pin p r i n t e r q u a 1 i t y , When we developed the P321 and P341 3-In-0ne™ dot matrix printers, we had just two goals in mind. Superb 24-pin letter-quality reproduc- tion. And a price that's as close as possible to standard 9-pin models. One look at the print sample shows you we succeeded. So will one look at the price. In fact, we were so successful, we gave these 24-pin printers with the 9-pin price a special name: The Affordable Class. And we included features— starting with type font cartridge capability— that put them in a class by themselves. BoththeToshiba P321 and P341 printers produce letter-quality documents at 72 CPS, drafts at 216 CPS and high-resolution graphics at 180x360 dpi. Each printer has our industry-standard P351 command set for more sophisticated word processing and high-resolution graphics. And each printer has standard applica- tion compatibility with the entire IBM-PC 1 , line of products. Options include downloadable disk capability and type font car- tridges for an unlimited range of type styles, a one- or two-bin sheet feeder P321 as well as continuous forms tractor feeder. The affordable and compact P321: If your budget is less than compatible with your business and correspondence needs, you need our popular P321. %u get letter-quality reproduction in a printer that looks great on the bottom line. The affordable extended-carriage P341: If you need to do full-size spreadsheets, you need our wide-carriage P341. Like the P321, the P341 uses our 24-pin printhead that lasts up to four times longer than other printheads, and has made us the number one seller in the business. So buy a Toshiba Affordable Class P321 or P341 printer today. You'll get letters that look perfect every time. And a type font cartridge free* For the name and location of the Toshiba printer and computer dealer nearest you, call 1-800-457-7777. 1. IBM-PC is a registered trademark of International Business Machines Corporation. "Offer expires 2/15/87. See your Toshiba dealer for details. Or call 1-800-457-7777. P341 Inquiry 310 In Touch with Tomorrow TOSHIBA Toshiba America, Inc , n ormation Syst ms Division OCTOBER 1986 • BYTE 189 ENHANCED CONSOLE DRIVER Programming the Keyboard In addition to the standard, typewriter-like keys on the keyboard, you can also redefine any of the special keys listed below. All names preceded by an A, C, or S refer to the concurrent typing of the Alt, Ctrl, or Shift keys respectively— except for names beginning with CU which refers to the arrow (cursor) keys on the numeric keypad. For example, CULE is the cursor left (arrow) key; CCULE is that key plus the Ctrl key; Al is the 1 key plus the Alt key; SF1 is the Shift key plus the Fl key, etc. Some of the keys can be specified in more than one way, for example. CCULE or CCURSORLEFT. These special key names may also be used in the redefinition string to reset a special key to its original value. You should not use quotation mark delimiters when entering these key names. A-, AO. Al, A2, A3, A4, A5. A6, A7, A8, A9, A=, AA, AB, AC, AD, AE, AF, AF1, AF10. AF2, AF3, AF4, AF5, AF6. AF7, AF8, AF9, AG, AH, Al, Al. AK, AL, AM, AN, AO, AP, AQ, AR. AS, AT AU, AV AW, AX, AY. AZ, BACKTAB. CCULE. CCUR1. CCURSORLEFT CCURSORR1GHT CEND, CF1. CF10. CF2, CF3. CF4. CF5. CF6, CF7, CF8, CF9, CHOME, CPAGEDOWN, CPAGEUP. CPGDN, CPGUP, CPRTS. CPRTSC. CUDN, CULE. CURL CURSORDOWN, CURSOR-LEFT. CURSORR1GHT, CURSORUP. CUUP. DEL. END, Fl. F10, F2. F3. F4, F5. F6, F7, F8. F9, HOME. INS, PAGEDOWN. PAGEUP. PGDN, PGUP. SF1, SF10, SF2, SF3. SF4, SF5, SF6, SF7. SF8, SF9. STAB Examples lb define the key combination Alt plus function key Fl so that it changes the current directory to one named WP and invokes a program named WORD, you could use any of the three following statements (the Enter key can be represented by either ~013 or }): AF1 CD\WP~013WORD~013 AF1 "CD\WP ~013 WORD ~013" AF1 CD\WP}WORD} lb undefine (return to its original state) the key combination Alt plus function key Fl, use AF1 AF1 Graphics Adapter or equivalent the ECD provides 43-line support. This feature is useful primarily for certain DOS operations, but you can also use it with programs that are easily modi- fied, such as WordStar 3.3, to take ad- vantage of the additional display lines. Most DOS commands, unfortunately, expect a 2 5-line display, but many, such as MORE, for example, can be patched to work with 43 lines. Others, including DEBUG, work great in the 43-line mode. Switching between 2 5- and 43-line modes is easy. Displaying Menus from the PROMPT Command Because the DOS PROMPT com- mand can send an escape character to the console via a special meta string ($e). you could use PROMPT to completely control the ECD. This means that every time your computer would normally display the standard system prompt, the ECD can automat- ically display one or more windows. Such an ability lets you easily create a shell screen for DOS. For example, you can have help information or menus appear on the screen— in ef- fect, just a fancy system prompt— and you can still issue all DOS commands normally. When used with its key assignment feature, the ECD even lets you invoke a program with a single key. Thus, the prompt menu could list each program and the associated key or key com- bination that invokes it. When you ter- minate the program, the PROMPT command also ensures that a new menu is displayed; that way, you always know what programs are avail- able and how to run them. Programming the ECD As with ANSI.SYS, the native ECD command syntax extensions were de- signed for computers, not for people. For example, to put a red-on-white "HELLO" followed by a magenta-on- black "THERE" in the first positions of a memory buffer, you would have to send the following escape se- quences to the ECD (where Esc refers to the 1-byte value of the escape char- acter, ASCII value 27): Esc[2;116;1;1;"HELLO": Esc[66;5;"THERE": You could issue the sequence from a file using the DOS TYPE command (assuming the file contains embedded escape values) or an ad hoc program, which might translate every occur- rence of $e to an escape character, or you could simply use the system PROMPT command. In any case, the syntax is unwieldy and certainly hard to remember. Hence I developed the Console Utility (CU)— a program that accepts less cryptic commands for controlling the ECD functions. In general, with the help of the CU you have to use native ECD commands only for functions controlled by the system prompt. Otherwise, the CU provides a much easier way to issue ECD commands either directly on the DOS command line or as part of a batch file. It also provides help information for all the commands as well as general informa- tion about how to use the program. HVpe CU HELP ALL for a full list of commands and options.) See the text box 'The CU Command Syntax" on page 185.) If the CU is run without com- mand parameters, it will prompt you for commands with a question mark. When issuing CU commands from a batch file, you can specify an entire set of commands by separating the commands with semicolons. One of the CU commands, READ enables the CU to read and interpret one or more command files; consequently, you can create complicated window definitions with just one call of the CU program. [continued) 190 BYTE • OCTOBER 1986 New GPS Series: Tek sets the pace with SmartCursors and push-button ease. Work faster, smarter, with two new general purpose scopes from Tektronix. The four-channel,. 100 MHz 2246 and 2245 set the new, fast pace for measurements at the bench or in the field. They're easy to use and afford, by design. On top: the 2246 with exclusive integrated push-button measure- ments. Measurements are accessed through easy, pop-up menus and imple- mented at the touch of a button. Mea- sure peak volts, peak-to-peak, ±peak, dc volts and gated volts with new hands- off convenience and on-screen readout of values. SmartCursors™ track voltmeter mea- surements in the 2246 and visually indi- cate where ground and trigger levels are located. Or use cursors in the manual mode for immediate, effortless measure- ment of waveform parameters. Both scopes build on performance you haven't seen at the bandwidth or prices. Lab grade features include sweep speeds to 2 ns/div. Vertical sen- sitivity of 2 mV/div at full bandwidth for low-level signal capture. Plus trigger Features 2246 2245 Bandwidth 100 MHz 100 MHz No. of Channels 4 4 Scale Factor Readout Yes Yes SmartCursors™ Yes No Volts Cursors Yes No Time Cursors Yes No Voltmeter Yes No Vertical Sensitivity 2 mV/div 2 mV/div Max. Sweep Speed 2 ns/div 2 ns/div Vert/Hor Accuracy 2% 2% Trigger Modes Auto Level, Auto, Norm, TV Field, TV Line, Single Sweep Trigger Level Readout Yes No Weight 6.1 kg 6.1 kg Warranty 3-year on parts and labor including CRT Price $2400 $1875 sensitivity to 0.25 div at 50 MHz, to 0.5 divat150MHz. Accuracy is excellent: 2% at vertical, 2% at horizontal. And four-channel capability includes two channels optimized for logic signals. Best of all, high performance comes with unmatched convenience. You can see it and feel it — in the responsive controls and simple front- panel design, in extensive on-screen scale factor readouts, and in simplified trigger operation that includes Tek's Auto Level mode for automatic trig- gering on any signal. Start to finish, the GPS Series saves steps and simplifies tasks. Get out in front! Call toll-free today to order, to get more details or a vid- eotape demonstration. 1-800-433-2323 In Oregon, call collect 1-627-9000 ■- "■"■-<:;; : -?, m a it a a o 'O^CV 7. C ? # W Featuring four chan- nels, flexible triggering, extensive CRT readouts and push-button ease of use, the new Tek 2246 (left) and 2245 (above) bring high-qual- ity, low-cost analysis to diverse applications in digital design, field ser- vice and manufacturing. Tfektronix COMMITTED TO EXCELLENCE Inquiry 299 Copyright ^1986, Tektronix, Inc. All rights reserved. TTA-469 ENHANCED CONSOLE DRIVER Key Assignments The CU also provides an easy method to redefine the keyboard. You can assign a character— letters, digits, special characters such as ~, \, I, ?, and so forth— to any of the single-charac- ter keys (the white keys in the center of the keyboard) or to a combination of keys. To redefine a key you need only specify that key in quotation marks, followed by a space and the new definition string of characters, which needs to be delimited by quotation marks only if the string contains embedded spaces. You can specify any ASCII character with a tilde (~) followed by the three-digit ASCII value of the keystroke. You can represent the Enter key either by the closing brace character(J) or by ~013. In ad- dition to the standard, typewriter-like Listing 1 : A sample CU command file that creates a menu and redefines associated keys. To execute the file, you should place the line CU READ STDFKEYS.CU in the AUTOEXEC.BAT file. \n addition to the standard ANSLSYS-type sequences that control the display colors used by DOS and the cursor position, all other ECD functions are accessible from the prompt string using the $e specification to represent an escape character. STDFKEYS.CU AF1 M CU LOCK SUPP 2 @ 25 67; CLOCK SUPP 2 @ 25 74{ CD\XTALK{XTALK{" AF2 "CU LOCK SUPP 2; CLOCK SUPP 2{CD\FW{FW| AF3 "CU LOCK SUPP 2;CL0CK cb BLINK SUPPRESS 2 @ 25 35} CD\L0TUS|123{" AF4 CD\DBASE{ DBASE} AF5 "CU KEYDEF SUPP 3 }CD\ROL| ROLODEX}" @ 1,64 wr " G 2,64 wr " @ 3,64 wr " @ 4,64 wr " @ 5,64 wr " @ 6,64 wr " @ 7,64 wr " @ 2,65 mW "c @ 3,65 mW "c @ 4,65 mW "c @ 5,65 mW "c @ 6,65 mW "c ]F1 " cW " Crossl ]F2 " cW " Framev ]F3 " cW " 123 ]F4 " cW " dBASE ]F5 M cW " Rolod* talk " vork " ii 5X DEFINE WIND 1,64 THRU 7,80 AT 1,64 Listing 2: This sample batch file sets the system prompt to display window of the private buffer. Once the batch file has been executed, you can enter MENU ON or just MENU at the DOS command prompt to create a new system prompt that will display the menu created by listing 1. MENU. BAT echo off if .%1 =» .off goto OFF if .%1 == .OFF goto OFF rem rem Set menu ON rem ■ »m PROMPT $e[136;255:$e[10:$e[128:$e[1;31;40m$e[l;1H$p$e[14;206 ; 1 ;67:$e[76; 14; 1 ;74:$e[37;44m$e[25; 1H$e[K$g goto DONE :OFF PROMPT $e[136;255:$e[2A$e[s$e[14;206;1;8:$e[76;14;1;1:$e[1; 15H$e[K$e[31 ;40m$p$e[0; 1 ;37;44m$e[K$e[u$e[B$g .-DONE keys on the keyboard, you can also change assignments for any of the keys listed in the text box "Program- ming the Keyboard" on page 190. You can also display a window with an appropriately designated key or combination of keys, such as Ctrl- Home. To display window 1 , for exam- ple, every time the Ctrl-Home key combination is pressed, specify CHOME DISPLAY WINDOW 1. Creating a Prompt Command to Display the Menu To create a menu display you can use the CU input file like the one in listing 1. Once the CU file has been pro- cessed, you can turn the menu display on or off by creating a new system prompt with a batch file like the one in listing 2, which sets the system prompt to display window of the private buffer. After that batch file has been executed you can type MENU ON (or just MENU), and from that point on, the ECD will display window of the private buffer in its desig- nated position; the key toggle settings and the time will appear in the upper right corner. (The remainder of the se- quences in listing 2 are standard ANSI.SYS codes that display the cur- rent drive and subdirectory in the up- per left of the screen and place a " >" as the DOS prompt in the first column of line 2 5.) IVping MENU OFF turns off the menu and places the time dis- play at line 1, column I, the key tog- gle indicators in line 1, column 8, and the current device, directory, and ">" starting in column 15. I designed the Enhanced Console Driver to provide a simpler user inter- face than the normally terse DOS sys- tem screen. The ECD achieves this at a relatively small cost— about 10K bytes of storage with no noticeable performance degradation. And in combination with the Console Utility the ECD provides an easy way to define menu screens and redefine the special keys. Of course it won't become a threat to the new multitask- ing windowing environments, but for anyone who does not want to invest the extra money and system re- sources in one of those sophisticated commercial programs, the ECD is a useful tool. ■ 192 B YTE • OCTOBER 1986 When Harvard needs Princeton they should call Logicsoft Whether Harvard University needs Princeton Graphics monitors or any of the over 800 computer products we stock, Logicsoft can get it there quickly, efficiently and at the right price. Logicsoft is a direct distributor to over 50,000 corporations worldwide including 90% of the Fortune 1000 and most of the nation's leading universities and colleges (including Harvard and Princeton). Service is the difference between suppliers— that's why we guarantee the lowest price, offer free overnight delivery*, carry products that are fully backed by manufacturers' warranties and offer toll-free customer service and technical support. And we are the only direct distributor to offer national on-site installation and service on systems through our 96 authorized service centers. It's easy to do business with Logicsoft. We offer terms to qualified institutions; accept all major cards; and now our newest service... leasing. Therefore, when Princeton needs Harvard (Total Project Manager) they should call us too! . OGICSOFT SPECIAL OF THE MONTH L0G *ZZL HX-12 co.or monitor. High reso.ut.on, CALL FOR OUR SPECIAL LOW PRICE! 110 Bi-County Blvd., Dept. 543 Farmingdale, NY 11735 CANADA: 800-433-6235 Domestic/lnt'l Telex 286905 SoftUR To order or receive technical assistance, call our National Hotline: 1-800-645-3491 NY STATE: 1-800-235-6442 (516) 249-8440 Customer Service: 1-800-431-9037 NYS: 516-249-8440 FAX #516-249-5289 EUROPE: 020-83 48 64 Telex: 10759 Logic NL Mail orders to: LOGICSOFT EUROPE BV Baarsjesweg 224 Amsterdam, Holland ^Sr* ^ ..r--) ' N° surcharge for MasterCard, VISA, American Express. C.O.D., money order, check or PO's (please call lor price verification) • No sales tax on orders shipped outside N.Y. State • Please add 2% for < ^™'S8^"'" iii insurance and handling ($3 00 minimum) {int'l orders add'!) • We do not bill until we ship. All products covered by mfg's warranty. Defective merchandise may be returned for repair or exchange only. We do not guarantee compatibility. Any goods returned for credit are subject to a 15% restocking charge. All prices and policies subject to change without notice *FREE OVERNIGHT DELIVERY— available on orders totaling over $100. Shipped UPS. FREE, if under $100 (within Cont. U.S.) Due to weight restrictions, printers and monitors & some misc. bulk items are also shipped UPS, FREE. LOWEST PRICE GUARANTEE— If you find a lower price (bonafide advertisement or quote) we'll beat it by $10. On items under $100. American Express or terms orders we will meet any lower price. We reserve the right to request a current written price quote. Free on-site instci Enhanced Leading Edge New IBM Model D XT-20 Mb • 512KRAM Memory 1200B Internal Modem • Two 360K Half/ Height Floppy Drives • Four Expansion Slots • Keyboard • Text Display Card • Monochrome Monitor* One Serial and Parallel Port • Software Bundle • Color Monitor Option Available. • Purchase Price: $1,375 Lease For $59 per month • 512K • 20 Mb IBM Hard Drive • 360K Floppy Drive Half /Height • Eight Expansion Slots • IBM Enhanced PC Keyboard • Asynchronous Communications Adapter • Free 90-Day, On-Site Service Contract • Color or Monochrome Monitor Available as Option. • Purchase Price: $2,299 Lease For $98 per month New IBM AT-30 Mb • 8 MHz • 512K • 30 Mb IBM Hard Drive (Full Height, w/controller) • 1.2 Mb Half /Height Floppy Eight Expansion Slots • IBM Enhanced PC Keyboard • Serial/ Parallel Adapter • Free 90-day, On-Site Service Contract • Color or Monochrome Monitor Available as Option. • Purchase Price: $4,179 Lease For $165 per month Lease or purchase systems from Logicsoft A Logiclease of any system entiltles you to free installation and 90-day service contract at your place of business! Outstanding flexibility plus possible tax benefits. We'll process your lease application in 24 hours! A purchase of any system entitles you to installation for only $99, and free service for 90 days at your place of business. New Compaq Portable II 20 Mb • 640K RAM Memory • 8 MHz • 80286 Based CPU • One 20Mb Half/ Height Hard Drive (w/controller) • tii 360K one/third Height Floppy Drive ■ Two Expansion Slots • Compaq II Keyboard • Text/ Graphics Display £| • 9" Text/ Graphics Monochrome Monitor • One Serial and Parallel Port Free 90- Day, On-Site Service Contrac • Purchase Price: $3,879 Lease For $153 per month Logic AT FCC Class B Approved. • 8 MHz* 512KRAM Memory* 80286 Based CPU □ ROM BIOS 32K (Includes auto system test when powe is turned on • 1.2 Mb High Density Floppy Drive • Eight Expansion Slots « Enhanced Keyboard • (1) Serial Port I (1) Parallel • Clock/calendar • Graphics Card • Programmable Speak • Automatic Lock/ Unlock Mechanism Monochrome or Color Monitor Available as Option. Hard Drive Options Available • Purchase Price: $1,485 Lease For $58 per month 100% Burn-In and Testing. All systems undergo a 48-hour configuration, testing and burn -in period. We configure system boards, set DiP switches, format hard drives, perform memory diagnostics and chet system with monitor. crtion and service ew Compaq eskpro 286-30 Mb i12K RAM Memory • 80286 Based U • One 30 Mb Hard Drive /controller) • One 1.2 Mb f/ Height Floppy Drive • Seven 3ansion Slots • Compaq Keyboard • iphics Card • One Parallel Port • :e 90- Day, On -Site Service Contract /Olor or Monochrome Available as tion. 'urchase Price: $3,859 ase For $152 per month AT&T 6300 • 640K RAM Memory • One 10 Mb Half /Height Hard Drive (w/ controller) • One 360K Floppy Drive • Seven Expansion Slots • AT&T Keyboard • High-Resolution Monochrome Graphics Card • High- Resolution Monochrome Graphics Monitor • Serial & Parallel Ports • GW Basic and MS. DOS. Free 90- Day, On-Site Service Contract. Color Monitor Optional. • Purchase Price: $1,799 Lease For $76 per month ITT XTRA (Dual Floppy) • 256K RAM Memory • Two 360K Half /Height Floppy Drives • 4.77 MHz 8088 Based CPU • 5 Expansion Slots • ITT Keyboard • Text Display Card • ITT Monochrome Monitor (Amber or Green.) One Parallel and Serial Port • Color Option Available. • Purchase Price: $1339 Lease For $58 per month ITT XTRA XP W/20Mb IBM XT Compatible with speed of an AT • 512K of RAM Memory (Expandable to 640K on Mother Board) • 80286 Based CPU running at 6 MHz • One 20 MB Hard Drive • One 360K Floppy Drive • 5 Expansion Slots • ITT Keyboard • One Serial Port □ One Parallel Port • Color or Monochrome Monitor Available as Option. • Purchase Price: $2,049 Lease For $88 per month ogic Turbo XT C Class B Approved. 3 MHz* 640K RAM Memory stem ROM 8K BIOS • 360K Half/ ight Floppy Drive • Eight Expansion its • Enhanced Keyboard • (1)Serial Parallel Port • Clock Calendar • aphics Card • Monochrome Monitor • (or Option Available • 30-Day Money ck Satisfaction Guarantee • 1 Year rranty. Hard Drive ODtions Available. Purchase Price: C7QC TOSHIBA Lap-Top T-1KX) Plus (DUAL FLOPPY) • 640K RAM Memory • CMOS 80C86 Running at 7.1 MHz • Two 720K 3.5" Floppy Drives • One Expansion Slot • TOSHIBA Keyboard • LCD Display • Color Graphics/ Monochrome Composite Card • One Parallel and Serial Port • Clock Calendar • External Floppy Drives Optional. • Purchase Price: $1,799 Lease For $76 per month IBM AT TOTAL BUSINESS SYSTEM We'll configure a system to your needs, including peripherals and software and make the price affordable through low monthly Logiclease payments. Here's an example of what you can do 1 • 512K RAM Memory • 6 MHz • One 30 Mb Hard Drive • One 1.2 Mb High Density Floppy • Eight Expansion Slots • IBM AT Keyboard • Serial/ Parallel Port • IBM Color Monitor • Color Graphics Card • Tobshiba 351 P/S Printer & Cable • Software Bundle (Lotus 1-2-3, dBase III, WordPerfect, IBM DOS 3.2). Free 90-Day On Site Service Contract • Purchase Price: $5,499 Lease For $208 per month 110 Bi-County Blvd., Dept. 54321 Farmingdale, NY 11735 CANADA: 800-433-6235 Domestic/lnt'l Telex 286905 SoftUR To order or receive technical assistance our National Hotline: 1-800-645-3491 NY STATE: 1-800-235-6442(516) 249-8440 Customer Service: 1-800-431-9037 NYS: 516-249-8440 FAX #516-249-5289 EUROPE: 020-83 48 64 Telex: 10759 Logic NL Mail orders to: LOGICSOFT EUROPE BV Baarsjesweg 224 Amsterdam, Holland argest selection of peripherals ee overnight delivery! w/0K 59 W/384K 129 W/576K 138 EVEREX Magic Card II W/384K 199 Logic (AST Comp.) I/O Mini Half Card 99 TECMAR Captain(384K) 199 QUADRAM Quadboard(384K) 199 Silverboard 209 Ems W/256K 349 Liberty (AT) W/128K 315 INTEL Above Board (PS/AT) W/128K $399 Above Board (PC) w/64K ... 275 Above Board (AT) W/128K . . 419 Above Board (PS)64K 309 Above Board (PS) 256K .... 389 8087-2 Math Co-Processor . 1 39 8087-3 Math Co-Processor . 1 79 80287 Math Co-Processor . 199 GRAPHICS BOARDS AST Preview $239 EVEREX The Edge 239 Evergraphics . . . Low Price Call! HERCULES Monochrome Graphics Card 199 ColorCard 155 Graphics Card Plus 209 LOGICWARE Logic (Hercules Comp.) Color Graphics Board ... 99 Logic (IBM Comp.) Enhanced Graphics Adapter(EGA) 239 Logic (Hercules Comp.) Monographics Board . . . 109 PARADISE SYSTEMS Auto Switch EGA Card 359 Modular Graphics Card 249 Color/Mono 159 QUADRAM EGA Plus Graphics 369 SIGMA EGA Board 369 Color 400 (Princeton) 479 STB Chauffeur 209 EGA Plus 309 TECMAR Graphics Master 399 COMMUNICATIONS BOARDS AST 5251-11 Plus $685 5251-11 629 DCA IRMA Board 779 MODEMS AST Reach 1200 Half Card $299 EVEREX Evercomll 149 HAYES Smartmodem 1200 389 Smartmodem1200B w/Smartcom II 359 Smartmodem 2400 599 Smartmodem 2400B w/Smartcomll 549 LOGICWARE Logic (Hayes Comp.) 1200 Baud External Modems . 199 Logic (Hayes Comp.) 2400 Baud External Modem . . 309 Logic (Hayes Comp.) 1200B Internal Modem with Mirror (Crosstalk Clone) Software 149 Logic 2400B Internal Modem 2400B w/Software 299 PROMETHEUS Pro-modem 1200 279 Pro-modem 1200B w/software 239 QUADRAM Quadmodem Series Low Price Call! VEN-TEL PC Modem 1200 Half Card . 359 1200Plus 329 PC Modem 2400 H a I f Car d . 469 MOUSE INPUT DEVICES MOUSE SYSTEMS PC Mouse w/DR Halo 2 .... $129 MICROSOFT Microsoft Mouse (Serial) .. 135 Microsoft Mouse(Buss) . . . 125 SURGE PROTECTORS KENSINGTON MICROWARE Masterpiece Plus $119 CURTIS Diamond 39 Emerald 45 Ruby 59 KEYBOARDS KEYTRONIC 5151 (Deluxe) $169 5153 (w/touch Pad) 279 3270 PC 235 5151 (AT&T) 189 KeytronicJr.5151 169 MEMORY STORAGE IOMEGA Bernoulli Box (10 + 10) ... $1999 Bernoulli Box (20 Mb) .... 1899 Bernoulli Box (20 + 20) . . . 2750 Bernoulli Box Plus 4199 HARD DISK DRIVES MOUNTAIN COMPUTER Hard Drive Card (20 Mb) ... $869 Hard Drive Card (30 Mb) ... 1049 PRIAM CORP 60 Mb Internal Hard Drive 1449 lnnerspacelD40Mb 1249 PLUS + Hard Card 10 Mb 629 20 Mb Vz Htlnt 4J 30Mb 1 / 2 Htlnt 5: 20MbFullHt(AT) ? 30MbFullHt(AT) Jj 40MbFullHt(AT) ft 80 Mb Full Ht (AT) 12' CORE 20Mblnt(AT) 12< 30Mblnt(AT) 131 40Mblnt(AT) 145 72Mblnt(AT) 27' CARTRIDGE TAPE BACK-UP EVEREX Excel Stream 20 M b I nt $6: ExcelStream60Mblnt 7! Excel Stream 60 Mb Ext . . . £ IRWIN Irwin 110 10 Mb Int A[ 20Mblnt S 20 MB 325 (AT) Ext. D ^ LOGICWARE Logic 60 Mb Internal Cartridge Tape Backup Kit 71 Logic 20 Mb Internal Cartridge Tape Backup Kit a SYSGEN Image Tape Backup 10Mblnt 7f I mage Tape Backup 20 Mb Int 5E Image Tape Backup 20 Mb Ext E- TECMAR QIC60AT 12- QIC 60 Ext Tape Backup .. . 15/ CORE 60 Mb Ext 155 FLOPPY DISK DRIVES Panasonic 360 K 1 / 2 Ht $1 ' Tandon TM-100 360 K F/Ht. . 1- TandonTM-100360KV2 Ht. 1f Toshiba360K 1 / 2 Ht 1 BACK UP POWER SUPPLIES DATA SHIELD 200Wt(PC) $2^ 300Wt(XT) 3* Hard Card 20 Mb 699 SEAGATE 10 Mb y 2 Htlnt 465 500Wt(AT) 800Wt(AT) 'Due to weight restrictions, Printers and Monitors and some misc. bulk items are shipped UPS — free. All prices and policies subject to change without notice. 5 YEAR WARRANTY Look for the items printed in blue to identify our line of LogicWare computer hardware products They are fully compatible with, but priced well below, the major manufacturers. You save- not by our use of inexpensive abor and parts-but through state-of-the- art technology. Each product carries our 5 year unconditional replace or repair warranty. SPECIALS Canon LBP8A1 Laser Printer LEASE PRICE $85 PER MONTH Purchase price $1985 • 8 Pages Per Minute • 128K Built-in Memory • Super Quiet • Has Four Built- in Fonts plus the ability to accept fonts downloaded from a computer and various plug-in font cartridges • As many as 16 different fonts can be mixed on a single page. Great for Word Processing, Spreadsheets & Business Graphics. CANON LBP8A2 LASER PRINTER Lease for $122 per month Purchase price $3089 CANON IBP8A Vi TONER CARTRIDGI-S95 DESKTOP PUBUSHING SOFTWARE ScLASERplus $ 3 ^ Softype Spellbinder Desktop Publisher 429 PRINTERS* CANON BubbleJetBJ-80. EPSON LQ800 LQ1000 FX-85 $449 569 749 389 The Nation's l< and ft FX-286 589 JUKI 6100 389 6300 699 NEC Pinwriter P-5 Series Low Price Call! Pinwriter P-6 489 Pinwriter P-7 679 OKI DATA 182 Plug&Play 223 192 Plug & Play 349 193 Plug & Play 535 2410 P Plug&Play 1729 PANASONIC KX1091 245 KX1595 619 TOSHIBA P/S321 489 P341 799 P/S351 999 CITIZEN MSP10 299 MSP15 399 MSP20 339 MSP25 499 Premier 35 509 LASER PRINTERS* CANON Laser Printer LBP8A1 $1985 Laser Printer LBP8A2 3089 HEWLETT PACKARD Laser Printer 2489 Laser Printer Plus 2899 LaserJet 500( + ) 4299 OASYS Laser Pro Express 1699 PLOTTERS* CAL CO MP 1043 $7899 FACIT 4550 (6 Pen Plotter) 395 HEWLETT PACKARD 7475A 1629 7550 3349 HOUSTON INSTRUMENTS DMP40 899 DMP41 2549 DMP42 2549 DMP51 3849 DMP52 3849 DMP52MP 4889 PRINTER BUFFERS QUADRAM Microfazer Series LowPriceCall! MONITORS* AMDEK Color600 $ 389 Color 722 499 Color 725 LowPriceCall! 12" Amber 310A 149 IBM Color Monitor 545 Monochrome Monitor .... 225 Enhanced Color Display . . . 679 NEC JC— 1401 P 3A Multi-sync color w/swivel base .... 559 PRINCETON GRAPHICS RGB HX-12 419 RGB HX-12E 535 RGBSR-12 559 RGBSR-12P 625 Amber Max 12 159 QUADRAM Amberchrome12" 145 Enhanced Graphics Monitor w/swivel 549 TAXAN 121/122 145 620 415 640 515 MULTI-FUNCTION BOARDS AST RESEARCH Six Pack Premium $379 Six Pack Plus (384K) 229 Rampage W/256K 249 Rampage (AT) W/512K 449 Advantage (128K) 359 I/O Mini Half Card 119 I/O Plus II 125 LOGICWARE Logic Above Board (Lotus/ Intel/Microsoft Expanded memory specification) . . 189 Logic (AST Compatible) Multifunction Board W/384K 159 Logic (AST Compatible) AT Multifunction Board W/128K (Expandable to 2.0Mb 219 Logic (AST Compatible) 576K Ram Board 1 / 2 Card Circle #400 on reader service card. Free overnight delivery on software for all your IBM PC applications! 30 DAY MONEY BACK GUARANTEE ON LOGIC WARE... THE LOGICSOFT LOW COST ALTERNATIVE WORDSTAR CLONE Processing your words now becomes more affordable through this amazing clone! only S79 95 dB III CLONE A clone that gives you the same capabil- ities at a very capable cost! only $79 95 1-2-3 CLONE Now, a 1-2-3 clone; we've cloned the soft- ware, but we didn't clone the price! only S79 95 You may return LogicWare software for any reason within 30 days of purchase. Please call for return authorization number. WORD PROCESSING Display Write III $369 EasyWriterll 195 Microsoft Word 3 269 Multimate 229 M ultimate Advantage . . 277 NewWord3 269 OfficeWriter 245 PFSWrite 85 Volkswriterlll 147 WordPerfect 219 Wordstar 169 Wordstar Pro Pak 239 Wordstar 2000 245 Wordstar 2000 Plus 295 XY Write III 219 WORD PROCESSING ADD-ONS Fancy Font $145 Punctuation & Style ... 75 Reference Set Low Price Call! Turbo Lightning 57 Word Finder 59 DATABASE MGMT. Cornerstone $ 75 dBase III Plus 429 Knowledgeman/2 275 Paradox 495 Powerbase 209 Q&A 249 R. Base5000 265 R: Base System V 369 Revelation 495 Reflex 59 ThinkTank 109 DATABASE MGMT. ADD-ONS Clipper $349 Clout 2 139 dGraph III 149 Ext Report Writer 85 Quickcodelll 145 Quick Report 139 SPREADSHEET/ INTEGRATED Ability $ 69 Enable 339 First Choice . . Low Price Call! Framework II 419 Lotus 123 (Ver. 2.01) 317 Multiplan 119 Smart Series 409 SupercalclV(NEW) 279 Symphony 443 SPREADSHEET ADD-ONS Lotus Report Writer $109 Cambridge Spreadsheet Analyst 75 Sideways 45 Spreadsheet Auditor. . . 99 SQZ 65 Quickcode for 1-2-3 85 FASTBACK A low cost alternative to tape backup hardware. Back up 10 Mb in less than 8 minutes using 5 1 /4 diskettes. only $93 LOTUS REPORT WRITER The next step for the Power User! Format your own reports, forms and mailings using 1-2-3 files. only $109 SIDEWAYS Now you can create extra wide printouts of your spreadsheets without the mess of staples, glue or tape. only $45 DESKTOP PUBLISHING Sc LASERplus $329 SofType 795 Spellbinder Desktop Published 429 GRAPHICS Chartmaster $209 Diagram Master 195 Diagraph 309 Energraphics w/Plotter Option 289 Graphwriter 219 Harvard Presentation Graphics 289 Map Master 229 Microsoft Chart 179 PFS Graph. . Sign Master. CAD/CAM 85 149 Auto CAD Drafixl Generic CAD . . Pro Design II . . LANGUAGES $247 239 119 237 CCompiler(MS)(4.0) . . $265 CobolCompiler(MS) . . 425 Fortran Compiler (MS) . 217 Lattice C Compiler . . . 259 Macro Assembler (MS) 97 Pascal Compiler(MS) . 183 Quick Basic (MS) 67 True Basic 119 Turbo Pascal (plus BCD &8087) 65 PROJECT MANAGEMENT Harvard Total Project . . $285 Microsoft Project 237 Super Project Plus 285 Timeline 235 FINANCIAL Managing Your Money . $109 Dollars and Sense 107 ACCOUNTING BPI $299 Champion III 279 Computer Associates . . 317 (formerly I US) Dae Easy 57 Great Plains 447 Open Systems (3.0) 417 Real World 395 MISC/UTILITIES Copy II PC $ 35 Crosstalk XVI 99 Fast Back 93 M icrosoft Windows. .. . 67 Norton Commander ... 49 Norton Utilities 55 Prokey 77 Remote 99 Sideways 45 Sidekick 47 Superkey 45 2 NEW FREE CATALOGS. CALL TODAY! 1-8QO-645-3491 • Brand new Programmer's Language and Utilities Guide • A convenient and valuable listing of timesaving tools for the programming professional • Complete with product description, • Brand new Productivity Guide • Full line catalog of software enhancements for the business professional • Full descriptions of templates, memory management, menu management, backup software, training, and much more. Circle #400 on reader service card. PUBLIC DOMAIN POWERHOUSES ABUNDANCE by Roedy Green A database language that can run backward in time ABUNDANCE IS a public domain, FORTH-based, data-entry, database, screen-handling language that auto- matically handles the routine "house- keeping" that accounts for a major part of interactive application code. It does not use artificial intelligence techniques; it simply performs these tasks as a side effect of the work you explicitly ask it to do. If you want to take control of any of these tasks yourself, you can. Abundance was originally designed to serve charities working to create an abundance of food, water, and shelter on the planet; hence, its name. But because of its features, it has become a business programming language and has been used in production en- vironments since 1981. Although Abundance was designed for the computer-naive volunteer worker, it is responsive enough for a business en- vironment. | Editor's note: The Abundance package of 15 disks includes source code in IBM Backup/Restore format for Abundance itself, a 32-bit FORTH compiler, a postfix assem- bler, a screen editor, some sample applications, documentation, tutorials, and more. Since it is too large for BYTE to distribute, it is avail- able only by mail for $75 U.S. cash, check. or money order (the cost of duplication) from the author at his address.\ A Rich Language Abundance is a rich language with 600 verbs of its own, 400 from Forth- 83. 300 from assembler, and 900 hid- den ones. It can open files, validate data entry, convert values back and forth between binary and ASCII, keep track of how many elements in an ar- ray are in use, read from and write to disk, and lay out fields in columns on an appropriately labeled screen— all without being explicitly asked. If you recompute a variable current- ly displayed on the screen, Abun- dance, like a spreadsheet, automati- cally refreshes the screen with the new value. It understands the zip code system, the telephone numbering sys- tem, and the states of the union and can cross-check all three; it can per- form similar cross-checks for other countries as well. Abundance knows that phone numbers need a dash in the middle and that area codes are enclosed in parentheses. It also knows that 555-1212 is not the phone number of any real person. It knows the calendar; it knows that 1 900 was not a leap year and that 2000 will be. And it knows that the people in India use the date format DD/MM/YY while Swedes use YYMM.DD. Most impor- tant, however, Abundance takes the initiative and uses this knowledge without your having to explicitly ask for it. Abundance also understands the limitations, quirks, and control se- quences of at least 20 brands of printer. It lets you think that you have the perfect printer, one that can print in any pitch, any type style, and any of the 2 56 accented and special char- acters. You can use words like ITALIC, BOLD, and WP-QUAUTY and Abun- dance will do the best it can with your actual printer. It can also number your pages 1 of 20, 2 of 20. etc. Abundance can speak in English, French, Swedish, or Esperanto, and you can key all the accented charac- ters without resorting to the numeric keypad. It can also interface with other packages, including Btrieve, Lotus 1-2-3. VP-Planner, Microsoft [continued] Roedy Green is president of Canadian Mind Products (11-3856 Sunset St.. Burnaby. BC. Canada V5G 1T3). He has a B.S. in math- ematics from the University of British Columbia. OCTOBER 1986 -BYTE 193 ABUNDANCE Word Mail Merge. Ready. 1 , Optimum Data Externa] Sort. SuperKey, and Pro Key In addition to its main features, Abundance has many other novel fea- tures with colorful names like humps, jives, combos, anchors, gauntlets, liv- ing fields, fast forwards, variable vari- ables, moods, promises, safes, rikt- nummers, and graceful bailouts. The User Interface Because Abundance is a superset of both 8086 Assembler and 32-bit Forth-83 and because the hidden verbs that form the language itself are available to you, you can interface with it at any level you choose. When you use Abundance, you see a traditional full-screen arbitrary layout, often in columns or rows with boxes, color, and data labeled with the appropriate variable names. Each time an Abundance application ex- pects you to key in data, it highlights the field in reverse video and puts an oversized blinking cursor on the first character of the field. It then produces a uniform prompt message contain- ing the name of the variable being keyed, its upper and lower acceptable bounds (or a list of choices), what sort of data it wants (name, date, etc.), and usually some other explanatory infor- mation. In addition, Abundance main- tains the Caps Lock, Shift, and Num Lock keypad indicators. You can use the backspace, arrow, and function keys to edit the data in such a way that they mimic your favorite word processor. If you get lost, you can hit the Oops key (the FIO function key) to put the field back the way it was. Abundance usually detects any errors in keying as soon as you make them. It makes various sounds for different classes of warnings and errors that indicate immediately what you did wrong. Abundance works in the background, inserting the Shift key when you forget to, jumping over the dash in a phone number, and keeping numbers right-justified (cal- culator-style) as you enter them. If you realize you made a mistake in a prior field, you can hit the up ar- row to make the program "run back- ward in time." Then you can enter a new value for the prior field and use the down arrow to carry on where you left off. You can also hit the Escape key at any time. In general, this stops the application in an orderly fashion so that files are kept logically consis- tent and no data is lost. Jaunting jaunting is the ability to run backward in time. It is simply a streamlined ver- sion of the IBM OS/370 checkpointing facility. When you key in a field, Abun- dance secretly takes a snapshot" of the state of the application program. When you hit the up arrow, it finds the appropriate old snapshot of the ap- plication and restores it to the current view. The application then carries on as if it had never been any further than that. Jaunting has no perceptible over- head. It is quick because you don't need to save all of RAM, just the data stack, the return stack, and a few critical internal-state variables. As in FORTH, the data stack holds tem- porary variables and parameters passed to procedures, and the return stack keeps track of which procedure called which procedure. Surprisingly, the values of the vari- ables are not saved as part of the snapshot. If Abundance did save the variables and then restored them to the old state after jaunting backward, you would lose the data you had entered since then. When the applica- tion program wakes up after its jaunt, the values of the variables keyed just prior to jaunting are intact. You might think it would confuse the program to find the variables it is about to re- quest already present, but in practice this rarely causes any problem. MUSTS AND WARNS Jaunting has some wonderful fringe benefits. For instance, an Abundance [continued) 30 KEY STAND ALONE (E)EPROM PROGRAMMER - ONLY $495.00 WRITER-I™ The best Low Cost fully Stand Alone (E)EPROM Programmer on the market from BYTEK - ALWAYS SETTING HIGHER STANDARDS STANDARD FEATURES FREE UV ERASER (Model BUV-3C) while supply lasts 21 DAY NO OBLIGATION TRIAL MADE IN THE U.S.A. [^ 30 Key Full Travel Keyboard 2) 6 Character 0.6" 7 segment LED 2) 32K Byte x 8 RAM (256K Bit) [^ Supports all popular single voltage EEPROMs& EPROMs from 2716 -27256 El Fast Intelligent Algorithms Options: PROMsoft IBM-PC Compatible Software Driver Toll Free: 800-523-1565 / In Florida: 1-305-994-3520 Telex: 4998369 BYTEK &\ Fully software controlled programming (no configuration plugs required) [^ Stand Alone Operation (includes Data Editing) &\ RS232 Serial Port supports over 12 formats 2) Baud Rate: 110-9600 |B|V|T[6|K CORPORATION INSTRUMENT SYSTEMS DIVISION 1021 South Rogers Circle • Boca Raton, Florida 33431 194 BYTE' OCTOBER 1986 Inquiry 52 More of the Pacific from the airline that brings you more j of thellS. m No other U.S. airline offers you more across the Pacific than United. United is the only U.S. airline serving thirteen cities in the Far East and South Pacific. With more nonstops from more U.S. gateways than any other airline. A total of 84 nonstops every week from six convenient U.S. gateways. Including nonstop service to Tokyo, Hong Kong, Osaka, Taipei, Sydney and Auckland. United's Mileage Plus Frequent Flyer Program offers exciting travel awards that can take you around the world. And United's Royal Pacific Service offers you the best of the friendly skies every step of the way. So let United bring you more of the Pacific. Call your Travel Agent or United Airlines. Tokyo Taipei Singapore Osaka Hong Kong Sydney Seoul Manila Melbourne Beijing Bangkok Auckland Shanghai ABUNDANCE application can assert that a certain expression must be true, for example, that three fields must add up to 100 percent. If the program detects that a MUST has failed, it jaunts the pro- gram back to the first input involved. As a programmer, you can optionally provide hints as to which field you think is wrong, but even if you guess wrong, the end user can hit the up and down arrow keys to correct the real culprit. There is also a variant of the MUST called the WARN that makes an "eh?" noise— I am Canadian— and asks you to confirm that an unusual condition is indeed correct. If you answer "No," the program jaunts backward the way a MUST would. Implicit Array Subscripts In traditional programming languages, for every array you declare, you must also declare three other variables: Ar- rayMax, the maximum size the array can be; Array HighWater, the number of array slots currently containing data; and Arraylndex, the array ele- ment you are currently working on. Then you refer to Array[Array Index] over and over again. You rarely use any other subscript. When you do, it's usually by mistake, and you spend a long time trying to find the bug in your program. In addition, you must manually maintain Array HighWater and make sure that Arraylndex stays safely within bounds. And you must explicitly mention Arraylndex and Array HighWater every time you loop through the array elements— yet an- other place for bugs to creep in. Abundance dispenses with all but the array index. It invisibly maintains ArrayHighWater and ensures that the index remains within bounds. You don't need to write [Arraylndex] each time; it is assumed. And you don't need to mention anything other than the array index in a «' #' «? ^ LOWEST PRICES I ■ ■ ■ ' ■ 10 MHz 286 TURBO The Code of the West The Good Western 286 Turbo™ Western Computer Corp. has built a strong reputation in the Micro- computer Industry by sticking to a few basic principles. We call it the "Code of the West" and it goes something like this: MAKE IT BETTER. with added features like 8-10 MHz switchable, 512K of RAM expand- able to 1MB, Standard RS-232, Parallel Ports and 1 year Warranty on parts and labor. MAKE IT NOW. it doesn't matter how good a deal you make if you have to wait forever to get it! MAKE IT CHEAPER. and pass the savings on to the Buyer. 202 B YTE • OCTOBER 1986 MAKE IT COMPATIBLE. we can't think of anything worse than getting a good deal on a new system, but not being able to run your favorite Software! By the way, we use Phoenix Bios for total compatibility. MAKE IT IN AMERICA. Please! The Bad $52959° What could a Personal Computer with fewer standard features, actual- ly do for you that would compel you to part with an additional $3,300.00. Will it pick-up the kids from school, wash the car or walk the dog? Think about it! & The Ugly Regardless of what you pay for it, a Foreign Import can be one big gamble, with no guarantees of com- patibility, service, or support. Western Computer Corp. has a full line of personal computers and peripherals designed around your needs and your budget including: WESTERN COMPUTER XT TURBO™ WESTERN CARRY-ON™ and . . . . . .Coming soon-WESTERN 80386? 1 Call one of our salespersons at (714)553-1611 to find out how to hang-on to more of your money! vVesfern Computer 17781 Mitchell St., Irvine, CA 92714 USA Phone (714) 553-1611 Customer Service Only (714) 533-1705 Telex: 7566731 Answer Back WESTERN COMP FAX (714) 553-0236 Western Computer Australasia Limited 4-82 Abbot Street, Ascot Brisba Queensland, Australia 4007 # (07) 268-6589 - Telex: AA144746 FAX: # (07) 2685256 - Answer Back MCGUIR Western Computer Spain Diputacion, 238-6° Despacho 8 08007 Barcelona Spain Tele: 317 7128 Western Computer Greece - Busisof t Ltd. 102 Syngrou Ave., Athens 11741, Greece Tele: 902 4248 - TLX: 210364 Inquiry 322 for End-Users. Inquiry 323 for DEALERS ONLY. PUBLIC DOMAIN POWERHOUSES Z80MU by Robert A. Baumann This program for the IBM PC emulates the Zilog Z80 and CP/M 2.2 Z80MU ("the Emulator") runs on the IBM PC and emulates the Zilog Z80 processor and CP/M 2.2. It can be used as a Z80 development system whether or not the final Z80 code is designed to run under CP/M. The Emulator requires PC-DOS 2.0 or higher. While memory requirements vary depending on which Emulator facilities you use, if a CHKDSK of your system shows at least 2 56K bytes of free memory you have room to run the Emulator. Computerwise Consult- ing Services developed the Emulator and decided to release it to the public domain for three reasons: it's good advertising for the work we do, we've benefited from public domain soft- ware in the past and this is one way to return the favor, and we get the benefit of hundreds of testers. | Editor's note: The executable code for the Z80MU runs on an IBM PC. The archive file Z80MU3 10. ARC contains six. files, including the emulator and a user's guide. See the in- sert card following page 320 for details. The programs are also available on BYTEnet: see page 4.| The heart of the Emulator is a care- fully coded "Z80 engine" (written en- tirely in 8088 assembly language) that emulates Z80 op codes, the CP/M BIOS and BDOS functions, and a VT52 terminal for full-screen CP/M applica- tions (e.g., WordStar, dBASE II, etc.). Around the Z80 engine is a whole lot of high-level code (written in Lattice C) that provides the user interface, debug commands, PC-DOS interface commands, a full Z80 disas- sembler and RESOURCE facility, and environment control. HOW ACCURATE AN EMULATION IS IT? The Emulator's Z80 engine emulates the Z80 almost perfectly, down to an emulation of all six flag bits in the flags register. Even the seldom-used half-carry and add/subtract flag bits are emulated. But for faster execution, the Emulator ignores the two unused bits in the flags register, so these will not act exactly as they would on a real Z80. I/O instructions (the INs and OUTs) perform everything except the actual strobe of the I/O data lines. The data transfer has been disabled because it is dangerous to have Z80 code ac- cessing I/O addresses that mean something entirely different on the IBM PC. But setup, auto-increment of registers, and flag effects have been emulated even for the INs and OUTs. We took a less precise approach when emulating CP/M 2.2. We wanted to keep the interface close to CP/M's but weren't interested in emulating the limitations of CP/M. We wanted to include many of the benefits of PC- DOS and to add many more built-in commands than were available with CP/M. We also demanded the largest possible Itansient Program Area (TPA— the amount of memory avail- able to be used by a Z80 program). So we decided to support only "well-behaved" CP/M applications. A well-behaved CP/M program is one that accesses the disk via CP/M's file BDOS functions and doesn't look too closely at the reserved fields of the file control block (FCB). It doesn't use the Z80 IN or OUT instructions. It per- forms device I/O (to the screen, the printer, etc.) via BIOS or BDOS calls. The program interface (via the BIOS and BDOS) is exactly the same as CP/M's. Some BIOS and BDOS func- (continued) Robert A. Baumann, the owner of Computer- wise Consulting, writes custom software for the IBM PC, mostly in assembly language and C. He can be contacted at P.O. Box 81 3. UcUan. VA 22101. OCTOBER 1986 • BYT E 203 Z80MU tions that are hardware-specific— or expect disks to have the CP/M for- mat—are not supported. The handling of commands and command arguments (the command "tail") appears to the Z80 application exactly as it would on a real CP/M sys- tem. The default FCB at 005C is for- matted with the filename implied by the first command-line argument, and the FCB at 006C with the second argument. (All addresses are hexadec- imal unless otherwise noted.) The byte at 0080 is set to the number of characters in the command tail and is followed by an uppercase version of the command tail as typed by the user. The Emulator has a TPA of 65.022 bytes, more than is available on most "real" CP/M systems. We built a pseudo VT52 terminal into the Emulator, since many CP/M applications (especially those doing full-screen editing) assume that they are being run from a serial ASCII ter- minal. A list of some of the CP/M ap- plications that we have successfully run is shown in table 1. What Won t Run Under the Emulator? Some hardware-specific CP/M pro- grams cannot be run under the Emulator or must be run carefully to avoid functions that examine the hardware environment. STAT.COM, for instance, interrogates the physical lay- out of the disk and interprets it as if it were formatted for CP/M. Since PC- DOS disks aren't in CP/M format, STAT is immediately aborted by the Z80 engine. WordStar's SpellStar won't work, either. It tries to call CP/M's con- sole command processor (CCP) with- in the 64K-byte CP/M segment. In the Emulator, however, there is no CCP in the CP/M segment. Some CP/M programs look too closely at the "reserved" fields of the FCB and thus ought not to be emulat- able at all. We have added special code to the Z80 engine that tries to keep the FCB looking as though it was being manipulated by CP/M, not PC- DOS. Moving CP/M Programs to the IBM PC There are two ways to transfer a CP/M program to a PC-DOS file format. The first is to use a PC-DOS utility that runs on the IBM PC and is capable of reading the foreign CP/M disk format. 1\vo such utilities are Convert (from Selfware Inc. Fairfax, Virginia) and Xenocopy (from Vertex Systems Inc., Table 1: Some CP/M applications that have run successfully under the Emulator. Standard Digital Research Programs: ASM LOAD ED DDT DUMP PIP Compilers, Assemblers: M80 L80 LIB MBASIC LASM MAC Telecon C Software Toolworks C Others: WordStar 3.0 and 3.3 and MailMerge (but not SpellStar!) dBASE II PMATE-80 rev. 3.02 Chang Labs MemoPlan LU version 3.00 Los Angeles, California). This ap- proach is nice, but only certain disk formats are recognized by each of these utilities. Apple II CP/M and North Star Horizon CP/M disks, for ex- ample, cannot be read on the IBM PC without special hardware. Another approach is to transfer the CP/M files to the IBM PC via a com- munications line. If you have a CP/M system and an IBM PC, you can direct- ly connect the two machines' serial ports and transfer files at 9600 baud. Otherwise, you can make the transfer over the phone at whatever speeds the respective modems can handle. In either case, the CP/M system (running BYE and XMODEM/MODEM7) sends its files to the IBM PC. which may be running any of the public domain communications programs that sup- port the XMODEM protocol. The ma- jor advantage of this approach is that you don't need to know the disk for- mat. If the CP/M system can read its own disks, the files can be transferred to the IBM PC. This works well when transferring Apple II CP/M and North Star Horizon CP/M files. CP/M and PC-DOS files are similar enough that we have never had to alter a file that was transferred using the second approach (XMODEM), but Convert and Xenocopy don't always create a PC-DOS file of the same size as the CP/M original. The biggest problem is remember- ing which files are PC-DOS files and which are CP/M files. If you transfer a CP/M file called DUMP.COM, for ex- ample, from a CP/M system to the IBM PC's disk and accidentally invoke DUMP.COM from PC-DOS, the IBM PC's 8088 will attempt to execute the Z80 op codes and it will be time to reach for that Big Red Switch on the side of your PC. You must run such CP/M command (.COM) files under the Emulator. One way to keep things straight is to store CP/M files under separate PC- DOS directories. The Z80PATH en- vironment string makes this parti- cularly convenient. The Emulator Environment The Z80PATH environment string is equivalent to the PC-DOS PATH com- (continued) 204 BYTE- OCTOBER 1986 Princeton Graphic Systems wins World Class competition three years running. Sharp resolution, full compatibility, and rug- ged reliability. That's what you get in every Princeton Graphic Systems monitor. That's why Princeton Graphic Systems is number one in the minds of more and more personal computer owners every year. Only Princeton Graphic Systems offers a complete family of quality personal computer displays. Our color and monochrome monitors outperform the competition every time. That's why, for the third year in a row, our HX-12 high resolution color monitor has been voted best in the world.* So f orthe very best in personal computer monitors, pick the company that's number one. Princeton Graphic Systems. *PC WORLD Magazine's 1986 World Class Survey. PRINCETON' GRAPHIC AN INTELLIGENT E SYSTEMS VSTEMS COMPANY 601 Ewing Street, Bldg. A, Princeton, NJ 08540, (609) 683-1660, Telex: 821402 PGSPRIN, (800)221-1490, ext. 1704 Inquiry 240 OCTOBER 1 986 • BYTE 205 Z80MU mand. It allows you to tell the Emulator where to look for Z80 .COM files. You give it a string that is a list of fully qualified names of directories that are to be searched when the Emulator is looking for a .COM file to load and run. If there is no Z80PATH string defined in the PC-DOS environ- ment, the search stops with the cur- rent disk drive's current PC-DOS direc- tory. If no matching filename is found, the Emulator indicates that it doesn't know what you mean with the same terse error indication that CP/M would. HOW DO I USE IT? For the most part, all you do while using the Emulator as a standard CP/M system is invoke various CP/M programs. The Emulator prompts you for input the same way that CP/M does— by displaying the currently logged drive with the string Z80 in front of the drive name, to remind you that you are using the Z80 and CP/M Emulator and not PC-DOS. The Emulator includes CP/M's usual built-in commands, although the out- put display may vary because this really is a PC-DOS file system. An ef- fort has been made to accept both CP/M and PC-DOS versions of the same command: Z80 A>dir Z80 A>stat \* Z80 A >type foo.txt Z80 A>era b:*.* Z80 A > delete *.foo You can also add a few PC-DOS op- tions, since these commands are ac- tually passed to PC-DOS for handling: Z80 A>dir /w Z80 A>dir >foo Z80 A>dir b:\cpnn\*.* Z80 A > rename *,c *.bak Z80 A>copy foo.doc Iptl: If a command starts with an exclama- tion point, the rest of the command line is passed to PC-DOS for handling. This is for PC-DOS commands that have no CP/M equivalent. You can use it to change working directories, in- voke your favorite PC editor, or even "drop into" PC-DOS for a while. You do this by invoking COMMAND.COM and returning to the Emulator via the EXIT PC-DOS command. Z80 A>!mkdir too Z80 A>!cd too Z80 A>!cd \cpm\test Z80 A>!chkdsk Z80 A>!ws Z80 A>!format b:/s Z80 A>!command A > (you're in DOS now) A>WS (invoke WordStar) A > EXIT Z80 A> (back in the Emulator now) Advanced Features There's far more to the Emulator than the simple CP/M environment. A host of special built-in commands gives the Emulator power beyond CP/M's. Some of the miscellaneous Emulator commands are shown in table 2. Some of these built-in commands control the Emulator environment. To tell the Emulator that you want illegal Z80 op codes to cause a visible fault Table 2: A sampling of the commands available under the Emulator. Long Short Meaning delete del Delete file(s) erase era Delete file(s) stat dir Display file(s) in directory type ty Type contents of file to screen copy CO Copy file(s) rename ren Rename file(s) help ? Get on-line help Wop i Control Z80 illegal op codes exit e Exit the Emulator to PC-DOS howfast? speed 9 Calculate effective Z80 speed coldboot! cold! Cold-boot the 64K-byte CP/M segment submit sub Switch input to file with a proper error message, for ex- ample, you use the illop built-in command: Z80 A> illop fault To tell the Emulator to not fault on il- legal Z80 op codes but to treat them as NOPs, you say: Z80 A > illop nop The Emulator's debug facility is built into the Emulator, which means that debug commands are always avail- able when using the Emulator. Tkble 3 shows some of the debug com- mands. Disassembly and RESOURCE Commands RESOURCE is short for "regenerating source code." Ward Christensen wrote the original RESOURCE many years ago for CP/M. The basic idea is to automate the disassembly of object code into source code, complete with labels and comments. If you simply disassemble a piece of Z80 object code, you get a primi- tive type of source code. There are in- struction mnemonics, so you can at least tell what instructions are in- volved. But addresses are just hexa- decimal numbers. You can explain to the Emulator's disassembler as much as you know about some object code. It will use this information in subsequent dis- assemblies, resulting in much more understandable displays. The first thing that you usually want to see are symbolic labels instead of hexadeci- mal addresses. The label directive (abbreviated as =) enables you to assign symbolic names to Z80 ad- dresses: Z80 A > label 5c first fcb Z80 A > label 6c second_fcb Z80 A>= 5 BDOS Now an instruction sequence like 0253 LD DE,005Ch 0256 CALL 0005H will disassemble as 0253 LD DE,first fcb 0256 CALL BDOS The next most useful thing to do is (continued) 206 BYTE* OCTOBER 1986 SMAffE PAINTERS AND BUFFER PRINT JOBS WITH ONE VERSATILE UNTT Print Master from BayTech is an intelligent printer controller that connects between your computers and printers. It allows you to share one printer automatically, contend for multiple printers automatically, or switch between several printers by sending a simple code, not by changing cables. Plus, Print Master's generous built-in buffer spools data until your printers can receive it. Because Print Master is a very flexible device, you can set it up to fit your application, even if your application changes. YOU SET UP THE IN-OUT PORTS You configure Print Master's ports for any combination of printers and computers by answering questions from easy-to- follow menus. For example, with the ten port Print Master, nine computers can share one printer, eight computers can share two printers, seven computers can share three printers, and so on, to one computer which can share nine printers. You can also menu-select the disconnect time-out, form feeds, etc. and on serial models, the configuration of individual ports to translate for printers and computers using different configurations. 512K OR ONE MEGABYTE BUFFER KEEPS YOU WORKING INSTEAD OF WAITING Since Print Master can accept data faster than your printer (up to 19.2KB serial or 5,000 characters per second parallel), you can send a print job to Print Master's standard 512K buffer and then go on to another project. All users connected to Print Master can send data to this common pool buffer, and they can be doing it simultaneously, even if no printer is available. Data is stored in the buffer until it can be sent on a first-job-in first-job- out basis to the selected printer. If you need more memory than 512K, Print Master is optionally available with one megabyte buffer. If several users are sharing one printer, printer sharing via Print Master is completely automatic. There are no codes to send. You simply perform your normal print operation. If you are sharing several identical printers, connection is also Typical application using the Model 710C automatic. Again, you perform your normal print operation and are connected to the next available printer on a first-come- first-serve basis. Print Master will send data to all printers simultaneously to keep your printers running at full capacity. If you are sharing several different printers, such as a laser-jet, a dot matrix and a plotter, and you wish to select a specific printer, you do your normal print routine and also send a printer select code (which you can define yourself) before the first characters of your data. The data is then routed to the selected printer. It's that easy. PARALLEL, RS-232C OR RS-422A MODELS 706 A (6 parallel ports), $795 706C (6 serial ports), $795 708C (8 serial ports), $895 7 IOC (10 serial ports), $995 706D (4 parallel/2 serial), $795 708D (6 parallel/2 serial), $895 706E (4 serial/2 parallel), $795 708E (6 serial/2 parallel), $895 710E (8 serial/2 parallel), $995 708F (4 serial/4 parallel), $895 710F (6 serial/4 parallel), $995 All above models have standard 5 12K buffers. Additional 500K buffer, $249 RS422A for distances up to 4,000 feet now available on some models. WANT DETAILS? Call or write BayTech at P.O. Box 387, Highway 603, Bay Saint Louis, Mississippi 39520, USA. Telex 910-333-1618. Phone 601-467-8231 or 800-523-2702 Bay Technical Associates, inc. DATA COMMUNICATIONS PRODUCTS Inquiry 37 Z80MU assign comments to certain ad- dresses. This is done with the built-in command comment (abbreviated ";"): Z80 A >comment 253 "Point to FCB" Z80 A>; 256 "open the file" Our example sequence (when disas- sembled) then looks like: 0253 LD DE.first fcb ; Point to FCB 0256 CALL BDOS ;open the file One common problem in obtaining a sensible disassembly of object code is that of embedded data being mis- interpreted as instructions. You can use the control command (ab- breviated c) to control whether the disassembler interprets object code as data or instructions. Several types of these "control breaks" can be as- sociated with an address: Instructions— Z80 instruction mnemonics are used. Bytes— DBs are used. Words— DWs are used (multiple DWs per line). Table— DWs are used (one per line). Storage— DS is used. For example: Z80 A>control 253 instructions Z80 A>c first fcb bytes Z80 A >c bios_table table Z80 A>c 80 storage Finally there is the disassembly command itself— list (abbreviated I). You use this to list whatever object ad- dresses you like. As the code is listed, it is disassembled according to what- ever you've explained about the code. Expressions Many of the built-in commands ac- cept arguments. In general these arguments can be numbers (in hexa- decimal, decimal or binary). ASCII characters, or symbolic labels that have been assigned via the label com- mand. Additionally, they can be ex- pressions made up of two or more such values joined by 'V or ,l -" operators. This can make things con- siderably easier for the poor befud- dled user when it's three a.m. and he's hot on the trail of a bug. Instead of having to disassemble a piece of code with something cryptic like Z80 A > dump 5c 6b Z80 A > list 700 740 he can type Z80 A>dump first fcb f i rst fcb + fcb size Z80 A > list table_start+'A table_offset+'A Emulator Internals When you type in the name of a CP/M program, the Emulator searches for the corresponding .COM file accord- ing to the Z80PATH PC-DOS environ- ment string. When the program is located, it is read into the 64K-byte CP/M memory segment starting at ad- dress 0100. The default FCBs at 00 5C and 006C are formatted from the Table 3: Debug commands built into the Emulator. Long Short Meaning save sa Save memory (starting at 0100 hexadecimal) to disk btrace bt BDOS trace control or display break b Set, clear, or display breakpoints dump d Dump memory in hexadecimal and ASCII find f Locate pattern in memory go g Continue execution of Z80 patch P Patch memory xreg X Display/modify Z80 registers trace t Trace Z80 instructions notrace n Invisibly trace Z80 instructions pctrace? pc? Display traceback of Z80 PC values move m Move memory math ma Evaluate expression args ar Set default FCBs at 005C and 006C hexadecimal read r Read file into memory write w Write memory to file command arguments, as is the com- mand tail at 0080. The Z80 stack is set just below our BDOS hook at address FEFE, and a word of zeros is pushed onto the stack so that if the CP/M pro- gram exits by a return, it will go to ad- dress 0000, which is a jump to the Warm Start entry in the BIOS table. Once Z80 code is loaded into the 64K-byte CP/M memory, the guts of the Emulator— the Z80 engine— takes over. It fetches op codes from the CP/M memory and "executes" them by emulating what the Z80 would do with them. Z80 and 8088 Register EQUIVALENTS For speed, the Z80 engine keeps in 8088 registers emulated copies of the most-used Z80 registers, as follows: Z80 Registers A register Flags B register C register D register E register H register L register Stack pointer PC 8088 Registers AL AH CH CL DH DL BH BL BP SI The DI and ES registers are available for temporary use by the Z80 engine. All emulation of Z80 op codes is per- formed either by manipulating emu- lated Z80 registers that reside in 8088 registers or by using DI and ES to ac- cess and manipulate RAM. Seldom- used Z80 registers are kept in RAM within the Z80 engine. Because these are in RAM and not in 8088 registers, it takes longer to access them. For- tunately, these particular Z80 registers are not used very often. They are • the alternate registers AF, BC DE' and HC • index registers IX and IY • the interrupt flip-flops IFFl and IFF2 • the interrupt mode flip-flop IMF • the interrupt register • the refresh register While the Z80 engine is in control, the 8088 DS register points to the 64K-byte CP/M memory segment. The 8088 stack registers SS and SP are not [continued) 208 BYTE • OCTOBER 1986 Casio challenges you to find more power. At any price. The amazing Casio FX-4000P pro grammable scientific calculator. In power, it's compa- rable to the most highly touted calcu- lators on the market today. It offers you 160 total functions, including 83 scien- tific functions, such as hexadecimal/ decimal/binary/octal conversions, standard deviation and regression analysis. Making it easier to deal with long computations, its 12 character CASIO HP Tl FX-4000P 15C 60 Functions 160 115 124 Display 12 Scrolls to79 7 + 2 10 + 2 Memory 550 Step 448 Step 84 Step Formufa Replay Yes No No Computer Math Yes No Some alpha-numeric display scrolls to 79 characters and its instant formula replay feature lets you review, edit and replay your formula at the touch of a button. It even has an answer key that stores your last computed value. And to make things still easier, the FX-4000P has a "perfect entry" system, which allows you to enter and display a formula exactly as written. Plus, it has a non-volatile 550 step program memory with 10 program divisions. This allows 10 different pro- grams to be stored at once. And it includes up to 94 data memories, which are invaluable for statistical analysis. Finding all this power at your fingertips is remarkable enough, let alone at half the price of some com- petitors. If you can put your finger on a scientific calculator that gives you more power at any price, by all means buy it. Where miracles never cease Casio, Inc. Consumer Products Division: 15 Gardner Road, Fairfield, NJ 07006 New Jersey (201) 882-1493, Los Angeles (213) 803-3411 Inquiry 57 OCTOBER 1986 'BYTE 209 Z80MU It is not enough to use the 8088's LAHF and SAHF instructions to emulate the Z80 flags. altered and are used to maintain linkage with the calling C program. Z80 Op Code Fetch and Emulation The Z80 engine works as follows: 1. Fetches a Z80 op code from the 64K-byte CP/M memory segment. 2. Jumps to the code to emulate this op code. 3. Updates the emulated Z80 flags per this op code. 4. Goes back to step I . The 8088 SI register emulates the Z80 program counter. To execute the next Z80 instruction, the byte that the SI register points to is read from memory. It is then used to index into a table of 2 56 possible op codes, and the routine to handle this particular op code is jumped to (not called, as that is just too slow). Each of the 2 56 primary Z80 op codes has a 16-byte 8088 routine that emulates it. Fixing the size of each handler at 16 bytes eliminates the need to use a real table to look up the address of the op code's emulation routine and speeds things up con- siderably. Some op codes just can't be fully emulated in 16 bytes. The 16-byte handlers for these few excep- tions are simply jumps to larger rou- tines elsewhere within the Z80 engine. Most Z80 op codes, however, can be handled in 16 bytes— assuming some very careful coding of the routines. The main dispatch code is shown in figure I. Notice that the label INTERP_TRAP is normally a NOP. If you press Break on the IBM keyboard, the Break interrupt handler (part of the Z80 engine) changes the NOP to a single-byte 8088 breakpoint inter- rupt (INT 3). When execution gets back to INTERP_TRAR the break- point interrupt in turn causes Z80 emulation to halt, with a return from the Z80 engine to the main C part of the Emulator. This is how to interrupt the Z80 between Z80 instructions. The 16-byte handler that is jumped to via the above dispatch code does whatever is necessary to emulate its Z80 op code. This includes adjusting the Z80 program counter (held in the 8088 SI register). The Z80 NOP op code handler, for example, increments the Z80 PC by 1 . A Z80 CALL op code causes the Z80 PC to be set to the value of the called address. When emulating an op code, the Z80 flags must be emulated identical- ly to the way a real, hardware Z80 would. It is not enough to use the 8088 LAHF and SAHF instructions. Once the 16-byte interrupt handler has finished executing its assigned op code, it jumps back to one of eight dif- ferent flag-updating routines, each of which updates the Z80 flags in what- INTERP_TRAP: NOP INTERP2: . MOV DI,AX SAVE Z80 AF MOV AL,[SI] FETCH Z80 OP CODE FROM MEMORY XOR AH.AH CLEAR REST OF AX SHL AX.1 TIMES 16 BYTES PER HANDLER SHL AX.1 SHL AX.1 SHL AX.1 ADD AX.OFFSET CGROUP:0 POO ;ADD FIRST HANDLER'S ADDRESS XCHG AX.DI RECOVER Z80 FLAGS AND A REGISTER TO AX JMP Dl GOTO 16-BYTE OP CODE HANDLER Figure I : The main dispatch code for the Emulator's Z80 engine. ever manner the true Z80 op code would have done. Each of the eight flag-updating routines ends with a jump back to INTERP_TRAR thus completing the Z80 emulation loop. CP/M BIOS AND BDOS HOOKS If a Z80 HALT op code occurs in the CP/M memory segment below ad- dress FEFE, the Z80 engine saves all emulated Z80 register values and returns to the main C program. Such a HALT can be used as a debug breakpoint, or it may be a bug in the program. If the HALT occurs at an ad- dress above FEFD. some CP/M func- tion is being requested by the ex- ecuting Z80 program. To understand why and how, it is necessary to back- track a moment. When the Z80 engine first formats the 64K-byte CP/M segment, it zeros most of that memory. The first page, however, is formatted the same way that CP/M would format it. At location 0000 there is a jump to the CP/M BIOS Warm Start entry, which is itself just a jump within the BIOS vector table. This is the same BIOS organi- zation that CP/M uses. Unlike CP/M, however, each BIOS vector table en- try in Z80MU's CP/M memory does nothing but jump to a specific HALT higher up in memory. The address of the HALT tells the Z80 engine that the BIOS vector table entry was called. At location 0005 is placed a jump to the BDOS function handler, which is just a HALT at address FEFE. So a HALT at this address means that the Z80 program is requesting a CP/M BDOS function. The Z80 engine looks at the address of the HALT, deter- mines which CP/M function is being called, and emulates that function. Emulating CP/M BIOS and BDOS Functions A common misconception is that since PC-DOS was derived from CP/M, all you have to do to convert CP/M functions to PC-DOS functions is move the Z80 C register to the 8088 AH register, move a few other regis- ters around, and call PC-DOS via INT 21H. In reality it's not that simple. First, let's review the various CP/M functions a Z80 program can call. [continued) 210 B YTE • OCTOBER 1986 TRANSEC NEW PRODUCTS Program Review: Makes dBASE Easier to Program, Reduces Logic Errors, Bugs TranSec d ANALYST™ automatically converts any dBASE III program to dBASE III PLUS with true record and file locking for multi-user operation. Features include syntax/blocking analysis, tabbed file output, variable cross reference. Framework-type inter- face command windows, pop-up menus, graphic analysis REPORTS menu. Saves programmer's time to analyze and debug dBASEII, III, orPLUS. Supports multi-user Clipper and network ver- sion of WordTech. Not copy protected. Rated a "best buy/' TranSec dANALYST" $74.95 plus $5 s/h TO ORDER: 1-800-423-0772 VISA/MC IN FL: 1-305-474-7548 Program Review: Simplify Naming, Finding Your Files with 32-Character File Names TranSec PCEasy™ is a new easyto-use "of f ice environment" file management system that allows anyone to easily organize large amounts of data on a hard disk. Expands DOS file name limit to 32 characters to name files naturally, the way you think. Use easily re- memberedplainwordsornumbers. The interface structure mimics the paper world, only it's faster, better and easier to use ... by programmers, managers, secretaries, clerks. PCEasy immediate- ly finds file cabinets, file drawers, file folders, spread sheets, reports in their own logical location. Automatic menu access to application programs. Works with all popular applications and utili- ties. Not copy protected. Rated"**** for ease of use." TranSec PCEasy™ $74.95 plus $5 s/h TO ORDER: 1-800-423-0772 VISA/MC IN FL: 1-305-474-7548 UNLOCK Removes Copy Protection RUNS YOUR SOFTWARE ON ANY HARD DISK UN lock "copying" disk allows you to make "unprotected" DOS copies of popular original program disks. Unpro- tected backup copies perform per- fectly, as do copies of these copies. UNIock copies run on any hard disk, including Bernoulli Boxes. No original required in drive "A." Run on a RAM disk simply and conveniently. Also, copy DOS 5 1 /i" programs to ZVz r diskettes. For IBM® PC, XT, AT, com- patibles, 256K or more, DOS 2.1 or higher. Choice of the critics! Guaranteed to work only with programs below: UNLOCK ALBUM "A" PLUS $49.95 (Plus $4 ship/handling. Foreign orders $10) • d BASE III & d BASE III PLUS™ • LOTUS 1-2-3™ (1.A-2.0) • FRAMEWORK I & II™ • IBM WRITING ASSISTANT™ (1.01) • CHARTMASTER™ (6.1) • IBM FILING ASSISTANT™ (to) • SIGNMASTER™(5.1) • IBM REPORTING ASSISTANT™ (i.o) • FASTBACK™(5.3) • GRAPH WRITER™ (4.3, 4.3i) • HARVARD TOTAL PROJECT MGR .™ (1.10) • RE ALIA COBOL™ (1.2, 2.0) • THINKTANK™(2.o,2.i) • MULTILINK ADVANCED™ (3.02, 3.03) • DOLLARS & SENSE™ (2.0) UNLOCK" ALBUM "B" PLUS $49.95 (Plus $4 ship/handling. Foreign orders $10) • SYMPHONY™ (1.1) • CLIPPER™ • LOTUS 1-2-3 REPORT WRITER™ (i.o) • DOUBLEDOS™ • SmARTWORK™ (1.0 Rev. 8 thru 10 & 1.1) • DISK OPTIMIZER™ • MANAGING YOUR MONEY™ (1.5,1.51,2.0) • MICROSOFT WORD™ (1.15,2.0,2.01) • PFS:ACCESS™0934Ed.) • PFS: PLAN™ (B) • PFS: GRAPH™ (B) • PFS: WRITE™ (1.01, C) • PFS: REPORT™ (B,C) • PFS: FILE™(B,C) • DATABASE MANAGER II— THE INTEGRATOR™ (2.0, 2.02) SPECIAL OFFER "Best of UNLOCK" ALBUM D' PLUS (Plus $4 ship/handling. Foreign orders $10) $74.95 • dBASE III & dBASE III PLUS™ • FRAMEWORK I & II™ • CLIPPER™ • FASTBACK™ (5.3) • CHARTMASTER™ (6.1) • SIGNMASTER™(5.1) • DOLLARS & SENSE™ (2.0) • LOTUS 1-2-3™ (1.A-2.0) • SYMPHONY™ (1.1) • LOTUS 1-2-3 REPORT WRITER™ 'f ■h GENERAL Technologies, Inc. Bloomf ield, New Jersey 07003 Twx: 710-994-4780- Fax: 201-429-8683 FOR WARRANTY SERVICE DIRECTORY CALL 1-800-262-6772 FOR SOFTWARE/HARDWARE SUPPORT CALL 1-201-429-0053 Inquiry II 7 DEALER INQUIRIES INVITED Z80MU The way PC-DOS uses and updates an FCB varies from the way CP/M does it on revealed that they all did the same thing. They returned results in two places (the Z80 A register and the HL pair), and the Z80 program could check whichever it pleased. So we changed Z80MU's Z80 engine to return results in both places, and now LU works just fine under the Emulator. Differing Use of the FCB The biggest trap lies in emulating CP/M's use of the FCB. The way PC- DOS uses and updates an FCB varies considerably from the way that CP/M does it. This is further confused by the fict that various versions of PC-DOS handle the FCB differently. Never minding that CP/M keeps al- location groups in "reserved" fields of the FCB and that there's no reason in the world to emulate that behavior, there are still important differences in the use of those FCB fields that the Z80 program is "allowed" to access. When CP/M opens a file, for exam- ple, it uses byte 1 2 of the FCB— the ex- tent field. In the early releases of CP/M (before random I/O was officially added to it), programs like WordStar's install program used this byte to do random I/O, by opening various ex- tents within a given file. PC-DOS ig- nores byte 12 (and in some versions zeroes it) when opening the file but uses it thereafter. So the Z80 engine's emulated CP/M "open file" function saves byte 1 2 across the PC-DOS call to open a file and restores it after PC- DOS is done modifying the various fields that it modifies when a file is opened. FCB byte 13 is a reserved field in CP/M, but it is the low-order byte of the current block number in PC-DOS. The Z80 engine zeroes this field before giving the FCB to PC-DOS. FCB byte 1 4 is also a reserved field, and while byte 1 5 (the "record count within this extent" field) is not clearly marked reserved, it ought not to be looked at by well-behaved CP/M pro- grams. But both of these bytes are looked at (against all CP/M rules of proper software development) by some CP/M code written by Microsoft. We received calls from users of the Emulator who were having trouble running some CP/M software that had been written in a certain Microsoft compiled language. We debugged the code and found that the Microsoft subroutine library was looking at FCB bytes 14 and 15 instead of checking the CP/M return value in the Z80 A register. Rather than patch Microsoft's code to work properly, we changed the Z80 engine to keep FCB bytes 14 and 1 5 current according to the way CP/M would update them. This can be tricky, as PC-DOS uses FCB bytes 14 and I 5 as the logical record size. PC-DOS version 2.0 introduced ex- tended FCBs. If the byte at FCB-7 is 00FF hexadecimal, PC-DOS assumes that this is an extended FCB and uses FCB-1 as an attribute byte. CP/M FCBs, of course, don't use this questionable convention. So when a Z80 program calls CP/M to do some operation on a file, the Z80 engine makes sure that the CP/M FCB doesn't sit 7 bytes after a byte that just happens to be 00FF hexadecimal. CP/M FCBs are 36 bytes long; PC- DOS's basic FCB is 37 bytes long. Unless something is done by the Z80 engine to address this situation, PC- DOS will blindly use whatever byte happens to follow the 36-byte CP/M FCB as part of the random record number. For these and other reasons, the Z80 engine copies each CP/M FCB up to a safe spot in high memory and touches it up before calling PC-DOS to do something with it. When PC- DOS is done, the modified FCB is edited to look once again like a CP/M FCB and is copied back where it originally came from so the Z80 pro- gram can examine it as if it were a plain old CP/M FCB. Different File I/O Error Return Values Some CP/M programs don't really ex- amine status returns from CP/M file operations except to check for zero or nonzero. Others actually do check for specific CP/M error returns as follows: 01 = reading unwritten data 03 = cannot close current extent 04 = seek to unwritten extent 05 = cannot create new extent 06 = seek past physical end of disk PC-DOS file operations return com- pletely different error values. So the Z80 engine translates an error re- turned by PC-DOS into the corre- sponding CP/M error value before passing it back to the Z80 program. Handling EOF Many CP/M programs check for Control-Z (end of file) on sequential input files. PC-DOS, of course, doesn't need a Control-Z at the end of a se- quential file. It knows the exact size of the file, regardless of file contents. So if a CP/M program (which ex- pects Control-Z for end of file) reads a PC-DOS sequential file that doesn't have a Control-Z, the results can be rather odd. Some CP/M programs will report an I/O error. Others blindly assume that end of file was reached when any read error occurs. For this reason, the Z80 engine keeps a sharp eye out for the PC-DOS "end of file" or "partial record" error returns. If either is found, the Z80 engine returns to the Z80 program a buffer that is filled out with Control-Z characters. So things work out just fine, regardless of the presence or absence of Control-Z characters in the input file. CP/M BDOS Functions That Differ in PC-DOS The CP/M "search for next" BDOS function does not require an input argument. The search continues per data saved from the last search that was done (usually a "search for first" that provided an FCB). The PC-DOS "search for next" function, however, does require an FCB as input. So when the Z80 engine emulates a CP/M "search for next" BDOS function, it passes to PC-DOS the updated FCB that was used for the previous search. The FCB is kept in a special area re- served just for this purpose. [continued) 214 BYTE • OCTOBER 1986 Softstrip COMPUTER READABLE PRINT* NOW! TRANSFER DATA - PROGRAM TO PROGRAM WITH ® Now you can move data between different programs quickly and easily using SOFTSTRIP data strips. MOVE LOTUS 1-2-3- To and From Excel To ReadySetGo To and From Apple Writer To PageMaker And, using Softstrip data strips you can move data between programs such as WordStar, d BASE, Framework, MacWrite, ReadySetGo and many others. We've created a series of several dozen Application Notes on Softstrip data strips. These lead you through simple steps to make the file transfer as easy as possible. OCTOBER CASE HISTORY A physical rehabilitation and pain management clinic in Hot Springs, Ark., has begun a trial program using the SOFTSTRIP System to reduce the huge volumes of medical paperwork in physician's offices, clinics and hospitals. Dr. Henrik Madsen, medical director and administrator of the HotSpringsclinic, is deeply involved in the management aspects of health care as well as medicine itself. One of the biggest problems facing the proper administration of medical offices, clinics and hospitals is paper. Voluminous patient records accumulate rapidly, soon cramming all available shelf space. All of those records are hand or typewritten papers. Using the Softstrip System, Dr. Madsen's clinic is recording patient records on data strips. Those strips are filed in place of the written medical records, significantly reducing the amount of shelf space needed, as well as handling times. In addition, recall of medical records to the clinic's IBM PC computer can be done quickly using data strips. As Dr. Madsen observed: "Cost reduction is a vital national concern. If it can be accomplished in the administrative area, that many more dollars will flow to direct patient care. Everyone is looking for effective means to reduced administrative costs. This is one with promise." For a complete list of Application Notessee yourlocaldealeror call 1-800-533-7323 for the name of the nearest dealer. In Connecticut call (203) 573-0150. Users' Groups: Call for Special User Group deals. All you need is STRIPPER software at $19.95 and the Softstrip System Reader at $199.95. mm? :vj- ;■•'■■•■ ;'':ni km, i m&JMB CAUZIN 835 South Main Street Waterbury, CT 06706 (203)573-0150 For Europe & Asia Contact: Softstrip International, Ltd. 53 Bedford Square London, WC1 B3DP England 01-631-3775 Telex: 263874SOFTST G ReadySetGo is a trademark of Manhattan Graphics Corporation. IBM Is a registered trademark of International Business Machines Corporation. Framework is a trademark and dBASE is a registered trademark of Ashton-Tate. PageMaker is a registered trademark of Aldus Corporation. Cauzin and Softstrip are registered trademarks and STRIPPER is a trademark of Cauzln Systems Inc. WordStar is a registered trademark of MicroPro International Corporation. Lotus and 1-2-3 are registered trademarks of Lotus Development Corporation. MacWrite, Apple Writer and AppleWorks are trademarks and Apple is a registered trademark of Apple Computer. Excel is a product of Microsoft Corporation. Dr. Dobbs Journal of Software Tools is published by M&T Publishing, Inc. under license from People's Computer Company. Macintosh is a registered trademark of Mcintosh Laboratories licensed to Apple Computer Inc. Inquiry 58 This data strip contains IBM2MAC, all the software you need to move your Lotus spread- sheets to Macintosh applications such as PageMaker. This pro- gram runs on an IBM PC and converts a Lotus text file to Macintosh format. Then, just print data strips of the converted file and read the strips into your Macintosh. Z80MU Let Lab Boss turn your IBM PC into a powerful instrument controller. \ 7ou can spend thousands of dollars Y for a dedicated instrument controller. dm Or a few hundred for a controller that's dedicated to you and your IBM PC. Lab Boss™ from National Instru- ments puts you and your IBM PC (or compatible) firmly in charge of GPIB instruments. From sophisticated lab-, oratory equipment, like digitizing oscilloscopes and spectrometers, to standard printers, plotters, tape drives and more. At data transfer speeds that are the highest in the industry. And Lab Boss products offer a direct data link from your measuring equipment to a full range of analysis software, includ- ing RS/1, Lotus 1-2-3, and Symphony. So you can easily report your findings on the same system you used for instrument control, data acqui- sition and analysis. Try that on a dedicated controller! So - you want to be the boss? Call National Instru- ments. 800/531-4742. f £T NATIONAL mil INSTRUMENTS 12109 Technology Blvd. Austin. TX 78727 512/250-9119 The CP/M "buffered keyboard in- put" BDOS function returns when the buffer is full. The corresponding PC- DOS function does not: It waits for Return to be pressed. So the Z80 engine simply can't call PC-DOS func- tion 10. It must itself emulate the en- tire operation of this function, using low-level console I/O routines. Summary In this overview of Z80MU. the Z80 and CP/M 2.2 Emulator, my intent has been to give a feel for the capabilities of the program. More details, includ- ing explanations of all built-in com- mands, reside in the user's guide that is distributed with the Emulator. Response to the Emulator has been favorable. This reinforces our convic- tion that releasing the package to the public domain was the right thing to do. A few clear-cut bugs have been found by users in the field. These have been fixed. In addition, some ex- cellent suggestions have been made as to features to be added. Many other details need to be ad- dressed by anyone who wishes to make such an Emulator. I have mere- ly presented some of the most signifi- cant ones. Discovering the rest, quite frankly, is half the fun. The Future The Emulator is still in active develop- ment. At the moment, we are imple- menting the following changes: 1 . The C part of the Emulator is being rewritten in Microsoft C version 3.00. 2. The user interface is being re- directed to fast screen I/O routines, bypassing PC-DOS entirely. 3. The NEC V20 chip is being sup- ported. This provides faster perfor- mance than with software-only emula- tion but is limited to 8080 op codes only. 4. The much-rumored NEC V2 5 chip (which executes Z80 op codes) will be supported if and when NEC an- nounces it. . 5. From all of the Z80 add-on boards for the PC, we will select one to be supported by the Emulator. This hard- ware/software combination will be the most powerful Z80 environment avail- able. ■ 216 BYTE* OCTOBER 1986 Inquiry 210 GoldStar Keeping pace with perfection —Goldstar floppy disks Goldstar Magnetech has a relentless drive to keep pace with the last thing in computer peripherals. This requires systematic research which is paying off with innovative pro- ducts which measure up to the quality standard of excellence demanded by Goldstar. This you will find in Goldstar's line of floppy disks produced in 5 1 /4" and 3 1 £" types. It's a race to keep pace with perfection. What more could you want than this from a floppy disk producer? Now, Goldstar is keeping pace with the second generation of floppy disks in the 3 1 £" cassette --**^.. style floppy disk. Its features are: •blue, hard plastic shell protects surface during handling ^Sfc^ % •compact, pocket size •1.0 MB maximum capacity •auto shutter opens when inserted ^"^1 •information preservation tab •metal hub ring for 100% error-free, tracking performance •special cleaning liner for eliminating drop-outs All Goldstar disks meet ANSI, DIN, ECMA, ISO and JIS standards, and carry a lifetime warranty. So, if you want a floppy disk that is really keeping up with the latest in peripheral technology, look for the Goldstar name. LINE-UP ^S**ir Item Type Tracks/inch Bits/inch Capacity M-1D 48 5536 250 KB 5 1 /<" M-2D 48 5876 500 KB M-2DD 96 5922 1 MB M-2HD 96 9650 1.6 MB MF-1D 67.5 8128 250 KB MF-2D 67.5 8650 500 KB 3/z ' MF-1DD 135 8190 500 KB MF-2DD 135 8720 1 MB Eg GoldStar Magnetech Co., Ltd. C.RO. Box 305, Seoul, Korea Tel.: 756-9090, Tlx.: GSMTL K29579, Fax.: 756-0526 (Unformatted) Inquiry 177 •Tokyo Tel.: (03) 582-9121/7 Tlx.: 2422711 (LGIJPN J) Fax.: (03) 584-6852 -Los Angeles Tel.: (213) 404-2626/9 Tlx.: 910-583-5719 (LGI LA) Fax.. (213) 926-0849 -London Tel.: 840-7111 Tlx.. 21765 (LGIUK G) -Paris Tel.: 4734-52-06,4734-52-83 Tlx.: 201877 (LGIPAR F) -Frankfurt Tel.: (069)6664083/5 Tlx.. 4185337 (LGIF D) Fax.. (069) 6666865 Mllllllllllllllllllilllllllllllll P 9» i-H-M-J-ll i II t; Use the Brains your IBM WasnT born With. Right at your fingertips in CompuServe's IBM® Forums. In the IBM New Users Foruin you'll swap ideas with other new PC users, learn to use Forum features, and pose even basic questions to PC experts. Our IBM Junior Forum gives PCjr® users a reliable source for tips on software, hardware, telecommunications, games and other interests. In the IBM Software Foruin you'll trade tips with other IBM PC and AT users on utility software, word processing, DOS and other operating systems. Visit the IBM Communications Foruin for advice on the features and compatibil- ity of communications software and hardware, PC Bulletin Boards, micro- mainframe interfaces and more. The IBM Hardware Foruin addresses hardware topics of all types, plus product updates and announcements. Easy access to free software. • Download first-rate, non -commercial, user- supported software and utility programs. • Take advantage of CompuServe's inexpensive weeknight and weekend rates (when Forums are most active, and standard online charges are just IOC a minute). • Go online in most major metropolitan areas with a local phone call. • And receive a $25.00 Introductory Usage Credit with purchase of your CompuServe Subscription Kit. Information you simply can't find anywhere else. Use the Forum Message Board to send and receive electronic messages, and pose specific questions to other IBM and com- patible owners. Join ongoing, real-time discussions in a Forum Conference. Search our unparalleled Forum Data Libraries for free software, user tips, tran- scripts of online conferences and more. Enjoy other useful services like: • Popular Computer Magazines — electronic editions, for your reading pleasure. Including Dr. Dobb's Journal and Computer Language. • Other CompuServe Forums — supporting LOTUS® products like Symphony™ and 1-2-3™ Borland International? Ashton-Tatef Digital Research? MicroPro? Microsoft® and other software. Also Pascal, Basic, C, Forth, Assembly and other programming languages. All you need is your IBM or IBM- compatible computer and a modem ... or almost any other computer. To buy your Subscription Kit, see your nearest computer dealer. Suggested retail price is $39.95. To receive our free bro- chure, or to order direct, call 800-848-8199 (in Ohio, call 614-457-0802). If you're al- ready a CompuServe subscriber, type GO IBMNET (the IBM Users Network) at any ! prompt to see what you've been missing. CompuServe* Information Services. P.O. Box 20212 5000 Arlington Centre Blvd., Columbus, Ohio 43220 800-848-8199 In Ohio, Call 614-457-0802 An H&R Block Company Inquiry 70 PUBLIC DOMAIN POWERHOUSES CP/M HALL OF FAME by Brock N. Meeks A roundup of some of the best public domain CP/M software THERE IS A CORE of time-tested, quality CP/M public domain pro- grams, programs that are candidates, if you will, for the CP/M Hall of Fame. (If sled dogs can have a Hall of Fame, why not PD software?) The programs outlined below are some of the best in the field and appear on practically any CP/M user's "must have" list. ZCPR3.COM ZCPR3 is a powerful program for turbocharging CP/M's console com- mand processor (CCP). Created by Richard Conn, ZCPR3 (Z80 Command Processor Replacement) is an entire operating system. Besides being a replacement for your CCP, ZCPR3 also offers a set of software tools, utility programs that use ZCPR3's special features. ZCPR3 enhances some of the built- in commands of your present CCP. For example, under ZCPR3 TYPE will pause at every screen full of text (22 lines). Additional built-in commands such as LIST come with ZCPR3. LIST enables you to dump a file to the printer. Here are some of the more important functions of ZCPR3: Named directories— AO: and B13: don't tell you anything about what pro- grams are in those user areas. With this system you can give AO: the name dBASE: or B13: the name TEXT:. Search paths— \f you specify a path, ZCPR3 will search for a particular pro- gram along that path until it finds it. For example, if you enter dBASE at the B> prompt, ZCPR3 will auto- matically search for it on drive A if it is not found on drive B. The pathways you specify can be quite complicated, a feature any hard disk owner will quickly appreciate. System security- This utility allows you to effectively lock out certain drives or user areas. You can also eliminate the ability to run dangerous com- mands such as ERA *. *. This feature is known and loved by many bulletin board sysops. ZCPR3's utility programs total 76, too many to list here. These are main- ly for manipulating and maintaining how you use ZCPR3. For instance, PATH alters any previously defined search path, D1FF compares any two files, and F1NDF ferrets out a file from all possible directories. SDD.COM This file directory program is often renamed D.COM and takes up 80K to 100K bytes of source code. It is loaded with bells and whistles. Figure 1 shows a list of available parameters called with the command SDD $?. To get a listing of all files, in all user areas, dumped to your printer, you would issue the command D $AP If you wanted to have all files archived in libraries printed out as well, the command would be D $APL. NSWP207.COM New Sweep, as this file-maintenance program is called, is for people who can never remember the syntax for the PIP command. It was written by Dave Rand and does so much that its menu (see figure 2) speaks for itself. The Tkg option lets you mark multi- ple files for any particular operation. You simply tag each file by pressing T" after each filename. (When the program is executed, all files on disk are listed vertically.) When you've tagged all the files you want to work with, you can erase them, mass-copy {continued) Brock N. Meeks (8383 Center Dr., Suite C, la Mesa. CA 92041) is a contributing editor for Profiles and Microtimes magazines. He is the winner of a Computer Press Associa- tion award for outstanding writing. OCTOBER 1986 -BYTE 219 CompuPro Solves the Network Puzzle CP/M HALL OF FAME 286/40 MULTI-USER SYSTEM/NETWORK SERVER NET PC" WITHCPLINK $550 A_ 2.5MBPS INDUSTRY STANDARD Dont . b e _ ARCNET® puzzled by net- working. Compu- Pro puts all the pieces together— our high per- formance multi-user systems simul- taneously double as network servers for IBM® PCs. Move up to a true multi- user system and save your invest- ment in existing PCs. To find out how CompuPro can solve your networking puzzle, call today for the name of your nearest dealer. fompuPro Viasyn Corporation 26538 Danti Court. Hayward. CA 94545-3999 (415) 786-0909 Suggested list prices, subject to change without notice. Trademarks: CompuPro. 286/80. 286/40. 10 Plus. 816/C2. NET 100. NET 10. NET PC HYBRID HUB: Viasyn Corporation IBM International Business Machines Corporation. ARCNET: Datapoint Corporation CPLINK: ComputerNet A/S 220 BYTE' OCTOBER 1986 A— All users R— Reset disks C— Clear S-SYS files D— All disks T— No time&date F-To file P— To printer H— Horizontal Un— User n K-PUB files V— No version L— Library N— No pause W— Wide (all times) Figure 1 : The list af parameters available for running SDD.COM. a directory program. A— Retag files Q— Squeeze/Unsqeeze tagged files B— Back one file R— Rename file(s) C— Copy file S— Check remaining space D— Delete file T— Tag file for mass E— Erase T/U files U— Untag file F-Find file V— View file L— Log new disk/user W— Wildcard tag of files M— Mass file copy Y— Set file status P— Print file ?— Display this help Figure 2: The menu of NSWP207.COM [New Sweep), a CP/M file-maintenance program. them to a specified drive and user area, or squeeze/unsqueeze them. (Squeezing a file compresses it, sav- ing disk space or allowing shorter transfer times via modem. Unsqueez- ing restores it to its original form.) The Print option dumps a file to the printer. View lets you read a file on screen (even if the file is squeezed, which normally renders a file unread- able unless unsqueezed). The "Y" op- tion allows you to assign any file a par- ticular status (I-4.R.O). NULU151.COM This library utility helps you get around CP/M's limit of 64 filenames per floppy disk by allowing you to group a set of related files under a single filename. All your old tax spreadsheet files can be grouped in a library called 1985TAX.LBR. Since a library, regardless of how many files are tucked inside, takes only one slot of the allotted 64 filenames, you can store many more programs on a disk. Also, when using a hard disk, a library file can save you space. Although a lK-byte file might be allotted the minimum 4K bytes on a hard disk, four 1 K-byte files in a .LBR file would take up only 4K bytes, a saving of 12K bytes if stored individually. NULU. written by Martin Murray, is an enhancement of the original LU (Library Utility) program by Gary P. Novosielski. This program lets you set up individual libraries on disk. The ac- companying documentation file is 36K bytes long and explains in detail how the program functions. NULU is a handyman for file manip- ulation. You can unsqueeze, rename, delete, add, and view file entries. It is also indispensable for transferring several related files via modem. You can pack your library file with squeezed files and send the single .LBR file to a remote computer in much less time than it would take to transfer each individual file. MEX114.COM MEX (Modem Executive), a commu- nications program, is a direct descen- {continued) Wfe've resolved the high cost of high resolution. TheWyseWY-700. $ 1595. Monitor and board 1280 x 800 pixel clarity at a clearly sensible price. The WY-700 graphics subsystem is the one monitor that lets you run both standard IBM software and high resolution appli- cations for the IBM PC, PC/XT, PC-AT, the WYSEpc and other PC-compatibles. $1595. Complete. Monitor and board. Now you can realize the full potential of Computer-Aided Draft- ing and Design packages like AutoCAD and Cadvance. The new graphics-based personal computing environments — MS Windows and G. E . M . — finally have the high reso- lution display they were made for. Desktop publishing packages get the screen treatment they deserve. And off-the-shelf IBM packages — Lotus 1-2-3, Flight Simulator — take on brilliant new dimensions. Write Wyse Technology, Attn: Marcom Dept. 700, 3571 N. First Street, Sanjose, CA95134. Or call toll-free, today, for more information. Calll-800-GET-WYSE WYSE YOU NEVER REGRET A WYSE DECISION. AutoCAD drawing courtesy of CON SAFE and Autodesk. Ill 11 1 J 111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 II 1 1 Wyse is a registered trademark of Wyse Technology. WY-700 and the "V" shaped design are trademarks of Wyse Technology. IBM PC, IBM PC/XT and IBM PC-AT are trademarks of International Business Machines Corporation. AutoCAD is a trademark of Autodesk, Inc. Cadvance is a trademark of CatComp. Lotus 1-2-3 is a trademark of Lotus Development Corporation. Flight Simulator and MS-Windows are trademarks of Microsoft Corporation. G.E.M. is a trademark of Digital Research Corporation. © 1986 Wyse Technology. Inquiry 331 CP/M HALL OF FAME dant of the MODEM7 communica- tions package and has a widespread user base. A commercial counterpart of MEX is sold through Night Owl Software, but the public domain ver- sion doesn't lack many features of the commercial product. MEX supports all the latest file- transfer protocols and even includes the ability to create script files (a series of commands that let the pro- gram automatically log on and inter- act with the remote computer once the carrier is detected). MEX calls these READ files. Overlays exist for virtually every CP/M system and modem. A command called CLONE allows you to configure MEX for many dif- ferent systems. The program can also store custom phone lists. If you type in a stored name, the modem will dial WHAT'S THE SECRET DEBUGGING WEAPON USED BY EVERYBODY FROM BORLAND TO ORACLE? ANSWER FROM ATRON. "WE COULDN'T HAVE DONE IT WITHOUT ATRON'S HARDWARE-ASSISTED SOFTWARE BUGBUSTERS. This is ihc cily saved by ihc Alron bugbuslcrs. Your cily. Full of wizards, with hundreds of millions of dollars invested in wringing every ounce of intelligence and performance oul of your PC. Il used to be plagued wilh the toughest software bugs known to man- kind. PLAGUES OF BIBLICAL PROPORTIONS The first and most difficult plague was impossible to trap wilh software debuggers. These were carnivorous bugs which randomly overwrote programs, data, even ihc debugger. Nastiest were the ones that slipped in once every few houis, or changed Ihcir behavior after each new com- pile. Forty days and forty nights of recompiling, trying something else, caused many a would-be resident of the cily lo run screaming into the wil- derness, never to be heard from aeain. Second came the plague of nol knowing where the pro- gram was, or where il had recently been. This com- pounded the lirsl plague: How could anyone know what caused the random memory overwrites? Add lo Ihis ran- dom interrupts and liming dependencies, and you begin lo understand The Fear thai gripped the cily. Then came the last plague, which brought the wizards lo their knees before they even started debugging. Their low- ering programs consumed so much memory, there wasn't enough room for their symbol table, let alone debugging software. Even if they could gel pasl the lirsl iwo plagues, ihis one killed their firstborn software. ENTER THE HARDWARE-ASSISTED SOFTWARE BUGBUSTERS The Alron solution came as a revelation: Monitor every memory reference and every instruction executed, by adding a hardware board lo Ihc AT or PC wilh an umbilical probe lo the processor. The result? Wham! 'Die PC PROBE 11 * and the AT PROBE'* saved civilization as we know it. The lirsl plague was cured wilh PROBE'S hardware-assisted breakpoint traps on reading, writing, executing, input- ting and oulputting. These could be done on single or ranges of addresses, and could include particular data values. All in real lime. For a mere software debugger lo allcmpl this, a 1 -minute program would lake 5 hours lo execute. The second plague, nol knowing from whence you came, was cured wilh PROBE'S real-time trace memory. The history of program execution is saved on-board. in real lime. Once a hardware irap has occurred. PROBE displays the program execution in detail, including sym- bols and source code for C, Pascal, or assembly language pro- grams. Which shows how oul-of-rangc pointers got lhal way The third plague, nol enough room for ihc debugging symbol table lo be co-rcsidcnl in memory with a large program, was cured wilh megabyte of on-board, hidden, wrilc-pro- tcctcd memory. System memory was then free for the program, keeping the symbol tabic and debugger safe from destruction. When the job of bugbusling was done, Ihc wizards used their PROBEs as performance analyzers. So they could have bolh reliability and perfor- mance. So they could send only the best software into Ihc field. IF YOU AREN'T AN ATRON CUSTOMER, ODDS ARE YOU WON'T BE MAKING THE TOP-TEN LIST. On any given week, at Icasl nine of the lop len best-selling software packages on the Sol" l- Sel Hollisl come from Alron customers. Ever heard of Borland? "Without Alron," says its president Philippe Kahn, "there wouldn't be a Side- Kick™ , Turbo Lightning 1 " would be light-years away, and Turbo Prolog"* wouldn't be shipping today" Ever use a spreadsheet? From Enable'" lo Paradox'", Ihcir bugs were busted by Atron products. Into DBMSs? Everyone from Ashlon-Talc lo Oracle owns at least one Alron bug- buster. If you use a product from one of the companies in The City, you owe life as you know il lo Alron. Our guess is lhal 99% of all PCs, XTs and ATs have al least one product debugged wilh Alron bug- buslcrs. FREE 44-PAGE BUGBUSTING BIBLE COULD MAKE YOU A PROPHET, AND YOUR COMPANY A PROFIT, We've written a complete tutorial on slale-of-lhc-arl bugbusling. And it's yours, free for the asking. Full of examples and illustra- tions, it will show you how ihc wizards work their magic. If you're tired of suffering the wralh of program bugs, call Alron loday. You could be busting bugs, and sales records, tomorrow. ** j in THE BUGBUSTERS 20665 Fourth Street • Saratoga, CA 95070 • 408/741-5900 Copyright © l'JX6 h; nCnrp PCPROHK'" and AT PRO UK'" Alron The < the corresponding set of numbers (in- cluding any alternate carrier access codes, like for MCI or Sprint). Other Candidates In voting members into any Hall of Fame, there is always debate, con- troversy, and gnashing of teeth. My nominations will no doubt draw fire from those who think that other pro- grams should be included. Here are some that could make it on the next ballot. VDE— a superb 7K-byte screen editor, though word processor comes to mind immediately. This little pro- gram is great for editing downloaded text files, and it can do several of the same functions as WordStar, including word wrap. It is also great for writing programs. SODU (Screen Oriented Disk Utili- ty)— has saved its share of crashed disks. A disk editor like this lets you examine or change the information on disk byte by byte. With it you can recover damaged files that other pro- grams (like your word processor) refuse to boot up. MCAT— can manage that zoo you call a floppy disk file. The program automatically catalogs and records each filename on each disk. The associated file XCAT allows you to print out the listing. EX— a small wonder that is the utili- ty that CP/M's built-in SUBMIT pro- gram should have been. EX is quicker and more versatile than SUBMIT. R ESQ— recovers a text file from memory after you enter a word or phrase to search for. The file is re- stored from the first occurrence of the word or phrase to the end of the file. UN ERA— the ultimate recovery tool that will undelete files you just deleted from disk. It restores a file in full if you haven't written to the disk since eras- ing the file. I could mention many more pro- grams, but you will find those listed above to be reliable and upgraded regularly. Editor's note: Owing to the size of these pro- grams, the executable code for all the CP/M programs is available only on BYTEnet ((617) 861-9764) and on BIX. Readers may also want to contact the CP/M Users Group, 345 East 86th St.. New York, NY 10028. ■ 222 BYTE • OCTOBER 1986 Inquiry 30 WANTMOKE, BUTARENT WILLING TO PAYTHE PRICE. Citizen™ just took all the features of a high-end printer and made a small change. We put them into a low-end printer. The Citizen 120D. . We created a dot matrix printer with more features and a lower price than any other printer in its class. One that produces clean, pre- cise letters at a draft speed of 120 cps ; with superior correspondence quality at 25 cps. We added little extras ; like a 4K-byte buffer ; proportionally spaced printing, full graphics capabilities, and a unique paper loading system that's a small wonder. And we gave it the ability to survive the long run with most leading computer systems. Because after 50 years of placing a world of precision on your wrist, we've come to realize something. Good things do come in small packages. For more information, call 1-800-556-1234 Ext. 34. Or in California, call 1-800-441-2345 Ext. 34. The Citizen 120D. Never has so much been offered to so many for 50 little. oration. Citizen and the Citizen i Watch Company, Ird.^ inters that run like clockwork Inquiry 343 MEET DESTINGUIS 3 paper feed in g con trols, plus paper-sa vin g push/pull tractor feed. Diagnostic self -test signals errors with flashes and beeps. Go off-line to change type styles and modes with out lengthy software commands. 12 pushbuttons to con trol prin tin g functions. Lets you feed paper line-by-line, by 1/216-inch in crem en ts, or con tin u o usly. This could be the most intelligent group of buttons ever assembled. You'll find them on the front of every Alps Dot Matrix Printer. And you'll use them to do something most printers can t. Everything. Just push a ALPS fjjdo) button on our front panel. You can change type styles and print modes, load paper automatically, reprint data stored in the print buffer, even over- ride your software to do things it can't. All while using your PC for other work at hand. But of course, Alps printers are more than a bunch . I MN..1.U-... i .J.UI I .L of buttons. They're fast. The new P2100™ prints drafts at an amazing 400 cps, the OUR HEDKNEL Clears prin tbu Her of data without printing it. 17 LEDs in dica te functions in operation. mm host i Hi HOST ■ ■■ HOST mmm MB C1 ■H DRAFT ■ ■10 — ■ C2 HD 12 NLQ . XT TYPE STYLE MODE PITCH SPACING Choose three almost amazing P2000 speeds: [— 250 cps draft 1 25 cps memo, or 50 cps letter quality. Price: $995, A u tomatically reprints da ta stored in prin t buffer (4K expandable to 256K). Select fon t cartridges, prin tin g modes, prin t pitches and spacing quickly and easily. Choose three amazing P2100 speeds: 400 cps draft, 200 cps memo, or 80 cps letter quality Price: $1595. P2000™at an almost amazing 250 cps. They're versatile. They print everything from letters and graphs to six-part forms and 16 -inch-wide spreadsheets. And they run with all the most popular PCs and software. Best of all, they're reliable. Because Alps printers are among the most solidly built at any price. In fact, with normal care, they'll run five years or more without a breakdown. And their precision-engineered print- inquiry 17 for End-Users. Inquiry 18 for DEALERS ONLY. head will deliver over 200 million characters of superb output. So don't just get a printer that does a lot of work. Get one that doesn't interfere with yours. An Alps. For our brochure and name of our nearest dealer, call (800) 828-ALPS. In CA, (800) 257-7872. _ _ _^_ We'll show you A DC how to push all the * *md& fcJ right buttons. AMERICA P2000 and P2100 are trademarks of Alps Electric Co., Ltd. ©1986 Alps America. IVTE Reviews Reviewer s Notebook by ]on Edwards 229 The Commodore Amiga by lorn Thompson 231 The Compaq Portable II by Stan Miastkowski 239 Four 14-inch Tape Backup Units by Malcolm C. Rubel 243 muLISP-86 by Robert 1. Schalkoff 249 ITCs Modula-2 Software Development System by Mark Bridger 255 Microsoft Word Version 3.0 by Malcolm C. Rubel 261 The Norton Utilities, PC Tools, and Super Utility by Rubin Rabinoviti 265 Review Feedback 273 THE COMMODORE AMIGA is a special machine. Tom Thompson provides a detailed look at its capabilities and performance. In his view, the Amiga's spectacular graphicsJs the major strength of the machine but the peripherals and software also contribute to the system's viability. Still, he reports on the quirks and problems that you will face with AmigaDOS and the multitasking operating system. The Compaq Portable II is a compact version of the Compaq Portable 286. Stan Miastkowski examines the Model 3, which has a single floppy disk drive, a lOmegabyte hard disk drive, and 640K bytes of RAM in a 26-pound case. He has found that the machine is well built, highly compatible, and easy to expand, but highly priced. It doesn't take long after you've purchased a hard disk to realize how vulnerable you are unless you back up your files. Malcolm Rubel reviews four tape backup units and the Alpha Microsystems' Videotrax, a VCR alternative. He concludes that the Ikcmar QIC-60 is a winner as far as speed is concerned, although the other units perhaps provide a better value or an easier environ- ment for beginners. Robert Schalkoff looks at the muLISP-86 LISP development system, which is identical to Microsoft LISP. He has found that the major strength of the language is its suitability for use within the constraints of a microcomputer environment. Mark Bridger examines ITCs Modula-2, and he compares it to TUrbo Pascal. He recommends that you examine your needs before making the transition from Ttirbo Pascal. Malcolm Rubel also reviews Microsoft Word version 3.0. The application is full-featured, but he concludes that the word processor lacks some of the comforts and the speed that he has come to expect. Finally Rubin Rabinovitz compares the latest version of The Norton Utilities to PC Tools and to Super Utility. He has found that The Norton Utilities offers the greatest number of features for file recovery and that PC Tools is somewhat easier to use and is more reasonably priced. OCTOBER 1986 -BYTE 227 O U T S T A rao'yr: 1~86 day: 23 before after b amount: $180,00 horn' Assets $167,727 $167, 627 Cash 8,422 8,322 Checking Account 2,961 2,861 Check 11438 aaount: $168.06 to: Household Expenses $108 $200 tamo: choices: « [fil Appliances & Hone Furnishings [hi Medical A Dental IB) Business-related Expenses [R] Recreation & Vacation id Clothing ESI Supplies a* Miscellaneous ID] Deductible Interest IT! Transportation [£] Education [*] Other (create new account) IF! Food im Gifts [Bhspl To correct mistakes [HI Housing [Esc] To cancel transaction HI Insurance >_>_" -J-J - ~-J- Jt slow -«wT xurabersbroelprjogram ^operation! hss^kepi yoiL- ~_~~_ ~_ - ~_- W W~- - --j^JaugBngi(atiSJru^ ~^j-~-j_ j Jindl^rati Oufs*^^^ - "yet- versatile -accounting- Itrueture^a .-beautiful ~cohcepf ior- pre^sentmg^actountecWoN-^-" j-~r~ -£ - J-;f-J-~-jouiflowr*n€ljm~ J- _~_- j- J- jr j- _r . '- ""*- ^ "- ^U ~~ ~~ "**- ~^^vui£ejd5~£ajfclra£k Jja t ^^ _~ j- _^ j- j- j- gr^^ -~ J" J* J~ J" J" -or-lessrif youLdeatet cloeWFj>aye~tbe"&^asTtu^^ ^* ^^ ^ ' - ^-^ mfornrration. For direcborderr,j>leMe enclose- $149700- plus ^ ------ - $4.50 For shipping, and" specify -Jwhefher~)toIuwanF UPS^tfii^da'ss-maiTdelivery.'Visa,.^ J* ^"* - ' '^ ^ MasterCard, American Exptwr,md®imn^l&^tectytipd. - - _~ - C^KBac^H^ *M UOGIC * ORDER LINE: (800) 637-4983 (except in Illinois. Alaska and Hawaii) ' *J"" ^Open 7 AWTtog :>Mj5entraTTIme REVIEWER'S NOTEBOOK I often wonder whether the time I spend shaping my working environ- ment really pays off. I suppose that my work habits are now more effi- cient, and I certainly enjoy watching macros give me more command over the system. But my investment in time, if not in money, is considerable. On my IBM PC, I have an AUTO- EXEC.BAT file that takes 3 minutes to boot and, despite having 640K bytes of RAM, I have less than 80K bytes for my work space. The reason may be familiar to you. I have a passion for RAM-resident software. I use SideKick, SuperKey, and TUrbo Lightning from Borland International, PopDOS from Bellsoft Incorporated, Kwic Query, an excellent new RAM- resident index of BYTE's back issues from Innovative Ideas Incorporated (1226 Holloway St., Dept. BPA, Lafayette, IN 47905. (317) 743-6416). two public domain applications (a digital clock and a print spooler), and a RAM disk to hold the TUrbo Light- ning dictionary. But passions for RAM- resident software can get you into trouble, especially when you load in several. For example, when I tried The Norton Commander last month, DOS commands no longer entered Super- Key's command stack. The Com- mander captured them all. Many util- ities like PRD+ and SuperKey do not work together; in this case, I assume because they use the same interrupts. Consequently there are times when 1 have to change the AUTOEXEC file and reboot. I was therefore excited to get Referee from Persoft (2 740 Ski Lane, Madison, WI 53713, (608) 273-6000). This product sets up environments in which you can specify which of your RAM-resident packages are active with each of your applications. You might set up TUrbo Lightning to be ac- tive when you are on-line (very useful for avoiding cumbersome line editors) but inactive at the DOS level. Alter- natively, with memory to burn, you might load PRD+ for use with your main editor and SuperKey for use at the DOS level and in other applica- tions. I can therefore recommend Referee, but it too introduced some incompat- ibilities. I found that once I had loaded Referee, SuperKey macros could no longer call SideKick func- tions. The reason, according to Per- soft, is that Referee employs two in- terrupts that SuperKey needs to rec- ognize that SideKick is there. Of in- terest is Persoft's claim that a similar but as yet unavailable utility has the same problem. Amiga owners are probably scoffing at this discussion, since the reason for having RAM-resident utilities in a sense is to simulate a multitasking en- vironment. Why struggle with incom- patibilities among utilities when a multitasking operating system can solve all these problems by providing access to every application you desire? Order, for example, is a desktop organizer software package for the Amiga from the Northeast Software Group (165 Dyerville Ave., Johnston, Rl 02919, (401) 273-1001). It provides a telephone directory, a 21 -function calculator, a clock and message facil- ity, a 7-function scratchpad, a calen- dar, and a screen dump utility. With a hard disk, you can call up these functions nearly as fast as on the IBM PC Like me, you may well be more in- terested in the Amiga's graphics and sound environment than its multitask- ing abilities. We just received Future- Sound from Applied Visions Incor- porated (1 5 Oak Ridge Rd., Medford, MA 02155, (617) 488-3602). This sound digitizer includes everything you need to digitize voices, sound ef- fects, and music, using up to four tracks at a time and at up to 28,000 samples per second. In a few minutes we were able to splice our own voices with a recording from "Star lYek." The software allows you to speed up, slow down, or reverse the playback, change the volume, and edit sounds. You can also incorporate recordings into your own BASIC or C programs by saving the digitized sounds in IFF format. We also have Digi-View from New- Tek (701 Jackson St., Suite B3, Topeka, KS 66603. (913) 354-9332). a video digitizer that lets you capture, display and store images in the Amiga's 4096- color hold and modify mode, in the standard 32-color IFF format, and in 640- by 400-pixel monochrome. Digi- View plugs into the parallel port and uses a coaxial cable to connect to an RS-170 monochrome slow-scan video camera with two-to-one interlace. NewTek supplies the Panasonic WV-1410 camera as an option. To cap- ture images, you use a color filter wheel that mounts in front of the camera. The process is fairly quick (about 30 seconds for full color), and the final quality is excellent. Lest I forget my roots, I should men- tion a neat item for the Atari 800. Electronical Software (P.O. Box 803 5, Rochester, Ml 48063, (313) 258-5455) offers YEMACYB, a color graphics printer driver that lets you make color printouts with your black-and-white dot-matrix printer. With this software and four-color printer ribbons, you can generate color printouts of any graphics-7 or 7-plus displays saved in Micropainter-file format. Macintosh users, take heart. Next month I will report on the MacWorld Expo in Boston. — ]on Edwards Senior Technical Editor, Reviews m — Inquiry 289 OCTOBER 1986 -BYTE 229 $345 (OK) Reason 1: More Memory When you need more memory, the Abovefunction Card® from American Computer & Peripheral, Inc. delivers a full 2 Megabytes of RAM to your American, IBM® personal computers and compatibles. The American Abovefunction Card can fill conventional memory to 640K with the remaining as expanded memory or install up to four Abovefunction Cards to provide the maximum 8 Megabytes of expanded memory for your PC system. Reason 2: More Functions In addition to expanded memory, the American Abovefunction Card includes commonly used features, such as a serial, parallel and game port and real-time clock/calendar, all on one board. The American Abovefunction Card has Cache Memory, an enhanced disk buffer software that is transparent to the user and gives up to four times faster hard disk access. RAM disk and print buffer capabilities are also contained on the EMM (Expanded Memory Manager)/Utility Diskette. Reason 3: Maximized Slot Usage Plan for the future with the American Abovefunction Card. One card provides your memory and multi-function needs in one I/O expansion slot. This frees valuable slot space for other enhancements. Reason 4: Compatibility The American Abovefunction Card is based on Lotus®/Inter/Microsoft® specifications and is compatible with Intel's .Above® Board. Reason 5: Price And, one of the best reasons of all, the American value: $725.00 (includes 2 Megabytes RAM) and $345.00 (0K) AUTHORIZED DISTRIBUTOR AND SERVICE CENTERS: MAJOR DEALERS: California Micro, Inc. Lo§ Angeles, CA (800) 792-6500 5K Computers Orlando, FL (800) 624-3250 Computer Wholesalers Lincoln, NE (402) 466-1962 American Computer Distributing Chattanooga, TN (615) 870-1073 Computerland of Whittier Whittier, CA (213) 945-8321 Imagine Computers Goleta, CA (800) 344-2964 The Super Source Norcross,GA (800) 241-8579 Micro Configuration East, Inc. Booklyn, NY (718) 941-2512 Columbia Data Systems, Inc. Columbia, TN (615) 381-4650 Elek-tek, Inc. Chicago, IL (312) 6777660 PC Land, Inc. Tustin, CA (714) 730-6723 Mid America Carmel, IN (317) 846-3101 Microsel Oklahoma City, OK (405) 787-4354 Omega Data Kirkland.WA (206) 823-9769 Inacomp Computer Center Columbus, OH (614) 431-2230 Computer Professionals Lakewood, CO (303) 232-4009 CPU Distribution, Inc. BurnsviHe, MN (612) 894-9310 Omega Data Hillsboro, OR (503) 640-3995 Inter-Micro Distributor, Inc. Alberta, Canada (403) 438-3997 Inacomp Computer Center Saginaw, Ml (517) 790-1360 Computer Peripheral Warehouse, Inc Deerfield Beach, FL (305) 481-2170 Asibem, Inc. Bluespring, MO (816) 229-2442 Power House Sales Sioux Falls, SD (605) 335-7181 Paris Sud Electronique Composant Paris, France (1) 69.20.66.99 COMPUTER & PERIPHERAL, INC. j _ v See us at ©COfllMNQMI'K November 10-14, 1986 Corporate Office: 2720 Croddy Way, Santa Ana, C A 92704 USA • Tel: (714) 54S2004 • Fax: (714) 54S2146 Northeastern Office: 830 Busch Court, Columbus, OH 43229 USA • Tel: (614) 846-5433 • Fax: (614) 846-7656 ♦Abovefunction, IBM, Lotus, Intel Above and Microsoft are trademarks of American Computer & Peripheral, International Business Machines, Lotus Development, Intel and Microsoft Corporations, respectively. Inquiry 21 for End-Users. Inquiry 22 for DEALERS ONLY. SYSTEM REVIEW The Commodore Amiga by Tom Thompson The Amiga from Commo- dore International is a busi- ness machine, a graphics workstation, a multitasking system, and a home com- puter. A bold statement, but the Amiga has a unique hardware design that gives it sufficient power, especially when combined with some pricey peripherals and im- proved software, to meet most of these expectations. Hardware The basic Amiga comes with 2 56K bytes of RAM, and you can upgrade to 512K bytes easily with a 256K-byte RAM expansion cartridge that plugs into a slot behind a front panel. A built-in 31/2- inch double-sided disk drive holds 880K bytes, and the machine has a connector for an external drive. The Amiga can support three additional drives— either double-sided 3 '/2-inch or double-sided 5^-inch. The system has programmable serial and parallel ports. TWo RCA jacks provide stereo audio output. The two joystick ports can be used to connect a two- button optomechanical mouse. The Amiga provides analog and digital RGB output for color monitors and a composite video output that can input directly into a VCR or color monitor. The Amiga also has an RF modulator port for TV outputs, but you need an external RF adapter unit for this type of use. On the right side of the machine, a panel covers the ex- pansion bus interface, a card edge into which you can attach additional memory or special peripherals. An important feature of the hardware is that you can synchronize the display to an external television signal, allow- The strong point of this well-designed machine is spectacular graphics ing the possibility of receiving, view- ing, and processing VCR or video camera input. The Amiga uses a Motorola 68000 microprocessor chip running at 7.16 megahertz. Three custom chips han- dle the bulk of the display control, sound generation, and DMA (direct memory access) data transfers (see 'The Amiga's Custom Graphics Chips" by Phillip Robinson, November 1985 BYTE). You can manipulate eight re- usable sprites on two playfields with priority control and collision detec- tion. Area-fill and bit-plane copying are also supported, and four pro- grammable audio channels are avail- able. For additional information on the Amiga's hardware, see 'The Amiga Personal Computer" by Gregg Williams, Ion Edwards, and Phillip Robinson, August 1985 BYTE. I was disappointed to find out that the Amiga doesn't have a battery-operated clock. Such clock circuits are not difficult to build, and with 880K bytes of data per flop- py disk drive, a time stamp on a file is a requirement. The clock should be stan- dard, but you can buy pe- ripherals that contain a clock. Display The Amiga display has two resolutions. Low resolution is 320 pixels per line and 200 lines per screen, with a choice of 32 colors from a palette of 4096. High resolu- tion is 640 pixels per line for 200 lines, displaying 16 colors out of 4096. An in- terlace mode allows you to double the vertical resolu- tion: 320 pixels for 400 lines in low resolution and 640 pixels for 400 lines in high resolution. A special mode called hold and modify (HAM) allows you to use six bit planes in a controlled manner to display the entire 4096 colors simul- taneously. This last mode is perhaps the most spectacular: Digitized pic- tures utilizing HAM have a television- like quality to them due to the range and subtle shading of the colors dis- played (see photo 1). The Amiga can present text in a variety of sizes, colors, fonts, and styles. You can also present text in 60 or 80 characters per line. The system ROMs contain two default system fonts; other fonts are stored as .font [continued] Tom Thompson is a technical editor for BYTE. He can be reached at BYTE, One Phoenix Mill lane, Peterborough, NH 03458. OCTOBER 1986 • BYTE 231 REVIEW: COMMODORE AMIGA files on disk. The operating system will recognize additional .font files if you copy them to the disk and then install them. The Amiga has no problem with low-resolution displays, but an annoy- ing jitter appears in the interlace mode and in high-resolution displays. A monitor with high-persistence phosphors could alleviate the prob- lem but at extra expense. I also found that after using the 80-column text mode for several hours, my eyes began to burn. I found it much easier to endure the 60-column mode. Commodore offers an optional monitor, the 1080, which has a com- posite video input, allowing it to serve as an output device for a VCR or an- other computer. Keyboard The Amiga has a detached keyboard with 89 keys. In addition to the usual alphanumeric keys you'll find Esc, Ctrl Del, two Alt keys, two Amiga logo keys, ten function keys, and four cur- sor keys laid out in an intuitive cross pattern. The keyboard can be read as pro- cessed input or as unprocessed (raw) input, depending on how the applica- tion has opened the console device. The raw mode interprets the keyboard as keycodes, allowing you to have fine control over the input. For example, you can differentiate between the left Alt key and the right Alt key if your application requires it. Disk Drives I appreciated having an external 3!/2-inch drive, which increased the machine's storage capacity to 1.8 megabytes. The Amiga cannot boot off the external drive, but having an external drive eliminates some of the disk swapping that occurs with some applications and compilers. A push button ejects the disk. This physical control appeals to some users, but you can destroy a disk's contents if you eject it prematurely. This shouldn't normally be a problem, but the Amiga seems to take a long time, sometimes several seconds, to flush the last of the data to a disk. The possibility of an accident seems great enough to justify your getting a disk- salvage utility. Operating System The operating system is composed of 192K bytes of multitasking executive saved in 2 56K bytes of write- controlled storage (WCS) RAM. When Photo 1 : A demonstration of the Amiga's hold and modify mode. (Data file courtesy of Newtek.) the Amiga was first released, the operating system software design was not complete. The workaround pro- vides the operating system on a flop- py disk called the Kickstart that loads into the WCS at boot-up. The WCS uses its own memory; it does not use the 2 56K bytes of RAM that comes with the basic machine. You complete the boot process by inserting a Workbench disk (Commodore's term for the Macintosh-like window/icon user interface) or the system-installed Command Line Interface (CLI) disk. Improvements to the executive are issued through dealers at no charge. The current Workbench version is 1.1, with version 1.2 now in beta test. Each revision has introduced major im- provements in the overall operation of the machine. You have a choice of how to work with the Amiga. There is Workbench, a mouse-driven, icon-based window- ing interface, or AmigaDOS, which is a sophisticated CLI. Workbench is ac- tually "bolted" to the top of Amiga- DOS: Actions performed on the Work- bench call AmigaDOS functions. Either interface can start the other. From the Workbench you can double- click on a CLI icon to open a window with a simple CLI prompt, or from AmigaDOS you can issue the LOADWB command, which starts Workbench. I performed all system benchmarks under both Workbench and AmigaDOS. WORKBENCH Like the Macintosh desktop, Work- bench has multiple windows, a menu bar, icons representing disks, and a 'ttashcan. You can move, resize, open, and close windows using the mouse. You use the left mouse button for operating on a window or its contents and the right mouse button to ac- tivate and make selections on the pull- down menus. It takes a little practice, but it is easy to get used to. Various icons represent runnable applications. To execute them you double-click on the icon. You can also drag them to another location or to another disk, triggering a copy opera- tion. Drawers correspond to Macin- tosh folders and, like the Macintosh {continued) 232 BYTE- OCTOBER 1986 WHEN YOU NEED ACCESS TO FULL MEMORY, STRUCTURE, COMPATIBILITY WITH GW- & PC-BASICA, WHEN YOU NEED THE POWER AND FLEXIBILITY OF COR PASCAL... . . .You need BetterBASIG The BetterBASIC compiler has become the standard by which other BASICs are evaluated. BetterBASIC is completely compatible with GW-BASIC and PC-BASICA when running on IBM PC's and true clones. You can load and run your existing BASIC programs in BetterBASIC. It uses standard Microsoft syntax and gives you more than 150 additional state- ments such as XREF, DEFINE WINDOW, MAKE MOD ULE, and PROCEDURE. In benchmark comparisons, BetterBASIC is five times faster than interpreted BA- SIC. There is optional 8087/80287 math chip support, and an optional Runtime System to create stand-alone Ask your dealer or call to order: 1-800-225-5800 In Canada, call 416-469-5244 Summit Software Technology, Inc T . M 106 Access Rd. Norwood, MA 02062 BetterBASIC is a registered trademark of Summit Software Technology, Inc. IBM PC, XT, AT are registered trademarks of International Business Machines Corp. Microsoft is a registered trademark of Microsoft Corp. landy is a registered trademark of landy Corp. ^ EXE. files. BetterBASIC is not copy protected. Technical support is provided for all registered users. See for yourself why Dick Aarons of PC Magazine said "BetterBASIC may be the best of all BASIC pro- gramming worlds" and selected BetterBASIC as "Editor's Choice" (Oct. 29, 1985). BetterBASIC 8087/80287 Math Chip Support Runtime System Sample Disk with Ihtorial $199 $99 $250 $10 Inquiry 290 REVIEW: COMMODORE AMIGA Amiga 1000 Company Commodore International 1200 Wilson Dr. West Chester; PA 19380 (215) 436-4200 Size 17% by 13 by 4 1 A inches 13 pounds Components Processor: 68000 running at 7.16 MHz Memory: 256K bytes of RAM (standard); optional 256K-byte RAM expansion card for a total of 512 K bytes Mass storage: One 880K-byte double- sided double-density 3 1 /2-inch floppy disk drive Keyboard: Detached QWERTY with 89 keys including 10 function keys; separate keypad for cursor keys; numeric keypad Expansion: Expansion bus card edge I/O interfaces: One RS-232C serial port; one DB-25 parallel port; two DB-9 joystick ports; two audio outputs (RCA type); DB-23 RGB analog or digital output; composite video output (RCA); NTSC video output Software Amiga BASIC Tutorial (Mindscape) Kaleidoscope (Electronic Arts) Options 1080 analog color monitor: $495 3 1 /2-inch external drive: $295 RAM expansion card: $195 5V4-inch 360K-byte drive with IBM emulation software: $395 Documentation 116-page Introduction to Amiga 291-page Amiga BASIC Price $1295 SYSTEM FEATURES MEMORY SIZE (K BYTES) DISK STORAGE (K BYTES) 200 400 600 800 1000 400 800 1200 1600 2000 I 64/128 _L_ 1 880/1800 SO/720 tm WM 140/280 I DISK ACCESS IN BASIC (IN SECONDS) WRITE READ BASIC PERFORMANCE (IN SECONDS) SIEVE CALCULATIONS ■166* ■■69** " 2 45 SYSTEM UTILITIES (IN SECONDS) 40K FORMAT/DISK COPY 40K FILE COPY 10 20 30 40 50 ■SMMSt MM 5.2 1 ■■■5.8 t — 9.6 SPREADSHEET (IN SECONDS) LOAD RECALCULATE 5 10 15 20 25 5 10 15 20 25 mm AMIGA mm IBM PC h APPLE HE * Amiga BASIC * * ABasiC t AmigaDOS 1 1 Workbench The Memory Size graph shows the standard and optional memory available for the computers under comparison. The Disk Storage graph shows the highest capacity for a single floppy disk drive and the maximum standard capacity for each system. The graphs for Disk Access in BASIC show how long it takes to write and then read a 64K-byte sequential text file to a blank floppy disk. (For the pro- gram listings, see BYTE's Inside the IBM PCs, Fall 1985, page 195.) The Sieve graph shows how long it takes to run one iteration of the Sieve of Eratosthenes prime-number benchmark. The Calculations graph shows how long it takes to do 10,000 multiplication and 10,000 division operations using single-precision numbers. The System Util- ities graphs show how long it takes to format and copy a 40K-byte file using the system utilities. The Spreadsheet graphs show how long it takes to load and recalculate a 25- by 25-cell spreadsheet in which each cell equals 1.001 times the cell to its left. BASIC bench- marks were performed for both ABasiC and Amiga BASIC with on- ly the benchmark program running. The ABasiC programs use a different syntax to open files, and Amiga BASIC requires a CLEAR ,30000,30000 command for the Sieve program to run. All System Utilities benchmarks were run under Workbench and AmigaDOS. The spreadsheet used was Lattice's Unicalc Spreadsheet version 1 .0. All tests were done on an Amiga 1 000 using Workbench 1 .1 and AmigaDOS 1.1. The Amiga had two 880K-byte drives and 512K bytes of memory. 234 BYTE • OCTOBER 1 986 REVIEW: COMMODORE AMIGA Hierarchical Filing System, each drawer represents a subdirectory. Although Workbench works well, it has a few quirks. To save a preferred arrangement of icons, you must select an icon and then choose Snapshot from the Special menu. You repeat this process until you've preserved the location of every icon, a very clumsy method. The Macintosh Finder saves the location automatical- ly. Also, new files generated by ap- plications don't appear in a window until you first close and then reopen the window. This isn't a serious prob- lem, but it can be confusing. When you have multiple processes running in separate windows, you make a window active by pointing to it and clicking with the left mouse but- ton. However, the active window doesn't come to the front of the screen. If it is hidden by other win- dows, it will stay that way. In fact, in some cluttered screens it can be dif- ficult to use the front and back win- dow controls, called gadgets, to bring the desired window to the front. Worse, clicking on a window's front or back gadget makes that window ac- tive. Once you've positioned the desired window at the front of the screen, it may not be the active win- dow. You might therefore enter key- board I/O into the wrong process. AmigaDOS AmigaDOS is the CLI interface to the Amiga. It's based on IMpos, a multi- tasking system written by Metacom- co in England (see "TMpos— The Roots of AmigaDOS" by Dick Pountain, February BYTE). Experienced com- puter users will probably rely on AmigaDOS, since all the development software, programming languages, and assemblers operate exclusively in this environment. AmigaDOS allows you to assign logical paths, and an EXECUTE com- mand lets you submit batch files with parameter passing. At boot-up the Amiga searches the s subdirectory of the boot disk for a batch file called Startup-Sequence and, if it is present, executes it. This gives you a way to make logical device assignments to certain volumes or subdirectories, set the stack size, or prompt for the cur- rent time and date each time you start. You also select the operating system you'll start under (Workbench or AmigaDOS) in this file. Commands are programs stored in the c subdirectory on the boot disk. AmigaDOS scans this directory when you enter a command and loads the appropriate program into memory to complete the request. This slows operations because every command, including DIR, requires a disk access. You can rename these programs to suit your own preference. AmigaDOS has a built-in RAM disk, RAM:, whose size is limited only by the amount of available memory. You can customize the Startup-Sequence file to load frequently used com- mands such as TYPE, DIR, and EX- ECUTE into the RAM disk and logically assign it as the command directory, eliminating the penalty of accessing the floppy disk. You can obtain help for some com- mands by executing them with no arguments. FORMAT, for example, provides you with a complete set of arguments and keywords to format a disk. Not all commands provide this feature: COPY instead tersely states "Bad arguments." I'd like to see all commands that require keywords or switches to provide some sort of self- help because AmigaDOS doesn't re- semble MS-DOS in some areas. AmigaDOS has quirks, most of which are due to its dissimilarity to MS-DOS. First, AmigaDOS handles wild cards differently, mainly by not using the asterisk (*) as a wild-card delimiter. The COPY command re- quires an ALL switch to copy all the files on a disk or in a subdirectory. COPY does not perform concatena- tion: You must use a JOIN command, which doesn't offer self-help either. Second, AmigaDOS doesn't recog- nize the conventional Ctrl-S/Ctrl-Q data throttle. To stop output, you hit a key: to restart, you hit Return, back- space, or Ctrl-X. I've crashed the machine under AmigaDOS by using COPY with the ALL switch to transfer files to the RAM disk. Everything proceeds smoothly until the Amiga runs out of memory, at which point you get a fatal crash. This might happen to you by The Amiga handles multitasking quite well but only if all the programs are well behaved. accident if you put a number of source files in RAM: during the devel- opment of a program. I don't know if this is the fault of the Amiga operating system or of the COPY command. It does show that the version 1.1 system software still has some rough edges. MULTITASKING The Amiga provides multitasking, allowing you to run several programs simultaneously. The programs share system resources such as memory or disk drives without conflict. However, the Amiga multitasking executive does not support virtual memory: Either you have enough memory to load your applications or you don't. With this fact in mind, how well does the Amiga handle multitasking? The display, normally one of the most CPU- and I/O-intensive processes, is managed effectively by the custom chips. Other types of I/O like disk and serial port accesses tend to slow applications down, but primarily because of the speed of these devices rather than the overhead required. I've tried a mix of different programs in a variety of ways with no problems (see photo 2). At the same time, at- tempting to run a buggy C program I had written hung the entire system, taking with it all the programs that were running. The moral here is that the Amiga handles multitasking quite well, but only if all the programs are well behaved. How much overhead do additional tasks add to the system? I experi- mented with running the C language version of the Sieve program with an- other graphics-intensive program run- ning in the background. I chose this program to experiment with how [continued) OCTOBER 1986 • BYTE 235 REVIEW: COMMODORE AMIGA much the custom hardware degraded performance when it had to cycle- steal heavily from the 68000 micro- processor. I used the bouncing ball demo, Boing!, plus the Robocity and amiga3d demos as background pro- grams. The results are shown in table 1 . The Sieve runs in roughly twice the time that it had previously but with two programs, one with an extreme- ly complex graphics display, running simultaneously. Impressively, the Amiga is also scanning both the CLI window and the Workbench for mouse clicks or keyboard I/O at the same time. To make the most of multitasking, you need lots of memory and fast pe- ripherals. The memory is required to hold every program you'll have run- ning plus what the operating system needs to manage I/O queuing and context switching. Since the display is already handled by the custom chips, the next I/O bottleneck is disk ac- cesses. Of course, a hard disk will speed performance. The Amiga's per- formance with 1.5 megabytes of memory and a hard disk is superb: I've uploaded files to BIX at 1 200 bits per second while doodling in Aegis Images. On another occasion I com- piled four programs simultaneously with the Manx Aztec C compiler. Software It has not yet been a year since the Amiga's release, and already there is an impressive array of programming languages available for it: two BASICS, Table 1: Increase in program execution time with a graphics-intensive program running concurrently. Programs were run with Workbench version 1.1 with one CLI window open. Running times are in seconds. Programs Running time Percent increase Sieve Sieve with Boing! Sieve with Robocity Sieve with amiga3d 6.18 9.23 12.39 13.38 49 110 117 Photo 2: Multitasking on the Amiga. two C compilers, and two assemblers, along with LISP, Pascal, Modula-2, and FORTH implementations. The Amiga originally came with Metacomco's ABasiC. However, The machine is now bundled with Micro- soft Corporation's Amiga BASIC. Owners who had ABasiC got a free copy of Amiga BASIC with their ver- sion I.l operating system upgrade. Both interpretive BASICS allow you to access many of the Amiga's graphics libraries. ABasiC opens a single win- dow and behaves like a typical CLI- oriented BASIC with no mouse con- trol and no windows, Amiga BASIC presents you with a command win- dow and a list window. Several menus are available for the mouse user, or you can type commands in the com- mand window. Cut and paste func- tions are available in the list window. Both BASICS fit neatly into the Amiga's multitasking environment, al- though you have to adjust the stack size within a CLI window to get ABasiC to operate this way. There are several MacPaint-style drawing programs that allow you to use the graphics capability of the Amiga to produce color drawings. Graphicraft by Commodore was avail- able at the machine's release date. Electronic Arts released its Deluxe Paint in time for the Christmas season, and Aegis introduced its Images pro- gram in the spring. All three programs use an Interchange File Format (IFF) data structure that allows a picture produced by Graphicraft to be read and displayed by Aegis Images or Deluxe Paint. This lets you download pictures from various bulletin boards without regard for which paint pro- gram you own. Aegis provides two programs that give the Amiga serious graphics potential. The first is Aegis Animator, which can read IFF files to generate animated images. It provides a film- splicing capability called story- boarding that can be of use to il- lustrators or small advertising studios. The second is Aegis Draw, a drafting- style program that allows you to design scale drawings or blueprints, and it comes with a number of plot- ter drivers. For business needs, Lattice offers its 236 B YTE • OCTOBER 1986 Inquiry 191 REVIEW: COMMODORE AMIGA Unicalc Spreadsheet program. I used it for the spreadsheet benchmark timings. DOCUMENTATION The Amiga comes with two manuals: Introduction to Amiga and Amiga BASIC. The introduction manual extensively covers the Workbench side of the operating system. Its strongest point is the information it provides for the slightly nonstandard pin-outs on the serial and parallel ports. The manual's only information on AmigaDOS is a note in the Reference section on how to enter the CLI. Unless you copy notes out of the developer's manuals at your dealer, you'll probably need to buy The AmigaDOS Manual from Bantam Books (1986) for information on the CLI. This book actually contains three devel- oper's manuals: the AmigaDOS User's Manual which covers AmigaDOS com- mands; the AmigaDOS Technical Refer- ence Manual which describes the disk layout; and the AmigaDOS Developer's Manual which provides useful infor- mation for program development. Peripherals The peripherals are effective but cur- rently expensive. I used Ikcmar's T- card and the 20-megabyte T-disk with the Amiga. The T-card attaches to the expansion slot on the right side of the Amiga and provides an additional I megabyte of memory plus a battery- powered clock. The joystick ports are passed to two DB-9 connectors on the front of the unit, and a serial port and hard disk port are located to the rear. The T-disk is small and compact, and it runs quietly. An external power supply feeds both the disk unit and the expansion board. I installed the 1-disk driver easily Getting the Amiga to recognize the extra memory in the T-card was not so easy; The instruction manual had detailed instructions on configuring the hard disk port and the serial port but nothing at all on the memory setup. It took several tries to deter- mine that it is necessary to select the memory option under the Devices menu, and then explicitly select "in- stall this device" under the Edit menu. Once properly installed, a script file The peripherals are effective but currently expensive. configures the operating system to recognize the additional memory and the hard disk at boot-up. By accident I trashed the hard disk the day after the installation; I've since rebuilt the disk files and have experienced no further problems, and it's been run- ning forty hours a week for over a month. Conclusion For someone who plans serious use of this machine, I'd recommend get- ting the 2 56K-byte RAM expansion card and an external drive. Some compilers and programs need 51 2 K bytes of memory to operate; you need at least that much memory to hold two or three large applications concurrently. The external drive will prevent disk swapping, and it adds a manageable amount of storage. As far as software goes, the Amiga has a number of useful applications developed for it, with more being released each month. However, if you plan on running a program concur- rently with others, try using it on a machine that matches your system to check for possible compatibility prob- lems. The Amiga is a well-designed piece of hardware. Its expansion bus allows you to add memory or useful periph- erals. The Amiga's strong point is its spectacular graphics. I feel confident that the machine will hold its own as a graphics engine for artists and pro- fessional illustrators. The only real hardware shortcoming is the high- resolution flicker. In terms of software, the Amiga has a long way to go. Its multitasking capability is good, but prone to break easily if memory is tight or if a pro- gram runs wild. The two operating system interfaces, Workbench and AmigaDOS, have problems. However, if the machine's only real limitation is its software, you can bet that it will get fixed.H MicroCom Systems OUTSTANDING SOFTWARE For IBM PC's and Compatibles $350 PER DISK $300 PER DISK SMALL QUANTITIES FOR TEN OR MORE It OFF 5 CMSKS Of* MORE WTTM THIS COUPON □ CAD 1 — Altamira, an object oriented CAD program, and Supergraph 3. Color gr. req'd. □ COMM 1 - The ever popular QMODEM 2.0E modem communications program. □ COMM 2 - PROCOMM 2.3, an excellent modem program with terminal emulation. □ COMM 3 — Communications utilities to be used with QMODEM or PROCOMM. □ DATABASE 3 — The Pbase relational database manager with query language. FINANCE 1,2 — (2 disks) PC-Accountant and a personal finance manager, □ GAMES 1 — Chess, 3-D Packman, Kong, Spacewar, Janitjoe. and more. Color gr. req'd. □ GAMES 2 — Qubert. Pango, Centipede, Monopoly, Zoarre, and more. Color gr. req'd. □ GAMES 3 — Blackjack (you set rules), Arm Chair QB, and Empire (war game). □ GAMES 4 — Star Trek, the original Collossal Caves ADVENTURE, and Castle., □ GAMES 5 — The HACK adventure game from the universities. Like Rogue. □ GAMES 6 — Pinball, Othello, Dragons, Sopwith (fly one), and more. Color gr. req'd. □ GAMES 7 — Round42 (16 color graphics), Backgammon, Risk, and more. Color gr. req'd. □ LANGUAGE 2 - The renowned SMALL-C compiler and a C interpreter! □ LANGUAGE 3 - 8086/8088 assembler, disassembler, and tutorials. □ LANGUAGE 4 — 370 assembler language on the PC! A must for IBM 370 users. □ LANGUAGE 5 — Turbo Pascal interactive debug, pop-up help, formatters, etc. □ MUSIC 1 — Many clever tunes, and an excellent color graphics music editor. □ ORGANIZER 1 - DESKMATE, a sidekick clone, and the JUDY calendar program. □ ORGANIZER 2 — Menu driven project management using critical path scheduling. □ ORGANIZER 3 - The PC-OUTLINE windowing outline editor/thought organizer. □ PICTURES 2 — High res digitized graphics pictures. Color graphics required. □ PINUP 2 — Provocative high res digitized graphics pinups. Color graphics required. □ PRINTER 1 — Font and sideways utilities, spoolers, banner makers, and more. □ SPREAD 1 — The PC-CALC spreadsheet program. □ UNIX 1 — A Unix command shell and various Unix commands for DOS. Emacs, etc. fj UTILITIES 1 — A collection of invaluable general purpose DOS utilities. A must, □ UTILITIES 2 — More invaluable general purpose utilities including NEWKF^Y. □ UTILITIES 3 — A comprehensive set of debugging and diagnostic utilities. □ UTILITIES 4 - The Ultra File Utilities; Norton-like utilities for diskettes. □ WORD 2 - Waterloo Script (like IBM's SCRIPT) text formatter for the PC. - NEW (LATEST) RELEASES - [7] COMM 4,5,6,7 - (4 disks) Latest RBBS Bulletin Board System 14.1 A. fT] DATABASE 1,2 - (2 disks) File Express 3.7, menu driven database manager. □ EDUCATION 1 — Interactive DOS tutorial for new PC users. Makes learning DOS painless. □ LANGUAGE 1 — The artificial intelligence languages LISP (XLISP 1.6) and PROLOG. □ LANGUAGE 7 — Pascal interpreter/compiler. Great for learning/debugging Pascal. □ PRINTER 2 — Letter quality print for your Epson compatible printer. □ WORD 1 - PC-WRITE 2.6. a powerful and complete word processing system. □ WORD 3 - The PC STYLE writing style analysis program. Cost of Disks CA Res 7% Tax . Ship/Handling _ Total Enclosed $1.00 I MicroCom Systems V^ P.O. Box 51657, Palo Alto, CA 94303 OCTOBER 1 986 • BYTE 237 We Dared TbG Beyond RAM. FEATURES THE KACHE BOARD Intelligent host adapter in- terface for hard disk drive. COMPATIBILITY Apple II+, lie and He enhanced systems. Most SCSI hard disk drives. KEYfEATURES Cache Memory-replaces mechanical disk access with electronic data transfer. Z-80 processor-Maintains 256K of "most frequently accessed data" in real cache memory. Automatic save function minimizes data loss. DMA-TYansfers data faster than RAM. Cuts booting time in half. ATTENTION APPLE II USERS: The Kache Board is an intelligent host adapter interface for hard disk drives. KACHE BOARD DEVELOPMENT It took over two years of research and development and long hours of testing to make this product a reality. Ohio Kache Systems dared to go beyond RAM to bring hard disk users a new standard in performance — The Kache Board. SUPERIOR TO RAM It's superior to RAM disk, thanks to the use of Cache Memory, Direct Memory Access (DMA), and an on-board microprocessor. When you combine these features with the performance of hard disk drives, you're looking at an overall 25%-30% decrease in access time and the virtual memory environ- ment of a minicomputer such as the VAX. OKS, Kache Board and the OKS logo are trademarks of Ohio Kache Systems, Inc. Apple Is a registered trademark of Apple Computers. Inc. IBM is a registered trademark of Internationa] Business Machines, Inc. Sider is a trademark of first Class Peripherals. Inc. VAX is a trademark of Digital Equipment Corp. KACHE BOARD PERFORMANCE Load Time Run Time Save Time ■ Kache Board Performance RAM Performance ■ Apple Performance with Hard Disk Drive ■ Apple Performance continuously increasing performance As more data files reside in Cache, the performance of the Kache Board continues to improve beyond that of RAM disk. An increasing number of disk access requests are replaced by electronic data transferfrom "real" cache memory (see graph above). Inquiry 214 AVAILABLE SOOPI Available soon: Kache Boards for IBM and IBM compatible systems. DIRECT FROM DEVELOPER The Kache Board is available exclusively from Ohio Kache Systems on a direct mail basis only. For more information on the Kache Board write for our free brochure. Or call us toll free at: 1-800-338-0050 Wethinkyoul! be as excited about this new product as we are! Ohio Kache Systems Corp. 4166 Little York Road Dayton, Ohio 45414-2566 515-890-3913 ©Ohio Kache Systems is a developer of computer enhancement products. SYSTE EVIEW The Compaq Portable II by Stan Miastkowski The Compaq Portable II is a slimmed-down version of the Portable 286 with several ex- tras that will particularly at- tract business users. There are four configurations of the Portable II. The Model 1 in- cludes a single one-third- height 360K-byte floppy disk drive and 2 56K bytes of RAM; the Model 2 includes two floppy disk drives and 2 56K bytes of RAM; the Model 3 has a single floppy disk drive, a 10-megabyte hard disk drive, and 640K bytes of RAM; and the Model 4 has a single floppy disk drive, a 20-megabyte hard disk drive, and 640K bytes of RAM. Prices range from $3499 to $4999. The unit 1 used for this review was a Model 3. Features Except for the disk drives and RAM, all four Portable II models are full-featured. In addition to the 80286 processor (running at either 6 MHz or 8 MHz), the system has a real-time clock, an RS-232C asynchronous communications inter- face, a parallel printer interface, and a built-in 9-inch green phosphor dual- mode monitor that displays both text and graphics. The monitor board pro- vides output for RGB and standard composite NTSC video monitors. It a/so provides RF modulator output for hooking up the Portable II to a standard television set. The major selling point of the Por- table II is its size and weight. At IVi inches high by 17/> inches wide by 14 inches deep, the Portable II is almost a third smaller than the original Com- paq Portable and the Portable 286. This is a substantial size reduction An 8-MHz IBM PC compatible in a compact, full-featured unit considering all the computer's electronics. In addition to size, Compaq de- signers have also trimmed the unit's weight. Depending on the model, the Portable II weighs between 231/2 and 26/ 5 pounds. By comparison, the Compaq Portable 286 weighs 30/2 pounds, and the Compaq Portable weighs 28/2 pounds. Inside the Case With the cover removed, it's obvious that the Portable II is primarily a mechanical and engineering exercise in the reduction of space and weight. The system is modular, and taking it apart is time-consuming, though not difficult. Still, the modular design lends itself to easy upgrading (see below). Removing a panel at the top rear of the system reveals the expansion slots and part of the motherboard. The Por- table II has four expansion slots. Depending on which model you have, the first three-quarter-length 1 6-bit slot is used by Compaq's floppy-only or floppy/hard disk controller card. The sec- ond slot (which is 8-bit) contains a full-length Com- paq video board. This leaves two full-length slots for ex- pansion; one is 8-bit, and the other is 16-bit for IBM PC AT-compatible circuit boards. The video display tube, its associated electronics, and the system power supply are located under another solid panel that should only be removed by computer ser- vice personnel. The com- ponents there are placed to take advantage of the airflow from the power supply's fan. The fan does a more than adequate job. I left the Portable II on for more than a week and the system never even became warm to the touch. The fan is also very quiet. Compaq says the power supply is designed for a steady 120- watt load and can handle a peak drain of up to 165 watts. Next to the power supply is a small empty space into which your dealer can install an optional $89 power-switching board that automat- ically senses whether the Portable II is plugged into 120-volt or 220-volt (continued) Stan Miastkowski (P.O. Box 548, Peter- borough. NH 03458) is a freelance writer, northeast bureau chief for Newsbytes, and editor in chief of the McGraw-Hill Micro- computer Handbook. OCTOBER 1986 'BYTE 239 REVIEW: COMPAQ PORTABLE II Compaq Portable II Company Compaq Computer Corporation 20555 FM 149 Houston, TX 77070 (800) 231-0900 Size 7V2 by 17V2 by 14 inches; Model 1: 23 1 /2 pounds; Model 2: 25 1 /2 pounds; Models 3 and 4: 26 1 / 5 pounds Components Processor: 80286, 6 MHz or 8 MHz (switchable) Memory: Models 1 and 2: 256K bytes on the main system board; Models 3 and 4: 640K bytes on the main system board; up to 2.1 megabytes without using an expansion slot; up to 4.1 megabytes using the 16-bit expansion slot Mass storage: Model 1: One one-third- height 360K-byte 5 1 /4-inch floppy disk drive; Model 2: Two one-third-height 360K-byte 5 1 /4-inch floppy disk drives; Model 3: One one-third-height 360K- byte 5 1 /4-inch floppy disk drive and one 10-megabyte hard disk drive; Model 4: One one-third-height 360K-byte 5 1 /4-inch floppy disk drive and one 20-megabyte hard disk drive Display: Built-in 9-inch green phosphor dual-mode; switchable text/graphics modes Keyboard: Modified IBM PC AT layout Expansion: All models: One IBM PC- compatible slot and one IBM PC AT- compatible slot I/O Interfaces: Parallel printer; 9-pin RS-232C interface; RGB monitor; composite NTSC video; RF modulator; light pen Optional Software MS-DOS version 3.1: $85 Documentation Operations Guide Technical Reference Guide Price Model 1: $3499; Model 3: $4799; Model 2; Model 4: $3599; $4999 SYSTEM FEATURES MEMORY SIZE (K BYTES) DISK STORAGE (K BYTES) 200 400 600 800 1000 400 800 1200 1600 2000 L 256/640 256/640 140/280 I DISK ACCESS IN BASIC (IN SECONDS) WRITE 20 40 60 READ 20 40 60 80 100 36 l SIEVE BASIC PERFORMANCE (IN SECONDS) CALCULATIONS 50 100 150 200 250 50 100 150 200 250 I -+ 245 I SYSTEM UTILITIES (IN SECONDS) 40K FORMAT/DISK COPY 40K FILE COPY 10 20 30 40 50 10 20 30 40 50 5.8 5.8 LOAD SPREADSHEET (IN SECONDS) RECALCULATE 5 10 15 20 25 5 10 15 20 25 ■■2.8 COMPAQ PORTABLE II IBM PC ■ APPLE HE The Memory Size graph shows the standard and optional memory available for the computers under comparison. The Disk Storage graph shows the highest capacity for a single floppy disk drive and the maximum standard capacity for each system. The graphs for Disk Access in BASIC show how long it takes to write and then read a 64K-byte sequential text file to a blank floppy disk, (For the pro- gram listings, see BYTE's Inside the IBM PCs, Fall 1985, page 195.) The Sieve graph shows how long it takes to run one iteration of the Sieve of Eratosthenes prime-number benchmark. The Calculations graph shows how long ittakesto do 10,000 multiplication and 10,000 division operations using single-precision numbers. The System Util- ities graphs show how long it takes to format and copy a disk (ad- justed for 40K bytes of disk space) using the system utilities. The Disk Copy test measures the time it takes to copy a 40K-byte file from one floppy disk to another. On hard disk systems, the test measures the time to copy from the hard disk to the floppy disk. The Spreadsheet graphs show how long it takes to load and recalculate a 25- by 25-cell spreadsheet in which each cell equals 1.001 times the cell to its left. The spreadsheet used was Microsoft's Multiplan. Tests were run using the default 8-MHz clock speed. 240 B YTE • OCTOBER 1986 REVIEW: COMPAQ PORTABLE II power. This option would be handy for international users. Memory The 80286 processor is barely visible under the video board; the socket for an optional 80287 arithmetic copro- cessor is easily accessible. The rest of the motherboard is hidden under the circuit boards, disk drives, and monitor/power supply case. A total of 128K bytes of RAM is soldered into the board, and there are 18 sockets for RAM chips. In Models 1 and 2, these sockets are filled with 64K-bit chips for a total of 2 56K bytes of memory; Models 3 and 4 have 2 56K- bit chips for a total of 640K bytes. Adding RAM isn't a problem; you simply turn the unit over and remove another panel. There you can insert a special Compaq memory-expansion board that uses a pin connector in- stead of an edge connector. The board comes with 512K bytes of RAM, and you can configure it for up to 1 536K in 5 12K increments without tying up an expansion slot. You can also upgrade the unit to 4.1 mega- bytes of RAM by installing a 2048K- byte Compaq memory-expansion board into the 16-bit expansion slot. Keyboard Compaq describes the Portable M's 84-key keyboard as having a modified IBM PC AT layout. The full-size key- board is compact because the func- tion keys are at the top rather than on the left. You can adjust the audible key clicks from full volume to off. Disks The Model 3 that I reviewed had a single 360K-byte floppy disk drive and a 10-megabyte 3 /2-inch MiniScribe hard disk drive. The hard disk "floats" on four small rubber shock mounts that are designed to cushion the hard disk. / accidentally dropped the ma- chine 2/2 feet onto a carpeted floor. The case wasn't marred, and the g forces of the impact were well ab- sorbed by the shock mounts. The Por- table II worked perfectly after the drop. Expandability The Portable 11 is easy to upgrade. With the exception of the automatic power-switching board, which must be installed by an authorized service center because of Federal Communi- cations Commission and Underwriters Laboratories regulations, you can easily upgrade the Portable II your- self. Because of all the screws, panels, and parts that you must remove, the process may be time-consuming, but the Portable Il's Operations Guide has excellent instructions complete with copious photographs for both dis- assembly and reassembly. If you have a single-drive Model 1 you can easily add a second 360K- byte floppy disk drive or a hard disk. The most time-consuming task is up- grading the motherboard RAM from 2 56K to 640K on a Model 1 or Model 2. The change requires you to remove expansion boards and the stand- alone enclosure that holds the disk drives and replace eighteen 64K-bit RAM chips with 2 56K-bit chips. Com- paq charges $150 for the 512K-byte chips. Performance As you might expect, the Portable II runs software very quickly, especially when you use the default 8-MHz clock speed. Compaq includes a list of several hundred software packages that run on the Portable II. I tested a dozen different programs, some of which were not on the list. I had no problems whatsoever. All ran at 8 MHz. You might expect that the 105-mil- lisecond access speed of the 3!/2-inch hard disk drive would provide slow performance compared to the 30-mil- lisecond access speed of the full- height hard disk in the Compaq Por- table 286. However, the BYTE Disk Access benchmarks showed very lit- tle difference (see page 240). I found it hard to adjust to the 9-inch green phosphor screen, perhaps because I am used to a full-size moni- tor. I had to sit closer to the screen than 1 normally do. I also found that the adjustable feet that tilt the Por- table II upward were not sufficient on a standard-height desk. I finally placed the machine's documentation underneath the monitor to provide a better viewing angle. In addition, the two adjustable feet are so sharp that, with the weight of the entire system resting on them, they gouged my teak computer table. I recommend placing the system on a harder work surface. Software The only software that comes with the Portable II is a demonstration disk that gives an animated, graphics-filled introduction to the system's features and options. Compaq sells MS-DOS version 3.1 for $85. In addition to the usual utilities and BASICA. MS-DOS version 3.1 includes several custom utilities. One utility controls the volume of the keyboard clicks; an- other regulates the speed of the pro- cessor. You can control these func- tions by pressing a series of keys, but the utilities allow you to control the functions by using batch files. The MS- DOS disks also include an extensive diagnostics program. The tests fully check out the system, but they use cryptic test numbers with no in- progress messages. DOCUMENTATION The Portable II comes with an Opera- tions Guide. It is a bit short on detailed information, although it is expensively produced and full of photos. The sec- tions on upgrading the system are particularly well done. The Technical Ref- erence Guide may be available by the time you read this review. The MS-DOS manuals are complete rewrites of the IBM PC versions. They're much improved and do an ex- cellent job of explaining the in- tricacies of the more esoteric MS-DOS commands. Summary The Compaq Portable II is solidly con- structed and compatible with the vast majority of software that runs on IBM PC systems. Though far from forging any new technological ground, it's a fine example of how modular design can provide a compact, full-featured system that is easy to expand and service. Unfortunately, the price of the Por- table II is very high. But if you can af- ford the price and want the portabili- ty, you won't go wrong with the Por- table II. ■ OCTOBER 1986 • BYTE 241 HERE'S THE DEAL: PORTABLE/DESKTOP COMPUTER SERIES MPC-160V * FULLY IBM-PC COMPATIBLE * MS-DOS 3.1 * TWO SERIAL AND ONE PARALLEL I/O PORT * RGB AND COMPOSITE MONO- CHROME OUTPUTS * 512K RAM, RTC ON BOARD * WEIGHS 11 POUNDS * ONE 5 1/4" FLOPPY DISK DRIVE OPTIONS. * SECOND FLOPPY DRIVE * 3-SLOT EXPANSION BOX * MONOCHROME OR RGB MONITORS * 640K RAM * HANDSOME CARRYING BAG TITAN SERIES MPC-2100 * IBM PC/AT COMPATIBLE * 80286 CPU, SOCKET FOR 80287-8 ' SOFTWARE-SELECTABLE 8- OR 6-MHz CPU SPEEDS * MS-DOS 3.2 AND GW BASIC ' 640K RAM ON BOARD, EXPAND- ABLE TO 1MB * ONE 1.2 MB FLOPPY DRIVE * SIX AT SLOTS AND TWO XT SLOTS * 84-KEY AT-STYLE KEYBOARD * 3 92- WATT POWER SUPPLY * REAL-TIME CLOCK SERIES MPC-160T * IBM PC/XT COMPATIBLE ' SOFTWARE SELECTABLE 8/4.77 MHz CPU * MS-DOS 3.2 * 640K RAM * ON-BOARD FLOPPY DISK CON- TROLLER * ONE 5 1/4" FLOPPY * 84-KEY AT-STYLE KEYBOARD * 135 WATT POWER SUPPLY * REAL-TIME CLOCK FAMOUS-NAME QUALITY, A GREAT PRICE, AND NATIONWIDE SERVICE. THAT'S THE DEAL. THERE ARE CHEAPER COMPUTERS THAN MITAC, BUT THEN... ...we don't make cheap computers. Mitac takes pride in maintaining some of the highest quality control and quality assurance standards in the industry. * THERE ARE MORE FAMOUS COM- PUTERS THAN MITAC, BUT THEN... ...if you buy a famous name, there's a good chance you're buying Mitac anyway. Mitac has been supplying major computer and telecom- munications manufacturers with high-quality equiptment since 1974, producing over forty thousand systems annually. LOOK AROUND. YOU WON'T FIND A FINER COMPUTER AT A FAIRER PRICE THAN MITAC. What Mitac is offering is this: Major brand quali- ty, a fair price, plus the support of Mitac's nationwide service network — we stand behind everything we make. That's the deal. If this makes good sense to you, do the sensible thing and call the toll-free number below for the name of the Mitac dealer in your area. * Each Mitac computer undergoes a total of seventy-two hours* burn-in and forty-eight quality auditing processes before release. mitac When reliability is a decisive factor DEALER INQUIRIES WELCOME NATIONWIDE SERVICE! American Mitac Corp. 3385 VisoCt, Santa Clara. C A. 95054. TEL: (408) 988-0258. 988-7508; TOLL FREE: 1(800) 321-8344 TLX: 910-338-2201 MECTEL; FAX: 408-980-9742. Mitac Inc. No. 585 Ming Sheng E. Rd., Taipei, Taiwan, ROC. TEL: (02) 501 8231; TLX: 20261 MECTAC. 11942 TAIAUTO; FAX: 886 2-501-4265. IBM. PC. PC/XT, AND PC/AT are registered trademarks of International Business Mcichines, Inc. MS-DOS and GW BASIC are registered trademarks of Microsoft Corp 242 BYTE • OCTOBER 1986 Inquiry 203 HARDWARE REVIEW Four ^-inch Tape Backup Units by Malcolm C. Rubel Hard disk technology has progressed to such an extent that you can purchase a 20-megabyte disk drive on an expansion card or a 140- megabyte disk drive for under $3 300. To enter this world without data backup is to invite disaster. A l /4-inch cartridge backup system provides one of the best alternatives for averting catastro- phe. I will compare two QIC (Quarter- Inch Committee) 60 drives, the Ifec- mar QIC-60 and the Sysgen Smart QIC-File, to the Tkllgrass TG-4060, which uses the PC/T (Personal Com- puter l^pe) standard, and the Alloy FT-60, which uses its own storage pro- tocol. Testing was done on an IBM PC AT with 512K bytes of memory and a Priam 60-megabyte hard disk with a 30-millisecond average seek time. For a look at an alternative to tradi- tional tape backup systems, see the text box 'Alpha Microsystems' Video- trax— A VCR Alternative?" on page 246. Four backup systems that have a variety of features and capabilities on with the computer. The stiff piggy- back connector does not make good contact, so Sysgen supplies an extra cable to be used between the system unit and the faulty plug. I wish Sysgen had simply redesigned the plug in- stead of adding yet another cable to the back of my machine. The l&llgrass unit is the only one that is too large to sit on top of the computer next to the monitor. The Alloy and l^llgrass units use round cables instead of the thick and near- ly unbendable ribbon cables used by the other two units. I had no problems with any of the user's manuals. I found that I could start using each system with only a minimal time investment. Starting Up Setting up the tape backup units was not difficult. The biggest problem in- stalling the units was removing the five screws from the back of my IBM PC AT. All four units require a con- troller board, and all but the Alloy board will fit in a short slot. (Note that the Alloy system doesn't require the optional $195 controller card if you use it with a standard IBM PC or XT, as it will run on the external connec- tor of the floppy disk controller.) The power arrangement for the Sys- gen unit was less than satisfactory. As part of its automatic backup philoso- phy, the unit takes power from the sys- tem power outlet so that it is turned Options With the exception of the Sysgen unit, you can get a hard disk drive as an extra-cost option with your unit. Tfec- mar has a 20-megabyte option, Alloy offers 20- and 40-megabyte drives, and Tkllgrass has 25-, 35-, 50-, and 80- megabyte options. The Ikllgrass drives run from the same controller board as the tape unit, but the Alloy and Tfecmar systems require a sepa- rate card for their hard disks. Tecmar also offers its tape drive as an inter- nal unit for the IBM PC AT. Features All four systems provide for image backup/restore, file-by-file backup with the backup of modified files, and backup using wild cards, hidden files, and files in sub- directories as options. All the units except the Tkllgrass TG-4060 allow you to specify a date and back up only the files created or modified after that date. All the units allow you to get a directory listing of what is on the tape. With file-by-file backup, all the units allow you to restore either whole directories or specific files and re- create subdirectories if necessary. The Tecmar unit will restore an image backup to a different disk drive with bad sectors as long as the new drive has the same or a greater number of good sectors. All four units come with software that has a command language used to control the operation, and all but the T&llgrass unit also offer a menu- driven program. The menu programs are not suitable for anything but the simplest procedures, and I quickly went to the command language with each of the units. You can build batch files with each of the drives to make repetitive backup procedures easier. The Sysgen and Alloy drives even allow you to back up automatically at specified times, should you so desire. I would prefer writing a batch pro- gram to invoke a backup session before leaving my computer rather than having the session start just as I was about to do some time-critical work on a spreadsheet model. (continued) Malcolm C. Rubel is president of Performance Dynamics Associates (305 Madison Ave.. New York, NY 10165). He is also coauthor of The Performance Guide to Word Processing Software. OCTOBER 1986 'BYTE 243 REVIEW: TAPE BACKUP UNITS Name QIC-60 Smart QIC-File FT-60 Type 60-megabyte 1 A-inch tape backup drive (QIC 60 standard) 60-megabyte 1 /4-inch tape backup drive (QIC 60 standard) 60-megabyte 1 /4-inch tape backup drive, driven from floppy controller Company Tecmar Inc. 6225 Cochran Rd. Solon, OH 44139 (216) 349-1009 Sysgen Inc. 47853 Warm Springs Blvd. Fremont, CA 94539 (415) 490-6770 Alloy Computer Products Inc. 100 Pennsylvania Ave. Framingham, MA 01701 (617) 875-6100 6 by 5 1 /4 by I6V2 inches Size 7 by 4 by 16 inches 2 by 6 by 10 inches Necessary Hardware IBM PC or compatible; 256K bytes of RAM (to be menu- driven); 192K bytes of RAM (command-driven); one open expansion slot IBM PC or compatible; 192K bytes of RAM; one open expansion slot IBM PC or compatible; 256K bytes of RAM Options 20-megabyte hard disk drive; internal mount (for the IBM PC AT) None 20- or 40-megabyte hard disk drive; controller card (for IBM PC AT) Documentation 130-page spiral-bound installation and operations manual 170-page installation and operations manual, sized to fit IBM-type binder 55-page spiral-bound installation and operations manual Price $2144 $1495 $995 ■' . *- ; I- '» . ■ All four units use the standard DC 600A tape (600 feet long. M inch wide), and all hold roughly 60 mega- bytes of information. Except for the Sysgen unit, each unit's tape has to be formatted before use, and the Tfec- mar tapes have to be reformatted every time you reuse them. In con- trast, once you've formatted the 1&11- grass and Alloy tapes, they can be re- used indefinitely. Real-world Use Everyone's working environment is different, so I did not attempt to emulate any specific environments in my benchmark tests. You can more easily approximate the capabilities of the different units for your specific needs by interpolation of the results of the several benchmark tests. Unlike floppy disks, magnetic tape is a serial storage medium. It takes more time to get to a specific point on a tape than it does on a disk sim- ply because a greater distance must be covered. lust to get from one end of a DC 600 A tape to the other at 90 inches per second (a fast speed for tape) takes 80 seconds, a long time for those who are used to access times measured in milliseconds. How each manufacturer deals with this makes a big difference in how its unit works in the real world. In storing data, two different ap- proaches are used. The Tecmar and Sysgen units conform to the QIC 60 standard and write each backup ses- sion in a volume, which is headed by a directory for that volume. Each volume starts where the last one left off, so the time required to read or write data increases as a tape reaches its capacity. Because of this arrange- ment, I had to wait for three or more minutes to get directory listings from a tape that was 2 5 percent full. The l&llgrass and Alloy units, on the other hand, each use their own type of disk directory that contains all the necessary information at the begin- ning of the tape. Files can be directly accessed from there, saving a con- siderable amount of time. If you are only going to use tape as a protection against disk failure, the two QIC 60 units provide the best backup speed. The Ifecmar drive is superior to the Sysgen model for two reasons: It is much faster at backing up selected files (either modified or time-specified), and it will accom- modate 2 56 backup sessions on a single tape compared to the Sysgen unit's 64 sessions. 244 BYTE- OCTOBER 1986 REVIEW: TAPE BACKUP UNITS TG-4060 Vldeotrax 60-megabyte 1 /4-inch tape Approximately 20-megabyte backup drive (PC/T standard) VCR tape backup unit (proprietary format) Tall grass Technologies Alpha Microsystems Corporation 3501 Sunflower Ave 11100 West 82nd St Santa Ana, CA 92704 Overland Park, KS 66214 (714) 957-8500 (913) 492-6002 5 1 A by 9 by 13 1 A inches 4 1 /2 by 17 by 14 inches IBM PC or compatible; 256K IBM PC or compatible; 256K bytes of RAM; one open bytes of RAM; one open expansion slot expansion slot 25-, 35-, 50-, and 80-megabyte Customized VCR unit drives 154-page installation and 150-page installation and operations manual in three-ring operations manual, loose pages binder to fit IBM-type binder s $1995 $595 for controller board and software $1395 for complete system If you lack the discipline to type BU to initiate a backup batch file, the Sys- gen unit with its automatic backup feature is probably better for you. If, however, you do not want to use the automatic backup procedures, you have to get rid of the AUTOEXEC.BAT file that the installation creates and figure out how to invoke the backup program for your needs. Sysgen assumes that everyone will want to back up their data automatically, and the accompanying information on manual operation is sparse. The Tkllgrass unit uses the PC/T pro- tocol. The system operates more like a disk drive than a tape unit. The directory is at the beginning of each tape volume and, unlike the other units, when you update an existing file, the older version of the file is overwritten. This makes restoring a file from tape much easier, since only the most recent update is on the tape. The l&llgrass software allows you to get directory listings of your hard disk drive and the tape volumes; make, change, and remove directories; re- name and delete files in existing tape volumes and drives; print a file; and show directory trees. These opera- tions, not unlike their DOS counter- parts, make PC/T a more flexible tape standard than the others I tested. | Editor's note: Tallgrass has recently an- nounced version 2. 1 of its tape backup soft- ware, which lets you run applications from the tape in the event of a hard disk crash. The software evaluated in this review is version 1.3.| Drawbacks The Tfecmar QIC-60 does not allow you to stop a backup in progress. If you do stop the backup procedure, you have to erase the entire tape before you can back up additional data. Also, you cannot delete data selectively; instead, you must erase the entire tape. This means that you must use two tapes to ensure data security. The software looks for COM- MAND.COM in drive A, which is a strange place to look when you have a hard disk system. In addition, the fan on the Tkcmar unit is the noisiest of the systems 1 tested. The Sysgen Smart QIC-File, with its 64-session limitation, may cause problems in some circumstances. I did not like the way the automatic backup software worked. The soft- ware is designed to be foolproof, but it has too many places where a per- son can cause damage to the system. For instance, if you have the wrong tape in the drive when you turn on the machine, the backup program asks you if you want to delete all the infor- mation on the tape so that the tape can be used. If you mistakenly say yes, you could delete the only copy of in- formation just removed from disk to tape. Like the Tfecmar unit, Smart QIC- File is slow at showing directories. The Alloy FT-60 is not speedy as the benchmark tests show. This is because the unit performs a separate verification pass over the data during the backup procedure. Restoring data using wild cards is even slower because the search continues to the end of the recorded tape for more files. When you restore a single file, the search stops at the first occur- rence of the file. If you have a later version of that file, it will not be restored unless you specify the prop- er backup session number. As with the QIC 60 units, the Alloy FT-60 does not let you delete files selectively; you must erase all data on the tape. Also, the unit will not let you restore files to a different drive. For example, a file backed up on drive C cannot be restored directly to drive D. The biggest problem with the 1&11- grass TG-4060 is that you are limited by directory size to 509 files in a tape volume. This is not as bad as it seems because a tape can be used either as a single volume of 60 megabytes or [continued) OCTOBER 1986 • BYTE 245 REVIEW: TAPE BACKUP UNITS as four separate volumes of 1 1 mega- bytes each, with a fifth volume of 16 megabytes. The directory size limita- tion (if it exists for your situation) can be dealt with by carefully selecting directories and subdirectories to be backed up in each of five tape volumes. A 2 500-plus file limit is far less restricting. Data Integrity The only data problem I encountered was with the Alloy FT-60. The unit blocked off bad sectors when it for- matted the tape (just as DOS formats a floppy disk), but during my first practice session the tape verification pass indicated there were bad blocks within some files and that the system was rewriting the suspect files at the end of the tape. When I checked the rewritten files, I found that although the filenames were right, the actual files had not been copied; two duplicates of the last file in the direc- tory had been written instead. Since the newly found bad blocks were now reserved, I did not get this error again. Five phone calls to Alloy finally put me in contact with the technical peo- ple, who had no explanation. The other three units performed without a hitch through all the testing. The Tecmar and Sysgen units imme- diately rewrote the data block if there were any problems. The l^llgrass unit provides data security through auto- matic error correction, a three-part data block structure that includes a Alpha Microsystems' Videotrax ~ A VCR Alternative? Alpha Microsystems' Videotrax is an alternative to traditional tape backup systems. Videotrax comes in two parts: a controller card and a VCR unit. You can buy the controller card separately for $595 and use your own VCR unit, which you must operate manually, or you can purchase the system complete with a VCR for $1395. The idea of being able to store up to 80 megabytes of information on a $5 video cartridge is very appealing Unfortunately, the appeal and the reali- ty are two different things. To begin with. Alpha Microsystems acknowledges that you should record at the fastest possible tape speed to ensure better data integrity. The com- pany also gives a specific warning about using the ultra-long-playing mode. A two-hour tape playing at nor- mal speed and making a file-by-file backup with the data security default of 10 rewrites (see below) will hold be- tween 10 and 30 megabytes of data depending on the number of files you are backing up. The greater the number of files, the lower the total storage capability of the unit will be. Videotrax's menu-driven backup software allows you to back up several drives or directory sets in a single ses- sion, but you can record only one backup session on a tape. When you use the tape again, the unit writes over existing information. The unit compensates for the in- herent unreliability of VCR recordings by writing each data block from 4 to 40 times with a default value of 10 rewrites. The more rewrites there are, the less information a tape will hold but the less chance you will have of any hard (unrecoverable) errors. Compared to traditional tape backup units, Videotrax is slow. I ran the benchmark tests on the Videotrax unit using the same evaluation files used for the four 14 -inch units. The results are shown in table A. Compare these times to those for the tape backup units in table I. Although the Videotrax unit will back up modified files, it will not do this on the same tape as the master set. You have to use a separate tape for this. Table A: Benchmark test results for the Videotrax backup unit, minutesseconds. Backup time Times are in Restore time 200 1K-byte files 200 10K-byte files 20 100K-byte files 2 1000K-byte files 422 files (6.2 megabytes) 9:23 14:42 7:13 6:30 39:30 9:06 14:18 7:01 6:17 37:01 With this approach you can quickly run up a big tape bill. The Videotrax software offers you the option of verifying that the infor- mation you have written to tape can be read, but this option does not ac- tually compare the tape to the disk files. In additon, using it increases the backup time by a factor of two. To back up 80 megabytes of data with Videotrax. you would need just a few large files and record on long play. The backup session would last four hours. An alternative would be to reduce the number of data rewrites, but that would increase the probability of hard errors. When you start using a new tape, the Videotrax manual strongly advises you to certify the tape. Tape statistics at the end of the certification include hard er- rors and soft (recoverable) errors. Data will be lost if there are hard errors. It takes four hours to certify a 120-minute tape. Alpha Microsystems also suggests that you calibrate the VCR unit before using it. to optimize performance. The calibration process takes two and a half hours but is worthwhile. If you do not take the time to do this, or if you are using your own VCR, you will have to manually work the controls to find files to restore. In conclusion. I cannot recommend the Videotrax unit as an alternative to traditional tape backup units because, at $l 395. the system is not much less expensive than many of the better (and faster) alternatives. 246 BYTE* OCTOBER 1986 REVIEW: TAPE BACKUP UNITS parity block to allow for automatic re- construction of unreadable data. The program also allows for a verification pass on all backups. If you specify this option, the times are doubled. Of the units tested, the l^llgrass unit seemed to have the best data securi- ty system. Other than the Alloy prob- lem. I experienced no data errors in any of my testing. Standards and Compatibility Probably the only thing that can be said about standards and compatibili- ty is that they do not exist. The QIC standard deals only with how data is written onto a tape, not with how that data is read once there. The marketing people at each company differentiate their product from the others through software features that make the data recorded on their unit functionally useless on a different machine. The Sysgen tape, for example, was unread- able in the Tkcmar unit and vice versa. The Alloy FT-60 uses its own type of directory and formatting to store and retrieve data. The PC/T standard on the l^llgrass TG-4060 stores roughly the same 60 megabytes per tape as the Alloy unit, but it uses 1 1 tracks and a completely different data format. As the PC/T protocol is more like an operating system, a tape for- matted on one machine should be able to run on any other that uses this system, but it probably won't. Beyond these standards lie many others. Recently the QIC approved a standard for 120 megabytes on a DC 600A cartridge. There are new stan- dards for DC 1000 tapes and for back- ing up using floppy disk controllers. Some companies have "proprietary standards" (whatever that means). If you are interested in moving data from one tape unit to another (i.e., using the same tapes in two different units), you would probably be wise to buy two or more units of the same make and model. It would also be wise to make sure that the tape is readable between the units, since things like head alignment might still give you data-reading problems. Benchmark Procedures A series of five different sets of files were used to perform the benchmark Table 1: Results of benchmark tests performed on the four tape backup units. Times are in minutes.seconds. Tecmar Sysgen Smart Alloy Tallgrass QIC-60 QIC-File FT-60 TG-4060 Tape speed (inches per second) 90 90 39 75 Number of tracks 9 9 12 11 Tape format time 2:52 N/A 84:30 116:00 200 files, 1K byte each Back up 1:21 3:15 2:15 1:27 Restore 2:10 9:20 10:30 2:05 Back up changes 3:25 2:27 3:36 1:00 200 files, 10K bytes each Back up 2:33 2:53 5:21 5:11 Restore 3:40 5:03 9:40 11:10 Back up changes 1:03 3:29 3:55 3:47 20 files, 100K bytes each Back up 2:31 2:45 7:50 3:36 Restore 2:23 2:44 9:25 3:45 Back up changes 0:57 3:22 4:00 3:02 2 files, 1000K bytes each Back up 3:19 3:30 6:41 3:18 Restore 2:58 3:31 8:17 3:19 Back up changes 1:16 3:38 6:13 1:50 422 files, 6.2 megabytes total Back up 7:05 10:09 15:15 14:09 Restore 14:56 19:06 19:42 24:08 File access times Minimum time to restore 1 file 0:16 0:27 0:46 0:11 Maximum time to restore 1 file 3:04 4:22 3:40 3:35 tests. The five file sets do not attempt to model any specific use, but were constructed to give meaningful data points that each individual can inter- pret for a specific situation. Each of the first four file sets con- tained identical files of IK, 10K, 100K, or 1000K bytes. The last set consisted of the first four sets combined. The first and second sets contained 200 files each, the third contained 20, the fourth had 2, and the last set had 422 files, for a grand total of 6.2 mega- bytes. I performed three tests on each of the file sets. Each set of files was backed up in order on a single tape in separate operations. The hard disk files were then erased and the file sets were individually restored from tape. Every tenth file was then modified by I byte, and the backup tests for each of the modified data sets were then performed on the same tape. The last set of files (6.2 megabytes) was not tested for modified files. The minimum time to restore a file was the time that it took to restore the first file on the tape. The maximum time was determined through trial and error. See table l for complete bench- mark results. Conclusions The environment in which you use a tape backup unit really determines which of the four units reviewed here would be most suitable for your needs. For raw speed, the Tecmar QIC-60 unit is the winner. If a system is to be operated by inexperienced users, the Sysgen Smart QIC-File's automatic backup feature might make it a better choice. If money is a serious concern, the Alloy FT-60, while short on speed, is the least expensive unit. My preference, however, for all- around flexibility and data integrity, is the Tallgrass TG-4060. While it is not the fastest unit, it offers more capa- bilities for more varied operating en- vironments than the other units. ■ OCTOBER 1986 • BYTE 247 Princeton is the best choice in PC monitors. When you're looking for a personal computer monitor, look at Princeton Graphic Systems. Our growing family of high quality personal computer monitors delivers compatibility, brilliant colors, high resolution, and dependability. Whether you're designing sophisti- cated business graphics or number-crunching a financial spreadsheet. That's why Princeton is number one in the minds of more and more personal computer owners every year. For the very best in PC monitors, the choice is clear: Pick the com- pany that's at the top. Princeton Graphic Systems. -i t HX-12E.OurEGA- compatible monitor gives you 64 vivid colors. Extra sharp text and graphic displays. The finest dot pitch (.28mm) of any IBM- compatible enhanced monitor. Nonglare screen. Fully compatible with IBM's™ Enhanced Graphics Adapter (or equivalents). SR-12P. Top-of-the-line analog color monitor features ultra high resolution (640x480). 4 ,096 colors for superb graphics. The finest dot pitch (.26mm) of any PGC-compatible monitor. Laminated nonglare panel. HX-12. High resolution RGB color monitor with .31mm dot pitch gives you better graphics, better text than IBM's Color Monitor (5153). Nonglare screen. Voted "Best in the World" two years running in PC World's "World Class PC Contest". SR-12. Super high resolu- tion RGB monitor with a .31mm dot pitch. Compati- ble with Sigma Designs Col- or 400 board and others. Gives you 400 lines of resolution. Nonglare screen. All monitors come with free data and power cables. MAX-12. High resolution amber monitor. When used with an IBM-compatible monochrome adapter delivers 720 x 350 resolu- tion. With an IBM- compatible color adapter, 640 x 200 resolution with 15 shades of amber. The monitor automatically ad- justs to either card. HX-9/HX-9E. Compact nine- inch high resolution RGB monitor. Perfect for worksta- tions where space is at a premium. Both feature a .28 dot pitch and an etched dark glass screen. Eco- nomic features like a built- in tilt/swivel base, non- glare screen, and a built- in green/amber switch. HX-9E is compatible with IBM's EGA (or equivalents). Visit your local computer store today and ask about our full line of high resolution color and monochrome monitors. Monitors that live up to the Princeton Graphic Systems tradition of quality, performance, and value. __„ w ^ PRINCETON Princeton Graphic Systems, 601 Ewing Street, Bldg. A, Princeton, NJ 08540; (609) 683-1660; TLX 821402PGSPRIN; (800) 221-1490, ext. 1104. IBM is a trademark ot International Business Machines. Inc. Color 400 is a trademark of Sigma Designs. Inc. QuadEGA-t- is a trademark of QuadramCorp. Compaq is a trademark of Compaq Computer Corp. 248 B YTE • OCTOBER 1986 GRAPHIC SYSTEMS AN INTELLIGENT SYSTEMS COMPANY Inquiry 241 SOFTWARE REVIEW MULISP-86 by Robert J. Schalkoff The muLISP-86 LISP devel- opment system is the suc- cessor to muLISP-83 (see "LISP for the IBM Personal Computer" by Jordan Bortz and John Diamant, July 1984 BYTE) and the short-lived muLISP-85. In fact, muLISP- 86 is very similar to muLISP-85, the principal differences being that muLISP-86 has a revised and updated manual and an optional compiler. It is worth noting that muLISP-86 is pro- duced by Soft Warehouse, but it is identical to Microsoft LISP. This review looks at muLISP-86 as compared to muLISP-83 and as a subset of Com- mon LISP. System Operation You invoke the muLISP-86 develop- ment system from DOS via the com- mand A>mulisp . where sys-config is the name of a sys- tem file containing your customized development environment (i.e., the editor, Common LISP library func- tions, the help facility, and perhaps the debugger). The muLISP-86 system contains over 300 primitively defined functions and control variables that comprise the so-called pure LISP. Function and macro libraries, which consist of additional Common LISP and InterLISP subsets, respectively, are included as files of pure LISP source code. The Common LISP li- brary contains over 60 additional functions. Thus, you can achieve either Common LISP or InterLISP pro- gramming functionality by loading the appropriate library files. For example, the LISP-assignment functions set and setq are primitive functions in muLISP-86 and are loaded into user memory when you execute the MU- LISP.COM file. The extremely general and useful sett function, on the other hand, is contained in the Common A customizable LISP with recent enhancements and an optional compiler LISP library (COMMON.LSP), which you have to load separately. In addi- tion, to implement Common LISP ar- rays you have to load both the Com- mon LISP library and a separate li- brary of array-manipulation utilities (STRUCTUR.LSP). You can easily customize the muLISP-86 development system to suit your needs. For example, you could read the editor and an appro- priate subset of one or more library files (your own or those supplied with the program) into the muLISP en- vironment and then save them as one .SYS file that you can load more quickly thereafter. By not loading and saving the entire set of library files, you can save memory for program de- velopment. The updated muLISP-86 develop- ment system contains a useful win- dows feature. Following the opening menu, you can split the screen into two windows and observe LISP source code in one window, the editor window, and the muLISP-86 inter-" preter (the so-called read-eval-print function) in the other window. A single keystroke lets you invoke the inter- preter. To get from the eval loop to the editor, you simply hit Return at the in- terpreter prompt. The windows are particularly useful for tracing func- tions and developing programs incre- mentally. A consequence of this new editor- based development system (in con- trast to the menu-driven muSTAR de- velopment system that accompanied muLISP-83) is that to achieve incre- LISP, mental program develop- ment you have to edit func- tions as separate files, or create a continuously ex- panding file, and you must explicitly invoke the trace and debug facilities (as de- scribed below). For learning prefer muLISP-83's menu- driven environment. The muLISP-86 Editor You can configure the muLISP-86 editor to look like either WordStar or (for those who have used one of the MacLISP variants) EMACS While both muLISP-86 configurations represent subsets of the full editors, they never- theless support the functions you are most likely to use. You can also cus- tomize either editor to map familiar keystrokes into editing functions. Furthermore, both muLISP-86 edi- tors have several handy extensions that aid in editing LISP symbolic ex- pressions. One extension is for the s- expression, which is the basic entity manipulated by LISP and essentially consists of atoms and lists. The edi- tors' list-structure commands are key- stroke combinations that move the cursor around s-expressions and lists in the same way that WordStar and EMACS move the cursor around char- acters, words, and lines. For example, in the WordStar-like editor mode, Esc- D and Esc-S move the cursor forward one s-expression and backward one s-expression, respectively Other key- stroke combinations let you delete and evaluate s-expressions. Since the majority of LISP program editing and [continued] Robert J. Schalkoff (Department of Electrical and Computer Engineering, Clemson Univer- sity, Clemson, SC 29634-0915) is associate professor at Clemson University, where he con- ducts research in image processing and ar- tificial intelligence. OCTOBER 1986 • BYTE 249 REVIEW: MULISP-86 muLISP-86 Company Soft Warehouse Inc. 3615 Harding Ave, Suite 505 Honolulu, HI 96816 (808) 734-5801 Type Programming language Computer IBM PC, XT, AT, PCjr, or compatible; MS- DOS-based systems; 128K bytes of RAM minimum (256K bytes recommended); one floppy disk drive (two floppy disk drives recommended) Documentation 400-page muLISP-86 reference manual; Soft Warehouse Newsletter, 3 issues Price Interpreter $250 Optional compiler $150 Interpreter with optional compiler $350 debugging involves modification of s- expressions, this editing utility is quite convenient. The muLISP-86 editor also provides two other handy features for creating and modifying LISP code. One is the superparens (]), which automatically inserts closing parentheses and relieves you of keeping track of the number of opening parentheses. This feature is often found in larger LISP implementations and, while conve- nient, can be dangerous since it elim- inates the need for you to check the s-expression structure in determining the number of closing parentheses. Another handy feature is blinking matching parentheses. In the edit mode, moving the cursor to a left parenthesis causes the corresponding right parenthesis, if it exists, to blink (and vice versa), thus providing an im- mediate visual display of the contents of the s-expression. You can use this feature to quickly identify an incorrect program-control structure such as a missing parenthesis or one that is in- correctly placed. The revised editor in muLISP-86 comes up in the WordStar-like insert mode as opposed to the muLISP-83 editor, which assumed overwrite mode. If you forgot to change the muLISP-83 editor mode prior to edit- ing (as I often did), you could over- write large amounts of code before realizing the effect. Other changes are not as welcome. For example, the muLISP-86 editor does not retain the pretty-print feature of its predecessor. This feature displays the source code with the control structure delineated by indentation and provides a quick visual display of the program struc- ture. Error Handling and Program Termination The muLISP read-eval-print error handler is called the Break Package. When the interpreter discovers an error, it displays a short message such vMStfHC INT'L, INC. m TURBO AT 80286 IBM Compatible • 6 MHz, 8 MHz, or 10 MHz Keyboard Switch • 5 CHIPS SET-(Lower Heat. Higher Quality) • or 1 Wait State • 1 MB Memory On Board Battery 80287 Socket Ready — 5VLS1 mi i80286 80287 We are the manufacturer. WiseTEK International, Inc. 513 Valley Way Milpitas, CA 95035 TURBO XT* 8088-2 IBM-XT Compatible 4.77 MHz or 8 MHz Keyboard Switch 4 Layer PC Board 640K Memory 8087 Socket Ready See us at 'IffiOlH November 10-14, 1986 Riviera Hotel Las Vegas, Nevada Booth #8421 86 Distributors, Dealers, OEM Welcome TEL: (408) 263-1237 FAX: (408) 263-1870 250 B YTE • OCTOBER 1986 Inquiry 329 REVIEW: MULISP-86 as "File not found" and then prompts you to type continue, break (tem- porarily suspend program execution and call the read-eval-print loop on the next level down), abort (abort and return to the most recent read-eval- print loop), top-level (abort and return to the top-level executive driver loop), restart (initiate a new muLISP sys- tem—the approach to use when all else fails), or system, which returns you to DOS. Debugging Facilities In addition to the Break Package, muLISP-86 provides a comprehensive set of functions to allow efficient de- bugging. Foremost among these is the trace function. This function indicates the level of the function call and the names and bindings of the function arguments at this level. The trace function also lets you redirect the out- put to a file. This is often necessary due to the voluminous amount of out- put of some programs where several functions may recursively call each other. The muLISP system follows the Common LISP convention of delineat- ing single-line comments with one or more semicolons. If you wish to have multiple-line comments, you can use the primitive function comment, which holds the comment by inhibit- ing the evaluation of its arguments. Distribution Media The distribution disk for MS-DOS sys- tems includes the executable muLISP interpreter file (MULISP.COM); the editor (EDITLSP); a help file (HELP.LSP); library files containing InterLISP and Common LISP func- tions, macros, and special forms (IN- TERLIS.LSR COMMON. LSP. and STRUCTUR.LSP); a six-lesson inter- active tutorial (MULISPI.LES to MU- LISP6.LES); a .COM to .EXE file con- verter (C0MT0EXE.COM); the source code for the debug and trace facilities (DEBUG.LSP); some sample programs such as the Tower of Hanoi; and a file for function redefinitions to achieve compatibility with muLISP-83 (MU- LISP83.LSP). This file is handy since muLISP-83 contains a large number of ' function names that are incompatible with MacLISP and Common LISP. The optional compiler is written in muLISP and distributed on a separate disk consisting of four files. The compact size of the muLISP-86 system (MULISP.COM, the editor, and the Common LISP library files take a little more than I OOK bytes) makes it suitable for use on floppy-disk-drive- based systems. This is in contrast to other LISPs such as Golden Common LISP, which comes with five distribu- tion disks and practically necessitates a hard disk drive. The muLISP-86 disk is not copy- protected, in contrast to Golden Com- mon LISP, which contains a sophisti- cated copy-protection scheme and a corresponding installation and de- installation procedure. In fact, the muLISP-86 license agreement seems to foster the distribution of the prod- uct on a trial basis by stipulating that "the software shall be run on at most five computers residing in a single building or facility" and that the "end user is authorized to allow temporary use of the software by the end user's family employees, consultants, or students." Common LISP Compatibility Although muLISP-86 does not at- tempt to implement the entire LISP standard, this is not a serious limita- tion since it is neither practical nor necessary for a useful LISP develop- ment system that is used on a per- sonal computer to adhere strictly to this standard. In fact, this is currently impossible with an interpreter. The muLISP-86 system implements a sub- set of the advanced control constructs that are popular in Common LISP For example, you can replace the histori- cally standard cond function with if functions that more closely resemble other high-level languages. In muLISP- 86, if is a primitively defined special form. The COMMON.LSP library file supports other popular constructs such as the when macro and the more advanced let and let* (the se- quential version of LET). In addition, muLISP-86 supports user-written macros and some advanced Common LISP constructs such as defstruct (in the STRUCTUR.LSP library file). Unfor- tunately, other constructs such as packages and block are not imple- mented in muLISP-86. Like most LISP implementations (in- cluding Golden Common LISP), muLISP-86 is dynamically scoped (i.e., the value bound to a variable is the one most recently assigned to it). Fur- thermore, in muLISP-86, variables bound to functions (i.e., appearing in the function definition as formal pa- rameters) become local variables within the scope of that function. Otherwise, variables are considered global in scope; therefore, any assign- ments made during the execution of a function remain in effect after the function is exited. This is known as a side effect and is not necessarily bad. Disk Space, Memory Usage, and Garbage Collection Garbage collection (elimination of data entities that are no longer useful, thus conserving memory space) is automatic and quick, taking about one second. The muLISP-86 system provides a primitively defined func- tion (reclaim) and a corresponding control variable to let you monitor the frequency of garbage collection, mem- ory allocation, and the amount of free memory. Checking this is sometimes useful when a program's execution seems to be slow, since the system may be consuming the majority of its time in garbage collection, an unde- sirable process known as thrashing. The muLISP-86 system, like muLISP- 83, is fast due to its use of distilled code (d-code). The use of efficient storage techniques and d-code makes it possible for you to load the muLISP interpreter, a choice of editor, the Common LISP library, and the debug routines into RAM and still have am- ple space for program development. On my 2 56K-byte system, even with space allocated for the resident por- tions of DOS 2.10, the reclaim func- tion indicated that I had over 100K bytes free, a substantial amount of space for program development. If this amount of memory was insuf- ficient, 1 could have extracted the functions I normally use from the Common LISP and debug libraries and saved them in a new smaller li- brary that would take up less of the system RAM. This is in sharp contrast [continued] OCTOBER 1986 • BYTE 2 51 REVIEW: MULISP-86 to the documented operation of Golden Common LISP, wherein the system and editor leave only 20K bytes remaining for program develop- ment in a 512K-byte system. I/O The muLISP-86 system accepts input from either the keyboard or a disk file via the rds (read select) function. The system also provides several typical printing functions (print princ, and prinl) and the ability to handle string variables. The system supports both list and dot notation. The Compiler Program development in a language such as LISP normally proceeds in in- terpreted mode with the incremental development and debugging of func- tions. Once these functions are fully debugged, however, you can use the optional muLISP-86 compiler to sig- nificantly improve the execution speed of application programs by transforming functions into native machine code. You can also use the muLISP-86 compiler to individually compile user- defined functions (the so-called "in- cremental compiler" mode). Alter- nately you can use the compiler in a file compiler mode where all the func- tions in a file or set of files are com- piled. Either mode requires that you load the compiler source code, which takes additional memory. On my sys- tem, the loading of the incremental compiler required approximately an additional 45 K bytes of RAM. Documentation The muLISP-86 documentation is a slightly revised version of the muLISP- 85 documentation. It consists of a single binder with approximately 400 pages. It covers the major system fea- tures, muLISP tutorials, data struc- tures and memory management, a comprehensive summary of the muLISP-86 functions, the debugger and editor, the optional compiler, and the machine-level access functions. The documentation is a welcome re- vision of earlier counterparts. The operation of primitively defined muLISP functions is well documented. The manual also contains (as does tutorial lesson number 3) a good dis- cussion of the concept of a cons con- struct for internal computer represen- tation of lists and the relationship of lists to binary trees. For quick refer- ence, the manual has separate in- dexes for concepts and muLISP func- tions. A particularly good feature of the documentation is an appendix that details source file conversion from muLISP-83 to muLISP-86. The muLISP-86 tutorial is also similar to that furnished with muLISP- 83. Topics covered include the rela- tionship between b-trees and lists, defining functions, list manipulation and associated functions, control structures, the use of recursion, and graphics. Purchasers of muLISP-86 also get a three-issue subscription to the Soft Warehouse Newsletter. Features In contrast to earlier versions, muLISP- 86 provides a useful on-line help facili- ty for a large number of muLISP's primitively defined functions. After loading the help file, you simply in- voke the help function with a par- ticular function name as the argu- ment, whereupon the system returns the particular function's arguments, type, and the number of the page in the manual that contains a more detailed reference. The muLISP-86 system provides ac- cess to IBM PC hardware via primitive functions that let you read and write directly to absolute memory ad- dresses (memory), execute an inter- rupt (interrupt), read or write from an 8086/8088 port (portio), and suspend the muLISP system to load and ex- ecute another program (execute). The execute function even lets you pass a string of arguments to the other pro- gram, expressed as an optional argu- ment to the LISP function. This is ex- tremely useful in artificial intelligence applications, such as speech recogni- tion or image processing, where the muLISP system relies on other pro- grams (possibly written in other lan- guages) to provide some degree of preprocessing. The muLISP-86 system supports in- teger and real-number data types. It currently does not support an 8087 coprocessor. The editor (and the en- tire muLISP-86 development system) appears to work fine with keyboard in- tercept and memory-resident pro- grams such as SideKick. System Requirements The muLISP-86 system is designed to run on an IBM PC, XT. AT, or PCjr with either a monochrome or graphics dis- play. Soft Warehouse claims that the system also runs on other MS-DOS computers. I was able to run muLISP- 86 successfully on an NCR PC4 with a monochrome display and also on an AT&T PC 6300. The documentation states that you need a minimum of 128K bytes of memory, with at least 2 56K bytes rec- ommended. Note that muLISP-86 can take advantage of up to 51 2K bytes of installed memory, which may be a useful feature in large program devel- opment. Finally you can run muLISP-86 with one disk drive, but the company rec- ommends that you use two drives to avoid swapping disks after loading the system. The compact size of a mini- mal system, however, makes muLISP- 86 suitable for use on the IBM PCjr. Conclusions The muLISP-86 system represents some improvement over muLISP-85 and a significant improvement over muLISP-83. Its major strength is its suitability for use within the con- straints of the microcomputer en- vironment (i.e., with limited memory and floppy disk space). The system is reasonably user-friendly and might be considered a viable alternative to other LISP development systems for the IBM PC such as Golden Common LISP and the public domain XLISP. A particularly good use for muLlSP- 86 would be for educational purposes and situations where absolute Com- mon LISP compatibility is not essen- tial and cost-effective LISP program- ming capability is desired. While muLISP-86 does not provide all the user-friendliness and functionality of the more comprehensive mainframe and dedicated LISP machine environ- ments, it represents a significant en- hancement over muLISP-83. It is well worth a serious look. ■ 252 B YTE • OCTOBER 1986 c&c Computers and Communications Your first color monitor should be good enough to be your last, NEC introduces the only color monitor you need. Superb resolution plus MultiSync for across-the- board compatibility with all three PC graphics boards made by IBM,® for business graphics, CAD/CAM, computer art, and text. u* Now there's one high fc resolution color f* monitor that does s things your way. The MultiSync™ monitor from NEC. It gives you the best color resolu- tion available at the price. • Compatibility with the IBM Professional Graphics Adapter, the IBM Enhanced Graphics Adapter, and the IBM Color Graphics Adapter. 43 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiniiiiiiiii -MULT I SYNC The Intelligent Monitor r — IT - -.. , — — - Compati- bility with the IBM® -""■ *■?•/' Enhanced jBLItll \ Graphics Adapter Board Br ■•■ 4 • MultiSync, the NEC feature that automatically adjusts to color adapter board scanning frequencies from 15.75 KHz to 35 KHz— suggesting the possibility that the MultiSync monitor might be compatible with all color graphics boards that are fully compatible with the IBM PC, PC/XT, and PC/AT, now and in the future. • Full implementation of high resolution graphics software for business and other applications, now and in the future. • And color capability limited only by the board being used. See Things Our Way Until now, you had to choose different color monitors for compatibility with all three PC color graphics boards made by IBM. With so many board and monitor configura- tions, folks didn't know which way to look. The new MultiSync color monitor gives you unique compatibility. As well as TTL and analog color. With 7 switchable text colors. And resolution up to maximum 800 horizontal dots and maximum 560 vertical lines, on a large, 13" diagonal viewing area. I ^ All from NEC, a \y" v name respected around ^s the world for advanced, 'J}\ reliable products backed by nationwide service. LJi J! Compati- bility with the IBM® Profes- sional Graphics Adapter Board It's the one color monitor that does everything your way. Compati- bility with the IBM® Color Graphics Adapter Board But why talk more about it? Visit your nearest dealer and see a graphic demonstration of the new NEC MultiSync monitor's capabilities. Then draw your own conclusions. For information dial 1-800-447-4700 NEC HOME ELECTRONICS (U.S.A.) Inc. Computer Products Division 1255 Michael Drive Wood Dale, IL 60191-1094 SEC Inquiry 2ll OCTOBER 1986 -BYTE 253 Book your trip & from start to finish. All on your own PC. Now you can get quick information and immediate resenmtions for flights, hotels and rental cars with EAASY SABRE, the American Airlines personal reservations system. EAASY SABRE lets you look directly at schedules and fares, 24 hours a day On any type of PC that has a modem or on any kind of communicating terminal. And, all the help you need is available on line. This special service will show you flights for over 650 airlines worldwide. And the quickest routes to almost any place you want to go. It will also show you more than 13,000,000 fares. Our exclusive Bargain Finder™ 1 feature assures that you'll get the lowest possible fares available for the seats you book. In addition, you can reserve a room at more than 12,000 hotels — by name, by price or by location. You can also confirm a car from over 20 rental car compa- nies. Look at your personal Advantage® account. And even check the weather in die city you 11 be visiting. Once your reservations are booked, EAASY SABRE lets you decide where to pick up the ticket — from your SABRE Automated Travel Agency or Corporate Travel Office, at die airport, at an American Airlines City Ticket Office, by mail or from any other American Airlines audiorized distribution channel. Access die worlds most sophisticated travel automa- tion system. Its that simple. And economical. Because dieres currently no surcharge for using EAASY SABRE. You just need to subscribe to one of the data networks listed. For more information on subscribing to a network, call: Dialcom, Inc. 1-800-258-3311 General Electric Information Services Company 1-800-433-3683 QuantumLink (for Commodore computers only) 1-800-392-8200 EA*ASY SABRE AAdv.intage® is a registered service mark of American Airlines, Inc. SOFTWARE REVIEW ITCs Modula-2 Software Development System by Mark Bridger The Modula-2 language was developed by Professor Niklaus Wirth, who also created Pascal. As a longtime Pascal and 'Ilirbo Pascal user, I wanted to compare the two languages and to examine the version of Modula-2 from Interface Technologies Corporation (ITC). USING THE ITC EDITOR ITCs Modula-2 has a built-in syntax editor. This sort of editor is probably familiar to you if you've programmed in LISP. In the ITC implementation, each Modula-2 construct has a tem- plate that is invoked using an < Alt > /keystroke combination. For example, pressing < Alt> F produces the template FOR : = TO DO END; You use the Tkb key to skip to the two fields delineated by < > and fill in the missing variables and expressions. Statements between DO and END can be entered by using the P command; semicolons are inserted automatically for each statement. If an inserted statement is a template, then the editor automatically indents it ap- propriately. The editor also adds right- hand parentheses to match the left- hand ones that you type in. It is impossible to type in a program using the ITC editor without employ- ing these templates. At first this seemed annoyingly cumbersome, but there is a method to it. First, Modula-2 is a case-sensitive language, and all re- served words such as FOR, TO, and END must be capitalized. This can be very annoying, even to a good typist. An inexpensive Modula-2 compiler and editor package for IBM PCs and compatibles The use of templates obviates this dif- ficulty. Second, the use of templates virtually eliminates syntax errors and makes it extremely easy to learn Modula-2, especially if you already know Pascal. While it takes some time to get used to the various commands to invoke the templates, ITC has made them as mnemonically reasonable as possible (e.g., F = "FOR. . .," A = 'AR- RAY!. • •]■" etc.). The com- mands have different meanings de- pending on whether you are in the declaration, type, or code section of the program. In the declaration sec- tion, for example, F gives the template for a function (i.e., a pro- cedure with RETURNed value). You can also import files of code prepared by other editors. Unfortu- nately, the ITC editor is finicky about syntax; it will not import any code that has any syntax errors, including errors resulting from incompatibility with various ITC Modula-2 library declara- tions. If an error is discovered during importation it is pointed out, but it must be corrected using another editor. The ITC editor provides some of the features found in more standard editors, such as searching for, copy- ing, and replacing strings. The editor also lets you embed blocks of code within other blocks or, inversely, ex- tract marked blocks from within others. The blocks, however, must be full syntactical (indentation level) blocks (e.g., a complete BEGIN. . .END or REPEAT . . .UNTIL block). In general I found the editor a bit un- wieldy, since many of its commands are accessed through function and Alt keys that call pull-down menus. These menus in turn require selection of a field (using the l^b key) and then perhaps further keyboard input. For an unskilled typist this is probably all right, but most serious programmers have enough typing skills to make this procedure rather frustrating. You can use the editor to move around within the program in two ways: line by line with the left and right arrow keys (the working line becomes highlighted), or block by block with the up and down arrow keys. The term "block" here means a syntax block (i.e., a group of lines of code at the same indentation level). You continue to move in blocks of the same level until you reach a larger block size; thereafter, moves are in these larger blocks. Moving down a level is accomplished through the left and right arrow keys. This can permit fairly quick movement through a modest-size program, but not really fast enough through a larger one. The addition of page- or screen-size move- ment would be useful. Whether the syntax editor for ITCs Modula-2 is better than a standard text editor depends on your familiar- ity with the package and personal preference. I didn't like the ITC editor (continued) Mark Bridger (31 Champa St.. Newton. MA 02 164) is president of Bridge Software and an associate professor of mathematics at Northeastern University. OCTOBER 1986 -BYTE 255 REVIEW: ITC'S MODULA-2 Modula-2 Software Development System Type Modula-2 compiler and development environment for MS-DOS and PC-DOS Company Interface Technologies Corporation 3336 Richmond Suite 200 Houston, TX 77098 (713) 523-8422 Requirements IBM PC or compatible; 256K bytes of RAM; two floppy disk drives Features A built-in syntax-directed editor checks the code as it is written Price Modula-2 Software Development System (standard package): $80.88 Modula-2 SDS-XP (with additional utilities): $99 at first, but after using it I began to appreciate its templates. Compiling and Linking The entire ITC Modula-2 package of editor, compiler, and linker is all in one unit. Choices are made by means of pull-down menus, and execution is done by overlaid code. Running ITC's Modula-2 from a floppy disk drive is a slow process. I ran it from a RAM disk, but this requires over 600K bytes of RAM. Early versions of the pro- gram had serious bugs when run on RAM disks, although I have not had any system freeze-ups while compil- ing with the latest version (version 2). ITC's Modula-2 seems to conform to the standards set forth by. Wirth for Modula-2. All standard libraries are available as well as some additional ones; for example, there is ReallnOut, a library for reading and writing real numbers. ReallnOut, however, has two annoying features: It only outputs real numbers in scientific notation, and if a real number is entered from the key- board without a digit in front of the decimal point, the real number is re- corded internally as without any warning. In addition, the field width parameter still has a bug that was present in earlier versions. ITC implements the Modula-2 open array parameter, which allows a pro- cedure declaration to accept an array of a specified type but a nonspecif ied length. The bounds are determined when the procedure has accepted a particular array at run time. This is a very useful improvement over Pascal especially for writing library pro- cedures for, say, matrix manipulation. There is also a graphics interface that supports point, line, and box drawing (all of which are quite slow), a sound interface enabling the pro- duction of a tone of prescribed fre- quency a DOS interface, and a pro- cedure to perform certain DOS and BIOS interrupts. For about $20 more, ITC offers a Foreign Object Module Import package, which is essentially a tool for linking ITC Modula-2 with 8086 assembly language object modules. This package has some re- strictions, the most serious being its apparent inability to deal with a sep- arate data segment in the assembly code. This restriction is shared with llirbo Pascal, but Borland Interna- tional doesn't charge anything extra for the ability to graft on machine code. There are ways around this limitation, for example, putting data in the code segment and jumping over it. Nevertheless, it's an annoying restriction for a large program devel- opment system. ITC's Modula-2 has a built-in library creation facility enabling program- mers to build up collections of sepa- rately compiled modules for linking with other programs. Source and ob- ject code stored in such a library can be accessed only by opening the library from the editor or the com- piler. A bug occasionally prevented the compiler from finding one of my libraries when it was in drive C. The compiler could only find the library when it was on the floppy disk in drive A. The ITC editor and compiler appear to interact, with the compiler doing some preliminary work as code is entered into the editor. I could not determine exactly what this work en- tailed; a menu choice offers the op- tion of turning this background com- pilation off, but it didn't help when I tried to import a syntactically incor- rect file. It is important to remember that Turbo Pascal is limited to compiled code of fewer than 64K bytes. There is no such limitation for ITC Modula-2; Programs can be as long as the disk or the memory can handle. Benchmark Results For this review, I rewrote the bench- marks from my review of llirbo Pascal 3.0 (see February BYTE) in Modula-2. As shown in table I , Tlirbo Pascal has the edge in all categories except arith- metic floating-point operations (multi- plication and division) done with the 8087, where ITC has a three-to-one speed advantage. On the other hand, Tarbo Pascal has an equally dramatic advantage in non-8087 number crunching and in heap management. In analyzing compilation speed, however, one must be fair. Modula-2's task here is somewhat harder since it is producing code that will later be linked to other code. This is a more complicated procedure that takes longer to complete. ITC's Modula-2 produces .EXE files, while Tarbo Pascal produces .COM files. In gen- eral, the executable files produced for the benchmark programs by ITC's Modula-2 were from 2 to Vh times larger than those produced by lUrbo Pascal. Documentation ITC's Modula-2 documentation comes in a loose-leaf binder. It provides a better introduction to the basics of the language than does Borland's Turbo Pascal documentation. If you already know Pascal, you probably can get by with ITC's documentation; if you haven't programmed in Pascal, you should get a good book on Modula-2 as an introduction. Since all procedures, constants, and variables in Modula-2 that are im- ported from libraries must be de- clared in an importation section, it is essential to know which identifiers go with which standard libraries. This is difficult to determine from the docu- mentation; the index is not always helpful since there are some page {continued) 256 BYTE • OCTOBER 1986 A MEGABYTE FOR DOS! MicroWay is the world's leading retaih er of 8087s and high performance PC upgrades, We stock a complete selec- tion of 8087s that run from 5 to 1 2 MHz. All of our coprocessors are shipped with a diagnostic disk and the best warranty in the business - one year! We also offer daughterboards for socketless computers (NEC PC) and 287Turbo which increases the clock speedofthe80287from4to10MHz. OurNUMBERSMASHER/ECM™ runs at 12 MHz with a megabyte of RAM and achieves a throughput of .1 mega- flops with 87BASIC/INLINE, Intel For- tran, or Microsoft Fortran. Software re- viewers consistently cite MicroWay software and 8087 expertise as the best in the industry! Our customers fre- quently write to thank us for recom- mending the correct software and hardware to meet their specific needs. They also thank us for our same-day shipping! In addition to our own prod- ucts which support the 8087 and 80287, we stock the largest supply of specialized software available. For more information call us at 617-746-7341 NUMBER SMASHER/EOVT THE FASTEST ACCELERATOR CARD AVAILABLE givesyou 1 2 MHz speed in two modes: 704K or one megabyte of "Extended Conventional Memory" M EGAS WITCH MMU and MegaDOS software make it possible to run DOS applications with up to 1 1 5 K using PC compilers, Auto- CAD and Lotus 1-2-3. Does not re- quire EMS software. Totally compat- ible. Priced from $599 with 51 2 K to $1 1 99 for complete package. Option- al 8087-1 2 ... $295 SPEED UP YOUR AT OR AT COMPATIBLE WITH 287TURBO™ 10 MHz Micro Way 8087 & For the IBM PC, PC XT, PC AT and Compatibles. A2 D-1 60 M icroWay's Data Acquisition Board performs 1 60,000 1 2 bit Analog to Digital conver- sions per second! Includes software drivers. The fastest 1 2 bit A to D board available. For the IBM PC XT and compatibles $1 295 87SFL™ MicroWay's Scientific Function Li- brary contains 1 70 scientific and engineering f unc- tions. Callable from most 8087 compatible com- pilers . . . First Language $250; Additional $1 00. MATRIXPAK™ manages a MEGABYTE! Written in assembly language, our runtime pack- age accurately manipulateslarge matrices at very fast speeds. Includes matrix inversion and the solution of simultaneous linear equations. Call- able from RM or MS Fortran, MS Assembler, or 87BASIC/INLINE each $99 87FFT™ Written in assembly language, per- forms Forward and Inverse FFTs on real and com- plex arrays which occupy up to 512 Kbytes of RAM. Also does convolutions, auto correlations, hamming, complex vector multiplication, and com- plex to radial conversions. Callable from most 8087 compatible compilers $200 87FFT-2™ performs two-dimensional FFTs. Ideal for image processing Requires 87FFT $1 00 FASTBREAK™ employs the 8087 to in- crease the speed of Lotus 1 -2-3™ Version 1 A or 1 A* by up to 36:1 $79 87 Verify™ For users who have to be absolutely sure of their results! This background task period- ically performs an 8087 accuracy and stress test $49 Microsoft Fortran V 3.31 $209 IBM Professional Fortran $565 Ryan-McFarland Fortran V 2.0 $399 NAG Fortran Library $300 Grafmatic for Fortran or Pascal $1 25 MultiHalo Graphics (1 language) $1 89 LABTECH NOTEBOOK $745 UnkelScope $549 INTEL ABOVE BOARD CALL JRAM, AST, MAYNARD CALL Micro Way P.O. Box 79 Kingston, Mass 02364 USA (617)746-7341 MegaPage The only Intel-Lotus EMS board which comes with two megabytes of cool- running, low power drain CMOS RAM installed. Includes RAM disk, print spooler, disk cache, and EMS driv- ers. For the IBM PC, XT & compatibles. . . . $549 MegaPage AT/ECC™ ems card forthePC AT and compatibles includes Error Correction Cir- cuitry. With ECC, 1 1 RAM chips cover256Ksothe user never encounters RAM errors. With 1 megabyte CMOS $699; with 3 megabytes CMOS $1295. Optional serial/parallel daughterboard $95. DFixer™ Our disk utility which thoroughly checks PC or AT hard disks for bad sectors and updates the MS DOS file allocation table accord- ingly. Solves the AT hard disk problem! ... $1 49 DOptimizer™ Optimizes the way your hard disk or floppy stores its files. Speeds up accesses by recombining fragmented files $49 DCache™ Our disk caching software speeds up your I/O by storing repetitively used tracks in memory. The amount of memory used can be selected in 64 Kbyte banks $49 87MACRO/DEBUG™ Contains all the pieces needed forwriting 8087/80287 assembly code & MicroWay's 87DEBUG debugger. $199 OBJ ->ASM™ A multipass object module trans- lator and disassembler. Produces assembly lan- guage listings which include public symbols, ex- ternal symbols and labels commented with cross references Ideal for patching object modules for which source is not available $200 87 BASIC™ includes patches to the IBM BASIC or MS Quick BASIC Compiler for USER TRANS- PARENT 8087 support Provides super fast per- formance for all numeric operations including trig- onometries, transcendentals, addition, subtrac- tion, multiplication, and division each $1 50 87BASIC/INLINE™ converts the output of the IBM BASIC Compiler into optimized 8087 inline code which executes up to seven times fast- er than 87BASIC. Supports separately compiled inline subroutines which are located in their own segments and can contain up to 64 Kbytes of code. This allows programs greater than 128K! Requires the IBM BASIC Compiler Version 1 and a Macro Assembler. Includes 87BASIC . . . $200 MICROWAY UDI runs RTOS or RMX com pilers under DOS $300 8087 UPGRADES All MicroWay 8087s include a one year warranty, complete MicroWay Test Program and accurate installation instructions. 8087 5 MHz $114 For the IBM PC, XT and compatibles. 8087-2 8 MHz $149 For Wang, AT&T, DeskPro, NEC, Leading Edge. 80287-3 5 MHz $179 For the IBM PC AT and 286 compatibles 80287-6 6 MHz $229 For 8 MHz AT compatibles. 80287-8 8 MHz $295 Forthe8 MHz 80286 accelerator cards. NECV20, V30 $16, $30 64KRAM Set 150ns $10 256K RAM Set 150ns $29 256K RAM Set 120ns $39 128KRAMSetPCAT $49 287Turbo™ 10 MHz If you own an AT, Deskpro 286 or AT compatible, this is the card you need to get reasonable numeric performance. It plugs into your 80287 socket and includes a spe- cially driven 10 MHz 80287. The card comes in three configurations. The IBM ATversion includes a hardware RESET button $450 287Turbo 8 MHz $369 87/88X111130™ is a stubby card which includes a clock calendar and a speed controller which changes the speed of your motherboard from 4.77 to 7.4 MHz. Its use requires your PC to have a socketed 8284. Typical speed increase is 1 .6 to 2.0. The card overcomes slow hardware by slow- ing up only when such devices are accessed and running at full speed otherwise $1 49 Optional 8087-2 $149 286TurboCache™ This new MicroWay ac- celerator uses 8K of cache memory and 80286/ 80287 processors to provide an average speed increase of 3:1 for most programs Call for specifications and benchmarks $469 Call for our complete catalog of software which supports the 8087. In London, please phone 223-7762 OCTOBER 1 986 • BYTE 257 REVIEW: ITC'S MODULA-2 number discrepancies. Even more serious is the fact that different libraries can have the same identifier with the same spelling in two different contexts. For example, Done is Boolean in the InOut library but part of an enumerated type in the Files library. A complete cross-referencing table of the libraries and their con- tents would have been very helpful. It would also have been useful to have the description of function-key use in a more prominent position near the front of the manual. Overall, ITC's Modula-2 documenta- tion suffers from a lack of all but the simplest examples. While the begin- ning tutorial covers elementary Modula-2 constructs, program writing, and compilation, more complicated areas such as the building of indepen- dently compiled libraries and the use of in-line machine code and BIOS in- terrupts could use some further ex- planation and illustration. Bugs The first version of ITC Modula-2 that I examined seemed to have more bugs than any other piece of serious software I've used. Most of these bugs seem to have been corrected in the most recent release. The compiler occasionally gives misleading error messages. In one case when I had invoked the NEW procedure to create a pointer, I was told that the variable had not been declared; however, it had been. What I hadn't done was to import the AL- LOCATE and DEALLOCATE pro- cedures from the system library. Even though no explicit calls to these pro- cedures were made, they are neces- sary for the functioning of NEW and DISPOSE. This took quite a few minutes for me to figure out ITC operates a bulletin board on which fixes for various bugs are posted. This is fine if you live within a local call of Houston, Texas, but swatting all bugs by long-distance phone lines can get to be quite ex- pensive. Turbo Pascal vs. Modula-2 There are some real philosophical, psychological, and practical issues here. The philosophy and psychology Table I : Benchmark comparisons. The CALC program shows how long it takes to do 10,000 multiplication and 10.000 division operations using single- precision numbers. The FLOAT program tests ITC Modula-2's library of transcendental functions. The SIEVE program shows how long it takes to run one iteration of the Sieve of Eratosthenes prime-number benchmark. The TRANS program shows how long it takes to copy a \0.000-character file one character at a time, while BTRANS shows how long it takes to copy this file 128 bytes at a time. The LINETEST routine was run with Ttirbo Pascal's standard draw routine and with Modula-2 s draw routine. HEAPTEST performs a rough check to see if the creation and disposal of dynamic variables is working properly. All times are in seconds. Program CALC CALC87 FLOAT FLOAT87 SIEVE TRANS (disk to disk) TRANS (RAM to RAM) BTRANS (disk to disk) BTRANS (RAM to RAM) LINETEST HEAPTEST ITC Modula-2 Turbo Pascal 52 32 2 6.5 212 65 5 3 19 13 129 124 98 93 23 22 2 1.5 31 17 12 <0.5 have more to do with Pascal versus Modula-2 than with any particular brands of compilers. If you believe that Pascal is an overly formal language that stifles creativity but that it is useful for building "pyramids"— large, complicated pro- grams built up from many modules- then you will find Modula-2 much the same. In Pascal there is only one really dynamic, flexible, and standard procedure: the lowly WriteLn. The WriteLn command, which allows a variable number of parameters of dif- ferent types, has been eliminated in Modula-2 and replaced by WriteChar, WriteString, Writelnt, WriteCard, and WriteReal. These must actually be declared with correct capitalization, and their library genealogy' must be traced out. If you're going to be sub- jected to these indignities, you might as well program in C and at least be able to produce tighter code. If you hate Pascal, you'll find Modula-2 worse. On the other hand, you can make the argument that this sort of care and attention to detail is necessary when dozens, or hundreds, of pro- grammers are working on a project in- volving tens of thousands of lines of code— code that must be modular and portable. Therefore, you must determine your own needs and how much you enjoy programming. If you are writing pro- grams that are no longer than 3000 to 4000 lines, then there doesn't seem to be any reason for not using Turbo Pascal. It's faster, tighter, more flexi- ble, smaller, simpler, and less expen- sive than anything else currently on the market. On the other hand, if you must work with many other programmers on a huge program or if you need training for such work, then you probably should try Modula-2. Whether or not Modula-2 will ever gain much popu- larity as a commercial language, the ITC syntax editor can make learning it easier. Furthermore, ITC has pro- vided a lot of value for the money, with a basic package that includes the assembly language interface, extra libraries, and a Make utility. It's worth a try, but don't throw away your llirbo Pascal. ■ 258 BYTE • OCTOBER 1986 CLASSIC BYTE T-SHIRTS! #T1- COMPUTER ENGINEERING #T3 — INSIDE IBM Five classic Byte covers - and boy, do they look great on this 3 A sleeve "baseball shirt"! The vivid royal blue sleeves and neckline really complement the full-color design. And don't mistake this for a rubbery patch that cracks and peels off after a few washings. This is true four-color process: the per- manent inks are silk-screened into the fabric, resulting in a beautiful, full-color image that lasts! You'll also appreciate the shirt itself: a real heavyweight made of 50% cotton, 50% polyester. You'll enjoy cotton comfort in a tough, sporty shirt that keeps its crisp, fresh look through many wash- ings - with almost no shrinking ! The price for each Classic Byte T-Shirt is only $12.50 ($11 .50 each for 3 or more). Be sure to include shirt size: C-(child 10-12), S-(34-36), M-(38-40), L(42-44), XL-(46-48). Most orders shipped within a week. Please send me the following shirt(s) at $12.50 each, or $11.50 each for 3 or more. I have included $2 for shipping and handling ($5 overseas). GTY # TITLE SIZE AMOUNT $ $ $ $ $ Shipping & Handling (see above) $ □ Send free brochure. $ □ I have enclosed check or money order. □ VISA D MasterCard □ Am. Express Card #: Exp. Date:. Mail this coupon to: Robert Tinney Graphics 1864 North Pamela Dr. Baton Rouge, Louisiana 70815 Ship my shlrt(s) to: Name: (Business):. Address: City: State: i i i .Zip:. The BCC52 packs an entire development and acquisition system into a single dose. Indications for use: When a single controller board or a complete devel- opment and acquisition system is needed. Active Ingredients: Intel 8052 8-bit processor, 8K floating point ROM resi- dent control BASIC, 3 on- board parallel I/O ports, Serial terminal port (auto baud rate select), Serial printer port, Socketed for 48K bytes RAM and EPROM, 2 interrupts, Expandable to 64K bytes each of data and program memory, On-board intelligent 2764/27128 EPROM programmer. Dosage: Take either a single board or an entire system to provide control relief. CAUTION: This product has proven to be habit forming. Now available without prescription from Micromint for only $152' *1 00 quantity OEM price CALL TOLL FREE 1-800-635-3355 In Connecticut call : 1-871-6170 Micromint, Inc. 25 Terrace Drive, Vernon, Connecticut 06066 TELEX: 643331 SOFTWARE REVIEW Microsoft Word Version 3.0 by Malcolm C. Rubel Microsoft Word version 3.0 for MS-DOS systems, with its several new and versatile fea- tures, is one of the most powerful word-processing programs on the market to- day, but I wish I could be more excited about it. Word is full-featured, but it lacks the com- fort and speed 1 have come to expect from top-of-the-line programs. It also has several annoying defects. Installing Word Microsoft has dropped copy protec- tion from its product line. Therefore, you can now make any backup copies that you need. The installation process is virtually foolproof. Both floppy disk and hard disk installations with or without the mouse driver are no problem, but when you install Word on a floppy disk you do not have enough space left for DOS. To get a bootable disk, you must first delete the Help files. Learning Word 3.0 Microsoft's Learning Microsoft Word program is the best interactive tutorial that I have seen. It is well thought out and provides an excellent course of instruction, good feedback, and a good simulation of the actual pro- gram operation. You can now access tutorial lessons while editing a document using Word's Help function. This requires that 2 56K bytes of available RAM must be installed, but you get quick access to detailed information about basic operations. Context-sensitive Quick Help is also available within the program. If all else fails, you can go to the improved index, which is now 43 pages long. A word processor with many powerful features and some flaws Microsoft took one step in the wrong direction with this latest release. The plastic command tem- plate of version 2.0 has been replaced by a small function-key overlay that flies off when you hit a key slightly off- center and a Quick Reference Card that always seems to be somewhere else and, when found, occupies sig- nificant desk space. The operator interface is excellent for beginners. With only a few minutes of familiarization, the commands become self-evident. A novice can quickly gain access to the whole range of the program's powers. The problem is that this ease of use for beginners compromises fluid opera- tion. Although there are speed keys available for some commands, I was continually going through menus making many unnecessary moves to implement simple commands. Operation Although Word 3.0 works on a flop- py disk system, it would operate more smoothly on a hard disk system. To use Word you need the program disk, the spelling disk, the Learning Micro- soft Word disk (for reference), and, if you want to run any external com- mands, a DOS disk to run the pro- gram. I was switching disks too often for my liking. Using Word on a floppy disk system is also slow (see table I for complete benchmark results). While Word runs mostly from RAM, the active document files are run on a very tight paging scheme. Information is con- stantly being written to and from disk. Increasing mem- ory size does not seem to do anything to alleviate this problem. While editing with Word is easy, Microsoft should do some work to make the editor faster. Using the mouse to move the cursor is almost a necessity because Microsoft has not included any Control-key commands to move the cursor. While you can get by with using the text-definition func- tion keys to move the cursor, it would not be too much trouble to imple- ment some of the now generally ac- cepted Control-key cursor commands. Word 3.0's PgUp and PgDn screen rewrites are some of the slowest I have seen. Depending on whether or not you have to go to the disk for in- formation, it can take from 1.5 to 5 seconds (a 3 . 5- to 4-second average) to get a new screen of text. I also had a serious problem with the Delete key. All deletes are written to a scrap buf- fer, which takes quite a bit of time. When you strike the Delete key twice without consciously hesitating be- tween the two hits, one keystroke is lost. Search and replace operations have the necessary options and work well, but they are slower than those of many comparable programs. I also ran into memory problems when per- forming the Replacement benchmark. {continued) Malcolm C. Rubel is president of Performance Dynamics Associates (305 Madison Ave., NewYork, NY 10165). He is also coauthor of The Performance Guide to Word Processing Software. OCTOBER 1986 • BYTE 261 REVIEW: WORD 3.0 Microsoft Word version 3.0 Type Word processor Company Microsoft Corporation 10700 Northup Way P.O. Box 97200 Bellevue, WA 98009 (800) 426-9400 Format 5V4-inch floppy disks Computer IBM PC compatibles Necessary Hardware Mouse (optional) Necessary Software MS-DOS Features Includes an integrated outlines math functions, and index and table of contents generation Documentation Using Microsoft Word Reference to Microsoft Word Printer booklet Price $450 The program stopped and required that my current work was first saved to free up the memory before con- tinuing. The manual states that this might also happen when several windows are open. Going to 512K bytes of memory did not help this situation. When you work with justified text, Word becomes annoying. In an at- tempt to make the on-screen text look just as it will look when printed. Microsoft right-justifies text on the screen. This means extra work for the processor, and it slows down screen reformat time. It also means that text continuously bounces to the left and to the right of the cursor position. I decided to work with unjustified text and, as a final step, to justify it. Because the cursor is a solid un- blinking box, I found that I kept "los- ing" it. Microsoft should give the user the option to make it blink and should at least provide line and cursor posi- tion numbers somewhere on the screen. Block operations with Word 3.0 are well designed and easy to execute. Text is defined by using either the mouse or the cursor and the function keys. It is then deleted to scrap using the Delete key and then "undeleted" from scrap using the Insert key at the appropriate place either within the file, between windows, or to disk. Col- umn-block operations are now sup- ported, and those who work with tabular data will be thankful for this addition. Microsoft makes better use of win- dows than any other word-processing program on the market. Not only can you have up to eight different win- dows on the screen at the same time showing you different files, but you can also have multiple windows open within a single document. Other pro- grams allow different copies of the same file to appear in different win- dows, but changes made in one win- dow are not automatically made in the others as they are with Word. You may pay a speed penalty as you open up more windows, but it is worth every second. Table I : Benchmark test results in seconds. All benchmarks were performed using MS-DOS 3.1. Word 3.0 WordStar 3.3 WordPerfect 4.1 Load program 24.3 9.5 12.8 Load 4000-word file 5.7 4.2 4.2 Save 4000-word file 30.0 26.7 15.6 Cursor through file 90.1 48.6 75.7 4000-word search 18.2 12.5 8.7 400 replacements 85.7 25.3 12.8 Boilerplate materials can be easily prepared and called to an active file using Word's Gallery function. How- ever, I found that it was so easy to open up a second window and copy text into it that I chose not to use this function. FORMATTING Word 3.0's greatest strength is its abili- ty to perform complicated formatting tasks. It is not a page composition or desktop publishing program, but it handles complicated formats such as tabular materials, snaking multi- column and screenplay layouts, and different type styles and point sizes with ease. Detailed formats can be described for character size and at- tributes, paragraph style, division (page) layout, tabs, footnotes, headers, and footers. Any defined style can be saved and recalled for later use with different documents. Word allows you to specify all page measurements in inches, centimeters, or points. The program handles most of the complicated formatting tasks for you. For example, if you wish to have multiple columns, you simply specify the number of columns desired and the space between each of them, and the program does the rest. Setting up and working with tables is equally simple. As with other top-end products, Word 3.0 supports multiple left- and right-facing headers and footers, several tab types, and also centered and flush-right text. Character specification is limited only by your output device. If you are using a laser printer with download- able fonts, you will be able to produce impressive output. Word is the only word-processing program for the IBM PC that supports Apple's LaserWriter printer and PostScript program. Page formatting does not always show up properly on the screen. Word cannot handle proper on-screen line breaks when you use proportional spacing. In addition, neither snaking nor side-by-side columns are shown on-screen. Word does not do a good job with right justification. It inserts micro- spaces only between words. If it placed microspaces between charac- 262 BYTE • OCTOBER 1986 REVIEW: WORD 3.0 ters within words as well as between words, the output would look better. Printing Printer support, always a strong point with Word, has been improved. There are 113 different printer choices, or you can go to the printer booklet to find out how to make your own driver. Word 3.0 also supports sheet feeders and printer queuing. Although pagination is performed automatically when you print and in- cludes widow and orphan control you still have to repaginate a docu- ment if you want to see where the page breaks are going to be before you print. You can now select confir- mation of page breaks and make modifications if you desire, but Microsoft could make a substantial improvement in Word by adding dy- namic pagination. One of the best improvements in version 3.0 is that text no longer needs to be enhanced by only the user's knowledge of the output device's capabilities. The program will make a guess at the formatting equiv- alent for the output device selected. For instance, italics specified for the final work will probably come out as underlined text on a printer that can- not print italics. Word prints with a gutter margin that selectively offsets left- and right- facing pages. If you are going to do two-sided printing and binding, this feature is important. One flaw that I discovered in the program is that when I set equal margins of 1 !4 inches for the left and right side of the page and printed on an HP LaserJet, Word gave me a 1 /2-inch left margin and a 1-inch right margin. While this can be easily compensated for, it presents an unnecessary complication. The Power of Word 3.0 Word 3.0 does footnotes and has an option for endnotes. It also has its own Spell program. Word does math functions and multilevel indexing and table of contents generation. It has an excellent mail-merge routine that in- cludes conditional printing for form letters. It does alphabetic and numeric sorts and it hyphenates. It contains an excellent outliner and, hidden in the appendix, instructions for some of the most complete data conversion pro- grams I have seen. The features I would like to see added include a faster editor, line and box drawing, and the ability to cap- ture command macros. Summary I am not a fan of Microsoft Word part- ly because I do not like menu-driven programs. They get in the way during the writing process. Part of the attrac- tiveness of Word 3.0 is that it is power- ful yet easy to learn. However, after you become familiar with the pro- gram, its menus, which are so easy to understand and use while learning, become a hindrance. ■ TAPE BACKUP $879 $794 External Internal ■ 60MB WAN GTE K Tape Backup m 20MB Cassette *f*QQ &CQQ Tape Backup v>v/«7«7 y>%J\s%7 • Backup 20MB In less than 5 minutes • Image/flle-by-flle backup and restore • Menu driven software • Interchangeable DMA, port address and Interrupt HARD DISK ■ 20MB Seagate 1/2 Ht. hard disk (with controller) ■ 30MB Seagate 1/2 Ht &Jir%f\ hard disk (65 Ms with controller) $ 4%7%7 ■ 20MB Seagate full Ht. hard disk (40 Ms) ■ 30MB Seagate full Ht. fr&m hard disk (40 Ms) $OOc7 * C.O.D., VISA, MC only. *$379 $549 i th« USA QIC-286-QT urn $$resi $1125 Fully IBM Compatible, runs all major software 80286 CPU, 6/8 MHz clock calendar 512K RAM on motherboard, expandable to 1024K 1.2MB or 360K floppy disk drive WD combined floppy/hard disk controller AT style keyboard 192W power supply 8 expansion slots Clock/calendar with battery backup Documentation and setup program FCC Class 'B' approved QIC RESEARCH INCORPORATED 800-843-0806 (Sales) (408) 942-8086 (CA) In Canada call (416) 842-3177 Tech Support (408) 942-0856 489 Valley Way Mil pitas CA 95035 V>lN«* G ; pesea gd., (312) 998- MODEM EVEREX EVERCOM • Comes with Bit-Corn Software • 1/2 size 300/1200 Baud Modem • Fully Hayes, Bell 103 & 212A compatible • Supports Com 1,2,3 & 4 ■ 1200/2400 Baud Internal $289 1/2 size modem