BYTE SEPTEMBER 1987 VOL.12, NO. 10 S3. 50 IN UNITED STATES $4.50 IN CANADA / £1.75 IN U.K. A McGRAW-HILL PUBLICATION 0360-5280 THE SMALL SYSTEMS JOURNAL ® THEME Printer Technologies Ciarcia's ZyMOS AT-on-a-board Turbo C, Turbo Basic, Tlirbo Pascal and Tlirbo Prolog: technical excellence QQ Borland International's Turbo Pascal, Turbo Basic and Turbo Prolog automatically identify themselves, by virtue of their Turbo' forenames, as superior language products with a common programming environment. The appellation also means to many PC users a must have' language. To us Turbo C looks like a coup for Borland. Garry Ray, PC Week 55 TUrbo Prolog: The Natural Language of Artificial Intelligence \\T J hether you're a first-time YaL/programmer or an expe- ls ▼ rienced one, Turbo Prolog's natural implementation of Artifi- cial Intelligence soon shows you how to build expert systems, nat- ural language interfaces, custom- ized knowledge bases and smart information management systems. TUrbo Prolog and TUrbo C work hand in hand Turbo Prolog 8 interfaces per- fectly with Turbo C® because they're both designed to work with each other. The Turbo Prolog/Turbo C combination means that you can now build powerful commercial applications using two of the most powerful languages available. TUrbo Prolog's development system includes: H' A complete Prolog compiler that is a variation of the Clocksin and Mellish Edinburgh standard Prolog. H' A full-screen interactive editor. H' Support for both graphic and text windows. [*f All the tools that let you build your own expert systems and AI applications with un- precedented ease. All Boriandproducls are trademarks or registered trademarks ot Bof land Interna- tional, Inc., or Borland/ Analylica, Inc. Other brand and product names are trade- marks or registered trademarks o! their respective holders Copyright 19B7 Borland International BI-1131 H An affordable, fast, and easy-to-use language that will delight the newcomer . . . You experienced Prolog hackers will likewise be delighted, if not astonished, by the features and per- formance of the Turbo Prolog development environment. Turbo Prolog offers gener- ally the fastest and most approachable implementa- tion of that language. Dartyl Rubin, AI Expert J J How TUrbo Prolog's new Tool- box adds 80 powerful tools and 8000 lines of source code In keeping with Borland tradi- tion, we've quickly added the new Turbo Prolog Toolbox™ to Turbo Prolog. With 80 tools and 8000 lines of source code that can easily be incorporated into your own pro- grams — and 40 sample programs that show you how to put these AI tools to work— the Turbo Prolog Toolbox is a highly intelli- gent, high-performance addition. Only $99,951 TUrbo Prolog Toolbox features include: H' Business graphics generation: boxes, circles, ellipses, bar charts, pie charts, scaled graphics 0" Complete communications pack- age: supports XMODEM protocol H' File transfers from Reflex,' dBASE III,* l-2-3,°Symphony* H' A unique parser generator: con- struct your own compiler or query language H' Sophisticated user- interface design tools Hf Contains 40 example programs H' Easy-to-use screen editor: design your screen layout and I/O H' Calculated fields definition H' Over 8,000 lines of source code you can incorporate into your own programs TUrl The most pow compi Our new Turbo C generates I fast, tight, production- quality code at compilation speeds of more than 13,000 lines a minute! It's the full-featured optimizing compiler everyone has been wait- ing for. Switching to TUrbo C, or starting with TUrbo C, you win both ways If you're already programming in C, switching to Turbo C will make you feel like you're riding a rocket instead of pedaling a bike. If you're never programmed in C, starting with Turbo C gives you an instant edge. It's easy to learn, easy to use, and the most efficient C compiler at any price. Only $99.95! H Turbo C does look like What We've All Been Waiting For: a full-featured compiler that produces excellent code in an unbelievable hurry . . . moves into a class all its own among full- featured C compilers . . . Turbo C is indeed for the serious developer . . . One heck of a buy — at any price. Michael Abrash, Programmer's Journal ss ' 30 C: NEW! erful optimizing ler ever Sieve benchmark JUrboC Microsoft® C Compile time 2 A 13.51 Compile and link time 4,1 18.13 Execution time 395 5.93 Object code size 239 249 Execution size 5748 7136 Price $9935 $450.00 Benchmark run on an IBM PS/2 Model 60 using Turbo C version 1.0 and Ihe Turbo Linker version 1.0, Microsolt C version 4.0 and the MS overlay linker version 3.51. Technical Specifications S' Compiler: One-pass optimizing com- piler generating linkable object modules. Included is Borland's high- performance Turbo Linker." The object module is compatible with the PC- DOS linker. Supports tiny, small, com- pact, medium, large, and huge memory model libraries. Can mix models with near and far pointers. Includes floating point emulator (utilizes 8087/80287 if installed). H' Interactive Editor: The system includes a powerful, interactive full screen text editor. If the compiler detects an error, the editor auto- matically positions the cursor approp- riately in the source code. S' Development Environment: A power- ful "Make" is included so that manag- ing Turbo C program development is highly efficient. Also includes pull- down menus and windows. S' Links with relocatable object modules created using Borland's Turbo Prolog into a single program. H' Inline assembly code. H' Loop optimizations. H' Register variables. H' ANSI C compatible. S' Start-up routine source code included. S' Both command line and integrated environment versions included. S' License to the source code for Run- time Library available. Join more than 100,000 Turbo C enthusiasts. Get your copy of Turbo C today! Minimum system requirements: All products run on IBM PC, XT, AT. PS/2, portable and true compatibles. PC-DOS (MS-DOS) 2.0 or later. 384K RAM minimum. Basic Telecom and Editor Tool- boxes require 640K. Borland International 4585 Scotts valley Drive, Scotts valley, CA 95066 Telephone: (408) 438-8400 Telex: 172373 Why more than 600,000 programmers worldwide are using TUrbo Pascal today T|he irresistible force behind Turbo Pascal's worldwide success is Borland's advanced technology. We created a com- piler so fast, that Turbo Pascal® is now the worldwide standard. And there are more tools for Turbo Pascal than for any other develop- ment environment in the world. You'll get everything you need from lUrbo Pascal and its 5 Toolboxes Turbo Pascal and Family are all you'll ever need to perfect pro- gramming in Pascal. If you've never programmed in Pascal, you'll probably want to start with Turbo Pascal Tutor® 2.0, and as your expertise quickly grows, add Toolboxes like our • Database Toolbox® • Editor Toolbox® • Graphix Toolbox® • GameWorks® and our newest, • Numerical Methods Toolbox" And because Turbo Pascal is the established worldwide standard, 3rd party, independent non- Borland developers also offer an incredible array of programs for Turbo Pascal. Only $99-95! it Borland International's Turbo Pascal took the pro- gramming world by storm. A great compiler combined with a good editor at an astounding price, the pack- age quickly came to be called, simply, Turbo — and has sold more than 500,000 copies. Stephen Randy Davis, PC Magazine Language deal of the cen- PC Magazine ** tury. For Scientists and Engineers: Turbo Pascal Numerical Methods Ibolbox The Numerical Methods Tool- box is a complete collection of Turbo Pascal routines and pro- grams. Add it to your develop- ment system and you have the most comprehensive and power- ful numerical analysis capabil- ities — at your fingertips! The Numerical Methods Tool- box is a state-of-the-art mathemat- ical toolbox with these ten pow- erful features: 3 Zeros of a function S' Interpolation 3 Differentiation 3 Integration 3 Matrix Inversion Hf Matrix Eigenvalues 3 Differential Equations Hf Least Squares Hf Fourier Transforms Hf Graphics Each module comes with pro- cedures that can be easily adapted to your own program. The Tool- box also comes complete with source code. So you have total control of your application. Only $99.95! y TUrbo Basic introduces its powerful new Telecom, Editor and Database Toolboxes NEW- Turbo Basic® is the break- through youVe been waiting for. The same power we brought to Pascal with Turbo Pascal has now been applied to BASIC with Turbo Basic. Compatible with BASICA, Turbo Basic is the high-performance, high-speed BASIC you'd expect from Borland. Basically, Ibrbo Basic is all you need It's a complete development environment which includes an incredibly fast compiler, an inter- active editor and a trace debug- ging system. It outperforms all its rivals, and because it's compatible with BASICA, you probably already know how to use it. Includes a free MicroCalc spreadsheet complete with source code Only $99.95! A technical look at TUrbo Basic Hf Full recursion supported Hf Standard IEEE floating-point format Hf Floating-point support, with full 8087 (math co-processor) integra- tion. Software emulation if no 8087 present Hf Program size limited only by avail- able memory (no 64K limitation) H' VGA, CGA, and EGA support H' Access to local, static, and global variables H' Full integration of the compiler, editor, and executable program, with separate windows for editing, messages, tracing, and execution Hf Compile, run-time, and I/O errors place you in the source code where error occurred Hf New long integer (32-bit) data type Hf Full 80-bit precision Hf Pull -down menus Hf Full window management 66 Borland has created the most powerful version of BASIC ever. Ethan Winer, PC Magazine J J Telecom Toolbox is a complete communications package which takes advantage of the built-in communications capabilities of BASIC— use as is or modify. • Pull-down menus and windows • XMODEM support • VT 100 terminal emulation • Captures text to disk or printer • PhoneBook file • 300, 1200, 2400 baud support • Supports script files • Fast screen I/O • Supports most of XTalk's command set • Manual dial and redial options Use Telecom Toolbox to embed communications capabilities into your own programs and/or build your own communications pack- age. Source code included for all Toolbox code and sample programs. Only $99.95! For the dealer nearest you or to order by phone call (800) 255-8008 in CA (800) 742-1133 in Canada (800) 237-1136 BORLAND INTERNATIONAL Inquiry 29 for End-Users. Inquiry 30 for DEALERS ONLY. Database Toolbox means that you don't have to reinvent the wheel each time you write new Turbo Basic database programs. Hf "Trainer" shows you how B+ trees work. (Simply key in sample records and you'll see your index being built.) Hf Turbo Access instantly locates, inserts or deletes records in a database — using B+ trees. Hf Turbo Sort sorts data on single items or on multiple keys and features virtual memory management for sorting large data files. Source code included. Only $9935! X0 X fli# Editor Toolbox is all you need to build your own text editor or word processor. Includes source code for two sample editors. First Editor is a complete editor ready to include in your programs, complete with windows, block commands and memory-mapped screen routines. MicroStar" is a full-blown text editor with a complete pull-down menu user interface, and gives you • Wordwrap • Undo last change • Auto-Indent • Find and Find/Replace with options • Set left/right margins • Block mark, move and copy • Tab, insert, overstrike modes, line center etc. Includes source code. Only $9935! Contents BYTE SEPTEMBER 1987 VOLUME 12 NUMBER 10 Features/99 FEATURES 99 A Programmer's Introduction to OS/2 101 by Ray Duncan Writing your first OS/2 application. The New Generation: A Closer Look 110 by Richard Grehan Some surprises about the relative speeds of 80386 and 68020 machines. Ciarcia's Circuit Cellar: Build the Circuit Cellar AT Computer, Part 1: AT Basics 115 by Steve Ciarcia A faster, smaller, and more efficient 100 percent compatible AT CPU board. Programming Project: Crafting Reusable Software in Modula-2 123 by Hanna Oktaba and Rene Berber Careful program design results in safe, reusable program libraries. Programming Insight: Teaching Old Screens New Tricks 129 by Michael J. Sorens Create fancy screen displays for your homegrown programs. Constructing an Associative Memory 137 by Bart Kosko This nonlinear neural network runs on your PC. Karmarkar's Algorithm 146 by Andrew M. Rockett and John C. Stevenson A method for solving large linear programming problems. THEME: Printer Technologies Introduction Color Printing by Naomi M. Luft If the growth of color printing has been slower than expected, it isn't for lack of technologies. 161 162 163 Vector-to-Raster Algorithms 177 by Dick Fountain Disguising vector information as raster data. Page Printers 187 by Rick Cook New developments will help reduce cost and improve resolution. Print Quality 199 by Lars Jansson Rating printer technologies requires a set of objective definitions for print quality. Engineering Close-Ups : Taming the Hot Heads 209 by Keith B. Davenport Using CAD to design more efficient print heads. Matrix-Line Printing 215 by Mark Hohneker This alternative to a serial moving-head design uses an eight-inch-wide bank of print hammers. Color Thermal-Transfer Printing 221 by Julio Guardado This process is simple in principle but challenging in its implementation. Designing a High-Speed Page Printer Controller 225 by Phil Ellison This design proves that the controller doesn't have to bottleneck the printing system. Strip-Buffer vs. Full-Page Bit-Map Imaging 229 by Bert Douglas This approach minimizes memory requirements. 235 .236 REVIEWS Reviewer's Notebook by Cathryn Baskin TheKaypro386 239 by Ray Duncan This machine delivers two to three times the performance ofthelBMPCAT. 2 BYTE- SEPTEMBER 1987 Cover photo by Paul Avis Themes/161 Reyiews/235 Kernel/287 Mail-Order Performance 245 by Frederick D. Davis The Proteus-286GT from Proteus Technology and the GV-286 from PC Designs. The NEC MultiSpeed 253 by David Satz An inexpensive portable with a fast microprocessor. The Micro Clipper Graphics Subsystem 257 by Charles Weston This two-board subsystem provides enhanced graphics for PC-based CAD systems. PC-MOS/386 263 by Richard Grehan An 80386 operating system that combines multitasking, advanced task communications, and PC-DOS compatibility. Actor 1.0 266 by Leonard Moskowitz A fast, memory-efficient alternative to Smalltalk. ALS Prolog 269 by Alex Lane A Prolog compiler that acts like an interpreter. Benchmarking dBASE III Compilers 277 by Malcolm C. Rubel Offerings from Nantucket, Wordtech Systems, and Fox Software. DESQview2.00 281 by John McCormick Windows, concurrent processing, virtual memory, and more. KERNEL 287 Computing at Chaos Manor: In the Chips 289 by Jerry Pournelle Fast Kat becomes even faster. Applications Only: Potpourri 307 by Ezra Shapiro Ezra looks at a database, a telecommunications package, and more. LISTINGS From BIX 285 FromBYTEnet (617)861-9764 On disk or in print see card after 256 DEPARTMENTS Editorial: 6 Mere Conservatism— or Fear, Uncertainty, and Doubt? Letters and Review Feedback 12 Chaos Manor Mail 28 Microbytes 37 What's New 45 Events 65 BEST OF BIX Apple 317 Macintosh 318 IBM PC 324 Ask BYTE 68 Circuit Cellar Feedback 72 Book Reviews 81 BOMB and Coming UpinBYTE 378 Editorial Index by Company 379 Reader Service 381 BYTE (ISSN 0360-5280) is published monthly with additional issues in June and October by McGraw-Hill Inc. Founder: James H. McGiaw (1860-1948). Executive. editorial. circulation. and advertisingoffices:OnePhoenixMill Lane. Peterborough. NH 03458. phone (603) 924-9281 . Office hours: Monday through Thursday 8:30 AM-4:30 PM. Friday 8:30 AM- 1:00 PM. Eastern Time. Addiess subscriptions to BYTE Subscriptions. 262 Old New Brunswick Rd.. Piscataway. NJ 08854. Postmaster: send address changes. USPS Form 3579, undeliverable copies, and fulfill- ment questions to BYTE Subscriptions. 262 Old New Brunswick Rd.. Piscataway, NJ 08854. Second-class postage paid at Peterborough. NH 03458 and additional mailing offices. Postage paid at Winnipeg, Manitoba. Registration number 9321. Subscriptions are S22 for one year. S40 for two years, and S58 for three years in the U.S. and its possessions. In Canada and Mexico. S25 for one year, $45 for two years. S65 for three years. S69 for one year air delivery to Europe. 3 1 .000 yen for one year air delivery to Japan. 15,600 yen for one year surface delivery to Japan. S37 surface delivery elsewhere. Air delivery to selected areas at additional rates upon request. Single copy price is S3. 50 in the U.S. and its possessions. S4.25 in Canada and Mexico. $4.50 in Europe, and S5 elsewhere. Foreign subscriptions and sales should be remitted in U.S. funds drawn on a U.S. bank. Please allow six to eight weeks for delivery of first issue. Printed in the United States of America. Address editorial correspondence to: Editor. BYTE. One Phoenix Mill Lane. Peterborough. NH 03458. Unaccept- able manuscripts will be returned if accompanied by sufficient postage. Not responsible for lost manuscripts or photos. Opinions expressed by the authors are not necessarily those of BYTE, Copyright © 1987 by McGraw-Hill Inc. All rights reserved. Trademark registered in the United States Patent and Trademark Office. Where necessary, permission is gianted by the copyright owner for libraries and others registered with the Copyright Clearance Center (CCC) to photocopy any article herein for the flat fee of $1.50 per copy of the article or any part thereof. Correspondence and payment should be sent directly to the CCC. 29 Congress St.. Salem. MA 01970. Specify ISSN 0360-5280/83. $1.50. Copying done for other than personal or internal refeience use without the permission of McGraw-Hill Inc. is prohibited. Requests for special permission or bulk orders should be addressed to the publisher. BYTE is available in microform from University Microfilms International, 300 North Zeeb Ri.Dept. PR. Ann Arbor, MI 48106 or 18 Bedford Row. Dept. PR. London WC I R4EJ. England. Subscription questions or problei Piscataway. NJ 08854. , should be addressed to: BYTE Subscriber Service. 262 Old New Brunswick RU. . Section art by Mike Hodges SEPTEMBER 1987 -BYTE 3 BYTE EDITORIAL DIRECTOR, BYTE and BIX Philip Lemmons EXECUTIVEEDITOR, BYTE Frederic S. Langa ASSISTANT MANAGING EDITOR Glenn Hartwig CONSULTING EDITORS Steve Ciarcia Jerry Pournelle Ezra Shapiro SENIOR TECHNICAL EDITORS Cathryn Baskin, Reviews G. Michael Vose, Themes Gregg Williams, Features TECHNICAL EDITORS Dennis Allen Richard Grehan Ken Sheldon George A. Stewart Jane Morrill Tazelaar Tom Thompson Charles D. Weston Eva White Stanley Wszola ASSOCIATE TECHNICAL EDITORS Curtis Franklin Jr. Margaret Cook Gurney, Book Reviews COPY EDITORS Lauren Stickler, Copy Chief Judy Connors-Tenney Jeff Edmonds Nancy Hayes Cathy Kingery Margaret A. Richard Warren Williamson ASSISTANTS Peggy Dunham, Office Manager Martha Hicks L. Ryan McCombs June N. Sheldon ADMINISTRATION J. BurtTotaro, Publisher Beverly Jackson, Publisher's Assistant ADVERTISING SALES Dennis J. Riley, Director of Sales Sandra Foster, Administrative Assistant ADVERTISING/PRODUCTION (603-924-6448) Lisa Wozmak, Supervisor Lyda Clark, Senior Account Coordinator Marion Carlson Karen Cilley Brian Higgins WaiChiu Li, Quality Control Manager Julie Murphree, Advertising/Production Coordinator MARKETING COMMUNICATIONS Horace T. Howland, Director (603-924-3424) Vicki Reynolds, Promotion Manager Lisa Jo Steiner, Marketing Assistant Stephanie Wamesky, Marketing Art Director Sharon Price, Associate Art Director Julie Perron, Market Research Analyst Cynthia Damato Sands, Reader Service Coordinator NEWS AND TECHNOLOGY Gene Smarte, Bureau Chief, Costa Mesa Jonathan Erickson, Senior Technical Editor, San Francisco Rich Malloy, Senior Technical Editor, New York Nicholas Baran, Associate Technical Editor, San Francisco Cindy Kiddoo, Editorial Assistant, San Francisco ASSOCIATE NEWS EDITORS Dennis Barker, Microbytes Anne Fischer Lent, What's New Stan Miastkowski, What's New, Best of BIX CONTRIBUTING EDITORS Jonathan Amsterdam, programming projects Mark Dahmke, video, operating systems Mark Haas, at large Rik Jadmicek, CAD, graphics, spreadsheets Robert T. Kurosaka, mathematical recreations Alastair J.W. Mayer, software Alan R. Miller, languages and engineering Dick Pountain, U.K. Roger Powell, computers and music Phillip Robinson, semiconductors Jon Shiell, high-performance systems ART Nancy Rice, Art Director Joseph A. Gallagher, Assistant Art Director Jan Muller, Art Assistant Alan Easton, Drafting PRODUCTION David R. Anderson, Production Director Denise Chartrand Michael J. Lonsky Virginia Reardon TYPOGRAPHY Sherry McCarthy, Chief Typographer SelindaChiquoine Donna Sweeney TELEMARKETING L. Bradley Browne, Director Susan Boyd, Administrative Assistant PLANNING AND RESEARCH Michele Perron, Director Faith Kluntz, Copyrights Coordinator FINANCIAL SERVICES Philip L. Penny, Director of Finance and Services Kenneth A. King, Business Manager Christine Lee, Assistant Linda Short, D/P Manager Marilyn Haigh Diane Henry Vern Rockwell Lisa Teates JoAnn Walter CIRCULATION Dan McLaughlin, Director James Bingham, Single-Copy Sales Manager Vicki Weston, Assistant Manager Claudette Carswell, Distribution Coordinator Karen Desroches, Direct Accounts Coordinator Louise Menegus, Back Issues BIX EXECUTIVE EDITOR, BIX George Bond SENIOR EDITOR David Betz ASSOCIATE EDITORS Tony Lock wood Donna Osgood, San Francisco MICROBYTES DAILY Dennis Barker, Coordinator, Peterborough Gene Smarte, Bureau Chief, Costa Mesa Nicholas Baran, San Francisco Rick Cook, Phoenix Jonathan Erickson, San Francisco Martha Hicks, Peterborough Anne Fischer Lent, Peterborough Larry Loeb, Wallingford, CT Rich Malloy, New York Brock N. Meeks, La Mesa, CA Jeff Merron, Peterborough Stan Miastkowski, Peterborough Lynne Nadeau, Peterborough Wayne Rash Jr., Washington, DC William Webb, Peterborough GROUP MODERATORS David Allen, Applications Frank Boosman, Artificial Intelligence LeroyCasterline, Other Marc Greenfield, Programming Languages Jim Howard, Graphics Gary Kendall, Operating Systems Steve Krenek, Computers Brock N. Meeks, Telecommunications Barry Nance, New Technology Donald Osgood, Computers Sue Rosenberg, Other Jon Swanson, Chips BUSINESS AND MARKETING Doug Webster, Director (603-924-9027) Patricia Bausum, Secretary Denise A. Greene, Customer Service Brian Warnock, Customer Service Tammy Burgess, Customer Credit and Billing TECHNOLOGY Clayton Lisle, Director Business Systems Technology, MHIS Bill Garrison, Business Systems Analyst Jack Reilly, BusinessSystemsAnafyst PERSONNEL Cheryl Hurd, Office Manager Patricia Burke, Personnel Coordinator BUILDING SERVICES/TRAFFIC Anthony Bennett, Building Services Manager Mark Monkton, Assistant Agnes E. Perry, Traffic Assistant RECEPTIONIST Donna Healy EDITORIAL AND BUSINESS OFFICE: One Phoenix Mill Lane, Peterborough, New Hampshire 03458,(603)924-9281. WestCoast Branch Offices: 425 Battery St., San Francisco, CA 94111, (415) 954-9718; 3001 Red Hill A^e., Building #1, Suite 222, Costa Mesa, CA 92626, (714) 557-6292. New York Branch Editorial Of fee: 1221 Avenue of the Americas, New York, NY 10020, (212)512-3175. BYTEnet: (617) 861-9764 (set modem at 8-1-N or 7-1 -E; 300 or 1200 baud). Fax: (603) 924-7507. Telex: (603) 924-7861. SUBSCRIPTION CUSTOMER SERVICE: Non-US (201) 837-1315; inside U.S. (outside N.J.) 1-800-423-8272; (inside N.J.) 1-800-367-0218. 5i ,r i id| Officers of McGraw-Hill Information Systems Company: President: Richard B. Miller. Executive Vice Presidents: Frederick P. Jannott, Construction Information Group; Russell M*I^ C. White, Computers and Communications Information Group; J. Thomas Ryan, Marketing and International. Senior Vice Presidents-Publishers: Laurence Altman, Electronics; I ■ M 1 1 David J. McGrath, Engineering News-Record. Group Vice Presidents: J. Burt Totaro, BYTE; Frank A. Shlnal, Dodge; Peter B. McCuen, Communications Information. Vice Presidents: Robert D. Daleo, Controller; Fred O. Jensen, Planning and Development; Michael J. Koeller, Human Resources; Talat M. Sadiq, Systems Planning and Technology. Officers of McGraw-Hill Inc.: Harold W. McGraw Jr., Chairman; Joseph L. Dionne, President and Chief Executive Officer; Robert N. Landes, Executive Vice President and Secretary; Walter D. Serwatka, Executive Vice President and Chief Financial Officer; Shel F. Asen, Senior Vice President, Manufacturing; Robert J. Bahash, Senior Vice President, Finance and Manufacturing; Ralph R. Schulz, Senior Vice President, Editorial; George R. Elsinger, Vice President, Circulation; Ralph J. Webb, Vice President and Treasurer. BYTE, BVII ■ and The Small Systems Journal are registered trademarks of McGraw-Hill Inc. 4 BYTE- SEPTEMBER 1987 Inquiry 314 — ► HiWIRE Starts the Job that sm^RTM/ORK 8 Finishes / Introducing HiWIRE 1ntek'ssmARTWORK®is sed by thousands of engi- neers to design printed-circuit boards. Now Wintek intro- duces HiWIRE, an electronic- schematic program that is easy to learn and use. With a click of the mouse button, you can extract sym- bols from our library of over 700 common components and connect them with wires and buses. You can also easily modify the library's symbols or create your own by combining labels, lines, and arcs. HiWIRE Advantages D Easy-to-leam mouse/ menu- driven operation □ Complete documentation and tutorial D Extensive TTL, CMOS, micro- processor, and discrete- component libraries □ Rubberbanding □ Moving, copying, mirroring, and rotating of symbols ..□ Text-string searching □ Multiple display windows □ High-quality schematics from printers and plotters □ Hierarchical-design sup- port; netlist and bill-of- materials utilities □ Schematic/layout cross checking D 800 number for free tech- nical support System Requirements D IBM Personal Computer, PC XT, or PC AT with 320K RAM, parallel printer port, 2 disk drives, and DOS V2.0 or later □ IBM Color/Graphics Adapter or EGA with RGB color monitor □ Microsoft Mouse D IBM Graphics Printer or Epson FX/MX/RX-series dot-matrix printer, and/or: D Houston Instrument DMP-40, 41; 42, 51, 52 or Hewlett- Packard 7470, 7475, 7550, 7580, 7585, 7586 plotter High Performance at Low Cost At $895, HiWIRE delivers quality schematics quickly and easily. You don't need to guess whether or not HiWIRE is right for you. Our money- back guarantee lets you try it for 30 days at absolutely no risk. Call (800) 742-6809 toll free today and put HiWIRE to work tomorrow. Wintek Corporation 1801 South Street Lafayette, IN 47904-2993 Telephone: (800) 742-6809 or in Indiana (317) 742-8428 Telex: 70-9079 WINTEK CORP UD 'WKnra "HIWIRE" is a trademark, and "smARTWORK", "Wintek", and the Wintek logo are registered trademarks ot Wintek Corporation. Europe: RIVA Terminals Lid.. England, Phone: 04862-71001, Telex: 859502/ Australia: Entertainment Audio Pty. Ltd., Phone: (08) 363-0454/ Brazil: Comlcro Informatica E Tecnologla Ltda., Rhone: (041)224-5616 EDITORIAL Mere Conservatism— or Fear, Uncertainty, and Doubt? During COMDEX last June in Atlanta, we conducted a Microcomputer Opinion Poll in the BYTE booth. We asked voters to tell us which machine they considered the best general-purpose microcomputer and which machine they thought would have the biggest market penetration. We asked voters to choose among the IBM PC AT, IBM PS/2 Model 50/60, the IBM PS/2 Model 80, the Compaq 386, the Macintosh II, or "other." (It has to be noted that Apple and many Apple devel- opers pulled out of COMDEX some time ago and that interest in Apple products at COMDEX may be less than among the country's whole population of computer users and developers.) We also asked about preference for operating systems. A lively group of 9154 people came to our booth and voted in the poll. We asked them to identify themselves as end users, consultants, software developers, or hardware developers, and people identi- fied themselves as follows: end users consultants software developers hardware developers 42 percent 37 percent 37 percent 17 percent Clearly, many people belonged in more than one category. Best General-Purpose Microcomputer The results of the vote on best general- purpose microcomputer were surprising: IBM PC AT Compaq 386 IBM PS/2 Model 50/60 Macintosh II IBM PS/2 Model 80 All other machines 46 percent 20 percent 9 percent 8 percent 6 percent 12 percent Since our question asked nothing about the prices of machines, we expected most votes to be divided among the three most powerful machines: the Compaq 386, the IBM PS/2 Model 80, and the Apple Mac- intosh II. Nevertheless, almost half the voters went for the IBM PC AT. Among them, the three most powerful machines got 34 percent of the vote, with the bulk of that going to the Compaq 386— the 32- bit machine that is most familiar and has been on the market longest. After seeing the AT's performance in this vote, we recognized that we should have included the Macintosh SE as well as the Macintosh II. If the AT got more support than the Compaq 386 or the PS/2 Model 80, it is quite possible that the Macintosh SE might have outpolled its more powerful sister machine. Results were fairly even across the dif- ferent types of voters, but the Compaq 386 got 25 percent of the vote among software developers. The IBM PC AT got a slightly higher vote among hardware developers than across the whole population. Greatest Market Penetration On the question concerning which ma- chine will have the greatest market pene- tration, results were as follows: IBM PC AT IBM PS/2 Model 50/60 Compaq 386 IBM PS/2 Model 80 Macintosh II All other machines 43 percent 22 percent 14 percent 7 percent 6 percent 7 percent While only 9 percent thought the PS/2 Model 50/60 was the best general-pur- pose machine, 22 percent thought it would have the greatest market penetra- tion. Among the 32-bit machines, the Compaq 386 again topped the PS/2 Model 80 and the Macintosh II. Here, the PS/2 Model 50/60 got 25 percent of the vote among software devel- opers as against 22 percent in the whole population. Hardware developers voted for the PS/2 Model 50/60 at a rate of 21 percent, lowest for any group. Operating System Preferences The main reason for asking this question, since operating systems often arrive with machines as standard equipment, was to see whether they were ready to embrace OS/2 and whether they expected Unix to gain supporters across different kinds of machines. Here are the results: MS-DOS 52 percent Unix 17 percent OS/2 extended version 1 5 percent OS/2 standard version 7 percent Macintosh OS 5 percent All other systems 4 percent As expected, MS-DOS got the lion's share of the vote. It beat the combined vote for versions of OS/2 by 52 percent to 32 percent. Surprisingly, the extended version of OS/2— IBM's own version with mainframe-compatible database and communications facilities built in- topped the standard version of OS/2. Unix did well also, getting 17 percent of the vote, more than the extended version of OS/2 and more than twice as much as the standard version of OS/2. It looks as if some Macintosh II proponents are planning to use Unix. MS-DOS had fewer supporters among software developers and consultants than across the whole population. Only 45 percent of the software developers and 48 percent of the consultants went for MS- DOS, but 54 percent of the end users voted for it. Not surprisingly, Unix got 22 percent of the vote from software developers and only 14 percent from end users. The OS/2 standard version was equally popu- lar among the different types of voters, while the OS/2 extended version did a lit- tle better among software developers and consultants. Conclusions, Anyone? Although computer people often want the best and the latest and the most powerful, most people at COMDEX were reluctant to embrace the new generation of micro- computer hardware and software. True, neither the Macintosh II nor the PS/2 Model 80 was available when COMDEX took place, and that may account for their surprisingly weak showings. But a larger factor is the unsettled char- acter of the market as everyone waits to see whether IBM will permit PS/2 com- patibles to be made under any conditions. There is a bit more receptiveness to OS/2 than to IBM's PS/2 machines: 32 percent of the voters were willing to go with OS/2, while only 15 percent thought a PS/2 machine is the best microcomputer. On the other hand, 29 percent thought the PS/2 machines would have the greatest market penetration . We'll conduct this poll again in our booth this fall at the COMDEX in Las Vegas and let you know how preferences have changed. —Phil Lemmons Editor in Chief 6 BYTE- SEPTEMBER 1987 When computers get down to business, they move up to Maxell. Imaxell MINI-FLOPPY DISK Maxell was first to provide you with a S 1 /*" high density floppy disk. Just another example of how we keep you a step ahead. maxell THE GOLD STANDARD Maxell Corporation of America, 60 Oxford Drive, Moonachie, NJ 07074 Heal W)rking Conditions If you're looking for a high-speed laser printer that can easily handle as many as 25,000 pages a month, the new Toshiba PageLaserl2® is the machine for you. It thrives in any high-volume office environment Whether it consists of a productive single user, or a network of multiple users sharing the workload. PageLaserl2's extended product life might help to explain its hard- work is mentality At up to 1. 2 million H pages, it's three times more dur- able than, other laser printers. You'll also have an equal appreciation for its advanced paper handling options. Our Toshiba-made dual-bin paper feeders, combined with PageLaserl2's standard cassette feeder, give you a paper capacity of 750 sheets. That's 500 sheets more than most other laser printers. But here's the best part. With three paper feeders, you can now print multiple paper types and sizes automatically. Letter, legal, letterhead, even labels can be ac- ^sa cessed with no physical change. lpn\ r Wharfs more, our optional proprietary envelope feeder lets you print large quantities of envelopes without con- stantly banging away on your office typewriter. You can also use the same font style that appears on your letters to create a 2SSa ^g3£k RrThePag more professional, unified look. But don't think for a second all these bells and whistles slow down performance. At 12 pages per minute, PageLaserl2 is up to 50% faster than many other laser printers. As for multiple emulations, HP LaserJet 500 Plus? Diablo? IBM® Graphics, Qume® and Toshiba P351 all come standard, as do parallel/serial interfaces. There's also a 1.5MB memory- option for full-page 300 dpi graphics. And our optional output jogger/collator ensures easy separation of multiple copy output. All of which means PageLaserl2 can meet the needs of any office worker. A complete library of Toshiba font car- tridges is available with multiple HP Laser- Jet-compatible fonts on each cartridge. And PageLaserl2's high-volume capability and low-priced supplies produce one of the lowest desktop laser costs per page in existence. To top it off, you get all this high-volume ingenuity, speed and flexibility for what you'd ex- i pect to pay for a less equipped low-volume laser printer. So if your business prospers on high volume, get the laser printer that does the same. The PageLaserl2. For more details, call 1-800-457-7777 for the name of the Toshiba printer and computer dealer nearest you. Then see how well PageLaserl2 performs in your surroundings. 1I3M is a registered trademark of International Business Machines Corporation. Diablo is a registered trademark of Xerox Corporation. Qume is a registered trademark of Qume Corporation, biserjet 500 Plus is a registered trademark of Hewlett-ftickard. In Touch with Tomorrow TOSHIBA 'loshiba America, Inc., Information Systems Division The Ada programming language shall be the single, common, high order programming language for... '...all computers that are integral to, physi- cally a part of, dedicated to, or essential in real time to a performance of the mission of weapon systems. . . used for specialized training, diagnostic testing and mainte- nance, simulation, or calibration of weapon systems. . . used for research and develop- ment of weapon systems. . . Use of validated compilers is required. ..this directive is effective immediately" -DoD Directive 3405.2, 3/30/87. '. . .Defense computer resources used in intelligence systems, for the command and control of military forces. . .all major software upgrades. . .all other applications (some exceptions) in keeping with the long range goal of establishing Ada as the primary DoD higher order language. . . waivers to the policy. . .shall be strictly controlled and closely reviewed. . . this directive is effective immediately" -DoD Directive 3405.1, 4/2/87. ♦ Introducing PC AT Version 3 ♦ ♦ ♦ The Serious Ada Compiler For Serious Ada Programmers If you're a serious Ada programmer today, or expect to be one— if you're serious about DoD business and those new DoD directives —you look for a lot more in your Ada compiler than just validation. And the new fourth-generation Alsys Ada compiler Version 3 for the PC AT and compatibles gives it to you. Take code quality, for example. Version 3 generates the highest quality code of any Ada compiler on any machine! Check the PIWG benchmarks, and those of U-Michigan. Compare the quality with code from the mature C and Pascal compilers you're used to. Check especially where you might need quality most, and where Version 3 shines— in the implementation of procedure calls and exceptions. The elimination of code associated with unused subprograms gives you large reductions in code size in many applications. Consider the Runtime Executive. True production quality. No exception-handling overhead is incurred unless an exception is actually raised. The Runtime is optimized for programs running in limited memory, or running for a long time. That's serious. Consider the Ada-specific high level optimizer technology (not derived from Fortran or C) that removes redundant constraints checks and does so much more for code quality. Consider robustness and reliability. Version 3 is written in Ada and bootstrapped through itself. That's proof right there that it will compile 400,000 lines of Ada code. Beyond validation, we test our compilers on hundreds of thousands of lines of extra code— from the ACEC tests, and from Ada Repository programs, and from our own specially designed code that breaks most other compilers. There's a lot more that's serious about Version 3. The new Multi- Library environment, for example, that maximizes the efficiency of programming teams; error messages that correct, instruct, and speed the programming process; human engineering; superb documentation and customer support, jm Send for our free brochure /"~7/ I /( II If /( ~ The Many Facets of Quality. \J^_]/ /_ )L _J Inquiry 352 / / In the US: Alsys Inc. 1432 Main St.. Waltham. MA 02154 'M: (617) 890-0030 In the UK: Alsys Ltd.. Partridge I louse. Newtown Rd,. I lenley-on-Thames. Oxon RG9 I EN Tel: 44 (491) 579090 In the rest of the world: Alsys SA. 29 Avenue dc Versailles. 78170 La Celle St. Cloud. France Tel: 33 1*1) 3918.12.44 ♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦♦ Send me The Many Facets of Quality. Send me more information on the PC AT Version 3 Compiler. Call me. Name_ d Company, Address City _State_ . Zip_ Phone. Alsys. Inc. -1432 Main Street -Walt ham. MA 02154 LETTERS and Review Feedback Lyrix Flaws It was with some concern that I read George R. Allen's review of the Lyrix word processor in the May BYTE. Why would anyone compare a word processor with a text editor? That's like saying that it's easier to use Lotus 1-2-3 than to pro- gram each application in BASIC. Lyrix calls itself a word processor, and it should have been compared with word processors. I use Lyrix 4.0.5 under Xenix 03 . 1 . 1 o n a Tandy 6000 H D system, so in the following comments I am guilty of comparing oranges with, say, tangerines. But with that admission, I'll proceed. First, Mr. Allen claims that Lyrix "takes advantage of the file-security ca- pabilities of the Unix environment." Lyrix does no more than acknowledge whether a file is writable or readable. Permission assignments must be made from Unix/Xenix, not from Lyrix. Second, the spelling checker I have is painfully slow. It also fails to allow on- line additions to the dictionary and does not permit global passing of a correctly spelled nondictionary word. Further- more, the hyphenation feature does no syllabification, and Lyrix removes any hyphens the writer puts in manually. Other problems include an inability to send special characters to the printer in mid-line and the lack of an index, table of contents, and footnotes or endnotes. One serious defect is that Lyrix takes over the function keys and the keypad when you enter the Edit mode. These function-key assignments are useful and contribute much to Lyrix's ease of use; however, when you leave Lyrix, you're left with the function keys unassigned. Lyrix handles long documents well. Although page-oriented, it flows like a document-oriented word processor, and page breaks are indicated by a dashed line that also gives the page number. But all in all, Lyrix is not comparable to any of the serious word-processing packages like Microsoft Word or Word- Perfect. It doesn't even compare favor- ably with text editors originating in the TTY age. David D. Farris Huntsville, TX When reviewing a product such as Lyrix, it is convenient to compare it to a heavily used product of a similar nature that op- erates in the same environment. In my full-time work, I use one of about eight mainframe Unix systems or one of several Xenix-based PC systems. All these sys- tems use vi as a word processor, even though it is a text editor. At the time that I wrote the review (Fall 1986), none of my associates had any form of word- or text- processing systems other than vi running on their Xenix PCs. For these reasons, I chose to compare Lyrix to vi, if only to show that there is a better way. I use version 5. of Lyrix, and I cannot duplicate your problems with the spelling checker. It is reasonably fast, and I can make on-line additions to the dictionary without any difficulties. I can also per- form global passing of words without problems, using the ADD command. I am not sure if you realize that you have an older version of Lyrix. Version 5. does have, for example, footnote and table-of -contents capability. I've experi- enced none of the problems that you have experienced, and I suggest that you con- tact SCO for assistance. —George R. Allen Lyrix Features George R. Allen's review of Lyrix in the May BYTE failed to adequately address the program's primary strengths and weaknesses. Mr. Allen says that Lyrix has almost all the capabilities of vi. Since vi has regular expressions and Lyrix does not, Lyrix has almost none of the capabil- ities of vi. But since vi is a text editor and Lyrix is a word processor, that's as it should be. However, Lyrix has some amazing fea- tures. The primary one is that Lyrix is al- most totally customizable; you can add or delete menu options at your discretion. Best of all, the help screens are configur- able. This, in addition to the customiza- ble editing commands, means that you can configure Lyrix to look like any word processor you like, and the help screens can reflect the changes. I use Perfect Writer at home, so I configured the edit- ing commands of my copy of Lyrix to re- flect Perfect Writer commands. With all these delights, the Lyrix de- signers made some strange decisions about the program's functions and capa- bilities. One of Lyrix's drawbacks is its slow editing speed. Mr. Allen touched on it a little, but he failed to give it the im- portance it deserved. For sheer editing speed, probably nothing could beat vi, and Lyrix doesn't even come close. Other drawbacks have to do with Lyr- ix's use of rulers to control the various formatting decisions and its lack of de- faults (that I could find) in text-spacing for a page. Also, you can use the Delete key for one line only; you must use the arrow keys to get back to the previous line. More disconcerting is Lyrix's ten- dency to insert new text in the middle of old text when wrapping a line in a para- graph. (These last two flaws are probably defects in my Lyrix terminal-configura- tion file and not a defect in Lyrix.) Finally, Lyrix uses dot commands at the beginning of a line to specify options like line spacing. WordStar fans may like this, but it's annoying to the rest of us. The only major bugs I found have to do with the way Lyrix reformats paragraphs. Lyrix assumes that anything with a peri- od, colon, or semicolon is a sentence and puts two spaces after it. Also, when for- matting paragraphs, Lyrix leaves the cur- sor at the bottom of the paragraph instead of leaving it where it started. On balance, Lyrix does an adequate job as a word processor. It isn't as fancy as Microsoft Word, for instance, but its flexibility redeems it. Lyrix hasn't seri- ously challenged the "power" word pro- cessors, like WordPerfect 4.2, because its formatting isn't as powerful yet. But due to its modularity, I wouldn't take any bets on how long it will be before Lyrix gives the best DOS-based word processors a run for their money in printer control, if only because of its simplicity. Darrel W. Riley Seattle, WA continued LETTERS POLICY: To be considered for publication, a letter must be typed double- spaced on one side of the paper and must in- clude your name and address. Comments and ideas should be expressed as clearly and con- cisely as possible. Listings and tables may be printed along with a letter if they are short and legible. Because BYTE receives hundreds of letters each month, not all of them can be published. Letters cannot be returned to authors. Gener- ally, it takes four months from the time BYTE receives a letter until it is published. 12 BYTE- SEPTEMBER 1987 We invented the modem that makes fewer demands onyourPC. The Ven-Tel Half Card™ modem. All the power and speed of our regular modems, but with some major advantages for people who demand versatility from their PC. Regular modems plug into one of your computer's full-size slots. Just like expan- sion boards— color boards, graphics cards and memory expanders. The Ven-Tel Half Card modem is different. It plugs into a short slot, freeing up a long slot so your PC can handle an addi- tional function. And while other modems have about 300 components,ours has 70. So it not only demands less space from your computer —it also demands less power and generates less heat. Your PC stays cool and stress-free. Competitively priced, the Half Card modem is avail- able in both 1200 baud and 2400 baud speeds. And it's backed by Ven-TePs free five-year warranty. No other major manufacturer even comes close. If you make a lot of demands on your PC . . . demand the less-demanding modem: The Ven-Tel PC Modem Half Card. uifenlel Modems Our free 24-page booklet, "HowTo Select The Correct Modem" contains specific information about our full line of modems.To request your copy, call 800-538-5121. In California, call 408-727-5721 . Inquiry 304 LETTERS Supports up to 150 lbs. All steel frame construction 5K2 square foot footprint ANTI-RO Anthro Corporation is a wholly owned subsidiary of Tektronix, Inc. Anthro is o registered trademark of Anthro Corporation. On the issue of whether Lyrix has most of the capabilities ofvi, I think you and I dif- fer on the semantics of the word capabili- ties. Lyrlx does have most of the capabili- ties ofvi, even though vi is a text editor. Your comments on the customization features of Lyrix are correct. I have used the customization features to a much greater extent than I mentioned in the re- view. This feature is one of Lyrix 's great- est selling points. I did verify several of the problems that you pointed out, which I had not picked up in my usage. In regard to Lyrix 's speed on my IBM PC, the occasional response problems also appear with vi on my PC, so I don 't think that Lyrix itself has a sig- nificant speed problem. I may be a little biased, because the time-sharing systems that I use in my work are extremely slow due to the large number of users. Lyrix on my PC is faster than my systems at work by a large factor. —George R. Allen C, More In the June C interpreter review, Mr. Unger didn't point out the most obvious advantage to using the C-terp interpreter. When you set up C-terp with your current compiler, C-terp offers exactly the same functions and features as the compiler. This means that you don't have to create two versions of a program, one for C-terp and one for the compiler. By using C-terp, I can write a 10,000- line program using all the functions of the Microsoft compiler and still run it under the interpreter to find a bug or error. When you 're dealing with large programs with long compile times, C-terp is a god- send. If I had to take my 10,000-line pro- gram (in 20 to 30 files) and, for example, change all occurrences of get ( ) to get- line ( ), I could never get a program developed. C-terp is too expensive if you are only trying to learn C , but it is well worth the money for professional programmers. If you develop serious C programs, once you try C-terp you will never go back. P. Lyle Mariam St. Louis, MO I pointed out in my review that if you have a copy of one of the five C compilers sup- ported by C-terp, you can create a ver- sion of the interpreter that uses all the functions that are available with that compiler. In fact, you can add other library func- tions to the interpreter using a simple but somewhat tedious procedure; I added the entire Essential Graphics graphics func- tions to a version of C-terp. It increases the size of the interpreter program and continued Inquiry 309—* The A*Star i MEGAHERTZ 80286 ■ ■ ■- «j | jHBBH , :-T-*j ± pw££ I ' -* m . ; ■••■ ! , ^B THE A*STARS CPU PERFORMANCE IS SUBSTANTIALLY ABOVE THAT OF THE IBM PS/2 MODEL 60." -INFOWORLD 1UM ImSTir ItSWHcllHifS could own a Wells American A*Star J8> that can outperform it. Of course, for nearly the same money as an A* Star, you could also own any number of Asian built no-name clones. But then you wouldn't be getting the exclusive ownership advantages that only the A* Star offers. Advantages like an 80286 CPCJ that runs the new MS OS/2 operating system and can also run at 6, 8, 10, 12, 14 and now... 16 MHz! And you wouldn't be getting schematics. (Ours are free!) Or GE/RCA on-site maintenance. Or a no questions asked money-back guarantee. Oh, and there's one more little item you wouldn't get... peace of mind. Wells American has been making microcomputers longer than IBM! In fact, we ve probably been making microcomputers longer than anybody! But hey, who are we kidding? Not everyone cares about quality, reputation, support or serviceability. That's why there are mail-order houses. And, as hard as it is to believe, not everyone cares about money or performance. Maybe that's why there's IBM (and Compaq?, .and all the others). But, for computer users who do care, there is, fortunately, a vendor who also cares. . Wells American. And, we'd like to prove it to you. Call us with the page number of this ad. It's worth a big discount on your next A*Star computer system. Call today. 803/796-7800. This offer is limited. ^ Wells American, Corporate Headquarters: 3243 Sunset Boulevard . West Columbia, South Carolina 29169 • 803/796-7800 • TWX 510-601-2645 IBM, OS/2 and PS/2 are trademarks of International Business Machines Corporation. C PROGRAMMER! 10 Important Reasons to Use db_VlSTA for File Management 1. db_VISTA is written in C. 2. It's fast, combining B-tree indexing with "network" or direct "set" rela- tionships between records. 3. It's flexible. Use db_VISTA as a file manager or a complex database; single-user PC to multi-user VAX with millions of records. Upgrade easily with full compatibility! 4. It's portable. MS-DOS, UNIX, VMS . . . see list below. 5. It uses space efficiently. Non-RAM resident; only operative functions are in your run-time program. And there's more . . . 6. Royalty-free run-time. 7. Complete source code available. 8. SQI^based db_QUERY! Add fast, C-linkable db_QUERY for ad-hoc queries and reports. Build an end-user interface; provide a rela- tional view of the database. FREE tech support hotline! 60 days free; for product or applica- tion development help. Extended support, consulting, training classes — all available. 30 Day Money-Back Guarantee. Full refund if not completely satisfied. That's just the beginning! Want more details? Call today! Order Now. It's easy — simply call toll- free. We'll answer your technical ques- tions and get you started . . . fast delivery. Call Toll-Free Today! 1 (800) db-RAIMA (that's 1-800-327-2462) - OR Call 1-206-828-4636 9. 10 clbJ/lSTA Royalty Free Prices Object w/Source Single-User $ 195 $ 495 Multi-User $ 495 $ 990 VAX Multi-User $ 990 $1,980 db_QUERY prices are the same as above LETTERS VISA ► Operating systems: MS-DOS, UNIX, XENIX, ULTRIX, VMS; more . . . ► Compilers: Microsoft, Lattice, IBM, Computer Innovations, Aztec, Turbo C, UNIX, XENIX; more to come . . . also works with most C libraries! llRAIMA LMcDRPDRATIDN 3055 - 112th N.E., Bellevue, WA 98004 USA 2 (206) 828-4636 Telex: 6503018237 MCI UW m consequently decreases the size of the source code you can use. When used in this way, C-terp is a tre- mendous time saver for developing pro- grams that you will later compile. —John Unger C Syntax Checker I read John Unger' s review of C interpret- ers (June) with great interest. C interpret- ers are created as program-development and debugging environments, not as compilers, and the error messages they generate are one of the most important is- sues to consider when selecting one. Mr. Unger deserves particular commendation for addressing this concern. As a user of the Microsoft C compiler, I spent hours trying to locate mysterious errors before I realized that the most common mistakes are simple typos, which the compiler usually notices sever- al lines past the place where they actually occur. Frustrated with missing braces and other details, I wrote a program (see listing 1) that performs a quick and rudi- mentary syntax check on my source code. The exit codes allow the use of this syntax checker in batch files, making the entire compilation even easier. Jerzy Tomasik Long Beach, CA Listing 1: Syntax checker for C source code. /* syntax . c Program running a quick syntax check on C source code Version 1.11 J. Tomasik; created 05/23/87 */ ^include main ( argc , argv ) int argc; char *argv[]; { FILE*fopen(), *infile; char c ; int lbrace = 0, rbrace = 0, squote = 0, dquote = 0, lpar = 0, rpar = 0; int rbrkt = 0, lbrkt = 0; int bytecount = 0, errorcount = 0; if( argc 1 = 2) { printf ( "SYNTAX checker for C source code, version 1.1 \ n Copyright (C) J. Tomasik 1987, 1988 \ n \ n" ) ; printf ( "Usage: syntax fname.ext \n" ); exit(l); } infile = fopen( argv[l] , "r" ) ; if ( infile == NULL ) { printf ( "Cannot open fe \ n" , argv[l] ); exit(2); } while ( (c=fgetc( infile)) ! = E0F) { ++bytecount; if(c=='{» ) ++lbrace; elseif(c== '}' ) ++rbrace; else if ( c== ' \" ) ++squote; else if ( c == ' \ "» ) ++dquote ; else if ( c == '(' ) ++lpar; else if ( c == ' ) ' ) ++rpar; else if( c == ' [' ) ++lbrkt; else if ( c== ']' ) ++rbrkt ; } f close ( infile ) ; printf ( "The file length is %d \ n" , bytecount ) ; if ( lbrace != rbrace ) { printf ( "There are % 3d left and % 3d right braces \ n", lbrace, rbrace ) ; ++errorcount; } if ( lpar ! = rpar ) { printf ( "There are % 3d left and % 3d right parentheses \ n" , lpar, rpar ) ; ++errorcount; } if( lbrkt != rbrkt) { printf ( "There are % 3d left and % 3d right brackets \ n", lbrkt, rbrkt); ++errorcount; } if( squote %2 ) { printf ( "The single quote marks are not paired \ n" ) ; ++errorcount; } if( dquote %2 ) { printf ( "The double quote marks are not paired \ n" ) ; ++errorcount; } if ( errorcount == ) { printf ( "No errors found, OK to compile \ n" ) ; exit(O); } else exit( errorcount ); } continued 16 BYTE- SEPTEMBER 1987 . -CITIZEN ■;V- V ' You're looking at all the printer you'll ever need, For any application you'U ever have, V - ^eQtizen TM TBbut^ M fering superb word processings spreadsheet graphics and data pro- cessing applications. At a price yoiill find surprisingly affordable, The iribute 224 delivers true letter- quality printing at 66 .^s ; corresp ? (at 10 cpi). In standardor proportional spacing. Arid optional • v - IC cards' enable fonts andemulations. to be easily expanded. You'also get high-resolution graphics. A built-in, push-' feed, variable- width tractor and automatic paper loading sysr. tern. Both :■ serial and paraUel Mterf aces for flexible hardw cornpatibility Front panel access to mostprint functions. And compatibility with virtually evetyrioajoi-software.package! [ ; ■> ;^.thds ; andit^ Mc^ed^ service 7 excel- ; ■;" ' «k : lent documentation^ and 12-month warranty ' £ . - ; "• >: For more infematior^calll -800-556-123^ Extension 34/ \ hCalifornia ; caU'l-800-441-2345 ; Extension 34.^;: Th$ G^ , / , . * ■". . ( ^ to ^-rz l^fTPl ^l?!^" ^ 24-pin printing. •-; ~ ^=^'1^^ : .; : ■'■.''■ ®1987 Citizen America Corporation. Citizen, the . - 1V.« i . V i : L ; 1 ~. : 1 • 1 ' ; ""'T ' "'■■•I i: '•■" 1 Citizen logo andTribute 224^6 trademarks of 1 OntefS tfiat Hill llKt ClOCKWOrK. ■ CiUzchX^StchCb;. Ltd. ' s '■ - ; v :ii £££ft&. SH $& -- ^ ^ Inquiry 47 • LETTERS Understanding C In the review of C interpreters in the June BYTE ("Four C Language Interpreters" by John Unger), Mr. Unger lists a single "major shortcoming" of C-terp as "its lack of a built-in library. " What is horri- fying about this statement is that it shows a fundamental failure to understand the reason for the product's existence. C-terp is for those who need to develop code for their compilers. It requires you to use the compiler's libraries, because it is trying to limit the degree to which the same source causes different results when run under the interpreter and when compiled by the compiler. In short, C- terp is designed to be a development envi- ronment. Indeed, you cannot order C- terp without specifying which compiler you will be using. To fail to understand that you must use your own compiler's li- brary of routines with C-terp is to fail to understand the nature of the product. It's much like complaining that a calculator is a flawed product because it's too mathematical. There also seems to be a notion that C interpreters are a great way to learn C. Certainly Gimpel Software is not perpet- uating that misconception, but the idea exists nonetheless. BASIC is an ideal learner's interpreted language, because the significant unit in BASIC is the line. It is not idiotic to sit down at a computer keyboard and start writing BASIC to learn it. However, to produce code in a modular language you must understand the structure of the language, the scope of variables, and so on. In C, the words of the language are less important than the structure. Avoiding syntax errors is not the heart of learning C . At the Eye Research Institute, we re- cently purchased a site license for C-terp because it is so useful. In particular, it has a good line editor, lets you run quick checks to make sure you didn't leave off a semicolon, and lets you quickly test what actually comes out of a function before developing too much code for easy de- bugging. Furthermore, C-terp is a dream for, say, graphics-routine development. With C-terp, you can interactively devel- op what you want to see. In such an appli- cation, it's a minor miracle to have your first compiled output the only compiled output. Tom Clune Boston, MA First, let me add the next three words of the sentence that you quoted from my re- view. The entire phrase is, "its lack of a built-in library of mathematical func- tions. " C-terp comes with a complete built-in library of extremely useful func- tions and is lacking only in this one spe- cific area— support for math functions. Because both Run/C and Instant-C in- clude mathematical functions in their built-in libraries, I thought it was fair to point out the omission of such functions in C-terp 's. C-terp is designed primarily for use in a development environment as a compan- ion program to a specific C language compiler; this makes its own lack of math functions not as crucial. But C-terp can also be used alone, as a tool to learn C, to test concepts of the language, and to pro- duce useful programs that can run within the confines of its interpreter environ- ment. It is wrong to imply that C-terp must be used with a specific compiler. I agree, however, that any C language in- terpreter is most useful when it can work with source code that can be seamlessly ported between the interpreter and com- piler environments. I wholeheartedly support your opinion that trying to learn C using a mindset de- veloped in BASIC is a serious mistake. continued Transmitted Invoice Price, Qty, Parti Matched Invoir* Staffped oded (c) *«tf5£aSSsS£ »&$*■ *S?S-2S3*£5!*^ .\0s^ e " ,****** ion •l**" .mo* *es a supP' ort- cba^.!^'de3\ et Pl^°cV Checks Printed & Signed r - - 1 1 T — 4— - i f Check Register Open Accounts Payable ! (•) I I l (e) l i I I i T l---> A/P Distribution eneral tf>& *g5*+~ PATTON & PATTON 81 Great Oaks Blvd., San Jose, CA 95119 i 1-800/672-3470, ext. 897 California 1-800/538-8157, ext. 897 Outside California 408/629-5044 International *plus shipping. In California add tax. Excellence in chartinQ the flow of ideas BYTE- SEPTEMBER 1987 Inquiry 214 Ever ex ASIC Does It Again 4MB EMS/Extended Memory for PS/2 Micro Channel" Single Custom Chip The new Application Specific Integrated Circuit (ASIC) from Everex performs the memory management on the RAM 4060™. The functions of many chips are combined into a single 84 pin chip. This has reduced the total number of components to increase the reliability and create more room for memory. Boost your memory with the RAM 4000 all the way to 4 megabytes! Flexible for your [ advantage There are two banks of memory on RAM 4000. Each bank (18 chips) gives you 2MB. Load either 2MB or 4MB as you need for your application. It is fast, easy and economical. Configure to your needs The ASIC chip frees you from restrictions. Allocate a part of the 4MB as EMS memory and the rest as extended. Or you can also dedicate the entire 4MB as either EMS or extended. More memory for more software The RAM 4000 lets you run larger spreadsheets with Lotus® 1-2-3®, bigger databases with dBase III Plus™ or run more applications in Microsoft® Windows. ' ■ Easy installation The I/O addressing and memory configuration are done by software so there are no jumpers or switches to set. Just plug the board into the machine and run the computer's setup utility. Software Partners RAM 4000 is accompanied by Expanded Memory Manager which manages the operation of all EMS memory, while EDISK lets you use RAM to simulate an extra fast drive. There is also a print spooler that lets you print files while you edit others. Why wait? For the name of the Everex dealer nearest you call: (800) 821 0806 in USA (800) 821-0807 In Calif. EVER for Excellence 48431 Milmont Drive Fremont, California 94538 Everex, EVER for Excellence, RAM 4000, Personal System/2, Micro Channel, Lotus, dBase lit Plus, and Microsoft are registered trademarks of their respective companies.© 1987 Everex Systems, Inc. All rights reserved. Inquiry 91 for End-Users. Inquiry 92 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 19 WHERE TO FIND AND BUY LET'S C AND CSD National B. Dalton Software. Etc. B. Dalton Software, Etc. Minnesota B. Dalton Soltware. Etc. Floppies Discount Software Express Program at Santa Monica Bloomingdale B. Dalton Software, Etc. 103 Fifth Avenue Knoxville Radio Shack stores 213-393-7122 B. Dalton Software, Etc. Brooklyn Park New York 615-584-5866 B. Dalton Software, Etc. 129 North Wabash Ave. 612-561-6421 Executive Photo Sherman Oaks Chicago B. Dalton Software, Etc. New York Alabama 818-501-6585 312-236-0201 Burnsville 800-882-2802 Texas Mac Solutions B. Dalton Software, Etc. B. Dalton Software, Etc. 612-892-3464 Computer Diagnostics B. Dalton Software, Etc. Huntsville Sherman Oaks 55 West Monroe B. Dalton Software, Etc. Rochester Dallas 205-883-4125 818-986-4101 Chicago Edina 716-248-3554 214-991-8563 Fry's Electronics 312-782-5762 612-922-2293 Executive Photo B. Dalton Software. Etc. Sunnyvale B. Dalton Software, Etc. B. Dalton Software, Etc. Scarsdale Dallas Arizona 408-733-1770 645 North Michigan Ave. Maplewood 914-723-1331 214-744-3423 B. Dalton Software, Etc. B. Dalton Software, Etc. Chicago 612-770-6628 B. Dalton Software, Etc. B. Dalton Software, Etc. Phoenix Torrance 312-642-5648 B. Dalton Software, Etc. White Plains Denton 602-996-5772 213-371-0157 Heath Zenith Minneapolis 914-682-8606 817-566-6650 B. Dalton Software. Etc. Software Centre Int'l. 3466 W. Devon Ave. 612-332-9008 B. Dalton Software. Etc. B. Dalton Software, Etc. Phoenix Upland Chicago B. Dalton Software, Etc. Yonkers Houston 602-943-9723 714-946-5665 312-583-3920 Minnetonka 914-779-8490 713-946-4877 B. Dalton Software. Etc. B. Dalton Software, Etc. S.C.I. Niles 612-542-3108 B. Dalton Software, Etc. Tucson Westminster Niles B. Dalton Software, Etc. Houston 602-327-5828 714-892-9020 312-965-9044 Rochester North Carolina 713-682-5933 Oak Brook Computers 507-282-2706 Software Express B. Dalton Software. Etc. Oak Brook Terrace B. Dalton Software, Etc. Charlotte Houston California Colorado 312-941-9005 Roseville 704-522-7638 713-439-1045 B. Dalton Software. Etc. B. Dalton Software, Etc. 612-631-8095 B. Dalton Software, Etc. ComputerAge Bakersfield Boulder Raleigh Houston 805-832-2888 303-939-9005 Indiana 919-781-4078 713-977-0722 B. Dalton Software, Etc. B. Dalton Software. Etc. B. Dalton Software, Etc. Missouri Software Galleria Buena Park Denver Glendale Center B. Dalton Software, Etc. Houston 714-821-5840 303-592-1600 Indianapolis Clayton Ohio 713-890-2222 B. Dalton Software, Etc. B. Dalton Software, Etc. 317-251-3198 314-863-3324 Heath Zenith B. Dalton Software, Etc. Canoga Park Fort Collin B. Dalton Software, Etc. B. Dalton Software, Etc. Cleveland Mesquite 818-348-6030 303-226-0880 Castleton Square Kansas City 216-292-7553 214-681-2586 B. Dalton Software, Etc. B. Dalton Software, Etc. Indianapolis 816-763-9656 B. Dalton Software. Etc. San Antonio Discount Computer City of Industry Littleton 317-576-0260 B. Dalton Software. Etc. Columbus San Antonio 818-912-1079 303-933-0081 B. Dalton Software, Etc. Kansas City 614-868-6874 512-680-5021 B. Dalton Software. Etc. B. Dalton Software. Etc. Claypool Center 816-361-2620 B. Dalton Software. Etc. Concord Westminster Indianapolis B. Dalton Software. Etc. Columbus 415-689-7098 303-427-9390 317-634-3730 St. Louis 614-459-6607 Virginia B. Dalton Software. Etc. Heath Zenith 314-968-4505 Heath Zenith B. Dalton Software, Etc. Cupertino Westminster Springdale Arlington 408-257-5627 303-429-2292 Iowa 513-671-1115 703-522-6161 B. Dalton Software. Etc. B. Dalton Software. Etc. Montana B. Dalton Software Dominion Software Escondido Des Moines B. Dalton Software, Etc. Toledo Chester 619-747-2175 Connecticut 515-278-1030 Missoula 419-475-3884 804-796-7936 B. Dalton Software, Etc. Computers Etc. 406-721-0320 B. Dalton Software, Etc. Fresno Fairfield Falls Church 209-225-6274 203-336-3100 Kansas Oklahoma 703-241-8519 The Computer Edge B. Dalton Soltware. Etc. B. Dalton Software. Etc. Nevada B. Dalton Software, Etc. Software Central Han ford Trumbull Wichita B. Dalton Software, Etc. Oklahoma City Norfolk 209-583-1096 203-372-7882 316-681-1480 Reno 405-634-6601 804-461-6452 B. Dalton Software, Etc. B. Dalton Software, Etc. 702-825-6665 B. Dalton Software, Etc. Computer Works La Mesa Waterford Tulsa Petersburg 619-461-5032 203-443-3360 Kentucky 918-663-5454 804-861-1010 B. Dalton Software. Etc. Softownlnc. Business Computers New Jersey Software Plus Los Angeles Watertown and Software B. Dalton Software, Etc. Richmond 213-657-4285 203-274-9227 Louisville Eatontown Oregon 804-285-2170 B. Dalton Software, Etc. 502-893-3533 201-542-2285 B. Dalton Software, Etc. B. Dalton Software. Etc. Manhattan Beach Heath Zenith Eugene Springfield 213-546-7481 District of Columbia Fairlawn 503-345-1022 703-971-0104 B. Dalton Software, Etc. B. Dalton Software. Etc. Louisiana 201-791-6935 Software Express ICN Montclair 202-737-7607 B. Dalton Software, Etc. Soltware City Eugene Springfield 714-625-1290 B. Dalton Software. Etc. New Orleans Greenbrook 503-342-1298 703-569-4141 B. Dalton Software. Etc. 202-429-9782 504-524-0445 201-968-4840 B. Dalton Software. Etc. Software Center Northridge ICN ComputerSystems 9403 S.W. Washington Sq. Rd. Vienna 818-993-9167 202-775-8188 Somerville Portland 703-356-3600 B. Dalton Software, Etc. Maryland 201-725-1373 503-639-7657 Heath Zenith Orange Heath Zenith B. Dalton Software, Etc. B. Dalton Software. Etc. Virginia Beach 714-634-1552 Florida Baltimore Woodbridge Clackamas Town Center 804-460-0997 B. Dalton Software. Etc. B. Dalton Software. Etc. 301-661-4446 201-855-1999 Portland Orange Altomonte Springs 305-260-6562 B. Dalton Software, Etc. 503-653-9571 714-974-9820 Cockeysville B. Dalton Software. Etc. Washington B. Dalton Software. Etc. Heath Zenith Heath Zenith New Mexico Downtown at 5th and Alder B. Dalton Software, Etc. Pleasanton Plantation Rockville B. Dalton Software. Etc. Portland Bellevue 415-460-0966 305-791-7300 301-881-5420 Albuquerque 503-241-2500 206-453-1696 B. Dalton Software. Etc. B. Dalton Software. Etc. Sacon Computers 505-888-9595 B. Dalton Software. Etc. University Bookstore-W.V. Redondo Beach Tampa Rockville 1004 Lloyd Center Seattle 213-214-0480 813-971-7166 301-258-9505 Portland 206-634-3400 Compuclassics New York 503-249-8672 B. Dalton Software, Etc. Resedo Home Software Tacoma 818-705-1895 Georgia Massachusetts Albany 206-472-2267 Cardinal Computers B. Dalton Software. Etc. Computers Solutions. Inc. 518-438-7058 Pennsylvania Riversdale 1159 Northlake Mall Holyoke Heath Zenith B. Dalton Software. Etc. 714-785-6160 Atlanta 413-533-3751 Amherst King of Prussia Wisconsin B. Dalton Software. Etc. B. Dalton Software, Etc. 716-832-3090 215-337-9151 New Age Tech Riverside Gwinnet Place B. Dalton Software. Etc. B. Dalton Software, Etc. Halescorners 714-687-4613 Atlanta Michigan Bay Shore Monroeville 414-425-3000 B Dalton Software, Etc. B. Dalton Software, Etc. Software City 516-665-4111 412-373-3207 B. Dalton Software, Etc. San Bernardino Atlanta Ann Arbor B. Dalton Software, Etc. B. Dalton Software, Etc. Milwaukee 714-381-6409 404-422-9816 313-996-4500 Clay Pittsburgh 414-272-0185 B. Dalton Software. Etc. B. Dalton Software, Etc. B. Dalton Software. Etc. 315-458-0163 412-232-9502 B. Dalton Software, Etc. San Diego Atlanta Dearborn B. Dalton Software, Etc. B. Dalton Software, Etc. Wauwatosa 619-291-0154 404-261-7944 313-593-3033 Flushing Willow Grove 414-258-4144 B. Dalton Software, Etc. Heath Zenith Thompson Electronics 718-961-5930 215-657-4669 San Diego Atlanta Monroe Softwaire Centre Int'l. 619-291-5779 404-252-4341 313-241-1911 Forest Hills B. Dalton Software, Etc. Academic Software Strom Systems 713-793-8112 Rhode Island San Diego Roswell Plymouth Heath Zenith Software Center Rl 619-235-4327 404-998-7766 313-455-8022 N. White Plains Warwick B. Dalton Software. Etc. Computer Talk 914-761-7690 401-738-9100 San Francisco Rochester B. Dalton Software, Etc. 415-986-2690 Hawaii 313-651-2552 666 Fifth Ave. B Dalton Software. Etc. Software Plus Micro Station New York South Carolina San Jose Honolulu Southfield 212-315-4744 Software City 408-270-3445 808-538-3344 313-358-5820 B. Dalton Software, Etc. Spartanburg B. Dalton Software. Etc. The Software Store 170 Broadway 803-574-4713 Santa Barbara Utica New York 805-682-9658 Illinois 313-358-5820 212-267-7894 B. Dalton Software, Etc. Software City B. Dalton Software. Etc. Tennessee Note: Product availability Santa Clara Arlington Heights 396 Avenue of the Americas Software City may vary at B. Dalton 408-246-0802 312-259-4260 New York 212-529-6985 Chattanooga 615-899-3541 Software, Etc. stores. If there isn't a dealer listed in your area, don't give up. Give us a call. Phone 1-800-MWC-1700. In Illinois 1-312-472-6659. 20 BYTE- SEPTEMBER 1987 Inquiry 167 PRESENTING THE DIFFERENCE BETWEEN FAST COMPILING AND FAST PROGRAMMING. For compiling speed, you can't do better than Let's C. But to really speed up programming you can't do without the powerful source level debugger, csd. If you want the power, portability and flex- ibility of C, start with the complete compiler, Let's C. For utilities, editor, compil- ing speed and fast, dense code, Let's C has it all. But to get your pro- grams up and running you need more. Because even the fastest compiler can't outran bugs. You need the revolutionary C Source Debugger, csd. CUT DEVELOPMENT TIME IN HALF WITH csd csd lets you bypass the time consuming frus- trations of debugging-like long dumps and clunky assembler. With csd, you actually debug in C. You learn faster because you watch your program run in C. You finish faster because csd combines the speed of a compiler with the interactive advantages of an interpreter. The end result? Development time is sliced in half. REVIEWERS ARE RAVING ABOUT LET'S C AND csd. LIMITED TIME OFFER FREE csd WITH LET'S C! LETS C AND csd FEATURES ^# Let's C: • Now compiles twice as fast • Integrated edit-compile cycle: edi- tor automatically points to errors • Includes both small and large memory model • Integrated environment or command line interface • 8087 sensing and support • Documentation features new lexicon format • MS-DOS object compatible • New make utility • Fast compact code plus register variables • Full Kernighan & Ritchie C and extensions • Full UNIX compatibility and complete libraries • Many powerful utilities including make, assembler; archiver, cc one- step compiling, egrep, pr, tail, wc • MicroEMACS full screen editor with source included • Supported by dozens of third party libraries • For the IBM-PC and Compatibles • Not copy protected Sieve Benchmark (Compile time in seconds) Let's C: 2.8 (On 512K6Mhz IBM-AT) Turbo C: 3.89 (As advertised) csd: • Large and small memory model • Debug in C source code, not assembler • Monitor variables while tracing program • Does not change program speed or size • Provides separate source, eval- uation, program and history windows • On-line help screens • Can interactively evaluate any C expression • Can execute any C function in your program • Trace back function • Ability to set trace points • Not copy protected "Let's C is an inex- pensive, high-quality programming package. . . with all the tools you will need to create applications! 1 -William G. Wong, BYTE, August 1986. "The performance and 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. "csd is close to the ideal debugging environ- ment. . . a definite aid to learning C and an indispensable tool for program development." -William G. Wong, BYTE, August 1986. ' This is a powerful and sophisticated debugger built on a well-designed, 'serious 7 compiler." -Jonathon Sachs, Micro/Systems Journal, April, 1986 START TO FINISH, THERE'S NO BETTER ENVIRONMENT. Get started with the right C compiler and you'll have everything you need for development-including source level debugging. On top of it all, Let's C and csd are today's best values in professional C programming tools. And most reliable: Mark Williams C compilers have been sold with DEC, Intel and Wang computers since 1981. 60 DAY MONEY BACK GUARANTEE Mark Williams gives you a full 60 days to find out just how good Let's C and csd really are-or your money back. So if you want more than a fast compiler-if you want your programs up and running fast, ask for Let's C and csd. You'll find them at your software dealer's, in the soft- ware department of your favorite bookstore, through the Express Program at over 5500 Radio Shacks or you can order now by calling 1-800-MWC-1700 * In Illinois call. 1-312472-6659. Mark Williams Company 1430 West Wrightwood, Chicago, Illinois 60614 © 1987 Mark Williams Company Let's C is a registered trademark of the Mark Willi;uns Company. UNIX is a trademark of Bell Libs. MARK WILLIAMS LET'S C AND c«f.0NLY $75 EACH. Inquiry 168 SEPTEMBER 1987 -BYTE 21 LETTERS However, an interpreter 's ability to catch syntax errors quickly, which you yourself mention, does make it a useful learning tool for beginning C programmers. —John Unger Alternate Approach to DTP The theme of the May issue of BYTE was desktop publishing; however, nowhere in the articles or charts was there any men- tion of the PowerText Formatter, an $89.95 desktop-publishing product an- nounced and shown at PC-Expo in July 1986. John W. Seybold's view of desktop publishing is but one approach; he dis- misses all approaches other than WYSIWYG. But current Macintosh and IBM WYSIWYG software leaves a lot to be desired and suffers from some funda- mental problems, and the alternatives may be more cost-effective, both in initial cost and in day-to-day operation in a pro- duction environment. WYSIWYG is really only approxi- mately what you get. The fonts differ from screen to page, and interletter and word spacing differ. What looks nice kerned on the screen can often end up as touching characters on the printout, and what seems to be centered on the screen may not be when it's printed. Scaled fonts, such as those of Post- Script, do not map onto dots very well. In addition, a good typographer will often change the shapes of letters in different sizes simply because they look better. Mathematics can't do this. As a result, scaled fonts are not as crisp and clear as fonts discretely designed for each point size. WYSIWYG systems don't function very well in environments where several people supply the copy and where exter- nal artwork and halftones have to be fac- tored in. And, at least on the IBM PC and the Macintosh, using WYSIWYG screens to lay out metro-size newspapers is some- what like painting through a keyhole. WYSIWYG requires a lot of hardware. In the PC arena, one really needs a PC AT-class machine, an EGA card, a hard disk drive, and a mouse, not to mention the laser printer. Can everyone who needs desktop publishing really afford all this hardware? WYSIWYG is ideal for flyers and short newsletters. But is it really practical for books of 200 or more pages? When you strip away the hype from desktop publishing, what you really find is a problem of economics. Typesetting costs a lot of money . That problem can be addressed by 300-dot-per-inch (dpi) laser printers, at least in typesetting textual material. Page-layout and composition programs have their place, but they are only a part of the typesetting and publish- ing problem. When the visual aspects of each individual page are as important as the textual aspects, then page-layout pro- grams may be the ultimate solution. However, advertising material, flyers, and newsletters represent only a very small percentage of the printed material produced in this world. Are we to believe that the economic solution to the high cost of typesetting for each and every page printed is to sit in front of a screen with a mouse? Your theme articles indicated that desktop-publishing hardware costs be- tween $10,000 and $15,000, with soft- ware running between $200 and $800. But consider this: The street price of an HP LaserJet Series II printer is about $1700, a good set of times roman and hel- vetica fonts costs about $155, and the PowerText Formatter costs $89.95. Inset 2, a graphics-capturing and editing pro- gram from American Programmers Guild Ltd., costs $99, and a clone costs continued SURGE PROTECTOR. 1 :: - H^V/i^i^l PR0TECTOI 1 ^^f^^^^^^ ' i Ik 1 r A i 1 V \r.y •;//..• — •■" * - ■ .■: f£\ WtllMiHAf*// Dry FormU' Static buildup from the carpet near your computer can put 12,000 volts at your fingertips. When discharged, you only flinch. But your computer's memory can be jumbled, data scrambled, microchips permanently damaged. You can avoid zapping hardware, software, and yourself with Static Guard? 4 A periodic spray on furniture and carpet around your work station safely eliminates static and lets you avoid the consequences of a 12,000 volt discharge Look for Static Guard™ in super- markets and drugstores everywhere. Then use our coupon to save 35C, your data, and your system's RAM and ROM. MANUFACTURER'S COUPON EXPIRES 2/29/88 SAVE 35c ON STATIC GUARD Retailer: For each coupon you accept from a customer at a time of purchase for the specified product, Alberto-Culver Company will pay you 35C plus 8C for handling if you fulfill all the requirements of this offer and agree to furnish slock to cover coupons redeemed. Any other use constitutes fraud Coupon void if presented through outsideagencies, brokers, or those who are not retail distribu- tors of our merchandise. Coupon may not be assigned, transferred or reproduced and is void where prohibited, taxed, or restricted. Customer must pay sales tax. Cash redemption l/20COffer good only in U.S. A. Sendto Alb erlo-Culver Company, P.O. Box 5912. El Paso, TX 79966. Coupon expires 2/29/88. LIMIT ONE COUPON PER PURCHASE. EEMDD 114DSS Inquiry 7 S» 1987 Alberto-Culver Company INTRODUCING FAST FORWARD: NOWANY SOFTWARE CAN RUN UP TO 10TIMES FASTER. No more doodling while your database goes digging. Or lollygagging while your spreadsheet loads. Or taking five while your word processing program takes forever With Fast Forward, any software runs 2 to 10 times faster CAN SOFTWARE REALLY DO THAT TO SOFTWARE? Fast Forward can. Normally your com- puter is constantly going to your disk and wading through massive amounts of data. But with Fast Forward, data is retained in your computer's internal memory. Which is incredibly fast. Much faster than hard disks. Hundreds of times faster than floppies. FAST FORWARD PERFORMANCE THE MORE YOU USE IT, THE FASTER YOU GO. CH With Fast Forward Without Fast Forward dBase 111 3.15 minutes 29.6 minutes WordStar 3.3 12 seconds 40 seconds Lotus 1-2-3 21 seconds 51 seconds u (Test: Add and delete 225 records) (Test: Move cursor to end of 46 page document) (Test: Load spreadsheet, 8 columns by 962 rows) All tests done on 640K IBM PC, 20 megabyte hard disk and floppy drive. 320K RAM allocated to Fast Forward Once installed, Fast Forward works invisi- bly. As you use data, it's automatically stored in your computer's memory-and instantly available the next time you need it. Programs requiring frequent disk access (like dBase III) will show amazing improvements. And adding extended memory gives Fast Forward more room to work. So software runs even faster PERFORMANCE HAS A NEW PRICE: $69.95. You can buy a faster computer Or an expensive accelerator board. But if you're ready to turn on the speed without turning over a bun- dle of money ask for Fast Forward. It's from the Mark Williams Company makers of quality- software tools since 1976. And it's available at your software dealer In the software depart- ment of your favorite bookstore. Or by calling 1-800-MWC-1700.* And hurry. Because ■ *In Illinois: (312) 472-6659 Mark Williams Company 1430 West Wrightwood Chicago, Illinois 60614 Fast Forward ru n s o n IBM-PCs and 100% compatibles. Not copy protected. • 1987, Mark Williams Company Inquiry 169 SEPTEMBER 1987 -BYTE 23 LETTERS less than $1000. The total is under $3050— substantially less than $10,000 to $15,000. Yet you can do everything with that configuration that a user can do with PageMaker or Ventura. And you can do it faster, with better-looking results. David P. Guest Beaman Porter Inc. Harrison, NY I stated in the first paragraph of my arti- cle that "desktop publishing is a slippery product without a clear cut definition. " To explain how it emerged, I traced its history, uncovering the differences be- tween desktop publishing and computer- aided typesetting. The latter is both nar- rower (in that it doesn 't embrace publishing per se) and also much broad- er, in that it includes programs and sys- tems that are, at least currently, much more sophisticated in terms of the inclu- sion of typographic niceties. It should be clear that desktop publish- ing currently offers more limited (al- though very exciting) capabilities. I be- lieve, however, that users at the desktop level will soon be able to command virtu- How to buy a full-featured laboratory data acquisition, storage, and analysis system for $30,000.. The multi-pen strip chart (or oscillographic) recorder has been the traditional instrument of choice in many laboratories performing physiological or environmental studies to provide long-term acquisition, monitoring, and storage of data. Many users are familiar with this "old reliable" instrumentation setup, but the cost of this familiarity can be high: The initial price of an oscillographic recorder is from $15,000 to $30,000; supplies such as cnart paper can cost $5,000 or more per year; and the system may need to be supplemented with an FM tape recorder that can add upwards of $15,000 to the total system cost. As these are aelicate mechanical instruments, they can suffer from wear and paper or tape jams; pens clog or run out of ink; and a long procedure can produce an overwhelminglv long chart which must be analyzed in detail to locate significant data. Even with this equipment, your data alysis. For one must set of . later the puter aren't yet digitized for computer an- *1 quantitative use of the data, some- digitize the charts by hand with a dividers and a calibrated scale; data must be entered into a corn- either laboriously by hand or with an A/D system that requires specialized know- ledge. Either method re- quires a major investment of time, materials, and/ or I personnel. GRAPH and store up to 5,000 samples per se^o&d with the System 570 work- station and the new RTMDS (Real Time Monitoring and Data Storage) plug-in card and software. The entire system can be as little as $7,500— including a PC. No supplies to buy. Mo separate digitizing of data. Call toll-free (800) 552-1115 for complete information o;r j a demo. KEITH LEY ally all the resources of more traditional computer-aided composition capabili- ties. The much less intimidating inter- faces of more traditional approaches are being profoundly modified. WYSIWYG is one such adaptation. I was not involved with the preparation of Thorn Holmes's article, which fol- lowed mine in the May BYTE. I did not select, include, or exclude any particular software packages listed there. But I disagree with your assumption that PostScript, or any other page de- scriptor language, produces inferior type. The final product depends on the output device. Nowadays, virtually all new output de- vices operate in a raster-imaging mode and therefore must deal with the laying down of pixels. It is the responsibility of such languages to output at a resolution within the capabilities of the selected im- aging device. (At the desktop level, we are already moving from 300 dpi to much more, and, of course, those who can af- ford to are using recorders that write their output to photosensitive films or papers.) It is generally not the task of the publishing program to rasterize the out- put, unless a graphics editing or manipu- lation package is also included— and even in these cases, final output differs from what you see on the screen. It is true that scaled or even bit-mapped fonts on a video screen do not provide a meticulous- ly faithful representation of final output. However, for review and formatting pur- poses, they are usually a lot more helpful than monospaced fonts. The issue that you fail to address is how code-intensive a composition pro- gram is or must be. WYSIWYG, by pro- viding a window that permits an interac- tive preview of the intended output, greatly simplifies the formatting process. But I do agree that specific features of many WYSIWYG programs may be inade- quate for the production of large, rela- tively standard documents. In such cases, WYSIWYG in and of itself will not provide the hoped-for benefits. -John W. Seybold Response to Bonus Issue I am writing in response to your request for comments on your Summer Applica- tions Software Today special edition. I enjoyed the edition very much. I use my computers for both productiv- ity and enjoyment. I own an 8-bit and a 16-bit MS-DOS machine, each with hard disk drives. I am more experienced in hardware, as I service computers on a full-time basis for one of the large small- computer retailers. In my spare time, I develop and sell personal robot hardware continued 24 BYTE- SEPTEMBER 1987 Inquiry 147 Imagine the speed and power M a $100,000 minicomputer in a desktop PC cost- ing under $7,000. Now imagine all that power going to waste because the operating system you chose was never meant to take advan- tage of a computer this powerful. It will take more than just a "window environ- ment" or an outdated operating system to unlock the 80386. It will take PC-MOS/386™ The First 80386 Operating System. Specifically designed for the 80386 computer, PC-MOS/386™ opens doors. Doors to more memory and multi-tasking. Doors to thousands of DOS programs as well as upcom- ing 80386-specific software. It's the gateway to the latest technology. . . , and your networking future. Memory Management Without Boards. PC-MOS exploits the memory management capabilities built into the 80386. So, up to four GIGABYTES of memory are access- ible to multiple users and to future 80386-specific applications requiring megabytes of memory Multi-Tasking, Multi- User Support for One, Five or 25 Users. PC-MOS/386™ allows up to 25 inexpensive terminals to be driven by a single 80386 machine. So the features of the 80386 can be utilized at every terminal. And it comes in three versions so you can upgrade your system as your com- pany grows... without having to learn new commands or install new hardware. MADE FOR THE 80386. RUNS DOS PROGRAMS. MULTI-TASKING Software Support for Thousands of DOS Programs. Although PC-MOS/386™ totally replaces DOS, it doesn't make you replace your favorite DOS programs. So you can inn programs like Lotus 1-2-3, WordStar, ~>E III, and WordPerfect on the 80386. Best of all, it uses familiar commands like DIR and COPY-so you'll feel comfortable with our system. The Gateway to Endless Features, Distinctive characteristics like file/system security, remote access, file/record locking, and built -in color graphics support for EACH user set PC-MOS/386™ apart from all previous operating systems. Open the Doors to Your Future TODAY! Call The Software Link TODAY for more information and Ithe authorized dealer nearest you. PC-MOS/386™ comes in single, five & 25-user versions starting at $195. PC-MOS/386 I MODULAR OPERATING SYSTEM "^ THE SOFTWARE LINK CALL: 800/451-LINK In Georgia: 404/448-LINK THE SOFTWARE LINK/CANADA ( Jmm Wfetye mnao< ed Doors. Inquiry 325 for End-Users. Inquiry 326 for DEALERS ONLY. TRADEMARK ACKNOWLEDGEMENTS: MultiLink®is a registered trademark of The Software Link. PC-MOS/386; m MultiLink® Advanced, and LANLink" are trademarks of The Software Link. Lotus 1-2-3, WordStar, dBASE I II, & WordPerfect are trademarks of Lotus Development Corp., MicroPro, AshtonTate, & WordPerfect Corp., respectively. Prices and technical specifications subject to change. LETTERS and software. In my full-time work, I handle a lot of software belonging to ser- vice customers, so I base my views on that as well as on the software I use for myself. I was disappointed at your exclusion of FilePro 16 from your database software review. It is much easier to learn and use than the famous dBASE. One of my most important measures of a database pro- gram is how easy and inexpensive it is to convert data files from other software and operating systems to the one I use. Although all database software develop- ers sell conversion programs, I don't like to pay for something I can do myself. I've found that I can write simple BASIC pro- grams (about 10 lines long) to convert anything (including dBASE II and III, TRS-DOS, and Timex-Sinclair) for File- Pro 16 use. Next, a general comment on RAM- resident utilities. These utilities cause almost half of the customer software problems I encounter in my work with MS-DOS machines. The problem is a conflict between the utilities and the pri- mary software. (I have all but stopped Printer Sharing Share any printer. Laser, letter quality, plotter, dot matrix, FAX. Connect any PC/any application. Even provides a 3287 link between your laser and a mainframe. Set up is easy. Reliable and familiar asynchronous connections. Get going quickly. Auto-Install program and pop up and use menus help you start work easily and quickly. Call: 1-800-243-2333; in California: 1-800-247-2006 -PrintDirector Digital Products, Inc., 108 Water Street, Watertown, MA 02172 617-924-1680 PrintDi rector is a trademark of Digital Products, Inc. {glial Products inc. PrlntDirector * £S££A-B-C-D-E-F-G ' Plain and Simple using the utilities myself.) The popular SideKick is a prime offender. The soft- ware developers always claim it is a hard- ware problem. In many cases, it may be a hardware design problem, but who cares— if it causes a problem, you can't use it. In future issues, I would like to see coverage of CAD packages, including math and circuit packages, that most of us can afford (under $300). I would also like to see continued coverage of desktop pub- lishing, and, again, I'd like it to include the inexpensive products. (I know you re- cently covered this area, but it's probably the hottest applications area today, and it's changing all the time.) Just so you know my prejudices, the packages I use most often are WordPer- fect, Crosstalk, FilePro 16, PrintMaster, and ClickArt, as well as graph packages and accounting packages. I have never found a need for spreadsheets. Bruce C. Taylor Tucson, AZ OS-9 over Unix What is the fuss over Apple supporting Unix on the Macintosh II? Both "The Apple Macintosh II," by Gregg Williams and Tom Thompson (April BYTE) and Bruce Webster's "Processor Wars" (Ac- cording to Webster, June BYTE) mention the coming Unix. I believe that OS-9/68000 would be a better choice. Also, OS-9/68000 is here today, not just promised like A/UX (or like OS-2 for the IBM PS/2 machines). Perhaps one of your columnists should do a simple comparison of OS-9/68000 and A/UX. Ramer W. Streed Mankato, MN CAD Appreciation I enjoyed the article "IGES," by Ralph J. Mayer, in the June BYTE. It was well- written and gave more than just an over- view of the intent of IGES and database- exchange problems. [ Paul D.Watson Piano, TX FIXES Soft PC In the May What's New section, on page 44, we incorrectly stated the hardware requirements for Soft PC from Insig- nia Solutions. Soft PC is a simulated IBM PC XT and runs on Motorola- based hardware. It does not require a PC XT, nor does it require an Intel coprocessor. ■ 26 BYTE- SEPTEMBER 1987 Inquiry 76 START WITH HOUSTON INSTRUMENT Whether you're a newcomer to CAD or just looking for a reliable, low-cost p for your Pi > system— start here. With the popular Houston Instrument™ DMP- 41/42 series plotters; Priced at $3,295*, these single -pen plotters give you the features you need for a sensible start— field- tested reliability C and D size plots, good resolution, a wide selection of plotting media and pens, and compatibility with hundreds of software packages. Enter the PC CAD world with the DMP- 41/42 series-the plotters that offer superb reliability and excellent performance at a very affordable price. Learn about the advantages of Hi's. Priority Response Programs featuring a competitive leasing plan and an express service agreement that can replace your plotter overnight. Begin by calling 1-800-531-5205 (512-835-0900 if in Texas) or writing Houston Instrument, 8500 Cameron Road, Austin, Texas 78753. In Europe, contact Houston Instrument, Belgium NY, Rochesterlaan 6, 8240 Gistel, Belgium. Tel: 32-(0)59-277445. Tlx.: 846^1399. instrument^AIVIE I ElV *(j'.S. suggested retail price. Prices subject to change. Houston Instrument is a trademark of AMETEK, Inc. Inquiry 127 Inquiry 194 IEEE-488 Interfaces For IBM PC/XT/AT and Compatibles IBM Personal System/2 Industry standard GPIB software for MS DOS and XENIX. sdftJarelcompdtibfe with bul family of IEEE-488 interfaces for Macintosh, Micro VAX, PDP-1 LSI- 1 1 , VMEbus, STD Bus, Co-developer of GPIB support for Lotus Measure, ASYST, LABTECH NOTEBOOK, and TBASIC. MULTIBUS, S-100 Bus. SBX Bus. and .AKP CHAOS MANOR MAIL Conducted by Jerry Pournelle Mousing Around Dear Jerry, I am writing in response to your fre- quent comment that a mouse-oriented word processor seems ill-suited to its basic task. Having just finished writing two books using WordPerfect (now your word processor of choice, I read), I can- not imagine doing any serious editing without a mouse. To be sure, my hands do not seek the company of my key- board's fuzzy little companion when I am entering large blocks of text, but for re- writing—a deletion here, a rearrange- ment there— nothing is more helpful than a mouse. I use Logitech's mouse, finding it vast- ly superior to Microsoft's. I run Mouse- Perfect as the mouse-interface program. MousePerfect is my own creation— not yet available for sale, although I hope to change that someday. It provides cursor movement, easy deletion, and menu- oriented commands, so you don't have to figure out whether to use the Control key or the Shift key with F6 to get text cen- tered, for example. Of course, the key- board remains fully available. I would be happy to send you a copy. Howard E. Abrams Atlanta, GA I'd love to see a copy of Mouse Perfect. I agree completely: For editing, a mouse is essential, and neither WordPer- fect nor Q&A's writer (the other word processor I use a lot on big machines) supports mice. I can't use mice for writ- ing, but it 's good to be able to run the cursor around fast when you 're trying to rewrite. Logitech certainly makes the best mice for the money. I tend to use its Bus Mouse addressed to LPT2:, since I'm strapped for ports.— Jerry Whither the Orb? Dear Jerry, In the April 1984 BYTE, you de- scribed with great enthusiasm the Omni- sphere by Orb Inc. By the time I tried to order one, the company no longer had a telephone number. Edmund Scientific 's catalog has a picture of something simi- lar, but they don't have any in stock. Can you direct me to the manufacturer? Michael Showe Wayne, PA The one in the catalog sure looks like the one I have. I have heard these globes are called Star Sculpture, and I will ask on BIX for sources; I bet that I find one. —Jerry [Editor's note: According to Microbytes Daily (in the BIX news conference "microbytes"), two exhibitors at the re- cent CES show had low-cost versions of such "plasma spheres, " globes that gen- erate miniature lightning when you touch them. The two companies are: Rabbit Systems Inc. , 100 Wilshire Blvd. , Santa Monica, CA 90401, (213) 393-9830; and Imaginarium, 3530 North 16th St., Phoenix, AZ 85016, (602)230-2880.) The Perfect Word Processor? Dear Jerry, I am surprised that you have not used WordStar 2000 Plus. The features that you seem to appreciate most, judging from your reviews of other word-process- ing software, are available in WordStar 2000 Plus. If you haven't reviewed it be- cause you only review software sent to you by its manufacturer, then I think MicroPro is doing itself a great disservice by not having you try it. I know several people who once were strong advocates of programs such as Perfect Writer, Microsoft Word, and WordPerfect, but switched after trying WordStar 2000 Plus for a few weeks. In- cidentally, it doesn't use the same com- mands as WordStar; WordStar 2000 Plus uses commands that make more sense, and the screen is WYSIWYG. One caution: It runs as slow as molas- ses, especially from floppies. An 80286- based machine is almost a necessity. Ken Weybright Cincinnati, OH I think the problem was that I got WordStar 2000 Plus too early; it seemed interminably slow. I expect that on a Z- 248 it would zoom along. Perhaps I should try it, although WordStar 4.0 seems good enough for most purposes and prints rings around most of its competition. Thanks for the tip. —Jerry Dear Jerry, I am baffled by your love affair with WordPerfect. I'm well acquainted with continued 28 BYTE- SEPTEMBER 1987 ASYSTANT+" . . . Menu Driven Engineering And Scientific Software Brings New Power To Your PC! Data acquisition, analysis, statistics and astounding graphics in one easy to use, integrated and affordable package. ASYSTANT+ is a software package designed exclusively for engineers and scientists who use a PC as a personal productivity tool. It offers fully integrated data acquisition, data analysis and astounding graphic capabilities. This powerful software is menu driven to get you up and running immediately and provides an interactive and very clear help menu. Here are just a few of the powerful features: • A/D, D/A, Data Acquisition and Control • Full integration to eliminate program shuffling • Outstanding presentation quality graphics which easily outputs to plotters • Built-in, ready to run functions include FFT, smoothing, curvefitting, statistics, matrix and polynomial operations. . . and more ASYSTANT+ has no equal, either in power or functionality. With this software the time consuming requirements of custom programming are eliminated. With this software you no longer have to settle for "business oriented spread sheets" or multiple programs from several sources. With this software you can unlock your engineering and scientific potential while expanding your productivity. ASYS1ANT + is what engineering and scientific software is supposed to be . . . productive, powerful and capable of handling your toughest assignments. Best of all, it's easy to install, easy to use and very affordable. Call us today for more detailed information. 1-800-348-0033 NY-212-702-3241 ASYSTANT + Ready-to-Run Scientific Software is a trademark of Macmillan Software Co. ASYSTANT + was developed by Adaptable Laboratory Software, PD. Box 18448, Rochester, NY 14618 MACMILLAN SOFTWARE A division of Macmillan Publishing Company 630 Third Avenue, New York, NY 10017 Inquiry 164 SEPTEMBER 1987 -BYTE 29 CHAOS MANOR MAIL the program— in fact, I teach how to use it at a local college— and it has always seemed to be slow and poorly designed (especially the technique for revealing codes in a split screen). I also find the system for selecting options from num- bered menus tiresome and frustrating, and I'm surprised you don't feel this way, too. It wasn't so long ago that you wrote a column denouncing bulletin-board soft- ware that requires the user to pick an op- tion from a numbered menu. In what way is WordPerfect any different? I also teach Microsoft Word, and I find it considerably quicker than WordPer- fect. I wonder, with your schedule, how much time you really have to try other word-processing programs in any depth. It takes several quiet hours of browsing through the manual to explore a program properly, and, from your column, it sounds as if several quiet hours are a rarity. Although I teach WordPerfect and Microsoft Word, I don't use them myself. Personally, I feel that PC-Write is still the ideal word-processing program at any price. It certainly comes closest to your ex- pressed ideal of simulating WRITE. (I've tried WRITE on Greg Benson's system, which I understand is identical to yours.) PC-Write lets you customize your command codes; you can choose any key combination you like to control the func- tions of the program. It scrolls faster, it searches and replaces faster, and it's infi- nitely more versatile than the big pro- grams. You mentioned it once in passing; have you ever had time to explore its po- tential? I think you'd like its design. But everyone has fierce brand loyalties in this business, and I don't suppose mine are any more logical than average. Over the past few years, I have had the impression that your column focuses more and more on the time spent trying to make hardware items work with one an- other. I certainly find this myself. Each new purchase provides a whole new series of quirks and bugs to iron out. Things that should be simple often turn out to be ludi- crously complicated. For instance, I wanted to send text from the serial port of an IBM PC to the serial port of a Macintosh. I had the plugs, the cable, and the pinouts for both computers, but it still didn't work. Final- ly I spent $39 for a cable from a company that specializes in custom-made cables. It worked on the first try. I opened up the plugs and found the company had shorted pins 5 and 6 together at the IBM end. How did they know that would work? It's the sort of trick that you never find in a book, and seldom on a bulletin board; and it seems you can't deal with equip- ment without knowing these little fixes. Even on the consumer level, systems still cause endless grief. I'm sure you re- ceive plaintive calls for help, as I do, from users who get into trouble and lose a week's worth of text. I love gadgets, computers especially, but sometimes I wonder if the slow growth in U.S. productivity over the past three or four years is partly due to busi- ness people getting diverted from their work and spending hours fiddling around with microcomputer systems, trying to get them to work properly. I still use a word processor to write fic- tion, but I use a typewriter for correspon- dence. It's quicker. Charles Piatt New York, NY You 're right: It 's very hard to do a de- cent job of evaluating word processors. You have to get used to using them, and that takes some doing. My problem with Microsoft Word is the lack of commands that do things I want continued HARMONY COMPUTERS 2357 CONEY ISLAND AVE., (BET. AVES. T & U) BROOKLYN, N.Y. 11223 ORDER DEPT. ONLY: (800) 441-1144; OR (718) 627-1000; INFORMATION: (718) 627-8888 tfe NO ADDITIONAL CHARGE $$&¥ FOR CREDIT CARDS IBM PS II MODEL 50 $2649.00 STAR NX-10 $154.00 PANASONIC 1080 I $149.00 COMMODORE 64C $148.00 Apple Image Writer II 454 324 349 Star SD 15 (wide carriage) Star ND 10 Brother HR 20 i •PRINTER SPECIALS" t^H 299 Brother 1509 309 Brother 1709 454 Star ND 15 399 Citizen 120D 163 Epson FX 86E 308 Okidata 292 w/INTFC 499 Star NB 2410 399 Citizen MSP 10 254 E Epson FX286E 429 Okidata 293 w/INTFC 646 Star NB 2415 579 Citizen MSP 15 319 E Epson EX800 369 Panasonic KXP 1080 i 149 SR 15, SR 10 Sheetfeed 49 Citizen MSP 20 289 Epson EX 1000 489 Panasonic KXP 1091 i 166 Silver Reed Exp 420 189 Citizen MSP 25 387 Epson LQ2500 869 Panasonic KXP 1092 i 279 Silver Reed Exp 800 639 Citizen Premier 35 438 MEC 3550 719 Panasonic KXP 3131 238 Toshiba 341 SL 679 Epson LX800 166 SJEC 8850 1039 Panasonic KXP 3151 369 Toshiba 351 Model 2 849 LX 86 Cutsheet 24 SJEC P6 427 Panasonic KXP 1592 369 Toshiba 351 Model 2 Color 1024 Epson LQ800 Epson LO 1000 429 529 — : VJEC P7 vlEC Color P6 ^JEC Color P7 599 Panasonic KXP 1595 Siekosa SP 1200 Star NX 10 399 Toshiba 321 SL 474 529 699 189 154 I ID IV! ^^^^™ Dkidata 182 228 Star NX 10C 154 Amdek 310A 129 IBM PS 2 Model 30 (2 Drives) IBM PS 2 Model 30 (20 Meg.) IBM PS 2 Model 50 (20 Meg.) IBM PS 2 Model 60 (40 Meg.) AT Enhanced IBM 30 Meg. (339) 1249 1699 2649 ( Dkidata 192 Plus Dkidata 193 Plus 327 494 Star NP 10 Star NX 15 134 299 Amdek 410A Amdek Color 600S Amdek Color 722 Princeton HX 12 319 434 394 3249 Call ' SEAGATE HARD DRIVES H H APPLE f^H Princeton HX 12E Princeton Max 12E Scan Doubler NEC Multisync Gold Star TTL Amber Gold Star RGB Color 439 IBM PC XT IBM PC XT 286* 6MHZ 640K Meg. w/conlroller 319 2GS with 256K 745 159 1.2 MB. 20 MB Hard Drive 1695 Meg. w/controller 349 Apple Drive (5' a) 249 AT Clone 1.2 Meg. Drive 999 Meg. AT #4038 509 Apple Drive (3'.>) 329 Hertz XT (10 MHZ) 640K Drive 549 l Meg. AT *251 489 Mac Plus 1619 IBM Monitor 219 104 129 i 179 189 ' 139 169 289 >IEC 20Meg. Hard Card >IEC 30 Meg. Hard Card 359 429 MACSE (2 Drives) w/keybd MACSE (20 Meg.) w/keybd Imagewriler II Apple Color Monitor (RGB) Apple Green Monitor 2149 2749 454 399 118 Color Composite Toshiba 5'/4 Disk Drive Toshiba y/y Disk Drive ^^MtM'I'M.MrM AST Six Pock 384K MODEMS IH Commodore 128 1571 Drive 218 AST Six Pack Premium 256K Hercules Color Card Hercules Monographic Plus Hayes 1200 Hayes 1200B w/Smartcom 2 Hayes 300 275 275 128 212 mmmEszsnm •J^M 1670 Modem Commodore 64C 119 NEC EGA GB1 Quad EGA plus 259 r- ;iyes 2400 409 Lotus 123 Ver. 2 299 1541 Disk Drive 1802 164 Quad Prosync 279 Hayes 2400B w/Smarlcom 2 409 D Base 3- Ver. 1.1 375 Video 7 Deluxe 279 I iicromodem 2E 125 Framework 2 381 1902A Monitor ATI Wonder EGA 229 romethias 1200 Internal 139 Symphony 1.2 409 MSP 1000 Printer 189 Paradise Aiflo Switch (350) 229 Iverex Internal 1200B 99 Microsolt Word 3.1 199 Star NX 10C 154 Paradise Auto Switch (460) 259 Iverex 2400 Internal 199 Microsolt Windows 1.03 59 Amiga 256K Dos. Mouse Multifunction Card 109 Hayes Smartcom 2 49 Word Petted 4.2 199 Amiga 1080 Color Monitor Amiga 256k Upgrade Commodore PC 10-2. 640K, 2 Drives. Video Card. DOS Everex EGA Deluxe (640x480) 199 199 189 109 O & A 2.0 PFS First Choice PFS Professional Write Norton Utilities 4.0 199 99 109 49 139 Everex Edge Everex Graphics Pacer *PC 4 w/20 MEG (Powermate I) 1649 619 Intel 8087-3 H) ATARI 1 Intel 8087.2 168 169 269 299 *PC 4 w/40 MEG (Powermate I)) •JEC Multispeed 2295 1349 Microsolt Mouse (6.1) Hayes Smartcom II Wordperlocl Library Wordstar Professional Rei. 4 Multimate Advantage Rel. 2 Bankstreet Writerplus DAC Easy Accounting 109 49 69 229 239 69 49 1 Intel 80287-6 Intel 80287-8 Intel 80287-10 130 XE 128 AT&T H 65XE Atari 801 Printer Atari 804 Printer 1050 Drive Atari Writer - Atari 1027 Atari Modem 301 97 179 ^M.M!II:M>M S WJ:I1*B- 1 VTT 6300 Drive. 640K \TT 6300 Plus. 512K. 1.2 Drive 829 1095 179 158 Toshiba 3100 - 2699 \TT Monitor 169 Ventura Desk Top Publishing 458 Toshiba 1100- Toshiba 1200 - 1459 Call 3'-3 inch Software Call 49 Masler Ce. ■ Essential in day-to% v Computing Ma^nemSf tIg — Pe ^ ■ '%«'// bless this disk" -Peter McWilliams/ The Personal Computer Book. — ^^ ^fe^erforyourdata. ^NORTON - — '"Vuimj/.jiiojcs package ■ Loaded StaW? 8 f k mana ? e ™ent "«?WSS«M interface makes the Utilities so quick and easy to run it's ridiculous. Better yet All of which brings us to the new Advanced Edition of the Utilities. Because the Advanced Edition contains all of the features, functions and enhancements of Version 4.0. Along with a wish list of technical features and func- tions sufficient to satisfy the yearnings of all those custom- ers whoVe been politely writing and calling to request them. Like Speed Disk, for tighten- ing up disk space and optimizing access. And Format Recover, for unf ormatting your acciden- tally reformatted hard disk If you're so inclined, you can explore absolute disk sectors, edit file directories, even attack the FAT table. And, for the first time, get the upper hand on your hard disk's partition table. Which of the new Norton Utilities is best for you is up to you, of course. But one thing's for sure. Either way, you'll get the best of Peter Norton. ZEpter Norton* COMPUTING . MMimm Designed for the IBM * PC, PC-AT and DOS compatibles. Available at most software dealers, or direct from Peter Norton Computing, Inc., 2210 Wilshire Blvd. #186, Santa Monica, CA 90403. 213-453-2361. Visa and Mastercard welcome. ©1987 Peter Norton Computing. Inquiry 228 for End-Users. Inquiry 229 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 41 I 115,200 SCOP£ TI Advai^e<4 Scripting erus© er 01987 Hayes Microcomputer Products. Inc. Smartcom III requires 512K memory and a hard disk, and runs on IBM PC-XT. AT and PS/2 family or compatible computers. I Full -Feaiu^ or QTe 55 ion ety ifBi^irar ocois We at Hayes have always been credited with being ahead of our time. Now, we're even ahead of ourselves. Introducing Smartcom III,™ dearly the most advanced, full-featured communications program ever designed for the IBM® PC-XX AT, PS/2 family and your Hayes modem. Smartcom III includes on-line help facilities for the novice as well as more advanced features for the power user Features like a peruse buffer to automatically store information for later disk capture, printing or editing, an editor for creating and revising text, both on-line and off-line, and the support for multiple communications sessions with two remote systems simultaneously Smartcom III also offers on-line DOS operations for the performance of common disk and suboirectory opera- tions without ever having to exit the Hayes program. It even provides file compression and saambltag tech- niques for the enhancement of effective throughput and private data transmission. Plus, with Smartcom Ill's Simple Communications Programming Environment SCOPE,™ the transmission process can be totally automated. This easy-to-use script- ing language comes complete with a learn mode and pro- vides access to the programming tools used to create Smartcom III itself. So now that you know what Smartcom III is capable of, you may wonder where intelligence of this caliber will lead you. And the answer to that is the future. If you currently use Smartcom II® or Crosstalkf take advantage of our special introductory offer: If you purchased Smartcom II prior to 1/1/87 return the original program disk to us along with $60 and we'll upgrade you to Smartcom III; if you purchased Smartcom II after for a Smartcom III upgrade. And if you use Crosstalk, send any version of the original program disk along with $60 and we'll give you the same Smartcom III upgrade. At*L^ This offer good through 12/31/87 only in the USA ^and Canada. For more information, contact your local Haves Dealer, write Hayes at the address oelow. or call 404-441-1617. Hayes Microcomputer Products. Inc., P.O. Box 105203, Atlanta, GA 30348. rdBCfflPkis Lattic Source Entity Utility Lattic Lattice t/M&r&e Utility t Lattice ( >1 •( )OI ) Si nni^n sh< >t\l attice E£< | U [t RPG II Compiler E* Q^ Lattice G Compiler Lattice Screen Design Ai Lattice Screen Editor Lattic Make <^> __ i Our software comes with something no one else can offer. When you join the Lattice family of customers, you'll discover that your software purchase is backed by more than just an excellent warranty. It's backed by unparal- leled technical support. By a total commitment to your success and sat- isfaction. And by Lattice's dedication to excellence in products and services. Unlike other software manufacturers who charge you for services after you Ve purchased their product, Lattice offers a unique package of support programs at a price we can all live with — FREE. Lattice Bulletin Board Service LBBS is our 24-hour a day bulletin board system that allows you to obtain notification of new releases, general information on Lattice products, and programs for the serious user. And if you've ever experienced the frustration of having to wait a year or more for a new release (that has corrected a bug), you'll really appreciate LBBS. Because with this service, you can actually download the latest program fixes to instantly eliminate any bugs discovered after release. Available through dealers and distributors worldwide. Lattice Service. Technical Support Hotline Responsible, dependable and capable Support Representatives are only a phone call away. You will talk to a highly skilled expert who is trained to answer any questions you have relating to specific Lattice products. Remember, your complete satisfaction is our goal. McGraw-Hill BIX™ Network The Byte Information Exchange (BIX) Network is a dial-in conference system that connects you with a Special Interest Group of Lattice users. The nominal one-time registration fee allows you to BlX-mail your questions — via your modem — directly to Lattice. Or you can post your questions in the con- ference mode for Lattice or other users to answer. Once again, you have 24-hour access. You Also Receive: ■ Timely updates and exciting enhancements ■ 30-day, money- back guarantee ■ Lattice Works Newsletter ■ Technical Bulletins ■ Access to Lattice User Groups Lattice has developed more than 50 different Microcomputer software tools that are used by programmers world- wide. We were there for every MS-DOS release. We're there now for OS/2. And we'll be there for the next generation of technical changes. But most of all, Lattice is there for you. Lattice i RPGnc y <^> Lattice, Incorporated 2500 S. Highland Avenue Lombard, IL 60148 Phone: 800/533-3577 In Illinois: 312/916-1600 Subsidiary of SAS Institute Inc. Lattice Inquiry 150 WHAT'S NEW: SHORT TAKE Two Programs Bundled with 1-megabyte Macs Apple Computer recently showed us MultiFinder and HyperCard, two very impressive new software packages for 1-megabyte Macintoshes. MultiFinder allows you to keep multi- ple applications ready for use and gives you limited multitasking, with almost perfect compatibility with existing Mac applications. HyperCard uses the metaphor of "a stack of cards" (actually, a file full of graphic/text images) to provide a usable way of storing and cross-referencing data; it is also the foundation for what Apple calls stackware, user- and commercially produced applications that sit on top of HyperCard. One of the most significant things about these two products is that they will soon be included with the purchase of any 1-megabyte or larger machine or mother- board upgrade, thus making both of them part of the standard Macintosh configura- tion. (Officials at Apple said that existing Mac users will be able to buy these prod- ucts for under $50 each.) MultiFinder is a new file that augments the existing Finder by allowing you to display multiple applications and switch between them by clicking in the appropri- ate window. Unlike Apple's Switcher program, MultiFinder shows each appli- cation's window on the same desktop. We played with an alpha version of MultiFinder and found that at least 90 percent of the applications we tried be- haved well with it. MultiFinder usually took between 2 and 5 seconds to switch applications and refresh the display. MultiFinder also offers limited multi- tasking capability with applications de- signed for it. New code in the Mac's Event Manager steals control from an ac- tive application (when it is doing nothing) and passes it to inactive applications that can do some small part of their work and return it in under 100 milliseconds. The Event Manager can steal control from any Mac application, even existing ones, but new applications can be written to surren- der control with less overhead. MultiFinder will include a built-in background task that spools print jobs, thus freeing the Mac for other work (this feature was not available in the version we saw). Apple personnel reported that numer- ous companies are working on both en- hanced and new products that can use background time (including background terminal programs). They also said that future versions of MultiFinder will build toward full multitasking, but they had no details on this. By most people's definition of the word, HyperCard is a new category of software. Though it has roots in previous Mac and non-Mac applications, Hyper- Card is as much a new approach to deal- ing with data as it is a product for doing so. Another way of looking at it is as the next and newest level of the Macintosh user interface. In fact, Apple personnel (who say that the company is getting out of the software business) were promoting HyperCard as a platform on which pro- grammers can build commercial prod- ucts—though they were quick to point out that HyperCard is also useful right out of the box. HyperCard stores information (text, graphics, sound, animation, and— indi- rectly— anything else you can think of) in a stack file full of screen-size images called cards. Any card can point to any other card, even a card in another file on a shared file server. These links can al- ready be present in a stack, or you can put them in yourself. With just a few simple mouse-based movements, you can "paste" into a card a dialog button that, when pressed, will take you to any card that you designate. This brings us to another important as- pect of HyperCard: the multiple levels at which it can be used. You can set Hyper- Card to run at a given level, which sim- plifies the menu bar accordingly . At the first two levels, browsing and typing, you can look at stacks and modify and add cards. Many people will not get past these levels and will use supplied stack examples that function like phone lists, address books, appointment books, and similar applications. The remaining three levels, painting, authoring, and programming, will attract some users into deeper and more funda- mental levels of modifying a stack or cre- ating a new one. At these levels, you can do things like change the size of a field, add a predefined button, and even specify exactly what a button does when you press it. HyperCard uses a simple but powerful English-like script language called HyperTalk to define a button's behavior. Software developers can interact with HyperCard in a sixth way. By writing the appropriate programs, compiling them, and hiding them inside a stack file, a pro- grammer can add new commands to HyperTalk, thus extending HyperCard to do things it was not explicitly designed to do. One example we saw was a cross-ref- erenced geographic atlas; when we clicked on certain points on the screen, a laser-disk player that was connected to the Mac instantly displayed a satellite photograph of the area clicked on. We have played with a beta version of HyperCard for several days and, so far, have found it fast, very useful, and a lot of fun. Look for a more detailed report on MultiFinder in the November BYTE and a report on HyperCard in the December issue. —Gregg Williams and Tom Thompson File Edit Search Arrange Format Font Style Windows About MindLUrite. Help Alarm Clock Calculator Camera Chooser Control Panel Find File Key Caps Scrapbook § Finder © Microsoft Encel About Juggler.. 22 % .current to-do list ♦ dead I ines ♦ Tues. editorial meeting O Dennis Barloe, L i breg (603-555-1212), wants to submit a set of portable, optimized B-tree routines in BASIC O Ued. 2 2 July; send feedback letter to Gary Bricault to wteet MUR OMflW r _ 1*23^38 and you can backup the data in your Novell network quickly and automatically. You can also easily ex- change data between your stand-alone Galaxy units and your network units. Genoa has the answer to the backup question: a whole family of tape backup units, from 20 to 120 MB, that are easy, automatic, and fast. For the dealer nearest you or for more information, call 408-432-9090. Or write Genoa Systems Corpora- tion, 73 E. Trimble Road, San Jose, CA 95131. FAX:408-434-0997, TELEX: 172319 5 MB a minute! Genoa's menu- driven software makes it easy! See us at PC EXPO Booth 1721 Genoa We make PCs better. © 1987 Genoa Systems Corporation. GenWare and Galaxy are trademarks (if Genoa Systems Corporation. SEPTEMBER 1987 -BYTE 47 WHAT'S NEW Snap Shot digitizes images for manipulation under Windows. Snap Shot Does Windows BioScan' s Snap Shot lets you capture and digitize moving or static images from television cameras, VCRs, or laser disks (any RS-170 signal). The program supports real-time digitiza- tion to 256 gray levels at a reso- lution of 512 by 512 pixels. You can control the brightness and contrast of the video signal. Before printing the image, you can crop, size, en- hance, halftone, and pre- view your image under Micro- soft Windows. The program directly supports Aldus Page- Maker, or you can transfer bit-mapped images to any ap- plication through the Win- dows Clipboard or create TIFF files for high-resolution hard copy. Three models of Snap Shot are available. The Model 10 includes software, a full- slot image-processing board, cables, and connectors. The Model 20 adds a 13-inch RGB monitor, and the Model 30 includes all of the above plus a monochrome video camera, a macro-zoom lens, cables, and a stand. Snap Shot runs on IBM PC XTs, ATs, and compatibles with MS-DOS or PC-DOS 2.0 or higher, 51 2K bytes of RAM (640K bytes recom- mended), a Microsoft Mouse, and Microsoft Windows. Two floppy disk drives are re- quired, and a hard disk drive is recommended. Price: Model 10, $2250; Model 20, $2860; Model 30, $3570. Contact: BioScan Inc., 4520 Union Bay Place NE, Seattle, WA 98105, (206) 523-5000. Inquiry 579. Transfer Data Between Incompatible Programs Magic Mirror is a mem- ory-resident program that lets you reformat and transfer data between incom- patible programs. You highlight data on your screen to store it on disk in a memory buffer limited only by your disk space. You can then call the data from the disk and format it for the program you want to send it to. You can store the format- ting procedure in a library and reformat the data to be transferred to another pro- gram. After you reformat the data, you call up the target program and transfer the data. The data is sent as if it is coming directly from the key- board, SoftLogic Solutions reports. The entire process takes only a few seconds. Magic Mirror runs on IBM PCs and compatibles with MS-DOS or PC-DOS 2.0 or higher and 256K bytes of RAM. It occupies 48K bytes. Price: $89.95. Contact: SoftLogic Solu- tions Inc., One Perimeter Rd. Manchester, NH 03103, (800) 272-9900; in New Hampshire, (603) 627-9900. Inquiry 580. Use Existing Drives with your PS/2 Short for "external disk adapter," EDAPT from Flagstaff Engineering is an external disk drive interface package that lets you con- nect your existing 3 Vi-, 5 l A - , or 8-inch floppy disk drive to the IBM PS/2 computers. EDAPT consists of a 2- by 2-inch connector that in- stalls into the PS/2's second disk drive cavity, and a flat cable that runs from the card out to an existing drive. The package also includes a set of software device drivers and a power cable that uses the PS/2's 5- and 12-volt power supply . The interface adapter de- livers data at rates of 250 or 500 bits per second. The company claims it can be in- stalled in less than 5 minutes. Price: $99. Contact: Flagstaff Engi- neering, 1 120 Kaibab Lane, Flagstaff, AZ 8600 1,(602) 779-3341. Inquiry 581. Altos Combines 386 and Xenix V Altos Computer Sys- tems claims its 386 Series 2000 is the industry's first 80386-based system that runs the Xenix System V operat- ing system. The Series 2000 is available in four configura- tions, all of which include an 80386 operating at 16 MHz, an 80387 coprocessor, and a 32K-byte instruction cache. Also standard is a 1 .2- megabyte 5 14 -inch floppy disk drive, a 60-megabyte streaming tape-backup unit, and an Altos V terminal. The Model 240SS sup- ports up to 20 users and in- cludes 4 megabytes of RAM and a 65-megabyte ESDI (en- hanced small device inter- face) hard disk drive. The 241 7S has a 142-megabyte hard disk drive. Supporting up to 64 users, the Model 2417M includes 4 megabytes of RAM, a 142-megabyte hard disk drive, and the Multidrop cabling and transmission system that lets you connect up to 64 RS-232C devices to the system on a single cable. At the top of the line, the Model 281 7M adds 4 more megabytes. Any of the Series 2000 systems can be expanded to up to 16 megabytes of RAM in 2-, 4-, and 8-megabyte incre- ments. A 320-megabyte hard disk drive and an uninter- ruptible power supply (UPS) for the system will be available by the end of the year. The UPS will fit as a pedestal base to the com- puter system and will come with software that provides power-fail/auto-restart services if the power failure lasts longer than the UPS's 3- to 5- minute rated life. Price: $25,000 and up. Contact: Altos Computer Systems, 2641 Orchard Park- way, San Jose, CA 95134, (408) 946-6700. Inquiry 582. continued WKKP^ 1 J The Altos Series 200 runs Xenix and the 80386. 48 BYTE- SEPTEMBER 1987 Long life and high speed run in our family. ltroducing the Laserlmage 3000 * '•ornPCPI. Itgivesyou > page per minute speed, 20,000 pages per month capability ild the industry's ongest life cycle The Laserlmage 3000 — the most productive laser printer available No other laser printer in its class can surpass the 3000's speed. But there is more to productivity than high speed. There's reliability. The Laserlmage 3000 is built to last. You can expect a 1,500,000 page life cycle from it's advanced engine. Nationwide on-site service is also available. Choose the PCPI laser printer that s right for you. Whether you need the 6 page per minute speed and economy of the Laserlmage 1000™ the 8 page speed of the Laserlmage 2000™ or the high speed of the Laserlmage 3000™ you are selecting a printer designed to give you dependability and long life. As ■»M'M» » ll'P l^f with any close family, the Laserlmage Series™ printers are fully compatible. All members of the Laserlmage family have a plotter and a graphics printer "built in." The Laserlmage family emulates LaserJet Plus, Diablo 630, IBM Proprinter, HP plotters and the Epson FX/80 — all standard. If your software works with these, ^v it will work with any of the Laserlmage Series printers. Advanced graphic capabilities. The Laserlmage Series utilizes 100% of the page for graphics with sharp 300 dots per inch resolution. You can print in either the portrait or landscape format with PCPI's full bit map fonts and graphics. Create the perfect image Choose your typeface from 31 standard near-typeset quality fonts, or select other optional typefaces from the PCPI font library. Call PCPI toll free for the dealer nearest you. ^^ Personal Computer _£Z^ Products, Inc. 11590 West Bernardo Court San Diego, CA 92127 (619) 485-8411 ; Telex: 499-2939 FAX: (619) 487-5809 Toll Free Information: 1-800-225-4098 In California: 1-800-262-0522 PCPI is a public company whose shares are traded on the NASDAQ exchange. ' 1987 Personal Computer Products. Inc Loserlmoge. Loserlmoge Series. Laserlmage 1000, 2000 and 3000 ore trademarks of Personol Computer Products, Inc. IBM Proprinter is a registered trademark otlnternotionol Business Machines Corporation Epson FX/80 is o registered trademark of Epson America Inc. HP and LaserJet Plus ore registered trademarks of Hewlett-Packard Company. Diablo 630 is o registered frademorkot Xerox Corporation Inquiry 216 for End-Users. Inquiry 217 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 49 WHAT'S NEW Three-Dimensional Charting and Graphing Windows Graph is a business graphics and charting program that is compatible with Microsoft Windows. From data files, you can create two- and three- dimensional charts and graphs of up to 34 by 34 inches, including area, bar, column, line pie, scatter, table, and combination charts. You can also place an un- limited number of charts on one page. A Folder is included, in which you can store cus- tom graphs for later access. The program features three-dimensional support for all chart types, and Micro- soft's DDE (Dynamic Data Exchange) protocol is sup- ported for linking data from one application to another. You can also link data to charts within Windows Graph to the data contained in a work- sheet window and import data from a variety of spread- sheets. You can also create labels in the worksheet window and type and manipulate text interactively on the chart pages. Line and paragraph formatting and editing features enable you to place text in the graph area. When you modify the data in the worksheet, the program auto- matically updates the charts. In creating three-dimen- sional views, you control the amount of depth and projec- tion view. You can also change the location of the axes, add major and minor grids, and clarify legends. In addition, Windows Graph is compatible with In*a*Vision and Windows Draw, and you can load charts into either program for fur- ther manipulation. Windows Graph runs on IBM PCs and compatibles with at least 320K bytes of RAM, two floppy disk drives, a graphics card, a graphics monitor, and a printer. Micro- ti three-dimensional bar chart created with Windows Graph. grafx recommends a hard disk drive and 5 12K bytes of RAM. Price: $395. Contact: Micrografx Inc., 1820 North Greenville Ave., Richardson, TX 75081, (214)234-1769. Inquiry 583. Getting Personal with Laser Printers General Computer's Personal LaserPrinter (PLP) takes up about as much desktop real estate as an Imagewriter and costs about half the price of an Apple LaserWriter. The PLP runs with the Macintosh Plus, SE, and II. A 1 -megabyte RAM cartridge plugged into the printer lets you run it off the 5 12K-byte Macintosh. Having only 4K bytes of ROM and a tiny RAM buffer, the PLP is essentially a "dumb" printer. It uses Macin- tosh QuickDraw routines to process the image and then writes print files into spool files on your disk. Using a Ricoh 6000 print engine, the PLP prints at 6 pages per minute. It fea- tures three print modes: high- quality mode prints at reso- lutions of 300 dots per inch; draft mode prints at 72 dpi and provides a printout in sec- onds; and preview mode prints to screen, letting you see what the document will look like when printed. The PLP comes with 13 LaserWriter fonts plus nine ad- ditional fonts. The fonts are defined in software as outlines, enabling you to scale, ro- tate, and manipulate the fonts without affecting output quality. The PLP does not sup- port PostScript and can't be used on a local-area network. General Computer claims the PLP's cartridge is good for 1500 copies, the drum car- tridge is good for 20,000 copies, and the cleaner car- tridge for 10,000 copies. A re- placement drum cartridge with two cleaner cartridges are available for about $200. Price: $2599; toner car- tridge, $29. Contact: General Com- puter Corp., 215 First St., Cambridge, MA 02142, (617)492-5500. Inquiry 584. 28-millisecond Drive for the Mac SE and II The Rodime 450 RX is an internal 45-megabyte hard disk drive that's de- signed for the Macintosh SE and II. The company claims the drive has an average access time of 28 milliseconds. An embedded SCSI con- troller is used in the drive be- cause of space constraints. Rodime says it fully meets Apple's SCSI specifica- tions. The controller handles all error correction and disk management. Built-in diagnos- tics identify and flag 28 dif- ferent fault conditions in the drive, controller, or power supply. The 450 RX is fully ar- bitrating, which maximizes data throughput when you use multiple SCSI peripherals. You can connect up to seven additional SCSI peripherals through the drive's SCSI port. The 450 RX includes FileGuard software for backing up data from the hard disk to floppies. You must have a dealer install the drive in the Macintosh II or SE. Its in- stallation is identical to that of Apple's hard disk drives, re- quiring a supplied mounting bracket and a 50-pin connector. Price: $1595. Contact: Rodime Inc., Pe- ripheral Systems Division, 29525 Chagrin Blvd., Suite 214, Pepper Pike, OH 44122, (216)765-8414. Inquiry 585. Z80 Card Adds CP/M to PCs MicroSolution's high- speed Z80 card lets you run CP/M programs on your IBM PC or compatible. The card requires a half- size 8-bit slot and has 64K bytes of RAM and an 8-bit Z80 processor that runs at 8 MHz with no wait states. The Z80 card comes with the high-speed version of the company's UniDOS, a CP/M emulator that lets you create a complete Z80 CP/M version 2.2-compatible environment on your system. Price: $195. Contact: MicroSolutions Computer Products, 132 West Lincoln Highway, DeKalb, IL 60115, (815) 756-3411. Inquiry 586. continued 50 BYTE- SEPTEMBER 1987 Inquiry 277 — From the sophisticated realism, detail, and intellectual stimulation of Flight Simulator... .to the brute-force fun, thrills and excitement of Jet. .with new adventures in Scenery Disks. I^V£j| HilVJilll .SubLOGIC The State of the Art in Flight. See Your Dealer. For additional product ordering information or the name of the dealer nearest you, call (800) 637- 4983. ©oofeLOGIC ■K ■^M HoHTS H SMalorS Ig# ' 1 '•;■•'" R ...WGC I- > 713 Edgebrook Drive Champaign IL 61820 (217) 359-8482 Telex: 206995 ORDER LINE: (800) 637-4983 (except in Illinois, Alaska and Hawaii) Open 7 AM to 9 PM Central Time WHAT'S NEW SYSTEMS DG Upgrades Laptop The Model 2T is Data General's latest incarna- tion of its Data General/One laptop computer. Weighing just under 12 pounds, the 2T adds a supertwist backlit LCD screen, a dual-speed Intel 80C88 running at both 4.77 MHz and 7.16 MHz, and removable batteries. The standard model of the 2T has 5 12K bytes of RAM and a single 3 Vi-inch floppy disk drive. You can upgrade the system's internal RAM in256K-byte, 1 -megabyte, or 2-megabyte increments, up to a maximum of 2.5 mega- bytes. A 3V2-inch 10-mega- byte internal hard disk drive is optional. You can manually switch the supertwist LCD screen to a normal (nonbacklit) screen to conserve battery life. The system's nickel-cadmium rechargeable batteries are now removable and can power the 2T for up to 5 hours. In ad- dition to the internal trickle- charger for the battery, an op- tional quick charge is also available. It fully recharges the batteries in 2 hours. The 2T has both parallel and serial ports. Other avail- able options include a Hayes-compatible 1200-bps modem, an interface card for an external 5 l A -inch floppy disk drive, an 8087 copro- cessor, a carrying case, and a car adapter. For software, the Model 2T comes with MS- DOS 3.2. Price: $1695; with a hard disk drive, $2895. Contact: Data General Corp. , 4400 Computer Dr., Westborough, MA 01580, (800) 328-2436; in Massachu- setts, (617) 366-8911. Inquiry 587. Split-Personality System Datamedia Corp.'s Colorscan/2 is a diskless workstation with a mother- board full of application-spe- DG 's upgraded Model 27 'adds a supertwist backlit LCD. cif ic integrated circuits (ASICs), a V30 processor run- ning at 8 MHz, and 768K bytes of zero-wait-state RAM. The system unit has a foot- print of 15 by 10 inches and is just 2 Vi inches high. Not surprisingly, surface-mount technology is used exten- sively, and the Datamedia folks have taken several hints from IBM PS/2 designers with quick-disconnect compo- nents. The only cable goes to a cooling fan. The Colorscan/2 can be a DEC VT-240-compatible ter- minal and a PC at the same time. You can hook up to an on-line system, such as a VAX, while working with a PC application at the same time. You switch between the terminal session and the PC by hitting a hot key . Since the Colorscan/2 has two RS- 232C serial ports, you can also have an on-line session run- ning under MS-DOS at the same time. As with the Macintosh, there's a Clip- board that lets you move data back and forth between VT- 240 and PC modes. The system's EGA chips are designed by Datamedia and provide a resolution of up to 800 by 480 on the 13 -inch monitor, which is included. Characters display in a 10-by- 10 pixel matrix. A custom ASIC also saves EGA registers and memory while in VT- 240 mode. All VT-240 func- tions are stored in a 128K- byteROM. There's room inside for two add-in boards, as long as they aren't longer than 8 inches. You install all boards horizontally using 8-bit bus 90-degree adapters that are in- cluded with the unit. Options include a long, narrow, battery-backed 2-mega- byte RAM card that doesn't use either of the two expansion slots. And for those who choose not to go diskless, there's an expansion unit that sits vertically like a book and contains both a3'/2- inch 1.4-megabyte floppy drive and a 3 Vi-inch 20-megabyte hard disk drive. There's also a cardfile interface that ac- cepts credit-card-size mem- ory cards. Price: $2000; 2-megabyte RAMcard, $750;3 1 / 2 -inch floppy/hard disk unit, $995; cardfile interface, $150. Contact: Datamedia Corp., 1 1 Trafalgar Square, Nashua, NH 03063, (603)886-1570. Inquiry 588. ON! System is Always On ^ he aptly-named ON! I System doesn't have a power switch. In a depar- ture from contemporary com- puter designs, the system stores all its built-in programs in RAM, with configura- tions available in either 2 or 4 megabytes. Running an 8-bit Z80 processor with the ZRDOS op- erating system, the ON! System has built-in power-con- ditioning and backup power that the company claims will hold all data for up to 14 hours. The built-in menu-driven software includes the New- Word word processor with a 65,000-word spelling checker and over 50 special utilities for file and system manage- ment. The system has an ex- ternal 5 l A -inch floppy disk drive that reads and writes data from over 40 disk formats, including MS-DOS. The system unithas no moving parts, and, according to the company, doesn't re- quire a cooling fan. Single par- allel and RS-232C serial ports are standard, and the standard 14-inch mono- chrome display is available in green, amber, or white phosphor. Price: $2895 with 2 -mega- bytes of RAM; $3595 with 4 megabytes. Contact: ON! Systems Inc., 27944 North Bradley Rd., Liberty ville, IL 60048,(312)680-4680. Inquiry 589. continued 52 BYTE- SEPTEMBER 1987 Verbatim 6.6 MB subsystems: high capacity with the convenience and security of removable floppies. You 7/ appreciate the advantages of Verbatim 6.6 MB subsystems from Kodak. You get 5.57 MB of formatted capacity and all the benefits of removable floppies. Store unlimited amounts of data. Easily transport files. Secure important information. And back up your hard disk quickly and reliably. No need to throw away existing disks. This subsystem can read disks with 48, 96, and 192 tpi. Available to fit inside or alongside your IBM PS/2 model 30 or IBM PC/XT/AT and compatibles. Everything you need for fast, easy installation comes with the package. And you're protected by a one-year warranty. Ask your computer dealer about this new Verbatim subsystem and media. Or call 1-800-44KODAK, ext. 990. Free Back-It software for hard-disk backup with purchase, while supplies last. 6.6 MB OF ADDED STORAGE FROM KODAK The new vision of Kodak ©Eastman Kodak Company, 1987 Inquiry 85 WHAT'S NEW PERIPHERALS Low-Cost Buffer Gets Smaller The new version of the MicroStuffer printer buffer measures approxi- mately 5 by 6 inches— about half the size of its predeces- sor. The buffer has 64K bytes of RAM and works with all computers and most parallel- port printers. Installation is a simple matter of plugging it between your computer and printer. MicroStuffer is totally transparent to the applications software. It shows buffer status with a flashing light on the front panel, which flashes faster as you fill the buffer. A "clear" push but- ton clears the RAM, while a Repeat button lets you make multiple copies. Price: $69.95. Contact: Supra Corp., 1133 Commercial Way, Albany, OR 97321, (503) 967-9075. Inquiry 590. Up to a Gigabyte on the Mac II Mirror Technologies' ProStation 1024 is a combination hard disk drive/tape-backup system de- signed especially for the Macintosh II, although it has a standard SCSI interface for use with any system so equipped. The system is available in hard disk configu- rations of 85, 172,340, 680, and 1024 megabytes. The tape-backup part of the sys- tem is available in 40-, 120-, and 240-megabyte sizes. You can upgrade both the hard disk drive and tape-backup system to higher capacities. The ProStation 1024 measures 6 by 1 7 by 18 inches and weighs about 45 pounds. Its surface color and texture match that of the Macintosh II, and it's designed to sit under the monitor. Mirror Technologies says a fully configured gigabyte system has an average track-to- track time of 17 millisec- The new MicroStuffer printer buffer is compact and low-cost. onds. The tape-backup system writes approximately 3.5 megabytes per minute on stan- dard data cartridges. The unit has a locking on/off switch. Software shipped with the ProStation includes Mana- ger's Safety Net, a program that performs a backup espe- cially for file servers on the AppleShare network. Also in- cluded is Personal Safety- Net, which lets you back up your own files; AutoBack, a time-delay backup option; an Imagewriter spooler; and Think Technologies' Laser- Speed. Price: $7995 and up. Contact: Mirror Technol- ogies Inc., 2209 Phelps Rd., Hugo, MN 55038, (612) 426-3276. Inquiry 591. New QMS Printer Supports PostScript The QMS-PS 800 II is a new PostScript-based laser printer that prints 8 pages per minute using the Canon CXD print engine. The unit handles 500 sheets of input and 400 sheets of output and has a duty cycle of 10,000 copies per month. You can specify face-up or face-down paper output and use the dual-in- put bin for first sheet/ second sheet applications. The 800 II has a mega- byte of RAM for full-page graphics and text applica- tions. Besides the PostSript page-description language, the printer also emulates the HP LaserJet Plus, HPGL (Hewlett-Packard graphics language) , and Diablo printers. RS-232C, RS-422, and parallel interfaces are standard. Price: $6495. Contact: QMS Inc., P.O. Box 81250, Mobile, AL 36689, (205) 633-4300. Inquiry 592. Saba's Full-Page Reader Saba Technologies' Page Reader is a full-page docu- ment reader that reads a page a minute into your com- puter while operating in the background. According to the company, the unit preserves the format of a scanned docu- ment, reading it into a wide variety of word-processing pro- grams while keeping the same indentations, tabs, spaces, and columns as the original document. The reader will also transfer columns of words and numbers into Lotus 1-2-3 and will read graphics into two graphics programs: PC Paint and PC Paintbrush. The reader has a built-in sheet feeder that lets it read stacks of up to five typewritten pages. Although Page Reader's software requires only 270K bytes of RAM, Saba rec- ommends 640K bytes and a hard disk drive. To use the reader, you access the soft- ware with a hot key, tell it which word processor you're using, and press a key to activate the reader. Price: $1299. Contact: Saba Technol- ogies Inc., 9300 Southwest Gemini Dr., Beaverton, OR 97005, (503) 626-7050. Inquiry 593. Bypassing the Power Supply CPS (continuous paral- lel-power system) from Applied Research and Tech- nology is an alternative power source for personal com- puters. The Co-Pilot 140 CPS supplies DC power direclly to a computer by bypassing the computer's internal power supply and completely elimi- nating any switchover de- lays. According to the manu- facturer, the battery system and the Co-Pilot will power a fully loaded AT-type com- puter for approximately 2 hours. Under normal operating conditions, the computer power supply receives AC power from the 1 15-volt AC line and converts the AC to appro- priate levels of DC. Simulta- neously, the Co-Pilot is producing the same voltages, which are placed in parallel to the computer's. Should a power loss occur, the com- puter's power supply would be- gin to fail, and its DC levels would start to drop. But be- cause the battery-backed Co-Pilot's DC levels are con- nected to the computer, the system's power needs are met. The company says its parallel-power approach also eliminates the normal AC/DC/AC conversion ineffi- ciencies associated with other backup and uninterrupti- ble power supplies. Price: $1495. Contact: Applied Research and Technology Inc., 6400 Powers Ferry Rd . , Suite 110, Atlanta, G A 30339, (404) 951-9919. Inquiry 594. continued 54 BYTE- SEPTEMBER 1987 JR mouse 30 DAY MONEYBACK GUARANTEE : compatibles but none can match PROTEUS in IBM Compatibility, Speed, Reliability, Support & Delivery. PROTEUS SYSTEMS features: 16MHz, Zero Wait State, 32-bit RAM Keyboard, Software, & Hardware selectable CPU speed & Wait States ROM based advanced Diagnostics. Norton SI: 23.5 !! Editor's Choice. "There are so many nice aspects to Proteus and the company that makes it, there isn't enough room to cover them all." Lawrence Oakley, Business Computer Digest, 3/87 PROTEUS SYSTEMS ARE DESIGNED AND BUILT IN USA 15-MONTH FULL WARRANTY, LABOR & PARTS INCLUDED FREE NATIONWIDE ON YOU R SITE SERVICE! 24 HOUR ONLINE CUSTOMER SUPPORT 100% COMPATIBILITY WITH DOS, UNIX, XENIX, AUTOCAD, NOVELL CHOOSE FROM THESE BEST HIGH SPEED 386 AND 286 SYSTEMS PROTEUS-386 • 80386 Intel CPU 16 MHz. Norton SI: 23.5 • Zero Wait State, 64KB Cache • KeyboardSelectable Speed and Wait state • 1 Megabyte 32-bit RAM expandable to 4MB on system board • 2 Serials, 1 Parallel Port • ROM Based Diagnostics & Setup • Onboard EGA Bios • Coprocessor Support • Hard Disk & Floppy Controller • Clock, Cal., & battery backup • 230 W quality 110/220v power supply • 1.2MB Floppy Drive, Choice of • 3.5" Microfloppy • Enhanced Keyboard • 14" High Resolution Monitor • Here, compatible Mono graphics card • 40Mb Fast Hard Disk installed Price: $4195.00 40MB EGA System $4595.00 WE HAVE THE LARGEST SELECTION OF HARD DISKS, MONITORS AND ADAPTERS AT THE LOWEST PRICES. WE CUSTOM CONFIGURE AND TEST THE SYSTEMS EXTENSIVELY FOR YOU. PROTEUS-386i •80386-16 Intel CPU, 16 MHz. • 512KB 32-bit RAM expandable to • 16MB on Two 32-bit Slots • Keyboard Selectable Speeds • Coprocessor Socket • Serial, & Parallels on mainbd. • 230W, quality Power supply 110/220v • Hard Disk & Floppy Controller • 1.2MB Floppy Drive, choice of • 3.5" microfloppy • High Resolution Monochrome Monitor • Here. Compatible Mono adapter • Enhanced Keyboard • 40MB Fast Hard Disk Installed • Custom Configurations available Price: $3595.00 40MB EGA System $3995.00 HARD DISKS ADD-ONS 20MB Seagate 30MB Seagate JOMBRodime 40MB Seagate 42MB Miniscribe 44MB Priam 80MB Seagate 140 Maxtor 190 Maxtor" $279 $575 $565 $649 $665 $795 $985 ScaH $call MONITORS High Resolution Monochrome $109 14' Proteus Mono Monitor $159 13" Color Monitor $340 14" Proteus EGA Monitor $449 NEC Multisync EGA Monitor $569 Here, Compatible Mono card. $98 IBM Compatible Color card $98 Proteus EGA, CGA, MDA card $255 Vega Delux EGA card $345 ATfWonder Card Scall 80287-8 Coprocessor $249 80287-10 Coprocessor $369 80387 Coprocessor Scall 1200B Omnitei Modem $109 2400BOmnite| Modem $239 40MB Tape Backup int $469 60MB & 120MB Tape Bckup Scall 3.5" 720K Floppy Dr. $175 360K Floppy Drive $109 Terms; Visa/MC, COD, Prepayment with cash discount, University and Corporate POs accepted upon approval. Quantity discounts. ., u i rm< subject to change Inquiry 236 PROTEUS-286E • Intel 80286,6/8MHzopt. 10MHz. • 1024K RAM on System board • 8 I/O slots • Coprocessor Socket • Clock, Cal., Battery backup • 195VV 1107220v power supply • Hard Disk & Floppy comb, controller • 2 Serials, Parallel Ports • 1.2MB Floppy Drive (reads both • 1.2MB and 360K floppy) • Maxiswitch AT Style Keyboard • Here. Compat. Graphics Adapter • High Resolution Monochrome Monitor • 20MB Seagate Hard Disk Installed Price: $1780.00 "...Proteus 286e is a clear winner. We recommend it". Infoworld, April 27, 87 PROTEUS-286F • 10MHz ZERO Wait State System • 80286-10, 8/10MHz Keybd Select. • 512K RAM expandable to 1MB • 2 Serials & 1 Parallel Ports • 8 I/O Slots • Hard Disk & Floppy Controller •Clock, Cal. & Battery • 195VV Power supply 110/220v • 1.2MB Floppy Drive, reads 1.2MB • and 360K floppy. • Maxiswitch Keyboard Price: $1450.00 The Intelligent Conclusion To order or for information call us 1-800-782-8387 I n New Jersey Call (201) 288 8629 Telex 510 601 0960 Proteus Technology Corp, 377 Route 17, Airport 1 7 Center, visit us at PC Expo Hasbrouck Heights, NJ 07604 New York Booth #1663 EPTEMBER 1987 •BYTE 55 Wfe wanted this to be a fair comparison. Turbo C One look at what the competition left out of their C compiler and you'll see why there's only one choice for people who want to learn C. Intro- ducing Microsoft® Quicker the C compiler that gives you the features you need to learn C quickly with no sacrifice of compilation or execution speed. Only QuickC gives you a completely integrated debugging environment so you can detect program logic errors and correct them instantly And you know this debugger is advanced because it's from the makers of the Microsoft CodeView® source-level debugger. Only QuickC's graphics libraries let you take advantage of the PC's extensive graphics capabilities. Just like you've come to expect with other languages. Only QuickC has special context sensitive help for the C language and library routines. And help is right where you need it On screen, so you don't have to go looking for it Only QuickC gives you such highly acclaimed documentation. There are extensive examples to guide you. And there's a special tutorial that helps BASIC and Pascal users move over to C faster. If you're thinking you might want to move to an even more powerful C later, QuickC's your only choice. No integrated source-level debugging. No graphics library. No on-line help for the C language or library routines. 56 Microsoft, and CodeView are registered trademarks and QuickC is a trademark of Microsoft. Corporation. Turbo C is a registered trademark of Borland International, Inc. BYTE- SEPTEMBER 1987 Life is not fair. QuickC argc! 2 argu: 8x3d2a irch un ebug alls Pi=!elp nain (argc, argu) hit aryc' cliar **artfv; { static char *\ int lines. FILE *i»file< FILE *$f, int Discount; /* get input f c cMstMA Delete ast Uatch Shift*F2 Delete All Uatch J" race (ht J creen Swapping On Toggle breakpoint F9 lear All Breakpoints j to check */ file */ i le */ /* nunber of nissing files */ /* load f ev u] 1 ines - loadf i */ letfp, pt klst); 1 i - ' •' ■ % /* check the disk W l IfroHranList'. CWtlst Context', chk 1st, c twain 06823:089 Seamlessly integrated source-level debugging. The full graphics library puts your program in another dimension. BitBlit, draw circles and arcs, fill regions and much more. Program List: Mamie I Context: (Progran not conpiled) Instantly accessible on-line help only a keystroke away. WordStar is a registered trademark of MicroPro International Inquiry 182 Because no one else is truly 100% compatible with Microsoft C 5.0, the professional level optimizing compiler. Microsoft QuickC Compiler Feature Comparison Microsoft QuickC Turbo C e Version 1.0 Version 1.0 Debugger Integrated debugger and editor Yes — Source-level debugging Yes — Watch local & global variables Yes — Set breakpoints Yes — Stack tracing Yes - Editor and Environment WordStar®compatible Yes Yes Context-sensitive help for C language Yes — Context-sensitive help for C functions Yes — Brace, bracket Cj parenthesis matching Yes — Mouse support Yes — Support for EGA 43-line mode Yes — Documentation Complete C language reference Yes — Examples for every library routine Yes — Compiler Completely Microsoft CodeView compatible Yes — Automatic enregistering Yes Yes Integrated MAKE Automatically generates .MAK hie Yes — In-memory MAKE compatible with stand-alone MAKE Yes — Include file dependencies Yes Yes Libraries Graphics library included Yes — CGA & EGA and VGA support Yes — Library source code available Yes ($150) Yes ($150) Microsoft C Optimizing Compiler 5.0 compatible Yes — Microsoft LINK vs. Turbo Link Links programs up to 640K Yes — Supports overlays Yes — Directory searching for library hies Yes — At $99.00, no one can give you more for the price. And if you're not happy, remember we back QuickC Compiler with a 30 day money back guarantee* What could be fairer than that? MiciDSoff QuickC™ For a QuickC information kit or 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. *«ffer valid only in U.S.A. SEPTEMBER 1987 • B Y T E 57 WHAT'S NEW A D D - I N S Turbo Pascal Controls Controller The MT1000 is a single- board electronic controller designed for a wide range of control applications. According to Measurement Technol- ogy, it's the first controller to be programmed with Bor- land's Turbo Pascal, which has been enhanced on the MT1000 to include software interrupts that allow your program to respond in real time to external events. Based on Hitachi's HD64180 CMOS processor, the MT1000 includes 64K bytes of battery-backed CMOS RAM, 128K bytes of user EPROM, IK byte of EEPROM (electrically erasable), and a clock/calendar. Three RS- 232C serial ports are included. You can connect the MT1000 directly to a wide va- riety of sensors, as well as voltage and current input sig- nals. It also has six frequen- cy inputs that allow any fre- quency in the range of 50 hertz to 1 MHz to be auto- matically measured to .005 percent resolution within 20 milliseconds. An optional floppy disk controller/25 6K-byte RAM card is available. The MT1000 requires a single 5- volt DC supply and typical- ly consumes 5 watts of power. Price: $1625. Contact: Measurement Technology Inc., 1595 Central St.,Stoughton, MA02072- 1694,(617)344-6230. Inquiry 595. 12 MHz for your PC Breakthru 286- 1 2 f rom the Personal Computer Support Group replaces your PC, XT, or compatible 8088 processor with an 80286 processor running at 12 MHz. The Breakthru re- quires a half slot and has a multiconductor cable that plugs into the system's current processor slot. You can use Turbo Pascal to program the MT1000 controller. The board has 1 6K bytes of cache memory and on-board logic for write buffering. The board can be slowed down via software control. Also included with the board is PCSG's Lightning disk- cache software. Price: $595. Contact: Personal Com- puter Support Group, 1 1035 Harry Hines Blvd. #207, Dallas, TX 75229, (214) 351- 0564. Inquiry 596. Slotless Amiga Slot The TimeS aver macro/ clock for the Amiga 1000 plugs into the line be- tween the computer and keyboard and attaches to the underside of your com- puter. The built-in replaceable lithium battery has a rated life of 12 to 18 months, and the unit automatically enters the date and time whenever you power-up or reboot your Amiga. There's a built-in ROM with macros that contain short- hand versions of many CLI commands. It can be disabled if you desire. In addition, the TimeSaver has 7K bytes of RAM for programming macro keys, with a learn mode that remembers commands that you key in. You can also include any macro you select in a start-up/reboot routine. TimeSaver has a com- mand-line history buffer that stores your last 1024 char- acters of CLI commands, and a command-line editor for editing CLI commands. The unit also allows you to pass- word-protect your Amiga, pre- venting its start-up until you enter your personal password. Price: $79.95. Contact: C Ltd., 723 East Skinner, Wichita, KS 67211, (316)267-3807. Inquiry 597. Mighty Meg adds up to 14.5 Megabytes Quadram's Mighty Meg is a memory-expansion board for IBM PC ATs and full compatibles that uses SIMMs (single in-line memory modules) to add up to 14.5 megabytes of RAM to your system, using a single 16- bit expansion slot. The five available config- urations for the Mighty Meg start at 512K bytes. You can expand the board incrementally up to 4 megabytes using 256K by 9 SIMM devices, or up to 14.5 megabytes using 1 megabyte by 9 SIMM devices. Price: 512K bytes, $545; 14.5 megabytes, $4995. Contact: Quadram, One Quad Way, Norcross, GA 30093-2919, (404) 923- 6666. Inquiry 598. Two for the Toshiba Multi-Tech Systems' MultiModem212TLisa plug-in card that fits into the expansion slot of the Toshiba Tl 100 Plus and T3100 laptop computers. The modem operates at both 300 and 1200 bps and is compatible with both the Bell 2 12 A and the Hayes AT standards. TheMultiModem212TL measures 4.175 by 4.6 inches and interfaces with the in- ternal Toshiba 60-pin bus. It includes two phone jacks and an on/off switch. The modem has a two-year war- ranty and is shipped w ith Multi-Tech's MultiComPC software on a 3 Vfe-inch disk. Price: $299. Contact: Multi-Tech Sys- tems Inc., 82 Second Ave. SE, New Brighton, MN 551 12, (800) 328-9717; in Minne- sota, (612)631-3550. Inquiry 599. Megahertz Corp.' s EasyTalkEMSisa multifunction card for the Toshiba Tl 100 Plus that in- cludes a modem and 1 megabyte of RAM. EasyTalk's memory con- forms to the Lotus/Micro- soft/Intel Expanded Mem- ory Specification. Since the memory uses about 10 per- cent of the power of a disk drive, Megahertz says using EasyTalk's memory as a RAM disk can extend the laptop's battery power. An ultra-low- power memory option is available. The modem component of the board is Hayes-compat- ible and operates at both 300 and 1200 bps. Crosstalk communications software is included with the modem. Price: $899.95; low-power memory option, $200. Contact: Megahertz Corp., 2681 Parleys Way, Suite 2-102, Salt Lake City, UT 84109, (801)485-8857. Inquiry 600. continued 58 BYTE- SEPTEMBER 1987 SOFTWARE ENGINEERING COMES OF AGE ANNOUNCING LOGITECfi MODULA-2 VERSION 3.0 Modula-2 is the lar_ of choice for modern software engineering, and LOGITECH Modula-2 is the most powerful implemen tatioii available for the PC. The right language and the right tools have come together in ont superior product. Whether yoif re working on a small prooram or a complex project with LOGITECH Modula-2 Version 3.0 you can write more reliable, maintainable, better docu- mented code in a fraction of die time at a fraction of the cost. FREE TURBO PASCAL TO LOGITECH MODULA-2 TRANSLATOR 1MPRQ DEBUGGERS Time gained with a fast compiler can be lost at debug time without the right debugging tools. With the powerful Logitech Modula-2 Debuggers you can debug your codecs/, and dramatically improve your overall :OUghpt Morten * analyze of a program s terminal dynamic, ors the execi lion of a program with user-delined breakpoints. With their new, mouse based, multiple-window user interface these powerful debugging tools are a pleasure to use. NEW, INTELLIGENT LINKER Links only those routines from a particular module that you need, so you eliminate unreferenced routines and produce smaller, more compact executable files. Turbo Pascal is ;i registered trademark n| Borland International. v - - Inquiry 158 for End-Users. Inquiry 159 for DEALERS ONLY. $99 □ LOGITECH Modula-2 V 3.0 Compiler Pack Compiler in overlay and fully linked form. Linkable Library, Post Mortem Debugger*, Point Editor □ LOGITECH Modula-2 ClZTft V 3.0 Toolkit HO:* Library sources. Linker. RunTime Debug- . get". MAKE, Decoder, Version. XRcf. Formatter □ LOGITECH Modula-2 $9/10 V 3.0 Development System £^Tjf Compiler Pack plusToolkit □ Turbo Pascal to 17T>17T7 Modula-2 Translator r MXEjEj With Compiler Pack or Development System D Window Package $40 Build true windowing into your ^>^ Modula-2 code. D Upgrade Package Call LOGITECH for information or to receive an order form. Add $6.^0 for shipping and handling. California residents :uiii applicable sales tax. Prices valid in U.S. only. Total Enclosed $ □ VISA □ MasterCard □ Check Enclosed I C.irdNuml ier E spiration Date Signature Name Address I City State 1 Zip Phone NEW, IMPROVED COMPILER Faster and more flexible. Now its DOS linker compatible object files ( .OBJ ) can be linked wiih listing libraries in C, PASCAL. FORTRAN and ASSEMBLER - so you can build on previous development and put the power of LOGITECH Modula-2 to work for you right now. Fully supports Wirih's latest language ^| definition, including LONGINTiind LONGSET, which provides large set support including SET: of CHAR. Provides optimization for tighter, more ient code generation. NEWEDITOR : Our new. mouse based editor is fully integrated, easy to learn, fast and easy to use, and very customizable. Its multiple, overlapping windows and color support make it easy to manage parts of one file or several files on the screen at one time. You'll love using it — with or without a mouse. I :\ ■? information about our VAX/VMS iofy Site License. University Discounts* iter ^DisLributot pricing. To place an order call toll-free. - s 800-231-7717 In California: 800-552-8885 IOGITECH LOGITECH, Iik\ 5 Kaiser Driv e , Fremont , C A 94555 Tel: 41^ -795-S500 In Europe: LOGITECH, Switzerland •: Tel; 41-2 1 -87-9656 Telex 458 217 Tech Ch in the United Kingdom: LOGITECH, U.K. Teb l 44908-36807I Lax: 4490S-71751 SEPTEMBER 1987 • B Y T E 59 WHAT'S NEW SOFTWARE • PROGRAMMING LANGUAGES AND AIDS Al Development Environment Incorporates Virtual Memory Written in 386 native mode with virtual mem- ory supported at the hard- ware level, PowerLisp lets you develop and run 60-mega- byte applications on 3 -mega- byte 386 systems or 31- megabyte applications on IBM PC ATs. MicroProducts reports that PowerLisp is the full im- plementation of Interlisp, originally written for use on a PDP-10. Common LISP features are also included, and Interlisp and Common LISP programs can be supported si- multaneously. Interlisp functions can call Common LISP functions, and vice versa. You can communicate between PowerLisp code and DOS applications executing in DOS memory. The program also has features that cor- rect typos, entry errors, and programming errors. A static program analyzer lets you find and edit every place that calls a given function or refers to specific vari- ables, objects, or properties. Editing features let you put breakpoints in functions as well as trace them; debugging fa- cilities are built-in; and a utility is included that retains ses- sion history, enabling you to redo or undo commands. Power-Ex, an optional expert-system shell, is derived from EMYCIN and ported to PowerLisp. The shell sup- ports backward-chaining reasoning, confidence factors, case files, automated con- sistency checking, and English- language consultations. An IBM PC running Power-Ex can support rule bases of thou- sands of rules and can directly import knowledge bases de- veloped using EMYCIN. You can configure PowerLisp to operate in ex- tended memory above the 640K-byte limit. The pro- gram comes in 286 and 386 versions, with the 286 ver- sion upgradable to a 386. MicroProducts reports that the 386 version is six times faster. To run the 286, you need an IBM PC or compatible with at least 2 megabytes of memory, a 30-megabyte hard disk drive, a CGA, EGA, or compatible graphics adapter, and MS-DOS or PC-DOS 3 .0 or higher. To run the 386 version, you need a 386 sys- tem with at least 2 megabytes of memory , a 30-megabyte hard disk drive, a CGA, EGA, or compatible graphics adapter, and MS-DOS or PC- DOS 3.1 or higher. Price: 286 version, $1195 or $1695 with 3-megabyte memory-expansion board; 386 version, $1695; Power-Ex, $500 (when purchased with the system) . Contact: MicroProducts Inc., 370 West Camino Gar- dens Blvd., Boca Raton, FL 33432,(800)553-0777. Inquiry 601, Tl Upgrades Al Development Tools Texas Instruments has announced enhancements to its Personal Consultant Series of expert-system devel- opment tools. These include PC Scheme 3.0, Personal Con- sultant Easy 2.0, Personal Consultant Plus 3.0, two add- ons, and two run-time options. PC Scheme 3.0 is an en- hanced version of TI's imple- mentation of Scheme, a lex- ically scoped dialect of LISP. Version 3.0 includes exter- nal language interfaces to C, Turbo Pascal, and others; random-file access and binary file I/O; and support for up to 2 megabytes of extended or expanded memory. An EMACS-like editor, EDWIN, lets you leave PC Scheme, execute a DOS-based program, and then return to PC Scheme. PC Scheme runs on IBM PCs, XTs, ATs, or compatibles with at least 320K bytes of RAM, two floppy disk drives or one floppy and one hard disk drive, and PC-DOS or MS-DOS 2.0 or higher. It also requires a minimum of 520K bytes to run EDWIN. Personal Consultant Easy 2.0 is a utility designed to sim- plify the development of ex- pert systems with up to 300 rules. The program offers a rule-entry language, an inte- grated window-oriented edi- tor, regression testing, and rule tracing. Version 2.0 in- cludes enhanced interfaces to external data, an enhanced knowledge-base listing, and forward-chaining capabili- ty, which can be completely forward- or backward- chaining. With version 2.0, you can also write as well as read DOS files and interface to dBASE III, Lotus 1-2-3, and ASCII text files. The program runs on IBM PC ATs and compatibles with 640K bytes of RAM, a 10-megabyte hard disk drive, and MS-DOS or PC-DOS 2.0 or higher. Version 3.0 of Personal Consultant Plus, an expert-sys- tem shell, can, like Easy version 2.0, read data from ex- ternal DOS or ASCII text files, Lotus 1-2-3, and dBASE III. Plus 3.0 also offers de- livery options, which enable expert systems developed with either Personal Consultant Plus or Easy to be delivered in LISP or C on DOS-based computers. Knowledge bases developed with Easy are upwardly compatible with Plus, according to TI. Plus 3.0 is designed to take advantage of 80286- or 386-based systems. It pro- vides extended knowledge-rep- resentation features and in- creased rule capacity, enabling you to develop larger and more complex applications than you can with Easy. Also, like Easy, Plus 3.0 is en- hanced with external lan- guage interfaces to C and Turbo Pascal and expanded forward-chaining and frame control. Optional enhance- ments include the Images and PC Online programs. Personal Consultant Plus 3.0 has the same hardware re- quirements as Easy 2.0. Images and PC Online are optional add-on programs that run with Personal Con- sultant Plus. Images allows you to incorporate graphic images into your applications. It includes a set of interac- tive dials, gauges, and a selec- tion of boxes to prompt you to input or display data. You can also use other graphics programs to create input forms, and you can display multi- ple images on the screen simultaneously. PC Online supports data processing in batch mode. It lets you create process- monitoring systems that require little or no human interac- tion, TI reports. You can sup- press screen output and no- tify the operator when information or action is re- quired. PC Online also features reporting and trend-analysis capabilities. Personal Consultant Plus runs on IBM PC ATs with at least 640K bytes of RAM and a 10-megabyte hard disk drive. You also need an EGA card to run Images. One of the two run-time options for Personal Consultant Plus or Easy is C Delivery, available for DOS or Digital Equipment's VAX systems. C Delivery compiles the LISP- code knowledge bases into C source modules and links them with an inference en- gine and a window system, let- ting you deliver stand-alone or embedded applications on DOS-based, systems. Price: PC Scheme 3.0, $95 ; Personal Consultant Easy 2.0, $495; Personal Con- sultant Plus 3.0, $2950; Images, $495; PC Online, $995; C Delivery, $1995. Contact: Texas Instruments Inc., Data Systems Group, P.O. Box 809063, DSG- 150, Dallas, TX 75380-9063, (800) 527-3500. Inquiry 602. continued 60 BYTE- SEPTEMBER 1987 Solution ier. N ews 179 LOGITECH $ MOUSE with Publisher Software Our Mouse and Publisher Soft- ware is the complete solution for people who want to produce great looking, attention getting docu- ments without having to master a lot of complex commands and typographical jargon. It's easy to learn, fast to use, and it gets you the results you need right now. Page Layout Made Easy You don't have to be a graphic de- signer to get professional quality results. Create and edit text right on the page. We offer design tem- plates, automatic layout in 1-4 columns, automatic flow of text around graphics, and vertical and horizontal rulers to guide you. Typography Made Easy Select from over 61 fonts repre- senting 14 typefaces, in sizes suit- able for headlines, subheads and text. We provide optimal line spacing automatically. You adjust for special effects. Graphics Made Easy Use our ClipArt or create your own using LOGIPAINT, PC Paintbrush or MS Windows Paint software. You can shrink or expand your graphic images to fit. You can also modify, rotate or copy them. SLogilech News 90? THE 10GIIEOI DEALER NEWSUWK INTRODUCING LOGITfCH DEALER NEWS oductmj LOGITECH Defiler News so we can ke«|! you, Lhe Deoler soout o> ,SET 10K BALANCE *~ 1 -6V EXISTING SEISMOGRAPH CIRCUITRY 1M 3 5K JOYSTICK RANGE ADJUST ■TO JOYSTICK Figure 1: Amplifier circuit for seismograph. 70 BYTE- SEPTEMBER 1987 Order Status, Technical & Other Info. (602) 246-2222 Call for programs not listed TOLL-I WARE HO US DATA PRODUCTS SPECIAL WORD PERFECT $195 ORDER LINE 1-800-421-3135 FREE SOFTWARE! Purchase over $100 and re- ceive one of these disks abso- lutely FREE! Purchases over $250 get two free disks, over $400 get three, or get all four disks when your purchase is over$500! 1) MIXED BAG -A great assortment of utilities and games all packed on one disk. 2) PC-WHITE — Try this famous feature packed word processor. It's a winner! 3) FONT-SET — Lets you set popular fonts like bold, under- line, etc. on most late model printers from Citizen, Epson, NEC, Okidata, Panasonic, Star, Toshiba, etc. You can even use your printer like a typewriter! 4) ABC-LIST — Great mailing list program! Sort on any field, do qualified searches, print reports and mailing labels, and more! - SOFTWARE - ACCOUNTING BPIAP.AR.PR.GA $169ea. Cyma Call Dae Easy Accounting 39 Dollars & $ense 94 Managing Your Money 3.0 . . . 117 COMMUNICATION PROGRAMS Carbon Copy Plus 115 Crosstalk 89 Remote 89 Smartcom II 83 DATA BASE MANAGERS Clipper 380 Clout 2 Call Condor III 310 Knowledgeman II Call Powerbase 2.2 169 Q&A Call Quidkcode 138 Quicksilver 295 Quickreport 138 Revelation 469 R: Base System V ... ........ 425 EDUCATIONAL Flight Simulator 28 Turbo Tutor II 25 Typing Tutor III Call GRAPHICS Chartmaster Call Energraphics 2.01 294 In-A-Vision 275 Microsoft Bus Mouse 106 Microsoft Chart 164 Microsoft Serial Mouse 119 Newsroom 31 OPTI Mouse W/DR Halo II .... 96 Printshop 33 Signmaster Call INTEGRATED Ability 59 Enable 355 Smart Software Call LANGUAGES Lattice C Compiler $242 Microsoft C Compiler 249 Microsoft Fortran 4.0 255 Microsoft Macro Assembler ... 84 Microsoft Pascal Compiler . . . 166 Microsoft Quick Basic 3.0 55 Ryan McFarlan Fortran 305 Ryan McFarlan Cobol 479 Turbo Basic 55 Turbo C 55 Turbo Pascal w/8087 + BCD. . . 55 PROJECT MANAGER Harvard Total Project II 326 Microsoft Project . . ; 219 Super Project Plus Call Timeline 2.0 242 SPREADSHEET Microsoft Multiplan 108 Spreadsheet Auditor 3.0 82 Supercalc 4 Call VP Planner 49 UTILITIES Copy II PC 19 Copywrite 39 Desqview 2.0 72 Double Dos 30 Fastback 85 Graph in the Box 55 Homebase 39 Microsoft Windows ...... 55 Norton Utilities 3.1 48 Prokey4.0 70 Q DOS 49 Sidekick (unprotected) 55 Sideways 3.1 ; . . 39 WORD-PROCESSING Easy Extra 88 Microsoft Word Call Multimate Advantage II Call Volkswriter3 139 Webster Spellcheck 37 Word Perfect 195 Wordstar 162 Wordstar Propac 233 Wordstar 2000+ 206 - HARDWARE - ACCESSORIES Copy II PC Board 75 1 50 watt power supply 69 Mini Micro Parallel Print Buffer 69 Masterpiece 88 Masterpiece Plus 99 BOARDS AST Advantage Premium Call AST Premium Sixpac Call AST Sixpac (384K) 229 Hercules Color Card 145 Hercules Graphics + 182 Intel Above Boards Call J Laser (Tall Tree) . Call J Ram 3 (Tall Tree) 169 J Ram 3 AT (Tall Tree) 207 COMPUTERS AZ386 80386-16 Micro Processor, 1 MB of Ram, Teac 1.2 MB disk drive, 220 watt power supply, 6 layer mother board, RT keyboard $2995 AZ TURBO XT IBM Compatible Computer, 135 watt power supply, 1 brand name floppy disk, 1 parallel port, 1 serial port, 1 game port, PC keyboard, 640K Ram, 8 expansion slots, 8088-2 processor . . $51900 AZ TURBO AT IBM AT Compatible, 512K, 6&8MHZ, keyboard, graphics card, 220 watt power supply, MS/DOS 3.2 GW Basic $1025 AST 286 PREMIUM COMPUTER 512K, expandable to 2MB on the system board, RT enhanced style keyboard, parallel, serial and clock, 1.2 MB floppy disk drive, 7 expansion slots, two 32 bit fastram slots, DOS 3.1 & Basic 1 year warranty Call EGA BOARDS GBI Board Call Paradise Auto Switch 480 EGA Card 290 Quad EGA Plus Call Vega Deluxe 299 EGA MONITORS AMDEK 722 455 Casper EGA Call NEC Multisync 559 HARD DRIVES AZ 20 MB Hard Card 425 AZ 30 MB Hard Card Call Filecard20MB 499 Maynard 20 MB Hard Card . . . Call Plus Hardcard 20MB Call Seagate 20 MB Int. w/cont. ... 309 Seagate 30 MB Int. w/cont 349 Seagate 30 AT Int 515 KEYBOARDS Keytronics 5151 . . 162 Keytronics 5153 269 RT Style Keyboard 89 INCREDIBLE VALUES Nationally advertised boards for IBM PC and most compat- ibles at give away prices. Keyboards (similar to 5151) $79 Monochrome Board w/printer port (similar to Hercules Graphics) $79 Expansion Board to 576K $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 MODEMS Everex 300/1200 89 Hayes 1200 Call Hayes 1200B Call U.S. Robotics Courier 2400 . . . 339 U.S. Robotics Passwd. 1200 . . 180 MONITORS AMDEK 410 Amber 157, AMDEK 600 339 Magnovox Color RGB Call Princeton Max 12 138 Samsung TTL Amber .72 Samsung TTL Green 70 Samsung Color w/tilt/turn. . . . Call PRINTERS CANON LASER CITIZEN MSP-10 249 MSP-15 315 MSP-20 285 Premiere 35 Daisywheel 459 EPSON - Call on all models LASER IMAGE 2000 Call NEC NEC P5XLP 959 NEC P7 Parallel 619 NEC 8850 1059 NEC P6 Parallel 439 NEC P960XL 1150 NEC Laser Call OKIDATA - Call on all models PANASONIC 1080-1 155 1091-1 .179 1092-1 295 1592 372 KXP3151 368 STAR MICRONICS NP10 139 NB24-10 437 NX10 160 NX15 306 TOSHIBA - Call on all models RAM 64K 1 50NS (set of 9) 1 6.50 256K150NS(setof9) 33 256K120NS(setof9) Call TERMS: Shipping on most software is $5.00. AZ orders +6.7% salestax. Personal check/company check - allow fourteen (14) days to clear. We accept purchase orders Irom authorized institu- tions for 3.5% more than cash price. All returns are subject to our approval. There will be a 20% restock fee. Minimum phone order S50. All prices are subject to change. Due to copyright laws we cannot lake back any open software. No Charge for Master Card or Visa j _____ 1 We do not guarantee compatibility TOLL-FREE ORDER LINE 1-800-421-3135 WAREHOUSE DATA PRODUCTS 2701 West Glendale Ave. • Phoenix, AZ 85051 Phone Hours: Monday. Wednesday & Thursday 7 am-9 pm; Tuesday _ Friday 7 am-5 pm: Saturday 9 am-5 pm. MST. Inquiry 308 SEPTEMBER 1987 -BYTE 71 Inquiry 176 MicroCom Systems OUTSTANDING SOFTWARE For IBM PC's and Compatibles CIARCIA FEEDBACK $350 PER DISK SMALL QUANTITIES $300 PER DISK FOR TEN OR MORE $1 OFF 5 DISKS OR MORE WITH THIS COUPON □ BUSINESS 1 — EZ-Forms business form genera- tion, completion and printing program. □ CAD 1— Altamira, a 4 color object oriented draw- ing program. Color required. [5] CDMM 4a,b,c,d,e-(5 disks) RBBS Bulletin BoardSystem14.1D. GC DATABASE 1a, b— (2 disks) File Express menu driven general purpose database mngr. C EDUCATION 1 — Interactive DOS tutorial for new PC users. Makes learning DOS painless. □ GAMES 1— 3-D PacMan. Kong, SpaceWar, JanitJoe. and more. Color required. □ GAMES 2-Qubert, Pango, Centipede, Monopoly, Zoarre. and more. Color required. □ GAMES 3— Blackjack (you set rules), Arm Chair QB, and Empire (War Game). □ GAMES 4— Castle. StarTrek. and the original Colossal Caves Adventure. □ GAMES 5— The Hack adventure game from the universities. Like Rogue, only more complex. C GAMES 6-Pinball, Othello, Dragons, Sopwith (fly one), and more. Color required. E3 INFO 1a,b— (2 disks) Cooking recipes database with keyword/ingredient retrieval. D LANGUAGE 5-Turbo Pascal interactive debug- ger, pop-up help, formatters, et cetera. □ LANGUAGE 7-Complete Pascal inter- preter/compiler. Great for learning Pascal! □ ORGANIZER 1-DeskMate, a Sidekick clone, and the Judy calendar program. □ PINUP 2-Provocative high res digitized * graphics pinups. Graphics required. I □ PRINTER 1 — Font and sideways utilities, £ spoolers, banner makers, and more. D UTILITIES 1— A collection of invaluable general purpose DOS utilities. A must! □ UTILITIES 2-More invaluable DOS utilities. Too many to list here! G UTILITIES 3— A comprehensive set of debug- ging and diagnostic utilities. NEW RELEASES/UPDATES 23 CAD 2a,b— (2 disks) An advanced 2D/3D draft- ing prog. 640k and color required. S3 COMM 1a,b-(2 disks) Version 2.4 of the ever- popular Qmodem comm. program. H] COMM 2a,b— (2 disks) Procomm 2.42, an ex- cellent modem program with terminal emulation. □ EDUCATION 2-Learn the Presidents, States (and capitals) and more. Color required. □ EDUCATION 5— Learn Origami, the Japanese art of paper folding. Color required. E3 FINANCES 3a,b— (2 disks) Express Calc 3.12, a powerful spreadsheet program. □ GAMES 8 — Striker helicopter attack, and Risk, world domination. Color required. □ GAMES 9— EGARisk, the game of world domina- tion in very high resolution. EGA required. G GAMES 10 — Solitaire, Teed-Off golfing, and Sail- ing in the Bermuda triangle. Color required. G GAMES 12-MyChess (9 levels), Backgammon, and Wheel of Fortune. Color not required. G GRAPHICS 1— Record and play back screen images! Excellent for demo, etc. Color required. m INFO 2a,b-(2 disks) Zip-Phone, national areacode/ prefix to zip-code cross reference. S3 LANGUAGE 3a,b-(2 disks) The A86 2.18 macro assembler and debugger. □ SHELL 4-Automenu and HDM II 4.04 hard disk menus. Create custom full-screen menus. □ UTILITIES 5 — Utilities for formatting, parking, and optimizing hard disk drives. G UTILITIES 6— Advanced utilities including Dpath, Esc, Hotdos, Resident program utilities. G UTILITIES 7— More Advanced utilities including MasterKey (undeletes files from hard disks). m WORD 1a,b— (2 disks) PC Write 2.71 . a power- ful word processing system, w/spell checker. Catalog available, add S2. 3.5" format add $1/disk. MicroCom Systems Cost of Items 3673 Enochs Ave. Ship/Handling $1-00 Santa Clara, CA 95051 CA Res. Tax ■ 408-737-9000 Total Enclosed l! ^— (415)325-6500 l! Jk M-F7am-9pm I Sat-Sun 8am-5pm so you can see what 's going on. If you 've got it wired up right, watch the first num- ber (from STICK(0)J. Tap the seismograph so that you get a signal to play with and open the zero set switch. Set the range potentiometer to about midrange and adjust the offset po- tentiometer so that the minimum number is about + 10 or so. Set the range port so that the maximum number is around +200. These two settings interact, so you '11 need to twiddle both of them to converge on the right settings. Eventually you should have a slight os- cillation going, with reasonable joystick values coming back. Now you can estab- lish some software-conversion factors that relate the numbers you get from the STICK ( ) function with the familiar values on the strip-chart recorder. I think you can use the PCjr and the recorder at the same time, but it 's worth checking to make sure that the new circuitry doesn *t load it down. The rest of the software is up to you. Incidentally, some older 741 op amps suffer from what's known as " 'popcorn" noise: The output voltage abruptly bounces from one supply voltage to the other. If you 're listening on a speaker, it sounds a lot like popcorn popping. If the output to this circuit shows unexplained spikes, try replacing the 741 s with newer versions. —Steve Squeaky Disk Dear Steve: The carbon brush on my 10-megabyte IBM hard disk drive squeaks. My deal- er's service department fixed it once, but the squeak recurs. I called IBM and they want $565 to exchange the disk drive for a new one with a very short warranty . I thought I might try a tiny amount of graphite lubricant. If this is inadvisable, please let me know. Any help you can give is appreciated. Kenneth L. Kayser Milwaukee, WI You 've got the right idea. Pull the drive apart and put the tiniest possible drop of lubricant on the brush. The noise occurs because the rounded end of the spindle has worn a divot in the carbon brush. The divot catches on the spindle and oscillates at exactly the right frequency to make your hair fall out. The spring, of course, is a resonant, lightly damped structure. You can also try bending the support spring a bit to move the divot off-center from the spindle. This will work until the spindle wears a divot in the new location, but that can take a long time. Eventually you '11 wind up with several divots that merge into one pothole, and the problem will go away. Be careful when you 've got the drive out. Do not rotate the spindle or the head actuator; the heads are in con- tact with the platters, and you will do irreversible damage if you move things around. Resist the engineer's normal tempta- tion to fiddle with the mechanical objects. Just do the job, put it back together, and count your change. A little lubricant is better than a lot. Don 't go hog-wild with a can of WD-40, the way you might under a hood with automotive troubles. — Steve CIRCUIT CELLAR FEEDBACK New on the Block Dear Steve: I'm very interested in building the projects you present in BYTE, but I'm 1 5 years old and the only computers I have access to are an AT&T PC 6300 and an Apple II + . Also, I don't know a thing about electronics. I want to learn, but I don't know where to start. Can you help? Chris Mulberry Golden, CO We were all beginners once, so it's nothing to worry about. A good source of basic electronics books and information is your local school or public library. Magazines such as Modern Electronics (available on most newsstands) publish much material useful to beginners. There are several good hardware-ori- ented books available on interfacing the Apple. These include: Blankenship, John. The Apple House. Englewood Cliffs, NJ: Prentice-Hall, 1984. Sather, James. Understanding the Apple II. Chatsworth, CA: Quality Soft- ware, Computer Book Division , 1983. Sather, James. Understanding the Apple He. Chatsworth, CA: Quality Soft- ware, Computer Book Division , 1 985. Titus, Jonathan, et al. Apple Interfac- ing. Indianapolis, IN: Howard W. Sams, 1981. Titus, Jonathan, et al. Microcom- puter—Analog Converter Software and Hardware Interfacing. Indianapolis, IN: Howard W. Sams, 1978. Uffenbeck, John E. Hardware Inter- facing with the Apple II Plus. Englewood Cliffs, NJ: Prentice-Hall, 1983. (This last book uses a different bus-connector- pin numbering than that used in the Apple manuals and every other Apple interfac- ing book. This can be confusing.) continued 72 BYTE- SEPTEMBER 1987 1967: The first coronary bypass operation is performed. Fred Molinari, President, is there. Announcing the most important bypass operation since 1967 Introducing DT-Connect" Observing the first coronary bypass operation, Fred Molinari was struck by an inspiration. "The PC AT's I/O is so slow— the bus is like a clogged artery! " So he considered, "Wouldn't bypassing the host bus with an external, direct connection between acquisition boards and processor boards allow them all to run much faster?!" Then, he fainted. 20 years later, Fred developed DT-Connect , an open interface specification permitting the direct connection of an- alog I/O or frame grabber boards to array processor boards. Based on 16-bit tri-stated external I/O data ports and simple handshaking protocols, the DT-Connect interface eliminates the need for data to flow through the limited I/O of the host PC AT. Data flows faster, from Hz to 10 MHz, speeding signal (DSP) and image proces- sing on the IBM PC AT. Best of all, many new Data Translation analog I/O, frame grabber, and-array processor boards incorporate the Disconnect interface. So they are superfast, and supercapable. Call us for more information. But have smelling salts handy. The processing speed of DT-Connect isn't for the faint of heart. Call (617) 481-3700. < DT-Connect is an open interface specification which permits the direct connection of stand alone data acquisition and frame grabber boards to proces- sor boards for greatly accelerated signal (DSP) and image processing. DATA TRANSLATION World Headquarters: Data Translation, Inc. 100 Locke Dr., Marlboro, MA 01752 (617) 481-3700 Tlx 951 646 European Headquarters: Data Translation Ltd., 13 The Business Centre, Molly Millars Lane, Wokingham , Berks, RG 112IQZ, England 1 Tlx 849862 (#D) International Sales Offices: Australia (61) 2-662-4295; Belgium (32) 2-7352135; Canada (416) 625-1907; Chile (2) 2-253689; China (408) 727-8222, (86) 8-721-4017; Denmark (45) (02) 187188; England (44) 734-79383; Finland (358)-90-372144; France (33)(1) 69-28-01-73; Greece (30)(3) 152-7039, (30)(1) 361-4300; Hong Kong (852) 3-318585; India (91) 2-231040; Israel (972) 3-324298; Italy (39) 2-81821; Japan (81) (3) 502-5550, (81) (3) 375-1551, (81)(3) 355-1111; Korea (82) 778-0721; Malaysia (60) 3-36299; Morocco (21) 9-30-6949; Netherlands (31) 70996360; New Zealand (61) 2-662-4295; Norway (47)(02) 559050; Peru (51) (14) 31-8060; Phillipines(63) 818-0103; Portugal (351) 1545313; Singapore (65) 271-3163; South Africa (27) 12469221; Spain (34) 14558112; Sweden(46)8-7617820; Switzerland (41) 17231410, (41) 22360830; Taiwan (86)2-709-1394; West Germany (49) 89809020. IBM PC and IBM PCATare registered trademarks of IBM. Data Translation is a registered trademark of Data Translation, Inc. Inquiry 73 SEPTEMBER 1987 -BYTE 73 Inquiry 226 for End-Users. Inquiry 227 for DEALERS ONLY. IS YOUR HARD DISK FULL? You thought you would never run out of space on your hard disk, but they fill up quickly. And once your drive has reached its limit, what do you do? Buy an identical drive of the same capacity? Hopefully you'll have room in your computer for an additional drive. If not, do you buy a new drive of greater capacity to replace your old one? Hopefully you'll get a reliable, trouble- free hard disk. With a PERSTOR 200 Se- ries Controller you can solve today's and tomor- row's hard disk storage problems. PERSTOR 200 Series Controllers use ARLL technology to DOUBLE the capacity of MFM and RLL drives, so whether you have an older drive or you are planning to purchase your first hard disk, you'll get the perfor- mance and capacity that you need. For fur- ther information write or call (602) 991-5451. PERSTO R Sensible solutions for your hard disk problems. Perstor Systems, Inc. 7825 East Redfield Road Scottsdale, Arizona 85260 POWER MEMORY. You can run your largest programs, con- trol any instrument , test, measure, and print the results. All from one4x488 ■'. We designed the soft- ware, built the board, and wrote the book to increase your productivity. lb find out what we can do for you— call 617-273-1818. cec Capital Equipment Corp. Burlington, MA 01803 The bottom Jme-IEEE-488, RS232, par. port, 4MB EEM LIM, runs DOS and OS/2. CIARCIA FEEDBACK In addition, Radio Shack has pub- lished a number of books by Forrest Minis; they are all excellent sources of in- formation. —Steve SB180 Dear Steve: I'm interested in your articles on the construction of the SB 1 80 computer and its peripheral boards, and I plan to build an SB 180 myself. Unfortunately, I can- not afford the Micromint boards, sol will have to either use prototype boards or make my own printed circuit board. In view of the lower electrical quality of these homemade boards, and also to re- duce the cost, I plan to use the 3-MHz 64A180 instead of the faster B version that you use. Will I have to change any components besides the processor and the crystal? I have also been unable to find the FDC9266 floppy disk controller chip. Is there any other combination of more readily available chips that I could use to provide an equivalent interface? Finally, the SB180FX offers some ex- tra features that I would like to incorpo- rate into my project, if possible. Since I am a relative beginner at electronic con- struction, I would welcome any advice you can give on the practical details of the construction of the SB1 80FX. Jim Hawkins Royston, England There should n 't be any problem with using the 3-MHz version of the HD6 in a home-built version of the SB 180. As you suspect, the appropriate crystal should be the only required change; however, you might want to adjust some of the things developed with the 6-MHz unit in mind, such as the disk-access times. The SMC9266 floppy disk controller chip is compatible with the industry-stan- dard NEC 765 A FDC and SMC's 9229 digital-data separator. My main reason for choosing the 9266 was to conserve circuit board space. Building the SB180FX using point-to- point wiring would be impractical be- cause of the difficulties in wiring the PLCC sockets and the problems asso- ciated with the 9-MHz clock speeds. —Steve Expanding Term-Mite Dear Steve: I have some questions about the Term- Mite terminal board (January 1984 Cir- cuit Cellar). I am using mine with an SB 180. I've begun working with Eche- lon's graphics software and I'm looking for information on modifying the Term- Mite program. continued 74 BYTE- SEPTEMBER 1987 Inquiry 42 Dot, Daisy and Laser. v The new family of Olympia printers with a prestigious technological heritage. Olympia is first in making lasting impressions for a good reason. For over 80 years we've been a leading innovator in typing tech- nology for the office. Now every- thing has changed. And nothing has changed. Our technology is as new asthe dew. Our commit- ment to reliability, efficiency and service is as solid as ever The Olympia dot matrix printers produce clean, crisp printing at speeds from 130 CPS to 200 CPS for a wide range of applications. And our daisy wheels are unsur- passed in printing quality. Our new Laserstar 6 is com- pact, versatile, compatible and offers the latest in desktop printing technology. In short, whatever you need we've got. So don't go shopping without the big new name in printers on your list. Olympia. We'll make a good impression on you. Then for you. O Call U.S., 1-800-524-2541 (In N.J., 201-722-7000). Orwrite Olympia U.S.A. Inc., Box 22, Dept. ADV, Somerville, N.J. 08876. O Call Canada, 1-800-268-6464. Or write Olympia Business Machines Canada Ltd., 58 Prince Andrew Place, Don Mills, Ontario M3C3A2. 744 Inquiry 201 OLYMPIAft The Competition Advanced Engineering from Germany SEPTEMBER 1987 -BYTE 75 Easy to C Cis a great programming language. Now the C WORKSHOP makes it easy. Interactive software teaches you C. When you complete and run a program exercise, the amazing Soft Tutor™ gives you immediate feedback, pinpointing any incorrect results. If you've never programmed before, start with the basic ideas of structured program- ming. Study what you want when you want, including advanced pointer techniques and linked lists. The C WORKSHOP has every- thing you need to learn and use C. You can write your own pro- grams, too. The integrated editor and 5500 line/minute compiler are complete with popup menus, customizable keys, online help and C reference lookup. Let the other guy struggle with confusing books and compilers. Join AT&T and other major companies now using C WORKSHOP. Columnist Adam Green calls it "the most intriguing new type of training system I've ever seen." (InfoWorld, 1/27/86) Order your C WORKSHOP today. And C how easy it is. 1 t 1 to S-a&S - * 5 Specifications Package includes tutorial, Soft Tutor editor, and C compiler. You get unprotected diskettes and coordinated 384-page book. Tutorial: Quizzes, ^^^ exercises, electronic index and bookmarks. ^ Editor: Search and \ C^ replace, block com- mands, split screen context sensitive C * >ia^ e help. Creates ASCII files. » , sS Compiler: Full "K&R" C 1 M dt plus signed char, unsigned A Qftl long, and re-usable member A „ ,.„ ^>~~'* > ~*^\ ►nfM*^ names. Produces 8086 code. Compiles over 5,500 lines per minute (8 MHz % AT). Creates .COM programs, A Cursor placed at first error message. Library includes disk I/O, cursor control, printf, scanf, longjmp. Soft Tutor: Detects incorrect output from program exercises. Shows example of the problem. Operates after compiler checks syntax. Memory usage: Uses 220K. Uses additional RAM as available. If not satisfied, tell us why and return in 30 days for your money back. Quality software since 1981 CIARCIA FEEDBACK I already know some of the things I would need: I could start with the source code for the Term-Mite, and then I would need a cross-assembler for the NS-455. Is a cross-assembler available from Na- tional Semiconductor, and will it pro- duce code that can be burned into an EPROM? In addition, I would like to add graph- ics characters. Can I add a full block and a hashed block, or are they already available? I would also like to support window- ing. With the Echelon window software, you have the ability to read the character at the cursor position and the ability to read a screen page. Are there any hard- ware limitations on performing either of these operations? Cortney E. Smith Tuba City, AZ One of my Ask BYTE researchers, Jon Elson, has written a cross-assembler for the NS-455 chip. It's written in Turbo Pascal, which you can run on the SB 180. You can reach him at 819 Marshall Ave. , Webster Groves, MO 63119, (314) 962- 6103. You can implement the full block and the half-brightness block by displaying a space in reverse video and in half- intensity reverse video. Adding other characters requires the external char- acter-generator feature, which disables half-intensity mode. Windowing is certainly possible. All scrolling is done by copying character codes from one place in memory to an- other, and windowing just involves a few checks to keep the cursor in the correct window after linefeeds, wraparounds, and scrolling. When text scrolls off the top (or bottom) of the window, the bytes are just discarded. The Term-Mite is almost completely software-driven, so you can accomplish almost anything with the right code. The Term-Mite source code is available from Micromint. —Steve ■ Between Circuit Cellar Feedback, personal questions, and Ask BYl^E, I receive hundreds of letters each month. As you might have noticed, in Ask BYl^E I have listed my own paid staff. We answer many more letters than you see pub- lished, and it often takes a lot of research. If you would like to share your knowledge of microcomputer hardware with other BYTE readers, joining the Circuit Cellar/ Ask BYTE staff would give you the opportunity. We 're looking for additional researchers to answer letters and gather Circuit Cellar project material. If you're interested, let us hear from you. Send a short letter describing your areas of interest and qualifications to Steve Ciarcia, P.O. Box 582, Glastonbury, CT 06033. 76 BYTE- SEPTEMBER 1987 Inquiry 317 Inquiry 172— » GRAPHICS TOOLS FOR SOFTWARE DEVELOPERS What is HALO? HALO is a device independent library of 190 graphics subroutines. It is compatible with 17 programming languages and over 110 graphics hardware devices for the IBM PC, PS/2 and compatibles. It provides the software designer with the richest environment of graphics functions; the programmer with reliable and well- documented tools; and DP managers with continuity of user interface and database format. Who uses HALO? Since its introduction in 1982, HALO has developed an installed base of 60,000+ end-users, hundreds of site- licensed corporations, government agencies, universities, and national laboratories, and most importantly, a family of over 150 Independent Soft- ware Vendors (ISVs) who market ap- plications written with HALO. What about performance? Our ISVs are the best proof of HALO's performance. They use HALO because: —building their own library costs too much —HALO outperforms the rest —HALO is easier to pro- gram — it supports a wider range of devices for a bigger potential market —new device drivers are added quarterly to prevent software obsolescence and reduce maintenance costs. HALO infinite possibilities in graphics and imaging How much does it cost? A single license for HALO costs $300.00 and includes all device drivers and your choice of one compiler binding. HALO is fully documented, includes LearnHALO (an interactive tutorial) and free 800# technical support. If you need high performance graphics development software that provides a migration path to OS/2 and other future technology, follow the industry I leaders-call (800) 426-HALO. media cybernetics 8484 Georgia Ave. Silver Spring, MD 20910 (800) 426-HALO (301)495-3305 telex 322014 HALO is a registered trademark of Media Cybernetics, Inc. IBM PC, and PS/2 are registered trademarks of International Business Machines Corp. Tb get Lotus 1-2-3 to do all this more quickly and easily we didrit make it more powerful. Lotus HAL doesn't change 1-2-3 or the ivorksheet. It makes things easier. For in tance, to graph sales by district from January to March just request "§raphJan to Mar." You can spend a lot §ftime setting up your spreadsheet. Summing up sales figures is a good example. With Lotus HAL, just request "total all roivs" and 1-2-3 and Lotus HAL will create the formulas. m\ iieai 'm fi«t, Jofo imi •'.*!. ITi'aBKiW'; Ht !Rrt? !liJi!« Ll "" , 1 Mitt, imis M», talis 1. nest su.m » 13 «,5B9 S >,88fl 183Z PackasiKV 1,880 lift $m>j)li«s B mm «*i wa ALES FIBCBff LIKE 8 1 mm MSI WIS East $8,868 $ Ifarih $18,888 5 Hfl mm line ,588 lfeSx Hospital M n MAM i c tjBWIi feet Cutler, wbs talk $15,888 Si South $21,883 $2 Mest $14,508 $1 1,588 to rwww ,588 162'/. fackayihi ,888 383Z Paclugins ifHiftl «:«» Say you want to extract just the information you want from a database. For example, you want to determine your top sales reps. Simply request "who has sales > 8000" You may find yourself in the position of figuring out how a sp sheet ivas built. Well, with Lotus HAL, you simply request "list the relation in the sheet" And aivayyou go. u: mil 'IE? hoc PH, Saaa R, last cj, Eta H. East inVj Ewlsn last fctas, Paul H. Kwth 1 !f Bl!*pt M .,.._', Swate? North l|iH htrick forth ■ Sank, Ki* S, forth SfafcusU Cam Sntlt jAflKuen, Join South ■tfinstj tewa Saath ie-j: Lisa L. South scon, Bart Soath $5,558 $1,818 $8,888 $3,588 $1,868 $7,1 $12,863 $7,1 $16,88 SJ $3,569 $1,1 $5,888 $1,5 $4,530 $5,868 $13,888 %,m $15,868 $14,568 $6,888 $6,258 $9,888 tf,"~ $7,588 $7,458 $7,568 $4,988 Do you find it hard to sort things by district §r sales or any other criteria? Just request "sort by dist" To create macros, well, you may not believe th is. What you see here isn't a description of what's happening—it's the actual macro. See, we told you you wouldn't believe this. 78 BYTE- SEPTEMBER 1987 Wemade you more powerful. Lot i is 1-2-3 /)iiis|]AL How? With Lotus HAL™— a Companion product for 1-2-3® that helps you take shortcuts, undo mistakes, link spreadsheets, use your own words for commands and basically get more out of 1-2-3 than ever. So much more, that Computerworld has named Lotus HAL "Product of the Year." The screens on the left will give you an idea of how easy it is to get more out of 1-2-3. And these are only a few of the enhancements and new features Lotus HAL brings to 1-2-3. Lotus HAL gives you the ability to perform 1-2-3 tasks using simple English phrases— called, logically enough, "requests'.' This has advantages for all kinds of 1-2-3 users: the newer users will find that difficult tasks are now simplified; the more experienced users will find that many time- consuming tasks can now be performed in a fraction of the time. In addition to this powerful capability, Lotus HAL also allows you to test assumptions, correct mistakes and simply change your mind with ease. Because through a special capability called "undo',' Lotus HAL lets you reverse your last command— even retrieving a file before saving your work. Besides all this, Lotus HAL gives 1-2-3 a number of other useful and powerful new features— like spreadsheet auditing and the ability to link cells or ranges between worksheets. One obvious benefit of all this is that you save time. This is what led Business Software to say, '! . .(Lotus) HAL gives users the ability to move through 1-2-3 at least twice as fast." And what does that savings in time mean to a business person? It means you're more powerful, more productive, more effective than ever before. Make yourself more powerful, and buy yourself Lotus HAL. You'll find it at your Authorized Lotus Dealer, for just $150* Or, you can call us directly at 1-800-3454043 and ask for Product YS-1377, or ask for YS-1385 to receive more information aboutLotus HAL. See? Everything with f\tl 1 Q TT A 1 Lotus HAL begins with a simple request. 1J\J uULO L llxlJ Requirements: Lotus HAL is a memory-resident program lhat requires 1-2-3 Release I A, Release 2, or Release 2.0] for personal computers from IBM,** COMPAQ and AT&T, plus 1-2-3 certified compatibles; twodisk drives; DOS 2.0 to 3.1; 512K RAM. Please refer to your 1 -2-3 package or 1-2-3 documentation for appropriate hardware configurations and DOS requirements or consult your dealer. * 'Lotus HAL does noloperate with 1 -2-3 for IBM PCjr., or IBM PC Convertible or Release 1A for the IBM 3270 PC. When you purchase Lotus HAL directly from Lotus, take your first 30 days to try it. If after 30 days, Lotus HALdoes not perform asdescribed and you've purchased it directly from Lotus, we'll gladly give you a full refund. © 1987 l/)lus Development Corporation. L«tus and L2-3 are registered trademarks of Lotus Development Corporation. Lotus HAL is a trademark of Lotus Development Corporation. Lotus HAL is distinguished from HAL which isa trademark of Qantel for its Hotel And Leisure software. 'Suggested Retail Price (Plus Sales Tax) SEPTEMBER 1987 -BYTE 79 QUBIE' Eliminates the Computer Decision Headache The best remedy in terms of Features, Price and Performance is $499 'Shown With Optional 101 Key Keyboard Options Displays Drives/Tape Backup Monochrome Kit (MONOKIT) Amber Monitor with Mono Graphic Card Tilt and Swivel Base $149 Color Kit (CGAKIT) RGB Color Monitor 14' 640 x 200 Resolution Tilt and Swivel Base with Color Graphic Adapter Screen 20MB Hard Disk Kit (PC20) 3 1/2 Plated Media Drive Boots Directly From Drive IBM Compatible 5 1/4" Short Slot Controller Card with Cables Low Power Consumption QUBIE' V20V.ll Features 4.77/8 MHz Switchable Clock 135 Watt Power Supply 640K Ram On Motherboard NEC V20 Processor Multi I/O Card 360K Floppy Drive 'AT' Style Keyboard 1 Year Warranty take one of these and call us in the morning The Qubie' Promise 30 Day No Risk Guarantee $299 $399 Enhanced Graphics Kit (EGAKIT) EGA Hi-Resolution Monitor 14" Screen 640 x 350 Resolution Fully IBM Enhanced Graphics Adapter Compatible Tilt and Swivel Base Fully Compatible 256K EGA Card with a Parallel Port Hi 42MB Hard Disk Kit (PC42HH) AT Speed in a XT 42MB Formatted 5 1/4" Short Slot Controller Card with Cables Standard Half Height Automatic Head Parking Low Power Consumption $519 $579 40MB Streaming Tape Drive Call Now For More Selections" 40MB of Formatted Data Per Cartridge Data Transfer Rate of 1.875MB/Minute Standard 3 1/2 Floppy Disk Drive Mounting Uses Standard DC-20000 Tape Cartridge Low Power Consumption $349 Inquiry 245 for End-Users. Inquiry 246 for DEALERS ONLY. II you are not completely satisfied with your purchase, you may return it within 30 days for a full refund, including the cost to ship it back. (UPS ground shipments only) One Year Warranty All Qubie' products carry a full one year warranty on ail parts and labor. 48 hour turnaround on all warranty repairs. Extended war- ranty (PCP) available on all products. For fastest delivery, send cashiers check, money order, or order by MastercardA/isa. Personal checks allow 14 days to clear. Cor- porations and Institutions purchase orders accepted, call for prior authorization. California residents, add 6% sales tax. QUBIE' Outside California (800) 821-4479 Inside California (805) 987-9741 Technical Support (805) 482-9829 Hours: M - F 8am - 5pm PT2 Sat 8am - 11am BOOK REVIEWS CD ROM 2: OPTICAL PUBLISHING Edited by Suzanne Ropiequet with John Einberger and BillZoellick Microsoft Press Redmond, WA: 1987 ISBN 1-555615-000-8 384 pages, $22.95 68000 ASSEMBLY LANGUAGE: TECHNIQUES FOR BUILDING PROGRAMS Donald Krantz and James Stanley Addison-Wesley Reading, MA: 1986 ISBN 0-201-11659-6 402 pages, $24.95 SOFTWARE COMPONENTS WITH ADA: STRUCTURES, TOOLS, AND SUBSYSTEMS Grady Booch Benjamin/ Cummings Menlo Park, CA: 1987 ISBN 0-8053-0610-2 635 pages, $35.95 CD ROM 2: OPTICAL PUBLISHING Reviewed by Paul E. Hoffman Microsoft has long been a champion of emerging technol- ogies, even if it has been a bit late in pushing them out the door. Last year, the company sponsored the first major confer- ence on using compact optical disks (CDs) as read-only mem- ory for computers. Microsoft also published the first major book on the new technology, CD ROM: The New Papyrus (re- viewed in the October 1986 BYTE). The articles in the first book covered a wide range of topics and expressed a general enthusiasm for the emerging CD-ROM technology. Many of the articles were introductory in nature and rarely went into much technical depth. The articles in CD ROM 2: Optical Publishing are more concrete and assume a greater background in storage concepts. The articles are written by several different authors and com- piled and edited by Suzanne Ropiequet, with assistance from John Einberger and Bill Zoellick. Though it contains many arti- cles, this second volume lacks the variety and quantity of the first volume. Two features of CD-ROM disks differentiate them from other removable data-storage media: They hold far more data, and they are read-only. The difference between a CD- ROM disk and a floppy disk is similar to the difference be- tween a large book and a piece of paper. Like a book, the CD-ROM disk holds phenom- enally more data, but it cannot be altered like a piece of paper can. Optical Publishing treats the process of creating CD- ROM disks like book publish- ing. Instead of dwelling only on how computers can access CD-ROMs, the book spends a great deal of time explaining how standard computer con- cepts can be applied to the publishing industry. For ex- ample, a CD-ROM disk that has reference material on it is significantly more flexible than a book, even if the book has a great index. However, to be better than a book, the CD- ROM must have software sup- port that's powerful and easy to use. The book's orientation to- ward publishing makes it much easier to read than a technical book. It also conveys the big picture of CD-ROM : The data on the disks will be much more important than the computer controlling the disk reader. Although The New Papyrus had more interesting articles on in- formation theory, Optical Publishing has more practical advice for people who intend to publish CD-ROM disks. Responding to Users' Needs The first couple of chapters quickly cover the background of CD-ROM and describe some of its potential applications. Edi- tors Ropiequet, Einberger, and Zoellick provide an excellent technical summary of how data is read from a CD-ROM disk. Although this information is not necessary for someone prepar- ing a CD-ROM disk, it is useful for an understanding of why you cannot simply give a disk producer a computer tape of files and expect a disk in return. The next three chapters explain the underlying problems of preparing data for and retrieving information from CD-ROM disks. The editors detail the different methods for putting text on the disk. They also cover a much more interesting issue: how to read the information off the disk. This is followed by a chapter containing much more detail about methods for indexing and retrieving text on a disk, while the next chapter discusses index- continued Illustration by William Grant SEPTEMBER 1987 -BYTE 81 Inquiry 86 Z Best Sellers z\ BOOK REVIEWS Z80 Turbo Modula-2 (1 disk) $89.95 The best high-level language development system for your Z80- compatible computer. Created by a famous language developer. High performance, with many advanced features; includes editor, compiler, linker, 552 page manual, and more. Z-COM (5 disks) $119.00 Easy auto-installation complete Z-System for virtually any Z80 computer presently running CP/M 2.2. In minutes you can be running ZCPR3 and ZRDOS on your machine, enjoying the vast benefits. Includes 80+ utility programs and ZCPR3: The Manual. Z-Tools (4 disks) $169.00 A bundle of software tools individually priced at $260 total. Includes the ZAS Macro Assembler, ZDM debuggers, REVAS4 disassembler, and ITOZ/ZTOI source code converters. HD64K0 support. PUBLIC ZRDOS (1 disk) $59.50 If you have acquired ZCPR3 for your Z80-compatib1e system and want to upgrade to fuil Z-System, all you need is ZRDOS. ZRDOS features elimination of controi-C after disk change, public directories, faster execution than CP/M, archive status for easy backup, and more! DSD (1 disk) $129.95 The premier debugger for your 8080, Z80, or HD64180 systems. Full screen, with windows for RAM, code listing, registers, and stack. We feature ZCPR3 versions of this professional debugger. Quick Task (3 disks) $249.00 Z80/HD64180 multitasking realtime executive for embedded com- puter applications. Full source code, no run time fees, site license for development. Comparable to systems from $2000 to $40,000! Request our free Q-T Demonstration Program. Z-System OEM Inquiries invited. Visa/Mastercard accepted. Add $4.00 shipping/handling in North America, actual cost elsewhere. Specify disk format. V Echelon, Inc. 885 N. San Antonio Road • Los Altos, CA 94022 415/948-3820 (Order line and tech support) Telex 4931646 Oriental Prec/ston Company Li AD OFFICE : Seoul Office: Geon-Seol Bldg . 11 12th Fl . 71-2, Nonhyun-dong, Kangnamgu, Seoul. Korea J Box T301 Seoul, Korea. Cable: -PRECISION" Seoul Tin ORANGE K27335 . (02) 510-51 U. 549-3574 (Direct) FAX (02) 549-7679 UNNYVALE OFFICE TOKYO OFFICE ADD 1031E DUANE AVE SUITE A ADD 2ND. FL . SECOND BLDG 18-11 KODENMA-CHO SUNNYDALE. CA 94086. USA NIHONBASHI CHUO-KU. TOKYO, JAPAN TEL (408)2450266 TEL. (8)31-661.9317 (408)737-2635 FAX- 3-661-9209 ing and retrieving in database files. These chapters make the process sound simple, probably dangerously so. As artificial intelligence researchers are dis- covering, people expect to see requested information in context. For instance, if a youngster using a CD-ROM for a report in school requested information on George Washington, and the first entry that was shown was about George Washington Uni- versity, the student might think that the software processing his or her selection was not very smart. Since CD-ROMs can hold an incredible amount of information, the retrieval and indexing software must be more responsive to users' needs. The material in these chapters presents an unfortunately limited view of the many indexing and retrieval methods that have been developed in the last 20 years. Although a few algo- rithms are listed, their advantages and shortcomings are glossed over. Important factors such as access times and disk space trade-offs are pretty much ignored, even though these can be explained in terms no more technical than the ones that were used earlier in the book to describe how bits are stored on CD-ROM disks. Some Comparisons Two chapters explore images and sound, respectively. The ma- terial about storing and processing graphics is much more detailed. Even though the chapter on presentation systems covers the range in fairly good detail, it offers little guidance in selecting a data format for images. This is unfortunate, since there is a pan- oply of graphics standards from which to choose. To its credit, the chapter talks about many more side issues of image process- ing (such as compression, enhancement, and rasterization) than other sources of information. The coverage of sound unfortunately does not include many side issues. Very little of the information relates to reproducing the audio data on different computers, or even how to store audio information in a general enough fashion for the CD-ROM disk to be of much use on more than one computer. This is in- dicative of the microcomputer industry's emphasis on visual over aural presentation. Disk production was largely ignored in The New Papyrus but is covered in excellent detail in Optical Publishing. Chapter 10 presents an overview of the issues involved with getting data onto the disk, while Chapter 1 2 goes into the hows and whys of premastering and mastering the disk. These two chapters give the reader a solid idea of the intricacies of preparing data for CD-ROMs. Thorny Issues Probably the strongest chapter of Optical Publishing is Chapter 13, which covers a wide range of topics under the heading "Data Protection. " Many early CD-ROM supporters waxed enthusias- tic about putting entire encyclopedias, phone directories, and other reference books on a single CD-ROM, but thsy forgot a very important fact: The information in these works belongs to different people. This chapter goes into great detail about the legal issues involved in owning information and the format in which it is presented. The sections on copyrights, trademarks, and trade secrets are also valuable to any print publisher considering putting its works on CD-ROM. Issues such as licensing information and property rights are also covered in detail. This chapter alone is worth the price of the book, especially for people who are wary of new information technologies. Chapter 14 covers another thorny CD-ROM issue that is often ignored: updating CD-ROMs. Although it does not give many solid recommendations, it does raise interesting market- continued 82 BYTE- SEPTEMBER 1987 Inquiry 207 Keep your mainframe in touch: Send your remote PCs a card! If a telephone line goes to wherever your remote PCs are, Sync-Up™ from UDS can now link them directly to your mainframe! Sync-Up fits a complete synchronous modem and a protocol converter onto a single card; no other modules are required. Add appropriate UDS- supplied software, and you'll have a fast, reliable micro-to-mainframe link. If your system is already supporting 201C, 212A, 208A/B and/or 9600B modems, no modifications are required at the mainframe end. Sync-Up boards may be specified with soft- ware to support 2780/3780 or 3270 BSC, and 3270, 3770 or 5251 SNA or a variety of other protocols. For complete technical data and quantity prices, contact Universal Data Systems, 5000 Bradford Dr., Huntsville, AL 35805. Telephone 205/721-8000; Telex 752602 UDS HTV. |D| Jsl Universal Data Systems (M) MOTOROLA INC. Information Systems Group Inquiry 301 Created by Dayner/Hall, Inc., Winter Park, Florida Inquiry 306 BOOK REVIEWS V $ 995 pG, At only $995, no electrical engineer v 'H pv* * can afford to be without this end-to-end 10W* circuit design, simulation and PCB layout too!. You can pay up to 15 times more and still not get all the features offered by EE Designer— Schematic Capture , . . Circuit Simulation . . . PCB Layout. 30 day money back guarantee. Full purchase price refunded if not completely satisfied. Call 1-800-553-1177 today to order your package. Bank cards welcome. CORPORATION 343 Gibraltar Drive Sunnyvale, CA 94089 Interactive Voice Response System I Computerfone" -«-• t t t t t TouchTone In/Voice In/Text In jjtci** O^ iivWoice Quality • Text-to-Speech • Digitized Speech • Synthesized Speech • Auto Answer/Auto Dial • Host Independent Call to hear our demo: 1-904-476-5742 • 1 966 Suncoast Systems, Inc. 2 4 HVS.17 DayS/Wk. ing questions about the data that is being sold. Such questions should be resolved before you commit to CD-ROM technology. Real-World Examples The last two chapters of the book are long, self -aggrandizing case studies about how two companies put together CD-ROM databases from existing microfiche products. The first article is about a card catalog product for libraries. The author reminds us over and over how innovative his company was for using CD- ROM and how wonderful the technology is. Unfortunately, he gives very little concrete information for someone studying the process of transferring information to CD-ROM. The second ar- ticle, describing a medical information system, is a good sum- mary of the book but presents almost no new information. If the editors of Optical Publishing had included more arti- cles in this section, readers would better understand the prob- lems associated with converting to CD-ROM technology. One-Sided Coverage Although Optical Publishing covers a great deal of material well, it has some problems. A fair amount of boosterism per- vades the articles. Although some of the negative features of CD-ROM are mentioned, they are seriously downplayed. While this book is a very good guide if you're interested in putting out a CD-ROM product, it is not very helpful if you're weighing CD-ROM against other competing technologies. Part of the reason for this mostly one-sided coverage is prob- ably that Optical Publishing is published by Microsoft Press, and Microsoft has invested a great deal of money and time in the CD-ROM effort. Since Microsoft has not backed other technol- ogies (such as write-once optical disks), it is not surprising that alternatives do not get much coverage in the book. Another reason for the boosterism is that most of the authors work for companies that help other companies produce CD- ROM disks. This could have been avoided by the collection edi- tor, but the lead editor, Suzanne Ropiequet, works for Micro- soft Press, and both the other editors work for companies that consult on CD-ROM. While the editors' credentials lend a cer- tain amount of technical credence, they also call their bias into question. For example, Optical Publishing makes dozens of references to the High Sierra Format (HSF) for information on CD-ROMs. In fact, Chapter 11 describes the format in great detail. Other formats are rarely mentioned, and most of the authors manage to put in a plug for HSF. Someone reading the book without read- ing other articles in the press wouldn't know that there are many other competing formats and that many manufacturers have adopted their own formats. The emphasis on HSF (also called the HSG Proposal in the book) may be partially due to the fact that Microsoft is a mem- ber of the group that is creating the format. Although HSF has a good chance of becoming an accepted standard, the editors of this volume Tiave performed a disservice to readers by not dis- cussing other-formats or the reasons why one might choose a nonstandard format. Optical Publishing contains a wealth of good information and is an excellent companion to The New Papyrus. The articles are readable and often interesting. Although the book is flawed by a one-sided attitude toward this emerging technology, it is still worthwhile reading for most people who are interested in CD- ROM technology. Paul E. Hoffman (2140 Shattuck Ave. , Suite 2024, Berkeley, CA 94704) is a freelance writer and consultant. He has written five books about Microsoft products, including Microsoft Word Made Easy (Osborne/ McGraw-Hill, 1987). continued 84 BYTE- SEPTEMBER 1987 Inquiry 278 for End-Users. Inquiry 279 for DEALERS ONLY. I I I I The new generation of software. development tools are here. Now . . . Ws Your Move Arity . . . The only fully-integrated family of software development tools designed for today's programming needs. You're looking for a language which can handle today's programming tasks: expert systems, natural language, relational databases, intelligent human interfaces. Your best move is Arity/Prolog. Arity/Prolog is the foundation for a variety of programming tools designed to meet your programming needs. i Expert Systems Prolog Arity /Expert is a programming tool which bridges the gap between a human's view of a problemand a computer's view of the problem. Arity/Expert is a frame-based system which features backward chaining, automatic explan- ation generation, positive and negative confi- dence factors, and complete system debugging facilities. And Arity/Expert is designed with a unique open-ended architecture that allows you to customize your expert system to match your individual needs. Arity/Prolog is a true superset of the Edinburgh Prolog standard. It includes features such as one gigabyte of virtual memory, complete string support, database partitioning, definite clause grammar support, and full MS-DOS access. And Arity/Prolog has highly-developed inter- faces to other programming languages, such as C, assembly, and Pascal. So you don't have to abandon your existing devel- opment efforts to take advantage of the power and flexibility of Arity/Prolog. Arity/Prolog is the overwhelming choice of users and reviewers alike as the premier Prolog implementation for IBM PCs and compatibles. Check us out! Structured Query Language (SQL) is fast becoming the industry standard relational database interface language. The Arity/SQL package lets you easily add this familiar database interface to your Arity/Prolog applications. Using Arity/SQL queries, you can easily display specific information from a database table, combine data from many different tables, and perform comparisons among data in the database. If you're planning to incorporate relational database technology into any of your applications, you'll want to use the combination of Arity/Prolog and Arity/SQL to speed your development efforts. Call today for more information on the Arity family of software development tools. 1-800-PC-Arity (Mass: 617-371-1243) R I Arity Corporation 30 Domino Drive Concord, Massachusetts 01742 Inquiry 238 Quaid Analyzer the tool that created CopyWrite Now you can debug your own programs with a professional quality debugger - the one that unraveled every form of copy-protection used on the PC. With the Quaid Analyzer, you can: □ See occurrences of any interrupt, with its meaning shown on the screen. D View memory as text or Instructions, scrolling as easily as you do with an editor. □ Run until a memory location or I/O port is changed. □ Protect your hard disk from accidental destruction. □ Analyze software without the source, even when it uses countermeasures to thwart tracing. □ See all stages of the boot load. We kept the Quaid Analyzer off the market to avoid helping publishers with copy-protection. Now that copy- protection is gone, we can sell it to you. The Quaid Analyzer is a software tool occupying 100K bytes. It runs on any IBM PC and most MS-DOS systems without hard- ware modification. 4Hf can (416) 961-8243 Quaid Analyzer $99 U.S. All orders shipped at our expense within a day. All major credit cards accepted. or return coupon to: 45 Charles St. East Third Floor, Dept. 605 Toronto, Ontario. M4Y 1S2 Payment method MC-Visa-Amex-Diners-Check Card No. Expiry Date Name Address City/State Phone No. Signature Q j Quaid Software Limited Ask about Disk Explorer the program that takes over where Quaid Analyzer leaves off. BOOK REVIEWS 86 BYTE- SEPTEMBER 1987 68000 ASSEMBLY LANGUAGE: TECHNIQUES FOR BUILDING PROGRAMS Reviewed by Adam Brooks Webber Donald Krantz and James Stanley's 68000 Assembly Lan- guage is a guide to writing programs for the Motorola 68000 family of microprocessors. The many examples included in the text are duplicated on an MS-DOS disk that comes with the book. According to the authors, the book is intended for people who have some experience with assembly language for another microprocessor and who want to make the transition to programming for the 68000. The category of prospective read- ers could be widened to include anyone who isn't either a 68000 expert or completely new to the concepts of machine-level programming. Approach This book is about generic 68000 programming, not about pro- gramming for the particular 68000-based computer the authors used. This means that the examples in the book, while helpful, cannot be used without modification on a Macintosh, an Amiga, or an Atari ST. In general, 68000 Assembly Language is pleasant to read; the tone is conversational in places. The serious-minded reader may find parts of the book too flip, but I found that the occasional humorous asides helped lighten what would otherwise have been a very dense technical work. Reference Section The book has two main sections. The first is a reference manual for the 68000. The authors describe the general architecture of the 68000, including the register set, memory map, and ad- dressing modes. They group the instructions together according to function and explain each one individually. They introduce and compare several common techniques for parameter-pass- ing, including those typically generated by compilers. Finally, Krantz and Stanley discuss the 68000' s mechanism for excep- tion handling (but without going into too much detail about the bus protocol) . The authors clearly know what they're talking about and gen- erally have their facts straight, but the editing in the first section of the book is terrible. I found the frequent typographical, factu- al, and grammatical errors surprising— and what a reviewer finds surprising, an earnest student of the 68000 may find mis- leading. You may, for example, spend hours looking for another reference to the JNZ instruction mentioned on page 6 1 , only to find no mention of it at all. You may rely on what you're told on page 10, that "When [a data register is] used as a destination, all condition codes excepting the extend flag are affected," which is not always true. To their credit, however, the authors recom- mend against using their book as a substitute for Motorola's ref- erence manual. I concur. Tutorial Section The second section of the book is a 68000 programming tutori- al. This is the real meat of the book, based on the very sound idea that people learn to write good code by reading good code. The authors proceed step by step through the development of a multiwindow text editor written completely in 68000 assembly language. They include the entire text of the editor in the book and on the accompanying disk. They provide several other ex- amples in the same spirit: math routines, graphics routines, and a simple device driver. This is a great approach, and the book is worth buying just for the examples. The tutorial accounts for about two-thirds of the book's size and almost all its value. continued Inquiry 262 for MS DOS Products. Inquiry 263 for all others. — * YlliCOn 1-800-354-7330j^ t 346 With System A or B Only ■ill ill - TURBO PC/XT 256K Memory, 360K Brand Name Floppy Drive, 135 Watt Power Supply Slide Case, AT Style Keyboard, 4-10MHz Clock Speed, I (Keyboard Selectable), 8 Expansion Slots 936 iiiii^L^ PC/AT With System C or D Only 6-10 MHz Switchable, 512K RAM Expandable to 1MB on Motherboard, a 1.2MB Floppy Drive, 192 Watt Power Supply, Dual Hard Drive & Floppy Controller Card, AT Style Keyboard and clock/calendar with Battery Back-up. SYSTEM A MIT XT Monochrome System MITTurboXT MIT Monographlcs Card With Printer Port MIT Amber Monitor With Swivel Tilt Stand MIT I/O Serial/Clock Card MIT 4 Outlet Surge Suppressor SYSTEM B MIT XT Color System MITTurboXT MITColorCard With Printer Pott MIT RGB Color Monitor MIT I/O Serial/Clock Card MIT 4 Outlet Surge Suppressor SYSTEM C MIT AT Monochrome System MITIOMHzAT MIT Monograph ics Card With Printer Port MIT Amber Monitor With Swivel Tilt Stand MITATMuIti I/O Card MIT 4 Outlet Surge Suppressor SYSTEM D MIT AT Color System MITIOMHzAT MITColorCard With Printer Port MIT RGB Color Monitor MITATMultll/OCard MIT 4 Outlet Surge Suppressor Turbo PC/XT w/640K & 1 Drive with System Order Only $ 379 Turbo PC/XT w/640K & 2 Drives with System Order Only $ 456 PC/AT 8 MHz W/1024K, 1.2 Floppy with System Order Only $ 980 Turbo PC/XT w/640K & 1 Drive & 20 MG with System Order Only $ 749 Turbo PC/XT W/640K, 1 Drive, 30 MG with System Order Only $ 819 PC/AT 10 MHz W/1024K, 1.2 Floppy, 40 MG with System Order Only $1566 Hardware Alpi PRINTERS All Models Call Brother Printers Call Citizen Primers MSP-I0 S 269 MSP-I5 359 MSP-20 309 MSP-25 459 Premier 35 445 I20D 169 Diablo D-25 469 635 759 Dlconla 150 S 299 Epson Printers Call Hewlett-Packard Laser Jet Series II 1829 NEC 3510. 3550 729 8810.8850 1059 P-6 429 P-7 619 P-9 429 Okldata Call Panasonic 10801 155 10911 169 1092 1 295 1592 375 1595 419 3131 229 3151 369 Star Micronlcs Call Toshiba 32ISL 509 341 E 665 351 Model II 899 351 Color 1029 Qume TERMINALS 10! Plus Green $ 315 101 Plus Amber 315 Wyse 30 285 50 359 75 565 85 425 Bernoulli Box DISK DRIVES 10 Meg S 865 20 Meg 1199 40 Meg 1729 Seqate 20 MGw/WD Controller 339 MONITORS Amdek Monitors Call NEC Multisync S 549 Other Models Call Princeton Graphics Monitors Call COMPUTERS AST Model 80 S1399 Model 120 2099 Model 140 2449 NEC Multispeed '339 Pansonlc Business Partner 719 Sr. Partner 969 Exec. Partner Dual Drive 1429 Toshiba T-1 100 Supertwist Call T-3100 Call AST Six Pack Plus S 139 Other Models Call ATI EGA Wonder 245 Hercules All Models Call Intel All Above Boards . Call Paradise Autoswttcb 350 299 Autoswitch 480 355 5 Pack 99 Plus Development Plus Hard Card 20 Megabyte 609 Quadran Quad EGA Plus 295 Tecmar All Models Call Vldeo-7 Vega Deluxe 285 MODEMS Anchor Automation Anchor Express S 185 Hayes All Models Call Prometheus !200Bw/Software 125 US Robotics Password 1200 149 Courier 2400 335 Microlink 2400 ' 335 Software WORD PROCESSORS Leading Edge Word Processor $ 25 Leading Edge W/P with Spell & Merg 59 Microsoft! Word 3.1 1 175 Multimate Advantage II Call PFS: Prolessional Write 89 Volkswriter 3 136 Volkswriter Deluxe Plus 59 Webster New World Writer 65 Word Perfect (Ver. 4.2) 195 Wordstar w/rutor 3.31 162 Wordstar Pro Pack 4.0 233 Wordstar 2000 Plus 2.0 209 MONEY MANAGEMENT Dollars & Sense w/Forecast $ 92 Tobias Managing Your Money Call DESKTOP PUBLISHING Harvard Prolessional Publisher $329 Newsmaster 48 Pagemaker 479 PFS: First Publisher 45 Ventura Publishing 465 DISKETTES Maxell MD-2(Qly 100) $63 Maxell MD-2HD (Gty 100) 185 MaxellM25(Qty. 100) 65 Sony MD-2(Qty. 100) 85 Sony 31/42 (Qty. 100) 107.50 Sony 5/4 80 COMMUNICATIONS CompuServe Starter Kit $ 19 Crosstalk XVI 88 Microsoft Access 137 Mirror II 33 Remote 88 Smartcom II 79 INTEGRATIVE SOFTWARE Ability $ 55 Enable 2.0 Call Framework II 395 PFS: 1st Choice 82 Smart Sottware System 3.1 409 Symphony , 439 GRAPHICS/MICE Harvard Graphics Call IMSI Mouse (PC Mouse) w/Dr. Halo II $ 92 Microsoft Buss Mouse 6.0 1 03 Microsoft Chart 163 Microsoft Serial Mouse 6.0 115 PC Buss Plus Mouse (New Ver.) 99 PC Mouse (New Ver.) 89 SPREADSHEETS HAL $104 Lotus 1-2-3 Ver. 2.01 Call Mult/plan 3.0 108 Supercalc 4 Call Twin 35 VP Planner 47 DATA BASE MANAGEMENT Clipper $375 dBase III Plus 379 DB-XL 82 Eureka 55 Paradox 2.0 Call PFS: Prolessional File 112 Revelation 449 R:Base 5000 System V Call UTILITIES Brooklyn Bridge $ 75 Carousel 2.0 29 Disk Optimizer 2.0 29 Double DOS 4.0 25 Fastback 80 Homebase2.5 40 Microsoft Windows 55 Norton Utilities 4.0 48 Note It Plus Call PCTools 19 Sidekick (Unprotected) 45 PROJECT MANAGEMENT HarvardTotal Project Manager II $282 Microsoft Project 219 Super Project Pius Call Timeline 2.0 235 ACCESSORIES Copy II Option Boaro $75 Masterpiece 84 Masterpiece Plus 108 Microsoft Mach 10 w/Windows & Mouse 322 Summasketch 12x12 Tablet 350 LANGUAGES Basic Compiler (Microsoft) $219 C Compiler (Microsoft) 249 Cobol Compiler (Microsoft) 385 Fortran Compiler (Microsoft) 4.0 245 Lattice C Compiler 236 Macro Assembler (Microsoft) 83 Run C Interpreter 65 Ryan McFarlan Fortran 339 Ryan McFarlan Cobol 539 Pascal Compiler (Microsoft) 165 QuickBasic3.0 55 Turbo Basic 55 Turbo Jumbo Pack (New Ver.) 159 Turbo Pascal w/8087 & BCD 55 Turbo Prolog 54 Turbo Prolog Toolbox 55 Turbo DataBase Tool Box . 38 No Charge for VISA and Mastercard You Pay tne Ground Shipping - We Pay the Air Ground Shipping & Handling $6.00 Free Air Applies ONLY to orders up to 10 lbs. & Over $50. All product carries a manufacturer's warrantee. All Guarantees, rebates,' trial period priviledges & promotional programs are handled by the manufacturer only. Ask for National Accounts No APO. FPO, or international orders, please. Personal and Company Checks Will Delay Shipping 3 Weeks Prices. Terms & Availability Subject to Change Without Notice Add 3% for C.O.D. Orders Call before submitting P.O.'s We Do Not Guarantee Machine Compatibility Mailing Address: 8804 N. 23rd Avenue/Phoenix, Arizona 85021 * Order Line Hours: Mon-Fri 8:30 a.m.-5:30 p.m. Saturday 9:00 a.m.-1 :00 p.m. • Order Processing: (602) 224-9345 / Mon-FrN0:00 a.m.-3:00 p Programmer's Paradise Gives You Superb Selection, Personal Service and Unbeatable Prices! Welcome to Paradise. The MS/PC-DOS and XENIX software source that caters to your programming needs. Discover the Many Advantages of Paradise . . . Lowest price guaranteed • Huge inventory, immediate shipment • Special orders Latest versions • Knowledgeable sales staff • 30-day money-back guarantee* CorpotateBuVf 8 ' We'll Match Any Nationally Advertised I 'rice LIST OURS C + + ADVANTAGE C + + S 195 479 PFORCE+ + 395 225 C COMPILERS AZTEC C-86 COMMERCIAL 499 CALL AZTEC C-86 DEVELOPER 299 CALL C86 PLUS 497 369 C86 PLUS W/ROMPAC 747 549 DATALIGHT C DEVELOPER'S KIT 99 79 DATALIGHT— OPTIMUM C 139 105 LATTICE C 500 265 W/SOURCE 900 495 LET'S C 75 55 W/CSD DEBUGGER 150 99 MARK WILLIAMS C 495 289 MICROSOFT C V 5.0 450 269 QUICK C 100 69 TURBO C 100 65 WIZARD C 450 299 C INTERPRETERS C-TERP 300 229 INSTANT C 500 379 INTERACTIVE C 249 209 INTRODUCING C 125 105 RUN/C 120 79 RUN/C PROFESSIONAL 250 155 ASSEMBLERS, LINKERS ADVANTAGE DISASSEMBLER 295 265 ADVANTAGE LINK 395 359 ASMLIB 149 129 DIS 'A r DATA 165 CALL MACRO ASSEMBLER 150 93 PASM 86 195 109 PLINK 86 PLUS 495 299 UNIWARE 68000 X-ASMS CALL CALL FREE SCIENTIFIC & ENGINEERING SOLUTIONS CATALOG Describes 100 of the best software packages for solving complex equations, number crunching, analyzing data. 3-D CAD/CAM design, technical word processing, circuit design, sophisticated graphics and more. Call for your FREE catalog today! GRAPHICS ADVANTAGE GRAPHICS 250 225 ESSENTIAL GRAPHICS 250 185 GRAPHIC 350 285 GSS GRAPHICS DEVELOPMENT TOOLKIT 495 375 OTHER GSS CALL CALL HALO— ONE LANGUAGE 300 205 HALO — FIVE MICROSOFT LANGUAGES 595 389 METAWINDOW 195 159 METAWINDOW PLUS 275 229 METAFONTS 95 CALL METAFONTS PLUS 275 CALL TURBO WINDOW/C 95 79 C UTILITY LIBRARIES ASYNCH MANAGER 175 135 BASIC_C 175 129 BLACKSTAR FUNCTIONS 99 89 C-D1SPLAY LIBRARIAN 99 79 C-XPERT 295 249 C FOOD SMORGASBORD 150 95 W/SOURCE 300 179 C TOOLS PLUS 175 135 DISPLAY EXPRESS 99 79 ESSENTIAL C UTILITY 185 119 ESSENTIAL COMMUNICATIONS 185 125 COMMUNICATIONS PLUS 250 189 GREENLEAF COMM 185 125 GREENLEAF FUNCTIONS 185 125 INTERWORK 129 109 LINK & LOCATE 350 315 MULTI-C 149 135 MULTI-COMM 149 135 PFORCE 295 225 SYNERGY DEVELOPMENT TOOLKIT 395 249 THE HAMMER 195 129 TIMESLICER 295 265 W/SOURCE 1000 CALL TOPVIEW TOOLBASKET 250 179 TURBO C TOOLS 129 115 SCREEN DISPLAY. WINDOWS FOR C C WORTHY 295 CURSES 125 W/SOURCE 250 FLASH-UP WINDOWS 90 GREENLEAF DATA WINDOWS 225 W/SOURCE 395 MICROSOFT WINDOWS 99 WINDOWS DEVELOPMENT KIT 500 ON-LINE HELP 149 PANEL 295 PANEL PLUS 495 POLYDESKIII 99 POLYDESK ADDONS QUICKSCREEN SCREENPLAY (LATTICE) SOFTSCREEN HELP VIEW MANAGER VITAMIN C VC SCREEN WINDOWS FOR C WINDOWS FOR DATA ZVIEW FILE MANAGEMENT ASMTREE BTRIEVE XTRIEVE REPORT OPTION BTRIEVE/N XTRIEVE/N REPORT OPTION/N C-ISAM C-TREE R-TREE C-TREE/R-TREE BUNDLE CQL DATAFLEX DBC III/II W/SOURCE 150 195 275 225 99 250 395 245 395 245 245 145 595 595 345 225 395 295 650 395 695 250 500 269 89 169 79 155 289 65 309 105 199 395 79 CALL 175 135 169 199 165 79 189 315 169 339 185 185 99 455 455 269 195 315 239 519 329 619 169 359 DBC III PLUS W/SOURCE DB-VISTA W/SOURCE DB_QUERY W/SOURCE FABS FABS PLUS INFORMIX ESQL/C INFORMIX 1GL INFORMIX SQL PHACT MANAGER DEBUGGERS ADVANCED TRACE 86 BREAKOUT C-SPRITE CODESMITH86 CSD DEBUGGER PERISCOPE I PERISCOPE II PERISCOPE II-X PERISCOPE III 8 MHZ PERISCOPE III 10 MHZ PFIX 86 PLUS XVIEW 86 EDITORS BRIEF DBRIEF BRIEF/DBKIEF BUNDLE C SCREEN CVUE W/SOURCE EDIX EMACS W/SOURCE EPSILON FIRSTIME KEDIT LSE PC/EDT PC/VI PMATE SPF/PC VEDIT PLUS XTC SORT UTILITIES AUTOSORT MICROSOFT SORT OPT-TECH SORT PROFILERS CODE SIFTER PFINISH THE PROFILER LINT PC LINT.. PRE-C MAKE UTILITIES ADVANTAGE MAKE LMK PMAKER POLYMAKE SAPIENS MAKE 750 595 1500 1185 195 495 195 595 995 795 249 175 125 175 145 75 315 175 115 995 1095 395 60 129 389 129 389 129 169 479 789 639 219 119 89 125 99 59 285 139 105 825 899 229 19 195 CALL 95 CALL 285 CALL 75 CALL 75 250 195 295 995 195 295 125 125 250 149 195 195 185 195 149 119 395 139 295 125 195 125 59 199 155 265 895 149 229 99 99 229 109 115 115 129 79 129 129 lt9 89 219 89 99 155 99 139 79 125 75 80386 TOOLS ADVANTAGE 386 C 895 805 ADVANTAGE 386 PASCAL 895 805 PHARLAP386IASM/LINK 495 395 PHARLAP386 DOS-EXTENDER 995 845 PHARLAP386|DEBUG 195 155 PC-MOS/386 1 USER 195 179 5 USERS 595 549 TRANSLATORS/BRIDGES BASTOC 495 399 DB2C 299 CALL R BRIDGE 395 339 TP2C 249 CALL ARTIFICIAL INTELLIGENCE ARITY COMBO PACK 1095 979 ARITYPROLOG INTERPRETER 295 229 ARITY STANDARD PROLOG 95 79 CHALCEDONY PROLOG 100 89 GOLDEN COMMON LISP 495 CALL GCL 286 DEVELOPER 1190 CALL INSIGHT2+ 485 379 IQCLISP 300 CALL MICROSOFT LISP 250 155 PC SCHEME 95 85 PROLOG 86 PLUS 250 CALL SMALLTALK V 99 85 TRANS LISP 95 CALL TRANS LISP PLUS 195 CALL TURBO PROLOG 100 65 TURBO PROLOG TOOLBOX 100 65 VP EXPERT 100 89 BASIC BETTERBASIC BETTERTOOLS 87 QB PAK 87 SOFTWARE PAK EXIM TOOLKIT FINALLY FINALLY MODULES GDPEDIT INSIDE TRACK MACH2 MICROSOFTQUICKBASIC PEEKS 'N POKES PROFESSIONAL BASIC 8087 MATH SUPPORT PANEL-BASIC QUICKPAK STAY RES 95 75 TRUE BASIC 150 105 ADD ONS CALL CALL TURBO BASIC 100 65 COBOL COMPILERS/UTILITIES COBOLSPI1 395 329 FPLIB 149 129 MICRO FOCUS COBOL CALL CALL MICROSOFT COBOL 700 439 MICROSOFT SORT 195 129 MICRO/SPF 175 155 OPT-TECH SORT 149 115 REALIACICS 995 785 199 95 45 99 59 149 89 89 39 75 115 59 88 BYTE- SEPTEMBER 1987 LIST OURS 995 785 150 119 950 649 1250 909 400 CALL 175 129 795 695 REALIACOBOL REALIAMENU RM/COBOL RM/COBOL8X SCREENIO SCREENPLAY VISUAL COBOL (MBP) FORTRAN COMPILERS/UTILITIES LAHEY FORTRAN 477 CALL LAHEY PERSONAL FORTRAN 95 CALL MICROSOFT FORTRAN 450 269 RM FORTRAN 595 399 ACS TIMES SERIES 495 389 DIAGRAM'ER 129 115 DOCUMENTOR 129 115 87SFL 250 225 FORLIB 95 85 FORLIB PLUS 70 45 FORLIB SCIENTIFIC SUBROUTINES 295 249 FOR-WINDS 90 69 GRAFLIB 175 169 GRAFMATICS OR PLOTMATICS 135 1 19 GRAFMATICS AND PLOTMAT1CS 240 219 IO/PRO 149 129 MATH PAC 495 445 NO LIMIT 129 115 PLOTHI 175 159 PLOTHP 175 159 SSP/PC 350 269 STRINGS AND THINGS 70 49 MODULA-2 FARBWARE MODULA-2 90 79 LOGITECH MODULA-2 APPRENTICE PACKAGE 99 79 WIZARD'S PACKAGE 199 159 MAGIC TOOLKIT 99 79 ROM PACKAGE & RT DEBUGGER 299 239 WINDOW PACKAGE 49 39 REPERTOIRE 89 75 PASCAL COMPILERS MARSHAL PASCAL 189 169 MICROSOFT PASCAL 300 185 PASCAL-2 350 329 TURBO PASCAL 100 65 TOOLS FOR TURBO PASCAL FIRSTIME 75 59 FLASH-UP SEW 89 79 FLASH-UP TOOLBOX 49 45 METRABYTE DATA ACQ. TOOLS 100 89 SCIENCE & ENGINEERING TOOLS 75 69 SCREEN MACHINE 79 75 SCREENPLAY 100 89 SCREEN SCULPTOR 125 95 T-DEBUGPLUS 60 49 TURBO-ASM 100 85 TURBO ASYNCH PLUS 100 79 TURBO DATABASE TOOLBOX 70 45 TURBO EDITOR TOOLBOX 70 45 TURBO EXTENDER 85 65 TURBO GRAPHIX TOOLBOX 70 45 TURBO HALO 129 99 TURBO MAGIC 70 65 TURBO MASTER 125 99 TURBO NUMERICAL METHODS 100 65 TURBO OPTIMIZER 75 65 TURBO PROFESSIONAL 70 49 TURBO POWER TOOLS PLUS 100 79 TURBO POWER UTILITIES 95 79 TURBO REF 50 45 TURBO SMITH 69 45 TURBO TUTOR 40 29 TURBO WINDOW PASCAL 80 69 MANY MORE CALL CALL OTHER LANGUAGES IF YOU DONT SEE IT-CALL!!!!! ACTOR 495 CALL APL*PLUS 595 429 JANUS/ADA C PACK 95 89 JANUS/ADA D PACK 900 769 JANUS/ADA ED PACK 395 CALL LATTICE RPG II COMPILER 750 629 SCREEN DESIGN AID 350 309 SOURCE ENTRY UTILITY 250 199 SORT/MERGE UTILITY 250 199 RPGCOMBO 1100 879 PC FORTH 150 109 PC FORTH PLUS 250 199 PERSONAL REXX 125 99 POCKETAPL 95 79 BLAISE ASYNCH MANAGER 175 135 C TOOLS PLUS 175 135 EXEC 95 69 PASCALTOOLS 125 99 PASCALTOOLS2 100 79 PASCAL TOOLS & PASCAL TOOLS 2 175 135 RUNOFF 50 45 TURBO ASYNCH PLUS 100 79 TURBO POWER TOOLS PLUS 100 79 VIEW MANAGER 275 199 DBASE COMPILERS, RELATED PRODUCTS CLIPPER 695 459 DBC III PLUS 750 595 DBRIEF 95 CALL FOXBASE 395 CALL FOXBASE PLUS 395 CALL GENIFER 395 309 QUICKSILVER 599 499 TOM RETTIG'S LIBRARY 100 79 DIGITAL RESEARCH CB86 600 569 PASCAL MT + 400 379 PL1 — 86 750 709 DR ASSEMBLER + TOOLS 200 189 ACCESS MANAGER 400 379 DISPLAY MANAGER 500 475 FORTRAN77 350 329 NEW PRODUCTS D ATAFLEX — True relational database system that is a powerful velopment tool. Includes application generator, relational database manager, ■ on-line multi-file query, forms processing system, on -line multi-key ISAM, macro command language, compiler & text editor. List: single: §695 Ours $629 multi-user: $1,250 Ours $1,149 C-XPERT — Expert system development tool for incorporating Al programming capabilities into your C programs. Includes backward & forward chaining, attribute value pairs, frames, inheritance, explanations, why facilities, legal & default values & powerful text features. List $295 Ours $259 ACTOR— Powerful new language built around object-oriented programming, with windows being; defined as objects. Actor makes it easier to include & control windows in application programs. List $495 . Ours CALL QUICK C — Microsoft's reply to Turbo C. Fast and complete; compilation speed of 10,000 tines/min. Includes source-level debugger, graphics libraries, library manager, make facility. List $100 :;;■ Ours $69 LATTICE LATTICE C COMPILER W/SOURCE C CROSS REFERENCE GENERATOR C FOOD SMORGASBORD W/SOURCE C-SPRITE LIST OURS CURSES 125 89 W/SOURCE 250 169 DBCIII/II 250 169 W/SOURCE 500 359 DBC III PLUS 750 595 W/SOURCE 1500 1185 LMK 195 139 SECRETDISK 120 89 SIDETALK 120 89 SSP/PC 350 269 TEXT MANAGEMENT UTILITIES 120 89 TOPVIEWTOOLBASKET 250 179 L FEBOAT ADVANTAGE 386 C 895 805 ADVANTAGE 386 PASCAL 895 805 ADVANTAGE C + + 495 479 ADVANTAGE DISASSEMBLER 295 265 ADVANTAGE GRAPHICS 250 225 ADVANTAGE LINK 395 359 ADVANTAGE MAKE 125 99 ADVANTAGE VCMS 350 315 PANEL 295 199 PANEL PLUS 495 395 QUICKSCREEN 295 265 RUN/C PROFESSIONAL 250 155 TIMESLICER 295 265 W/SOURCE 1000 CALL MICROSOFT BUS MOUSE 175 129 CCOMPILER 450 269 COBOL 700 439 FORTRAN 450 269 LISP 250 155 MACROASSEMBLER 150 93 MUMATH 300 185 PASCAL 300 185 QUICKBASIC 99 65 SORT 195 125 WINDOWS DEVELOPMENT KIT 500 309 PHOENIX PASM 86 195 109 PDISK 145 89 PFANTASY PAC 995 599 PF1NISH 395 219 PFIX86PLUS 395 229 PFORCE 395 225 PFORCE+ + 395 225 PLINK 86 PLUS 495 299 PMAKER 125 79 PMATE 195 115 PRE-C 295 155 PTEL 195 115 POLYTRON CBEAUT1FIER 49 45 C LIBRARY I 99 85 POLYBOOST 80 69 POLYDESK III 99 85 POLYDESK III ADD ONS CALL :all POLYLIBRARIAN 99 85 POLYLIBRARIANII 149 125 POLYMAKE 149 125 POLYSHELL 149 125 POLYXREF 219 189 POLYXREF— ONE LANGUAGE 129 109 POWERCOM 179 149 PVCS PERSONAL 149 125 PVCS CORPORATE 395 335 500 265 900 495 50 39 150 95 300 179 175 125 PVCS NETWORK OPERATING SYSTEMS OPERATING SYSTEM WENDIN TOOLBOX 99 79 PCNX 99 79 PCVMS 99 79 MICRO PORT SYSTEM V/AT 549 465 DOS MERGE 286 149 125 RUNTIME SYSTEM 199 169 SOFTWARE DEV. SYSTEM 249 209 TEXT PREPARATION SYSTEM 199 169 UNLIMITED USER UPGRADE 249 209 LIST OURS SCO XENIX SYSTEM V 1295 995 XENIX DEV. SYSTEM 595 499 XENIX OPERATING SYSTEM 595 499 XENIX TEXT PROC. PKG. 195 145 DESKTOPPUBLISHING HALODPE 195 155 XEROXVENTURAPUBLISHER 895 CALL TURBOVENTURAPUBLISHER 1595 CALL XENIX/UNIX PRODUCTS ADVANTAGE C + + 695 CALL BTRIEVE 595 455 C-TERP 498 379 C-TREE 395 329 D&-VISTA CALL CALL FOXBASE 795 CALL INFORMIX ESQL/C 749 599 INFORMIX 4GL 1500 1235 INFORMIX SQL 995 795 LYRIX 595 449 MICROSOFT BASIC COMPILER 695 439 M1CROSOFTBASIC INTERPRETEF 350 229 M1CROSOFTCOBOL 995 629 MICROSOFT FORTRAN 695 429 MICROSOFT PASCAL 695 429 NETWORKS FOR XENIX 595 495 ! PANEL 625 535 REAL TOOLS 149 89 RM/COBOL 1250 949 RM/FORTRAN 750 549 SCO PROFESSIONAL 795 595 UNIWARE68020C CROSS 1390 CALL TELECOMMUNICATIONS ASCOMIV 195 175 PTEL 195 115 SIDETALK 120 89 ADDITIONAL PRODUCTS C TOOL SET 95 CALL COMMAND PLUS 80 69 DAN BRICKLIN'S DEMO PROGRAM 75 59 DISK OPTIMIZER 60 55 FASTBACK 175 135 HELP/CONTROL 125 99 INTERACTIVE EASYFLOW 150 129 LATTICE TEXT MGMT. UTIL. 120 89 MICROSOFT MACH 10 W/MOUSE& WINDOWS 549 379 MKS TOOLKIT 139 109 NORTON COMMANDER 75 55 NORTON ON-LINE PROG. GUIDE 100 69 NORTON UTILITIES ADVANCED 150 109 NORTON UTILITIES 100 59 PDISK 145 89 SAPIENS V8 300 269 SCREENMACHINE 79 59 SCROLL & RECALL 69 59 SECURITY LIBRARY 125 115 SOURCE PRINT 97 79 TASKVIEW 80 59 TLIB 100 89 TREEDIAGRAMMER 77 65 FEATURED PRODUCT OF THE MONTH ADVANTAGE Graphics — Lightning-fast high- performance C language graphics toolkit. Supports over 30 graphics adaptors. Over 200 functions, including an extensive set for building multi-window applications. Object-oriented concepts provide workstation-like capabilities on your PC/XT/ AT — yet no royalties! List $250; / Ours $225 PANEL Plus Advanced screen manager with a screen designer, code generator and function libraries. Works with popular graphics libraries to allow data entry in graphics modes. Includes a KEBftAT full, portable library source code. Mf bw/if PforCe + + Provides essential tools for object-oriented programming with C + + . Speeds development time and ensures cleaner, more maintainable programs. You can build entire systems with a mini- mum of new coding. Over 400 easy-to-use functions include win- dowing, database, B-trees, field editing, menus xy* *. communication, table hashing/parsing, string/ /-Kyltf^f^ file handling and time/date calculations. ^' Microsoft QuickBASIC $&&* New v. 3 . high-performance BASIC compiler offers BASIC A compat- ibility plus many enhancements for faster programming: Improved integrated debugging; increased structured and modular program- ming support; greatly improved math support including in-line 8087/287 code generation; advanced integrated editor; dramatically faster execution speed. Terms and Policies •We honor MC, VISA, AMERICAN EXPRESS N« surcharge on credit card or C.O.B. Prepayment by check. New York State residents add applicable sales tax. Shippingand handling $3.00 per item, sent UPS ground. Rush liable, prevailing rates. • Programmer's Paradise will match any current nation- ally advertised price for the products listed in this: ad, ■ : • Prices and Poll change without notice.- : • New Extended Hours 9AM EST— 7PM EST *Ask for details. Some manufacturers will not allow returns once disk seals are broken. Corporate Buyers— Call for special discounts and benefits! Microsoft Lattice C Compiler The latest update of the ideal tool for developing high-performance MS-DOS applications in C. Full implementation of K&R C with UNIX and ANSI extensions. Offers the widest *%> selection of C support tools. Now with Microsoft < ^ > Windows support. LclttlCC 1-800-445-7899 In NY: 914-332-4548 Customer Service: 914-332-0869 International Orders: 914-332-4548 Telex: 510-601-7602 *#"-% Programmers Inquiry 152 42 River Street, Tarrytown, NY 10591 SEPTEMBER 1987 -BYTE 89 Inquiry 312 run BROOKLYN! BRIDGE! WHITE CRANE SYSTEMS 404-394-3119 Suite 151 6889Peachtreelnd. Boulevard Norcross, Georgia Laptop & IBM PS/2 Users: The solution to bridge the gap between your 5 l A & ZVz inch drives. s a steal. It allows you to use your favorite DOS shell for selective file transfer and it even lets you use your PC's peripherals from your laptop. . . In short: An exceptionally fast and functional transfer utility ... The Brooklyn Bridge is the perfect solution forpeople who use a laptop almost exclusively as a portable machine that travels from PC to PC. It's terrific!"- Howard Marks, PC Magazine, Ju ly 1987* Rated as one of the best of the best utilities by John Dvorak. "This is one of those rare programs that you enjoy the minute you take it out of the box, especially when you discover that a cable is included . . . Excellent product." - PC Magazine. June 23, 1987- End users are "sold on Brooklyn Bridge. . . Dvorak is certainly correct in describing White Crane Systems' Brooklyn Bridge as 'Fabulous' ... and I love It." — G. Schochet, Letter to the Editor, PC M agazine, May 12, 1987- PS/2users:The Brooklyn Bridge allows data transfer and drive access in either direction so you may also transfer your data back to your 514 inch PC. Priced at $129.95, call White Crane Systems to order or for more information. "Reprinted from PC Magazine, copyright 1987 Zifl Communications Company BOOK REVIEWS ©uqFORM i i i COMPLETES PREPRINTED FORMS Why type it again? Put the data in your databases to work for you. Complete medical insurance claims, financial applications, tax forms and more. With simple instructions, OnForm creates reusable files to describe data to be printed on any form and even allows modifications at run time. End the drudgery of creating new dBase \\\ programs to complete preprinted forms. At the low price of only $139.00, OnForm is so inexpensive, it can pay for itself in no time at all. Call Triggs Data Systems, Inc. and take the work out of forms work. Selects fields from up to 5 related dBASE III or dBASE III PLUS files to appear on a single form. Allows run time entry of data not found in databases. Accepts data in character, decimal, integer or date formats. Concatenates fields such as name, address, etc. Prints single sheets or continuous forms. Prints multiple copies of same form without re-entry. Creates ASCII text for use with Multimate and most leading word processing packages with merge feature. 1 Operates on any IBM compatible micro with 384K RAM, 2 diskette or 1 diskette-hard disk drive. 1 Maximum operating speeds with Clipper compiled dBASE III. 1-800-223-1491 In Ohio: 1-800-223-1489 TRIGGS [>\TA SYSTEMS 30311 Clemens Road Cleveland, OH 44145 Tradenames: OnForm/Triggs Data Systems, Inc. dBASE/Ashton-Tate, Clipper/Nantucket The examples are not always typical of real-world applica- tions of assembly language. In particular, few circumstances would convince a modern programmer to write an entire screen editor in assembly language. Typi ca ^y» vou might have a few key routines, originally implemented in some other language, that need to be hand-coded for speed. If this is the kind of appli- cation you have in mind, you may be disappointed in this book; it doesn't deal with tricks for squeezing every last cycle out of the machine. The examples are not at all sloppy, but they fre- quently favor readability and the ability to be modified over speed. The Hardware The authors' machine is an HSC PRO-68 card running in an IBM PC clone, which explains why the accompanying disk is MS-DOS-compatible. They claim, "We chose this system be- cause it is generic enough so that any software we wrote with the exception of the I/O could be ported easily." Don't believe it. It was certainly a good idea to choose a generic machine just to avoid getting bogged down in the quirks of a big operating sys- tem, but there's no chance that the editor would be easy to port to a Macintosh or an Amiga. In fact, the authors seem to have little or no experience with the popular 68000-based computers. The only area where this has handicapped them is in discussing the properties of different assemblers and linkers. They assume that some of the properties of their assembler (such as automatically optimizing short branches) are typical of all 68000 assemblers. Sadly, this is not the case. It is also not true that all 68000 linkers will handle the 16-bit references on which their examples depend. But these are minor problems; in the large picture, I think it is probably a good thing that the authors didn't opt for a machine-specific ap- proach. The book is about 68000 programming; just keep in mind that you may also need a book on system-level program- ming for your particular computer. Starting Point While 68000 Assembly Language is not a good 68000 reference and may be too generic to please some owners of 68000-based computers, its extensive, carefully explained examples make it worth reading. It is clear that you can't learn to speak without hearing speech or to write English without reading it. I believe the same princi- ple applies to the challenge of programming, and 68000 Assem- bly Language is a good place to start. Adam Brooks Webber is a software engineer at True BASIC Inc. (39 South Main St. , Hanover, NH 03755), SOFTWARE COMPONENTS WITH ADA: STRUCTURES, TOOLS, AND SUBSYSTEMS Reviewed by Douglas Arndt The cornerstone of software engineering is the concept of a disciplined approach to building ever-larger software sys- tems. This means reusing software components that have been thoroughly tested and whose interfaces are well defined. Identi- fying and implementing these modular components is the sub- ject of Grady Booch's latest work, Software Components with Ada, Grady Booch is considered a pioneer within the Ada commu- nity. He lectures at Ada and software-engineering conferences, and he speaks from a great deal of experience. He is part of the original team that built the Rational Corp . ' s software develop- ment environment— more than a million and a half lines of Ada continued 90 BYTE- SEPTEMBER 1987 Inquiry 296 AW. WHAT THE HECK! ProDesign II — Still $299! ProDesign II — the Easy-to-Use CAD System. The CAD system that was introduced two years ago for the amazingly low price of $299. The CAD system that has undergone four major revisions with more than 400 enhancements. The CAD system that still costs only $299! How do we do it? Our accountants said to raise the price to cover research and development costs. Our business advisors said to charge more for the additional features. Our competitors said it's impossible to stay in business selling a comprehensive CAD package such as ProDesign II for only $299. And our customers said $299 is great. So, we said: "Aw . . . What the Heck! $299 it is!" Now, two years after its introduction, ProDesign II is one of the world's leading CAD packages. It has features pre- viously found only on CAD systems costing thousands of dollars. For the single price of $299, you get these features and more: • Support for more than 1 80 printers (including color printers) • Support for more than 80 plotters, with plotter optimi- zation. > Easy-to-Use single keystroke commands. On-screen menus accessible with a mouse. Comprehensive drawing commands, including the finest curve fitting in the industry. Editing features unsurpassed by ANY other CAD package. Extensive snap features, including snap to point, endpoint, midpoint, line, circle, ellipse, arc, intersection, and perpen- dicular. True Auto Dimensioning with several formats. Extensive Layering features. Full Macro capabilities. Specialized drawing aids, such as tangents to circles and ellipses, parallel lines, parallel curves, wide lines, and more. Complete hatching with up to 40 different patterns. Area and length calculation for line curves, circles, etc. Full Zoom, Pan, and Rotate capabilities. Capability to transfer drawings to and from other programs. Capability to Break/Trim Lines, Curves, Circles, Arcs, and Ellipses. • Many more features — All for only $299! Where do you get ProDesign II? See your local computer dealer, or contact: American Small Business Computers, Inc. 118 South Mill Street Pryor. OK 74361 (918) 825-4844 Telex 91 02400302 Inquiry 17 Want more information? Call or write for a detailed brochure and a free demo disk! PRODESIGN II STILL ONLY $299! HOR DRAWN USING PRODESIGN AT LAST: Professional Typesetting Capability For PC Users With PC T^X™ — the best-selling full implementation of Professor Don Knuth's revolutionary typesetting program TgX. FINEST Typeset Quality Printing From: dot matrix oo ! fa 1 laser phototypesetter ( an a 2 i ^2n ./— c rfx WIDEST Range Of Output Device Drivers: • Epson FX, LQ • HP LaserJet* • Toshiba • Apple LaserWriter • Corona LP-300* • APS-5 phototypesetter • Screen preview, with EGA or Hercules card MOST COMPLETE Product Offering: PCT^X (not copy protected) includes the following: • Our specially written PC T^K Manual, which en- ables you to start using T^X right away • Custom "macro packages" that provide formats for letters, manuals, technical documents, etc. • The M^X document preparation system, a full- featured macro package for preparing articles, books, reports, etc., and M^X User's Manual. • /Jj^S-I^X, developed by the Amer. Math. Society for professional mathematical typesetting. Site licenses, volume discounts, and interfaces to PC Paintbrush, PC Palette, FancyFont and Fontrix are also available. PRICED FROM ONLY $249.00! (Printer drivers and interfaces additional.) Laser printer, fonts & software from $2995.00 For IBM PC/XT, AT or compatible, DOS 2.0 or higher, and 512K RAM. Hard disk required for printer drivers and fonts. *HP LaserJet and Corona require additional interface boards. For more information call or write: Personal T^X, Inc. 12 Madrona Avenue, Mill Valley, CA 94941 (415) 388-8853 This ad, with space for the photograph, produced by PC TfeX. Typeset on the Epson FX80, the Corona LP-300 laser printer, and the Autologic APS-5 phototypesetter. TeX is a trademark of the American Mathematical Society. Manufac- turers' product names are trademarks of individual manufacturers. BOOK REVIEWS code, including a virtual-memory operating system. Software Components with Ada is a compendium of lessons learned over the past several years. Software Reusability Software Components with Ada is organized into four "pack- ages" (the term is derived from an Ada feature that enforces en- capsulation). Each package is segmented into chapters. The first package introduces such concepts as reusability, object- oriented development, and the characteristics of structures, tools, and subsystems. Booch describes how the application of these concepts is a superior approach to building software systems. The theme of software reusability recurs throughout the book. Booch cites studies that conclude that only 15 percent of the code written on the average software project is "new." The rest has been written before, in some form or another, and could be reused. Hardware manufacturers have achieved orders of magnitude increases in productivity by adopting the component approach to engineering; software developers are just now be- ginning to catch up out of necessity. In the first package, Booch reaches the conclusion that fam- ilies of software components are necessary for the same reason that hardware vendors make many versions of the same micro- processor that vary according to power requirements, clock speed, price, and so on. Accordingly, he introduces a taxonomy he has developed to specify the various forms software compo- nents can take. The taxonomy separates components into data structures, tools, and subsystems. From there, the forms branch out until the lowest-level components are identified. Data Structures Examined In the second package, Booch explores the design and imple- mentation of data structures. This section transcends other books on the subject because it takes the discussion of time and space behavior much further. Each chapter in the second package describes a different data structure or class of structures. Still, the chapters are organized so that issues such as privacy, consistency, and concurrency can be isolated and examined. In the third package, Booch shows how data structures are used to construct higher-level components that he categorizes as tools. In his taxonomy, tools are divided into the categories of utilities, sorting, searching (including pattern matching), and pipes and filters. Utilities are further separated into primitive, structure, and resource utilities. Booch designs and implements several examples. Subsystems and the Law The fourth package is split into two chapters. The first concerns subsystems, which reside at the highest level of abstraction of software components. Booch describes the subsystem concept, along with its rationale and several technical and managerial is- sues. He cites several examples of applications at the subsystem level, including a windowing feature for user interfaces and the Space Shuttle Orbiter's flight computer operating system. The last chapter, "Managerial, Legal, and Social Issues," covers such topics as how to identify reusable components, the techniques and problems associated with maintaining a large li- brary of components, and how actual reuse affects the entire software development life cycle. Booch then moves on to the legal aspects of reuse. Thorough and Applicable In addition to being informative, Software Components with Ada is enjoyable to read. It is well -organized and written in a continued 92 BYTE • SEPTEMBER 1987 Inquiry 225 «W»: 1988 58 B8 FF FF 8E C8 BB 8E-88 2b 8ft 07 3C 88 75 63 BW»:i99e 8C C8 BE C8 E4 67 ftfl 81-74 BC ZE C6 86 $f 86 88 f % ■^fw'fWDm USING THE WRONG LANGUAGE CAN BE MURDER. SPEAK SMALLTALK/ V Let's talk languages. Programming languages like Turbo Pascal, C or Basic can be killers. To many, they're foreign, complex, and generally intimidating. Mistakes can be deadly. With Smalltalk/V, you have an elegantly simple solution that puts the power and majesty of a major AI programming language on your PC or compatible. It makes no difference if you're an experienced programmer or just getting started. Smalltalk/V gives you an easy-to-use and flexible programming tool. This is the same language used by leading software companies for their new product develop- ment. There are sound reasons for this. Smalltalk/V offers a totally integrated programming environ- ment using the premier object-oriented language. You use natural language rather than complex programming codes. It puts Macintosh-type graphic features on a PC including over- lapping windows, bit-mapping, pop-up menus, and a mouse interface. More than mere window dressing, Smalltalk/V delivers fully interactive windows that are easy to build and quick to modify. But don't just take our word on it. Hear what the experts have to say: "This is the real thing folks. A super Smalltalk like this turns your PC into a hot workstation. Its fantastic. . . Highly recommended*' . . .. , & - Jo t)> i Dvorak Conirihuting Kdiior PC Magazine "77/t' tutorial provides the best introduction to "Smalltalk/ V is the highest performance object-oriented programming system available for PCX' Dr. Picro Scaruffi Chief Scientist Olivetti Artificial ■ Intelligence Center Today, thousands of professionals, scientists and engineers are using Smalltalk/V to solve both simple and expert problems. Giving them a new dimension in computer applications for their PC. Put new life into your PC by calling toll free 1-800-922-8255 and ordering Smalltalk/V today. Smalltalk/V by Digitalk, Inc., 9841 Airport Blvd., Los Angeles, CA 90045. (213)645-1082. $99.95 Smalltalk/V comes with 10 starter applications including Prolog and each Application Pack adds siveral more. All source code is included. Supports 6-fO x4S0 color graphics- with color extension pack. Smallialk/V requires DOS and 512K RAM on IHM PC/AT/PS or compatibles and a CCA. EGA. Toshiba '1*3100. I leraeles, or AT&T ()''()(> graphic controller. A Microsoft or compatible mouse is rrcnmincnded, Not copy protected, Turbo Pascal is a trademark of Borland Inicrnaiion. IBM, IBM PC/AT/PS are trademarks or International Business Machines CoijxmilJon. Macintosh is a tiademaik of Apple Computer, Inc. TO ORDER CALL 1-800-922-8255 TODAY 60-DAY MONEY-BACK GUARANTEE* Send check, money order, or credit card information lo: Digitalk, Inc., 9841 Airport Boulevard, Los Angeles, CA 90045. D VISA D Mastercard Credit Card Card number: Expiration dalc:_ Name: Street Address:. Cit j /State/Zip:. Smalltalk available Inquiry 77 Smalltalk/V Dr. Andrew Bcrnai Al Expert Magazine digitalk iriti Smalltalk/V S99.95 RS-232 Communications Application Pack S49.95 KGA/VGA Color Extensio n Pack $49.95- 'Goodies*' Application Pack S49.95 SPECIAL OFFER: Smalltalk/V and all 3 packs only S199.95 Shipping and handling S5.00 (Outside North Amer ca S15.00) California residents add applicable sales tax TOTA1 S "Unconditional (50-dav money-back ipjuran* tee. Simply return to Digitalk Inc. and \oiir refund will be immediately to vou. ( imarded Inquiry 8 BOOK REVIEWS SAVE TIME FORMATTED DISKS "Ready to use in your IBM PC or compatible. ^Nashua labeled or unlabeled, your choice 53 #. 3M unlabeled only, 690. ALF formats brand-name factory certified bulk-pack disks and double-checks them for defects. You save the time and hassle of formatting disks yourself. CALL TODAY TOLL FREE 1-800-321-4668 in Colorado, 303-234-0871 Hours: 8:00-5:30 Mountain Time, Monday-Friday Prices do not include shipping, and are subject to change. ALF 1315-F Nelson St. Denver, CO 80215 Expansion Chassis/Tape Back-up '&'■■■■:■■:'( -*—f v j 1 1 aiiitiiimii | ^^^^^H 3H ■ mm. .iii^" ■ "•'BHHHHM M ■ MH| Specification Model No. No. of Siof Space for 54 Height Drive Power Supply (Watts) Dimension DXWXH(cm) Price M-r 1 50 30x15x6.5 S139 M-2 3 3 100 42x25x16 S299 M-3 5 3 100 39x30x15 S239 M-4 12 2 100 40x49x 14 S299 M-5 2 45 39x18x15 S149 M-6 1 50 26.5x18x13.5 S169 M-7 5 2 100 38.5x30x13.5 S299 M-8 2 45 39.5x18x13.5 S149 M-9 2 60 38.5x49x9 S249 M-10 8 4 135 43x49x14 S239 ' Extra space for a stand aione controller EXT and RCV Adapters (Interfacing Computer & Chassis With Slots).. Tape Back-up (With Controller & Cable).... S499 ORDER TOLL FREE: (800) 826-0267 In California Call (408) 434-0877 SOURCE ELECTRONICS CORP. 2380 Qume Drive, Suite E San Jose, CA 95131 Telex: 279366 Fax: (408) 434-0539 S149 relaxed, first-person-plural style. Booch makes appropriate and frequent use of pictograms to illustrate concepts and then fol- lows up with fully coded examples. The book's 8V2- by 1 1-inch format lets the code be spread across fewer pages. Each chapter concludes with a summary, a list of references, and a series of exercises for the reader. Booch does not assume that the reader is familiar with data- structure theory. He patiently examines the motivation for each abstraction, usually associating each one with some model of reality. This approach increases the book's appeal as a textbook for classes in data structures, object-oriented design, or soft- ware engineering techniques. Ada's Union with Design Software Components with Ada is both a companion and a suc- cessor to Booch 's influential first book, Software Engineering with Ada (Benjamin/Cummings, 1983, second edition 1986). The connection between software components and Ada in both books is not just coincidental. Booch deftly describes the comfortable marriage between Ada and object-oriented design. While the concept of software components could be applied to most high-order languages, Ada was specifically designed to support the component paradigm. Ada offers the package struc- ture, generics, separate compilation, a built-in tasking model, and a tightly controlled language definition (no subsets or supersets)— a nearly ideal combination for implementing reusable components. Two Shortfalls I have two significant concerns about the book's contents. The first is the issue of efficiency. Booch does not discuss the rela- tive merits of iterative versus recursive operations on, for exam- ple, search operations or insertions into tree structures. He con- sistently chooses the recursive method because of its elegance and ease of implementation. Although both algorithms are lin- earithmic in nature, there is a significant penalty on most com- puter architectures for using the recursive method of insertion and lookup. The fact that Booch 's methodology doesn't provide us with a way to differentiate between two algorithms that have similar or identical time behavior but different levels of efficien- cy is a problem that should be addressed. The other thing that bothers me is that Booch seems to avoid the problem of handling limited private types (i.e., types for which no assignment operator is implicitly provided). Many of the structures in the book import only private types (for which assignment is implicit) as generic parameters but export limited types, creating incompatible interfaces. You can't have a queue of stacks, for instance, because the stack type is limited, and the queue package won't work with limited types. If you want a structure of some limited type, you must manage an access (pointer) type, adding a level of indirection and a lot of garbage- collection headaches. This approach is fine in small examples, but it is insufficient in large, complex systems. Booch acknowl- edges that this is a problem but offers no general solution. A Software Component Standard In the final analysis, these concerns do not diminish the impact the book should have on the software community. Booch pulls togeth- er many of the threads of traditional software theory and weaves them into a fabric that is altogether unique. I believe Software Components with Ada is destined to take its place on the refer- ence shelf with the standard works of computer science. ■ Douglas Arndt (9427 East Third St., Tucson, AZ 85710) is a senior software engineer at Dalmo Victor and Singer. He is ac- tive in the Association of Computing Machinery 's Special Inter- est Group on the Ada Programming Language (ACM SIGAda). 94 BYTE • SEPTEMBER 1987 Inquiry 273 4 Hours A Day, 7 Days A Week FOR THE BEST BUYS, CALL US ANYTIME. Software Word Processing/ Desktop Publishing Fancy Font Microsoft Word 3.1 Multimate Advantage-!! Lotus Manuscript OfficeWriter/Speller Pagemaker PFS: Prof Write Ventura Publisher Volkswriter 3 Word Perfect 4.2 Word Perfect Server Word Perfect Station Wordstar Pro 4.0 Wordstar 2000 + Xywrite III Xywrite III + Database Systems Clipper DBase III Plus DBase III LanPak Foxbase + Paradox 2 PFS: Prof File Q&A R Base System V RapidFile Reflex $ 139 $ 209 $ 259 $ 359 $ 249 $ 499 $ 119 $ 519 $ 145 $ 195 $ 309 $ 75 $ 249 $ 289 $ 199 $ 249 $ 389 $ 399 $ 599 $ 229 $ 429 $ 145 $ 219 $ 449 $ 239 $ 89 Statistics SPSS/PC + $ 699 Statgraphics $ 419 Systat $ 439 Graphics Chartmaster $ 209 Diagraph $ 279 Diagram Master $ 189 Freelance Plus $ 349 Graphwriter Combo $ 349 Harvard Presentation Graphics $ 249 MapMaster $ 219 MS Chart $ 189 PC Paintbrush Plus $ 109 Picture Perfect $ 209 Prodesign II $ 159 Publishers Paintbrush $219 Signmaster $ 139 Desktop Environments Lotus Metro $ 65 MSWindows $ 65 Sidekick $ 59 Project Management Harvard Total Project Manager II $ 369 Microsoft Project $ 249 Superproject Plus $ 299 Timeline 2.0 $ 259 Hardware 4 Spreadsheets/ Integrated Packages Enable 2.0 $ 389 Framework II $ 399 Javelin + $ Call Lotus 1-2-3 $ 309 Lotus Hal $ 109 Multiplan $ 125 Smart System $ 429 SuperCalc 4 $ 279 Symphony $ 449 Communications Carbon Copy+ $ 119 Crosstalk XVI $ 99 Crosstalk Mark IV $ 129 Relay Gold $ 159 Smarterm(Persoft) $ Call Smartcom II $ 99 3.5 INCH SOFTWARE NOW IN STOCK CALL! ! Languages/Utilities Fastback Lattice C Norton Advanced Microsoft C Mace Utilities MS Fortran 4.0 Quick Basic Turbo Basic Turbo C Turbo Pascal Productivity Tools VP Expert Eureka Sideways Accounting BPI Great Plains Easy Business $ 89 $ 219 $ 89 $ 279 $ 65 $ 279 $ 69 $ 59 $ 59 $ 69 $ 59 $ 69 $ 39 $ 179 $ 499 $ 359 QUALIFIED INSTALLERS AVAILABLE Computers AST Premium 286 Wyse 286 PC Panasonic Business Partner Toshiba3100/1100 + Multifunction Boards AST Advantage (128K) AST Advantage Premium AST6PakPlus(64K) AST I/O Mini II AST Premium (256K) AST Rampage PC AST Rampage 286 Inboard 386AT Intel AboveBoard Orchid Jet 386 PC Turbo 286 (1MB) PC Tiny Turbo 286 QuadBoard(OK) Display Boards ATI EGA Wonder + Hercules Graphics Card Plus Hercules Color Card Hercules In-Color Card NECGB1 Paradise Auto Switch EGA 480 Quad EGA Prosync Quadram EGA + Tseng EVA 480 Modems Hayes 1200 Hayes 1200B Hayes 2400 Hayes 2400B Migent Pocket US Robotics 1200 US Robotics 1200B US Robotics 2400B Ventel2400 Ventel2400B Watson Emulation Boards AST 5211-11 + lrma/2 24 Hours A Day, 7 Days A Week 1-800-221-1260 $ Call $ Call $ Call $ Call $ 319 $ 419 $ 119 $ 119 $ 219 $ 279 $ 399 $1350 $ Call $ 949 $ 749 $ 449 $ 109 $ 239 $ 189 $ 159 $ 309 $ 359 $ 399 $ 339 $ 289 $ 389 $ 299 $ 299 $ 499 $ 449 $ 159 $ 139 $ 109 $ 189 $ 409 $ 409 $ 339 $ 629 $ 725 Monitors Amdek310A Amdek410A Amdek 1280 NEC MultiSync Princeton HX-12 Princeton MAX-12E Printers/Plotters Epson EX-1000 Epson FX-86E Epson FX-286E Epson LQ-1000 HP 7475A HP Laserjet II NEC 3550 Okidata 192 + Okidata 193 + Okidata 292 Okidata 293 Toshiba P321 Toshiba P341 E Toshiba P351 Model 2 Mass Storage/Backup lOmega 20 + 20 W/intfc IrwinTapeDrives Plus HardCard 20MB Plus HardCard 40 Priam 42MB AT Priam 60MB AT Seagate ST 225 W/int Seagate ST238W/int Tallgrass TecmarQT60lnt Networks ArcNet Novell Input Devices Keytronics 5151 Keytronics 101 Microsoft Mouse PCMouse/DrHaloll Accessories Curtis Ruby DataShieldS-100 Logical Connection Masterpiece Plus Microfazer II 80287 Math Chip $ 149 $ 169 $ 779 $ 579 $ 439 $ 149 $ 549 $ 359 $ 499 $ 569 $1499 $1825 $ 789 $ 379 $ 549 $ 539 $ 689 $ 549 $ 769 $ 999 $1949 $ Call $ 675 $ 949 $ 799 $ 899 $ 329 $ 389 $ Call $ 899 $CALL $CALL $ 169 $ 119 $ 129 $ 109 $ 59 69 $ 329 $ 129 $ 269 189 Customer Service Hours: 9 AM — 5 PM, Mon.— Fri. I^MfcipfiSB] I" New York State call (718)438-6057 If "54 FREE SHIPPING ' — — -J I^^^^^HJ on all orders over $1,000.00, credit card orders and prepaid orders. Our Policy: • All returns require prior authorization • Visa or Mastercharge— add 3% • Cash, M.0, or bank check only— add $5.00 per order • Prepaid persona! or company check— allow two weeks to clear • Shipping via UPS surface— add $3.00 per item, UPS Blue— add $8.00 per item * Call for shipping costs. • Prices subject to change; call for latest prices. P.O. Box 300729, Brooklyn, NY 11230 TELEX: 627-30170 FAX: 718-972-8346 3918 The most powerful Just because Freeway is easy to use, doesn't mean it's weak. Freeway is communication software by and for the power user. Automation: You shouldn't waste your time with simple chores. So Freeway automates your communication. It stores over 20 settings for each host you call in its Phonebook. If a number is busy, Freeway will redial until you get through. And, in addition to the Autopilot, Freeway includes a powerful script facility, with access to all Freeway's features. For instance, a script can wait until 2 a.m., call a BBS, check for mail, and download any new files, leaving you an exact transcript. Control: Freeway gives you far more detailed control than just the usual baud rate and parity. You have seven filters for incoming and outgoing text. You can specify the characters used for flow control, and the length of a Break. In all, you have control of over 50 settings, most of which can be different for each phone number. And remember, just because Freeway is powerful, doesn't mean it's difficult. The advanced features are as accessible as the basics, via fast menus with keyboard shortcuts. ££VmK> f^HP is the best commi ®©@© The easiest to use Take Freeway's simple menus and clear displays. Add the arrow keys and the Escape and Enter keys. The result is powerful but straightforward communication — at your fingertips. ® Phonebooks: Freeway lets you store the phone numbers (and other settings) for up to 100 computer systems. You just use the arrow keys to pick the number you want, hit Enter, and leave the dialing to us. ©Autopilot: Computer communication is more than just placing a call. You have to log on to the other computer, and often type introductory commands. Freeway provides an "autopilot" to relieve you of this chore. You simply go through these preliminaries once, with the autopilot noting your every move. Then, when you next call, the autopilot will do the work for you. ©Setting Up: Setting up Freeway is a piece of cake! The parameters you need — baud rate, parity, and even the number to call — are gathered in simple menus. To set them, you just zip through with arrows and Enter, and then save them in the Phonebook. Later, changing one or all of them is just as easy! BRK&TBK© ®On-Line Help: Even though Freeway is very easy to use, we all need a hint now and then. Every line of every menu has on-line help at the touch of a key. Over 30,000 satisfied users of previous version (KX-COM) Crosstalk® Emulation: At the touch of a function key, you can switch from the menu interface to a command line interface. Crosstalk® users will feel right at home, and everyone can use whichever interface suits' them best. Terminal Emulation and File Transfer: We haven't forgotten the basics. Freeway emulates ANSI VT-100, VT52, and TTY. It offers seven file transfer protocols, including the new ultra-fast, ultra-reliable Freeway protocol. Why a new protocol? Because it is better — it sets many parameters automatically, adapts packet sizes to line conditions, and, in short, gets files through the first time. Gory details: TTY, VT100, VT52 emulation. 75-1 15.2k baud. ASCII, Kermit, Xmodem, Ymodem, Ymodem batch, Compuserve-B, and Freeway protocols supported. Phonebooks store over 20 parameters for each host, including phone number, baud rate, LF filter, bit 8 filter, fold to uppercase, null line and tab expansions, flow control characters, and intercharacter and interline delays. Privacy passwords protect phonebooks. Global parameters separated from host-dependent parameters. Script facility, with full power of Freeway. Includes conditional branches, subroutines, and string and numeric variables. Elapsed session time available as a script variable. Autopilot replays logon sequence. Big digital clock. Can beep, call a host, or run a script at specified times. Session time limit warning. Emulation of Crosstalk® interface; lots of extra commands. Copy, erase, rename files. Built-in page and line editors. Configurable for most modems, including non-Hayes. Auto-redial; programmable number of and delay between tries. Parallel command and menu interfaces. On-line help for each menu line. Cleans windows. Cooks omelettes. nication software, HWim It seems unbelievable to get such a complete communications software package for only $24.95. But it's true! With its many powerful features, Freeway handles all your communications applications with ease. It has full terminal emulation, full file transfer capabilities, baud rates up to 115200, and many other features, and it uses all the easy Freeway interfaces with pop-up menus. Freeway is a powerful tool, and it is only $24.95! (non-copy protected) $24.95 ONLY! Introductory price fSg¥!K& Advanced Freeway Advanced has of course all the power and simplicity of Freeway with more features there when you need them: • Crosstalk emulation and a powerful script language jammed with features Crosstalk® doesn't have. A BBoard script is supplied free as an application (callers can change drives, directories, and upload and download files using any protocol). • More communication parameters; filters, flow control, delays. Pass- words protect phonebooks and unattended mode, (non-copy protected) $89.95 ONLY! Introductory price System Requirements: IBM PC, XT, AT, or PS/2 or 100% compatible. Order now! Call toll-free Kortek BBoard (415) 327*4589 -i QnA/Q07 aq 1 A Or, send a check or major credit card number, including $5 for postage and handling, CA residents add 7% sales tax Crosstalk® is a registered trademark of Digital Communication Associates Inc. Kortek Inc. has no affiliation with and no relationship with Digital Communication Associates Inc. Artag, Lincoln Graphics & JDLH IK KORTEK INC 505 Hamilton Avenue Palo Alto, California 94301 0(415)327-4555 T E K Inquiry 148 "A Work of Art Mix different sizes and styles of native and SoftCraft fonts on the same line. to: Joan Prentiss-Winston, CEO from: Bertram W. Finch, CFO Create and print you characters and logos up t high and 2 2/3" wide. ' Special formatting features let you wordwrap, or position text centered, justified, flush left or right, and much more. • Automatic pagination makes formatting long documents easy! No length limits! proposal After researching all our options, I can confidently recommend a software product bySoftCraft, Inc. The product is called Fancy Font and it would meet all our typesetting needs. Fancy Font is cost effective and is compatible with all our laser and dot matrix printers, as well as any of our installed word processors. Fancy Font can meet the needs of the following departments: Graphics Research and Development i Our graphic artists will find Fan y Font useful for creating vu-graphs, presen- tation materials and advertisements. There are now commands to create and work with graphic images. SoftCraft also . offers a special service to digitize logos and sym- bols our artists design. Fancy Font provides the special symbol and math- ematical fonts this de- partment needs to pro- duce proposals and tech- nical reports containing scientific notation and mathematical formulae. 7T(;i) *2 k =2 m\- Documentation Public Relations and Marketing • Kerning option kerns a docu- ment and automatically forms ligatures. Hundreds of optional fonts from 4 to 72 points available. Fancy Font will save time and money in the produc- tion of our manuals and technical documents that require several sized chap- ter, title and section head- ings in a variety of text for- mats including portrait and landscape mode. The kern option creates ligatures for the most polished looking documents. Fancy Font can make all our promotional materials look more professional. It is a soft- ware package versatile enough to produce news releases, invi- tations, company newsletters, even last-minute sales presen- tations, all looking as though they had been done by a pro- fessional typesetting service. Manufacturing Accounting With Fancy Font, we can design our own product labels. The SoftCraft font library even has a bar code font avail- able for inventory control purposes. Fancy Font can produce col- umns of figures in small typefaces and can be used with our L/Otus spreadsheets and graphs. Perfect for doing an- nual financial reports. ill] RECOMMENDATION: Fancy Font can meet the special needs of virtually every department in the company. No special hardware or installation is required, so we can use it as soon as it arrives. Fancy Font would cut company costs by reducing printing and typesetting fees and bring in-house, several ser- vices that we now send out. I recommend that we purchase Fancy Font immediately. Send us your logo or signature for digitization. Bertram W. Finch Create boxes shaded or pat- terned according to your specifications, (new!) Standard fonts include Sans Serif, Roman, ^vrtid, (#16 Automatic column command, (new!) Includes over 1500 mathema- tical, foreign language and special symbols that can be scaled to any size up to 1 inch. Drop in graphic images cap- tured from a file or from the screen display of programs such as Lotus 1-2-3. (new!) Let Fancy Font turn your printer into a personal typesetter. Fancy Font gives you the utmost in document versatility by allowing you to mix a variety of font styles and sizes in either portrait or landscape mode with your printer's native fonts. If you have an inexpensive dot matrix printer, Fancy Font turns low-resolution print quality into stunning high-resolution, proportionally-spaced text rivaling laser printer output. If you have a laser printer, Fancy Font turns it into an economical desktop publishing system. Fancy Font prints with a wide variety of typestyles and sizes normally available only from expensive typesetting services. Fancy Font runs on all IBM PC's and compatibles and works with word processors, spreadsheet and database programs. SoftCraft, Inc. offers a wide variety of personal typesetting software and fonts. Call our toll-free number for information on these and other products: Fancy Font $180 Fancy Word $140 Laser Fonts $180 SoftCraft Font Editor $290 Business Font Pack $90 Font disks $15 each Now with graphics! 16 N. Carroll St., Suite 500, Madison, WI 53703 (608) 257-3300 1-800-351-0500 The sample letter above was printed in one pass with Fancy Font on an HP LaserJet-^. Inquiry 265 for End-Users. Inquiry 266 for DEALERS ONLY. BYTE Features A Programmer's Introduction to OS/2 101 by Ray Duncan The New Generation: A Closer Look 110 by Richard Grehan Ciarcia's Circuit Cellar: BuiJd the Circuit Cellar AT Computer, Parti ;. 115 by Steve Ciarcia Programming Project: Crafting Reusable Software in Modula-2 123 by Hanna Oktaba and Rene Berber Programming Insight: Teaching Old Screens New Tricks 129 by Michael J '. Sorens Constructing an Associative Memory 137 by Bart Kosko Karmarkar's Algorithm 146 by Andrew M. Rockett and John C. Stevenson iiumiiiliiiimiiiiiimi Mliilltitlliii' mm mmtiimlmnm Si(ClNlllfHtfl8(f HUH) mww SEPTEMBER 1987 -BYTE 99 1 The Diconix 150. Take it or leave it The world's most portable printer performs as well on your desktop as it does when you're on the road. The small footprint reduces desktop clutter, while it enlarges a small budget. The Best of 1986 - ■ In the U.S., for the dealer nearest you, call 1-800-DICON1X Telex: 288-280 In Europe, for the distributor nearest you, call (4121) 37 56 04 Telex: 454-199 TXC CH Inquiry 75 THE NEW GENERATION Ray Duncan A Programmer's Introduction to OS/2 Writing your first OS/2 application S/2 is Microsoft's multi- tasking, virtual-mem- ory, single-user operat- ing system for personal computers based on the Intel 80286 and 80386 microprocessors. Variously referred to in the press during the last two years as DOS 5, NewDOS, Advanced DOS, ADOS, and 286DOS, OS/2 is the first software product born of the Microsoft/IBM joint development agreement of August 1985. OS/2 falls between Microsoft's MS- DOS single-tasking operating system and the Xenix multiuser, multitasking operat- ing system. Although it is compatible with MS-DOS file systems and can run many existing MS-DOS applications, and although it has a hierarchical directory structure, I/O redirection, and some in- terprocess communication mechanisms similar to Xenix, it is neither an over- blown MS-DOS nor a stripped-down Xenix. It is a completely new operating system designed to support high-perfor- mance, intensely interactive, "personal- productivity," and networking applica- tions in a business environment. The retail version of the basic OS/2 op- erating system will not reach users until early 1988, and the graphic user-inter- face layer (the protected-mode Windows/ Presentation Manager) will arrive even later. However, to help programmers get familiar with the new system as quickly as possible and encourage the early port of existing applications to the new protected-mode environment, both Microsoft and IBM are directing earnest evangelical efforts at the software-devel- opment community. Both companies have announced an aggressive schedule of seminars for developers throughout the summer of 1987, and both have shipped software-development kits containing prerelease versions of the operating sys- tem and programming tools. This article is the first in a series of three that will look at how to write pro- grams to run under OS/2. The other arti- cles will appear next month and in the Fall 1987 Inside the IBM PCs issue. Key Features of OS/2 MS-DOS runs the 80286 processor in real mode, which is essentially an 8086- emulation mode. Even though the bene- fits of the 80286's higher clock rates and more efficient instruction set were not in- significant, both programmers and users found the persistence of the real mode's 1 -megabyte-addressing limitation frus- trating. OS/2 runs the 80286 in its preferred protected mode, with a physical address space of 16 megabytes and a vir- tual address space of 1 gigabyte. This use of protected mode has important implica- tions for the structure of the operating system itself and for the design and oper- ation of applications programs. (You can find a more detailed introduction to pro- tected mode in Ross Nelson's article "A Protected-Mode Program for the PC AT" in the Fall 1986 Inside the IBM PCs, or in Intel's iAPX286 Operating System Writer's Guide.) From the programmer's point of view, the key features of software development under OS/2 are a new application pro- gram interface (API), preemptive multi- tasking, interprocess-communication fa- cilities, memory protection and virtual memory, dynamic linking, and compati- bility with MS-DOS. Application Program Interface The OS/2 kernel provides about 200 ser- vices to applications programs executing under its control. Collectively they are referred to as the OS/2 API. You invoke all these services with far calls that are resolved at load time (see Dynamic Link- ing on page 104). Parameters— a mixture of values and addresses of values or struc- tures—are pushed onto the stack prior to the call. A status code is returned in reg- ister AX: if the function succeeded, or an error code if the function failed. Other returned values are placed in variables or arrays whose addresses were passed in the original call. The OS/2 API functions fall into four major categories. DOSxxx calls are gen- eral services, including file and record I/O, device monitors, dynamic linking, multitasking, interprocess communica- tion, memory management, timers, and internationalization support. VIOxxx calls display characters or strings with or without associated attributes, read back characters (and optionally, their attri- butes) from the display buffer, read or set cursor position and type, scroll up/down/ left/right, set or get video mode, and put up or take down the pop-up window. KBDxxx calls are for keyboard status and input. MOUxxx calls read pointing-de- vice position, status, and state of buttons; they also hide or reveal the pointer or set its shape. A small subset of the above calls, known as the family API, has direct equivalents in MS-DOS function calls. OS/2 programs that restrict themselves to using the family API calls can be linked and bound in a special manner that lets them run in three environments: MS- DOS 2.x/3.x, the DOS 3.x compatibility box of OS/2, or protected mode under OS/2. Such programs are called family continued Ray Duncan is author of Advanced MS- DOS: Microsoft's Guide for Assembly Language and C Programmers, Micro- soft Press, 1986. He can be reached at P.O. Box 10430, Marina del Rey, CA 90295. SEPTEMBER 1987 -BYTE 101 INTRODUCTION TO OS/2 The user's interface to OS/2's multitasking capabilities is simple. apps or bound apps; the programming tools in the software-development kits are supplied in this form. (For more informa- tion on building family apps, see "Micro- soft's New DOS," by Eva White and Richard Grehan in the June BYTE.) The Windows/Presentation Manager offers applications programs another 500 or so functions that create, destroy, and control the appearance and size of win- dows, perform device-independent graphic output, put up and take down the pull-down menus, load resources, and so on. I'll ignore these for the present, ex- cept to note that when Windows/Presen- tation Manager is present, it replaces the system's default VIO and KBD routines with new services that let a well-behaved text application run in a window without its knowledge. An interesting feature of the new OS/2 API is that it is equally efficient to call it from either a high-level language or from assembly language. Consider the func- tion DOSSLEEP (probably the simplest useful function in the OS/2 API), which is called with a double-word value in mil- liseconds and suspends the caller's exe- cution for the specified interval. The as- sembly-language form of the function call is extern DOSSLEEP : far push ; push double value 1000 push 1000 ; to sleep for 1 second call DOSSLEEP ; transfer to OS/2 or ax, ax ; did call succeed? jnz error ; jump if call failed To call an OS/2 API function from a C program, you simply declare it as far Pas- cal (i.e., parameters pushed left to right, the called routine clears the stack) and then invoke it directly: extern unsigned far pascal D0SSLEEP(unsigned long) ; status=D0SSLEEP(l000L) ; The OS/2 C compiler generates the right code for the call automatically. There is no execution time or space pen- alty, there is no need for intermediate li- brary functions to shift parameters around or pop them into registers before transferring to the operating system, and the source code is far more compact and readable than its assembly language counterpart. Although the OS/2 API is a consider- able architectural change from the famil- iar INT 21h of MS-DOS, it offers many significant advantages. The API lets OS/2 take full advantage of the 80286's ability to automatically copy parameters from the caller's stack to the receiving routine's stack. The API also enforces the separation between kernel and user- privilege levels by protected-mode call gates. The API might make subsequent conversion of applications for a true 32- bit 80386 version of OS/2 almost trivial, and it raises the possibility that the entire operating system and its applications could someday be ported to a processor with a non-Intel architecture, such as the Motorola 68020. Preemptive Multitasking Preemptive multitasking refers to the op- erating system's ability to allocate pro- cessor time between multiple tasks in a manner that is invisible to those pro- grams. It is sometimes called time-slic- ing. A hardware interrupt, called the timer tick, which is generated by a pro- grammable timer chip, lets the operating system regain control at predetermined intervals. After updating the current date and time, control is transferred to a scheduler that maintains a list of the active tasks and their state. If the scheduler determines that the currently executing program has exhausted its time slice or that another program with a higher priority is ready to execute, the scheduler suspends (pre- empts) the current program and gives control to another program. The user's interface to OS/2's multi- tasking capabilities is simple and easy to understand. A special supervisory pro- gram, called the session manager, lets you start up one or more copies of the sys- tem's command processor (CMD.EXE, the protected-mode counterpart of MS- DOS's COMMAND.COM). Each com- mand processor and the programs that users launch from it are collectively termed a screen group and own a virtual screen buffer that receives all the output from the programs in that group. Users can cycle from one screen group to an- other with the aid of the session man- ager's hot key; when a screen group is brought to the foreground, its virtual screen buffer is mapped to the physical screen, and the programs in that group acquire control of the keyboard. The programmer's view of multitask- ing under OS/2 is somewhat more com- plex and involves three types of system objects: screen groups, processes, and threads. Each screen group contains one or more active processes, and each pro- cess contains one or more active threads. The simplest case of a process is concep- tually similar to a program loaded under MS-DOS: The process is initiated when the operating system allocates some memory, loads the necessary code and data from a disk file, and gives it control at an entry point specified in the file. Subsequently, the process can obtain and release other resources (such as access to disk files and additional memory), per- form input or output, and spawn other processes by calls to the operating sys- tem. A process's membership in a screen group depends strictly on the member- ship of its "parent" process; similarly, any "child" processes that it creates will belong to the same screen group. The OS/2 concept of threads is rather novel. A thread is a point of execution within a process and is associated with a stack, general register contents, and a state (i.e., waiting for some event, ready to execute, or executing). Each process has exactly one thread when it is created, whose initial execution point is the entry point of that process. But that thread can create additional threads that then^run asynchronously from the first and share ownership of all the processes' resources and "near data segments" (DGROUP). Threads within a process can dynami- cally suspend, reactivate, and vary the priorities of one another and can perform input and output autonomously: Any nec- essary serialization of I/O is done within OS/2. Communication between threads is fast, since it is typically performed through shared data structures and does not need to involve operating system calls. Interprocess Communication OS/2 supports all the major methods of interprocess communication found in other multitasking operating systems. RAM semaphores are used for local sig- naling or resource synchronization be- tween multiple threads in the same pro- cess. System semaphores that are called global objects can be used for signal- ing or resource synchronization between processes. Pipes, as in Unix, allow high- performance transfer of variable-length messages between closely related pro- cesses (usually a parent and its child processes). Shared memory, named global mem- ory segments, can be accessed by two or continued 102 BYTE- SEPTEMBER 1987 YOUR PC WANTS YOU TO GIVE IT THE SAME ADVANTAGE YOU GIVE YOUR TAPE DECK AND VCR. It's only fair. Not to mention logical. PC's want to perform as well as all your other sophisticated elec- tronic equipment. If you're like millions of informed people throughout the world, you rely on the ultimate in audio and video recording performance. You rely on TDK. Well, you should also rely on TDK when it comes to your computer. TDK's Floppy Disks provide the same consistently high performance. The same level of absolute quality. Which is understandable since all TDK products share an unparalleled level of technical superiority that spans over 50 years. &TPK THE NO-RISK DISK. In fact, TDK is the world's largest manufacturer of magnetic media. What's more, they're also a major producer of electronic component parts, including the most sophisticated heads for disk drives. What a stra- tegic advantage! With vital "inside" information like that, it's no wonder their disks provide error-free performance. So, if you want to put a smile on your computer's face, choose from TDK's family of 5.25-inch stan- dard, 5.25-inch High Density and 3.5-inch No-Risk™ Disks. It's to you and your PC's advantage. MF-2DD Northeastern Region: 516-625-0100; Southern Region; 404-948-1346; Midwestern Region: 312-676-5356; Western Region: 714-863-1844 } 1986 TDK Electronics Corp Inquiry 289 SEPTEMBER 1987 -BYTE 103 INTRODUCTION TO OS/2 more processes. Queues named global objects have several features: You can order messages in the queue by FIFO (first in/first out), LIFO (last in/last out), or priority, the queue can grow to almost any size, and many processes can write messages to the queue, but only the queue creator can remove them. Event flags, similar to those in Unix, are used to com- municate between related processes and can simulate a software interrupt. Memory Protection and Virtual Memory All the processors in the Intel 80x86 fam- ily generate memory addresses by com- bining the contents of a segment register (which you can think of as a base pointer) with an absolute or relative offset. On the 8086 or the 80286 in real mode, the value in a segment register is simply a para- graph address (a 20-bit physical address divided by 16). In protected mode, an ad- ditional level of addressing indirection is added. The value in a segment register is a selector, which is an index to an entry in a descriptor table that contains the base address and length of a memory segment, segment attributes (executable, read- only, or read/write), and privilege infor- mation. Each time a program makes a memory reference, the hardware ac- cesses the descriptor table to generate the physical address and simultaneously checks to make sure that the memory ac- cess is valid. Protected-mode addressing completely isolates tasks from one another. The de- scriptor tables themselves are not acces- sible by applications programs; only the operating system can manipulate them. If a program attempts to read or write a memory area that does not belong to it or calls an operating system routine to which it has not been given access, a hardware interrupt is generated that lets the operat- ing system terminate the errant program. The combination of preemptive multi- tasking and memory protection contrib- utes to a robust environment: There is lit- tle opportunity in protected mode for an ill-behaved program to bring the entire system down by going into a loop or writ- ing on code or data owned by another program . The flip side of the memory-protection coin is virtual memory. OS/2 can man- age up to 16 megabytes of physical mem- ory, but the amount of installed RAM is nearly irrelevant to the average applica- tions program running in protected mode. When the sum of the memory owned by active programs in the system exceeds the amount of physical memory, memory segments are rolled in and out from a swap file as needed (or just discarded and reloaded in the case of code or read-only data segments). This segment-swapping is accomplished by a module of OS/2 known as the memory manager, with the aid of the processor's hardware memory- protection mechanisms, and the process is completely invisible to applications programs. The theoretical limit on the amount of memory a program can own or share is around half a gigabyte, but the practical limit is the amount of physical RAM plus the swapping space available on the hard disk. Dynamic Linking The 802 86 's support for protected virtual memory makes it possible to place fre- quently used procedures, including most of the OS/2 and graphic user-interface services available to applications pro- grams, into special files known as dy- namic link (dynalink) libraries. The rou- tines in these libraries can be shared by all the programs that require them and are not loaded from disk into physical mem- ory until they are needed. Placing com- mon procedures in dynalink libraries lets you alter, improve, or replace those rou- tines without any change to the applica- tions programs that invoke them. The calls from a program to the rou- tines in a dynalink library are resolved in two stages. The linker is informed that a particular external name is a dynalink routine by either an Import statement in the program's module-definition file or by finding a special "stub" record in an object-module library. It then builds the information necessary for deferred link- ing into the program's .EXE-file header: the names of the dynalink routines that are needed, the modules in which they will be found, and a list for each routine of all the addresses within the program where it is called. When you load the pro- gram for execution, the list of imported routines is examined, any external rou- tines that are not already resident in memory are fetched from the disk, and the addresses within the calling program are fixed up appropriately. You can think of this as late binding. Compatibility with MS-DOS OS/2 provides upward compatibility and a smooth transition from MS-DOS at three levels: the user interface, the file system, and the DOS 3.x compatibility box. The command-line interface of OS/2 version 1.0 is identical to that of MS- DOS, with the exception of a few new or enhanced commands, batch-file direc- tives, and CONFIG.SYS file options. The session manager, which is triggered by a hot key and lets the user move from one screen group and command proces- sor to another, is self-explanatory, and its use becomes natural very quickly. Adap- tation to the Windows/PM, when it ar- rives, will also be easy: Its methods of operation and pull-down menus are quite similar to that of Microsoft Windows ex- cept that it uses overlapping rather than tiled windows, and you launch programs from a list of long, descriptive names rather than double-clicking on a filename in a disk-directory listing. The file structure for both flexible and fixed disks— that is, the layout of the par- tition table, directories, file-allocation tables, and the files area— is exactly the same for the initial release of OS/2 as for MS-DOS. This means that you won't be escaping the 32-megabyte volume limit or the 8-character filename limit for some time yet. However, it does let devel- opers exchange files and move back and forth between the two environments with a minimum of difficulty. OS/2's provi- sions for mountable file systems portend release from some of the historical MS- DOS limitations. The DOS 3. x compatibility box is not a box at all, but a component of the OS/2 operating system that lets one "old" ap- plication designed for MS-DOS run at a time in the 802 86 's real mode alongside "new" protected-mode applications. Re- quests by the real-mode application for MS-DOS services are trapped by OS/2 and translated into API calls, switching back and forth between real mode and protected mode as necessary to perform I/O and other services. The user can de- termine how much memory will be allo- cated to the DOS 3.x box by an entry in the CONFIG.SYS file or disable it com- pletely. One disadvantage of the DOS 3.x box is that it makes the system vulnerable as a whole. Ill-behaved MS-DOS programs that manipulate the hardware directly or take over interrupt vectors can cause problems or even a hard crash— this is unfortunately the trade-off for being able to use the old programs at all. A Simple OS/2 Application An OS/2 application is built from two basic elements: source files that can be compiled or assembled into relocatable object modules and a module-definition file that describes the program's segment behavior (see figure 1). In a traditionally trivial program that displays the message "Hello World!," the file HELLO .ASM contains the assembly language source code for the program (see listing 1). It looks similar to an equivalent MS-DOS program, with a few exceptions. The directive .286c permits the as- continued 104 BYTE- SEPTEMBER 1987 CTRACE DEBUGGER $19.95 The perfect companion for MIX C is our exciting new C source debug* ger. Ctrace is unlike any debugger you've ever seen. It brings your pro- grams to life on the screen. You'll see your variable values changing as you watch your C source code executing. The animated trace shows you the flow of execution, statement by statement. It's like watching the bouncing ball as the cursor dances over your C program. Ctrace is very simple to operate. Commands are executed with a single keystroke. Pop up menus list the command options. Pop up messages alert you when anything important happens. There are 6 windows of information: source, output, variables, watch, memory, and symbols. You can view as many as 4 windows at once. The function keys make it easy to quickly choose among 8 different views. The combination of Ctrace with MIX C makes C programming a real joy. MIX C provides the power of a compiler while Ctrace provides an execution environment that's more elegant than an interpreter. Inquiry 190 Back To School Special - Save Over 50% Prices good through October 31. Get off to a fast start with MIX C. Our comprehensive book and nimble C compiler will have you program- ming in C before you know it. Our book is your teacher. You'll start right away, compiling and executing C programs. The tutorial takes you step by step through the C language. You'll learn by example with a book that's chock-full of sample programs. And the programs aren't just fluff. They teach you the important C concepts. An amortization program teaches you how to use pointers to functions. A data base program teaches you how to manage memory dynamically. It's the best hands on training available. You'll love working with our C compiler. It's half as large and twice as fast as other C compilers. In fact, it's the only full featured C compiler that can be operated comfortably on floppy disks. And as you would expect, MIX C is easy to use. It produces a complete program listing with compile errors clearly identified and explained. If you've been frustrated by other C compilers, don't throw in the towel until you've tried ours. There's a big difference. Although it's small, MIX C is not a subset. MIX C supports the full K&R standard, including the extensions that are often omitted in other C compilers. MIX C comes complete with a comprehensive book, a standard library of more than 175 functions, a blazingly fast linker, and tools for optimizing your programs for minimal space or maximum speed. All of this is yours for the incredibly low price of $19.95. That's little more than the cost of most C books alone. So don't be left behind. Order your copy today and find out why everyone is switching to C. TO ORDER CALL TOLL FREE: 1-800-523-9520 For technical support and for orders inside Texas please call (214) 783-6001 Or Contact one of our Distributors in Canada: Saraguay 1-800-387-1288 • France: Info/Tech 1-43-44-06-48 • Australia: Techflow 047-586924 • Switzerland: DMB Communication CH-0-523-31817 • England: Analytical 0703-262099 System Requirements: MSDOS/PCDOS 2.0 or higher; 256K Memory: 1 Disk Drive or CP/M 2.2 or higher (Z80); 55K Memory: 1 Disk Drive (2 recommended) (Ctrace not availablefor CP/M) 30 Day Money Back Guarantee Not Copy Protected Please check method of payment _Check _Money Order _MC/VISA Card * Expiration Date SPLIT-SCREEN EDITOR$19.95 Anothergreatcompanion to the MIX C compiler is our split-screen editor. It makes writing programs even faster and easier. With the MIX Editor, you can compile, link, and execute your program at the touch of a key. Compiling is fast because the MIX C compiler reads the program directly from memory. Correcting errors is easy because the editor automatically positions the cursor to the first error in the program. The editor is similar to Micropro's WordStar but with addi- tional programming features like split-screen, macros, and much more. Use it for all your programm- ing needs. ASM UTILITY SI 0.00 Our ASM utility is available if you want to link assembly language functions to your C programs. It works with Microsoft's MASM or M80 assemblers. Call assembly language functions just like C f unc- tions. Call C functions from assembly language. Lots of useful assembly language functions are included as examples. Save $29.95 on the Works includes Editor, C Compiler, Ctrace, & ASM Utility Product Price Total _Ctrace ($19.95) $ _C Compiler ($19.95) $ _ASM Utility ($10.00) $ _Split-Screen Editor. ($19.95) $ _The MIX C Works. ($39.90). $ (includes all of above) Subtotal $ Texas Residents Add 7. 25% Sales Tax $ Add Shipping Charges ... $ In USA: add $5 per order In Canada; add $10 per order Overseas: add $10 for editor add $20 for compiler add $30 for Works Total of Your Order $ Please give name of computer Please check operating system _ MSDOS/PCDOS _ CP/M Please check disk size _5V4" _3V2" __8" Please check disk format if CP/M _ SSSD _ SSDD _ DSDD Your Name , Street City State Zip Telephone ( ) - Country rax 1132 Commerce Drive Richardson. Tx. 75081 software (214) 783-6001 Ask about our volume discounts! _ Dealer Inquiries Welcome D SEPTEMBER 1987 • B Y T E 105 INTRODUCTION TO OS/2 ASM source file Cor other HLL source file * ,MASM 3ompiler ^ Relocatable object module file (.OBJ) DOScalls .LIB f Linker Protected- mode OS/2 program ► t * HLL run- time libraries > tjt API. LIB i ■< s BIND.E f XE Module definition file(.DEF) Dual-mode family app Figure 1: The procedure for creating protected-mode and dual-mode, or "family, applications for OS/2. CS:IP Points to the program's initial entry point SS:SP Points to the base of the program 's stack DS Points to the program 's automatic data segment (DGROUP) AX Contains the segment selector of the environment block BX Contains the offset of the command line at the end of the environment block Figure 2: Conditions at entry to a protected-mode OS/2 application. NAME HELLO PROTMODE DATA MOVABLE CODE MOVABLE PURE STACKSIZE 4096 j executable name ; protected mode only Figure 3: A module-definition file, HELLO, DEF, for the sample application file HELLO. EXE. Note that the stack size is declared here rather than in the HELLO. ASM file. If this were a C program, the heapsize would also be declared in this file. sembly of 80286 nonprivileged instruc- tions that are not present in the 8086 in- struction set. The handiest of these is the "push immediate" instruction, which saves time and space when you set up pa- rameters for an OS/2 API call. References to OS/2 API entry points are accomplished with EXTRN directives, assigning a far attribute to the external name. The assembler does not know any- thing about the nature of the procedure represented by the external name, but only that it has to generate an interseg- ment call to reach it and that the final ad- dress will be fixed up later. The declaration of DGROUP with the group directive is mandatory. This is a "magic" name that specifies the applica- tion's automatic data segment, which also contains the default stack and heap. The _TEXT and _DATA segment names are simply conventions used by the Microsoft high-level language compilers. Unlike MS-DOS, OS/2 automatically initializes the DS register to point to DGROUP before it transfers control to the program's entry point (the other conditions at entry to a protected-mode application are summa- rized in figure 2). This is also reflected in the Assume directive that follows the seg- ment declaration of _TEXT. The remainder of the HELLO. ASM file contains nothing unexpected. Two calls to OS/2 services are demonstrated: DOSWRITE performs a synchronous write to a file or a device, and DOSEXIT termi- nates the application with a return code. DOSWRITE is the counterpart to MS- DOS's INT 21h function 40h, and DOS- EXIT is comparable to MS-DOS's INT 21h function 4Ch. The last line in the source file is an end directive that defines the program's entry point in the usual manner. The file HELLO. DEF (see figure 3) is the module-definition file for the pro- gram. It demonstrates only a few of the possible commands and options that can be used in this file. The name directive states that this is an executable program rather than a dynamic-link library (whose .DEF file would contain library instead). Protmode signifies that the program will run in protected mode, while the lines beginning with code and data de- clare a few of the many possible segment attributes. The stack size for the pro- gram's initial thread of execution is de- fined by the stack directive; if this were a C program, an additional heapsize command would specify the initial size of the program's local heap. Building the Application To build the final executable program, you first translate the file HELLO. ASM 106 BYTE- SEPTEMBER 1987 INTRODUCTION TO OS/2 to the relocatable object module HELLO. OB J: [C: \ 0S2 \ SOURCE \ HELLO] MASM IBM Personal Computer MACRO Assembler Vers ion 3 • 00 (C) Copyright IBM Corp 1981, 1984, 1987 (C)Copyright Microsoft Corp 1981, 1983, 1984, 1985, 1987 Source filename [.ASM]: HELL0 Object filename [HELLO. OB J] : Source listing [NUL.LST] : ■ Cross-reference [NUL.CRF]: 5506 Bytes symbol space free Warning Errors Severe Errors The Microsoft segmented executable linker— the new linker supplied in the OS/2 software-development kit— com- bines the object module HELLO. OBJ with the module-definition file (HELLO. DEF), a library that contains special stub records for the OS/2 API dy- namic links (DOSC ALLS. LIB) and any applicable run-time libraries (none in this case) to create the protected-mode exe- cutable file HELLO.EXE: [C : \ 0S2 \ SOURCE \ HELLO] LINK Microsoft (R) Segmented- Executable Linker Version 5.00.21 Copyright (C) Microsoft Corp 1984, 1985, 1986. All rights reserved. Object Modules [.OBJ]: HELLO Run File [HELLO.EXE] : List File [NUL.MAP] : Libraries [.LIB]: D0SCALLS Definitions File [NUL.DEF] : HELLO You can also supply the assembler and linker with their parameters via the com- mand-line or response files, or automate the process by means of a make file and the MAKE. EXE utility (see figure 4). The output of the segmented execut- able linker is an .EXE file with the same structure as the .EXE files used in real- mode Windows— the so-called New . EXE continued Listing 1: The source file HELLO. ASM for the sample application HELLO.EXE. name hello ^ page 55,132 titl e HELLO - -- print Hello on terminal .286c HELLO EXE utility, demonstrating a simple assembly-language program for Microsoft OS/2. (C) 1986 Ray Duncan stdin equ ; handle for standard input stdout equ 1 ; handle for standard output stderr equ 2 ; handle for standard error extern DOSWRITErfar extern D0SEXIT:far DGR0UP group _DATA _DATA segment word public 'DATA' msg db 0dh,0ah, "Hello Protected-Mode World! ",0dh,0ah msg_len equ $-msg wlen dw ? ; receives number of bytes written _DATA ends _TEXT segment byte public 'CODE' assume cs:_TEXT,ds:DGR0UP print proc far push stdout ; file handle for standard output push ds ; long address of write buffer push offset DGR0UP: msg push msg_len ; size of write buffer push ds ; variable receives bytes written push offset DGR0UP: wlen call D0SWRITE ; transfer to OS/2 or ax, ax ; test returned status jnz error ; jump if write failed push 1 ; terminate all threads push ; return success code call D0SEXIT j exit program error: push 1 ; terminate all threads push 1 ; return error code call D0SEXIT ; exit program print endp _TEXT ends end print hello. obj : hello. asm masm hello, hello, hello; hello.exe : hello. obj hello. def hello link /map /line hello, , , doscalls, hello Figure 4: A make file for the sample application HELLO.EXE. SEPTEMBER 1987 -BYTE 107 INTRODUCTION TO OS/2 Ls. INTEGRATED SOFTWARE • Word Processing • Spreadsheet • Database • Graphics The Incredible JACK2® from Pecan at the Incredible Introductory Price of $49.95* (regularly $100) For the IBM PC and Compatibles Under DOS All it takes is one screen to do everything you've always wanted to do, at one time. Word processing. Spreadsheet. Data base management. Charting. JACK2 is the first integrated software product to do them all, simultaneously, on a single screen. All without ever changing disks or exiting programs. No need for windows. No need to close one file before you open another. And no need to learn a specialized computer language. Easy to use. Easy to learn. JACK2 is as easy to master as it is powerful to use. All commands are in English. All have the identical function throughout JACK2. Integrated, the four applications of JACK2 offer unlimited potential as a business tool. Individually, they offer everything an expert could ask for. Like multiple columns of word processing text on the same page. Spreadsheets that perform calculations in English, not with obscure formulas. No more complicated data base instructions. Even the charting function was designed for convenience. Change a single piece of information in any one of the four related functions and JACK2 will change all the others, simultaneously, instantly and interactively. Now you can sort a data base. Perform spreadsheet calculations. Edit word processing text. And illustrate your results with a bar chart. All at once. All on the same screen. Fast. Powerful. Because it was developed using UCSD Pascal ™ From PC Magazine: "lack2's word processor is better than many dedicated word processors, it is easy to use, highly visual and delightfully fast." ". .a well-conceived, well executed program." ". . . finishes a winner," From PC World: ". . Jackl ii a likely c hoice. Pecan Software Europe Oakfield Grove Clifton Bristol England 272-733-633 'Half price introductory offer is valid on orders received by Pecan up to 10/31/87. NOT COPY PROTECTED Mail your check or money order to: Pecan Software Systems, Inc. 1410 39th Street Brooklyn, New York 11218 (718) 851-3100 in TELEX NUMBER: 494-8910 CompuServe ID: 76703, 500 Please add 54.50 for shipping within the US. Foreign orders add $15.00 and make payment by bank draft payable in US dollars on a US bank. New York State residents add appropriate sales tax. UCSD Pascal is a trademark of the Regents of the University of California. Inquiry 221 Credit Card Orders Call Toll Free The UCSD Pascal Company 1-800-63-PECAN (NYS) 1-800-45-PECAN format. The file has an elaborate header that contains the names of imported dy- namic link routines and any attached re- sources and describes the locations, sizes, and attributes of the various seg- ments within the file. OS/2 uses the information in the head- er to allow for sharing of text segments between multiple instances of the same process, to discard and reload text (i.e., machine-code) segments and read-only data segments on demand, and to allocate the program's stack and heap, among other things. Making a Family App Since the HELLO.EXE file uses only the OS/2 functions DOSWRITE and DOSEXIT, both of which are members of the subset family API, it can be converted to a family app that runs in either the DOS 3.x compatibility box or in protected mode. To do this, you use the BIND. EXE utility and a special library named API.- LIB as follows: [C : \ 0S2 \ SOURCE \ HELLO] BIND HELLO .EXE API . LIB The output of this process is a new HELLO.EXE file that can run in either real or protected mode on an 80286 ma- chine. To truly generalize this program and obtain a HELLO.EXE file that could run on any 80x86-based machine under MS-DOS or OS/2, you would have to re- place all 80286-specific instructions in the source code with equivalent se- quences that would run on an 8086/88. For example, you would need to replace the instruction pushmsg_len with mov ax,msg_len push ax You can easily locate the 80286-specific instructions in a program by removing the .286c directive from the source file and reassembling it; each instruction that will not run on an 8086/88 processor will then be flagged as an error. Coming Attractions Next month, I will develop and discuss a more complex application that makes use of OS/2's sophisticated multitasking as well as its interprocess-communication services. ■ [Editor's note: This article is adapted from Ray Duncan 's book, Advanced OS/2, to be published by Microsoft Press in January 1988.] Inquiry 101 — ► azing Speed New Features Easier to Use ^ Complete dBASE III PLUS Replacement. ..And Much Don't change your programs, databases, screens, or reports! FoxBASE+ makes your dBASE applica- tions run like lightning without changing one line. And you can still use the best parts of dBASE— great interactive fea- tures like EDIT and BROWSE plus the full power of the "dot-prompt." Use FoxBASE+ in exactly the same, famil- iar, user-friendly way you use dBASE. 30+ Major Enhancements User-Defined Functions, screen save & restore, VALID clause in GET's, built-in "light-bar" menus, 10 new commands, 4 new functions, and much more. Faster Than Fast FoxBASE+ was already the fastest dBASE product in existence— but based on independent benchmarksf new FoxBASE* 2.00 averages 73% faster. That's an average 3.2 times faster than Clipper, 4.3 times faster than Quick- silver, and 5.9 times faster than dBASE ffl PLUS. 00380 Version Available NOW For ultimate speed now, FoxBASE+/386 runs about 50% faster than standard FoxBASE+ 2.00-over 10 times faster in some operations. It takes full advan- tage of protected mode and the giant memory capacity of the 80386 chip today . . .yet runs under standard MS-DOS. Easier To Use Don't worry about memory configura- tion or size. New FoxBASE+ 2.00 automatically optimizes memory usage as it runs. . .requires less memory yet runs faster. And because FoxBASE+ is completely interactive, you don't have to waste hours compiling and linking your programs. FoxBASE + is Economical Best of all, single-user MS-DOS FoxBASE+ 2.00 costs just $395 and FoxBASE+/386 2.00 just $595. Multi- user versions are also available? 5 * And with our Royalty-Free Runtime you can distribute your FoxBASE+ applications freely and never pay another dime. FoxBASE+ runs on the new IBM Personal System/ 2 and 3.5" diskettes are available at no additional cost. So call (419) 874-0162 and ask for the details about FoxBASE+ 2.00 and our money-back guarantee. After all. . . Nothing Runs Like a Fox. FoxBASE, FoxBASE +, and FoxBASE +/386 are trademarks of Fox Software. dBASE III PLUS is a trademark of AshtonTate. Clipper is a trademark of Nantucket. Quicksilver is a trademark of WordTech Systems. Personal System/2 is a trademark of IBM, * Using the suite of 48 comprehensive benchmarks published in Data Based Advisor, March 1987. ** Multi-User FoxBASE+ 2.00 for MS-DOS costs $595. Multi-User XENIX version available at $795. Fox Software 27493 Holiday Lane, Perrysburg, Ohio 43551 (419) 874-0162 Telex: 6503040827 Richard Grehan, Technical Editor A Closer Look Refinement of our benchmarks reveals some surprises about the relative speeds of 80386- and 68020-based machines. YTE started benchmark- ing the relative speeds of the new crop of 80386- and 68020-based ma- chines within days of get- ting our hands on them. We presented the preliminary— and controversial— results in the July issue: The 80386-based ma- chines were faster. We presented addi- tional tests in the August issue, with much the same results. However, our preliminary benchmark tests weren't ideal (some, in fact, contained outright errors, which I'll de- tail later). It's no small task to produce reliable benchmarks for systems with new architectures, especially when fun- damental software-development tools (such as compilers) are few or in very early release. So for this month's New Generation segment, I corrected problems in the original benchmarks and ran the im- proved code on the following lineup of hardware: the Mac SE, the Mac SE with General Computer's HyperCharger and Levco's Prodigy, the Mac II, the Arete 1100 supermicro, the Definicon DSI- 780, the IBM PC AT, the IBM PS/2 Model 80, the Kaypro 386, the ALR 386/2, and the Compaq 386. You will find statistics for most of these entrants in our July and August New Generation articles. Levco's Prodigy for the Mac SE is a 68020 with a 68881 math coprocessor, both of which run at 16 MHz. It includes 1 megabyte of RAM. The Definicon DSI- 780 is a coprocessor board for the IBM PC XT or AT (we plugged our DSI-780 into an 8-MHz AT) with a 16.67-MHz 68020 and 68881 and 4 megabytes of RAM. Both the Kaypro 386 and the ALR 386/2 use a 16-MHz 80386, but the ALR can accept a 10-MHz 80287 while the Kaypro (for reasons described later) could not use a math coprocessor. The July issue also contains source code listings for the benchmarks. List- ings are also available on BIX and BYTE- net, and on disk. (Order the July 1987 listings disk for the original benchmarks and the September disk for the corrected versions. See the card following page 256. For BYTEnet listings, see page 4.) Sort and Float Our Quicksort benchmark (SORT.C) was unreliable; it produced a list that was only "sort of" sorted. The cure was to change the outer for loop in the quick ( ) function to read: for (i=lo, j=hi, pivot=base[hi] ; I've simply changed the initialization portion of j =hi-l to j =hi. Recall that the Quicksort algorithm operates by dividing the array being sorted into pairs of parti- tions such that one partition contains all elements greater than or equal to a given number (the "pivot"), and the other con- tains all elements less than or equal to the pivot. These partition pairs are again sub- divided, and the process continues until the number of elements in each partition is 1. This is where the old SORT.C bombed; since j had been initialized to hi-1, the termination expression i ) , the program runs faster than if there was no coprocessor. Clearly, the emulation library must be carrying coprocessor code with it, and the program brings this code into action if it finds an FPU. (Actually, this technique makes sense. It allows you to create code that runs on systems with or without FPUs; and if a system has an FPU, it gets a boost.) This means that you have to be careful about setting the compiler flag and the N087 variable when benchmark- ing. All the figures you see in table lb for 80386 machines are from machines with an FPU (unless specified otherwise). • To run the 80386 benchmarks, I exe- cuted the programs using Phar Lap's 110 BYTE- SEPTEMBER 1987 THE NEW GENERATION RUN386 protected-mode environment (this is the only way you can run pro- grams created by the 80386 version of the HighC compiler— see Matt Trask's re- view of 386|ASM/LINK Lie in the Au- gust BYTE). The latest version of RUN386 we had was Lie, and it simply locked up the Model 80. (The problem seemed to occur when RUN386 tried to load a benchmark program: The system would freeze and the hard disk access light would remain on.) When I reverted to an earlier version (1. 1), it worked. • The Kaypro 386 machine I tested had a socket for an 80387, but the machine re- fused to acknowledge an FPU when I plugged one in. The Kaypro uses Intel's 80386 motherboard, and there have been reports that Intel's board is incompatible with an 80387. Looks like there's some substance to those reports. • I carefully followed Levco's instruction manual for installing the Prodigy board's accompanying software, but the installa- tion disk's contents did not match what the manual led me to expect; specifically, a control desk-accessory file was missing from the floppy . Also, when I tried to run the RAM disk initialization (again, as outlined in the manual) a bomb box ap- peared. I finally discovered how to set up the Levco software by reading the "Get Info" information associated with the files on the floppy. Results First of all, it's easy to see that if your ap- plication is floating-point-intensive, then no matter which processor you choose, for heaven's sake, get a math copro- cessor. The cost of coprocessors is still a bit high (often as much as or more than the CPUs that run them— as of this writ- ing, you'll pay around $300 for an 8-MHz 80287 and $200 for a 12-MHz 68881). But if processing time is money, the copro- cessor could easily pay for itself. In the 68000/68020 arena, it's Defini- con's DSI-780 that appears to win out. I say "appears" because the C compiler used with the Definicon board (Silicon Valley Software's C compiler) is neces- sarily different from the one I used on the Macintoshes (Consulair) and the Arete (its C compiler comes with Unix). There- fore, it is difficult to tell how much of the Definicon 's advantage to attribute to the compiler. (Here's an example of a similar case: I also compiled the benchmarks using Lightspeed C version 2.01 on the Mac SE with Prodigy installed. Light- speed C turned in figures that were 10 percent to 15 percent faster than Consu- lair's 68020 compiler— except for the floating-point benchmarks, which makes sense once you discover that Lightspeed C does not recognize the 68881.) Table la: Benchmark figures for 68020 machines. All Macintosh benchmarks were generated using Consulair 's C compiler version 5.04; I used the 68020 flavor of this compiler for t ill Macs except the SE. The Arete came with its own compili ?r. On the DSI-780, 1 used Silicon Valley Software 's C compiler version 2. 0. MacSE MacSE with with Test Mac SE HyperCharger Prodigy Mac II Arete DSI-780 Dhrystone 574 2176 2380 2106 2710 3438 Fibonacci 263.54 71.60 71.45 83.72 69.86 47.89 Float 230.23 4.06 2.61 2.63 2.90 2.24 Savage 1921.00 8.86 5.22 5.42 24.70 5.65 Sieve 64.56 14.92 14.83 16.72 12.40 4.89 Sort 103.82 20.55 20.41 23.20 13.20 6.74 Table lb: Benchmark figures for 80386 machines. I used MetaWare 's HighC 386 compiler version 1.3 on all machines except the AT, on which simply used the same compiler with no 80386 support. Phar Lap 's 386\LINK was the linker (again on all machines except the AT, for which I used Microsoft 's LINK version 3. 51). I used RUN 386 version Lie for the 80386 machines (as required by HighC) except for the Model 80— the reason. ■see text for 1 BMPCAT 8-MHz Model 80 Kaypro ALR 386/2 Compaq 16-MHz 386 10-MHz 386 8-MHz Compaq 38616-MHz Test 80287 80387 No FPU 80287 80287 80387 Dhrystone 1590 3626 3271 3283 3748 3748 Fibonacci 126.22 57.26 64.65 64.66 53.12 53.11 Float 10.98 1.62 40.42 5.30 6.80 1.43 Savage 37.30 9.49 355.29 17.97 21.53 8.95 Sieve 24.60 6.45 6.81 7.41 5.99 5.98 Sort 43.17 7.74 8.35 8.55 5.58 5.58 If money's no object and you're out for raw power, a Compaq 386 with an 80387 installed is your best bet in 80386-land. The figures for the 80386 systems are probably more meaningful than those for the 680x0 machines, since I was able to run the same .EXE files on all the 80386 systems. (Of course, I couldn't do this for the AT; even so, at least the compiler on the AT was from the same company as the 80386 compiler— MetaWare.) Overall, it appears that— and I know I'll catch a lot of flak for this— the 80386 machines outperform the 68020 ma- chines. Of course, the reasons for this could well go beyond the possibility that one processor is simply faster than the other; I'm using different C compilers, the hardware is different, the software I've used represents only a tiny subset of all the applications users can expect to run, and so on. But let's look at some facts: The C compilers I used were the only shipping 68020 and 80386 com- pilers available at the time I ran these benchmarks (Manx's Aztec C 68020 compiler might be shipping by the time this issue reaches press, as might Com- puter Innovations' C864- 80386 com- piler—we'll include these in future New Generation stories), so, for now, these are the compilers available to you for your development work. Also, it makes no sense to benchmark the processors inde- pendently of the systems that incorporate them: You don't buy just a processor, you buy a complete system— and the sys- tems I tested are the same ones you can buy. So what we're looking at are the hardware and software configurations that the world has made available to you so far. ■ [Editor's Note: The table in this article is a condensation of a vast array of bench- mark figures that were compiled. For the complete set of figures— especially if you 're interested in floating-point perfor- mance without an FPU— see the super- micro, benchmark topic on BIX. ] SEPTEMBER 1987 -BYTE 111 mSm CTtBll jJUJg BSWS] Wm ifffBiBSI nn HEWLETT PACKARO '•: i I 'a ' ; . NCR w^ jjm Macintosh Plus Y+f Personal Computers PC8 / '' M j ■ L j^^H comPAal wa§Mim@38B The makers of even the most popular PCs know it's insane to go to market without a reliable backup. So they each sat through hundreds of blank and scrambled screens to see which backup system backed up best. In the end, they each chose 3M data cartridge tape technology. Why? We've been covering computer and human errors almost longer than com- puters and humans have erred together. < Not only did we patent data cartridge technology, we've had 16 years to make it better. Through every technological breakthrough, we've proven to be the best way to back up data. Just ask Apple! And NCR! And HE® And IBM! And COMPAQ! Call (800) 423-3280 for a list of data cartridge drive manufacturers. Trademarks/owner; Apple/Apple Computer Inc.; NCR/National Cash Register; HlYHcwIctt-Raekanl; IBM/International Business Machines Corp.: COMPAQ/COMPAQ Computer Corp. ©3M 1987 Inquiry 328 12 MHz SPEED! For your PC, XT, AT or compatible. ^HE-286 i Fastest PC Accelerator! FastCACHE-286 is the fastest half card accelerator ever built It is also the first to have an on-board 8088 socket built-in high-speed 80287 clock, and software controlled slow and fast 80286 modes. FastCACHE-286 acceler- ates the IBM PC, XT and compatibles. It can be purchased in either a 9 or 1 2 MHz version starting at $399 (9 MHz). The card combines the best features of our 286TurboCACHE™ (PC Magazine "Editor's Choice") with the ability to run asynchronously. This frees it from the 7.2 MHz frequency barrier of synchronous cache cards and enables the board to run on dual-speed motherboards and PCs such as the Zenith 1 58 or the Leading Edge Model D! The board includes MicroWay's DCache software and is compatible with all PC software and EMS, EEMS, and EGA SI Sieve MS C (sec) Shuttle Regen (sec) Price PC 1.0 5.88 100(12)* - 9 MHz FastCACHE-286 7.1 1.32 28 (7)* $399 12 MHz FastCACHE-286 10.3 .93 22 (6)* $599 *Times in parentheses are with an 8087 or 80287. 287TurboPLUS™ Speeds Up your 80287 and your 80286! - w * 287TurboPLUS adds a new feature to PC Magazine Editor's Choice - 287Turbo. 287Turbo increases 80287 speed from the 4 MHz used by IBM to 1 or 1 2 MHz. It has become an industry standard used in the AT, clones and the 386 Deskpro. 287TurboPLUS lets a user control the 80286 clock speed of the AT motherboard. Typical ATs will run up to 9 or 1 MHz. When used with 1 00 nsec DRAM and an optional high speed 80286 it is possible to get 1 1 MHz speed from an AT. 287TurboPLUS includes a 1 or 1 2 MHz tested 80287, 80287 diagnostic software and easily installs in your 80287 socket MICROWAY . . . Respected throughout the industry for high quality engineering, service and technical support. Dealer, VAR, university and corporate inquiries are welcome. Micro Inquiry 184 The World Leader in 8087 Support P.O. Box 79, Kingston, Mass. 02364 USA (617) 746-7341 32 High St., Kingston-Upon-Thames, England 01-541-5466 Fn.slCACHE-286, LWTurtxi. 287Turtx3PLUH and 28GTurtJoCAC arks of MicroWay, Inc. MicroWay is a registered trademark of Microway. Inc. CIARCIA'S CIRCUIT CELLAR Steve Ciarcia Part 1 : AT Basics Build the Circuit Cellar AT Computer New chip technology lets Steve put an AT on a card The personal computer in- dustry can best be de- scribed as competitive and fast-moving. Hundreds of manufacturers around the world are turning out IBM PC, XT, and AT clones, as well as board products for those who wish to mix and match to build a desktop computer. Heavy competition forces these manufac- turers to continually bring out higher performing products that are less expen- sive than their competitors' products. Talk about a dog-eat-dog business! Ordinarily, given such market volatili- ty, I would not stick my neck into the "clone wars," but I just couldn't pass up the opportunity to show some new tech- nology that would one-up all these com- panies. The two-part project starting this month uses a set of four high-integration ZyMOS ICs that contain most of the pe- ripheral chips needed to build an IBM PC AT. Using this advanced technology, I will present a faster, smaller, and more efficient 100 percent compatible AT CPU board called the CCAT (Circuit Cellar AT). With the addition of Award Soft- ware's AT BIOS, the CCAT and your imagination can configure an unbeatable (should I say uncloneable?) 80286 com- puter system. Technology to the Rescue The ZyMOS POACH (which stands for PC on a chip) set is really an ASIC (appli- cation-specific IC) set that was originally Steve Ciarcia (pronounced " see- ARE - see-ah") is an electronics engineer and computer consultant with experience in process control, digital design, nuclear instrumentation, and product develop- ment. The author of several books on electronics, he can be reached at P. O. Box 582, Glastonbury, CT 06033. Copyright © 1987 Steven A. Ciarcia. All rights reserved. developed to show just how much could be integrated on one 230-pin chip (it contained 22,000 logic gates). Eventual- ly, it was divided into more cost-effective 84-pin devices (see photo 1 ) . ZyMOS uses standard-cell CHMOS (complementary high-speed metal-oxide semiconductor) technology for its ASIC products. Some methods for developing ASICs are gate arrays, programmable logic arrays, and standard-cell technol- ogy, to name a few. Standard-cell tech- nology produces chips that are highly in- tegrated (they can squeeze 25,000 logic gates on a single device) but also very ef- ficient in their use of silicon area. Gate arrays are essentially a mass of predefined gates that are interconnected by the designer, but that most often leave a lot of unconnected gates and waste sili- con. The standard-cell approach uses just the logic elements the designer requires. The result is higher densities of utilized gates requiring smaller die size. Less sili- con means lower cost per device. Standard cells are predefined logic units that correspond to commercially available devices like inverters, AND gates, flip-flops, and more complex parts (like the 82xxx peripheral chips used in the IBM PC AT). A chip designer developing an IC first lays out a schematic, just as for any proj- ect. Such a schematic typically contains off-the-shelf components like 8254 counter-timers, 7474 flip-flops, 7408 AND gates, and 7432 OR gates. Next, the designer enters this schematic into a computer using specialized graphics sof t- continued Photo 1: This section of the Circuit Cellar AT circuit board shows the POACH (PC on a chip) integrated circuits. SEPTEMBER 1987 -BYTE 115 CIRCUIT CELLAR ware that generates a file called a net list (Circuit Cellar projects are currently done on Schema). The net list defines which logic ele- ments from a library of standard cells are needed and how those cells are intercon- nected. The net list is input to a logic sim- ulator, which the designer uses to debug the design, and then fed to a program called a router. The router actually lays out the final chip, transistor by transistor. Sounds easy! It's not— it's just easier and faster with the computerized tools. Even so, it took seven months to develop the four-chip POACH set used in the CCAT. Understanding the AT's Design Before we look closely at the POACH chips and the CCAT, we should get some understanding of the IBM PC AT mother- board's design so we can better under- stand what it is that we are trying to im- prove. The AT is an Intel 80286 16-bit microprocessor design that can optional- ly support the 80287 math coprocessor for fast floating-point operations. It also uses an Intel 8742 microcontroller as a keyboard processor. In addition to the processors, the AT uses 10 VLSI peripherals that work in XD7 ■ ■ ■ ... XDO \ w\rrr r X3 X4 PROCCLK SYSCLK PCLK -PCLK SO SI READY OWS PI 6 REF RDY CPU HLDA M/10 ALE -IOR -IOW -MEMW -INTA -DT/R LSDEN MSDEN CNTLOFF XBHE RC Al RES CPU +RESET - NPCS BUSY BUSY286 -CS287 -ERROR +RES 287 X A3 82284 CLOCK GENERATOR/ READY INTERFACE AND LOGIC 8 COMMAND DELAY LOGIC > 82288 BUS CONTROLLER ■ g= 3 - 5 s BUS CONTROL LOGIC ■ v 2 ^ CPU SHUTDOWN LOGIC 4 ■ — COPROCESSOR INTERFACE LOGIC ■ 7 I CO ^-^ ~\ 8259 "^ PROGRAMMABLE INTERRUPT CONTROLLER 8259 PROGRAMMABLE INTERRUPT CONTROLLER i INTR2CS OQ 6818 REAL-TIME CLOCK i CCRR/W i CCROSC i CCRRST I BATT ! POWERGOOD ADDR/DATA BUS CONTROL AND MISCELLANEOUS LOGIC t A0 I SA0_ i SM/10 l A 20 i A20GATE i NA20 i AEN1 I AEN2 i +FYS16 I DIR245 i GATE245 i 10 CS 16 Mill VSS3 V S S2 Vssi V C C2 VcCl Figure 1: The block diagram of the internals of POACH]. 116 BYTE- SEPTEMBER 1987 CIRCUIT CELLAR conjunction with the 80286 to perform functions like bus timing, interrupt con- trol, and direct-memory-access opera- tions. These devices integrate much nec- essary logic that a designer would ordinarily have to build up from primitive logic functions to get a design to perform properly. They are the building blocks that, with integrated microprocessors, have shrunk the computer's physical size and made prices affordable. The peripherals in the AT include two 8259A programmable interrupt control- lers, an 82284 clock generator and ready interface, an 82288 bus controller, a 6818 clock/calendar/RAM, two 8237 A DMA controllers, a 74LS612 memory mapper, an 8284 clock generator, and an 8254 programmable interval timer. The interrupt controllers sort out and prioritize interrupt requests to the micro- processor. Each interrupt controller can handle up to eight interrupts, but Con- troller^ (CTLR2) interrupts are directed through CTLR1, which uses up one of CTLRl's interrupt lines. Interrupt re- quests (IRQ) are mapped as shown in table 1. The 82288 and 82284 perform general system clocking, some decoding of 80286 control signals, and bus-control functions in the AT. The 6818 contains the clock/calendar and 64 bytes of CMOS RAM. The clock function uses 14 bytes of the RAM to hold time and date data. The rest of the RAM holds the system's configuration information, like the type of floppy and hard disk drives and low- and high-mem- ory bytes. The 6818 is kept alive when the machine is powered down with bat- tery power and a continually running clock frequency. The two 8237 As provide seven DMA channels. DMA CTLR1 supports 8-bit data transfers between 8-bit I/O adapters and 8- or 16-bit system memory. Data transfers can occur throughout the 16- megabyte address space in 64K-byte blocks. DMA CTLR2 supports 16-bit data transfers between 1 6-bit I/O adapters and 16-bit memory and can perform data transfers in 128K-byte blocks throughout the full 16-megabyte address range. Since the DMA controllers generate only 16-bit addresses, the system uses the LS612 memory mapper to extend the ad- dressing to 1 6 megabytes. A 14. 3 1 8-megahertz crystal drives the 8284 clock generator. The 14.318-MHz clock is routed directly to the expansion slots. The 8254 programmable interval timer provides 16-bit counters on three inde- pendent channels. Channel produces the system timer signal (18 ticks per sec- ond), channel 1 generates the dynamic RAM-refresh request, and the system Table 1: Request mapping for the interrupt controllers on the CCAT. CTLR1 CTLR2 Timer output IRQO IRQ1 Keyboard (output buffer full) IRQ2 Interrupt from CTLR2 IRQ8 Clock/calendar/RAM IRQ9 Software redirected to INT OAH (IRQ2) IRQ10 Reserved IRQ11 Reserved IRQ12 Reserved IRQ13 Coprocessor IRQ14 Fixed disk controller IRQ15 Reserved IRQ3 Serial port 2 IRQ4 Serial port 1 IRQ5 Parallel port 2 IRQ6 Disk controller IRQ7 Parallel port 1 Jol I I I I I I I I UJJJoUJJJJ r->\r~ i m oo r^ he m woo <^ ~l tot co co coi col r->lr^fr^lrU r- f |>-OC(/)!^C*]-wu , l(^>rv0iO-- , * , J*»inOh- O O N N x \w o o » o,o a o o o «-«' -»■* c* «-»•>* z in O 1/) V) u S biraNccitctcirOoooo ^ o o *« o X loir z w- oc « > 12 UJ|UJ SM/IO ' + ° CC ° £ u XOO 9 XDl 74 13 SAO n 14_ Al XD2 _72 15_ AO XD3 22 16 NA20 XD4 70 17_ A20 X05 69 18 SO XD6 68 19 SI X07 _67 20 M/IO -MEMR 66 21 65 READY CPU HLDA 22 INTR POACH 1 REFRDY 64 23 + RES CPU AEN1 63 24 VCCI AEN2 _62 25 Vssi CCRR/W 61 26 60 X3 2?' 28 29 X4 IRQO 59 58 _57 PROCCLK INTR1CS BUSY286 INTR2CS 30 XA3 -INTA J56 31 XAO +RESET 55 32 BATT SYSCLK _54 "* £ ™ z ZO^,* W < UJ « 2 W U K U J «J|H ^ >" in mi ~ *» UJ X O £ i- o , s. 3 *- O -i w «> at « «(Lo iSitc _ a o 2 o _j o ■ in- iu.+o>+| wltnliolr-l ■ DRQ3 J* DACKO _T^" DACK 1 Tp^ DACK2 ^* DACK3 >* DRQ5 READ/WRITE LOGIC AND PERIPHERAL SELECT DECODE ►* 8237 DMA CONTROLLER 1 8 ) ( — ^ -INTR2CS ■ 11 -RDXDB ■ ( 7 ^^^ LATCHES * -MASTER ■ — MISCELLANEOUS LOGIC • ( 8 -AEN1 » TC ■ < ■-> 8237 DMA CONTROLLER 3 ^Nb DRQ7 yM DACK5 fa 2 k- - \ *■ 11 V f ■ DACK6 3 ^« DACK7 8254 COUNTER/TIMER { 8 » LATCHES 5 (fi Z) m _i o CE »- 2 O O ' ~ ;> v > CO \ (fi m < i- < \ CO 3 CD (fi (fi UJ ce Q Q < * ( 8 8284 CLOCK GENERATION a LOGIC DRAM REFRESH COUNTER/LATCH \ 8 X2 ■— 2 2 ^ 74612 MEMORY MAPPER REFRESH a DMA ARBITRATION a TIMING A18 ^ A19 ■ ; * "CPU HRQ i 1 1 ■ -REFRESH A20 ■— A21 «^ A 22 vf* ^ { 8 8 ^ -s ■ REFRDY A23 wT 1 Vcci ■ -XMEMR ■ I0CHRDY lit VSS2 Vssi V C C2 PARITY CHECK LOGIC 5 ■ -IOCHCK J Figure 3: The block diagram ofPOACH2. 118 BYTE- SEPTEMBER 1987 CIRCUIT CELLAR tem address bus is a latched 20-bit (SAO through SA19) version of the 80286 local address bus. The system data bus main- tains the low-byte and high-byte refer- ence. The AT performs 16-bit transfers for memory and expansion data, but it does 8-bit data transfers for the X bus (which the AT motherboard uses to com- municate with the 80286 peripheral chips). The X address bus is a 17-bit bus that you can think of as private to the mother- board. The system uses this bus to ad- dress ROM (where the BIOS is kept) and motherboard I/O, as well as to generate addresses for DMA- and RAM-refresh operations. It is separated from the sys- tem address bus by LS245s. The X data bus interfaces to functions like DMA controllers, interrupt control- lers, the keyboard processor, and the clock/calendar/RAM hardware. Al- though the system uses the X address bus to select ROM data, this data is fed to the processor via the memory data bus, not the X data bus. The memory address and data buses apply to DRAM on the motherboard. The 9 address lines (MAO through MA8) of the memory address bus are a multi- plexed version of 18 system-address lines. The memory data bus is a 16-bit motherboard bus that interfaces both DRAMandROM. The L address bus, hangs like an ap- pendage off the local address bus. It is an unlatched 7-bit (LA 17 through LA23) address that is always available except when an I/O processor gains control of the system. The L address bus gives the AT a 16-megabyte address range. Complicated? You bet! We've just added 83 ICs for buffering, additional logic, and glue to tie the system together. This brings the total IC count for a 512K- byte system to 126 packages. Now you can see why the motherboard is approxi- mately 14 inches square! Microcomputers did not always have big motherboards. Originally, when they were much simpler, they used passive backplanes, with the processor board plugged into one of the backplane slots. Chip count and board size have an obvi- ous effect on the cost of the system. That's where the new high-integration chips play such an important role. The POACH Set The engineers at ZyMOS partitioned the motherboard's logic into a set of 84-pin ICs. Two chips, POACH 1 and POACH2, contain all the 82xxx-series peripherals and also some key logic. POACH 1 is pri- marily responsible for system clocking and bus control (see figures 1 and 2). It contains the 8259A interrupt controllers, the 82284 clock generator and ready in- terface, the 82288 bus controller, and the 6818 clock/calendar/RAM. All the buffers and latches in the system are con- trolled by POACH 1 . POACH2, shown in figure 3, controls the X address bus for DMA and refresh operations. It contains the two DMAs, the 74LS612 memory mapper, refresh logic, the 8284 clock generator, and the 8254 programmable interval timer. Fig- ure 4 shows POACH2's pin-out diagram. The buffers, latches, and remaining logic are in POACH3, the buffer chip. (I haven't provided a block diagram for POACH3 since it's simply a mass of un- interesting discrete logic.) POACH3 is mode-programmable, and we've used two in the CCAT, one for address buffer- ing and the other for data buffering. I'll refer to the device set for address-buffer- ing mode as POACH3-A and the device set for a data buffer as POACH3-D. The AT POACH set brings the total IC count for a 512K-byte AT-compatible motherboard equivalent down to 23 IC packages and two SIMMs (single in-line memory modules). Ultimately, our design is intended to be totally IBM compatible, with certain key advantages. Using the POACH chips, we can squeeze the whole motherboard into an AT expansion board with room to spare and build a system on a passive backplane. Since all the usual power- hungry ICs are now incorporated in the POACH devices (the four-chip set needs The POACH set brings the total chip count fora512K-byteAT compatible down to 23 IC packages and two SIMMs. less than 100 milliamperes), we will also be able to construct a low-power AT. Next Month I'll complete this project with a full sche- matic and a detailed description of the Circuit Cellar AT computer. ■ The CCAT was a joint venture, and I'd like to note the contributions and help from ZyMOS, Micromint Inc. , Award Software Inc. , and the Circuit Cellar re- search staff. In addition, I'd like to per- sonally thank Bob Andrews, JeffBachio- chi, and Jeff Remmers for their efforts. Editor's Note: Steve often refers to previous Circuit Cellar articles. Most of these past arti- cles are available in book form from BYTE Books, McGraw-Hill Book Company, P.O. Box 400, Hightstown, N J 08250. Ciarcia 's Circuit Cellar, Volume I covers continued •-•lol 1 i i 1 1 ^1 ml t^l ^1 O O^l ool r-v|*x)l in! ^l^|moo|r^u5J^lT*|roc%jj^loo|ro|ro|co|oolr^r^|r-|r-.f^ / ^* X XDO XOl XD2 XD3 XD4 XD5 XD6 XD7 -MEMR HLDA REFRDY -AENl -AEN2 -CCRR/W -CS287 IRQO -INTRICS -INTR2CS -INTA +RESET SYSCLK l 1 Q. + r\ipn*atnu>r-«co =lfi11=lfffi=ffi?lffiffi Figure 4: POACH2 's pin-out diagnn. SEPTEMBER 1987 -BYTE 119 Inquiry 83 Attention all FX80, FXIOO, JX, RX, &MX owners: You already own half of si CIRCUIT CELLAR Now for $79.95 y ou can own the rest. You sec, today s new dot matrix printers offer a lot more. Like an NLQ mode that makes their letters print almost as sharp as a daisy wheel. And mode switch- ing at the touch of a button in over 160 styles. But ridw; a Dots-Perfect upgrade kit will make your printer work like the new models in min- utes— at a fraction of their cost. And FX, JX and MX models will print the IBM character set, too. So, call now and use your Visa, MasterCard, or AmerEx. Don't replace your printer, upgrade it! 1-800-368-7737 (Anywhere in the United States or Canada) gSSL (Dots-Perfect) IDresselhaus 8560 Vineyard Ave., Ste. 405, Rancho Cucamonga, CA 91730 An upgrade kit for EPSON FX, JX, RX, & MX printers GraFtra* 111 trademark of Epion America. Inc. Epson Li b registered trademark of Epson America. Inc. What is a Best Western? The right place at the right price Make reservations at any Best Western, see your travel agent, or call toll-free 1-800-528-1234 INDEPENDENT WORLDWIDE LODGING "World's largest chain of independently owned and operated hotels, motor inns and resorts" articles in BYTE from September 1977 through November 1978. Volume II covers December 1978 through June 1980. Volume ///covers July 1980 through December 1981. Volume IV covers January 1982 through June 1983. Volume ^covers July 1983 through De- cember 1984. The following items are available from Micromint Inc. 4 Park St. Vernon, CT 06066 (800) 635-3355 (orders) (203) 871-6170 (information) Telex: 643331 1 . Assembled and tested CCAT 80286 PC AT- compatible CPU board with 512K bytes of RAM, Award BIOS in ROM, and user's man- ual. Available in 8 MHz or 10 MHz. 8 MHz, order 0EM286LP/8 $775 10 MHz, order OEM286LP/ 10 $825 2. Assembled eight-slot AT-style passive backplane with all connectors. order MBAT/8 $115 The following items are available from CCI P.O. Box 428 Tolland, CT 06084 (203)875-2751 1 . CCAT/POACH developer's kit. Contains six-layer CCAT PC board, four POACH chips, Award BIOS ROMs, preprogrammed 8742 keyboard controller, PROM, and user's manual. (This developer's kit is scheduled to be available through January 15, 1988.) order CCAT/DEV $475 2. Bare, unpopulated AT-style passive back- plane PC board. order MBAT/0 $35 POACH chips and BIOS ROMs are available. Call for price and delivery information. For either source above, all payments should be made in U.S. dollars by check, money order, MasterCard, Visa, or American Ex- press. Surface delivery (U.S. and Canada only) : add $5 for U . S . , $8 for Canada. For de- livery to Europe via U.S. airmail, add $14. Three-day air freight delivery: add $10 for U.S. (UPS Blue), $25 for Canada (Purolator overnight), $45 for Europe (Federal Express), or $60 for Asia and elsewhere in the world (Federal Express). There is an on-line Circuit Cellar bulletin board system that supports past and present projects. You are invited to call and exchange ideas and comments with other Circuit Cellar supporters. The 300/1200/2400-bps BBS is on-line 24 hours a day at (203) 871-1988. To be included on the Circuit Cellar mail- ing list and receive periodic project up- dates and support materials, please circle 100 on the Reader Service inquiry card at the back of the magazine. 120 BYTE* SEPTEMBER 1987 Our thanks to NASA for supplying this computer enhanced ultraviolet photo taken by Skylab IV of a solar prominence reaching out 350,000 miles above the sun's surface Genius Begins With A Great Idea ... But The Idea Is Just The Beginning What follows is the time consuming task of giving form and function to the idea. That'swhy we concentrate on building intoour soft- ware development systems functions and features that help you develop your software ideas in less time and with less effort. We've started 1987 by releasing new versions of our MS-DOS, Macintosh, Amiga, ROM, and Apple // C development systems. Each system is packed with new features, impressive performance, and a little bit more genius. Aztec C86 4.1 'New PC/MS-DOS • CP/M-86 • ROM r Superior performance, a powerful new array of fea- tures and utilities, and pricing that is unmatched make the new Aztec C86 the first choice of serious software developers. Aztec C86-p Professional System $199 • optimized C with near, far, huge, small, and large memory + Inline assembler + Inline 8087/80287 + ANSI support + Fast Float (32 bit) + optimization options • Manx Aztec 8086/80x86 macro assembler • Aztec overlay linker (large/small model) • source level debugger • object librarian • 3.x file sharing & locking • comprehensive libraries of UNIX, DOS, Screen.Graphics, and special run time routines. Aztec C86-d Developer System $299 • includes all of Aztec C86-p • Unix utilities make, diff, grep • vi editor • 6 + memory models • Profiler. Aztec C86-C Commercial System $499 • includes all of Aztec C86-d • Source for library rou- tines • ROM Support • CP/M-86 support • One year of updates. Aztec C86 Third Party Software A large array of support software is available for Aztec C86. Call or write for information. The following is a list of the most requested products: • Essential Graphics • C Utility Library • Curses • Greenleaf Communica- tion, General, and Data Window • Halo • Panel + • PC-lint • PforCe • Pre-C • Windows for C • Windows for Data • C terp • db Vista • db-Query • Phact • Plink-86 Plus • c-tree • r-tree • Pmate. CP/M • TRS-80 • 8080/Z80 ROM C compiler, 8080/Z80 assembler, linker, librarian, UNIX libraries, and specialized utilities. Aztec C ll-c (CP/M-80 & ROM) $349 Aztec Cll-d (CP/M-80) $199 Aztec C80 (TRS-80 3&4) $199 Aztec C68k/Am 3.4 New Amiga Release Amiga user groups across the USA voted Aztec C68k/Am release 3.3 the best Software Development System for the Amiga. Release 3.4 is more impres- sive. Aztec C68k/Am-p Professional $199 A price/feature/performance miracle. System in- cludes: optimized C • 68000/680x0 assembler • 68881 support • overlay linker • UNIX and Amiga libraries • examples. Aztec C68k/Am-d Developer .$299 The best of Manx, Amiga, and UNIX. System in- cludes: all of Aztec C68k/Am-p • the Unix utilities make, diff, grep and vi. Aztec C68k/Am-c Commercial $499 Aztec C68k/Am-d plus source for the libraries and one year of updates. Aztec C68k/Mac Macintosh • New Release 3.4 quality, reliability, and solid professional features, Aztec C for the Macintosh is unbeatable. This new release includes features and functions not found in any other Macintosh C development system. Aztec C68k/Mac-p Professional . . .$199 • MPW source level compatibility • TM0N, MACSBUG, and MACN0SY support • powerful symbolic debug- ger • optimized C • 68000/680x0 assembler • 68881, IEEE, and SANE support • overlay linker • UNIX and Macintosh libraries • mouse editor • examples. Aztec C68k/Mac-d Developer $299 The best of Manx, Macintosh, and UNIX. System in- cludes: all of Aztec C68k-p • ProFiler • the UNIX utilities make, diff, grep • vi editor. Aztec C68k/Mac-c Commercial $499 Aztec C68k/Am-d plus source for the libraries and one year of updates. Aztec C65 New ProDOS Release Aztec C65 is the only commercial quality C com- piler for the Apple II. Aztec C65 includes C compiler, 6502/65C02 assembler, linker, library utility, UNIX li- braries, special purpose libraries, shell development environment, and more. An impressive system. Aztec C65-C Commercial $299 • runs under ProDOS • code for ProDOS or DOS 3.3 Aztec C65-d Developer $199 • runsunderDOS3.3 • codeforDOS3.3 Aztec ROM Systems 6502/65C02 • 8080/Z80 • 8086/80x86 • 680x0 An IBM or Macintosh is not only a less expensive way to develop ROM code, it's better. Targets include the 6502/65C02, 8080/Z80, 8086/80x86, and 680x0. Aztec C has an excellent reputation for producing compact high performance code. Our systems for under $1,000 outperform systems priced at over $10,000. Initial Host Plus Target $750 Additional Targets $500 ROM Support Package $500 Vax, Sun, PDP-11 ROM HOSTS Call for information on Vax, PDP-11, Sun and other host environments. C Prime PC/MS-DOS • Macintosh Apple II • TRS-80 • CP/M These C development systems are unbeatable for the price. They are earlier versions of Aztec C that originally sold for as much as $500. Each system includes C compiler, assembler, linker, librarian, UNIX routines, and more. Special discounts are available for use as course material. C Prime $75 Aztec Cross Development Systems Most Aztec C systems are available as cross devel- opment systems. Hosts include: PC/MS-DOS, Mac- intosh, CP/M, Vax, PDP-11, Sun, and others. Call for information and pricing. How To Become An Aztec C User To become a user call 800-221-0440. From NJ or international locations call 201-542-2121. Telex: 4995812 or FAX: 201-542-8386. C.O.D., VISA, MasterCard, American Express, wire (domestic and international), and terms are available. One and two day delivery available for all domestic and most international destinations. Aztec C is available directly from Manx and from technically oriented computer and software stores. Aztec Systems bought directly from Manx have a 30 day satisfaction guarantee. Most systems are upgradable by paying the differ- ence in price plus $10. Site licenses, OEM, educa- tional, and multiple copy discounts are available. Inquiry 165 Manx Software Systems I Industrial Way, Eatontown, NJ 07724 To order or for more information call today. 1-800-221-0440 In N J or international call (201) 542-2121 •TELEX: 4995812 MS is a registered TM of Microsoft. Inc.. CP/M TM DRI, HALO TM Media Cybernetics, PANEL TM Roundhitl Computer Systems, Ltd.. PHACT TM PHACT Assoc.. PRE-C. Plink-86, Plink-86+ . PForceTM Phoenix, db Visla TM Raima Corp.. Cterp PCltnt. TM Gimpel Soft- ware. C-tree TM Faircom. tnc. Windows lor C. Windows lor DATA TM Creative Solutions. Apple II. Macintosh TM Apple. Inc.. TRS-8Q TM Radio Shack. Amiga TM Commodore Intl., Unix TM AT&T. Vax TM DEC. Aztec TM Manx Software Systems lit Codex, we understand that all the speed in the world won't get you anywhere if you can't depend on it. And that's why we developed our V.32 modem to give you 9600 bps full-duplex dial transmission, rivalling the reliability of a dedicated leased line. Admittedly a pretty big claim. But then, it's really what you'd expect from the rec- ognized leader in high speed modems. In fact, more data communications professionals prefer Codex than any other brand.* And it's our high speed modem expertise that has allowed us to make a modem that not only meets, but exceeds the V.32 standard. Our V. 3 2 modem uses the same VLSI tech- ^^^^ nology and forward error correction scheme - (Trellis Coded Modulation) as our high speed leased line modems that reliably transmit data up to 19,200 bps. So, you can be sure of continuous high quality transmission over a wide Visit Codex at TCA September 29-October 2, booth #228- ' McGraw-Hill's Dam. Communications Brand Preference study cites Codex as offering the best technology, modem, multiplexer and network control product categories. © 1986 Codex Coiporation. Motorola and range of line conditions. This now allows you to cut connect time and save money by sending data at up to 9600 bps full duplex over ordinary dial lines. We've even added a proprietary long haul echo can- cellation feature, eliminating both local and distant echoes that can plague dial networks. So even if the phone com- pany sends your data over satellite links, it arrives intact. Plus our V.32 modem includes a soft strap front panel, multiple ACUs, a nest card option for maximum space savings, and operates in synchronous or asynchronous applications. To find out more about the Codex V.32 modem, call 1^800^4264212, Ext. 235. Or write Codex Corporation, Dept. 707-35, 7 Blue Hill River Road, Canton, MA 02021-1097. You'll discover that when we tell you about a V.32 with A WWF high speed per- formance and reliability, we're not blowing smoke. codex ® MOTOROLA 231. hest price performance ratio, hest service organization, and most informative literature for various ® are trademarks of Motorola, Inc. Codex is a registered trademark of Codex Corporation. 122 BYTE- SEPTEMBER 1987 PROGRAMMING PROJECT Hanna Oktaba and Rene Berber Crafting Reusable Software in Modula-2 Careful program design results in safe, reusable program libraries software, and their pro- b ductivity continues to be | Programmers are constant- ly being called upon to I produce more and more wmw Mlte- ^™ an increasingly pressing problem. One way to boost program- mers' productivity is to design reusable software— software that is standardized in some way so that the programmer can use it in a later situation instead of writing new but similar code. If you begin de- signing your programs in a way that pro- duces small, reusable units of code, you will eventually build up a library of code modules that you can draw from to speed up the design and coding of new programs. Unfortunately, software seems to re- sist efforts to make it more manageable. Sorting a set of strings, for example, is different enough from sorting a list of numbers that writing new code from scratch seems simpler than trying to adapt an existing routine. One way to make software reusable is to try to sepa- rate the algorithm from the data struc- tures it uses. If you can do this, you need to design, code, and debug the algorithm only once, adding only a few data-related routines to implement the algorithm in a new context. In the case of a sorting routine, you would try to design it so that it takes as parameters an array of objects to be sorted and a procedure that defines which of two elements comes before the other. This is called parameterized program- ming because the elements that distin- guish one occurrence of the routine are passed as parameters to it. To support parameterized program- ming, a programming language needs to provide you with certain facilities. An ar- ticle by Joseph Goguen (see reference 1 ) lists those facilities and explains how they are used. Such languages include Ada, with packages and generic packages; C, with the use of libraries; and Modula-2, with its modules and opaque-type declarations. Modula-2 and Reusable Software The programming language Modula-2 (see reference 2) has several constructs that support the crafting of reusable soft- ware. This language is readily available on many microcomputers, and for that reason we think it is important to promote its use for the design of reusable software. In Modula-2, the basic concept of a module is, in an intuitive way, used to encapsulate pieces of software that make a logical unit in themselves— for exam- ple, an I/O package. There are several kinds of modules: program modules, local modules, and library modules. From here on, we will refer only to li- brary modules. Library modules are made out of two parts: a definition part and an implemen- tation part. [Editor's note: Since these units of code begin with the phrases DEF- INITION MODULE... and IMPLEMENTA- TION MODULE..., they too are called modules, but we will use the word "part " wherever possible to refer to these two parts that, together, completely define a library module. ] The definition part con- tains a description of everything a module exports. This includes any constants or variables, the data types manipulated by the module, and the procedures that oper- ate on them. A procedure description shows only its name, the name and type of its formal parameters, and, if it returns a value, the data type it returns. The implementation part contains the implementation details (i.e., the actual code) of the procedures described in the definition part. It also contains auxiliary procedures, variables, module-initializa- tion code, and anything not exported but needed for the implementation. Some- times the definition part declares, but does not define, data types (which are called opaque types because client mod- ules cannot "see" the implementation de- tails). In such a case, the implementation part defines the opaque type, but the de- tails of the data structure are restricted to the implementation part itself. Several concepts of Modula-2 promote the design methodology of reusable soft- ware. The most important are: • Separate compilation of modules. This permits the creation of module libraries, ready to be reused as many times as needed. Also, the structure of Modula-2 lets you change and recompile the imple- mentation part of a module without re- compiling its definition part or any other library modules that depend on it. • Import lists. These allow modules to use exportable procedures and data struc- tures from other modules. This lets you use modules as building blocks in the construction of complex systems. • Opaque types. When a module contains an opaque data type and all the proce- continued Hanna Oktaba has a Ph.D. in mathe- matics from Warsaw University, Poland, and teaches computer science at the graduate level at the Instituto de Investi- gaciones en Matematicas Aplicadas y en Sistemas de la Universidad Nacional Autbnoma de Mexico. Dr. Oktaba can be reached at IIMAS-UNAM, APDO Postal 20-726, Deleg. Alvaro Obregon, 01000 Mexico, D.F., Mexico. Rene Berber has aB.S. in chemical engineering from VIA, Mexico and is now working on his mas- ter's degree in computer science. He can be reached at Cadiz Norte 31, 03740 Mexico, D. F. , Mexico. SEPTEMBER 1987 -BYTE 123 CRAFTING REUSABLE SOFTWARE dures needed to manipulate it, client modules can manipulate variables of that data type without knowing how the data is represented internally. To create reusable software via parameterized modules, you define an opaque data type and then create a generic routine that passes as ar- guments the procedures that will tell the routine how to interact with the data type. (In the case of the sorting example, you would pass a procedure that would tell the generic sort routine how to judge which of two elements comes first.) • Procedure types. Modula-2 allows vari- ables to hold values of type "procedure," thus allowing procedures to be passed as argument variables into another procedure. • Open arrays. A program can pass an open array by name into a procedure without knowing its size at compile time. (Pascal, for example, can't do this.) This capability increases Modula-2' s flexibili- ty in writing procedures to manipulate ar- bitrary arrays of data. Design Methodology for Parameterized Modules You can use the following steps to create a parameterized module. As with any pro- gramming methodology, this is not a fixed procedure to follow, but it includes the important points you should look out for, and, with some experience, you would use to create reusable software. • Analyze the system you are designing to see if any of its parts might be useful in other systems. If this is so, you have found a reusable part. • See if you can design the reusable part so that it can pass the data type and, if possible, the procedures that manipulate it as parameters. An example of this is a FIFO (f irst-in/f irst-out) queue handler in which the type of elements manipulated is a parameter to the module. In such a case, you can change the type of elements stored in the queue without altering the operations that store or take out elements. • To build the reusable package, define two modules: one for the opaque defini- tion of the new data type and the proce- dures that manipulate it, and another for the procedures that use the new data type opaquely to get the real work done. (Re- member that each of these modules will have both definition and implementation parts.) The definition part of the second module needs only to import the opaque data type and the procedures associated with it. • The opaque data type and its proce- dures are actually defined in the imple- mentation part of the first module. This implementation either defines the data type (if you use it here only) or imports it from another module (if you make it available to other modules as well). In either case, you should actually imple- ment the opaque data type visible outside the first module as a pointer to the data type that you need. Both parts of the second module, along with the definition part of the first mod- ule, can be compiled and stored in a li- brary of reusable modules. When a simi- lar application arises that needs the same operation performed on a different data type, then you can reuse these modules; you will need to rewrite only the imple- mentation part of the first module (i.e., the opaque data type and its procedures) . An Example To illustrate how to apply this method, let's analyze an example that follows all the steps just described. Suppose you are designing a file sys- tem, and one of the operations your cli- ents require is sorting file descriptors of disk directories alphabetically by file- name. After some thought, you realize that the sort operation is general enough to apply to several situations; in particu- lar, to finite sequences of any data type, as long as the data type has defined for it an ordering operation "<=", and this operation satisfies the properties of total order (see the comments of listing 1 for a definition of total order). From this, you decide that you can parameterize your sort operation using an arbitrary data type (let's call it ElemType) and a proce- dure called compare that implements the " < = " function. Now, to do the actual programming in Modula-2, you must first code the defini- tion part of the module that describes the formal type parameter ElemType and the compare procedure. Let's call this mod- ule SortElemType; listing 1 shows its definition part. [Editor's note: En- hanced, ready-to-run versions of listings 2, 3, 5, 6a, and 6b are available under the names SORT.DEF, SORT. MOD, SORTTEST.MOD, SORTELEM.DEF, and SORTELEM.MOD on disk, in print, and on BIX; see the insert card following page 256 for details. These programs run under version 2. of Logitech 's Modula- 2. Listings are also available on BYTE- net; see page 4. ] The definition module of SortElem- Type provides an interface for a sort module, declaring ElemType as the data type to be manipulated. By making this an opaque type, you can isolate its actual definition to the implementation part of this module. ElemType is followed by the description of the compare procedure, which is a Boolean relation that gives the ordering over elements of type Elem- Type. Unfortunately, there are no tools in Modula-2 definition modules to express what a procedure does, so we have docu- mented this in a comment statement. Next, write the definition part of Sort, the module that gets the real work done using the data type ElemType (see listing 2). Note that this module imports both ElemType and compare and exports Quicksort, an implementation of the al- gorithm developed by C. A. R. Hoare. [Editor's note: Compilers that implement the most recent definition of Modula-2 as defined in reference 2 do not need to use EXPORT QUALIFIED statements in defini- tion modules; if they are included, they are treated as comments.] The proce- dure's formal parameter is an open array, which makes it possible for it to sort arrays of different sizes. Listing 3 is the implementation part of the Sort module; the implementation of Quicksort is adapted from Nicklaus Wirth's recursive implementation (see reference 3). All the Quicksort proce- dure does is define a local procedure, Sort, and then call it. Modula-2 uses the built-in function HIGH(A) to find the upper bound of the open array A. Just be- cause the formal array argument A is in- dexed from to HIGH (A) (open arrays must be indexed in this way), the actual array given to Quicksort is not restricted to that set of index limits. The two definition parts and this im- plementation part in listings 1 through 3 comprise our reusable sort module. You can compile them (doing the definition modules first) and store them together for later use. Now , getting back to the task of sorting the list of files alphabetically by name, you need to code the implementation part for the SortElemType module (see listing 4). In this module, you must either speci- fy or import the actual data type needed and implement the compare procedure used to define the alphabetic ordering. This implementation defines Elem- Type as a pointer to records of type File- Descr; if you don't import FileDescr from another module (as it is not here), then this module is the only part of the system that knows what constitutes the manipulated data. Procedure compare expresses the " < " relation of descriptors, taking into account the alphabetical order of its field, name. The procedure StringComp, which properly belongs to a module that implements string operations, is an auxil- iary function used to compare any two strings. In it, you see again the use of open arrays as formal parameters, con- forming to the agreed-upon convention in Modula-2 of the data type "string" as an array of any number of characters with a lower index of zero. continued 124 BYTE- SEPTEMBER 1987 The First Quality Standby Power System Made To Fit Everyone's Budget Statistics prove that every week in every area of the country there are electrical power surges, spikes, brown- outs and blackouts. Electrical power outages can destroy not only valuable data and pro- cessing time but can also cause irrevocable damage to your expensive computer hardware. The PowerVision 300, designed for PCs, retails for a nominal $539. Yet it matches SPS s costing twice as much feature for feature, making PowerVision the first truly affordable high quality sine wave SPS. In addition to the PowerVision 300 watt system, 500 and 1000 watt units are available for larger computers. All three feature an immediate transfer. PowerVision provides blackout, brownout and transient protec- tion for your hard- ware and important data— ultimately saving you time and money. C-COR Electronics, maker of PowerVision, has extensive experience in power protection devices. Our PowerVision line is backed by a one year limited warranty. PowerVision products are as close as your phone. Don't be left unprotected any longer. Call us toll free at 1-800-445-9366. In California call 1-619-546-9399. The Power Behind The Best Minds Inquiry 69 C-COR ELECTRONICS, Inc. 6150 Lusk Blvd., Floor B-200, San Diego, CA 92121 CRAFTING REUSABLE SOFTWARE Listing 1: The definition part of the SortElemTy pe module. This module defines the new opaque data type (ElemTypeJ and the procedure that operates on it (compare,). DEFINITION MODULE SortElemType ; EXPORT QUALIFIED ElemType, compare; TYPE ElemType; (■* pointer to any data type *) PROCEDURE compare (x, y: ElemType) : BOOLEAN; (* compare(x,y) implements: x< y defined as NOT (y <= x) , for ascending order; and if descending order is desired compare(x,y) should implement: x > y defined as NOT (x<= y); where "< = " denotes a binary relation that must satisfy the total order properties : 1. x<= x 2. x <= y AND y <= x ==> x = y 3- x<= y ANDy <= z ==> x<= z 4 . x<=yORy<=x for every x, y *) ( * . . . and other operations t o manipulate the data * ) END SortElemType . Listing 2: The definition part of the Sort module. This module defines the procedure that sorts an array of items of type ElemType. . DEFINITION MODULE Sort; FROM SortElemType IMPORT ElemType, compare; EXPORT QUALIFIED Quicksort; PROCEDURE Quicksort (VAR A: ARRAY OF ElemType) ; (* Input: an array A filled with data Output: same array sorted. Requires that ElemType has a total order relation named "compare" . *) END Sort. Listing 3: The implementation part of the Sort module. This module implements the sorting procedure defined in listing 2. IMPLEMENTATION MODULE Sort; FROM SortElemType IMPORT ElemType, compare; PROCEDURE Quicksort (VAR A: ARRAY OF ElemType) ; PROCEDURE sort ( 1 , r : INTEGER) ; ( * N . Wirth, » 86 * ) VARi, j : INTEGER; x, w : ElemType; BEGIN i:=l; j :=r; x:= A[(l+ r) DIV2]; REPEAT WHILE compare(A[i],x) DO INC (i) END; WHILE compare(x,A[j]) DODEC(j) END; IF i <= j THENw:=A[i]; A[i]: = A[j]; A[j]:=w; INC(i); DEC(j) END UNTIL i > j ; IFKj THEN sort (l,j) END; IFi< r THEN sort (i,r) END END sort; BEGIN sort(0,HIGH(A)) END Quicksort; END Sort. Listing 4: The implementation part of the SortElemType module. This module, which is the only one that must be rewritten to handle a different kind of sort operation, gives the implementation details of the opaque data type ElemType and the compare procedure. IMPLEMENTATION MODULE SortElemType; (* FROM FileDescriptor IMPORT FileDescr; (used instead of definition below when the data has already been defined) *) CONST EOS = OC; (* end-of-string character *) TYPE ElemType = POINTER TO FileDescr; FileDescr = RECORD ARRAY[0..8] OF CHAR; ARRAY [0.. 3] OF CHAR; ARRAY [0.. 10] OF CHAR; ARRAY [0.. 8] OF CHAR; ARRAY[0..6] OF CHAR name ext : size date time : END; PROCEDURE compare (x,y : ElemType) : BOOLEAN; BEGIN RETURN StringComp (x< . name , y< . name) END compare; PROCEDURE StringComp (si, s2: ARRAY OF CHAR) : BOOLEAN; (* returns sl< s2 *) VARi, max : CARDINAL; BEGIN i:=0; max : = HIGH (si); WHILE (i and a space, but having it displayed in bright letters. Here's the prompt com- mand that you'd need: prompt $e [lm$p$g$e [0m $a Let's dissect this command piece by piece. The dollar sign ($) characters are documented under the prompt command. The $e is an escape character (ASCII 27), $p is the current path, $g is the > symbol, and $a is undefined, but it is used to force a space after the >. To print bright characters on the screen, it is nec- essary to write an escape character fol- lowed by [lm. To restore dim characters, you use an escape character followed by [0m. Put the pieces together as shown, and you get the effect described above, except for one thing: You must include a device driver, called ANSI. SYS, in your CONFIG.SYS file. If you do not have a CONFIG.SYS file, create a text file with that name and keep it in your root directory. For our purposes, all it needs is this single line: DEVICE = ANSI. SYS. This causes the screen to have some smarts; rather than printing some textual representation of an escape character (my machine prints an arrow), it executes the escape character as a screen-control function. After you add this line to the CON- FIG.SYS file, reboot your computer so that the device driver will take effect. Then the DOS prompt appears as de- scribed above. To create bright letters inside a pro- gram, the technique is essentially the same. I'll use Turbo Pascal for the pro- gramming examples, but the names should be suggestive enough for you to readily adapt the code to your favorite language. The code shown in listing 1 first de- fines three constants. Then, the writeln statement displays the list of things inside the parentheses in the order shown. This will cause string 1 to appear in bright text, while string 2 will appear in dim text (see code fragment A). Other character- istics, such as blinking, reverse, colored, and underlined text, can also be printed in this way once we know the appropriate codes. Note, however, that once an es- cape sequence is printed, all subsequent output will appear in the specified style until a new escape sequence changes it. Note one additional prerequisite when using a programming language: You must direct the output specifically to the standard output device— not to the screen. This may seem perplexing be- cause, by default, the standard output de- vice is the screen. But the screen is not always the standard output device. In Turbo Pascal 3.0, for example, writeln will not work unless you first use the {$Pn} compiler directive (where n is some integer larger than zero) to indicate that all write Ins should go to the stan- dard output device. Now let's examine a framework for easily changing from one style of text to another, rather than laboriously using the escape codes. I've used Turbo Pascal for the examples. First, let's establish the definitions as shown in code fragment B. Pascal lets you create new types. The first declaration enables you to create vari- ables of type ScreenStyle, which can have only one of the five values shown. The second declaration allows you to create variables of type ShortString, which are just strings whose maximum length is 25 characters. I will now intro- duce two routines, SetOneStyle and SetTextStyle, which return strings of control sequences, such as an escape character followed by [lm. SetOneStyle returns a string that forces a single text style, while SetText- Style returns a string that can be a com- bination of one or more styles, such as underlined and boldfaced characters. To continued Michael J. Sorens, a senior software en- gineer, holds B. S. and M. S. degrees in computer engineering and science from Case Western Reserve University. He can be contacted at LAS A Industries, 505 Lincoln Ave. , San Jose, CA 95126, (408) 995-5272. SEPTEMBER 1987 • B Y T E 129 NEW TRICKS create a string that initiates blinking char- acters, for example, you call SetOne- Style (BlinkText). This returns a text string with embedded control characters. In other words, you can assign the re- turned value to a variable; let's call it BlinkString. BlinkString := SetOneStyle(BlinkText) ; We can then display BlinkString just as we displayed control codes above: write(BlinkString) ; or, if there is no reason to store the result of SetOneStyle in BlinkString, we can print the function result directly: write(SetOneStyle(BlinkText) ) ; Both write statements achieve identical results. (The difference between write andwriteln, by the way, is that the latter will terminate a line and start a new line.) You can use the routine SetTextStyle to create combinations of styles. The gen- eralized control-string format is an es- cape character followed by [#;...; #m, where you can use more than one code between the [ and the m. Each # character represents a style code. The . . . indicates that you can repeat these style codes. You must separate each pair of codes by a semicolon, and an m must terminate the sequence. SetTextStyle requires two input parameters: a desired style code and an existing style string. The new style code is added to the existing style string so that it maintains the above format (see code fragment C). You set the local variable CodeChar depending on the value of the style pa- rameter with the case statement. Then you assign a value to the function. If the ExistingString is empty, you just create a standard escape string, such as [5m. Otherwise, you need to chop off the m, add the ; separator, add the new code, and then tack on the m at the end. In SetOneStyle (see code fragment D), you first create a string to set the screen back to normal, regardless of its previous condition. If you are actually re- questing something other than "nor- mal," then you concatenate the second code by a second call to SetTextStyle as shown in code fragment D . You can intermix the different text styles freely, for the most part, so you must take some care in creating escape sequences. If you write an escape se- quence for blinking text, as shown above, and then later write an escape sequence for reverse text, you will actually get re- versed blinking text, because you have not turned off the blinking effect. It is best to use some type of flag to keep track of the current styles. To change a style, then, the necessary steps are to modify the flags to get the condition you want, send an escape sequence to turn off all ef- fects, and send an escape sequence to es- tablish all effects specified by the flags. Code fragment E is a routine for man- aging a set of Boolean flags so that you can examine the current style of your screen by checking the set of correspond- ing flags. The flags are Boolean variables called Bold, Blink, Underscore, and Re- Listing 1: Code fragments used to generate screen attributes. Code fragment A const BrightControl = " [lm ' ; DimControl = "0[m' ; ESC = #27; . . . writeln(ESC, BrightControl, stringl, ESC, DimControl, string2); Code fragment B type ScreenStyle = (BoldText, BlinkText, UnderscoreText, ReverseText, NormalText); ShortString = string[25] ; Code fragment C function SetTextStyle ( Style: ScreenStyle; {the desired text style} ExistingStyle: ShortString {the control string to modify} ) : ShortString; var CodeChar: char; TextStyle: ShortString; begin case style of BoldText: CodeChar := "l 1 ; {the magic numbers} BlinkText: CodeChar := "5'; UnderscoreText: CodeChar := "A 1 ; ReverseText: CodeChar := "7'; NormalText: CodeChar := "0'; else writeln ( "Internal error in SetTextStyle ' ) ; end { case } ; if (ExistingStyle = " ) then SetTextStyle : = chr (27) + ' [ ' + CodeChar + ' m ' else SetTextStyle : = copy (ExistingStyle, 1, length(ExistingStyle)-l) + ' ; * + CodeChar + 'm' ; end; Code fragment D function SetOneStyle (Style: ScreenStyle): ShortString; varCodeStr: ShortString; begin CodeStr := SetTextStyle (NormalText, "); if (style = NormalText) then SetOneStyle := CodeStr else SetOneStyle := SetTextStyle (style, CodeStr); end; Code fragment E function Ref reshStyles : ShortString; var CodeStr: ShortString; begin CodeStr := SetTextStyle(NormalText, "); if bold then CodeStr : = SetTextStyle (BoldText, CodeStr); if blink then CodeStr : = SetTextStyle (BlinkText, CodeStr) ; if under then CodeStr := SetTextStyle (UnderscoreText, CodeStr); if reverse then CodeStr : = SetTextStyle(ReverseText, CodeStr) ; RefreshStyles :=Codestr; end; Code fragment F write (SetOneStyle (Reverse) ) ; DrawBorders; {user defined routine} write (RefreshStyles) ; 130 BYTE- SEPTEMBER 1987 NEW TRICKS verse, which keep track of the four named styles. Suppose you want to create a bor- der in reverse characters while not inter- fering with the rest of the display. You need to write a control string to turn on the reverse-character style before you start drawing the border, and then you must write a control string to restore the screen state so that the subsequent text will be displayed in the same style combi- nation as it was before you turned on the reverse characters. Ref reshStyles (see code fragment E) will first turn all styles off and then reac- Code fragment G type ScreenChar = record Value: char; {actual character} Style: byte; {text style} end; Code fragment H const Count= 10; var Asterisks: array [1.. count] of ScreenChar; procedure CreateAsterisks; begin for i : = 1 to count do begin asterisks [i] .value :="*'; asterisks [i] .style := $87; {hexadecimal notation} end; move (asterisks, destination, Count* 2); end; Code fragment I const Count= 10; TwiceCount = 20; var Asterisks: array [1. .TwiceCount] of byte; procedure CreateAsterisks; begin for i : = 1 to count do begin asterisks[(2*i)-l] :=ord("*'); asterisks[(2*i)]: = $87; end; move(asterisks, destination, TwiceCount); end; Code fragment J const ScreenSize= 2000; ScreenBytes = 4000; {twice ScreenSize} LineSize= 80; type Screenlmage = array [1. .TotalLines, 1. .LineSize] of ScreenChar; BlockImage= array [1. .ScreenBytes] of ScreenChar; var Lines: Screenlmage absolute $B000:0; Screen: Blocklmage absolute $B000:0; Code fragment K procedure CreateAsterisks; begin for i : = 1 to count do begin Screen[origin+ i] .style :=$87; Screen [origin + i] .value :="*'; end; end; Code fragment L procedure ShowHelp; var ScreenCopy: Blocklmage; begin fillchar(ScreenCopy, ScreenBytes, ' '); {blank out array} for i ; = 1 to HelpSize do f or j := 1 to length (HelpLines[i]) do begin ScreenCopy [i, j] .value : = HelpLines[i, j] ; ScreenCopy [ i , j ] . style : = HelpStyles [ i] ; end; move (ScreenCopy, Screen, ScreenBytes); end; Code fragment M var MonoScreen: Screenlmage absolute $B000:0; ColorScreen: Screenlmage absolute $B800:0; Monitor: Screenlmage; Code fragment N if (VideoCode = 7) then Monitor := addr(MonoScreen) else Monitor : = addr( ColorScreen) ; tivate any that are supposed to be on. Thus, in order to draw your reverse bor- der, you first set the screen to reverse style, draw the borders, and then refresh the styles. It's fine to change the style without adjusting the flags in this in- stance, since you will be refreshing the state to agree with the flags before you do anything else. The code might look like that shown in code fragment F. For drawing a window, characters in the ASCII range 176 through 223 are ap- propriate. They provide an appealing screen display for many applications. The techniques described so far can create specific strings of text with a lot of flexi- bility. For entire screen design, however, memory writing is more appropriate. Memory Writing The memory-writing method is some- what more low-level, but you can create very fast screen displays with it, and you do not need the ANSI. SYS driver in your CONFIG.SYS file. I'll limit my discus- sion to the IBM PC monochrome moni- tor, as in the previous section; you can implement colors by simply adding more flags and more style choices. The IBM PC display screen is mem- ory-mapped at address B000:0000 for monochrome displays (segment B000, offset 0) and at B800:0000 (segment B800, offset 0) for color displays. Writ- ing data into memory at the address of the screen will show that data on the display. Since there are 25 lines of 80 characters each, the screen occupies exactly 4000 bytes of contiguous memory. Each screen character is represented as a 2-byte entity. You will need a record structure that can easily access memory locations, like that in code fragment G. This creates a new data type consisting of a character called Value followed by a byte called Style. Bytes and characters are actually the same thing, but you can refer to them differently. If you define a variable Spot of type ScreenChar, then you can refer to the two components of Spot as Spot. Value and Spot. Style. For a single character, the two bytes of ScreenChar represent the character and the text style, in that order. If you have a tool that lets you examine memory, take a look. The hexadecimal codes for the dif- ferent styles are shown in table 1 . This means that you can modify your screen manually if your favorite language has a fast, efficient procedure for moving blocks of memory around. Turbo Pascal, for instance, has the move procedure: move(source, destination, count), wherein you move the specified number of bytes (count) from the source to the destination. As an example, let's continued SEPTEMBER 1987 -BYTE 131 NEW TRICKS Table 1 : Hexadecimal codes for text functions. Normal (low intensity) 07 Bold (high intensity) OF Underline 01 Blink 87 Reverse 70 create a field of 10 blinking asterisks. Two equivalent versions are shown in code fragments H and I. The version shown in code fragment H uses Pascal record struc- tures and is more readable. Note that you use the destination variable without yet defining it. If your language of choice does not have records but has arrays, you can achieve the same effect, but the calcu- lations look a little more complicated, as shown in code fragment I. Using either definition, you first create a string of asterisks interleaved with a string of style codes. Then you move the coded asterisk string to your destination. But where is the destination? Recall that the display screen consists of 2000 char- acter records located at a specific ad- dress. Thus, you need to be able to talk Table 2: Bit settings within the style codes. An X indicates a "don 't care " condition. Bold XXXX 1XX1 Underline X000 X001 Blink 1XXX XXXX Reverse X111 xooo about absolute memory locations. Turbo Pascal allows you to declare variables ab- solutely, as shown in code fragment J. Here you have created two different representations for the screen, both rep- resenting the same memory locations. Lines is set up as a two-dimensional array of lines and columns, while Screen is just a single array of screen characters. Both variables are located at the same specified address, exactly overlaying the location of screen memory. You can use some offset into the Screen array as your destination in CreateAsterisks. Actu- ally, you can eliminate the move by using the Screen array directly (see code frag- ment K). The new routine allows you to write di- rectly to the screen as if it were memory . You need to set the variable origin to some appropriate value between 1 and (2000 count). The representations above allow you to access the screen memory as either individual bytes or as whole lines. Thus, rather than accessing something in the /th position of line n by saying Screen[(n * LineSize) + i], you can just use Lines [n,i]. For incredibly fast displays, you can build up a copy of the screen somewhere in memory, setting whatever text-style at- tributes you like, and then executing a block move to transfer the data to the screen instantly. Suppose, for example , that you have an array of strings that you want to print, perhaps a help screen. Let's call this array HelpLines and fill a copy of the screen, called ScreenCopy, with these strings, and then move the copy to the display for an instant picture update. Also, let's use a second array, Help- Styles, which contains style codes for each corresponding string in HelpLines (see code fragment L) . This procedure allows us to mix re- verse lines, bold lines, and so on, on the same screen. How about combining ef- fects, such as blinking and reverse text? For this you need more "magic num- Big Blue introduced a new standard. By now you've heard that Big Blue has introduced a new PC standard. Naturally, Amdek® is right on top of this technology. Introducing our latest technical achieve- ments-the Amdek 732 color and 432 mono- chrome monitors. Sharper, cleaner text Richer, more vibrant color. Vertical refresh as high as 70 Hz. to eliminate flicker and maintain a crisp, steady image. An anti-glare screen that reduces eye fatigue. And a tilt/swivel stand that prevents neck strain. The 732 allows you to choose from a palette of over 256,000 colors. And the text switch delivers clear single color text for word processing. AAachiiuv; Corp. i'moiiiil Syslem/2 is ;i trademark of International Business Machines Corp. 132 BYTE* SEPTEMBER 1987 NEW TRICKS bers." Table 2 shows how the different codes can and cannot be combined. The representations show the bit settings within the style byte. To achieve a certain style, set the ones and zeros shown. The X terms can be either zeros or ones. Those familiar with digital logic will recognize the X terms as "don't care" terms. Hence, to create a bold character, you can use the code OF, 5F, FF, or 09. However, be careful; 09 also fits the pat- tern for underlining, so both styles will appear. Table 1 shows, for example, that you cannot mix reverse characters with underlined ones, since the low-order bit of the reverse style is a 1 , while that of underlined style is a 0. Table 3 shows the useful combinations in both hexadecimal and binary. These are like a set of mnemonic constants for use in a program. Finally, let's see how to make a program flexible enough for it to recognize and act upon the difference be- tween a monochrome monitor and a color monitor. Buried obscurely in some por- tion of memory is a single integer that can tell you what type of monitor you have. So you define an absolute variable: var VideoCode: integer absolute $0040: $0049; Table 3: Some useful combinations of attribute codes, shown in binary and hexadecimal. Normal 0000 0111 07 Bold 0000 1111 OF Underline 0000 0001 01 Blink 1000 0111 87 Reverse 01 1 1 0000 70 Bold and underline 0000 1001 09 Bold and blink 10001111 8F Underline and blink 1000 0001 81 Blink and reverse 1111 0000 F0 Bold, underline, and blink 1000 1001 89 If this value is a 2 or a 3, the display is color; if it's a 7, the display is mono- chrome. Other values may or may not have any significance. Now you can tell what type of display you have. How do you use this informa- tion? Modify the previous definition of Screen, renaming it MonoScreen, and add two more definitions (see code frag- ment M). Somewhere in your program initializa- tion, you need to set up the Monitor vari- able for use by the rest of the program, as shown in code fragment N. The addr function returns the address of the specified variable. From that point on you no longer need to worry about what type of display screen you have. All references to it, however, must be through the pointer variable, Monitor. Thus, instead of using Screen[n], you use Screen" [n] in the code. Custom-Made Today's sophisticated programs need to incorporate impressive screen displays without sacrificing speed. With a few tools, you can enhance your programs with the look and feel of expensive cus- tom-made software. ■ We can top that ! For the ultimate in monochrome, the 432 features a large 14-inch, flat-surface screen that actually displays larger type for easier viewing. And because the Amdek 732 and 432 are compatible with LBJVT's new Personal System/2™ Video Graphics Array (VGA) and MultiColor Graphics Array (MCGA), the image of all your programs will look better than you've ever imagined. At Amdek, we weren't content with just meeting the new standard. Our goal was to exceed it! .-■XlMDEK Clearly the finest in monitors. 1901 Zanker Road, San Jose, CA 951 12 Phone: 800/PC-AMDEK FAX: 408/436-8187 Inquiry 14 SEPTEMBER 1987 -BYTE 133 The standard by which all other monitors are monitored. MultiSvnc So perfect a solut graphics color monitor. Like most revolutionary products, the NEC MultiSync is based on a simple idea: Instead of one monitor for one board, why not have a single monitor compatible with all graphics boards. From CGA to PGC and beyond. That simple idea has made MultiSync the world's best-selling color monitor and the undisputed industry standard. MultiSync offers a maximum resolution of 800 x 560 for bril- liant business graphics. And compatibility with old and new sys- tems from PC/XT/AT to IBM PS/2 and Apple Mac II. It has a 14" diagonal screen, tilt/swivel base and 7-way text switch that lets you choose the color that's easiest on your eyes. Best of all, it has one feature no one else can give you at any price: NEC. So why settle for monitors trying to equal the stan- dard when you can have the one that created it. For literature or a IBM, PC, XT and AT are registered trademarks of the mtemati dealer call 1-800-447-4700. For technical details call NEC Home Apple and Mac li are registered trademarks of Apple Campulor. Inc Electronics (USA) Inc. 1-800-NEC-SOFT. NEC is a registered trademark ol NEC Corporat.ro CaC Computers and Communications NEC Inquiry 196 SEPTEMBER 1987 -BYTE 135 » Architecture can make or break a computer system. If the sheer weight of UNIX brings the PC to its knees, all applications running under it will suffer. Conceived more than a decade and a half ago, UNIX is today the result of modifications, additions and patches by hundreds of programmers. It needs the resources of at least an AT. Compare this to the QNX O/S, designed by a dedicated team with a common purpose and complete under- standing of both the software and the environment in which it must run. Having elegantly solved the problem of inter-task communications, QNX is more than capa- ble of both networking and real time per- formance- the superior choice for process control and office automation systems. Quick and efficient on a PC, QNX soars on an AT. QNX occupies 80K (stand- alone version) to 114K (network version) of system memory and allows 40 tasks (programs) and up to 16 terminals per computer. QNX modular architecture facilitates easy adaptation and extensions by soft- ware developers for specific requirements. In addition, PC-DOS runs as a single- tasking guest operating system under QNX. With the DOS Development System, DOS EXE files can be developed in shorter time than under DOS itself. Communication among all tasks is via "message-passing." Tasks anywhere on a network of up to 25$ computers com- municate rapidly and transparently with each other. WLtlrth.e true distributed frocessing amtl resource sharing ©J QNX, all iW$ resources on the network are available to any user. Application programs and data can be distributed over the network with- out having to go through a central file server. Network growth is fast and simple. If your disk becomes a bottleneck, add a disk anywhere on the network. If your needs outgrow your present configuration, just add terminals and/or computers as required, without having to re-write pro- grams and without system degradation. If you would like to know the secret of the QNX architecture, please give us a call. We invite End Users, VAR's, OEM's and Software Developers to discover a whole new world of computing capabilities. Over 30,000 systems have been installed worldwide since 1982. THE ONLY MULTI-USER, MULTI-TASKING, NETWORKING, REAL-TIME OPERATING SYSTEM FOR THE IBM PC, AT, Multi-User 1 (16) serial terminals per PC (AT). Multi-Tasking 40 (64) tasks per PC (AT). Networking 2.5 Megabit token ring. 255 PC's and/or AT's per network. 10,000 tasks per network. Thousands of users per network. Real Time 2,800 task switches/sec (AT). Message Fast intertask communication Passing between tasks on any machine. C Compiler Standard Kernighan and Ritchie. Flexibility Single PC, networked PC's, single PC with terminals, networked PC's with terminals. No central servers. Full sharing of disks, devices and CPU's. PC-DOS PC-DOS runs as a QNX task. Cost From US $450. Runtime pricing available. THE HP VECTRA, AND COMPATIBLES. / For further information or a free demonstration diskette, please telephone (613) 591-0931. Quantum Software Systems Ltd. • Kanata South Business Park -175 Terrence Matthews Crescent • Kanata, Ontario, Canada • K2M 1W8 UNIX is a registered b*demart 0, inhibitory if w < 0. (Try drawing the BAM network topology obtained with this matrix M.) You can erase association {A h B { ) from Mby adding -X ( T Y { to M. This is equiva- lent to encoding (A h Z?, c ) or {Af, B t ), where the superscript c denotes comple- ment. The complement of (0 1 10 0), for instance, is (1 1 1). This is true be- cause you obtain the complement of a bi- polar vector by multiplying the vector by - 1 . A little thought then shows that when you encode (A h B { ) in M, you encode (Ai c , Bi c ) in M as well, and vice versa. The BAM energy E of association or state (A h Bi) is —A t M B ( r . In the exam- ple, E(A U B,) = E(A 2 , B 2 ) = -6. (In up- coming examples, you'll see that the BAM encoding algorithm placed (A l9 B x ) and (A 2y B 2 ) in local energy minima.) BAM Decoding BAM decoding is associative recall. Say an input pattern A is presented to BAM field F A . The n neurons across F A are turned on or off according to whether the corresponding binary values of A are 1 or 0. Each neuron a.in F A fans out its binary value across the p pathways as if pouring water into a pipeline system. The synaptic value mij multiplies, or "gates," the binary value a h Each neuron b y in F B re- ceives a fan-in of input products a t m - from each of its n synaptic connections; by then behaves as an OR gate, since any neuron in F A can activate it. Neuron by sums its input across all connections, a y m^j 4- a 2 m 2j + ... + a n m nJ , then thresholds this sum to generate its output binary signal. If the input sum exceeds b/s threshold, which I assume is 0, then b/s output is 1 . If it is less than threshold, b/s output is 0. If it equals threshold, b, maintains its current state. Neuron b, then fans out its output signal across the n pathways m u to each neuron a, in F A . This means F B uses the transpose memory M T to send information, while F A uses M. Each a, then generates its binary signal from all its summed inputs and sends it back to F B . And round and round the BAM goes. Fortunately, it is a mathemat- ical theorem that the BAM always rapidly converges, so it will not oscillate chaoti- cally forever. (Exercise: Show that a state change in F A or F B and the threshold sig- nal law forces the energy E to decrease, and that E cannot decrease forever. This is sufficient to prove that any matrix M continued 140 BYTE- SEPTEMBER 1987 The single best way to turn your PC-ATinto a multi-user system. Introducing the Wyse WY-6Q Now there's a perfectly compatible, reliable, economical, Wyse way to get multi-user mileage from your PC- AT. Wyse WY-60 terminals give you com- plete compatibility for your IBM Personal Computer AT systems, right down to the exact keyboard layout, character set and display features. The only thing different is how much cleaner and more readable your information is with the WY-60's high resolution and flat, non-glare, 14" tilt/ swivel screen. Multiple display formats go up to 132 columns and 44 lines on one screen, to get the most out of applications such as Multiplan and WordStar. And a 512-character downloadable soft font is also there when you need mathematical symbols or customized character sets. The adjustable arm is optional, and you can choose a green, white or amber screen. No wonder we ship more terminals than anybody but IBM* Call toll-free or write, today, for more information. Wyse Technology, Attn: Marcom Department 60-AT, 3571 N. First St., San Jose, California 95134. Call 1-800-GET-WYSE WYSE I I I I YOU NEVER REGRET A WYSE DECISION. S : -STi ' v:.\ :::. '&~z% Wyse is a registered trademark of Wyse Technology. WY-60 and the "V" shaped design are trademarks of Wyse Technology. IBM and IBM Personal Computer AT are trademarks of International Business Machines Corporation. WordStar is a registered trademark of MicroPro International. Multiplan is a registered trademark of Microsoft Corporation. © 1986 Wyse Technology. "Dataqucst 1985 terminal shipment update. Inquiry 318 ASSOCIATIVE MEMORY produces a stable BAM.) BAM decoding is easier done than said. Returning to the example, let's see if the memory matrix M actually stores the pairs (A u B x ) and (A 2 , B 2 ). You do this by presenting A x to the BAM and ob- serving whether (A u B x ) is recalled. If it is, then either A x or B l will recall (A u BO. Repeat this test for A 2 and B 2 . Vector-matrix multiplication summa- rizes BAM forward and backward infor- mation flow. Forward flow proceeds through M, and backward through M T . The row vector A M = (4 2 -2 -4) is the vector of fan-in inputs received by F B . The threshold-signal law then yields (4 2 -2 -4) -> (I 1 0) = B u since you are synchronously updating all neurons in F B . So Ai evoked B x . B x then sends an M T - filtered vector of signals back to F A : B M 1 = (1-2 2 -2 2 -2) -> (1 1 1 0) = A y . If you now push A l through M again, B x results, which again evokes A ,, and so on forever. Thus, the short-term-mem- ory pattern (A u B x ) reverberates across the BAM . It is a stable equilibrium point of the dynamic system. Put another way, both A x and B, recall the stored associa- tion (A u £,). Similarly, A 2 M = (4 -2 2 -4) -> (1 1 0) = B 2 , and B 2 M J = (2 2 2 -2 -2 -2) -> (1 1 1 0) = A 2 . So (A 2 , B 2 ) is also stored as a stable point. An instructive exercise would be to see how many synapses in M you can remove or change without affecting these stable reverberations. The BAM is error-correcting. Partial or noisy patterns tend to recall complete patterns. For example, the input A = (0 1 I 0) is just A 2 perturbed by 1 bit. Then A M = (2 -2 2 -2) -> (1 1 0) = B 2t and thus A evokes the resonant pair (A 2 , B 2 ) . Note that {A , B 2 ) has energy E(A , B 2 ) = -4 > - 6 = E(/4 2 , £ 2 ), evidence that the BAM encoding procedure placed (A 2 , B 2 ) at a local energy minimum. Suppose you add the new association (A 2 , B 2 ) to the BAM memory M, where A z = (1 1 1 1)£ 3 = (0 1 1 1). This strains the BAM's storage capacity but does not exceed it. Geometrically, when you store only a few association patterns 04, B), each forms a large basin of attrac- continued Figure 2: Asynchronous recall in a BAM consisting of two fields of neurons, one containing 140 neurons and another containing 108 neurons. 142 BYTE- SEPTEMBER 1987 1 I I I I J ■ I l| J , "' Ifc V 1 -— 1 mm. J Finally A ftrtable Des^ed%BiieakT!ie Mold, Instead Of Y)ur Back. Portable computers fit a predictable pattern.The more powerful they are, the less portable they are. With one magnificently small exception. The T3100/20. It's the best shape power has ever been in. A smaller; slimmerlprofile that's tailored to you, instead of the other way around. Yet inside this sleek 15-pound package are 640KB of RAM and a built-in 20MB hard disk. All driven by an 80286 microprocessor, the same CPU that sparks the IBM® PC AT Its gas plasma screen is so bright, it looks like a full-size CRT display. Which, by the way, you can easily plug into the T3100/20's standard RGB color port. MS-DOS® 3.2 is standard. So arc parallel, serial and S^'external drive ports. And a soft carrying case. With every T3100/20, we'll include free copies of Lotus® Symphony®* and Lotus Metro® two of the world's most popular programs, for the world's most popular portable computer. You can also add a 1200 bps Hayes-compatible modem, a five-slot IBM-compatible expansion chassis, 2 megabytes of extended memory and a numeric keypad. The T3100/20 is backed by Exceptional Gare** our promise that if we have to fix your computer, well fix you up with another one while you wait All of which leads one to a small dilemma. How to regard a machine that changes forever the way the world thinks about portable performance. You could think of it as a desktop on a crash diet. Or the muscle of an AT without the bulk. Or simply as PC World put it: "A small miracle!' Call 1-800-457-7777 for the Toshiba computer and printer dealer nearest you. He can show you how to enjoy all the advantages of power. With none of the burdens. IBM & PC AT are registered trademarks of International Business Machines Corporation. MS-DOS is a registered trademark of Microsoft Corp. Lotus, Symphony and Metro are registered trademarks of Ix)tus Development Corp. Hayes is a registered trademark of Hayes Corp. *Limited time offer. **No-cost enrollment required. See your dealer for details. In Touch with Tomorrow TOSHIBA Icshiba America. Inc., Information Systems Dnnsion ASSOCIATIVE MEMORY tion in the BAM state space. As you add more patterns to the BAM, the basins in- crease in number but shrink in diameter and depth. The BAM recognizes fewer input patterns by stored associations. Worse, spurious attractor basins can emerge, causing misclassification. When this happens, the BAM experiences a type of deja vu, since it remembers some- thing it never learned. In this case, the new memory M = X, T y, + X 2 J Y 2 + X 3 J Y 3 is given by M = When you retest to see if {A U B X ) and (A 2 ,B 2 ) are still stable points, you'll find that they are, since E{A U B X ) = E(A 2 ,B 2 ) = -6.TotestA 3 ,A 3 M = (-4 4 4 4) -► (0111) = B 3 ,andB 3 M J = (13-5-1 3 5) - (1 1 1 1 ) = A 3 . So (A 3 , B 3 ) is also a resonant stable point, but with energy that's twice as small, namely, E(A 3 , B 3 ) = -12. Since (A 3 , B 3 ) is a deeper basin, you can expect it to attract and classify more patterns. The unit input (111111), which is 1 bit closer to A 3 1 1 1 -1 -1 -1 3 1 3 -1 -1 -3 -1 -1 -1 1 -1 3 -1 1 -3 1 1 3 than to A x or A 2 , recalls (A 3 , B 3 ). But if you flip the last bit, the new input (1111 1 0) misclassifies to a spurious associa- tion (A, B), where/i = (1 1 1 1 0) and B = (1110), also with energy E(A, B) = -6. Such misclassification reflects that you have almost overstuffed the BAM memory matrix M . If you'd like to experiment with the above algorithm, Duane DeSieno, Rod Taber, and Joel Davis have provided pro- grams in BASIC, Pascal, and C. [Editor's note: These programs are available on disk, in print and on BIX; see the card following page 256 for details. They are also available from BYTEnet listings; see page 4.] Listing 1 shows pseudocode for the BASIC program. Asynchronous BAM Recall Figure 2 illustrates asynchronous BAM recall. Field F A contains n = 10 x 14 = 140 neurons. F B contains/? = 9 x 12 = 108 neurons. Both vector fields are ar- ranged as binary matrices to help the eye detect interesting spatial patterns. The BAM stores the three alphabetic associa- tions: (M, V), (S, E), and (G, N). A 40 percent noise-corrupted version (99 bits randomly flipped) of (S, E) is presented to the BAM. Figure 2 shows 1 1 snapshots of the asynchronous recall process. At each clock cycle, roughly six randomly chosen neurons are allowed to make up- date (state-change) decisions. This is a cross-sectional approximation of a sto- chastic neural process— a set of indepen- dent neurons, each randomly updating in time. Different random-update choices pro- duce different asynchronous-recall tra- jectories. In this BAM, most trajectories recall the desired nearest stored associa- tion, since the memory capacity is not strained and the spatial patterns all differ significantly. In figure 2, (S, E) is per- fectly recalled, as the neurons indepen- dently proceed from local chaos to global order— without any neuron aware of its global effects. The anarchical neurons are guided as if by an invisible hand to correct global system errors without knowing that such errors have occurred and need to be corrected. Finally, BAMs are perhaps best imple- mented in optics, with photons instead of electrons. Neurons in fields F A and F B can be totally interconnected to each other with simple lenses. Using resistors to in- terconnect amplifiers is much more diffi- cult, space consuming, and expensive. Unlike electrical pathways, optical-inter- connect beams can pass through one an- other without interference. ■ For More Information Associative-memory literature is mathematical, interdisciplinary, and vast. McCulloch and Pitts introduced the first Boolean switching-function neurons in 1943. Kohonen largely pioneered the study of correlation-matrix memories. His 1984 book is a standard in the field. Steinbuch put forth the idea of stable points in crossbar associative networks in his 1961 " learning matrix . " Amari et al first made the rigorous connection between associative net- works and thermodynamics. Hopfield next made the connection between stable points and energy minima by establish- ing an isomorphism between symmetric binary networks and the Ising spin-glass model of ferromagnetism in statistical mechanics. Grossberg et al have proven all of the above and more with rigorous mathematics. With Carpenter, Gross- berg developed the adaptive resonance model that, in some sense, an adaptive BAM approximates. Grossberg's 1982 and 1987 volumes are the Old and New Testaments of neu- ral networks— read them. I developed the BAM and have extended it to real- time unsupervised learning. The 1986 volumes of Rumelhart and McClelland provide an accessible introduction to neural networks from a cognitive-sci- ence perspective. FOR FURTHER READING Amari, S., K. Yoshida, and K. Kana- tani. "A Mathematical Foundation for Statistical Neurodynamics . " SI AM Journal of Applied Mathematics, vol. 33, no. I, pages 95-126, July 1977. Carpenter, G. A., and S. Grossberg. "A Massively Parallel Architecture for a Self-Organizing Neural Pattern Recognition Machine." Computer Vi- sion, Graphics, and Image Process- ing, vol. 37, pages 54-1 16, 1987. Cohen, M., and S. Grossberg. "Abso- lute Stability of Global Pattern For- mation and Parallel Memory Storage by Competitive Neural Networks." IEEE Transactions on Systems, Man, and Cybernetics, SMC-13, pages 815-926, 1983. Grossberg, S. Studies of Mind and Brain. Boston: Reidel Press, 1982. Grossberg, S. The Adaptive Brain, I & II. Amsterdam: North-Holland, 1987. Hopfield, J. J. "Neural Networks and Physical Systems with Emergent Col- lective Computational Abilities," Proceedings of the National Academy of Sciences, USA, vol. 79, pages 2554-2558, April 1982. Kohonen, T. Self-Organization and As- sociative Memory. New York: Springer- Verlag, 1984. Kosko, B. "Bidirectional Associative Memories," IEEE Transactions on Systems, Man, and Cybernetics, Fall 1987. Kosko, B., and C. Guest. "Optical Bi- directional Associative Memories." Proc. SPIE: Image Understanding, vol. 758, January 1987. McCulloch, W. S., and W. Pitts. "A Logical Calculus of the Ideas Imma- nent in Nervous Activity. " Bulletin of Mathematical Biophysics, vol. 5, pages 115-133, 1943. Rumelhart, D. E., and J. L. McClel- land, eds. Parallel Distributed Pro- cessing, I & II. Cambridge, MA: MIT Press, 1986. Steinbuch, K. "Die Lernmatrix," Ky- bernetic (Biological Cybernetics), vol. 1 , pages 36-45, 1961. 144 BYTE- SEPTEMBER 1987 FREE---Perfect Monitor Comparison Kit Return this card or call today: 1 -800-553-0305 Ofer expires: December 31, 1987 J *\/ M7 ^ I want to preview the most important innovation since the computer. I * A JLj l3 • Send my Kit today, including viewfinder and four-color slides. NOTE: To receive your FREE Kit, you must complete the information below: Name Title Company Name_ Address Zip Code _City_ .Phone # L Product usage: Business □ Personal □ Application (e.g., Graphics, spreadhsheet, etc.) _State_ Purchase Time Frame: □ Within 1 month □ Within 1-3 months □ Within 3-6 months □ Over 6 months Purchase Quantity: □ Single purchase □ 2-20 units □ 21-50 units □ 51-100 units □ Over 100 units What best describes your □ Recommend Are you interested in a involvement in the purchase rj i n Q uen ce product demonstration? ' ^£MiTH decision? (Check any that apply.) 10096/090187/20029 □ Purchase D Yes D No data systems b and x > where c and x are vectors in /?", A is an m by n matrix, and b is a vector in R m . The objective function is c T x, and the conditions Ax > b and x > are the constraints. Given (1), there is a corresponding maximization problem called the dual problem: (2) maximize b T y subject to A T y < c and y > The solutions of these problems are related, as you can see by noticing that b T y < (Ax) T y = x T (A T y) < x T c = c T x. So the maximization problem seeks to increase b T y as much as possi- ble, while the minimization problem seeks to decrease c T x, which is always greater than or equal to b T y. Consequently, if a solution can be found, it must occur when b T y = c T x. The simplex method is a linear programming algorithm that solves both the original problem and the dual problem at the same time. To apply the simplex method to problem ( 1 ) , first we rewrite the problem as (3) minimize c T x subject to Ax = b and x > where now the vector x is in R n+m . The m additional components are called slack variables since each of the m inequalities in the original constraint Ax > b requires one slack variable s k > to transform the kth inequality A k x > b k into an equality A*x - s k = b k . The vector c and the matrix A of (3) are obtained from those of (1) by extending the old c with m zeros and by adjoining — I m to the old A. Although (3) at first seems to be a trivial reformulation of (1), it is not, since the m slack variables are closely related to the variables we called y in the dual problem (2). Moreover, we now know a basic point x (0) that satisfies Ax = bin (3), since x (0) can be obtained by setting x ( ° } = Ofovk = 1 , . . . ,n and x^ = — b fc for k = 1 , . . . ,m. [Editor's note: x (0) is an (n+m)- dimensional vector ofR {n+m) ; the superscript (0) is used to denote that it is the first true value of an iterated se- quence of points x (0) ,x (1) ,x (2) ,.... The kth component of this vector is the value x ( ^ .] If x (0) > 0, it is called a basic feasible point, since it satisfies the constraints of (3). "Stage one" of the simplex method transforms a basic point into a basic feasible point, then "stage two" moves to succes- sively better (in terms of the objective function) basic feasible points until the minimum of the objective function is reached. Since there are a finite number of basic feasible points, the sim- plex method will either find the solution or detect the nonsolva- bility of the problem in a finite number of steps. Unfortunately, the number of basic feasible points increases rapidly as the num- ber of variables increases, and it is possible to construct prob- lems that trick the simplex method into visiting almost all possi- ble basic feasible points before reaching the optimum point. (See the version of the "Klee-Minty problem" included in Part 2 of our article on Khachiyan's algorithm in the September 1980 BYTE.) Thus the worst-case performance of the simplex method is exponential in n, the number of variables. We shall write this as 0(e n ); the Bachmann-Landau order notation f(n) = 0(g(n)) means that lim /!-> 00 f(n) < K where AT is a constant independent of/?. Put another way, for large n if you double the size of the problem, the running time will be multiplied by e n , and e n gets large very fast! In spite of the worst-case performance, the simplex method has worked well in practice. Since most computer implementa- continued Concepts from Linear Algebra If x is a column vector in the ^-dimensional real vector space R", then the transpose of x is the row vector x T = (jc, , x 2j . . . , x n ) . The vector e is the special vector such that e T = (1,. . ., 1). We shall write x > Owhenjt* > Ofovk = 1, ...,«. Then the positive ^-dimensional orthant P + " C R n consists of all x E R n with x > 0. The length of the vector x will be denoted |x|. Given a vector x E /?", the diagonal matrix of x is the n by n matrix D = D(x) consisting of the elements of x down the diagonal and zeros everywhere else. D(e) is called the (n- dimensional) identity matrix and will be denoted by I„. The inverse of a square matrix A is A" 1 and AA" 1 = A _1 A = In- The solutions of a homogeneous system of linear equa- tions Ax = form a linear subspace Q = (x | Ax = 0) ofR" that contains the origin and is of dimension less than n if the matrix A is not trivial. The solutions of an inhomogeneous system of linear equations Ax = b are translates of the solu- tions of the corresponding homogeneous equation since, given any particular solution x with Ax — b, then for any x with Ax = we see that A(x 4- x) - b. The ^-sphere S n i s contained i n /?" +1 and i s ( x | E x ,- 2 = I J . Thus 5° consists of the two points + 1 and - 1 on the real line R, S l is the unit circle in the plane R 2 , and S 2 is the "usual" sphere in the three-dimensional space R 3 . Similarly, the ^-simplex A" is contained in /?" +1 and is (x \ £ x ( - 1 and x > 0) . Thus A is the point + 1 on the real line, A l is the diagonal line segment from (0, 1 ) to ( 1 ,0) in the plane, and A 2 is the triangle in R 3 connecting (0,0,1), (0,1,0) and (1 ,0,0) (see figure 1 for an example). The center of the /i-simplex will be denoted by the vector a such that a T = (l/(n + l),. • .,l/(w + l)). SEPTEMBER 1987 -BYTE 147 KARMARKAR'S ALGORITHM tions use finite-precision arithmetic, the possibility of "cycling" due to degeneracy is practically eliminated because of the per- turbation caused by round-off errors while proper scaling of the initial problem removes the pitfalls of the Klee-Minty problem. (As far as we are aware, all known Klee-Minty problems depend on scaling tricks to create their effect.) Karmarkar's Restricted Problem Karmarkar's algorithm does not solve the linear programming problems (1), (2), or (3) but rather the restricted problem (4) minimize c T x subject to x E QHA" where c, x E R n+1 and Q = ( x | Ax = ] is the solution space of a homogeneous system of linear equations and A" is the n-di- mensional simplex contained 'mR n+1 (see the text box "Concepts from Linear Algebra."). We shall make three assumptions about problem (4) : (A) the minimum value of the objective function is zero; (B) the problem is feasible and the center a of the simplex A" is a feasible point (i.e., a G (I); and (C) a termination parameter q > is given, and we will accept the problem as solved when we obtain a feasible point x with ex < 2-*. Minimizing the Objective Function Suppose we wish to minimize c T x where x is on a sphere S centered at a point a. Since the solutions of c T x = are the vectors x that are perpendicular to the vector c at the origin, the solutions of c T x = A^form a family of lines paral- lel to the solutions of c T x = 0. If K > the displacement is in the direction of c, while if K < the displacement is in the opposite direction. It now becomes clear that the point on S that minimizes c T x is x', the intersection of the circle with the vector -c drawn from the center a (see figure A). Figure A: Finding a point on the circle S that minimizes c T x. After we have investigated Karmarkar's solution of this prob- lem, we shall show how to transform the general problem (3) into a problem of the form (4) and how to deal with assumptions (A) and (B). Assumption (C) is inherent in any calculation that uses finite-precision arithmetic. To make our discussion less abstract, consider example 1 as an instance of problem (4) : Example 1: minimize (3 3 -l)x subject to x E AHA 2 where Q = ( x | (2 -3 l)x = j and x Efl 3 We have sketched the region Q A 2 for this problem in figure 1 . Since the objective function (the one being minimized) is linear and the region Q A 2 is a line segment, if the function is not constant on the region, then the minimum must occur at one endpointor the other. At (3/5, 2/5, 0) T the value of the objective function is (9/5 + 6/5 - 0) = 3, while at (0, 1/4, 3/4) T the value is (0 + 3/4 - 3/4) = and assumption (A) of problem (4) is satisfied. Since the center point a = (1/3, 1/3, l/3) T has Ax = (2(1/3) - 3(1/3) + 1(1/3)) = 0, it is a member of 0, and as- sumption (B) is fulfilled. We have a problem in which the region is bounded (by the simplex A"), an interior point is known, the solution is known to be on the boundary, and an approximate solution will be satis- factory if it is within a preset tolerance of the desired value. The Initial Step Since a of the simplex does not meet assumption (C), we can- not accept it as a solution to example 1 . We must find a new point satisfying both assumptions (A) and (B) that gives a small- er objective function value. Karmarkar uses the objective func- tion to find the best direction to move from a as follows. Since c E R n+1 does not give a direction in the lower dimensional re- gion fifl A", c is projected orthogonally onto the region; this projected vector c* then points in the direction opposite to the one we want (since we are minimizing, not maximizing). Since it suffices for the algorithm to move from interior point to in- terior point, Karmarkar further simplifies the problem by mini- mizing as follows: Inscribe a sphere in A" centered at a ; then the intersection of this sphere with ft will again be a sphere of a lower dimension (because ft is a subspace of /? n+ \ and a is both the center of the sphere and in ft). But then this minimization problem is trivial (see the text box "Minimizing the Objective Function"), and we have found a point to which we should move. For technical reasons that provide a guaranteed minimum improvement (see "The Main Theorem" on page 150), Karmar- kar does not move as far as possible on each step and effectively uses a smaller sphere than the inscribing one we have described. In figure 2 we indicate this process as applied to example 1 . Since both our example and drawing are contained in three di- mensions, the final sphere in ft fl A 2 is of dimension (two points), which makes the sketch rather trivial. However, this final sphere is two dimensions less than the simplex, and this is the case in general. The General Iteration Step If we call the initial point x (0) (so that x (0) = a and the result of the initial step is x (1) ), then we must describe the construction of x (fc+1) from \ (k) for k > 0. Each of these points is interior to Qfl A", and x ( * +1) is obtained from \ ik) in a manner similar to the initial step. Karmarkar applies a projective transformation from A" to itself that moves \ ik) to the center a and fixes the corners of the simplex. But now the initial step method can be applied to find a better point in the transformed simplex, and continued 148 BYTE- SEPTEMBER 1987 r x 2 A (0, 1 , 0) T ||k a = ( 1 /3,Y3 : 1 /3) T QHA2 v / / \»(%.%.0) T (0,'/4, 3 Al)' »*^ / / / • V \ A2 /(0,0,1) T x 3 Figure 1: 7Vze region of example 1. The region ft Pi A 2 is f/ze intersection of the subs pace ofR 3 and the two-dimensional simplex A 2 . In example 1, ft = [ x | (2 -3 l)x = 0] is a plane passing through the origin and intersecting A 2 in the line segment from (0, 1/4, 3/4) T to (3/5, 2/5, 0) T . Figure 2: The initial step. The vector c* is obtained by an orthogonal projection of (3, 3, — 1) T onto the region ft C\ A 2 ; it goes behind the x, — x 2 plane. We show the inscribed one- dimensional sphere S 1 centered at a (the center of the circle). Its intersection with ft is the lower dimensional sphere S°, also centered at a . Karmarkar's algorithm selects as the next point the point x {1) part way toward the minimizing point onS°. to Figure 3: The general step: a projective transformation. To visualize a projective transformation from A 2 , itself, we imagine two separate simplexes of different sizes and orientations such that the lines joining the corresponding vertices all intersect at a common point P and the image ofx {k) in the first (left) simplex is a in the second simplex (figure 3a). After optimizing in the second simplex, the solution points a* and P determine a line that intersects the first simplex at x<* +1) (figure 3b). Connoisseurs of projective geometry will recognize this sketch as one portion of the proof of Desargues 's theorem. SEPTEMBER 1987 -BYTE 149 KARMARKAR'S ALGORITHM DISC DATA MANAGER: For people who need a lot of storage now. . . Introducing the DISC DATA MANAGER™ from Seagate. The high-capacity storage subsystem that expands module by module to meet your changing needs. Since you choose the capacity, you never pay for more storage than you need. Yet, affordable growth is there when you need it. The DISC DATA MANAGER is a SCSI sub- system that provides compatible storage for many environments. Including PC-DOS* and Novell's popular Advanced Netware? As your needs for storage sharing increase, the DISC DATA MANAGER can be converted into the LAN DATA MANAGER; a high-performance, IBM*-compatible file server. But this is just half the story. (S? Seagate then x u+I) is found by reversing the transformation to return to the original simplex. In figure 3 we show how such a projective transformation can be constructed for example 1 . We can see that for this example, the x U) s move nearer and nearer to the actual solution point on the boundary. Since x u) is sent to a by the transformation, the line segment from x u) to (0, 1/4, 3/4), the desired boundary point, is stretched at each iteration, and the next x u+1) moves closer to the boundary point but never reaches it. Thus assump- tion (C) is an essential feature in that it ensures an end to Kar- markar's method. It is worth noting that since the algorithm returns to the initial region at each step, round-off errors will not accumulate. The method is stable in that, should an x {k) be outside fifl A" from numerical error, the algorithm can continue as soon as x ik) is revised to be feasible again. An Algebraic Description We will now make our geometric description precise by giving algebraic formulas for various parts of the process. Suppose we have x {k) and we want to find x ik+1) . First we need a projective transformation T:A n -»■ A", which sends x u) to a . Let D = D (x u) ) be the diagonal matrix of \ {k) and let T(x) be D-'x/eTTx. Since D l x k) = eande T D- l x {fc) = e T e = n + 1 , we see that T(x ik) ) = a . To show that Tisa projec- tive transformation, it suffices to show that Hakes lines to lines. Notice that T(x) is really D _1 x together with a normalization so that T(x) remains in A". Since ft = ( x | Ax = ] is an affine space and projective transformations preserve affine spaces, ft ' = T(Q) is an affine space. Q ' is also the null space of AD since Ax = if and only if AD(7Xx)) = (to see this directly, just put in our definition of T{x) and notice that DD" 1 = I n+1 ). [Edi- tor's note: An affine space is more general than a vector space in that it does not possess the conventional measures of distance and angle. A null space is the subspace of a vector space whose vectors are mapped by a given linear transformation into the zero vector. ] Let B be the matrix AD augmented with a bottom row of ones (i.e., B will define Q 'HA" since Q' HA" is W together with the condition that the sum of the components of the vector is 1). Let c„ = 0U - B T (BB T ) -B)Dc be the projection of c onto the null space of B. Since the radius of the largest inscribed sphere in A" is r = l/\f(n + \)n we can improve our objective function by moving a distance no more than r (which guarantees feasibility) from a in the direction — c p . Karmarkar introduces a parameter a between and 1 (a can be set equal to 1 /4) and moves the length ar from a in the direction that decreases the value of the objective func- tion to find his new point a* = a - ar(c p /\c p \) and then we set x u+1) = Da*/e T Da* so that x u+1) is in ft HA" andr(x ( * +1) ) = a*. The BASIC program in listing 1 carries out this calculation for example 1 and arrives at the solution (x (19) ) T = (0.0003, 0.2501, 0.7497) with the termination parameter c T (x (19) )/c T a < 0.001. The exact solution is (0, 0.25, 0.75). The Main Theorem We now have an algorithm, some nice pictures, and an example that the algorithm appears to solve. The only problem is that as yet there is no reason to suppose that the algorithm succeeded for any reason other than sheer luck. Projective transformations continued 150 BYTE- SEPTEMBER 1987 KARMARKAR'S ALGORITHM Listing 1: This BASIC program, KAREX1 , is written in a version of Microsoft BASIC that should run on most microcomputers. It solves the problem given as example I in the text. 200 ' 202 ' N is number of unknowns and K is the number of equations 204 ■ 206 N = 3 : K = 1 208 ' 210 Kl = K + 1 : K2 = 2*K1 212 DIM A0(N), X0LD(N), XNEW(N), CC(N), CP(N), A(K,N), B(K1,N), B1(K1,K2), B2(N,K1), B3(N,N) 214 ' 216 ' CC is for the objective function 218 ' Bl, B2 and B3 are used for the computation of CP 220 ' R and C are "row" and "column" indices 222 ' 22^ ' Initially, set XNew = A0, the center of simplex 226 ' 228 F0RC = 1T0N: A0(C) =l/N : XNEW(C) : A0(C) :NEXTC 230 ' 232 ' T is the tolerance 23** ' 236 T= .001 238 ' 240 ' ALPHA is usually set equal to 1/4 242 ' 244 ALPHA = .25 246 ' 248 ITERATION = 250 ' 252 ' Data for constraint matrix A 254 ' 256 DATA 2, -3, 1 258 ■ 260 FOR R = 1 TO K : FOR C = 1 TO N : READ A ( R , C ) : NEXT C : NEXT R 262 ■ 264 ' Data for objective function CC 266 ' 268 DATA 3, 3, -1 270 ' 272 FOR C = 1 TO N:READ CC(C) : NEXT C 274 ■ 276 ' Set initial Value to value at center of simplex. . . 278 ' 280 V = : F0RC=1T0N:V = V + CC(C)*A0(C):NEXTC: VNEW = V 282 ■ 284 ' Now we can begin the MAIN ITERATION process . . . 286 » 300 WHILE VNEW / V > T 301 ■ 302 PRINT USING "#iW"; ITERATION; : FOR C=l TON: PRINT USING "iW.iW#";XNEW(C); : NEXT C : PRINT USING HMMMMH" j VNEW /V 303 ' 304 ITERATION = ITERATION + 1 305 ' 306 ■ Put Xnew into Xold 307 ' 308 FOR C = 1 TO N : X0LD(C) = XNEW(C) : NEXT C 309 ' 310 ' Construct the matrix B 311 ■ 312 F0RR=1T0K:F0RC=1T0N:B(R,C)=A(R,C)*X0LD(C): NEXT C: NEXT R continued ...and a lot more in the future. With the DISC DATA MANAGER, you can add more disc drives as your need for storage grows. Adding one or more drives gives you a capacity range from 160 MB to over 1 gigabyte. Using multiple drives, you can perform overlapping operations. Or back up important files on separate drives. There's even an optional 40 MB tape drive for archival storage. Best of all, the DISC DATA MANAGER is made by Seagate, the people who have built reliable performance into more than 6 million 5M" hard disc drives. For more information on the storage subsystem that grows with you, call us. 800-468-DISC. Ask for Tim. DISC DATA MANAGER and LAN DATA MANAGER are trademarks of Seagate Technology. IBM and PC-DOS are registered trademarks of International Business Machines Corporation. Novell Advanced Netware is a trade- mark of Novell. Inc. £P Seagate Inquiry 259 for End-Users. Inquiry 260 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 151 KARMARKAR'S ALGORITHM 313 FOR C = 1 TO N : B(K1,C) = 1 : NEXT C 314 ' 315 ' Zero matrices to be used in computations. . . 316 ' 317 F0RR=1T0K1 : F0RC = 1T0K2 : B1(R,C) = 0NEXT C : NEXT R 318 F0RR=1T0N : F0RC = 1T0K1 : B2(R,C) =0 NEXT C : NEXT R 319 F0RR=1T0N : F0RC = 1T0N : B3(R,C)=0 : NEXT C : NEXT R 320 F0RC=1T0N : CP(C) =0 : NEXT C 321 ■ 3,22 ' Find BBT and put in Bl 323 ' 32A FOR R = 1 TO Kl : FOR C = 1 TO Kl : FORI = 1T0N:B1(R,C)=B1(R,C)+B(R,I)*B(C,I): NEXT I : NEXT C : NEXTR 325 ' 326 ' Adjoin an identity matrix to BBT 327 ■ 328 FOR I = 1 TO Kl : Bl( I , I+Kl) =1 : NEXT I 329 ' 330 ' Row reduce BBT| I 331' 332 FOR R = 1 TO Kl 333 IFBl(R,R) <> THEN 338 33") I= Kl THEN PRINTError ! BBT is SINGULAR! " : GOTO 400 336 IFB1 (I,R) =0 THEN I = 1+1 : GOTO 335 337 FORC = ltoK2 : SWAP B1(R,C) ,B1(I,C) : NEXT C 338 FOR I = R+l TO Kl : Z = B1(I,R) /B1(R,R): F0RC=1T0K2:B1(I,C)=B1(I,C)-Z*B1(R,C): NEXT C NEXT I : 339 NEXT R 340 ' 341 ' Now back substitute to finish it. . . 342 ■ 343 ■ FOR R = Kl TO 2 STEP -1 : FOR I = R-l TO 1 STEP -1 : Z = B1(I,R)/B1(R,R) : FOR C = R TO K2 : Bl(I,C)=Bl(I,C)-Z*Bl(ft,C): NEXT C : NEXT I : NEXTR 344 ' 345 Remember to make diagonal entries Is 346 ' 347 F0RR=1T0K1 : Z = B1(R,R) : FOR C = 1 TO K2 : B1(R,C) =B1(R,C) / Z : NEXT C : NEXTR 348 ■ 349 ' BBT Inverse is now in Bl in columns Kl+1 to K2 350 ' 351 ' Now multiply BBT Inverse by BT and put in B2 3*>2 '• 353 F0RR = 1T0N : FOR C = 1 TO Kl : FOR J = 1T0K1:B2(R,C)=B2(R,C)+B(J J R)*B1 (J,C+K1): 354 355 356 357 358 359 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 NEXT J : NEXT C : NEXTR ' Take THAT and multiply by B and put in B3 FOR R = 1 TO N : FOR C = 1 TO N : F0RJ = 1T0K1:B3(R,C)+B2(R,J)*B(J,C): NEXT J : NEXT C : NEXTR ' Find I-B3 by subtracting Is on diagonal and changing signs 1 F0RR = 1T0N : B3(R,R) = B3(R,R) -1 : NEXTR F0RR=1T0N:F0RC=1T0N:B3(R,C) =-l*B3(R,C): NEXT C:NEXTR ' Multiply by D 1 FORR=lTON:FORC=lTON:B3(R,C)=B3(R,C)*XOLD(C): NEXT C: NEXTR ' Find projection of CC and call it CP 1 FOR R=l TO N : FOR C=l TO N : CP(R) =CP(R) +B3 (R, C) *CC (C) : NEXT C: NEXTR ' Find length of CP and the normalized CP 1 AA = FOR C=l to N : AA = AA + CP(C)*CP(C) : NEXT C AA = SQR(AA) : FOR C = l TO N : CP(C) = CP( C) / AA : NEXT C 1 Find a*, project back to get new-X. . . 1 AA = SQR(N*(N-1)) /ALPHA F0RC=1T0N : XNEW(C) = (A0(C) -CP(C) /AA)*X0LD(C) : NEXT C ' And remember to divide by "size" of new X to 1 complete the projective transformation back to ' the original simplex AA = FOR C=l TO N : XNEW(C) = XNEW(C) : NEXT C FOR C=l TO N : XNEW(C) = XNEW(C) / AA : NEXT C ' Find objective function Value at NEW point X VNEW = F0RC=1T0N : VNEW = VNEW + CC(C)*XNEW(C) : NEXTC' WEND ' End of main iteration loop. . . PRINT :PRINT"Tolerance reached: Vnew / Vinitial = " ; VNEW / V : PRINT PRINT USING "MM") ITERATION; : FOR C=l TON: PRINT USING "M#MM"', XNEW(C); : NEXTC : PRINT USING "MMJMMM";\niEU/V END do not preserve linear functions such as the objective function of ratio c T x/c T a . While an exposition of these proofs is beyond the the problem. Karmarkar's main result is the association of a ''potential function" with the objective function, and then a proof that his algorithm reduces the potential function by a guar- anteed amount with each iteration, and then a proof that the re- duction of the potential function is equivalent to reduction of the scope of this article, we shall state his principal result and show how the reduction in c T x/c T a then follows. Given the objective function of problem (4), let the corre- sponding potential function/(x) be continued 152 BYTE- SEPTEMBER 1987 Improve¥>urW)rd ProcessorWith Hercules. Now your word processor can have full dis- play and printing flexibility without slowing down. The secret is the exclusive Hercules graphics card mode called RamFont. Which isn't really graphics at all. Hercules Graphics Card Flu [Hercules Graphics Card *??€ules Graphics Cam rim HenetiVes focinivfi «kqS flku Hercules ™»«« Car* pi* Hercules Graphics Card PIu You see, graphics mode is slow. That's why most IBM com- patible word proces- sors run in fast, but limited text mode (they can only dis- play 256 ASCII characters). No Compromises with RamFont. Some choice. Slow RamFont lets most popular word processors display italics, subscripts, super scripts, foreign languages, different font styles and symbols etc. at lightning speed. down software by using graphics mode to dis- play italics, subscripts, superscripts, large char- acters, different fonts, etc. Or forget all that in favor of speedy text mode. Hercules solved the problem without compro- mise some time ago ... almost 200,000 graphics cards ago to be specific. Because in addition to text mode and 720x348 graphics, we include RamFont. Today's standard for text-based pro- grams. RamFont gives the flexibility of graphics at the speed of text by displaying 3072 software defined characters instead of ASCII's limited 256. Available in two m HERCULES versions for your PC: the Hercules Graphics Card Plus (for monochrome TTL monitors) and the Hercules In Color Card (for "EGA-type" and multi-sync monitors). Improve Today's Software. RamFont runs Microsoft Word complete with its excellent on-screen display of attributes and fonts. But there's a difference It's up to four times faster than the graphics mode in which it was written. Only Hercules cards let Lotus Manuscript display boldface, 1 italics, subscripts, superscripts, and many equations in text processing mode. And Ram- Font expands Broderbund For Comment's viewing area to a full 80x43. Programs like Design Enterprise's Alexander use it to display symbols (musical notes and for- eign languages) which, before RamFont, were possible only in the much slower graphics mode. Other programs including Nota Bene, Word- MARC, and Qalam all have optimized dis- plays with RamFont. In fact, every word processor can run better with Her- cules. Independent add-on packages (TurboFonts, the Enhance Star Series, Tomorrow's software will display etc. J let word pro- large and small characters in an CeSSOrS like Word almost infinite variety of styles Perfect, Multimate, , at speeds heretofore impossible. WordStar, and Display write take advantage of the same sort of display and printing flexibility. Improve The Software of Tomorrow. WYSIWYG for underlining, italics, subscripts, font display, etc. is just the beginning. A whole new generation of word processors will use RamFont to mix a nearly infinite variety of fonts in different sizes on-screen at sizzling text speed. Which will make them look like, but run much faster than most of today's desktop publishers. So, for better word processing, ask for ^^^^^^^^_ Hercules with RamFont. It's the most compatible way to Plus HERCULES improve your writing. Hercules Graphics Card Plus (For monochrome monitors) Includes the three modes your software needs most: • Standard Text — For thous- ands of text-based programs • Hercules 720x348 graphics — highest popularly supported standard • Hercules RamFont — 3,072 software definable characters improve many popular software programs. (Call for the latest list.) Standard lext- Hercules InColor Card (Formulti-synchronous and enhanced color "EGA-type" monitors.) ; Runs all Hercules monochrome software in 2 colors, most popular software in up to 16 colors selected from a palette of 64. All programs run in 2 or more colors. • Hercules 720x348 graphics in up to 16 colors — 15% higher than EGA. • Hercules RamFont — 3,072 software definable characters in 16 colors up to 12,288 in 2 colors. For more information call Hercules toll-free at: 1-800-532-0600 Ext. 304. In Canada, 1-800-323-0601 Ext. 304. Hercules We ranyour software better. Hercules Computer Technology, 2550 Ninth Street, Berkeley, California 94710; Tech Support: (415) 540-0749; Sales: (415) 540-0212. Hercules, RamFontand InColor are trademarks of Hercules Computer Technology. Other products are trademarks of their respective holders. © 1987 HerculesComputerTechnology. Inquiry 116 for End-Users. Inquiry 117 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 153 KARMARKAR'S ALGORITHM (5) /(x) = £ ln(c T x/x,) where ln(r) is the natural logarithm of the real number r and x t is the ith component of the (n + l)-dimensional point x. Karmar- kar considers this potential function under the projective trans- formation Tand shows that, in the transformed space ATI A", the point that minimizes (Dc) T (!T(x)) on the inscribed sphere of radius oc r either gives a value of zero or has reduced the trans- formed potential function by at least 6 > where the constant 5 depends on a. In particular, if a = 1/4 then <5 > 1/8. Then applying the inverse transformation, he obtains Karmarkar's theorem: Either (i) c T x ( * +1) = or (ii)/(x ( * +1) ) < f(x (k) ) - b where 5 is a constant depending on a, and if a = 1/4, then 5 > 1/8. Suppose the algorithm has run for m iterations and c T x (m) > 0. How close to the solution have we come? Applying the theo- rem repeatedly, we have/(x (m) ) < /(x (m_1) - 8 < ... < /(x (0) ) - mb. Since x° = a , we have n+l n + l £ ln(c T x ( " , )-ln(x <,,0 ,))£ £ ln(c T a )-ln(l/(n + l)))-m5 i=i i=i so n + l (rt + l)ln(c T x (m) )- £ ln(x (m) t ) < (rt + l)(ln(c T a ) + ln(fi+l))-m6 which gives us ^— 1 for x G /V, we can rewrite the original constraint Ax = b as 2jCi — 3x 2 Xt + x 2 + 1 -1 Xi + x 2 + 1 which is the same as 2X X - 3X 2 + X 3 = 0. With this done, we have reduced example lb (of type (3)) into a problem of type (4). (Notice that the image of the half -line region in TV is a line seg- ment in A 2 as we would expect, since T is a projective trans- formation.) The reduction described in the previous paragraph is general- ized easily. Suppose we have any problem of type (3) and an interior feasible point a G /V (so that Aa = b). Let T:Ps -^A fl C R"* 1 be given by continued 154 BYTE* SEPTEMBER 1987 Better Spreadsheets, Fhst With Hercules. Like to know a secret shared by nearly 200,000 Hercules RamFont users? Your 1-2-3, Symphony, Framework or Multiplan* will run better on a Hercules Graphics Card Plus or Hercules InColor Card. And we run them better in a number of ways. LES Hercules RamFont lets spreadsheets like 1-2-3 display nearly twice the data with no loss in scrolling speed. Display More Data. First, you get more data on the screen without sacrificing your ability to scroll or move around the spreadsheet fast. Hercules' exclusive Ram- Font mode lets 1-2-3 and Symphony display nearly twice as much data (from 2,000 charac- ters to about 3,400) expanding your view from 80 columns x 25 rows to a full 90x38. Microsoft Multiplan's display expands from 80x25 to 90x30 with the ability to toggle between the two. And Ashton- Tate's Framework goes from 80x25 to 90x43. More data on screen without a loss of scrolling speed means you get a more functional spread- sheet. And you get it fast. Crisp Graphics. Mono & Color. Hercules 720x348 graphics is the highest popularly supported resolution available for IBM PCs/XTs/ATs, and a wealth of compatibles. Our industry-standard 720x348 graphics mode and RamFont mode are now available for both monochrome TTL monitors (Hercules Graphics Card Plus) and enhanced color "EGA type" and multi-sync monitors (Hercules InColor Card). All of which means that built-in graphics on 1-2-3, Symphony, Framework II, SuperCalc 4, Javelin, Open Access, and Enable will be able to run in both mono and full color on either card. And so can add-on packages like Microsoft Chart, VP Graphics, and Stella Business Graphics. Compatibility Plus. Which brings us to yet another big benefit for spreadsheets and graphics. Hercules cards are completely compati- ble with each other. Any monochrome standard text, Her- cules graphics or Hercules RamFont compatible program (and there are thou- sands of them) will run in two to SIX- Hercules 720x348 resolution is now teen COlorS On the available in both mono and color for Hercules InColor integrated or add-on graphics programs. Card without changing video drivers. And that makes moving (or networking) between mono and color systems a breeze. So, for better spreadsheets ask for Hercules with RamFont. We're the graphics cards you can count on. ".' '.s ~ , - . ; Plus HERCULES Hercules Graphics Card Plus (For monochrome monitors) Includes the three modes your software needs most: • Standard Text — For thous- ands of text-based programs • Hercules 720x348 graphics — highest popularly supported standard • Hercules RamFont — 3 ,072 software definable characters improve many popular software programs. (Call for the latest list.) Hercules InColor Card (For multi-sync and enhanced color 'EGA-type" monitors.) Runs all Hercules monochrome software in 2 colors, most popular software in up to 16 colors selected from a palette of 64. • Standard Text — AUprograms run in 2 or more colors. • Hercules 720x348 graphics in up to 16 colors — 15% higher resolution tfian EGA. • Hercules RamFont — 3,072 software definable characters in 16 colors up to 12,288 in 2 colors. For more information call Hercules toll-free at: 1-800-532-0600 Ext. 304. In Canada, 1-800-323-0601 Ext. 304. Hercules \^ runyour software better. Inquiry 118 for End-Users. Inquiry 119 for DEALERS ONLY. Hercules Computer Technology, 2550 Ninth Street, Berkeley, California 94710; Tech Support: (4 15) 540-0749; Sales: (415) 5404)212. Hercules, RamFont and InColor are trademarks of Hercules Computer Technology. Other products are trademarks of their respective holders. © 1987 Hercules Computer Technology. *Multiplan French and German version now available. English version available fall 1987. KARMARKAR'S ALGORITHM Figure 4: Reduction to the restricted problem. The projective transformation T sending P + 2 (the "first quadrant ") to A 2 can be visualized as follows: Imagine tipping the sketch ofP 2 so that "infinity'' dips down to the horizon (a). What you now see is a triangle bounded by the two axes and the horizon line or "line at infinity" (b). (a) ^- — x 2 ;;:;:;>>. (b) x 2 (O.Va) ;*> Tip down :: : : : : : : :£> • ■•■ ■ c Xi Pi X2 'Line at infinity X"1 XrAxis A* (7) X k = x k la k (XM) + • ■ • + (Xj0n) + 1 for/: = 1, . . . , n\ and X n+i 1 (Zi/fli) + ■ ■ • + (x„/a n ) + 1 where, as in the example, lowercase components are for the vec- tor in P+ n while uppercase components are for the vector in A n (which requires /i+l components since A" C R n+1 ). As in the example, the system of equations Ax = b in problem (3) is transformed into a homogeneous system as required by problem (4) since we have the additional component X n+ i , which can be used to eliminate the constant terms in the constraints of (3). Moreover, assumption (B) is satisfied since T sends the feasible point a to the center a of the simplex A". It remains for us to explain two things: first, how the interior feasible point can be found (since it is essential for the construc- tion of the transformation T)\ and second, what to do if the minimum of the objective function is not known. Feasibility Problems Given a system of equations Ax = b as in problem (3), we wish to find a solution a in the interior of /V. Let x = e (so x is in the interior of /V) and let b = Ax - b. If b = 0, then x is feasible and we are done, so let us suppose that b is not zero. We introduce an artificial variable X and consider the problem (8) minimize X subject to Ax — b = Xb where x > and X > But x = x and X = 1 is a feasible point for (8), and this problem is of the form (3). If the minimum of X is zero, then we have solved Ax — b = 0, and we have a feasible point for problem (3). Of course, if there is no feasible point to be found, then problem (3) has no solution anyway. Since the feasibility problem corresponding to example lb is rather trivial, let us consider a slightly larger problem that might come from a problem of the form (1). The four inequalities x l <3 Xi > 2 x 2 < 5 Xi >4 form the boundaries of a 1 -by- 1 unit square in P + 2 whose upper left corner is (2, 5) T . If we introduce four (nonnegative) slack variables, we can re- write these inequalities as equalities: Xi Xi + *I ■ s 2 x 2 Xi + Sz - s 4 = 3 = 2 = 5 = 4 We now have a problem in P + 6 . Setting x = e and b = Ax - b, we find that b T = (- 1 , -2, -3, -4), so our problem can be rewritten as Example 2a: minimize (00 00 00 1)Y subject to i 1 1 00 1 1 00 -1 02 1 1 03 1 00 -1 4 Y = and Y6/V continued 156 BYTE* SEPTEMBER 1987 De-cloneKmr Compatible With Hercules. Most popular IBM PC/XT/AT compatible computers really stand out with Hercules Graphics Cards. That's because our cards can actually improve the way soft- ware runs on the COMPAQ DeskPro 286/386, Lead- ing Edge Model D, and IBM compatible models from Epson, Hewlett- Packard, Kaypro, NCR, Tkndy, Zenith, and many others. / I r"\ n ii h can have the true text speed display of italics, subscripts and superscripts. And, it ena- bles add-on packages to open up whole new areas of font and foreign character display for programs like WordPerfect, WordStar, and Multimate; while providing power- ful capabilities for soft- ware of the future. l I Three Modes You Need for Your Software. / r I / -Ai ~0 Plus Both the Hercules Graphics Card Plus (for TTL monochrome monitors) and new Hercules InColor Card (for multi-sync and enhanced color "EGA type" monitors) contain the three modes you need to get the most out of software on your compatible. High Resolution Graphics: Your PC benefits from Hercules' crisp 720x348 resolution- the highest popularly supported standard- in monochrome, or up t.o 16 colors. RamFont Mode: This powerful new mode allows popular programs to dis- play up to 3,072 software definable characters instead of the fixed 256 ASCII character set. Text Mode: Thou- sands of standard text programs run on both Hercules cards. With RamFont, Lotus 1-2-3 and Symphony display nearly twice their regular spreadsheet data . . . with no loss in scrolling speed. Microsoft Word runs up to four times faster. Lotus Man- uscript, and many other word processors, We Love Compatibility Our Graphics Card Plus and new InColor | Card are completely compatible with each other. So you can Hercules 720x348 resolution and RamFont are now available inup to 16 colors on your multisync or "EGA Tljpe" monitor. easily move your software from mono to color systems and back again without worrying about video drivers. So to get the most out of your software, specify a Hercules Graphic Card Plus or a Hercules InColor Card for your sys- tem. And make your compatible more than a clone. Hercules Graphics Card Plus (For monochrome monitors) Includes the three modes your software needs most: • Standard Text— For thousands of text-based programs • Hercules 7 20x348 graphics- highest popularly supported standard • Hercules RamFont — 3, 072 s oftware definable characters improve many popular software programs. (Call. for the latest list.) HERCULES Hercules cards with RamFont let 1-2-3, and other popular spread- sheets, display nearly twice the data with no loss in scrolling speed. Hercules InColor Card (For multi-sync and enhanced color "EGA-type" monitors.) Runs all Hercules monochrome software in 2 colors, most popular software in up to 16 colors selected from a palette of 64. • Standard Text — All programs run in 2 or more colors. • Hercules 720x348 graphics in up to 16 colors — 75% higher resolution than EGA. • Hercules RamFont — 3,072 software definable characters in 16 colors up to 12,288 in 2 colors. For more information call Hercules toll-free at: 1-800-532-0600 Ext. 304. In Canada, 1-800-323-0601 Ext. 304. Hercules \^ runyour software better. Inquiry 120 for End-Users. Inquiry 121 for DEALERS ONLY. Hercules Computer Technology, 255Q Ninth-Street, Berkeley, California 94710; Tech support: (4 15) 540-0749; Sales: (415) 540-0212. Hercules, RamFont and InColor are trademarks of Hercules Computer Technology. Other products are trademarks of their respective holders. © 1987 Hercules Computer Technology. Inquiry 174 New Quark /PC Reg. Price Single Board Computer Base model 5 J 5" x 8" 9&*395. Quantity discounts available • IBM PC® compatible single board computer mounts to 5 1 M" drive • Includes Floppy Disk & Color Graphics CRT Controllers plus more AISO includes: Legal BIOS • Boots MSDOS® 3,0 • Printer tort • 2 Serial Forts • 256K RAM • Clock Speed at 4.77 MHz • Alphanumerics and Graphics Modes for Color Video Controller • Standard IBM® Keyboard Port. Options include: 512K RAM • Piggyback I/O channel OEM Expansion Board • XT-Compatible Hard Disk SCSI Interface • Real Time Clock with battery-back-up • Clock speed of 9.5 MHz (Twice as fast as a PC) The Megatel Quark/PC is for OEM and end user applications that require PC compatibility in a compact single board computer. The Quark/PC BIOS will run most IBM PC®software including Flight Simulator and Lotus^. To meet your specifications a set of options let you add memory, speed and XT-compatible hard disk interface. Not only does it quickly mount to a 5 1 M" drive, it also comes with floppy disk and CRT color graphics controllers — all for just $395. To order orenquirecall us today. Megatel Computer Corporation (416) 745-7214 150 Turbine Drive Weston, Ontario M9L2S2 U.S. Address: 1051 Clinton St., Buffalo, NY. 14206 Distributors: United Kingdom: Densitron Italy: NCS Electronics (0959)71011 (0331)261-570 (0959)71015 Australia: Asp Microcomputers (02)500-0628 Quark is □ registered trademark ol Megatel Computer Corp IBM PC. IBM and PCOOSare registered trademarks ot IBM Corp Lotus is a registered trademark of Lotus Development Corp MSDOSis a registered trademark ol MlcrosoftCorp. megatel Sate » (DOMM1CTKOM2 This internal 720K3.5" disk drive is a "drop-in" replacement for 5.25" drives! It's the ideal solution for exchanging data between your PC/XT/AT and the new generation of laptops. Disk format is compatible with IBM, Toshiba and Zenith portables. The Model 853W drive kit contains everything you need, including interface adapters, premium SONY drive, and complete documentation. Uses your existing disk controller (no additional slots required). Requires DOS 3.2 for maximum performance. Ask about our Model 873W (1.44MB). $$ SAVE $$ SONY DISKS JkEtti mniLB INCORPORATED $159.95 + FRT. & TAX e» 2734-C Johnson Drive P.O. Box 3717 Ventura, CA 93006 IMMEDIATE DELIVERY! Call 805-658-7466 or 805-658-7467 KARMARKAR'S ALGORITHM Here^i, ... , y 6 correspond to*!, ... , x t and y 7 to X. But this problem is similar to example lb, and we can apply the projec- tive transformation T:P + 7 -> A 7 C R 8 given by Y k = y* * + + 3^7 + 1 f or k = 1 , ... , 7 ; and Y 8 = y\ +-".:;+ y 7 + 1 (using our usual notation) to obtain a problem in the form of problem (4): Example 2b: minimize (0 1 0)Y subject to / 1 1 10 0-10 |0 10 1 to 1 Y = and YEA 7 After this problem is solved by Karmarkar's algorithm, the in- verse projective transformation must be applied to return to our original coordinates in /V. Of course, we are interested only in the first two coordinates; the rest are the four slack variables and the artificial variable. The BASIC program KAREX2 carries out this calculation for example 2 and arrives at the solution*/ 26 ' = 2.46123 and;c 2 <26) 4.42794 with a tolerance of 0.00 1 . [Editor's note: See the end of the article for more information on KAREX2 and KAREX3. These two programs are minor variations on listing 1.] An Inf easible Problem Suppose example 2 were not feasible. How would we have dis- covered this using Karmarkar's algorithm? From equation (6) we saw that if the algorithm is carried out m times, the ratio c T x (m) /c T a must be no more than a certain size. Thus given the q from assumption (C) of problem (4) , we can calculate in ad- vance the maximum number of iterations we will run the algo- rithm. If after that many iterations we do not have an answer within the required tolerance, then our system of equations is not feasible. For example, let us alter the situation of example 2 to require Xi > 3 and x x < 2 instead of 2 < x x < 3 . Proceeding as before, we obtain Example 3: minimize (0 1 0)Y Y = and YEA 7 The BASIC program KAREX3 attempts to solve this problem in the same manner that KAREX2 solved example 2, but we have added a "failure" detection routine: At the end of each iteration, the program tests inequality (6) and ends if it does not hold. We decided to use inequality (6) in our example rather than the later inequality Karmarkar used to estimate the number of itera- tions because dropping the £ ln(* fc (m) ) terms results in a rather large overestimate of the number of steps needed. The program fails at iteration 26 where x, {26) = 1.81118 and x 2 (26) = 3.02786. continued 158 BYTE- SEPTEMBER 1987 Inquiry 293 Finally! A printer as versatile as your PC By giving you extraordinarily easy access to all the printout options your office needs, the new Facit B-line matrix printers really let you exploit the full potential of your PC. Such as when you want to change from high throughput draft to perfect quality NLQ - just flick the rotary switch on the front panel. When you want to change font - just plug in a new font card. When you need to change from continuous forms to cut-sheets - the printer loads the paper for you. And while the beauty of the B-line concept improves the impression made by your PC, the attractive design and low noise level make the printers perfect for every office environment, too. Check out the facts below and go for a test drive at your nearest Facit representative. • B3100: 80 columns, 128 lines/minute* (250 cps) • B3150: 136 columns, 128 lines/minute* (250 cps) • B3350: 136 columns, 109 lines/minute* (200 cps), 18-needle print head for 100 cps NLQ • Rotary switch for fast print quality selection • Easy operation with soft set-up in national language • Extensive paper handling - push/pull tractor, tear-off, automatic loading of single sheets. Optional single or double bin sheetfeeder • Low noise key • Facit, IBM Propr inter and Epson FX/JX emulations • Parallel and serial interfaces • 4-color option • Extra fonts by means of plug-in card Inquiry 93 * 80 cd, 10 Cfii. Head Office: Facit AB i S-172 9 lSundbyberg. Sweden. Phone: 468 764 30 00. IBM and Epson are reg.tradi USA : Facit Inc. P.O. Box 334, Merrimack. NH 03054 Phone: (603)424-8000 AUSTRALIA: EAI Electronics Associates Pty Ltd., 427-3322. AUSTRIA: Ericsson Information Systems GmbH, 0222-613641. BELGIUM: Ericsson S.A., 02-2438211. CANADA: Facit Canada Inc., 416-825-8712. CYPRUS: LBM (Lillytos) Ltd 516 46 34. DENMARK: Facit A/S, 02-633311. FINLAND: OY Facit, 90-420 21. FRANCE: Facit S.A., 1-4780 7117. GREAT BRITAIN.- Facit 0634-4020 80. GREECE: Com puter Application Co. Ltd., 01-671 97 22. HONGKONG: Gilman & Co. Ltd., 5-893 00 22. ICELAND: Gisli J.Johnsen HF, 354-64 12 22. INDIA: Forbes Forbes Campbell & Co. Ltd., 22-2048 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-4 79-7570. KOREA: True Trading Co. Ltd., 2-783-3855-7. THE NETHERLANDS.- Facit B.v:, 3480-21784. NEWZEELAND-. Northrop Instruments and Systems, 501-801, 501-219. NORWAY: Ericsson Information Systems A/S, 02-35 58 20. POfl7t/GAL.RegiscontaSarU- 56 00 91.SINGAPORE: Far East Off ice Eqpts Pte Ltd., 745 82 88. S/ J i4;MPerifericosS.A.,4-579081.Siy£D£:MEricsson Information Systems Sverige AB, 08-28 28 60. SWITZERLAND: Ericsson Information Systems AG, 01-821 59 21. USA: Facit Inc., (603) 424-8000. WEST GERM ANY -Facit GmbH,0211-61 090. Inquiry 53 COMPETITIVE EDGE SPEED SHOP since 1980 1421 E. GOLDSMITH, PLYMOUTH, Ml 48170 (313) 451-0665 16 MHz 3 8 6 BASE SYSTEM $3295. 1024K, 40MB HD, 1.2 MB FLOPPY, FDC/HDC, 2 SERIAL, 1 PARALLEL PRINTER PORT, 8 SLOTS, MSDOS 3.1, KEYBOARD, COMPATIBLE WITH IBM AT(r). 20 MHz 386 SYSTEM iomk«m> 12 MHz AT COMPATIBLE 640K ON MOTHERBOARD, CASE, POWER SUPPLY & KEYBOARD SETUP PROGRAM. OPTION A 1.2 MB FLOPPY & HD/FD CONTROLLER $3795. $849. HI-SPEED MONO CARD HI-SPEED EGA CARD NEC GB-1 EGA CARD 20MB HD 65 ms 40MB ST25/40 ms 40MB HD 28 ms 6053 70MB HD 28 ms 6085 $300, $99. FLAT SCREEN AMBER MONITOR $119, $325. EGA MONITOR 640 x 350 $425. $399, NEC MULTI-SYNC $549. $299. 72MB TOSHIBA 25 ms $1095. $495. 80MB ST4096 28 ms $1095. $699. 112MB 25ms NEWBURY 1140 $2295. $895. 231NB MAXTOR HD 28 ms $2995, 19" MITSUBISHI, COLOR CAD MONITOR - ONE ONLY $1 895. 10MHz AT COMPATIBLE $695. 640K ON MOTHERBOARD, CASE POWER SUPPLY & KEYBOARD, SETUP PROGRAM. OPTION A 1,2 MB FLOPPY & HD/FD CONTROLLER $300. OPTION B STD COLOR CARD $99. STD COLOR MONITOR $309. CE EGA CARD $229. CE EGA MONITOR $425. XT COMPATIBLE 20MB, MONO CARD & MONITOR 640K XT COMPATIBLE 20MB, STD COLOR CARD & CRT 640K 12 MHZ BASIC XENIX SYSTEM, 1024K, 30MB HD, 3 USER INCLUDES XENIX RUN TIME, MONO CARD & MONITOR PRINTERS, SLAVES, NOVELL, XENIX, DOS AVAILABLE $1195. $1369. $2595. AT IS A REGISTERED TRADEMARK OF INTERNATIONAL BUSINESS 11ACHINES. XENIX IS A TRADEMARK OF MICROSOFT. KARMARKAR'S ALGORITHM Eliminate Confusion Reduce Training Time Increase Productivity Need Custom Keytops? Call us at 602 634-7515 l-iooleon ■ ■ CORPORATION P.O. Box 201, Dept. BY, Cornville, AZ 86325 KEYTOPS — Kits to support most software, including: PC to 5251 $21 .95 Display Write 3 $21 .95 PC to 5520 $29.95 WordPerfect 4.1 $29.95 KEY EXPANDERS Touchdown'" key expanders enlarge small, critical ci ii i u'lxjto-i oc ke y s (Return, Shift, Backspace, etc.) on the IBM I-ULLKI I 3^1.95 PC and look-alikes to full-size, AT-style keys. Full MINI KIT $10.95 kit has 12 separate expanders. Mini-Kit: Enter/Ret, both shifts, backspace. All kits support LED where u Black u Gray needed. Must specify keyboard. Language conversions available! □ Send me FREE INFORMATION Specify Keyboard Make/Model: Name Address City, SI.. Zip D VISA I I I I I _ I I D MC#_ _Exp._ I ■ Visa or MC orders:602 634-7515 Same Day Shipment • U.S. Postage Paid j Inquiry 125 for End-Users. 160 BYTE* SEPTEMBER 1987 Inquiry 126 for DEALERS ONLY. Solving an LP Problem Now we can put all these pieces together and explain how to solve the linear programming problem (3). One way would be to rewrite the problem as a (giant) feasibility problem (as we de- scribed for Khachiyan 's algorithm) and then proceed to solve it. While this way of solving a linear programming problem looks nice, it defeats the advantage of Karmarkar's approach: the use of the objective function as a gradient to find the "best" direc- tion to move. Karmarkar's solution is as follows: First, find a feasible point in the interior of P + ". If no point can be found, then there is no solution to the problem and we are finished. Given a feasible point, construct the transformation (7) and reduce the problem to the restricted form (4) with assumptions (B) and (C) fulfilled. Now we must deal with assumption (A). If the actual mini- mum is known, we can proceed as before by altering the objec- tive function (as we did with example la). But what if the mini- mum value is unknown? We can at least put upper and lower bounds, say u and / , on it (these may be ridiculous overesti- mates, but since the objective function is a linear function on a bounded region, such bounds must exist). Now divide the dif- ference between these bounds into thirds and set l x = l + (w — / )/3 and u x = l + 2(w - / )/3. If we pretend that the minimum actually is U and run the algorithm (modified so that if it finds a point x (m) with c T x (m) < then it backtracks along the line seg- ment to x (m_1) to find the point with c T x = and returns this value as x (m) ), we will find out whether or not the real minimum is between / and l x . If it is, we have new upper and lower bounds and we can repeat this process; if it is not, we can pretend that u x is the minimum and try again. Either way, the range between the upper and lower bounds is reduced by either 1/3 or % each time. In this way, we can zero in on the actual minimum of the objec- tive function very quickly. Some Implementation Comments As you may have noticed, we have used a = e, the unit vector, in our examples; this was done only to simplify the arithmetic. The projective transformation T:P + n -► A" in equation (7) is de- fined for any point a in the interior of TV; clearly, the more "intelligent" your choice of a , the quicker Karmarkar's algo- rithm will find the solution. Karmarkar's estimates of the relation between the a and 5 were crucial to the proofs of his theorems. Since the feasible point used as the initial point in his algorithm is arbitrary, it is clear that as a practical matter, a may be allowed to vary from step to step. One may choose a so that each successive approxi- mation to the solution remains feasible and interior to A n . You are invited to experiment with various as in the example pro- grams we have included. While we have touched on the issue of complexity, our dis- cussions have been far from complete. It is difficult to compare the simplex method and Karmarkar's algorithm since the work involved within each of their respective steps is different. The main bottleneck in Karmarkar's algorithm is the matrix inver- sion step needed for the orthogonal projection of c to c p . In our sample programs, we have made no attempt at speed: We find (BB T ) _1 by brute force row reduction of BB T |l m+1 . Karmarkar also describes a modified algorithm in which the computations in the (k+ 1 )th step use those of the kth step, and he is able to reduce the arithmetic operations required for each step from 0(n 3 ) to 0(n 2 5 ). Readers interested in this modification should consult Karmarkar's original paper (cited at the beginning of this article). ■ [Editor's note: The source code for KAREXLBAS, KAREX2- .BAS, and KAREX3.BAS is available on disk, in print, and on BIX. See the insert card following page 256 for details. Listings are also available on BYTEnet; see page 4. ] What happened to the article on page 208? Someone ahead of you knows. He has information you'll never see. Make a career move now! Keep up with your peers — order your own subscription today. Save $20 of I the newsstand price — 12 issues at $22 instead of $42. If you're not satisfied write "cancel" on your invoice and keep the first issue free. D U.S. □ Canada/ Mexico □ Europe-A ir Delivery D Worldwide-Surface Delivery $22.00 (1 yr.) $25.00 U.S. (1 yr.) $69.00 U.S. (1 yr.) $37.00 U.S. (1 yr.) □ Bill me (North America only) □ Payment enclosed (U.S. Funds drawn on a U.S. bank only) □ Charge to my DVISA □ MasterCard Card f Expires Country _ Code . Name. Address . 479ASU City/State . Signature . For direct ordering call toll free weekdays 9:00 am— 5:00 pm EST: 1 800 423-8272. (In New Jersey: 1 800 367-0218). Please allow 6-8 weeks for processing your subscription EVTE m THE SMALL SYSTEMS JOURNAL BUSINESS REPLY MAIL FIRST CLASS MAIL PERMIT NO. 201 PISCATAWAY, NJ POSTAGE WILL BE PAID BY ADDRESSEE BYTE Subscription Dept. P.O. Box 6807 Piscataway, NJ 08855-9940 NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES l,,,l,,l,l,,l,,,ll,,ll,,l,l,,l,l,,,l,l,,ll,,,ll,,l Your Source for This Season's Top-Selling MS-DOS Computer Products Fall 1987 EPSON FX-286E • 240 cps Draft/40 cps NLQ • 132 Column, 8K Buffer • Friction/Tractor Feed No. EPFX286E $439 NEC 1401 Multisync • Multisync RGB • 800 x 560 Display • 6 Text Switchable No. NEC1401 $549 HAYES Smart mod em 1200 • 300/1200 Baud External • Automatic Speed Selection • Voice/Data Transmissions LOTUS 1-2-3 No. ICLQ01 $299 No. HY1200 $299 Hub VIDEO SEVEN VEGA Deluxe • 752 x 410 Display • EGA, CGA, MGA, HGC • 256K-DRAM Screen Buffer No. VSEGAD $319 COMPUTER MAIL ORDER 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 Fax No. 717-327-1217 CMO. 477 East Third Street, Dept. A109X, Williamsport, PA 17701 All major credit cards accepted SYSTEMS PC-TOO 8MHz XT Systems BASIC SYSTEM CONFIGURATION: NEC V-20 CPU, 4.77 - 8 MHz Speed 640K Mother Board Memory 8 I/O Expansion Slots 360K Floppy Disk Drive Floppy Drive Controller Clock Calendar with Battery Backup 150 Watt Power Supply Parallel and Serial Ports IBM Compatible BIOS 100-Key AT-XT Switchable Keyboard 24 Hour Burn-In Backed by our One Year Warranty BASE SYSTEM PRICE: With Dual 360K Floppies With 20 MB Hard Drive and Controller. $559 ..$639.00 $899.00 PC-TOO 8 MHz AT Systems BASIC SYSTEM CONFIGURATION: 8 MHz 80286 16-Bit Intel CPU 51 2K Motherboard Memory Expandable to 1 MB 8 I/O Expansion Slots (6 16-Bit & 2 8-Bit) Clock Calendar with Battery Backup 1.2 MB Floppy Disk Drive Hard Disk/Floppy Controller Card 195 Watt Power Supply Fully Compatible High Speed Bios 84 Key 5 151 -Type Style Keyboard 5 Half-Height Front Storage Slots 24 Hour Burn-In Backed by our One Year Warranty $99 BASE SYSTEM PRICE: With 20 MB Hard Disk Drive $1299.( With 40 MB Hard Disk Drive $1469.( PC-TOO 12 MHz XT Systems PC-TOO 10 MHz O-Wait State Systeir BASIC SYSTEM CONFIGURATION: NEC V-20 CPU, 12 MHz Speed 640K Mother Board Memory 8 I/O Expansion Slots 360K Floppy Disk Drive Floppy Disk Drive Controller Clock Calendar with Battery Backup 150 Watt Power Supply IBM Compatible BIOS 4 Half Height Front Storage Slots 100-Key AT-XT Switchable Keyboard 24 Hour Burn-In Backed by our One Year Warranty $ 579 BASE SYSTEM PRICE: With 20 MB Hard Drive and Controller $919.00 With 20 MB Hard Drive and 40 MB Tape $1269.00 BASIC SYSTEM CONFIGURATION: • 10 MHz 80286 16-Bit Microprocessor • 51 2K Motherboard Memory Expandable to 1 MB • 12 I/O Expansion Slots (6 16-Bit & 6 8-Bit) • Battery Backed-up/Real-Time Clock • 1.2 MB Floppy Disk Drive • Dual Hard Disk/Dual Floppy Controller Card • 238 Watt Power Supply • Fully Compatible High Speed BIOS • 5 Half-Height Front Storage Slots (4 exposed) • 101 -Key Enhanced Keyboard • Microsoft MS-DOS with GW-Basic • 24-Hour Burn-in • Backed by our One Year Warranty BASE SYSTEM PRICE: * 1 49! With 20 MB Hard Disk Drive $1799.( With 40 MB Hard Disk Drive and 40 MB Tape$2249.( CALL FOR COMPLETE CONFIGURATIONS. MONITORS OPTIONAL ON EACH PACKAGE. FCC APPROVED. SYSTEMS OMPAQ eskPro 386 Model 40 80386 Processor, 16 MHz 1 MB RAM, 1.2 Floppy 40 MB Hard Drive Parallel and Serial Ports 3. CQ3864 *4999 IBM AT-339 Enhanced AT • 1.2 MB Floppy Drive • 512K RAM, 8 MHz • 30 MB Hard Drive • Enhanced Keyboard No. IBAT339 $3699 IBM PS/2 Model 50 • 80286, 10 MHz • 128K ROM, 1 MB RAM • 20 MB Hard Drive • 1.44 MB 3.5" Disk Drive No. IBS50 $2999 1 - ■ ■ 1 1 , tuttfSpoetl n mi Will ■.' •.' ■; ■: ■: ■: •: \ \ i t I t 1 H 0SHIBA -1000 Lap Top Fully IBM compatible 512K RAM 720K 3V 2 " Disk Drive 640 x 200 Pixels t. TB1000 $999 NEC Multispeed • Dual 3 1 /2 M 720K Floppies • 640K RAM, 512K ROM • Super Twist LCD Screen • 9.54 MHz CMOS V-30 No. NIMS $1499 COMPAQ Portable III Model 40 • 640K RAM • 40 MB Fixed Drive • 80386 Processor • 1.2 MB Diskette Drive No. CQ5P40 $4899 Execution. Did you know that CMO ships 90% of its orders the same or the next day. Our sophisticated mainframe system enables us to achieve efficiencies that have our competition green with envy. CMO provides many important customer services including toll-free ordering, toll-free order status and toll-free customer support. We offer free catalog membership and we don't require our customers to pay money to join a club in order to buy from us. We offer alternative methods of shipping to best suit your needs. For a nominal fee our trained technicians will assemble your system, installing boards, drives and other options. We will burn your system in and test it so when you recieve it all you need to do is unbox it and plug it in. Our qualified, courteous sales consultants are ready to serve you. Phone today. Call toll-free: 1-800-223-8950 Outside the U.S.A. 717-327-9575 Telex 5106017898 Most major credit cards accepted. Fax No. 717-327-1217 [« COMPUTER MAL ORDER i MULTIFUN 1 - FREE OPTICAL MOUSE f| QuadEG^k NEC GB-1 Board • 640 x 480 Display • 256K Display RAM • Dr. Halo II Software No. NECGB1 *319 QUADRAM QuadEGA Prosync • Free Mouse (limited time) • 752 x 410 Display • AutoSelect Display Mode No. QU8600P *339 INTEL Above Board/286 • 512K Expandable to 2 MB • Conventional, Expanded and Extended Memory • For AT or XT up to 12.5 MHz No. IN4020 $349 INTEL Inboard 386/AT • Converts AT to 386 1 6 MHz operation • Up to 1 MB with 32 bit memory on board No. INIB3000 $1459 NSI Smart EGA Plus • Runs all standards in color • 800x600 or 640x480 Modes • Half-Size, supports IBM PS/2 VGA EVEREX Autoswitch Enhancer • Autoswitch EGA • 132 Column Operation • Parallel Printer Port No. NSI04 $289 No. EV657B $149 I HERCULES MONOCHROME DISPLAV It's another ZUCKEWBQ4RP HERCULES Graphics Card Plus • 720 x 348 Bit Mapped Graphics • RAM Font Software Included • Parallel Port ZUCKERBOARD Mono Graphics Card • 720 x 348 Pixel Graphics • Hercules Compatible • 64K RAM, Parallel Port No. HEGCP $199 No. HX05 $99" AST AST BOCA BOCA Six Pak Plus • 64K to 384K Memory • Clock, Serial, Parallel, Game Port • SuperPak, SuperDrive Software Advantage • Up to 3 MB of Memory • Supports PC-DOS and Xenix • Parallel/Serial Ports Top Hat • 6 or 8 MHz Speed • 128K RAM Top Off • 1 Year Warranty BocaRam AT • 16 Bit, Runs to 16 MHz • 1 MB - 4 MB Memory • Expanded, Extended, LIM No. ATS1 $129 No. ATADV $319 IE5 m No. BOTH128 $99 99 No. BOAT10 $279 tt'* another QUADRAM Silverboard • 0-640K Memory • 2 Serial, Parallel, Game Clock • Quadmaster, PolyWindows Software QUADRAM Model 30 Quadboard • IBM PS/2 Model 30 compatible • 256K to 2 MB Memory expansion • Parallel, Serial Ports ZUCKERBOARD PS/2 50/60 Multifunction Board • 256K to 3 MB Memory • Parallel and Serial Ports • EMS and Diagnostic Software No. QUSQB *119 No. QUPS30 $299 EVEREX RAM 4000 • IBM PS/2 Model 50 & 60 • Up to 4 MB Memory • Expanded, Extended, LIM No. HX15 $249 No. EV136 $379 COMMUNICATIONS HAYES Smartmodem 1200B • 300/1200 Baud Half-Size • Hayes Standard "AT" Commands • Smartcom II Software included No. HY1200B $319 HAYES Smartmodem 2400 • 300/1200/2400 Baud External • Non-Volatile Memory • Stored Number Dial No. HY2400 *499 TU-^ 7/~ HAYES Smartmodem 2400B • 300/1200/2400 Baud Internal • Bell & CC ITT Compatible • Synchronous and Asynchronous No. HY2400B *499 EVEREX Evercom 920 • 300/1200 Baud Half -Size • Bell 103/212A Compatible • Auto Answer/Auto Dial No. EV920 $ 99 99 EVEREX Evercom 24 • 300/1200/2400 Baud Internal • Half/Full-Duplex • Bell 212 & CC ITT No. EV940 $219 MODEM Hurt**** It's another ZUCKERBOARD The Nude Modem • 1200 Baud Half Size • Fully Hayes Compatible • PC Talk III Software No. HX12 $89" ANCHOR Volksmodem 12 • 300/1200 Baud External • Hayes Compatible • Auto Dial/Auto Answer No. ANVM12 $8999 ANCHOR Lightening 24 • 300/1200/2400 Baud External • Battery Backed-up Memory • Auto Answer/Originate No. AN16 $299 I ^ B .-Robotics ■ illiUfl 2400PC MODEM U.S. ROBOTICS Direct 2400 PC • 300/1200/2400 Baud Internal • Carrier detect override • Audio phone line monitor No. UR2400 $189 FIFTH GENERATION The Logical Connection • Programmable connection board • 4 Serial, 2 Parallel in, 2 Parallel out • Daisy-chainable up to 315 devices No. ICFI02 $299 IDEA 5251 Terminal Emulation • Local Twinax Communication • IBM 34/36/38 Compatible • Printer Support, Hot Key No. IE5251 *579 IEM& '^-l+M DCA IRMA Board 2.2 • Native Mode Coaxial Link • IBM 3270 Controller Compatible • SNA/SDLC or BSC No. IRMA2 *799 Competitive Pricing. Did you know that CMO will meet or beat any legitimate competitive price. That's why our client list keeps growing. More and more people are discovering that CMO can save them a lot of money. Just call our toll-free number with your best price and allow one of our courteous and knowledgeable consultants to beat the price — and save you money. Call toll-free: 1-800-223-8950 Outside the U.S.A. 717-327-9575 Telex 5106017898 Most major credit cards accepted. Fax No. 717-327-1217 COMPUTER MAIL ORDER INTERS NEC P660 • 24-Wire Dot Matrix • 216 cps Draft/65 cps NLQ • 360x360 Dots per inch No. NIP660 *459 PANASONIC KX-P109H • 160 cps Draft/32 cps NLQ • 9-Pin Head, 80 column • IBM Pro Printer Emulation No. PA1091 H79 PANASONIC KX-P1595 • 240 CPS Draft/21 CPS NLQ • 16.5" Paper Width • Rear Push Tractor Feed No. PA1595 *449 brother M-1509 Dot Matrix • 180 CPS Draft/45 CPS NLQ • Auto Paper Loading • Friction and Pin Feed No. BRM1509 $389 brother HR-40 Daisywheel • 40 CPS, 136 Columns • 2 Color Printing Friction and Forms Tractor No. BRHR40 $589 brother 2024L 24 Wire • 160 CPS Draft/96 CPS NLQ • 136 Column/272 Condensed • Tractor and Friction Feed No. BRL2024 *599 OKIDATA ML-192 PIUS • 9 Pin Dot-Matrix • 200 cps Draft/40 cps NLQ • 80 column, 8K Buffer No. OK192I $329 OKIDATA ML- 193 PIUS • 200 CPS Draft, 40 CPS NLQ • 8K Print Buffer • 9 Wire, 132 Column No. OK193I $479 OKIDATA ML-293 • Dual 9 Pin Dot-Matrix • '240 cps Draft/100 cps NLQ • 136 column, 8K Buffer No. OK293 $ 539 TOSHIBA P321SL • 24 Wire Print Head • 216/180/72 cps • Character font cartridges No. TB321SL $529 TOSHIBA P351-II • 24 Wire Print Head • 288 cps Draft/100 cps NLQ • 136 column No. TB351S $ 889 citizen Premier 35 • 35 cps Daisywheel • Built-in clock/calendar display • Error messages in English No. CZMSP35 $489 EPSON LX-800 • 150 CPS Draft/30 CPS NLQ ■ 9 Pin Dot Matrix, 80 Column • Built-in Tractor Feed No. EPLX800 $ 179 EPSON FX-86E • 240 cps Draft/40 cps NLQ • 9 Wire Dot Matrix • Selectype Control Panel No. EPFX86E $ 319 EPSON EX-800 • 9 Pin Dot-Matrix • 300 cps Draft/50 cps NLQ • 80 column, 8K Buffer No. EPEX800 $379 EPSON EX-IOOO 1 9 Pin Dot Matrix - 300 CPS Draft/50 CPS NLQ * 132 Column, 8K Buffer Jo. EPEX1000 $499 EPSON LQ-800 • 24 Wire Dot-Matrix • 180 cps Draft/60 cps NLQ • 80 column, 7K Buffer No. EPLQ800 $449 EPSON LQ-IOOO • 24 Wire Dot Matrix • 180 CPS Draft/60 CPS NLQ • 136 Column, Select Type III No. EPLQ1000 $ 569 ewlett Packard Thinkjet 2225C 150 CPS Inkjet Transportable, Lightweight Pin or Tractor Feed o. HP2225C $ 379 C.ITOH 315XP • 300 cps Draft/50 cps NLQ • 15" Carriage Width • IBM/Epson compatible No. TE315XP $549 STAR MICRONICS NX- 15 • 120 CPS Draft, /50 CPS NLQ • 5K Buffer, 132 Column • Friction & Tractor Feed No. SGNX15 $349 Selection. Did you know that CMO carries over 3,000 products including the best respected names in the industry. Representing over 200 manufacturers, our $8 million inventory is housed in over 60,000 sq. ft. of space. Because of our large inventory, we are able to provide our customers with tremendous options and selections from which to choose. Also, our trained consultants offer free consultation and will be happy to help design and configure your system to fit your needs and budget. Call toll-free: 1-800-223-8950 Outside the U.S.A. 717-327-9575 Telex 5106017898 Fax No. 717-327-1217 Most major credit cards accepted. COMPUTER MAIL ORDER [< MOUNTAIN Drivecard • 20 Meg, No. MB20 • 30 Meg, No. MB30 • 50 Meg, No. MB50 $519 $589 $729 CMS Drive Plus 21 • 21 MB Expansion Card • 3V2" Rigid Disks • 5 MB/sec. Transfer Rate No. CH20DP $339 SEAGATE 20 MB Hard Drive Kit • Seagate ST-225 Drive • Hard Drive Controller • Mounting Hardware *339 * £ V $9k * MOUNTAIN Beta Drive • 5 1 /4 M Bernoulli Technology • 20 MB Removable Cartridge • Unlimited Storage MOUNTAIN Dual 20 MB External • Bernoulli Technology • Dual 20 MB Cartridges • Requires PC2 Controller PC-TOO Datasave 40 MB • Easily moved from system to system • DC2000 Cartridges • Uses Computer Power Supply No. MB9029 $1,499 No. MBB4174 $1,799 MBPC5629 $419 CMS T-160 Back Up • 60 MB on single cartridge • Streaming or File-by-File • Complete with controller IOMEGA The Bernoulli Box • Uses 2 20 MB Cartridges • Performs, Expands • Reliable, Transportable EVEREX Excel-Stream 60 • 60 MB Cassette Back-up • Backs up 5 MB per minute • Built-in Formatter No. CH60BE $599 - ^ iii^>- ; ' No. IMB40 H.899 No. EV60ST $589 SEAGATE 30 MB Hard Drive Kit • Seagate ST-238 Drive • RLL Controller Card • Mounting Hardware IRWIN 10 MB Tape Drive • 10 MB Formatted Capacity • 8 Minute Back-up Time • Half-height Internal IRWIN 20 MB Tape Subsystem • 20 MB Tape Capacity • Interface Cable Kit Included • 250 Kb Data Transfer Rate SA238C *389 No. IW110D *259 No. IW420XT $479 Bgnr- ^k •> v RACORE Jr. Expansion Chassis • Provides 360K Disk Drive • Clock/Calendar and DMA • Parallel Port and Expansion MINISCRIBE 6053 44 MB Drive • 44.6 MB Hard Drive • 28 MS Full Height • 5 Mbits/sec. transfer No. RR1501 $329 No. SA6053 $679 SABA Handscan • Reads Words and Numbers • Exports to spreadsheets, word processors and data bases • Works with Lotus 1-2-3, Multimate WordPerfect, dBase & R:Base POLAROID Pallette Plus • Computer Image Recorder • 35mm and 3x4 Film Unit • 8 Pallette Software Included No. ICSA1000 *469 No. PO01P *2,399 MONITORS \MDEK i/ideo 310A » 12" TTL Amber ► 18 MHz Band width > 80 x 25 lines, 2000 characters \Jo. AMA310 U39 AMDEK Video 410 Series • 12" TTL Amber, Green, White • Up to 960 lines • Flat non-glare screen AMDEK Color 600 • 13" Dark Bulb CRT • Supports 16 colors • 80 x 25 lines, 2000 characters AMDEK Color 722 • 13" In-line, etched screen • Supports 64 colors • 720 x 350 display No. AM410A, G, or W $ 159 No. AMC600 $ 349 No. AMC722 $469 VIAGNAVOX PC-Monitor 80 i 12" TTL Display • 1000 Lines (center) « Dark Glass CRT to. NAP613, Green $QQ99 to. NAP623, Amber ^ J/ MAGANAVOX RGB Monitor 80 • 14" RGB/Composite • 640 x 240 Display • Dark Glass CRT No. NAP515 MAGNAVOX Professional 8CM873 • Multimode text/graphics • 926 x 580 display • 15 KHz to 34KHz ZENITH ZVM-Composite • 12" TTL Composite • 25 x 80 lines • Anti-Glare Screen $299 No. NAP873 $549 NEC NEC PRINCETON PRINCETON TTL Monochrome i 12" TTL Monochrome • 720 x 350 Display • Non-Glare Phosphor Multisync Plus • 15" Flattened CRT • 960 x 720 Resolution • 3-Way Text Switch #fi MAX-12 • 12" Amber TTL • 720 x 350 Display • 16 Shades HX-12E • 12" Color RGB • 640 x 350 Display • EGA Compatible to. NEA1285, Amber to. NEG1280, Green $99 99 No. NEC1401P $1199 No. PNM12E $149 No. PN12E $479 Dependability. Did you know that CMO is one of the oldest direct marketers of computers in the country. We are also one of the largest— serving more than 350,000 customers. Our list of satisfied customers include over 75% of the Fortune 1000 companies. Also, many schools and universities, as well as many small businesses and individuals have come to depend on CMO for their computer related needs. Call toll-free: 1-800-223-8950 Outside the U.S.A. 717-327-9575 Telex 5106017898 Fax No. 717-327-1217 Most major credit cards accepted. c« COMPUTER MAIL ORDER ' SOFTWARE d-Base Hi + No. ICAH03 $399 Word Perfect 42 $209 No. ICSS01 fcW%/ Symphony No. ICLO02 $439 Fast Back No. ICFI01 $899i R:Base Multimate System V $AAQ Advantage II $OQQ No. ICMH04 H"**^ No. ICMM02 ^99 Microsoft Mouse No. ICMR02 Micropro Profession w/Gen. Ledg., No. ICMP03 ' $10Q Professional 4.0 $OQC ±^.*7 w/Gen. Ledg., No. ICMP03 4L%2%* I -— -iTT \ msss. INORTON UTILITIES W;':j$ AUfesaiH-forjwffdaa Crosstalk XVI $QQ99 Optimouse $QQ99 Norton Utilities $c A99 PFS No. ICMF01 0%# No. ICIM01 O W No. ICNO01 Wt Firsl First Choice No. ICPF10 $999j Copy II PC $OA99 Xerox No. ICCP01 £m^ X/pntin Ventura No. ICXE01 $ 589 PFS: Professional Write No. ICPF11 $119 Microsoft Word 3.1 No. ICMR20 *23S Managing Your Money $ 1 1 Q No. ICMD01 llCf DAC: Easy Accounting No. ICDA02 Nantucket $44" Ste $ 399 Borland Turbo Basic No. ICBI20 $649< ACCESSORIES MAXELL Double & Hi Density • 5V4 DS/DD 10 Pack No. MXD2 $8.99 • 5/4 Hi Dens. 10 Pack No. MXD2HD$ 18.99 MAXELL Data Tape DC300A, No. MXMC4500 $21.99 DC600A, No. MXMC600AG $25.99 DC2000, No. MXMC2050 $19.99 ALLSOP Diskette Holders 3V2" Holds 30 No. ARDF30M $9.99 5Va" Holds 60 No. ARDF60 $9.99 SONY 3V 2 " & 5V4" Diskettes • 31/2" DS/DD 10 Pack No. SCMFD2$19.99 • 5 1 A" DS/DD 10 Pack No. SCMD2 $9.49 CRT Valet • Arm rotates 360° Mo. CUTV $9999 KALAMAR Teakwood File Cabinets • Holds 45 3V 2 " Disks No. CI452 $14.99 • Holds 50 5V 4 " Disks No. CI454 $17.99 KEYTRONICS KB-5151 Keyboard No. KT5151 $159 KENSINGTON MasterPiece Plus No. KEM08 $109 AMERICAN POWER 330 Watt UPS No. AJ330XT CURTIS Surge Protectors CURTIS Universal Printer Stand CURTIS Tool Kit &OQO Na CUSP1p . Diamond + $49.99 :>;:>■. mmmmm Mmm ■WSL MillfiilHlt ifilliliililliiiiiifililili mtomm pimp mm Ifliiii liiii!. wmmmm !lll!l7i!'ili!tlilllilnillll!!ll|T|l lb Mdmmmumm WMSft* rillw iiftilfiaui SEPTEMBER 1987 -BYTE 161 Introduction Printer Technologies The values by which we measure printers are easily understood and yet imprecisely defined. Speed is easiest to measure in characters per second, but that approach has little value to users, who are more interested in pages per minute, a value that can't be derived simply from a printer's maximum rate. But measures of throughput require agree- ment on what constitutes a representative document. Quality doesn't lend itself to precise definition either. Each level of printing— draft, near-letter-quality, and letter- quality— has its own separate criteria. Furthermore, each different technology tends to have its own set of standards. Even cost comparison is not always straightforward. In- creasingly, printers have optional font cards or cartridges and software that may affect cost. With page printers, the addition of memory to a system may make cost comparisons misleading, and the presence or absence of on-board intelli- gence, in the form of a controller, can also confuse cost comparisons. In this collection of articles, we've tried to help define the issues more precisely by explaining exactly what goes into the various technologies. Rick Cook's article, "Page Printers," brings out some important distinctions and limita- tions of laser, liquid-crystal-shutter, and light-emitting- diode designs. He explains why these units are so expensive and what it will take to bring their costs down. In "Color Printing," Naomi M. Luft describes the sub- tractive color process and the various ways we have of cur- rently getting living color on paper. This article also in- cludes a text box entitled "Plastic Ink," which describes a new implementation of the ink- jet technology. Lars Jansson takes an original and direct approach to the question of "Print Quality." He explains the factors affect- ing print quality and proposes a set of objective measure- ments. Dick Pountain puts aside his regular column this month to discuss the conversions necessary to make raster- ized images from vector information in "Vector-to-Raster Algorithms." Turning to more traditional printer designs, three short engineering close-ups give an insider's view of how dot-ma- trix-impact, thermal-transfer, and other designs continue to be refined. "Taming the Hot Heads" by Keith B. Davenport shows how careful engineering and CAD have helped to maximize print-head efficiency and reduce the heat buildup that comes with fast printing. Mark Hohneker summarizes an alternative approach to standard dot-matrix-impact de- signs in "Matrix-Line Printing," and Julio Guardado de- scribes another increasingly important technology in "Color Thermal-Transfer Printing." Two additional engineering close-ups deal with page printers. In "Designing a High-Speed Page Printer Control- ler," Phil Ellison describes what is involved in making a page printer controller in order to maximize throughput. On an even more detailed level is Bert Douglas ' s article, " Strip- Buffer vs. Full-Page Bit-Map Imaging. " One aspect of printer technology we don't cover in this section is speed— how to measure and define it. Instead, we will conclude this introduction with a summary of a pro- posed new standard for measuring speed. According to a draft version of the European Printer Per- formance Test (EPPT), 11 major printer manufacturers in Europe worked to develop the specification for measuring true print speed or throughput. The specification is intended for use with all printer designs (i.e., dot-matrix, daisy- wheel, ink-jet, thermal-transfer, and laser). The standard does not deal with measurements or criteria for measuring quality, character fonts, and so forth. However, it does pro- vide a descriptive system for defining the various quality levels so that, for example, draft printing and letter-quality printing speed become objective terms. The hope of the original group of 1 1 manufacturers is that the proposed standard will be adopted or at least incorpo- rated into an official standard by the European Computer Manufacturers Association (ECMA) and the American Na- tional Standards Institute (ANSI). The test is designed for use only with printers that support European languages. The tests are divided into performance tests and endurance tests. For the performance tests, the data patterns are printed five times. For the endurance tests, data patterns are printed repeatedly for 1 hour. The tests are (a) a letter test using a standardized letter; (b) a spreadsheet test using a 1 32-charac- ter-per-line spreadsheet; and (c) a graphics test, consisting of two vertical lines and two triangles, made up strictly of bit- image information. The draft version of the EPPT runs 14 pages plus appen- dixes. It is a precise and well thought-out standard and, if adopted, will do much to eliminate the current confusion re- garding advertising and specification of printing speed. For further information on the proposed EPPT, you can write to Alan Clemmetson, Dataquest U.K. Ltd., 13th Floor, Centre Point Bldg., 103 New Oxford St., London WC1A 1DD, U.K. —George A. Stewart and Jane Morrill Tazelaar, Technical Editors 162 BYTE* SEPTEMBER 1987 PRINTER TECHNOLOGIES Color Printing A balancing act among price, performance, and print quality Naomi M. Luft IN COLOR PRINTING, you get what you pay for. The key word, and one I will use many times, is trade-off. You pay for higher resolution with longer processing and printing times. To get higher speed, you pay— and pay. To get more color choices, you trade effective print resolu- tion. And the list goes on. But the list of available color-printing technologies also goes on; the current total is six. In order of current popularity, these six basic color-printing technologies are pen and electrostatic plotters, and ther- mal-transfer, ink-jet, serial dot-matrix, and electrophotographic (color laser) printers. The vector-oriented pen plotters are by far the most popular, largely be- cause they are flexible. They "write" with varied-color pens on various media and have a large base of existing software. However, raster-based competitive tech- nologies are gaining ground by offering faster print speeds, superior text printing, and compatibility with the emerging world of digital imaging. Unlike pen plotters, raster-based print- ing systems must perform several elec- tronic image-creation functions, includ- ing combining basic colors under software control, precisely overlaying colors to get shades, and interpreting a rasterized bit stream rather than vector commands. Although each color-print- ing technology handles these required functions differently, some basic princi- ples are common to all. Generating Colors The most familiar example of a raster- based product that produces a variety of shades through color mixing is the televi- sion set. The color "model" used for pro- ducing colors on TVs, and the closely re- lated color computer monitors, is RGB: Three light sources (red, green, and blue) generate the color within the monitor. The presence of all three colors creates white, while their absence results in black. Red, green, and blue are some- times called the additive colors. Printing systems usually do not use the RGB model because the colors are strong and opaque and therefore do not combine well. Instead, the complementary model, CMY (cyan, magenta, and yellow), is customary. Cyan, magenta, and yellow are referred to as the subtractive prima- ries because they create color by subtract- ing a particular color of light reflected off a white page. Cyan is the absence of red, magenta the absence of green, and yellow the absence of blue. You can combine these three colors to create the additive colors (red, green, and blue), as well as black (see figure 1). (Since this com- bined black often appears brown, many printers are also configured with a "true" black as a fourth color.) The process of combining colors is mechanically tricky and represents a technical challenge for all printer tech- nologies. With the exception of ink- jet, all color printers separate the printing function for each of the subtractive colors, overlaying the colors in several passes. Thus, registration is critical to en- sure that each pixel lines up precisely with the corresponding pixel from a pre- vious pass. In moving-head (serial) print- ing systems, such as serial dot-matrix and some thermal-transfer printers, the print head traverses the same line repeatedly until it has printed all the colors, then the paper moves to the next line. Page-ori- ented systems, such as fixed-head ther- mal-transfer, electrostatic, and electro- photographic printers, print the entire page in one color before going to the next color. Mixing Colors Processing color separations and overlay- ing pixels become even more complex when an application requires more than the seven basic colors shown in figure 1 . In general, printers lack the flexibility of computer monitors, which can vary shades under software control by varying the intensity of the electron beam. The only printing technology to achieve shad- ing by varying the electrical signal is dye sublimation, an emerging subset of ther- mal-transfer printing that creates near- photographic-quality output. The more common approach to printing shades of the basic colors is dithering. The dithering process generates shades of gray by mixing black with various per- centages of white. Rather than treating each pixel as a single dot, systems that employ dithering combine dots into a ma- trix to create intermediate color values. Figure 2 shows how, in a 2-by-2 matrix, continued Naomi M. Luft is a senior research ana- lyst specializing in nonimpact printing technology at Datek Information Ser- vices, P. O. Box 68, Newtonville, MA 02160. SEPTEMBER 1987 -BYTE 163 COLOR PRINTING you can combine the two basic values, black and white, into five shades. In color systems, the range of shades increases substantially with a 2-by-2 ma- trix. Each subtractive color can have five intensity levels that can in turn be over- printed, thereby generating up to 1 25 dif- ferent shades (5 by 5 by 5, with the three multiples representing the three subtrac- tive colors). The possibilities increase as the matrix size increases. In a 3-by-3 ma- trix, each color can have 10 intensity levels, so you can achieve 1000 shades of color. Dithering patterns exist in the ap- plication software, the printer-resident firmware, or a combination of both. You make trade-offs, however, in this method of increasing the number of colors. Dithering is effective only in rela- tively high resolution systems in which individual dots are barely distinguishable and, consequently, a matrix of dots is small enough to appear as a single picture element, so the color shade appears spa- tially integrated to the eye. The matrix structure effectively reduces the printer's (minus blue) Figure 1: This diagram shows the actual subtractive colors: cyan, magenta, and yellow. The other colors— red, blue, green, and black— were formed by combining these colors; that is, the yellow and magenta together form the red shown here, and so on. The brownish black is a combination ofCMYand illustrates why many printer manufacturers add a true black to their colors. Figure 2: Dithering generates shades of gray by mixing black and white. Treating each dot as a 2-by-2 matrix lets you combine black and white into five shades: 100 percent white, 25 percent black and 75 percent white, 50/50, and so on. You can employ a similar scheme with colors, greatly increasing the number of available colors but also decreasing the final resolution. resolution. For example, if a 200-dot- per-inch printer generates 125 shades using a 2-by-2 matrix, its effective resolu- tion is reduced by that factor of 2 to 100 dpi. For 1000 colors (the 3-by-3 matrix), the effective resolution is reduced by a factor of 3 to 67 dpi. Therefore, when you need the highest possible resolution, you need to restrict your choices to the seven basic colors. Dithering is especially use- ful for shading large areas like pie charts in business graphics. Two alternatives to dithering maintain printer resolution while they expand the number of color shades. One approach, used in commercial printing, is to vary the size of the dot in a technique called halftoning. Because it is difficult to con- trol dot size with existing printer technol- ogies, only a few specialized systems have taken this approach; most of them use ink- jet technology. Another approach is to use ink or rib- bons with more than three subtractive colors, ideally, two intensity levels for each subtractive primary. With six colors plus black, you could generate 2 1 6 colors per picture element without losing any resolution. The disadvantages of this ap- proach are that the costs of hardware and supplies increase while throughput rates decline, since you need to either make more passes or distribute hardware re- sources, such as ink- jet nozzles, between more colors. Setting Up Your System With the exception of pen plotters, all current color printers are raster-based; that is, the image is decomposed into scan lines and then reconstructed during print- ing. Since most software defines graphics in terms of vectors, graphics systems have an algorithm to convert vector commands into a matrix for display on the raster- based monitor; you can use this same ma- trix to print the image (see "Vector-to- Raster Algorithms" by Dick Pountain on page 177). Again, trade-offs are involved in choosing various print matrices. Three basic configuration choices exist: You can attach a printer directly to the monitor's screen buffer, which holds a bit map of pixel information; a printer can share the video signal with the moni- tor; or you can convert the computer's vector information into a printer-compat- ible raster image via software or dedi- cated hardware. The first two choices are "screen- dump" methods that let you bypass the need for software drivers and generate quick hard copies of screen information. The information is transferred one for one from the computer to the hard-copy device; therefore, whatever is on the continued 164 BYTE- SEPTEMBER 1987 SHARE HUNTERS AND BUFFER PRINT JOBS WITH ONE VERSATILE UNIT ■■■■HBHHHHHnnn 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 7 IOC 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 706A (6 parallel ports), $795 706C (6 serial ports), $795 708C (8 serial ports), $895 710C (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 512K 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 25 COLOR PRINTING screen will appear exactly the same way on the printer. However, the printer usu- ally has a higher resolution than the sys- tem monitor. Thus, when you transmit the pixels to the printer and print them at full resolution, the printed image be- comes much smaller than the displayed image was. For example, a 640- by 480- pixel image on the screen printed at 200 dpi becomes a 3.2- by 2.4-inch printout. Systems usually compensate by assigning multiple print dots to each screen pixel to get a larger image. Since this method doesn't take advantage of the printer's higher resolution, the "jaggies" (visible stairstepping) from the screen also ap- pear on the printout. The third approach, converting vectors to raster information specifically for the printer, has the advantage of not limiting the image to the size of the monitor's screen buffer; printing can take place at full resolution. The trade-offs are in price and performance. Because the system must manipulate many more bits of infor- mation, this approach is both processing- and memory-intensive, which adds to the expense and can result in low throughput rates. Vector-to-raster conversion can take two approaches: software- or hardware- based. Some systems generate raster data in host software and transmit a bit map to the printer via the standard printer inter- face. The main disadvantage of this soft- ware-based method is that it ties up the host during image processing. More ad- vanced systems frequently use dedicated hardware processors that are optimized for this conversion function. The config- uration possibilities include an external box, an add-in card, and a printer-resi- dent controller. Add-in cards can cost as little as $600, while the higher-perfor- mance rasterizers can run over $6000, a hefty price now that most high-end color printers cost under $10,000. In addition, you need software drivers to link applica- tions with each specific output device. I want to look at the operating princi- ples and performance trade-offs of the six color-printing and -plotting technologies currently available. Figure 3 illustrates how these technologies compare in price and performance. Pen Plotters To date, pen plotters have been the most popular color-output devices. Widely used in technical applications such as CAD/CAE, they can produce output up to E-size (34 by 44 inches). Office appli- cations, such as business graphics and presentation materials, increasingly use plotters. Desktop models for A- and IB- size drawings are available for under $2000, and software drivers in numerous packages support them. On the systems level, pen plotters are less complex and less expensive than many other printers because they can interpret software di- rectly in terms of vectors and, thus, don't need vector-to-raster conversion. Mechanically intensive devices, pen plotters require that various pens and out- put media (paper, transparencies, vel- lum) move under software control, so that the pens can actually write to gener- ate a graphic and associated text. Plotting involves combining x and y motions to ex- ecute vector commands (e.g., to draw a line between two points or a circle around a point) . You change colors by mechani- cally switching pens typically held in a carousel or bank along the side of the plotter. The number of pens ranges from 2 to more than 10. Plotters fall into three basic groups: flatbed, drum, and hybrid. All three have a carriage bar along which the pen moves to draw along one axis (say, the x axis). They differ in how they achieve pen mo- tion in the y direction. Flatbed plotters hold the paper stationary while the pen moves in the y direction; the size of the flatbed creates the limit on output size. For applications that require output-size flexibility, you would use a drum or hy- brid model. Drum plotters move the paper back and forth using a rotation drum to achieve motion in the y direction. Hybrid plotters similarly move the paper to achieve y movement; however, they hold it between friction rollers, are much smaller than drum plotters, and have no mechanism for rolling up long plots. Available pen plotters offer varying levels of plotting accuracy and speed. High-level systems have resolutions to 0.001 inch, meaning that they can me- chanically place dots that close to each other. Another measure of accuracy is re- peatability, or how precisely the plotter continued $30,000 — , $10,000 — a. $ 3,000 — $ 1,000 — $ 300 0.1 0.3 1.0 3.0 Time per page (minutes per page) 10.0 30.0 Figure 3: A price /performance comparison of color-printer technologies. 166 BYTE* SEPTEMBER 1987 Diners Club International ' CITICORP* "7>*>mmwk-w LA NOWDflVERSCLUB m CANMAKETOUR AMERICAN,COtmNEtm\L NORTHWEST AND UMTEO FREQUENT FIYER MILEAGE REAIIY SOAR. From now on, when you use the Diners Club Card, you can earn Qub Rewards SM points good towards exciting gifts and services. Including extra mileage in the participating frequent flyer program of your choice. Or, if you choose, frequent stayer credit at Hflton, Radisson, Ramada or Sheraton hotels. So dine with the Diners Club Card. Sleep on it Rent with t Whatever. And watch your frequent flyer miles soar. Or use someone else's card...and miss all the rewards only Diners Club can give you. Diners Club International 9 32IE B^sibis mm B caserns «" '62 6C US — "*" Ca« 1-800-DINERS-l Join the Qub. The rewards are endless. *"*© 1987, Citicorp Diners Club Inc. Frequent Traveler benefits available through the Club Rewards 3 " program. Participating companies subject to change. Club Rewards is a service available only to Personal Cardmembers of Diners Club from Citicorp located within the 50 United States. Free enrollment required. Certain terms and conditions apply. "United participation limited to 1986-87 Club Rewards brochure. COLOR PRINTING can return to a specific point again and again. Although the pens can move sever- al inches per second, effectively, pen plotters are the slowest color technology. Desktop-size plotters can take 3 to 6 min- utes for simple business graphs and up to 20 minutes for more complex plots with large area fills. Electrostatic Plotters Electrostatic technology was the first ras- ter-based output method widely used for printing color graphics, particularly in technical environments. Its primary ad- vantages over pen plotting are its im- proved speed, quiet operation, and suit- ability for unattended operation. Like pen plotters, some electrostatic plotters are capable of large-format output. However, electrostatic plotters are among the most expensive color printers available, with B-size products costing between $12,000 and $14,000, and larger-format plotters ranging from $40,000 to $100,000 or more. In addition, you must use a special dielectric coated paper. Electrostatic plotters operate by pass- ing dielectric paper under a fixed-page- width electrostatic head that consists of a line of individual styli. Voltage is selec- tively applied to the individual styli, plac- ing a charge on the dielectric paper and creating a latent image. Then the paper passes through a bath of liquid toner, and the charged areas attract toner particles. In a color system, this charging and ton- ing process takes place several times (three if you use CM Y, four if you add a Media supply Paper direction Q °h % Toner removal Patented toner applicator Electrostatic writing head Figure 4: Schematic of an electrostatic plotter by Benson Inc. Note that this plotter has multiple electrostatic heads as well as multiple toner baths so that the paper makes only a single pass and needs no rewinding between colors. Thermal paper color forming Thermal print head Hot melt ink Transferred ink Receptor sheet Figure 5: How thermal-transfer printing works. To print in color and on plain paper, you use a ribbon composed of blocks of the subtractive colors, which you overprint to obtain the various colors. separate black); the toner bath is different for each color. As a result, this technol- ogy is mechanically complex. Figure 4 is a schematic of an electrostatic plotter by Benson Inc.; this plotter is unique in that it has multiple heads as well as multiple toner baths so you don't need to rewind the paper between colors. One advantage of electrostatic plotters is their high-resolution output. Several systems exist with 400-dpi resolution, which improves output quality, especial- ly when you need a large number of colors (due to the trade-offs between dith- ering and resolution) . Some plotters also have a lower-resolution mode for proof- ing or plotting at higher speeds; 400 dpi is relatively slow in terms of processing time and paper-indexing rate. Thermal Transfer Thermal-transfer printers come in two varieties: serial (moving-head) printers and fixed-head page printers. Although both types lay down color similarly and require the same kind of media, they vary significantly in price. The serial printers, usually appealing to home users, cost less than $300. The page-oriented systems, primarily used for engineering output (in many cases for proof copies, due to out- put-size limitations) and some new appli- cations such as presentation graphics, cost between $4500 and $10,000. Ther- mal-transfer printing is particularly ef- fective for area fills, since the density of the graphic does not affect print speed in page systems. Three key elements compose thermal- transfer printing: a thermal head, a rib- bon, and paper. The thermal head con- sists of a set of resistive elements that selectively heat up when an electrical current is applied. Direct-thermal printers, in which the head causes a spe- cially treated paper to darken, have used these heads for a long time. Thermal- transfer printing inserts a wax-coated rib- bon between the head and paper. The rib- bon is heated from behind, the wax-based ink coating melts, and the image is trans- ferred to the paper (see figure 5). Using a ribbon lets the thermal head print on plain paper and in color. Like electrostatic plotters, thermal- transfer printers produce color prints through multiple passes of the subtractive primaries. In both serial and fixed-head configurations, the thermal-transfer rib- bon has blocks of each subtractive color. In serial printers, these blocks are the same length as the print line: The head traverses the line with one color and then goes back to the beginning of the same line to overprint it with another color, and so on. The print mechanism indexes continued 168 BYTE- SEPTEMBER 1987 Aztec C ... The Best C Frees the genius in you You've got a great idea . . . . . . you're ready to write your programs. You don'twant 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 C'Prime (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, HALO TM Media Cybernetics. PANEL TM Roundhill Computer Systems, Ltd.. PHACTTM PHACT Assoc. PRE-C, Plink-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 Intl. [nquiry 166 SEPTEMBER 1987 -BYTE COLOR PRINTING While ink-jet printing is conceptually very attractive, it has a number of problems. to the next print line only after all three or four colors have printed and the ribbon has progressed to a new block of the first color. In fixed-head page printers, the color blocks are page-size. You must pass the whole page under the head several times, usually by backing the paper up and refeeding it, an approach that offers a registration challenge. The size of these ribbon blocks effectively limits the size of a printed page. Thermal-transfer printing has several advantages: The serial printers offer the least-expensive color output currently available, while the page printers offer relatively fast print speeds (some systems can print a page in less than a minute), high resolution (the majority of printers now have 200- or 300-dpi resolution), and reliability. The disadvantages of thermal-transfer technology include the cost of supplies (the ribbons are expen- sive, and most systems require special "plain" paper with a very smooth finish) and print quality (some users object to the shiny crayon-like output). Ink-Jet Ink-jet is the only raster-based technol- ogy that prints color in a single pass. This is possible because ink-jet heads have multiple ink nozzles, with at least one per . subtractive color. Having several nozzles per color increases overall throughput speed. Because of the need for extensive "plumbing" (connecting nozzles to multiple ink sources), ink- jet printers tend to be more costly than thermal- transfer printers for a given performance class, ranging in price from $700 to about $6000. In addition, early systems were plagued with reliability problems, such as clogged nozzles from dried ink, which gave the technology a bad name. Figure 6 is a schematic of an early-model ink- jet printer from Advanced Color Tech- nology. Ink-jet printing is a true noncontact technology. A print head generates indi- vidual ink droplets and propels them to the paper, creating characters and pat- terns (see photos la to Id). Three basic classes of ink- jet printers exist: continuous-jet, drop-on-demand, and phase-change. Continuous-jet printers employ a stream of ink droplets (typically more than 50,000 per second) issued from print nozzles under pressure. A charge is selectively applied to the droplets, and, depending upon the de- sired configuration, some droplets are deflected toward and others away from the page. Drop-on-demand printers are simpler, forming droplets in the nozzles and ejecting them through appropriate timing of electr nic signals. Some sys- tems use piezoelectric crystals that con- strict the nozzle; others use small heating elements that cause the ink to temporarily boil and be ejected. An even more elabo- rate use of heat exists in phase-change ink-jet printing. This method liquefies solid ink pellets, ejects them from the print nozzles, and "freezes" them on the paper surface without their wicking, or bleeding, into the paper. Phase-change ink-jet printing is uncommon (see the text box "Plastic Ink" on page 1 74). While ink-jet is conceptually a very at- tractive technology and offers good color with moderate supply costs, it has a num- ber of problems. You pay a comparative- continued WASTE INK RESERVOIR INK RECEPTOR -NEEDLES -BUBBLE TRAP i— PERISTALTIC INK PUMPS JET DRIVER PCB -WASTE INK RETURN PURGE SWITCH Figure 6: Schematic of a color ink- jet printer from Advanced Color Technology. This is a diagram of an early model but shows the system 's complexity and the kind of plumbing it requires. 170 BYTE- SEPTEMBER 1987 ,.. M^ NTST MDA AND HERCULES CGA EGA \ m0 Mitsubishi Diamond Scanr The New Standard In Multi-Application Monitors. Introducing Model AUM4371A— The Single Solution Monitor Ideally Suited For Applications Ranging From Monochrome Text To FulLColor, High Resolution Graphics. Introducing the newest, most versatile high resolution color monitor in the industry today— Mitsubishi's Diamond Scan (Model AUM-1371A). Actually five monitors for the price of one, the Diamond Scan delivers everything you'll ever need in a multi-application monitor. Including full compatibility with the IBM® PGC/ EGA/CGA/MDA and Monochrome Hercules graphics boards. And for even greater flexibility, the Diamond Scan also accepts NTSC video input. Exceptional design characteristics allow for a resolution up to maximum 800 horizontal dots and maximum 560 vertical lines on a 13 V" viewing area. What's more, Mitsubishi's Diamond Scan incorporates propri- etary auto-scan circuitry which automatically locks onto anv hor- izontal frequency from 15.6KHz to 35.0KHz, and any vertical frequency from45Hzto75Hz. Other advanced design features include a high resolution CRT with .31 dot pitch, automatic screen image adjustment, super-high contrast panel glass for improved visibility and Diamond Matte® coating for maximum glare reduction. All packaged in a compact, economically styled plastic cabinet. TTL Input D-9 Pin Cable Assignments and Signal Levels ©CCffcC 3F- ^ Graphic Board Compatibility* H Quadram QuadEGA ProSync □ Orchid Turbo EGA/Turbo PGA □ Sigma Designs Color 400 D Video 7 Vega-Deluxe H QDP VIVA 640/800/1000 □ Paradise Auto SW EGA gfSTBEGAMultiRes Ef Everex Micro Enhancer □ Hercules fif IBM VGA, PGC, EGA, CGA □ AST Research AST-3G/Model 1 □ ATI Graphics Solution/EGA Wonder Analog Input D-25 Pin Cable Assignments and Signal Levels NTSC Video Input Move up to Mitsubishi's Diamond Scan— the new standard in performance and versatility by which all others will be compared. For additional information and the location of your nearest distributor, call Mitsubishi today at 1-800-556-1234, Ext. 54. In California, call 1-800-441-2345, Ext. 54. Mitsubishi Electronics America, Inc., Computer Peripherals Division, 991 Knox Street, Torrance, C A 90502. We've Got A Great Picture In-StoreForYou* ♦Partial List Only Diamond Scan is a trademark of Mitsubishi Electronics. IBM is a registered trademark of International Business Machines Corp., Diamond Matte is a registered trademark of Mitsubishi Electric Corp. © 1987 Mitsubishi Electronics America, Inc. A MITSUBISHI ELECTRONICS Inquiry 186 for End-Users. Inquiry 187 for DEALERS ONLY. Inquiry 34 UNIVERSAL (E)PROM/PLD MULTIPROGRAMMER 7 COLOR PRINTING IBEDBS11 System 125 is based on an advanced modular design concept with support for over 1200 Devices. Gradual- ly, or all at once, you can build a full Universal Multiprogramming site to pro- gram EPROM/EEPROMs, PLD/ EPL D/GALs, P ROMs and MICROs. WMM MultiProgrammers™ offer User Friendly Operation, High Quali- ty, Reliability, and are backed by Dedicated Customer Service, and Unlimited Product Support Full One Year WARRANTY, and FREE SOFTWARE updates. All Products are 100% USA Made. I System 125 is the first Universal MultiProgrammer™ (for both the Engineering Laboratory and Produc- tion Environments) available at affordable prices. Model Shown: S125-GL with LogiC^l THREE PROGRAMMERS IN ONE: 1. GANG EPROM MultiProgram- mer™: Programs MOS/CMOS/ HMOS EPROM/EEPROMs from RAM (standard 256K BYTES, 2048 K Bits) or from Master Device. 2. SET EPROM MultiProgrammer : 16, 32 and optional 64-Bit Words. 3 . UNIVERSAL Multiprogrammer™: (Optional) Ix>gic Array Devices, Bipolar PROMs, 40 pin Micros, 3 Voltage Devices, & EPROM Emulation. STANDARD FEATURES INCLUDE: • Stand Alone Operation (includes DATA EDITing). • 32 Character Alpha/Numeric LCD • RS232 Interface for Terminal Mode • Parallel Printer Port • IBM PC Software Driver available, 800-523-1565 InFL: (305) 994-3520 FAX: (305) 994-3615 Telex: 4998369 BYTEK BYTEK offers a variety of products from low cost Dedicated Device Programmers, to Universal MultiProgrammer™ Models. UV Erasers from $47. WRITER: Low Cost Dedicated EPROM Programmers from $345. S125 GANG WRITER: $695 Gang/Set EPROM Duplicator S125-LADS: $995 Logic Array Development System BYT6K I® CORPORATION INSTRUMENT SVSTCMS DIVISION 1021 S. Rogers Circle Boca Raton, FL 33431 The #1 CHOICE in Programming Equipment Photo 1: This sequence of photos shows a drop of ink emerging from the print head of the Hewlett-Packard PaintJet color-graphics printer, (a) At 25 microseconds , the ink jet is about 0.3 mm long and is still coming out of the nozzle. About half of its length is shown. Note the circular orifice; the ink is going from left to right, (b) At 45 ps, the head of the ink jet has formed and is almost ready to separate from the rest of the ink jet. The tail of the jet is just now exiting the nozzle. The total jet length is about 0. 7 mm. (c) At 85 (is, the entire jet is shown and is about 0. 73 mm long. The head of the jet is about 1 . mm from the nozzle and has separated from the rest of the ink jet (note the formation of a circular form at the right end of the jet), (d) At 125 [is, the tail has broken up into separate drops, and the head is about to hit the paper. The drops behind the head are moving quickly and hit the same spot on the paper as the head, creating a single dot. ly high price for a product of questionable reliability, you need special paper to re- duce ink wicking (phase-change ink be- ing the exception), and throughput is gen- erally slow (up to four minutes per color page). Serial Dot-Matrix For office use, serial dot-matrix printers are the most popular. However, they have had a limited presence in color applica- tions, even though an increasing number of them have color capabilities. While most configurations are suitable for busi- ness graphics or emphasizing text, few can act as a pen-plotter replacement and produce presentation-quality output. Serial dot-matrix printing is an impact technology. Wires in a print head are fired, striking the ribbon, which releases ink on the paper as the head traverses the print line. As in serial thermal-transfer printing, all colors are overlaid on each print line before moving on to print the next line. Unlike their thermal-transfer counterparts, however, most serial dot- matrix ribbons have horizontal stripes of the colors that run the length of the rib- bon. The system switches colors by me- chanically shifting the ribbon up and down. Most serial dot-matrix printers use CMY, but a few use RGB. Using serial dot-matrix technology for color printing has some favorable points. It is an established, reliable technology, using low-cost supplies, that offers true plain-paper printing and convenient monochrome operation. The technology does have its shortcomings, however. Hard copy is limited to paper; workable transparencies are generally unavailable. When you need area fills, the output tends to streak, and the color lacks bril- liance. In addition, the diameter of the wires in the print head limits the potential resolution; most wires are between 0.007 and 0.014 inch. Color Electrophotography An electrophotographic printer is essen- tially a color copier used as a computer printer. Use of electrophotography for color printing is on the verge of becoming a reality. You could convert a color copier into a computer printer by fitting it with a continued 172 BYTE- SEPTEMBER 1987 Actual unretouched screen image. Mitsubishi Has A Great Picture In-Store For'fou* A High-Quality Line of PC Monitors Priced Below The Competition. Introducing the Mitsubishi brand name family of PC Monitors. Select from five different IBM® compatible models, along with the new IBM PS/2™ compatible XC-1429C. Each has a 13 V" diagonal viewing area and proprietary high contrast glass for the sharpest image possible. Affordably Priced PC Monitors The XC Series incorporates proven Mitsubishi quality and reliability at an extremely affordable price. In fact, we've included a wide variety of features for which you'd expect to pay considerably more. Like advanced video and deflection circuits to reduce distortion and optional tilt and swivel base for improved ergonomics. Also in-line self -convergence for low power consumption and extra reliability. The XC Series is available in quantity, ready to support a wide range of application needs— from standard word processing and business graphics to windowing and high resolution solids modeling and CAD. Complete Customer Satisfaction Mitsubishi stands behind its brand name XC Series monitors with knowledgeable applications and service personnel and backs each product with a comprehensive one-year warranty. It all adds up to a worldwide reputation for state-of-the-art electronics and unparalleled customer satisfaction. Compare the picture quality and see for yourself why Mitsubishi monitor displays look so good. For product literature and your nearest distributor, call Mitsubishi today at 1-800-556-1234 Ext. 54. In California call 1-800-441-2345 Ext. 54. Mitsubishi Electronics America, Inc., Computer Peripherals Division, 991 Knox Street, Torrance, CA 90502. Inquiry 188 for End-Users. Inquiry 189 for DEALERS ONLY. MITSUBISHI ELECTRONICS A XC4409C $519.00 Sug. Retail IBM-CGA Compatible Medium Resolution Monitor: 13V" -2,000 characters, 640 x 200 graphics resolu- tion • TTL video input 15.75KHz- 16 colors 0.4mm pitch stripe mask XO1410C $659.00Sug. Retail IBM-EGA Compatible High Resolution Monitor: 13V" -2,000 characters, 640 x 350 graphics resolu- tion • Dual-Mode/TTL video input 15.75/ 22.4KHz • 16/64 colors 0.4mm pitch stripe mask XC4430C $739.00 Sug. Retail IBM-EGA Compatible High Resolution Monitor: 13V" • 2,000 characters, 640 x 350 graphics resolu- tion • Dual-Mode/TTL video input 15.75/ 22.4KHz • 16/64 colors 0.31mm fine dot pitch XC4412C $799.00 Sug. Retail IBM-PGC Compatible High Resolution Monitor: 13V" • 4,800 characters, 640 x 480 graphics resolu- tion • Analog video input 30.49KHz • Infinite colors 0.31mm fine dot pitch XC4429C Ts$£^- $685.00 Sug. Retail IBM-VGACompatible High Resolution Monitor: 13V" • 4,800 characters, 640 x 480 graphics resolu- tion • Analog video input 31.5KHz • Infinite colors 0.28mm fine dot pitch IBM is a registered trademark of International Business Machines Corp., © 1987 Mitsubishi Electronics America, Inc. COLOR PRINTING Plastic ink? It sounds strange to me, too, but Thermo Jet, an ink-jet tech- nology from Howtek Inc. in Hudson, New Hampshire, uses plastic ink in a combination of phase-encoded and drop-on-demand printing to produce an output similar to embossing with a fan- tastic variety of colors and attention to detail. The printer surrounding this technology is Howtek's Pixelmaster. It can print digitized images of photo- graphs—you need another unit to do the digitizing— and the "printed" output ap- pears similar to an original painting of the scene. There's almost a three-di- mensional quality to it. Thermo Jet is by no means limited to reproducing photographs. Business graphs are crisp, clean, and clear. Lo- gos resemble those you find on expen- sive stationery— raised, embossed, shiny, very professional. They look like originals, and indeed they are. Print quality is astounding; it resembles the kind you find on wedding invitations- raised, embossed, high-quality. How Does It Work? One of the major problems with many ink-jet printers is the tendency of the ink's solvent to evaporate, leaving dried ink clogging the jets. Plastic ink is loaded dry and serves as its own carrier, so there is no solvent to evaporate; hence, no clogging. Other ink-jet prob- lems include the way in which ink tends Plastic Ink Jane Morrill Tazelaar to "bleed" into the paper it is being sprayed on before it dries and the way it smudges if you touch it before it's dry. Plastic ink eliminates these problems because it solidifies immediately on contact with the paper. Plastic ink is solid at room tempera- ture and has a melting point well above it. Within the Pixelmaster printer, the ink remains in a liquid state because it is kept in a reservoir that is heated to a tem- perature above the ink's melting point. The print head is also heated. Thus, while the ink remains in the printer, it is liquid. As soon as it leaves that heated environment— conventional piezoelec- tric crystals apply pressure on the reser- voir, expelling the ink through the jet "on demand"— the ink cools and re- turns immediately to its natural solid state, producing a high-quality, slightly raised output. The solid plastic inks are clean and easily inserted through shape- and color-coded receptacles in the Pixelmaster. The Pixelmaster Printer The Pixelmaster comes in two configu- rations. The Pixelmaster I has 8 jets for each color (black, cyan, magenta, and yellow) and prints a full page of informa- tion—either multicolor or black only— in approximately two minutes. The Pix- elmaster II comes with 20 black jets and 4 jets for each of the other three colors. It prints a page of black-only text in 30 Digitized images of photographs produced by Howtek 's Pixelmaster printer using Thermo Jet technology and plastic ink. seconds and a page of color in 4 to 5 minutes. Retail prices for either config- uration start at $4495. At 240 by 240 dpi by four colors of ink, the Pixelmaster can place as many as 21.5 million dots on an &Vi- by 11- inch piece of paper. It can generate up to 64 levels of each of the RGB colors (con- verted to CMY via proprietary soft- ware) for a total of over 250,000 possi- ble color shades. These numbers help to explain the beautiful realism it attains (see the photos). In addition to magnifi- cent colored reproductions, the Pixel- master can print four-color separations, one color per page, and mirror images, used to produce transparencies. The Pixelmaster is limited in output size; although geared to office use and supporting letter and A4 paper sizes, it does not support legal and B5 paper sizes. However, it does provide the other normal abilities of an office printer: You can vary lines per inch, page length (within stated limits), margins, number of copies, and so forth. You can inte- grate all kinds of color images and text on any standard office paper. You can vary the color and thickness of your "pen" and generate truly solid area fills. And you can emulate LaserJet ras- ter-graphic densities. You can print text, fonts, and special characters in a variety of type styles and sizes by inserting the appropriate font card, and reference as many as 120 different fonts or symbol sets at one time, all on a single page if you wish. The Pixelmaster contains 32 ink jets mounted on a round print head that ro- tates on an axis concentric to the curved platen. Vertical motion tabs pick up a single sheet of paper from the holder and wrap it into a semicircle around the print head. A slight vacuum holds the top of the sheet against the platen, and the paper moves smoothly past the rotating print head. Since the paper remains at a fixed distance and angle from the ink jets— print-head rotation and paper lift are synchronized— each jet can be aimed and timed to accurately place dots of ink on the paper. An easily installed Protocol Interface Controller (PIC), a single-board com- puter built around a 68000 microproces- sor with between 512K bytes and 4.5 megabytes of RAM (in 2-megabyte in- crements), determines the personality of the printer. You can program this imag- 174 BYTE- SEPTEMBER 1987 Inquiry 149 COLOR PRINTING ing controller to contain numerous pro- tocols such as page-description lan- guages, emulations of protocols for existing printers, or custom protocols developed for specific vertical applica- tions. You can also add optional hard- ware interfaces, such as IEEE488, SCSI, and Ethernet. Currently, Howtek supports two protocols: Hewlett-Pack- ard's HPGL and HPPCL LaserJet pro- tocols. PIC cards have also been config- ured to support Centronics, RS-232C, or GPIB physical communication interfaces. The print engine in the Pixelmaster includes a slant processor, one of six custom Howtek LSI chips, which trans- forms the PIC's scan-line data into ink- jet commands. This chip also controls the ink-monitoring and control systems and the heater— an approach that greatly simplifies the software needed to drive the printer. In All Honesty I haven't seen the Pixelmaster in opera- tion, and I won't pretend that I have. I am told that using it is as simple as load- ing the paper and pushing the right but- tons. I am told that it runs very quietly. I believe the people at Howtek, but you can't prove these things by me. What I will stand up and shout about, however, is the most exciting output I have ever seen from an office printer: pictures that seem almost touchable, print quality that is indeed touchable, and brilliant detail and color quality. Plastic ink may sound like a strange idea, but in the world of ink- jet printing, it might turn out to be sheer genius. data-controlled light source— a laser for a color laser printer. The first such system will probably be available in early 1988. Initial price estimates range from $20,000 to $25,000; this is comparable to electro- static plotters. Electrophotography is a plain-paper technology; rather than imaging directly on paper as electrostatic plotting does, light exposure creates a charge on a pho- toconductive drum. These latent images are toned (usually with a dry toner); then the toner is transferred to the paper and fused. In some cases, an intermediate, nonconductive surface receives each color layer before finally transferring it to the page. Much of the excitement about the po- tential of color laser printers is based on the tremendous success of their mono- chrome counterparts. As some prices have dipped below $2000, these page printers have become an accepted office output device. Experts expect color laser printers to share some of the positive at- tributes of the current laser offerings and thereby bring color out of specific appli- cation niches. Print resolution will be high, probably the 300 dpi that is stan- dard for page printers, and therefore compatible with office-oriented software in monochrome mode. The cost of sup- plies should be low. And while speeds are likely to be below 10 pages per minute for color output, monochrome pages should run at 20 to 30 ppm. A Balancing Act While the growth of color printing has been slower than expected, it is not for lack of color-printing technologies. The task for color-printer manufacturers now is refining those technologies so that you don't lose resolution when you want a large variety of colors, you don't have to take a slow printer in order to get one you can afford, and you can use any sort of paper or transparency that you want with any sort of printer that you have. But this is still in the future. For the present, you must balance price, performance, print quality, and other factors in choosing a color printer or plotter. ■ FOR MORE INFORMATION The issues discussed in this article and the potential for color in a variety of environ- ments are treated in detail in a new market study by Datek Information Services enti- tled High End Color Printers for Emerging Applications, For more information on this and other Datek reports, write Datek at P. O. Box 68, Newtonville, MA 02160, or call (617) 893-9130. Datek is a research and publishing firm providing focused newsletters, reports, and seminars for the electronic-imaging industries. LABTECH ACQUIRE aQ^ 1 A A A v The easy way to collect data LABTECH ACQUIRE is the newest system from Laboratory Technologies. It is designed for those of you who have relatively simple data acquisition tasks to do, but who don't want to do your own programming or pay the price for a full-blown data acquisition and control system. Now, with ACQUIRE, you can bring data in from four analog sources and one digital source, display it on the screen, and stream it to disk in real-time. You can even do things normally associated with more expen- sive systems, like triggering the start of acquisition, and time stamping the data. Transporting that data to your favorite analysis program is easy. We even supply macros and programs to help you get started. And if your needs grow in the future, and you want to take data from more channels, work with specialized data channel types, analyze the data in real-time, control your tests, or pro- vide for more generalized triggering, you can move on to the industry standard, LABTECH NOTEBOOK. All of the tests you have set up with ACQUIRE will run unchanged. And you get all this for only $195. For information on where to buy along with a list of interface hardware supported by LABTECH ACQUIRE, write Laboratory Technologies or call (617)657-5400. LABTECH ACQUIRE is compatible with the IBM PC, XT, AT, or compatibles, and instru- mentation interfaces from a large and growing number of manufacturers Laboratory Technologies Corporation 255 Ballardvale Street Wilmington, MA 01887 (617) 657 5400 • Telex 989695 LABTECH ts a registered tademark of Laboratory Technologies Corporation. SEPTEMBER 1987 -BYTE 175 II MicroServe guarantees the lowest price for quality compatibles or your money back!* PRO-PLUS+™ XT TURBO PRO-PLUS+™ AT TURBO STANDARD FEATURES: IBM PC/XT Compatible 4/8 MHZ CPCJ speeds 640k RAM Memory Two 360k Diskette Drives 1 50 Watt Switching Power Supply FCC Approved Chassis AT Style Keyboard High-Resolution Amber Monitor Hercules Compatible Graphics Card Parallel Port User Manual Complete and Ready to Run! STANDARD FEATURES: IBM AT Compatible 6/10 MHZ CPCJ speeds 1Mb RAM Memoiy One High Density 1 .2 Mb Diskette Drive Hard/Floppy Disk Controller Card 200 Watt Switching Power Supply FCC Approved Chassis Enhanced AT Style Keyboard High Resolution Amber TTL Monitor Hercules Compatible Graphics Card On-Board Clock/Calendar Parallel Port User Manual LAN & Multi-Gser Ready Complete and Ready to Runl CALL MICROSERVE FOR QUOTES ON CONFIGURATION OF YOUR CHOICE MICROSERVE Computer Products are the Highest Quality and Best Values on PC/XT and AT Compatibles! HARD DRIVES Seagate 20Mb w/contr. ST225 Seagate 30Mb w/contr. ST238 Seagate 20Mb for AT ST225 . Seagate 30Mb for AT ST4038 Seagate 40Mb f or AT ST251 . Seagate 80Mb for AT ST4096 $335 ..389 ..289 ..529 ..629 ..929 MONITORS Amber TTL w/Tilt Swivel Base ... $1 1 9 Color RGB Monitor 279 EGA Monitor w/Card 569 PRINTERS Panasonic 10801 $219 Panasonic 10911 269 Okidatal82 229 Okidata 192+ 350 Okidatal93+ 525 Citizen 120D 189 Citizen MSP10 279 Citizen MSP20 315 Citizen MSP15 379 Citizen MSP25 459 Toshiba P321 445 Toshiba P341E 659 Toshiba P351III 929 MOST ORDERS SHIPPED WITHIN 48 HOURS PURCHASE WITH CONFIDENCE! iOJ Here is our commitment to you: 30 Day Money-Back Guarantee — // you are not satisfied with any item you purchase from MicroSeive, you may return it within 30 days of the date of shipment for a full refund Returns must be "as-new", not modified or damaged, with all warranty cards, manuals, and original packing intact, and must be pre-authorized by MicroSeive, and be shipped prepaid and insured One Year Limited Warranty — MicroSeiveCoiporation warrants the products it manufactures to be free from defects in materials and workmanship for a period of \ one year from the date of shipment During this one year period, MicroSeive will repair or replace, at its option, any defective products or parts at no additional charge, prodded the product is returned, shipping and insur- ance prepaid, to the MicroSeive repair facility. TERMS: All prices subject to change without notice. Shipping is FOB Phoenix, AZ. Minimum shipping charge is $2.50. UPS C.O.D. is $3.00 additional. Arizona residents only, add 6.7% sales tax. Allow extra two weeks shipping time when paying by personal or company check. Mo extra charge for MasterCard or Visa orders. All shipments sent insured. A Returned Materi- 1BM PC/XT and AT are registered trademarks of IBM 176 BYTE- SEPTEMBER 1987 al Authorization number obtained from MicroServe in advance must be shown on the shipping label for all returns. All systems are bumed-in and tested for 24 hours. We configure systems boards, set up switches, format hard drives, perform all diagnostics, and check the system with your monitor. All systems are FCC approved: Class 1 5 J, Part B. Corp. CALL TOLL FREE: 1-800-621-8285 (In Arizona, Call: 1 252 0017) Inquiry 178 for End-Users. Inquiry 179 lor DEALERS ONLY. )^ PRINTER TECHNOLOGIES Vector-to-Raster Algorithms Disguising the more intuitive vector information as raster data Dick Pountain FROM CRTS TO printers, the world of personal computers contains a multitude of raster devices trying to express vector information. While programs specify formulas, curves, and objects, most of the visual output devices that personal computers use (except the pen plotter) must translate that information into the sequence of dots, or pixels, that a raster device can portray. (While dots refer to printed output and pixels to screen out- put, there is no difference between the two in terms of raster imaging. There- fore, I shall use the word dots, where ap- plicable, to focus on printing, while the word pixels would be equally correct were I to focus on displays.) Made for TV The archetypal raster device is the televi- sion CRT. Even the word raster comes from television technology, where it de- scribes the two-dimensional array of horizontal scan lines traced by a flying dot of light as it creates a TV picture (a process called raster scanning) . A raster device produces an image by scanning each horizontal line and gener- ating the sequence of dots that it finds, thereby building up a whole picture. The exact sequence of dots is calculated from information found in the operating soft- ware. Since raster images consist of sepa- rate dots, a raster device can't draw con- tinuous lines like a vector device can. If you have sufficient resolution and slightly overlapping dots, you can maintain the appearance of continuity most of the time, but diagonal lines inevitably con- tain an element of "jagginess. " Most personal computers use a raster CRT as their primary output device. Some portables use liquid-crystal, gas- plasma, electroluminescent, or other types of flat-screen displays, but you can still categorize them as raster displays al- though technically they don't produce their displays with a flying dot. What they do have in common is a picture com- posed of individual pixels, arranged in lines drawn one after the other. Most of the printers for personal com- puters are also raster devices. Laser printers print lines of dots in sequence to build up an image on the paper. Most dot- matrix printers have the ability to print both in bit-image mode, a raster process, and in character mode. The daisy-wheel printer is one exception; it prints only whole characters, can't draw arbitrary lines, and gives you no access to the indi- vidual dots. Creating a Good Disguise Since raster devices are so widespread and vector devices relatively rare, why bother to make the distinction? Because the kinds of data structures and algo- rithms you need to program the two are fundamentally different. More impor- tant, vector representation is much more intuitive to the human mind and far more flexible in use. As so often happens in computing, we are faced with a paradox: We wish all output devices were vector- oriented, but they tend to be raster-ori- ented. A lot of programming effort goes into disguising the latter as the former. For example, the natural way to specify a circle would be to provide the coordi- nates of its center and its radius. A raster display will have none of this; it under- stands only a sequence of dots on each line. It doesn't care which of these dots fall on the circle and which don't. The vector description is not only more natural, it is also more flexible and economical. You can represent a circle, at its simplest, with three numbers (x, y, and radius). If you need to move the cir- cle, ideally all you must do is change the values of x and y. However, to a raster de- vice, moving the image changes every- thing, as each dot on the circle will be in a different place. Some personal computers that support graphics include a BASIC command to draw a circle on a raster device from a vector representation. But at some lower level, either in the BASIC interpreter it- self or in the operating system, software is working away furiously to convert this vector representation into a pattern of dots suitable for the raster device, a pro- cess called rasterization. The special al- gorithms employed by this process are often called vector-to-raster or scan-con- version algorithms. Laser printers increasingly incorporate their own intelligence and rasterization routines, and the performance of their conversion algorithm can have a crucial affect on their speed. Laser-printer ras- continued Dick Pountain is a technical author and software consultant living in London, England. He can be contacted c/o BYTE, One Phoenix Mill Lane, Peterborough, NH 03458. SEPTEMBER 1987 -BYTE 177 VECTOR-TO-RASTER ALGORITHMS terization can take a lot of processing time because the resolution is more than 10 times that of a typical CRT screen. Many current laser printers contain a pro- cessor chip at least as powerful as the CPU in the computer to which they are connected. The use of custom hardware for rasterization is also increasing (see "Designing a Raster-Image Processor" by Jon Barrett and Kirk Reistroffer in the May BYTE). With a Little Bit Raster devices that can produce arbitrary graphics images (as opposed to just char- acters) are usually "bit-mapped." This means that every pixel or dot in the raster image is represented by a bit in computer memory. For example, in a bit-mapped CRT display, the whole screen image is stored as a sequence of bits in an area of computer memory reserved for this pur- pose, called the display buffer. The display buffer is accessible not only to the CPU but to a video-controller chip that scans through it at short inter- vals (60 times per second for most U.S. screens) and translates every 1 bit into a lit pixel on a scan line on the screen. In a laser printer, the bits are used to alter the intensity of the scanning laser beam that creates the paper image. The process of generating an image now becomes the process of writing the correct pattern of bits into the display buffer. Unfortunately, this is not as straightforward as it seems, for two rea- sons. First, as a rule, CPUs don't access single bits; instead, they access 8-bit bytes or 16- or 32-bit words. Thus, with- in memory you must group together the dots making up an image in a manner that bears no relation to the image but is dic- tated solely by the CPU's word length. Dots that logically belong to the same image may be spread across many mem- ory words. Second, the display buffer consists of one long sequence of bytes (or words), whereas the output is composed of a num- ber of separate scan lines. Two dots that are vertically adjacent on the output may be widely separated in the display buffer. In addition, many manufacturers have devised complex mappings between the display buffer and the raster device; for example, some intersperse color infor- mation with bit-mapped data in the same buffer or store scan lines in a different order from that on the output. I shall con- sider only simple monochrome bit maps, where each bit corresponds exactly to one dot. Some color devices use a number of such simple bit maps, called bit planes, to represent the different color compo- nents—red, green, blue, and gray— of a colored image, and my observations ap- ply equally to these. Dissecting Objects into Bit Maps How can you translate an object de- scribed geometrically (e.g., a line or a polygon) into a bit map? The tension be- tween the two ways of. representing an image, as an object or as a bit map, runs through all of graphics programming. For example, MacPaint. is a bit-mapped draw- ing program; it turns every picture you draw directly into a bit map. On the other hand, MacDraw is an ob- ject-oriented program; it stores a picture as a set of data structures containing geo- metric descriptions of the various image components. MacDraw constructs a bit map only when it displays or prints the picture. Thus, you have more flexibility in altering a MacDraw image than you do in modifying one from MacPaint. Listing 1: Plot, a pseudocode algorithm for plotting a single point at an arbitrary location. Program Plot(X,Y) Address <- BufferStartAddress + QU0TIENT( (X + Y * PixelsPerScanline) / BitsPerWord) BitNumber <- (BitsPerWord - l) - REMAINDER (X + Y * PixelsPerScanline) / BitsPerWord) Mask <- 2 * BitNumber [Address] <- [Address] OR Mask Listing 2: Faster Plot, a more efficient version of listing 1. Program FasterPlot(X,Y) Address <- BufferStartAddress + (X SHIFTR 3) + (YSHIFTL6) + (YSHIFTL4) Mask < - 128 SHIFTR ( X AND 7 ) [Address] <- [Address] OR Mask In an object-oriented program, each component is a separate object that you can move as a whole, alter in size, or ro- tate to any angle. The ideal in graphics programs from CAD/CAM to desktop publishing is to keep the data geometrical (and, therefore, flexible) as long as possi- ble, converting to the relatively inflexible bit map only at output time. As well as consuming a lot of processing time, ras- terization causes an irreversible loss of information; it is difficult indeed to ex- tract geometrical information from bit- mapped images. You can, however, ma- nipulate them to some extent with the BitBLT operation. The Plot Thickens The most primitive operation on a raster device is plotting a single point at an arbi- trary location, expressed in device coor- dinates (the number of dots by the num- ber of scan lines). However, even this operation is not trivial. You must convert the device coordinates to the memory ad- dress of the appropriate word and then set the correct bit within that word using log- ical masking operations. To make things worse, you often have to count from the wrong end of the word to find the correct bit, a bit-reversed format: dot 01234567 xxxxxxxx 765432 10 bit Listing 1 contains Plot, a pseudocode algorithm for plotting, which assumes the bit-reversed format. [Editor's note: This article uses the following conventions: square brackets, [x], mean "the contents of memory location x"; A means "raised to the power"; and the logic operators OR, AND, and NOT are bit-wise operations rather than Boolean ones. All the algo- rithms given are in pseudocode. ] In practice, you wouldn't actually em- ploy multiplication and division as I have in listing 1 . A plotting routine must be as fast as possible, since printing ultimately depends on it, and it will be executed bil- lions of times. You should always write it in machine code and optimize it using every trick your instruction set offers. You should also replace all the multi- plication, division, and power operations with logical left and right shifts. For ex- ample, if your word length is 8 bits and you have 640 dots per line, you want a routine that operates like FasterPlot (see listing 2). A faster, but more hard- ware-specific, solution would be to elimi- nate >> coordinates from the calculation by precomputing the address of every scan line on the device and storing them in a lookup table. continued 178 BYTE- SEPTEMBER 1987 If you ever, wanted to take a crack' at assembly language, You probably already know that assembly language subroutines are the smartest way to get the fastest programs. But if the complexities of working in assembler made you think twice, here's some good news. WeVe made Microsoft® Macro Assembler Version 5.0 a lot easier to use. We eased the learning process by giving you the best support around. We com- pletely revised our docu- mentation. The new Mixed Language Programming Guide gives you step by step instructions for linking your assembly code with Microsoft QuickBASIC, C, FORTRAN, Pascal and other languages. And you get a comprehensive refer- ence manual with listings of the instruction set and examples of each instruc tion. We didn't stop there, though. You also get an on-disk collection of templates and examples. We've also dramatically simplified the high-level language interface. In just a few nows the time simple steps, you can be calling Macro Assembler subroutines from pro- grams written in your favorite language. Now that you're writ- ing the fastest programs , Microsoft is giving you the fastest way to de- bug them. For the first time, we've added our CodeView® debugger to Macro Assembler. With source code and comments on your screen, Microsoft Code- View makes debugging pro- grams containing assembly language subroutines a snap. And you'll be glad to know that you don't sacrifice any speed for all the ease of use. We took the fastest Macro Assembler on the market and made it even faster. So what are you waiting for? Get your hands on Microsoft Macro Assembler and see what it's like to break your personal speed limit. Microsoft" For more information or for the name of your nearest M icrasolt dealer, call (800) 426-9100. In Washington State and Alaska, (206) 882-8088. in Canada, call (416) 673-7638. Microsoft, Die Microsoft logo and CodeView are registered trademarks of Microsoft Corporation. VECTOR-TO-RASTER ALGORITHMS Figure I: The staircase effect achieved when you try to plot a straight diagonal line on a raster device. T B ' Db jq^* Ideal line Last plotted - point wm j£^^ y^*^ 1 Da ■ a Candidates for next point Figure 2: A diagram ofBresenham 's met hod for determining which point to plot next to come closest to the ideal of a particular line. Listing 3: BresenhamLine, a pseudocode algorithm for an abbreviated and limited version ofBresenham 's line algorithm. Program Bres enhamLine ( X 1 , Yl , X2 , Y2 ) DeltaX <- X2-X1 DeltaY<-Y2-Yl Error <- 2 * DeltaY - DeltaX X <-Xl Y v <- Yl FOR Count FROM 1 TO DeltaX IF Error > THEN Y<-Y+l Error <- Error + 2 * (DeltaY - DeltaX) ELSE Error <- Error + 2 * DeltaY END IF X <- X+l Plot(X,Y) Listing 4: HorizLine, an algorithm for horizontal lines in pseudocode. Program HorizLine(Xl,X2,Y) FirstAddress <- Buf f erStartAddress + (XI SHIFTR 3) ■ (YSHIFTL6) + (YSHIFTL4) <- BufferStartAddress + (X2 SHIFTR 3) ■ (YSHIFTL6) + (YSHIFTL4) <- 255 SHIFTR (XI AND 7) <- NOT (255 SHIFTR (X2 AND 7)) [FirstAddress] <- [FirstAddress] OR FirstMask FILL FROM FirstAddress+1 TO LastAddress-1 WITH 255 [LastAddress] <- [LastAddress] OR LastMask LastAddress FirstMask LastMask For screen applications, you may want a second version of Plot that replaces the OR operation on the Mask with a bit-wise XOR. This produces the effect of plotting a black pixel on white areas and a white pixel on black areas, while replotting the same point erases it. You can use drawing routines based on this primitive to draw over any image and then restore the previ- ous image; this is one way to provide a screen-cursor symbol or a rubber-band box for grabbing screen areas. Once you can plot a point, you need a routine that can draw lines. Line plotting on a raster device bears little resemblance to geometry, where y = Mx + C (M being the slope and C a constant). Instead of plotting in continuous two-dimension- al space, you are trying to plot onto a grid of discrete points. You cannot, in general, plot a straight diagonal line on a raster device; you can only approximate it with a series of steps resembling a staircase (see figure 1). You can use the geometrical formula by com- puting v = Mx + C for each x (in float- ing-point arithmetic) and then rounding the value of y to the nearest integer, but it's too slow for practical use. True raster-line algorithms calculate which of the available dots (from the grid of discrete points) fall closest to the ideal straight line between the two points. To achieve maximum speed, these algo- rithms avoid multiplication and division. The best are incremental algorithms, where you compute each step from the preceding one. Bresenham's Line Algorithm The most widely used raster line algo- rithm today is Bresenham's line algo- rithm, discovered by J. E. Bresenham, an IBM researcher, in 1965. This algo- rithm maintains an error term whose value is proportional to the deviation of the points from the ideal line. If a point has just been plotted, in general, two pos- sible choices exist for the next point {A and B in figure 2), and one of them will be nearer to the ideal line than the other. Bresenham's error term is proportion- al to (Da — Db), the difference in dis- tances from the ideal line. In figure 2, A is closer to the line; since Da < Db, the error term is negative, and you need to in- crement only the x coordinate, resulting in a horizontal line segment. If the error term is positive, B is closer to the line, and you increment both the x and the y coordinates, resulting in a step (both a horizontal and a vertical line segment). Bresenham devised an algebraic deri- vation of the error term so it can be calcu- lated incrementally, using only integer addition, subtraction, and multiplication by 2 (replaced in practice by a left shift). 180 BYTE- SEPTEMBER 1987 VECTOR-TO-RASTER ALGORITHMS See BresenhamLine in listing 3. (For space reasons, I have confined myself to a line with an uphill slope of less than 45 degrees; a more generalized version of the algorithm examines the relative mag- nitudes of xl , yl, x2, and y2 and swaps variables appropriately . ) The only true straight lines you can draw on a raster grid are horizontal lines, vertical lines, and the 45-degree diagonal line (which is at an actual 45 degrees only if the device has a square aspect ratio). These special cases are easier to plot, and so they often have their own separate rou- tines that run faster than the general case. For example, horizontal lines occupy contiguous addresses in the bit map; thus, you can plot them noniteratively using a fast memory-fill instruction. The only trick lies in masking the par- tial bytes that may occur at either end of the line. Assuming the same hardware characteristics as FasterPlot, Horiz- Line (see listing 4) ignores the line less than eight dots long that falls within 1 byte; in that case, you should use both FirstMask and LastMask. (Listing 5 contains VertLine, a routine that plots vertical lines.) You can now combine these horizontal and vertical line routines into a fast box- drawing routine, Box, which you could use, for example, to print forms on a laser printer (see listing 6). In a similar fash- ion, you could use the general-purpose line routine, BresenhamLine, to write a polyline routine that draws a polygon from a list of coordinate pairs that de- scribe its vertices. Going Around the Bend You can draw curved lines using just the polyline routine, as a sufficient number of short line segments can approximate a curve; for example, a regular polygon with a sufficient number of sides can ap- proximate a circle. A sufficient number is that number that reduces the length of a side to a single dot, for this is as near to a true curve as a raster device can come. Circles and ellipses are so useful that it's practical to have a fast routine espe- cially for drawing them. The equation for a circle of radius, r, about the origin, 0,0, is* 2 + y 2 = r 2 . However, plotting this equation directly using floating-point arithmetic and rounding is impractical; the square-root calculation is too slow. Instead, you can use an error term whose value is proportional to x 2 + y 2 - r 2 and choose the points that minimize this error. As in Bresenham's line algorithm, al- gebraic rearrangement lets you use only simple integer calculations. J. Mich- ener's algorithm is a variation on Bresen- continued Listing 5: VertLine, a pseudocode algorithm for vertical lines. Program VertLine(X,Yl,Y2) FirstAddress <- BufferStartAddress + (X SHIFTR 3) + (Yl SHIFTL 6) + (Yl SHIFTL 4) LastAddress <- BufferStartAddress + (X SHIFTR 3) + (Y2 SHIFTL 6) +(Y2 SHIFTL 4) Mask <- 128 SHIFTR (X AND 7) FOR Address FROM FirstAddress TO LastAddress STEP 80 [Address] <- [Address] OR Mask Listing 6: Box, a method for drawing a box using horizontal lines (listing 4) and vertical lines (listing 5). Program Box(Xl,Yl,X2,Y2) HorizLine(Xl,X2,Yl) VertLine(X2,Yl,Y2) HorizLine(Xl,X2,Y2) VertLine ( XI ,Y1,Y2) Listing 7: Circle, a pseudocode version ofMicheners algorithm for drawing a circle. Program Circle ( CtrX, Ctr Y, Radius ) ; X<-0 Y<- Radius Error <- 3 - 2 * Radius WHILE X =< Y {generate 8 points from one X and Y} Plot(CtrX+X,CtrY+Y) Plot(CtrX+X,CtrY-Y) Plot(CtrX-X,CtrY+Y) Plot(CtrX-X,CtrY-Y) Plot(CtrX+Y,CtrY+X) Plot(CtrX+Y,CtrY-X) Plot(CtrX-Y,CtrY+X) Plot ( Ctr X-Y, CtrY-X) IF Error > THEN Error <- Error + 4 * (X-Y) + 10 Y <- Y-l ELSE Error <- Error + 4 * X + 6 ENDIF X <- X+l ENDWHILE Listing 8: FilledCircle, a modification of listing 7 that fills the circle as it is drawn. Program FilledCircle(CtrX,CtrY,Radius) ; X<-0 Y<- Radius Error<-3-2 * Radius WHILE X=< Y HorizLine (CtrX-X, CtrX+X , CtrY+Y) HorizLine (CtrX-X, CtrX+X , CtrY-Y) HorizLine (CtrX-Y, CtrX+Y , CtrY+X) HorizLine(CtrX-Y, CtrX+Y, CtrY-X) IF Error > THEN Error <- Error + 4 * (X-Y) + 10 Y<-Y-l ELSE Error <- Error + 4 * X + 6 ENDIF X <- X+l ENDWHILE SEPTEMBER 1987 -BYTE 181 VECTOR-TO-RASTER ALGORITHMS ham's: To gain speed, you compute only one-eighth of the points on the circle, the 45-degree slice from 12:00 to 1:30; the rest is deduced on the grounds of symme- try (see Circle in listing 7). Again, you would actually implement the multiplica- tions as left shifts. Curve-fitting algorithms can be used to handle arbitrarily curved lines. However, these are usually reserved for sophisti- cated CAD/CAM systems and are not yet routinely implemented on laser printers or other personal computer raster de- vices. The principle of a curve-fitting al- gorithm is to roughly sketch out a path by plotting a number of guide points and then fitting to them the nearest curve the algorithm can find using pieces from dif- ferent cubic curves. Cubic curves take the form y = A *;t 3 + B*x 2 + C*x + D and have the happy property of fitting together smoothly where they join. A typical application for a curve-fitting algorithm would be smoothing the wire- frame drawings of aircraft or car designs on a CAD workstation. (For a fuller ac- count of Bezier and B-spline methods for curve fitting, see "Free-Form Curves on Your Micro" by Steve Enns in the De- cember 1986 BYTE.) Fill It Up, Please Once you can draw boxes, polygons, and circles, you want to be able to fill them Listing 9: IsSet, a pseudocode routine to determine whether a particular bit in a bit map is a or a 1. Function IsSet(X,Y) Address <- BufferStartAddress + (X SHIFTR 3) + (YSHIFTL6) + (YSHIFTL4) Mask <- 128 SHIFTR (XAND7) Value <- [Address] AND Mask IF Value = THEN RETURN FALSE ELSE RETURN TRUE Listing 10: FloodFill, a pseudocode algorithm in recursive form that floods an area in order to fill it. Program FloodFill(X,Y) WHILENOTIsSet(X,Y) Plot(X,Y) FloodFill(X-l,Y) FloodFill(X+l,Y) FloodFill(X,Y-l) FloodFill(X,Y+l) ENDWHILE Figure 3: This shows how a flood fill can leak through the "holes " in a diagonal line. Enlargement by pixel replication Figure 4: This shows the only method of enlarging a character stored in bit- mapped form— pixel replication. with a solid color. The fastest way is to do it when you are drawing the original shape, for that's when the coordinates of each point on the shape are available. For example, you could modify Circle (see listing 7) into FilledCircle (see listing 8) by drawing horizontal lines between symmetrical pairs of points, instead of just plotting them. A filled box is similarly produced from a sequence of horizontal lines. Filled polygons, however, present more of a challenge; you must find the points at which each horizontal scan line intersects with the edges of the polygon. If you are drawing a concave polygon, there may be more than two such points for some lines. The resulting algorithms are complex and involve keeping sorted tables of the inter- section points and the polygon edges. Filling arbitrary outlines after they have been drawn is a difficult process, but one that an interactive drawing pro- gram might require. Once you have drawn a shape, information about its out- line exists only in the bit map; extracting that information is painful. You must write a routine that reads the value of a dot from the bit map, the exact reverse of Plot, so that you can detect the edges of the region to be filled. IsSet (see listing 9) returns the value "true" if the point x,y is turned on and "false" if it is not (i.e. , if the dot has the background color). The simplest fill algorithm is the flood fill, which is more common in screen applications. It searches in all di- rections from a chosen start point for pixels that are not set and then sets them; the process resembles water flooding across a floor. Filling stops when the flood reaches the boundary of the shape. That boundary must consist of an unbroken chain of set pixels; if it has any holes, the flood will leak out and fill the area around the shape, a common experience for users of draw- ing software. The algorithm is most clearly expressed in the recursive form shown in FloodFill (see listing 10). FloodFill examines the four nearest neighbors of each point: left, right, up, and down. In topological terms, it fills a 4-connected region. You could easily ex- pand it to examine eight neighbors (in- cluding the diagonally adjacent pixels), but this expansion can cause the flood to leak through boundaries drawn using any variant of Bresenham's line algorithm, since they have "holes" in the diagonal directions (see figure 3). This recursive flood fill uses an enor- mous amount of stack space when you run it over sizable areas on a high-resolu- tion device. Iterative versions that over- come this problem are less elegant; they identify horizontal "runs" of pixels to be 182 BYTE* SEPTEMBER 1987 VECTOR-TO-RASTER ALGORITHMS filled by searching along each scan line to find where it intersects with the boundary. What a Character! The drawing primitives we have seen can produce text characters on a raster de- vice, but this is not usually the primary method of displaying text. It's far too slow to draw a letter A using line- and maybe curve-drawing primitives every time you press the A key. Instead, on "soft" systems like the Macintosh, Amiga, and most laser printers, charac- ters are normally stored in nonvisible RAM as a set of bit maps that make up a complete font and then copied to the display buffer as needed. If you have a character-only device, the font lives in ROM, and the display hardware copies it directly. More sophisticated typesetting systems employ a two-stage process. They store the fonts as vector descriptions and then convert them to bit maps in font memory, using algorithms like those above. From font memory, the bit maps can be copied to the display buffer on demand. The ad- vantage of this approach is that you can produce different sizes and styles of char- acters from the same description by ap- plying geometric transforms— you might slope a font to italicize it— while preserv- ing the display quality. Donald Knuth's METAFONT is an ex- ample of a system that describes type- faces geometrically in terms of curved segments. The PostScript page-descrip- tion language can also compute bit maps from mathematically described fonts. By contrast, fonts that are stored solely in bit-mapped form are relatively inflexi- ble. You can enlarge them only by the crude process of replicating the dots (i.e., by printing two or four dots for each one in the original character). This has the profound disadvantage of magnifying the jaggedness of the original in proportion and leads to unsightly characters in the larger point sizes (see figure 4). The al- ternative is to store a separate font bit map for each point size, which uses a lot of memory. (Transforming bit-mapped characters is limited to rotation in multi- ples of 90 degrees.) Bit Blitting The operation used to copy characters to the display buffer has become famous as the BitBLT or Blit operation, short for bit boundary block transfer. The basic Blit operation copies the bits that represent a rectangular area of dots from one place (the source) to another (the destination) in memory. The source and destination may both lie in the display buffer, or the source may lie elsewhere, such as in font mem- ory. Dots need not be aligned on word boundaries, hence the bit-boundary tag; therefore, much of the algorithm is con- cerned with masking out parts of bytes that fall outside the source or destination rectangles. It must also cope with the var- ious cases where the source and destina- tion rectangles overlap (they might even be the same rectangle). The most general form of Blit can com- bine the source and destination rectangles using logical operations rather than sim- ply copying, for example, source XOR destination. With it, you can obtain many special effects, such as characters with transparent backgrounds or characters overprinting each other, perhaps, for ac- cents. (For a good description of the use of the BitBLT operation in kerning char- acters for a laser printer, see "Designing a Raster-Image Processor" in the May BYTE.) BitBLT is, in theory, a general opera- tion that can serve as the sole graphics primitive in a system (it was used this way by its inventors, the Smalltalk team at the continued pc/vr o Q. DC D O > a o u. _i o o H X UNIX's VI Editor Now Available For Your PC! Are you beingas productive asyou can be withyour computer? An editor should be a tool, not aii obstacle to getting the job done. Increase your productivity today by choosing PC/VI— a COMPLETE implementation of UNIX* VI version 3.9 (as provided with System V Release 2). PC/VI is an implementation of the most powerful and most widely used full-screen editor available under the UNIX operating system. The following is only a hint of the power behind PC/VI: • Global search or search and replace using regular expressions • Full undo capability • Deletions, changes and cursor positioning on character, word, line, sentence, paragraph, section or global basis • Editing of files larger than available memory • Shell escapes to DOS • Copying and moving text • Macros and Word abbreviations • Many controllable options including Auto-indent, Showmatch and Wrap Margin • Filter text through external programs AND MORE! Don't take it from us. Here's what some of our customers say: "Just what I was looking for!", "It's great!", "Just like the real VI!", "The documentation is so good I have already learned things about VI that I never knew before." — IEEE Software, September 1986. PC/VI is available for IBM-PC's and generic MS-DOS+ systems for only $149. Included are CTAGS and SPLIT utilities, TERMCAP function library and an IBM-PC specific version which enhances performance by as much as TEN FOLD! PC/TOOLS What makes UNIX SO powerful? Sleek, Fast, and POWERFULutilities! UNIX gives the user not dozens, but hundreds of tools. Now the most powerful and popular of these are available f oryour PC! Each is a complete implementation of the UNIX program. Open up our toolbox and find: • ASA . BANNER . BFS • CAL • CAT •CHMOD • COMM • CMP . CP • CUT • »ATE . DIFF • DIFFH • DIFF3 • FIND . GREP • HEAD . LS • MAKE . MV • OD . PASTE .PR . RM . SED • SEE • SORT • SPLIT • STRINGS . SUM • TAIL . TAR . TR . TOUCH . uNig . wc All of these for a limited time introductory price of only $49.00. Extensive documentation is included! PC/SPELL ®l X H o o r 0) ■n O 3J < O C 30 •v o Why settle for a spelling checker which can only compare words against its limited dictionary database when PC/SPELL is now available! PC/SPELL is a complete implemen- tation of the UNIX spelling checker, renowned for its understanding of the rules of English! PC/SPELL determines if a word is correctly spelled by not only checking its database, but also by testing such transformations as pluralization and the addition and deletion of prefixes and suffixes. For only $49.00, PC/SPELL is the first and last spelling checker you will ever need! ^^^^^^^^^^^^« BuyPC/VIand PC/TOOLS nouj and get PC/SPELL foronly S1.00! Site licenses are available. Dealerinquiries invited. MA residents add 5%salestax. AMEX, MC and Visa accepted without surcharge. Thirty day money back guarantee if not satisfied! Available in 5 '/* ". 3 1 //' and 8" disk formats. For more information call today! •UNIX is a trademark of AT&T. +MS-DOS is a trademark of Microsoft. CUSTOM SOFTWARE SYSTEMS P.O. BOX 678 • NATICK, MA 01760 617 • 653 • 2555 Inquiry 68 SEPTEMBER 1987 -BYTE 183 Inquiry 283 AN ALMOST FOOLPROOF WAY TO MAKE ARCHIVAL BACKUPS OF PROTECTED SOFTWARE! The Copy II PC Option Board is an easy- to-use add-in board that will give your PC the same disk duplication technology used by most disk duplication firms (who put the copy protection on software in the first place). DUPLICATES NEARLY ALL PROTECTED DISKETTES. The Option Board can easily backup almost all protected diskettes for the IBM PC, including ones software-only backup programs can't touch. It even includes a track editor that will allow the more technically inclined to look at protection schemes and edit any data on a diskette. The Option Board uses a half-size slot in an IBM PC, XT or AT, Heath/Zenith 150, 151, 158, Compaq Deskpro. Requires: 1 360KB drive, 256K memory. Extra $15 cable required for Compaq Portable, HP Vectra and Tandy 1000. Call 503/244-5782, M-F, 8-5(West Coast time) with your 2H {$$ in hand. Or send a check for $95.00 U.S. plus $3 s/h, $15 overseas. Please specify your computer brand when ordering so we can send you the correct cable. $95.00 Central Point Software, Inc. 9700 S.W. Capitol Hwy, #100 Portland, OR 97219 CentrdPoirit Sofhui 'are i>xmmi\m) Backup utilities also available for the Macintosh, Apple II, Commodore 64/128 and Atari ST. VECTOR-TO-RASTER ALGORITHMS Xerox PARC). It does not belong to the class of conversion algorithms that are the subject here, because it is an opera- tion on bit maps rather than a producer of bit maps. However, far from being a rival to scan conversion, BitBLT is highly comple- mentary. An image that has been scan- converted to a bit map can be moved around using BitBLT to save having to draw it again, as with font characters. BitBLT is the best way to scroll a screen, for example, by copying the whole screen one line upward and then erasing the bottom line by XORing it with itself or by copying in the next image line. The BitBLT operation is also good for creating overlapping windows and simu- lating the movement of objects on the screen. However, it is not a good way to draw arbitrary lines and curves or to fill arbitrarily shaped areas. Blitting large areas can consume a lot of processing time, and there is an in- creasing tendency to implement BitBLT directly in hardware, as in the Amiga's blitter chip and graphics coprocessors like the TMS34010. The latter chip also supports scan-conversion primitives to draw lines and fill areas. A Raster in Vector Clothing The ideal computer output device would allow randomly oriented lines and areas to be drawn directly by merely specifying their display coordinates. However, in the real world, we have to simulate such a device using cheaply available raster- scan devices like the television CRT tube and the dot-matrix printer. A lot of ingenuity has been expended on the algorithms necessary to make this simulation work efficiently, but the user and the high-level-language programmer seldom see the complexity of vector-to- raster conversion, because it is taken care of in the operating system, language com- piler, or even by the hardware. The field of vector-to-raster conver- sion is by no means yet closed. New algo- rithms for polygon filling are still being discovered, and the application of BitBLT to multicolor displays is a recent develop- ment. As laser-printer technology ad- vances into color, antialiasing (i.e., dis- guising jagged lines by shading the edges with varying-intensity dots) promises to become a hot topic. ■ BIBLIOGRAPHY , Foley, J. D., and A. Van Dam. Fundamen- tals of Interactive Computer Graphics. Reading, MA: Addison-Wesley, 1982. Newman, William M., and Robert F. Sproull. Principles of Interactive Com- puter Graphics. New York: McGraw- Hill, 1979. 184 BYTE- SEPTEMBER 1987 Inquiry 45 Star has ImagePower Printers for: jrfajsb m$ki daifa esu pa HSSHMH ; ' mm Urn 4sa ■ II Bankers... NX-/0 offers flexibility and value; with 120 cps Draft mode, and 30 cps Near Letter Quality, for credit and loan reports. Executives... The Signature NB24-1 5 features professional-looking Letter Quality at 72 cps, with high resolution graphics. Students... Budget-minded students like the NP-10. Draft at 100 cps; and crisp NLQ looks great in class. PARIS THREE ENTERPRISES ] -L^g ...„ " v- ' - ■ -. : : : :: ':.- ..-. : ■ z z * • • zz-. : ;H: • 7- Z 1 11 I I 1 1 ii Jglk » ~ semSis&i* — - Editors... The ND-10 meets deadlines with a fast 180 cps Draft mode, time-saving 12. 6K buffer. Plus, crisp NLQ. ■~ — «™ Accountants... Spread sheets fly out of the NR.-15 at a fast 240 cps Draft; plus features that make numbers look more impressive Lawyers... Signature NB24-10 prints drafts at 216 cps, true Letter Quality at 72 cps, for faultless legal briefs. ; STKfrSS ANALYSIS OV BUILDING MATERIALS ( ■ mm mmsmr Engineers... NB-15, our fastest Signature, with a 15" carriage perfect for number crunching and design work; 300 cps Draft, 100 cps LQ. g pfffl - f * v ■ . *m*mi ^m^nm^e^^m, Retailers... They're sold on the NX-15; prints inventory reports and spreadsheets at 120 cps Draft, or 30 cps NLQ. Andyou. XV hetherj/ou need spreadsheets, graphics, or word processing, Star has an ImagePower™ Printer tomakeyour work, and you, look your very best. The 24-wire Signature Series offers impeccable Letter Quality print-outs, outstanding graphics, and terrific speed. Star's 9-wire models combine print quality and speed, without squeezing your budget. And every Star printer features a convenient front control panel - placing important functions right at your fingertips. Plus, built-in tractor and friction feed paper-handling features are included as standard. To find out where you can get a Star ImagePower Printer that's right for you, call 1-800-447-4700. ■ cronies THE IMAGEPOWER PRINTERS Inquiry 276 SEPTEMBER 1987 -BYTE 185 Our laser printers speak for themselves. LaserProse llr^ A "l^"" -Si..,, 12&0I] JE"i4Srs **■" "" ^t*~''=r*IH ^-'iT^'.r |lt|g mm ^crtm BAR* .'Oil KS FOR F.VKRY APPLICATION Desktop Publishing Spreadsheets 14015222 IliilllN 20000 s ■■■■■■ -L liilllifl iiiiiinin "E140-15222E liniiiiMiiifl i 1000 ^ ininiinn Willi iililliD Bar Codes Custom Business Forms •Hi ■ ±- Alotor/P-u/Trvp Mcchan.ica.1 ^sse-mbl-y CAD/CAM Drawings ■•I . ', - 'I 'U ■>.•..,,<:■, ©g*™™ 11 " Business Text and Graphics Letters, Memos and Reports Select from a wide range of LaserPro laser printers. High quality printing at eight to fifteen pages-per-minute. Software compatibility with virtually all packages that support the Hewlett-Packard LaserJet PLUS™ HP LaserJet™ Diablo® 630, Epson® FX-80, Qume Sprint® 11, NEC Spinwriter® and other popular printers. Prices begin at $1,895* For more information, call (800) 732-4589. In California, call (800) 732-4588. Office Automation Systems, Inc., 8352 Clairemont Mesa Blvd., San Diego, CA 92111 •Suggested U.S. retail price Inquiry 198 for End-Users. Inquiry 199 fbr DEALERS ONLY. LaserPro** is a trademark of Office Automations Systems, Inc. Epson® is a registered trademark of Epson America Corporation. LaserJet PLUS." and LaserJet™ are trademarks of He wletl-Packarct Corp, Qumc® is a registered trademark of Qume Corporation. Diabio* is a registered trademark of Xerox Corporation. NEC Spinwriter® is a registered trademark of NEC Information Systems, Inc. By Office Automation Systems, Inc. (0ASYS) LaserPro Shared Resource Printers PRINTER TECHNOLOGIES Page Printers New technologies help laser printers and their cousins cost less and produce better results Rick Cook TODAY'S PAGE PRINTERS have two problems. The first is obvious: price. At a time when a very good printer costs less than $1300 and a less capable unit can sell for under $200, laser printers start at $ 1 700 and go up quickly . The second problem is resolution. For traditional computer-printing jobs, the 300-dot-per-inch resolution of current- model page printers is more than ade- quate. However, the advent of page printers has spawned new applications— notably, desktop publishing— where 300 dpi is not always good enough. Tradition- al graphics-reproduction methods for typesetting and photography use resolu- tions of 1000 to 2400 dpi. Help is coming on both fronts, thanks to new technologies such as LED, liquid- crystal-shutter, and ion-deposition imag- ing, and to traditional market forces such as volume production and changes in the design philosophy regarding printer intel- ligence. In this article, I'll survey the present technology and look at some of the developments that promise to make page printers even more powerful and versatile and, in some cases, less expensive. How a Page Printer Works Most page printers use electrostatic forces to create a page image from raster- ized digital information and to transfer that image in the form of toner onto a piece of paper. The heart of an electrostatic page printer is a drum or belt coated with a photoelectric substance that develops a positive or negative charge in response to light. The usual coatings are selenium and some organic compounds. A beam of light (or an array of individual light sources) "writes" an image onto the drum one row of dots at a time (see photo 1). As each row of dots is written out, a stepper motor advances the drum by one row and the light source writes out the next line of the image. The result is a 1000-volt electrostatic image of the page on the drum, against a background potential of about 1 00 V. As the drum rotates, it passes over a reser- voir of toner, finely divided particles of an organic compound that is susceptible to static charge. The charged areas on the drum attract and hold the toner. The toner-laden image on the drum is then brought into contact with a sheet of paper that has been charged to an even higher potential, usually about 2000 V, by means of a corona mechanism. The toner jumps to the paper in the same way that bits of lint will jump up and cling to a vi- nyl comb. Heated rollers fuse the toner to the paper to produce the finished page, and the paper-handling system passes it to the output tray. After transferring the image onto paper, the drum rotates past a discharge wire to eliminate any remaining charge. Then a scraper assembly removes the last traces of toner, leaving the drum clean and ready to receive the next image. Figure 1 illustrates the entire system (for a laser printer) schematically, but don't be misled: The process is not sim- ple. A good laser printer is a tightly cou- pled system of electronic, chemical, opti- cal, and mechanical parts. This intricacy and interaction of technologies is largely responsible for the laser printer's high cost. Consider just one element: the image drum (or belt, in some designs). The drum must rotate smoothly, precisely, and concentrically. If it is out of round or mounted eccentrically, the light will be out of focus on the surface at some points, and any spot of toner left at that point will be too large. Furthermore, if the drum does not advance smoothly and accurate- ly, the rows of pixels will be blurred or misplaced. Getting the required precision from the drum movement takes a good stepper motor, quality bearings, and a drum manufactured to close tolerances. Because these active elements have to be so closely matched, manufacturers buy them as preassembled "engines" from one of the OEMs, such as Canon, Ricoh, and Kyocera. The end-product manufacturers then add a controller, a paper-handling mechanism, and other components to make a complete printer. Kinds of Page Printers Laser printers were the original page printers and are still the most widely used variety. They have been available for about 10 years, starting on printers for large computer systems and filtering down to microcomputers. Today, laser- printer technology is widely available and continued Rick Cook is a freelance writer specializ- ing in computers and high technology. He can be reached at 3820 West Flynn, Phoenix, AZ 8501 9. SEPTEMBER 1987 -BYTE 187 PAGE PRINTERS generally well-understood. These printers use a laser beam to write the image onto the drum. The laser isn't aimed directly at the drum. Instead, it is aimed at a rotating mirror, usually with 8 to 16 faces, that scans the beam across the face of the drum, turning on and off according to the digital informa- tion coming from the rasterized image. The controller synchronizes the scanning beam and the drum-advance motor with the flow of rasterized information. Small laser printers that produce fewer than 10 pages per minute generally use a laser diode to produce the beam. Faster printers use a more powerful helium- neon or argon laser; the power of the beam determines how quickly the laser can charge the individual points on the drum. Compared to other kinds of page printers, the biggest design challenge as- sociated with laser printers is their optical system. To work properly, the laser printer's beam must be equally strong and precisely focused at every point along the scan line. It must also be aligned with the drum and synchronized with its rotation. Any scanning beam is subject to what are called cosine-fourth losses, named for the function that describes them. (The losses are proportional to the fourth power of the cosine of the angle between the beam and the scanned surface.) As a result of these losses, the beam is weaker and more diffuse at the edges of the scan than at the center. Laser printers use a complex lens system designed to com- pensate for these losses. Likewise, the faces of the rotating mirror need to be precisely aligned and perfectly flat. Any irregularity will cause misalignment of a row of pixels. Photo 1: Inside a laser printer. This photo was taken using timed exposures on a laser phosphor card, creating a visible trace of the invisible infrared beam. (Photo courtesy of Xerox Corp.) Finally, the optics have to be held in precise alignment with the drum and each other. Vibration or misalignment can ruin a laser printer's print quality. (This is one of the reasons laser printers are so heavy, but transformers needed to pro- duce the high voltages also contribute weight.) If a laser printer's optical system gets knocked out of alignment, it is not simple to repair; trie unit generally has to go back to the manufacturer. Although the laser-beam design is the most common approach to writing an image on the electrostatic drum, other designs are available and offer certain ad- vantages. One type of page printer uses a row of LEDs, one for each pixel in the row, to write the image to the drum. Datasouth now offers an LED printer (the Pagewriter 8, $2995) based on an NEC print engine. LED engines are made by NEC and Sanyo at the low end (less than 10 ppm), Kentek and Agfa at the medium range (more than 12 ppm), and Kodak at the high end (up to 92 ppm). A third variation is the LCS printer, which has a row of liquid-crystal "shut- ters" in place of the diodes. A powerful fluorescent bulb provides the light, and pulses of electricity open and close the shutters to write the image. Taxan sells an LCS printer (the Crystaljet, $3495). Fig- ure 2 shows an LCS print head. Because LED and LCS printers use fixed, multiple light sources rather than scanning a beam across the drum, they are optically simpler than a laser printer. Alignment is easy to maintain, and you can replace the print bar (the part that holds the LEDs or LCSs) in the field in a few minutes. This optical simplicity is somewhat offset by the need to drive each light source individually, which increases the electronic complexity. Most LED and LCS printers multiplex the control sig- nals to cut down the number of signal lines. However, this means that all the light sources cannot be on at once— the printer has to write different sections of the scan line at different times. In some designs, the light bar is mounted at an an- gle to the drum's rotation to let it write to only part of the drum at once. In both LED and LCS printers, the number of elements in the print bar deter- mines the resolution. The difficulty of packing the light elements densely enough to achieve high resolution is one of the reasons LED and LCS printers came later than laser printers. In the case of LED printers, the devices must be packed onto LSI chips. For instance, the NEC engine in the Datasouth LED printer uses LEDs built on chips with LSI technology, 128 LEDs per chip. In the 188 BYTE- SEPTEMBER 1987 PAGE PRINTERS LCS printers, the shutters had to be much smaller than previous applications had demanded (see photo 2) . The LCS design poses an additional problem: The heat from the light source tends to distort the cells in the array. The solution has been to minimize the light in- tensity and to engineer the print bar to handle the strain. A close relative of electrostatic printers is the ion-deposition printer, which uses a beam of charged particles (ions) rather than a beam of light to write the image on the drum. Like LED and LCS printers, an ion- deposition printer uses a row of elements to write to the drum. The elements are conceptually similar to a triode vacuum tube with ions flowing from cathode to anode, regulated by a grid. Unlike other page printers, these printers do not use heat to fuse the toner to the paper. The drum is much harder than the light-sensi- tive ones used in laser, LED, and LCS printers, making it feasible to cold-fuse the toner particles onto the paper by means of a pressure roller. As a result, the printer generates less heat. Figure 3 is a schematic illustration of the ion-deposi- tion design. Ion-deposition technology offers a number of advantages in medium-to- high-speed printers, most notably dura- bility. In a laser printer, 500,000 copies per drum is considered excellent perfor- mance, and some printer's will do only 15,000 copies before the drum needs re- placement. By contrast, C.Itoh claims that the drum on its ion-deposition printer will print between 1 and 3 million copies before it must be replaced. These printers have fewer moving parts than laser printers— contributing to the design's reliability. Moreover, the drum's hardness lets it stand up to harder scraping than is possi- ble with an electrostatic drum. More of the excess toner particles are removed, resulting in fewer "freckles" on the pages . Ion-deposition printers are basically volume devices. Although the technology could be used in a desktop printer, it tends to be more expensive in low-volume applications than electrostatic systems. Furthermore, because the rollers have to press the toner onto the paper, ion-depo- sition print has a shiny ("calendered" is the technical description) look that some people find objectionable. Cutting Costs One way to cut the cost of page printers is to build a lot of them. As production in- creases, economies of scale set in and the cost of making a page printer drops. Copiers are made in much larger num- Computer Solid-state diode laser Toner cartridge P\ \ * \ \_ \ _ Polygon mirror WIIHII 1 X / Stacker \ \ \ \ Paper Fuser Finished prints Figure 1: A schematic diagram of a laser printer. Raster-scanned light from a laser is deflected by a mirrored cylinder to expose the surface of a photoreceptor drum. The charged areas attract toner to the drum, which is then transferred to paper and fused on by heat. Figure 2: The print-head assembly of an LCS printer. The fluorescent bulb in the head provides light to the shutters, which open and close according to commands from the controller, charging selected dots on the photoreceptor drum. (Figure courtesy of Taxan USA Corp.) bers than laser printers, one of the main reasons a plain-paper copier sells for half the price of a laser printer. Other page-printing technologies, such as LED and LCS, can also push down prices. Currently, LED and LCS printers are no cheaper than laser printers. But laser printers have been made for longer and in larger volumes than LED and LCS designs. Manufacturers claim LED and LCS prices will drop as they move farther along the learning curve and production increases. continued SEPTEMBER 1987 -BYTE 189 PAGE PRINTERS Photo 2: A photomicrograph of part of a shutter array on an LCS print head. (Photo courtesy of Taxan USA Corp.) ION DEPOSITION PRINTING TECHNOLOGY Figure 3: A schematic diagram of an ion-deposition printer. A modulated ion source (top) similar to that in a triode electron tube generates the ions, which are directed onto the drum, forming a latent image. The image attracts toner from the cartridge, which then is pressure-fused onto paper passing between the drum and a pressure roller. (Figure courtesy of C.Itoh Electronics Corp.) The declining cost of electronic com- ponents, especially RAM, helps, but so much of a printer is electromechanical that prices probably won't drop as rapidly as they have for computers. Another way to cut the cost of a page printer is to reduce its intelligence. Mov- ing the rasterizing and image-storage components from the printer to the com- puter reduces the cost of the printer sig- nificantly. The amount of actual savings to the user depends on whether the com- puter's main processor and memory are used to control the printer, or whether a full-featured computer-on-a-board must be added through an expansion slot. For example, Atari's $1500 SLM-804 laser printer uses a separate controller box be- tween the printer and the computer. Apple is also reportedly taking this tack (i.e., taking the intelligence out of the printer) with its new design for a laser printer that will supposedly list for be- tween $2000 and $2500. IBM's Personal Pageprinter ($2199) uses a similar approach. On the negative side, when the com- puter handles the control functions, a complete bit map of the page must be passed to the printer for every copy of the page printed. Without a fast communica- tions channel, printing will be slow. Some companies, such as Electronic Form Systems and TallTree, use a video interface to keep the speed up. IBM's Personal Pageprinter uses a video inter- face. The least expensive way is to use a serial or parallel interface and just accept the slower speed. Increasing the Resolution Aside from lower cost, what users want most from a page printer is higher resolution. At 300-dpi standard resolution, the page printer falls in an uncomfortable middle ground. The quality of text and graphics on a 300-dpi page printer is su- perior to that from other kinds of com- puter printers but not as good as the type- set material found in books and magazines. Traditional typefaces can only be approximated on a 300-dpi device (see the text box "Page Printer Typogra- phy" on page 194). In particular, half- tone images suffer on a page printer (see the text box "A Gray Area for Page Printers— Photography" on page 192). The minimum resolution on typeset- ters today is about 1200 dpi. If inexpen- sive page printers could print at that reso- lution, they would be much more useful. In fact, doubling the current resolution to 600 dpi would be good enough to handle most graphic-arts jobs. Book-quality work printed on coated stock would still be out of reach. In the next 24 months, you will prob- ably see a number of 600-dpi desktop page printers. But, for a variety of rea- sons, they will cost much more than the 300-dpi models. As a printer's resolution increases, so does its cost of manufacture. The individ- ual dots have to be made smaller, and their placement must be more precise. This is true for both vertical and horizon- tal resolution. Increasing horizontal resolution re- quires better optics, especially on laser printers, because the effects of the cosine- fourth losses become more significant; at higher speeds and densities, the power level is more critical. Increased resolu- tion also requires more precise control of the light source. On a laser printer, that means more accurate mirrors and more precise scanning. LED and LCS printers need more elements in the print bar and the ability to turn the elements on and off more quickly. The accuracy of the drum-advance mechanism basically determines vertical resolution, since the drum must advance by one pixel for each new row of pixels. That means a better stepper motor and other components, as well as more pre- cise electronic control. Another consideration is the size of toner particles. Generally speaking, the smaller the average size of the toner parti- cles, the higher the printer's resolution can be. However, the smaller the parti- cles, the harder they are to control. A page printer is basically an electrostatic material-handling system where the ma- terial handled is toner. Ideally, there should be no charge anywhere except where the printer puts it, there should be no attraction among toner particles, and the particles should not move except in response to applied static fields. In practice, however, toner particles are attracted to each other, they adhere to the drum, and they are influenced by stray electrostatic forces within the continued 190 BYTE- SEPTEMBER 1987 <£1 I MAINFRAME It's moving clay. Time to pack up that big mainframe program and move it to the PC. Relax. It's going to be the easiest move you ever made if you use the new RM/FORTRAN™ V2.4 with Austec's new RM/Forte™ produc- tivity tools. RM/FORTRAN has the VAX, VS and FORTRAN-66 extensions you need, and is field-proven with more than two years of mainframe conver- sions by thousands of demanding engineers and scientists. And, with RM/Forte you f can complete your conver- I. sion at a record pace ... cutting debug time up to 50% . diagnosing syntactical errors in 1/5 the time. You're in the fast lane because RM/Forte integrates all major program development tasks— edit, compile, link and debug— into one interactive, menu-driven environment. Just a few simple keystrokes move you from one task to another . . . and back again. Plus, you get a full screen editor, a syntax checker and a source code manager that automates compiling and linking as you make changes. RM/FORTRAN applications are more than just easy to develop— they run fast, too. Sieve or Whetstones, RM/FORTRAN benchmarks ahead of the bunch. And if you need it, RM/FORTRAN has a very fast 8087/80287 emulator to give you the power of a coprocessor. But don't take our word for it. Listen to a moving professional: "RM/FORTRAN lets its mave mum- frame programs to PCs faster and cleaner than any AUSTEC other compiler on the «idmicd market " (John Haestacl 5U H2t Haestad Methods) ~JPJB*./« RM/FORTRAN was FORTRAN/2 the first PC FORTRAN L ~^~ GSA certified a Full Level ANSI 77 with no errors. You may have heard of its sister, IBM PC Professional FORTRAN. Enough reading. Start writing. Fill out and send in the coupon below to find out ^ i7t £ ,1 more about RM/FORTRAN fCJK'^Jjj with the new RM/Forte ^productivity tools. Then move it! Austec Inc. 609 Deep Valley Drive Rolling Hills Estates, CA 90274 Or call 213/541-4828 • Let's get moving. Send me details on B_9 '- I RM/FORTRAN V2.4 with RM/Forte Produc- _ tivity Tools, and your special upgrade offer. Name Company Title 1 1 Street City State Zip Phone ( Inquiry 253 SEPTEMBER 1987 -BYTE 191 PAGE PRINTERS A Gray Area for Page Printers- Photography Photographs are a challenge for to- day's page printers. While text printed at 300 dpi might look beautiful to the casual observer, photographs ren- dered at the same resolution are decid- edly second-rate. The reason for this is best summed up in two words: continu- ous tones. The typical black-and-white photo- graph consists of continuously varying tones of gray. An artist attempting to copy a black-and-white photo can re- create the grays by mixing varying amounts of black and white paint on a palette. Of course, that solution isn't feasible in mechanical reproduction sys- tems such as printing presses, which work with only one shade of ink. Be- cause of this fundamental limitation, photographs and other continuous-tone images must go through a process known as screening before they can be mass-printed. Photographic Screening In the screening process, a grid of dots or lines called a screen is placed over the photograph, and a new photograph is made. The resulting halftone has no gray tones; instead, the gray regions are approximated by means of black dots that vary in size and shape. The density of the screen (i.e., the number of dots or lines per inch) along with certain other factors determines how well the halftone reproduces the original's gradual changes in tone: Higher density allows more gradual changes. Newspaper-qual- ity halftones are typically made with an 85-line screen (i.e., 85 dots or lines per inch); magazine-quality uses a 100- or 133-line screen. Digital Approaches The same process can be simulated on a computer. First, the photo is digitized. A scanner moves across the photo just as a print head moves across a page, but, instead of printing, it reads the gray level of the image at fixed intervals. Each sample reading is stored as a number in a given range. To reproduce the digitized image, the computer creates a bit image made up of small two-dimensional cells. The sam- pled gray levels are mapped into these cells. To reproduce a gray level from the digitized image, a corresponding per- Figure A: A Laserport simulation of a 100-line screen, based on a digitized photo provided by Adobe Systems. centage of pixels within that cell are turned on. For instance, if an 81 -dot re- gion is to have a gray level of 25 percent, 20 of the dots inside the cell are turned on. Resolution vs. Shading To allow for smoothly varying tones, small cells are needed (just as with the small dots in the halftone screens). But the smaller the cell, the fewer dots can be placed inside it. This, in turn, limits the number of discrete shades that are possible within a cell. For instance, to approximate a 75-line screen requires 75 cells per inch. At 300 dpi, a page printer can place just 16 (i.e., 4 by 4) dots inside such a cell, yielding only 16 possible gray levels. Note that the resolution is now 75 cells per inch— the image will have only 75 discrete regions per inch, instead of the 300-dpi resolution when only two gray levels, black and white, are represented. Some printers come with software to accomplish this kind of halftone simula- tion. Adobe Systems' PostScript, the PDL used in Apple's LaserWriter and certain other models, provides screen for setting the cell size, setscreen for controlling the method of filling pixels inside each cell, and settransf er for applying further transformations to the gray level inside each cell. The net result of this software-simu- lated halftoning still falls short of the re- sult of true photographic halftoning. The problem is the shape of the dots. If you examine a printed photo under a magnifier, you will find that the shape of the dots varies depending on their sur- roundings. This is especially true along t edges where the dots tend to elongate in the direction of the edge. This makes edges stand out much more clearly. Since edge definition is vital to per- ceived sharpness, the result is a major improvement in effective image quality. Page printers generally cannot vary the shape of their smallest dot, and thus, at the lowest level, they cannot duplicate the effect of the photographic halftone. At a higher level— the cells made up of dots— page printers can vary the way the cell is filled in, but this approach oper- ates at the expense of resolution. One solution to this problem is to use a higher-resolution laser printer, so that the cells can be smaller and still repre- sent a large number of discrete gray tones. This is effective but also ex- pensive. Smaller Dots DP-Tek (Wichita, Kansas) has taken a more direct approach to the dot-shape problem. The company manufactures a Canon-engine controller called Laser- port. Laserport combines a software package (for simulating the halftone process as explained previously) and a custom controller that actually varies the shape of the laser's dots. DP-Tek claims that the Laserport controller can produce the equivalent of a 100-line screen print on a standard Canon print-engine laser printer, when driven by an IBM PC AT or comparable computer. (Figure A is a Laserport sim- ulation of a 100-line screen, using as in- 192 BYTE* SEPTEMBER 1987 PAGE PRINTERS put a digitized photograph provided by Adobe Systems.) According to DP-Tek, the Laserport system is based on two elements: the controller's ability to produce dots in any needed shape and the company's rasterization process, which mathemati- cally models the effects of screening a photograph. DP-Tek originally developed the sys- tem because it had to put in a system to prepare a computerized Multiple Listing Service book. The books show real-es- tate agents the houses available for sale in a particular area and usually include a photograph of the house as well as the description. Because the books are up- dated frequently and issued in fairly small print runs, this was an ideal appli- cation for a laser printer— except for the photographs. "The computer industry has always used standard graphics techniques," says Alan Frazier, DP-Tek' s president. "We took the same approach at first, but we couldn't get a satisfactory quality level. Finally, we spent a lot of time looking at dots." According to Frazier, one of the most important parts of developing the system was modeling what happens when a photograph is screened; in other words, when light is reflected through a vari- able-density screen from an image. The development work was done on AT- class computers in C and Pascal and later optimized and converted to assem- bly language for run-time packages. This was combined with a proprietary controller that can vary the shape of dots. The company is closemouthed about the details of the process. All Frazier will say about the way the controller works is that "in electronics, states are rarely purely on or off." Presumably, the controller varies the intensity of the printer's laser beam and/or the scan rate and drum-rotation rate to vary the shape of the dots. Figure B is an enlargement of a 300-dpi test pattern produced by La- serport, snowing the system's ability to vary the dot size over a wide range. The controller fits in the computer's case and works with the printer's resi- dent controller. When the printer is printing text or graphics, the Laserport controller stays in the background. When it has to print a photograph, the Laserport controller handles it. The company claims that Laserport is trans- parent to the software that works with the laser printer. The Laserport software includes drivers for the printers, modeling soft- ware to duplicate the effects of screening a photograph, and a set of high-level pic- ture-printing commands. To print a pic- ture, the user or the application program must tell Laserport where the picture is to go on the page and the name of the file containing the picture image. The DP-Tek controller is sold to OEMs for incorporation into their sys- tems. One customer is Chorus Data Sys- tems of Merrimack, New Hampshire, which uses it with its Photobase graph- ics database. Figure B: An enlargement of a 300-dpi test pattern produced by Laserport, showing the system 's ability to vary the dot size over a wide range. Far DOT MATRIX and Laser Printers (Epson/IBM/Okidata/LaserJet) Labels for shelves, bins, inventory Text readable up to 50 ft. Bar Codes: I 2 of 5, UPC/ EAN MIL-STD, AIAG, Code 39 ~ Any size label • Flexible format Color options • Reversals • Fast File input • Menu driven • $279 Other bar code programs from $49. 30 Day Money Back Guarantee! i/ORTHINGTON DATA SOLUTIONS 417-A Ingalls Street Santa Cruz, California 95060 408/458-9938 Bar Code Readers far PC, XT, AT, PS/2 RS-232 and PS/2 model $39 PC/XT/ AT Internal/External ... $38 • Rugged Metal Pen • Reads I 2 of 5, UPC/EAN Codabar, Code 39, etc. • Attaches as 2nd Keyboard • No software needed to add bar code reading to your system 30 Day Money Back Guarantee! "70RTHINGT0N DATA SOLUTIONS 417-A Ingalls Street, Santa Cruz, California 95060 408/458-9938 SEPTEMBER 1987 -BYTE 193 PAGE PRINTERS Page Printer Typography Laser printers are producing a revo- lution in typography, type design- ers are adapting existing type styles to laser printers and designing new type styles to capitalize on the strengths of image printers and minimize their weaknesses. The first mechanical composing ma- chines, such as the Linotype, provoked a similar revolution when they appeared in the 19th century. The rigid mechani- cal spacing of the letters and the limited number of characters available in type- setter magazines forced designers to modify their type families. For example, italic fonts tended to become wider to match the spacing of regular fonts. Phototypesetting precipitated an- other, smaller revolution in the 1950s. Rather than handcrafting each font in its own point size, typographers could de- sign a single font and then use optics to produce a range of smaller and larger fonts. In some cases, the substitution of optics for hand design has resulted in a lowering of typographic quality. The onset of digital type in the 1970s and 1980s has brought with it the prom- ise of a return to the high art of typogra- phy. Having characters stored digitally brings all the power of CAD to the hands of the type designer. Page printers have brought the world of digital type to the personal computer desktop. Typefaces and Fonts Type is classified according to families. A family is a group of alphabets that are stylistically related. Within each family are several typefaces— alphabets sharing the same characteristics. Times Roman, Times Roman Bold, and Times Roman Italic are all members of the same type family. Typefonts are examples of a typeface in a particular type size. For in- stance, 24-point Times Roman Bold is a font, but Times Roman Bold is a face, a member of the Times Roman family. What computer people commonly call a typefont on a laser printer is really a typeface, since it comes in several dif- ferent sizes. a 1 iz—:—yrpi:: ::::t£- \ :. :.:f: ::;.::::;:; J ..- \ y 1 . IS t. : : b |i..iiiihmh '. \ :'.:]] • i .:: . : Y_;J ■■; \: :(::•■:•:■;:; ; ; 1 i#| ..::■ ,^::::::::::-:. :.:::::. : : 4 i ' ' ii 1 7HUHVHWH "HUHVHWH V V —69*— S3?.-- Figure C: Examples of typographic designs that are hard to duplicate on a 300-dpi page printer: (a) Before optimization: Note the uneven base-alignment ofU, V, andW, caused by the slight descent of the curved and pointed bottoms of the characters, (b) After optimization: Bit stream 's Fontware corrects for the variations by moving the outlines. These corrections will be made automatically until the point size is large enough to allow the resolution to be aesthetically displayed. (Figures C, D, and E are courtesy ofBitstream Inc.) The distinction between typeface and typefont is important because there is more to the different fonts in a face than enlarging and reducing the type. This is especially true with laser printers. Low-Resolution Typography A type designer working for laser printers has two interrelated problems. Figure C illustrates them. The first one is that some faces don't work well at 300 dpi. For instance, a face with slight angles in its long strokes will cause trouble. The classic example is Optima, a face with gently slanting verticals. At 300 dpi in common book sizes, this produces a jarring break in long verticals, such as the stem of a d or an /, Italics from many families give de- signers trouble for the same reason. The lower resolution can interfere with subtle features of typefaces. Gara- mond, a common book face, has cups at the top and bottom of many strokes. At 300 dpi, those cups are hard to repro- duce in common font sizes. The second problem is that, even in fonts that are adaptable to laser printers, the coarser resolution requires adjusting the letter shapes. For example, in many faces, the points of the w and v extend slightly below the baseline. At 2000 dpi, this looks elegant. At 300 dpi, the exten- sion becomes crude and jarring. A related consideration is font size. Relative letter spacing and weight (i.e., thickness of strokes) tend to change with the size of the font. Details that cannot be reproduced in small sizes are impor- tant in larger sizes; without them, the type looks wrong. Similarly, spacing that is appropriate for small sizes is often too loose in larger sizes. This is nothing new. l^pe designers have always had to adapt fonts to the method of typesetting. But today's bit- image printers require more adaptation than previous innovations. The correct, but not universally prac- ticed, process of adapting a typeface to a laser printer starts with an idealized ver- sion of the face at very high resolution. This is as close to the original type de- sign as possible, without any compro- mises for reproduction or resolution. Typically, before a type foundry begins adapting a typeface, a type designer must "clean up" the letterforms to cor- rect for adaptations that were made for the sake of other typesetting processes. Once the idealized face is in hand, the 194 BYTE- SEPTEMBER 1987 PAGE PRINTERS designers can begin adapting the face for different fonts. A laser printer complicates this pro- cess because the resolution is so low. In- formation is lost when letters are re- duced without any increase in reso- lution. For instance, a serif might disappear in the smaller typefonts, or a thin stroke may become exaggerated. As a result, type design for laser printers is in part a matter of trompe l'oeil. The eye must be fooled into believing features are present that actually aren't. The question facing the type designer is: Which information can be lost without distorting the letter too much? In one case, it might be better to compress a let- ter. In another, the stroke might be wid- ened or a serif might be omitted. One common adjustment is to in- crease or decrease the width of the strokes (vertical lines) so they coincide with a pixel column. Curves are less of a problem because the pixels of a curved line naturally fall on different scan lines, and the roughness can be made to aver- age out. The extreme points of curves must coincide with pixel columns or they will become flat or pointed. If you examine an enlargement of a laser-printed font, you will often find dots that don't seem to belong. An r might have a dot that appears too high in the curved stroke, or a d might have a dot almost floating inside the enclosed space. Actually, these "excess" dots are carefully placed to add weight or thick- ness at critical points and trick the read- er's eye into seeing elements or details that are not there (see figures D and E). The scaling is typically done algorith- mically, at least in part, type foundries usually have proprietary algorithms to change letter shapes as they enlarge and reduce their basic designs. Once the face has been enlarged or re- duced, a type designer usually optimizes it to make the font look as good as possi- ble. This can involve not just resolution and size; it can also depend on the nature of the printer that will output the type. For instance, not all bit-image printing engines have the same ability to repro- duce thin lines. The amount of optimiza- tion that is done depends on how well the algorithm represents the face in the new font and how much money the customer is willing to spend to get it right. Adobe's PostScript PDL and Bit- stream's Fontware system include algo- rithms for sizing faces effectively. Bitstream has automated much of the design process with a program. Origi- nally written in LISP on a Symbolics LISP machine, it is an expert system that Figure D: Some type styles are not represent able at resolutions below 800 dpi. The lowercase n (detail a) from Garamond ft 3 has wavering strokes and serif features that cannot befit to conform to the grid (detail b). To get the effect of a finely wrought typeface using 300 dpi, designers often trick the eye by adding dots where they don 't belong (detail c). CDEFGH BITSTREAM Figure E: Characteristics of some type styles are representable with manual corrections by designers working directly with the output technology. The uppercase E ofFutura is enlarged at 12 times actual size (detail a) to show the serrated edge of the sloped vertical. At twice actual size (detail b), the serrations are still visible; but at actual size (detail c), the letters appear smooth and consistent. chooses the best adjustments when scal- ing a face based on the rules used by Bit- stream 's type designers. Bitstream of- fers Fontware to OEMs so they can scale and fine-tune faces for their equipment themselves. The company plans to offer a run-time package to do the scaling on the laser-printer controller or the com- puter driving it. Hardware and software OEMs will be able to adapt the package to their equipment or software to give their users the same kind of control over their fonts. If a user needs a 22-point font, he or she can get something opti- mized for 22 points, not something de- signed for 24 points and scaled down. Despite the problems involved in adapting faces to bit-image printers, there is only limited interest in designing faces, especially for 300-dpi printers. Matthew Carter, vice president of de- sign at Bitstream, is adamant that good type is good type; it doesn't change over the centuries. Garamond, a very popu- lar face today, was designed about 400 years ago. It is a mistake to discard one face and design a new one just to accom- modate the limitations of a new technol- ogy, Carter claims, because the technol- ogy will have improved enough to handle the standard face before the new face catches on. SEPTEMBER 1987 -BYTE 195 Inquiry 40 PAGE PRINTERS Canon introduces More easy-to-use features. More advanced technology. More productivity. MORE. anon LA5ER BEAM PRINTER Canon U.S.A., Inc., Printer Division One Canon Plaza. Lake Success. MY 11042 £1987 Canon U.S.A.. Inc. PERMA POWER FIGHTS SURGES TWO WAYS . . . OR WE PULL THE PLUG Perma Power Surge Suppressors give you peace of mind, knowing that your computer is protected against power line surges and against suppression element failure. PROTECTION FROM POWER LINE SURGES Our unique 2-stage circuit uses heavy-duty metal oxide varistors to protect you against high-voltage lightning-induced surges, and high-speed semiconductor devices to protect against frequent fast surges. Only this kind of hybrid circuit can provide the necessary high power dissipation while still providing fast response time and low let-through voltage. PROTECTION EVEN IF WORN OR BURNED OUT Any surge suppressor can wear or burn out. With Perma Power you can relax! Powerto your system is stopped ... as completely as if the plug was disconnected. Other surge suppressors may use a light or buzzer "warning," while they continue to let raw, unprotected power feed directly into the computer. Only with Perma Power's patented Automatic Shutdown* feature is your equipment kept safe from damaging raw power. Ask for Perma Power Extended Life Surge Suppressors, in 2, 4, or 6 outlets and Power Control Center models to insure your computer is being protected. At office, computer or electronics dealers nationwide. 196 BYTE ■ SEPTEMBER 1987 •Patent #4,578,579 PGRMA POWGP. Qecrromcs inc. 5601 West Howard Avenue • Chicago, Illinois 60648 Telephone (312)647-9414 Inquiry 222 for End-Users. Inquiry 223 for DEALERS ONLY. No one kind of page printer is going to give users everything they want. There are too many basic conflicts and trade-offs. printer. The particles seep into other parts of the printer. All these effects get worse as the toner particles get smaller. The traditional solution is to use a wet toner in which the particles are suspend- ed in a liquid. This method is used by high-resolution electrostatic printers like laser phototypesetters, but it is messy and adds complications of its own. New toner formulations and better toner-manufac- turing processes are another possible approach. The paper becomes a factor as resolu- tion increases. One of the reasons laser phototypesetters achieve such high reso- lution is that their output is printed on very glossy stock. The smooth surface makes fine detail possible. But the quali- ty of paper supplied to most office page printers isn't nearly as smooth; thus, the page printer's output isn't as good at comparable resolutions. Apart from the cost of ultrasmooth paper, the paper-han- dling mechanisms used in desktop page printers depend on the surface roughness of the paper to get a grip. Paper on very smooth stock requires different, more complicated methods, such as vacuum gripping. As resolution increases, the electronic components of the printer become more expensive. Doubling the resolution to 600 dpi from 300 dpi means quadrupling the amount of RAM needed to store a page image— to 5 megabytes from 1.25 megabytes (unless the controller design is changed; see the article entitled "Design- ing a High-Speed Page Printer Control- ler" by Phil Ellison on page 225). Fur- thermore, the controller must either work twice as fast to lay down twice as many dots per scan line in the same time or slow down the laser beam, increasing the time required to print a page. While the electronics costs don't increase in pro- portion to the mechanical costs, the in- creases are significant. Intrinsically, there is no reason a desk- top page printer cannot match the resolu- tion of phototypesetters— if the buyer is willing to pay the price. For example, Varityper now makes a small 600-dpi laser printer that costs about $18,000. Inquiry 41 PAGE PRINTERS Some phototypesetting machines are basically specialized laser printers, but they are even more expensive. One factor holding back the develop- ment of high-resolution personal desktop page printers is that the manufacturers aren't sure that enough users are willing to pay the price. So far, the small page printer market has been highly price-sen- sitive, and the makers aren't sure most users will pay for higher resolution. Vari- typer's printer, for instance, is aimed at the typesetting market. The Coming Printers No one kind of page printer is going to give users everything they want. There are too many basic conflicts and trade- offs. Instead, you will probably see a range of desktop page printers with dif- ferent mixes of price and features. Atthelowend will be inexpensive 300- dpi printers with print speeds of 5 ppm or less and street prices between $500 and $1000. These printers will rely on the computer's processor and memory for control. Due to memory constraints, they will probably not be able to print full- page graphics and will not use a page-de- scription language (PDL). They will probably be limited to 8V2- by 1 1-inch paper and might handle only certain weights of paper. You might seethe first of these by the end of the year, although the very inexpensive examples are prob- ably two years off. The next group of printers will offer higher print speeds and more features for a higher price. They will include a PDL, full-page graphics, more flexible paper- handling, and a variety of bells and whis- tles. These printers will probably start at about $1200 and run up to $5000 or more, depending on features. These printers are essentially refined versions of today's page printers. In that sense, they are already available. Above that will be the high-resolu- tion page printers. Except for their 600- dpi resolution, they will be much like the preceding group of printers. Prices for high-resolution printers will prob- ably start at around $5000. It will be at least a year, more likely two, before these desktop high-resolution page printers appear. Finally, there will be desktop color page printers (see the article entitled "Color Printing" by Naomi M. Luft on page 163). These will probably come in at around $ 10,000 and won't be available for at least two years. One thing is certain. Users want fast, quiet, high-resolution printing. That being the case, page printers of all sorts are going to proliferate for the rest of the decade. ■ Canon introduces Less hassle. Less maintenance. Less bulk on your desk. Best of all, less cost. LESS '•: •'. LBP-8D m©it Enioy easy extended payments with the Canon Credit Card. Ask (of details at participating Canon dealers and retailers. Available only m U.S. LA5ER BEAM PRINTER Printouts that stand out For more information, call 1-800-453-3307. In Utah, 1-800-662-2500. It copies and 3V2 diskettes by itself. 5V4 all Just load your diskettes, press one button, and walk away. The Victory Auto- loader automatically copies diskettes operating stand- alone or attached to an IBM/rC* or Mountain® compatible system. Bulk cannisters allow fast, easy loading and unloading. Switching drives takes less than five minutes. Copy Diff erent Formats, Flawlessly. Our Auto-Format-Analysis 1 " feature lets you copy differ- ent formats, including PS/2*. The system tests for quality and accuracy, sorting disks into one of two output cannisters. No User-Required Adjustments. The Autoloader's self -cali- bration and simple diag- nostics for checking drive alignment allow you to main- tain the system without outside service. Call 1-800-421-0103. And ask about the Victory family of affordable dupli- cation systems — with serialization, copy protec- tion and custom label printing. RYV VICTORY ENTERPRISES Technology, he. 8910 Research Blvd., B2 Austin, Texas 78758 512-450-0801 ♦IBM PC and PS/2 are trademarks of Interna Uonal Business Machines Corporation. Mountain is a registered trademark of Mountain Computer. Inc. ©1987 Victory Enterprises Technology, Inc. US AT PC EXPO BOOTH #2720 Inquiry 305 SEPTEMBER 1987 -BYTE 197 \\\M'I'/'// No OtherTOtable PC Can MakeThis Statement At 6.4 pounds, the newTlOOO is the lightest portable PC in the world. It's a good ten pounds lighter than some "portables!' And you know how it feels to carry around ten extra pounds. Yet within its diminutive footprint (it's about a foot wide and not even that deep) lies all the power of a desktop PC. Included are 512KB of RAM and a built-in 720KB 3% "floppy drive, plus MS- DOS® 2.11 in ROM. It comes with a new supertwist screen that's adjustable a full 180° and folds flat when you want to add a CRT The KM® compatible T1000 offers you some very intelligent options. Like a numeric key pad and a 1200 bps Hayes® compatible internal modem. Or an expan- sion card that will improve its memory by another 768KB. All in all, it's the perfect way to go to work without going to work. Or to get home early, even when you'll be working late. Call 1-800-457-7777 for theToshiba computer and printer dealer nearest you. And see how it feels to pick up the most portable portable in the world. Nothing is as easy to take. Except, maybe, its price. MS-DOS is a registered trademark of Microsoft Corporation. Mayes is a registered trademark of Hayes Corporation. IBM is a registered trademark of International Business Machines Corporation. In Touch with Tomorrow TOSHIBA Toshiba America Inc., Information Systems Division PRINTER TECHNOLOGIES Print Quality The factors influencing print quality and ways to measure it Lars Jansson WHAT IS GOOD print quality? The easy answer is a subjective one: Good print quality is whatever most people consider it to be. However, for a printer manufac- turer, that answer is not good enough. Over the past year, engineers at Facit have been working on a set of objective definitions for print quality. We have also developed a measurement system that rates a print sample over a wide range of performance values relating to print qual- ity. The ultimate goal is to rate printer technologies, as well as commercial printers, on the basis of print quality without relying on subjective, variable human judgments. From a technical point of view, perfect print quality entails the ability to put a message at an exact position on a piece of paper without distortion. The message can be a complete image; it is then called graphics. You can divide such an image into graphics primitives— line, arc, and dot. Alternatively, a message can consist of text, which can be further broken down into text primitives— alphanumeric characters. The alphanumeric primitives are far more complex than the graphics primitives; each letter or number is a graphics image in its own right. In any system that does not produce fully formed characters, the symbols are built up from dots. (This includes dot- matrix-impact, thermal, laser, ink-jet, and similar printers.) Thus, we start with some fundamental questions about dots. What are the properties of a dot? What are the properties of a system for putting dots on paper? And what are the proper- ties of a symbol composed of dots? An- swering these questions gives us a good start on defining and measuring print quality. Design Considerations A dot has size, shape (normally round), and color or gray level (in an ideal black- and-white system, a dot is black or it doesn't exist at all). When we transfer a dot to paper, its size changes and its shape is no longer what it was supposed to be— distortion enters the picture. But before printing, and from a design standpoint, size and shape are important parameters. When we want to place a dot on paper, the first question is: On what positions horizontally and vertically is it possible to put a dot? In other terms, what posi- tion-grid or matrix do we have? The next question is: How close to one dot can we place another? Most printers cannot actu- ally use horizontally adjacent grid posi- tions due to compromises between speed and resolution. For example, a typical character ma- trix in a 9-pin dot-matrix printer has 1 2 horizontal grid positions in each l / lQ inch. But what is the actual resolution available for character generation? The last three of the positions make up the intercharacter spacing; therefore, the character matrix is actually 9 by 9. But if we place a dot on the first position, that pin typically can- not use the second position because the electromechanical system takes time to stabilize before it can fire again. Thus, the closest allowable spacing, or the hori- zontal resolving power, for dots on a line is %2 inch, not ! / 2 inch as the character matrix might suggest. In the vertical dimension, the resolu- tion is the same as the vertical spacing of pins on the print head. Improving the res- olution beyond these design limitations requires multipass techniques: After the first print pass, the paper or the print head is offset by a small amount horizon- tally or vertically and prints the line again. Next, consider the readability of dots, lines, and arcs. What happens when we place a number of dots in line? How close do they have to be to generate a good line and not just dot, dot, dot? Figure 1 a shows that a 30 percent over- lap with regard to diameter and grid posi- tion gives a decent line. But is that the whole story? If the dots are square or rectangular, which is common for ther- mal-transfer techniques, overlap is not necessary— at least not for horizontal and vertical lines. Diagonal lines present another prob- lem, shown in figure lb. This figure shows that dot overlap alone does not give the complete picture. Figure 2 illustrates a more refined measurement, the blank- areafactor. Mathematically, the blank-area factor is the ratio of the blank (unprinted) area to the total area of the ideal line. In the case of circular dots printing a straight line, it continued Lars Jansson is a member of the strat egy and development staff at the head of- fice of Facit, a Swedish manufacturer of computer peripherals. He can be con- tacted at Facit AB, S-l 7291 Sundbyberg , Sweden. SEPTEMBER 1987 -BYTE 199 PRINT QUALITY is sufficient to calculate one-quarter of the area over a span of two overlapping dots: A_ 4 1 5/2 [fix) ~ g(x)]dx - 1 [I V(f dx SD 4 f^W D 2 ^ H arcsin — 8 DJ ^-^"f 'sDy/T^r + D 2 arcsin -£■ where D = the print wire diameter, 5 = the distance between print positions (cen- ter to center), f(x) = the shape of the ideal line to be printed, and g(x) = the shape of the print wire. The blank-area factor is given by A =i- SD ^W D S H arcsin — 5 D Generally, the greater the overlap, the smaller the blank-area factor will be. But, when we use the above equation for vary- ing degrees of overlap, we discover a point of diminishing returns somewhere between 10 percent and 30 percent, at least when round print wires are used (see table 1). Of course, printer symbols don't con- Figure 1: (a) Effects of varying degrees of dot overlap on the clarity of lines with circular dots, (b) Rectangular dots require no overlap for horizontal vertical lines. sist just of straight lines. Arcs— circles or partial circles— are crucial in the design of most typefaces. Unfortunately, in the case of arcs, minimizing the blank-area factor requires a higher degree of dot overlap. Furthermore, these arcs demand as much from the vertical resolution as from the horizontal, while in most matrix printers, the vertical resolution is often just half as good as the horizontal. The solution to this design challenge tends to be expensive. Minimizing the Blank-Area Factor If we can achieve good print quality by having a small blank-area factor, how do we then get one? One answer is obvious— a dense matrix and small dots. Wefind this in laser printers with a resolution of 300 by 300 dots per inch and a dot size of about 0. 1 millimeter. However, impact- matrix printers have a limit to the dot size: pins of 0.1 -mm diameter will pass right through the ribbon without touch- ing. The minimum practical dot size seems to be 0.2 mm, which we find in 24- pin print heads. A small dot causes a new problem: Re- producing the vertical lines or stems of most characters requires printing at least two adjacent dots, which slows down printing and also affects the blank-area factor. With this in mind, we must look for a different dot shape, one that gives a better blank-area factor and does not require two dots to make a vertical line. Figure 3a shows the result (enlarged and idealized) of using a semielliptical dot that is 0.2 mm vertical and 0.34 mm horizontal. If a print head can accommodate elliptical pins, this approach looks promising. Typographic Ideals What is the property of a symbol? If we restrict ourselves to alphanumerics 9(x) -^S->] ^A/ 2 >f(x) k 7\ V ( ( 3 k. V J, t A/ 2 Figure 2: The blank area A is a function of dot diameter D, overlap S, the shape of the linef(x), and the shape of the dot g(x). and allow full freedom for aesthetic consid- erations, we can avail ourselves of 500 years' worth of typesetting and font design. So why reinvent the wheel by doing our own typefaces? Unfortunately, we do not have full freedom, particularly not in ma- trix printers. Given the limitations of a par- ticular matrix, it can be extremely difficult to adapt a set of characters that was origi- nally defined in terms of continuous lines. It is often much easier and more successful to design an attractive set of characters spe- cifically for one printer's limitations. So we're back to fundamentals of typeface design. What then is the most important prop- erty of a symbol? If we can't read it, it doesn't matter how pleasing it is to the eye, so readability is number one. What is readability, and what distinguishes one character from the other? Figure 3b tells you that the upper part of lowercase letters gives much more readability information than the lower part. (Try reading each half with the other half blocked from view.) In partic- ular, the intersection between stem and body gives a lot of information— distin- guishing between b and d, for example. Most of the characters in the roman al- phabet consist of one or more lines created without lifting the pen from the paper. Some characters also have diacritical marks, but, even for those characters, the major portion is a continuous line. What distinguishes one line from another is the varying line width and, in some cases, the serifs used at the end of the line. We have a dilemma. Typographic art requires a fine grid, small dots, and, very often, thick lines. On the other hand, print speed requires either a coarse grid or, in a fine grid, the allowance to skip over one or several positions after print- ing a dot. The cost of technology limits the position accuracy, dot frequency, and dot size. It is not possible to satisfy all these quality and speed requirements at the same time. Already, at the design stage, we have to make compromises. After designing the ideal grid and select- ing a dot size, dot shape, and character shape, we can print symbols on paper. But the result on paper is for from what we en- visioned. Misalignment and skewing ap- pear, with respect to lines and even with re- spect to character cells. The characters themselves do not look as designed. Ink appears where it is not supposed to be and none, or very little, where it is supposed to be. Why is this so, and how do we measure the departure from the ideal? Measurement System To objectively and efficiently perform all the measurements and their related calcu- continued 200 BYTE- SEPTEMBER 1987 Reliable, Cost Effective Solutions for Computerization A Motherboard and 4 Expansion Cards in the Space of a Half -Height 5-1/4" Disk Drive! from $329 3 WATTS! (Qty 100, 5 VOLT ONLY OPERATION t 12 V GENERATED ON BOARD — SCSI BUS OPTION — — "~ ~~~~~ (HARD DISK, ETC) ■—^^^ SERIAL PORTS OSAlfBAAi Jp ^\^/~~~~~ SPEAKER PORT (512K, 768 K- JBa OPTIONS) ^sj**^ KEYBOARD PORT POWERFUL V40 CPU ^H ^^ m ^ PARALLEL PRINTER PORT ROPPY DISK CONTROLLER -^^ (3.57S.2S-, 360 K/720K, 1,2 MB) j Brfi "~~~pcbus BhH — — 4 MODE VIDEO NBEfS CONTROLLER UPT012BK / f^T eprom/rawnovram ' pc compatible bane ry backed r i clock row-bios MOUNTS on a EHBB""*- 5.25' DRIVE 15.75-xB-xr) jHifl OPTION ^■"^ FITS ENTIRELY WITHIN BOARD DIMENSIONS Little Board 7PC World's smallest PC - - and CMOS too! $329 (Qty100 / $252) MS-DOS Microsoft Corp. Little Board™/ 186 High performance single board MS-DOS system. $159 (Qty 100, $124) INCLUDES CP/M!™ Little Board™ World's least expensive single board system. $99 $469 Development Chassis/PC™ "Known Good" PC bus project development environment for Little Board/PC (not included). Project Board/ 186™ Prototype adapter for 801 86 based projects and products. Project Board/80™ Prototype adapter for Z80 based projects and products. $159 CMOS Video Controller 4-mode CMOS video controller for Little Board/PC. from $179 from $149 $129 SCSI Memory Controller SCSI controller for fixed and removable volatile and non- volatile semiconductor memory. Expansion/ 186™ Multi-function expansion for Little Board/186. I/O, Serial, RAM, and Math Options. SCSI/IOP™ STD bus I/O expansion adapter for any SCSI host system. from $495 Bookshelf™ System Modules $395 $99 .""■* • PC compatible Little Board/PC systems. • Single and Multi-User Little Board/ 1 86 systems. • Little Board/Plus CP/M systems. • SCSI disk and tape expansion modules. • Floppy drive expansion modules. Concurrent PC-DOS™ DRI Multi-user, multi-tasking oper- ating system for Little Board/186 supports up to four users. SCSI Z80 Host Adapter SCSI host adapter for any Z80 system. Plugs into Z80 socket. Distributors •Argentina: Factorial, S.A. 41-0018* Australia: Current Solutions (03) 227-5959 • Brazil: Computadores Compuleader (41) 262-4866 • Canada: Tri-M (604)438-0028 • Denmark: Danbit (03) 66 20 20 • Finland: Symmetric OY 358-0-585-322 • France: Egal Plus ( 1 ) 4502-1800 • Germany, West: IST-Elektronik Vertribes GmbH 089-61 1-6151 • Israel: Alpha Terminals, Ltd. (03) 49-16-95 • Spain: Hardware & Software 204-2099 • Sweden: AB Akta (08) 54-20-20 • UK: Ambar Systems, Ltd. 0296 43551 1 • USA: Contact Ampro Z+v COMPUTERS, INCORPORATED 6 "7 East Evelyn Avenue • Post Office Box 39042*7, Mountain View, SEPTEMBER 1987 -BYTE 201 Inquiry 52 T I CD-ROM IS HERE! LOW PRICES - CD-ROM DRIVES 1 Panasonic SQ-D1 $1095' Half height - internal mount - high speed - industrial grade - Hi-Fi CD audio capabilities (with CDP Audio Software described below) - daisy chain capabilities - for IBM PC/XT/AT and full compatibles. SPECIAL SEPTEMBER OFFER Hitachi CDR-1503S $799* Full height - standalone - front auto load - Hi-Fi CD audio capabil- ities (with CDP Audio Software described below) - daisy chain capabilities - for IBM PC/XT/AT and full compatibles. !........._____--.— — __—-_—_—--.__.. — -__-____..^ 1 Hitachi CDR-2500 $849' Full height - internal mount - high speed- daisy chain capabilities - for IBM PC/XT/AT and full compatibles. ' Price includes interface board, connect cable and CD-ROM drive. Call for low prices on CD-ROM drives from all major manufacturers. SOFTWARE + ' Grolier— The Electronic Encyclopedia $295 Contains 30,000 articles, full text of the 20-volume Academic American Encyclopedia, an educational tool the whole family can use. Easier to use and less than half the cost of the printed encyclo- pedia. Early buyers entitled to low cost annual updates. 1 Microsoft-Bookshelf $295 Theultimatememoryresidentwritingtool. InstantCD-ROM access to 10 major writing reference sources including Roget's Thesaurus, The American Heritage Dictionary, and Bartlett's Familiar Quotations. Includes Houghton Mifflin Spelling Checker and Usage Alert Soft- ware. Compatible with 1 4 leading word processors and most other programs including Microsoft Multiplan and Lotus 1 2 3. 1 CDP-Audio Software $95 Software permits users to access Hi-Fi CD audio capabilities of Panasonic SQ-D1 and Hitachi CDR-1503s drives described above. ; AUDIO SOFTWARE COMPETITION i The first 100 purchasers of the CDP-AudioSoftwareare invited to ! customize the software to include programmable CD music capa- | bilities, digital music volume and frequency displays, and sound J synthesizing capabilities. The winning software package will be i distributed to all purchasers of the CDP-Audio Software. The ! author of the software will be awarded S1000 of CDP products and J a royalty on all sales of the software. 1 PG-SIG-PC Software Sampler $125 125 of PC-SIG's most popular public domain software programs for IBM PC's and compatibles. Includes word processors, spreadsheets, personal and business accounting packages and much more. PC- SIG's directory of 700 public domain programs included ($12.95 value). ' McGraw Hill— Science & Technical Reference Set $300 Includes full text of the famed Concise Encyclopedia of Science and Technology (7,300 articles) and the Dictionary of Scientific and Technical Terms (9,500 terms and 115,500 definitions). Powerful search algorithms provideinstantaccessto reference data. + Call for business and library CD-ROM software product pricing. STARTER PACKAGES All drives will be discounted S50 when purchased with software. Call for corporate discount information. TO ORDER CALL 800-MEGABYTe (634-2298) IN NEW YORK STATE 212-996-6999 INQUIRES CALL 212-996-6999 Policy: Shipping and handlingextra.Personaland company checks require3 weeks to clear. Forfasterdelivery useyourcreditcard (add 3% for MC and Visa, add 5% for AMEX) or send a cashier's check or bank money order. New York residents add 8.25% sales tax. All pricesare U.S.A. prices and aresubjectto change and all items are subject to availability. Defective software will be replaced with the same item only. Hardware will be replaced or repaired within the terms and limits of the manufacturer's warranty. We cannot guaran- tee compatibility. All sales are final and returned shipments are sub- ject to a restocking fee. J CDP Compact Disc Products, Inc. P.O. Box 1520 Wall Street New York, NY 10268 PRINT QUALITY lations, we use an image-processing sys- tem from the Swedish company Context- Vision (see figure 4). First, we take a carefully planned print sample, enlarge it, and convert it into a digitized gray-scale image. Photo 1 shows an original and its digitized coun- terpart. Now that the print sample is in digital form, we have access to a powerful array of image-processing operations. The first operation is to divide the image into meaningful regions— charac- ters or dots, depending on what we're measuring. Briefly, the system uses a threshold level to sort out the pixels that belong to the background from the ones that belong to the character or dot. Photo 2, produced with the ContextVision sys- tem, is a histogram showing the frequen- cy of intensity levels. Table 2 lists some of the results of the image analysis. Position Deviation One way to measure position deviation is simply to measure the distances between characters on a row of identical charac- ters and calculate the variance. However, numerical cancellation tends to reduce the validity of the measure. A better way is to measure the deviation of each char- acter from its ideal location, using as a reference point the character's center of gravity, as shown in figure 5. Position variance i s defined as n-\ , =1 and the position deviation is SV X = -W x , where d t = the distance between a printed and an ideal character, n = the number of distances measured, and a = the mean value of the distances d { . Edge Sharpness Good printing should be crisp and clear; the edges of characters should be very well defined. Reality, once again, tells you that this is not the case. Under mag- nification, the edges appear as shown in photo 3 . One way to measure edge sharpness is to plot the darkness of a character as a function of distance across one of its component stems and then to measure the continued Table 1: At around 30 percent overlap, the blank-area factor becomes small enough, and further increases in overlap are not significant. Overlap (%) 10 30 50 S/D 1.0 0.9 0.7 0.5 Blank-area factor 0.2146 0.1600 0.0891 0.0434 :r; D *+* -*-* 4- rYi^^K^x ruin v^/uaniy Figure 3: (a) Elliptical dots reduce the blank-area factor without as much overlap as circular dots, (b) The top part ofroman letters conveys more information than the bottom; try reading each half with the other blocked from view. 202 BYTE- SEPTEMBER 1987 The Facts. The fact is, companies that use POSTSCRIPT® laser printers are creat- ing some very exciting communica- tions. Quite often, the word magic pops up. Yet behind this exciting develop- ment in business communication, you'll find some hard facts worth serious consideration. Fact. PostScript is the page description language chosen by some of the best names in desktop publishing. Fact. PostScript gives you the option of printing from an IBM PC, Macintosh, or mini/mainframe. Fact. You won t be tied to a single vendor so you can buy the printer that's best for your company's needs. Fact. Since POSTSCRIPT is device independent, you can design a document, then professionally print it later at a higher resolution. Fact. You can choose from hundreds of software programs that support PostScript. Fact. POSTSCRIPT lets you com- bine text, line art, and even digitized photographs on the same page. Fact. If you don't ask for a printer equipped with POSTSCRIPT, you won't get the magic behind desktop publishing. Now that you have the facts, just think what your company can do with the magic. For more facts, give us a call at 415-852-0271. PostScript from Adobe. The magic behind desktop publishing- The pages above were printed on a PostScript equipped printer 'PostScript pnnters include Agfa-Gevaert P400PS, Apollo Domain/Laser 26. Apple LaserWriter/LaserWriter Plus. Dalaproducts LZR-2665. Diconix Dijil 1/PS. Digital Equipment Corp. PrintServer 40/Script Printer. ITT Qume ScnpTEN. Laser Connection PS Jet, Linotype Lmotronic 100/Linotronic 300. NBI Model908, NEC SilenlWriler LC-890, QMS-PS 800/800 Plus, QMS-PS 2400. QMS-PS 2700CK. Sun Microsystems LaserWriter, Texas Instruments OmniLaser 2108/OmniLaser 21 15. PostScript is a registered trademark of Adobe Systems Incorporated Other brand namesare trademarks or registered trademarks of their respective holders Inquiry 4 SEPTEMBER 1987 -BYTE 203 PRINT QUALITY width of the edge— the portion of the character where the intensity falls from 90 percent to 10 percent (see figure 6). This measurement is repeated along the perimeter and is normalized by dividing the sum by the number of samples. Edge Roughness Before a character— and, on a lower level, a dot— is printed, its edge is straight or slightly curved. In the printing process, this property is lost and edge roughness appears instead (see photo 4) . GOP-300 r Workstation GOP-300 Advanced image processing system Output Tektronix a color ink jet printer 4695 Input IKEGAM CTC-2600 TV-camera CELTIC photo printer NIKON microscope Figure 4: Schematic diagram of the Context Vision image-processing system Facit uses to make objective print-quality measurements. • ♦ # t * # t * # 1 » • fit • Photo 1: (a) The original printed test pattern and (b) its digitized counterpart (with colors reversed). Edge roughness is thus defined as the dis- tortion that comes from small local errors in the edge line; note that this attribute is distinct from the global shape deviations described below. To measure roughness, we use the fact that the perimeter of a character with a rough edge is longer than the one of a character with a smooth edge. Using image processing, we smooth the perime- ter and then compare the perimeters be- fore and after smoothing. Roughness is thus defined as the ratio of the original perimeter to that of the averaged object. Edge Orientation Variance An interesting property of edge rough- ness is the variation of the orientation of roughnesss around the edge. By measur- ing the direction as well as the magnitude of roughness for every point around the perimeter, we can understand some of the reasons for the edge roughness. For ex- ample, depending on the roughness ori- entation, we may be able to deduce that a print wire is oscillating or out of align- ment or that power distribution is uneven over the wire matrix. Our image-process- ing system includes a special operator that produces an image in which the brightness of each pixel corresponds to the confidence that an edge is present and the color corresponds to the direction of that edge (see photo 5). Shape Deviation A large global error in a character (e.g., a bent stem in the letter T) is defined as shape deviation. Shape deviation is measured over a set of, say, 100 duplicate characters by superimposing the characters on each other. You can measure the "fuzziness" of the edge by calculating the statistical vari- ance between pixels located at the same place on the different characters and then summing these variances. (Note that the pixels I'm referring to exist inside the image-processing system and are much smaller than the print dots.) Gray-Level Variance The gray-level variance measures how uniform the blackness of the character is. Ideally, the gray-level variance should be zero, or at least very small. Gray-level variance is calculated as follows: " - rrr E * " *> 2 i=i = — \ T x)- nx 2 ] n-l Lfc ' J where x ( = the gray level of each pixel in the character, n = the number of pixels in the character, and x = the mean value of the gray level Xj. 204 BYTE- SEPTEMBER 1987 PRINT QUALITY This measurement applies to entire pages as well as to characters. In the case of characters, we measure the gray level of each pixel and calculate the result. To get the gray level of a page, we perform the same calculation a second time, using the mean value of the characters' gray level as measurement data. Interpreting the Data Now that we have an objective measure- ment tool for print quality, how do we ap- ply it? Looking over the different attri- butes, it seems that we have been measuring badness rather than goodness of printing. Does this negative orientation let us make positive comparisons be- continued Table 2: The statistical results from the image-processing analysis. (Roundness in the ContextVision system is the integration of the shortest distance to the edge per pixel for all pixels within the dot, for all dots within the sample. D max is the length of the longest axis through the center of gravity for each dot in the sample. Angle is the angle of the longest axis.) Area Mean diameter Roundness Perimeter D max Angle Satellites Measured objects Contrast (obj/bkn) (mm 2 ) (mm) (CTX) (mm) (mm) (deg) 4 16 0.40 arithmetic mean 0.091 0.340 1.585 1.395 0.430 90 standard deviation 0,0123 0.0229 0.1427 0.1307 0.0466 12.3 Photo 2: Histogram of the gray -scale image of photo 1. Figure 5: A character's "center of gravity " is used as a reference point in calculating position variance. Figure 6: The gray level of a character is plotted as a function of distance. The area between 90 percent and 10 percent intensity corresponds to the fuzzy edge of the character. In sharp, clear printing, this region is minimized. W%1 1/ Photo 3: Edge sharpness is measured within the white border. The red graph shows the rate of fall off from black to white. Photo 4: To measure edge roughness, we compare the perimeter of the original object to the perimeter of a smoothed Photo 5: Different colors represent different orientations of edge roughness in this computer-enhanced representation. SEPTEMBER 1987 • B Y T E 205 What can you expect from the new LaserJet Series II Printer? Everything. Because the LaserJet Series II Printer from Hewlett-Packard is the product of experience. It's a second generation printer from the company with the world's largest installed base of laser printers. Whatever your company's needs, the LaserJet Series II will deliver the performance you expect, at up to 8 pages/minute. Tkke a simple memo like the Soup letter we created with Microsoft Word. As you can see, you can print in a variety of formats and type styles with our wide selection of LaserJet fonts. Or you can create a sophisticated combination of text and graphics. With additional plug-in memory, you can also produce full-page 300 dpi graphics, like our Nuts form shown below, lb do this, we used HP's new ScanJet desktop scanner, Microsoft Windows and Pagemaker® from Aldus. With support by more than 500 of the most popular software packages, the LaserJet Series II Printer can pro- duce whatever type of business docu- ment you need. And LaserJet Series II works with all popular PCs. In fact, only the price is unexpected —starting as low as $2,595* For the authorized dealer nearest you, caJl us at 1 800 367-4772, Ext. 900A. Em hewlett "HM PACKARD Business Computing Systems Microsoft is a registered trademark of Microsoft Corp. Pagemaker is a U.S. registered trademark of Aldus Corporation. 'Suggested U.S. list price. © 1987 Hewlett-Packard Co. PE12701 HOI :'•; , . Inquiry 123 ^ooi, s«533£3sS*s p '* D«* tftf $8,100,050 %t^^ 1990 1991 X 300,000 %>,ooo \i 100,00" &4,S00.0$J> $1^00,000 •.am* 1 * ** *&&*" MB* 8 "* 1—rf" sesssss**" *«?J£Z*!?~*» .'•Cup »*£^ x **^ ticatv sou? eatet- ^;.^>so OP co UI pltectoi. actt PRINT QUALITY What users perceive as bad print quality relates directly to certain measurable attributes: smearing (and its inverse, voids), shape, and dot density. tween different print samples? To make the leap from laboratory mea- surements to inferences about perceived quality, we must calibrate our measuring tool against the subjective opinions of a wide variety of users. In other words, we need to know the relationship between objective measurements like position deviation, shape, and dot density, and wine-tasting terms such as crisp, clear, and pleasing. To go one step further, can we use our objective measurements to define, once and for all, the various print-quality levels: draft, correspondence, near-letter quality, letter quality, and whatever we wish to call the next quality level? At Facit, we have much more research to do on these issues, but preliminary work reveals some useful information. What users perceive as bad print quali- ty relates directly to certain measurable attributes: smearing (and its inverse, voids), shape, and dot density. A print sample's rating in these three areas seems to account for 80 percent of its subjective score, provided it is a normal sample without gross errors. Smearing (ink where it is not supposed to be) and voids (no ink where it is sup- posed to be) correspond to our measure- ments of edge roughness and sharpness. Shape attributes correspond to our measurements of the blank-area factor, position grid, and shape deviation. Dot density relates to the tuning of the virtual and the actual grid, the blank-area factor, and the gray-level variance. Once we have agreed on a correlation between our objective measurements and subjective judgments, we still are not done. Finding the reason for the flaws in a print sample— a design limitation of the printer, a faulty adjustment, poor quality or incorrectly matched ribbon, or unsuit- able paper— is outside the scope of our tests but is important nonetheless. We are continuing to work on the prob- lem of measuring print quality, and we welcome comments and suggestions from users and from others involved in printer design. ■ A Message To Our Subscribers FROM TIME TO TIME WE MAKE THE BYTE SUBSCRIBER list available to other companies who wish to send our subscribers material about their products. We take great care to screen these companies, choosing only those who are reputable, and whose products, services, or information we feel would be of interest to you. Direct mail is an efficient medium for presenting the latest personal computer goods and services to our subscribers. Many BYTE subscribers appreciate this controlled use of our mailing list, and look forward to finding information of interest to them in the mail. Used are our subscribers' names and addresses only (no other information we may have is ever given). While we believe the distribution of this information is of benefit to our subscribers, we firmly respect the wishes of any subscriber who does not want to receive such promotional literature. Should you wish to restrict the use of your name, simply send your request to the following address. BYTE Magazine Attn: Subscriber Service P.O. Box 6821 Piscataway, NJ 08854 m T~ MULTITASKING with TimeSlicer Now, create multithreaded and time MS-DOS applications in C. TimeSlicer is a linkable library of C functions to create multitasking and real-time programs at the application level rather than interfacing with the operating system. • No limit to number of tasks that can be run concurrently. • Tasks can be created, suspended or terminated at run-time. • Highly efficient — 10,000 context switches/second; 80 micro seconds interrupt latency. • Supports large and small memory models; preemptive and non- preemptive modes; waking up of tasks to optimize special event processing; and interrupt service routines written entirely in C. • Extensive intertask communication capability. (jrawni 1 • Optimizes processor usage transparently. iSie^ V^ftUt • Includes examples programs with source code. • Compatible with Lattice C, Microsoft C, ADVANTAGE C + + and assembly language. To order or obtain a complete technical specification sheet call: 1-800-847-7078 In NY: 914-332-1875 55 South Broadway Tarrytown, NY 10591 jpieftT I ICCDfkAT Inquiry 153 SEPTEMBER 1987 -BYTE 207 SOMETIMES, THE ACID TEST OF OUR MICROPROCESSOR DEVELOPMENT TOOLS IS UP IN THE AIR Two miles up, in the belly of a U2 jet, the US. Government is now tracking acid rain and radio- active particles with a just-developed device called an Upper Air Sampler. But months earlier, with expensive develop- ment hardware on the blink, timely completion of the project was in real jeopardy Luckily, Avocet was called to the rescue. And within 48 hours we came through. With "the best software development tools 11 their design engineer had ever seen. Not to mention, down-to-earth prices. Let Avocet turn your PC or VAX into a powerful, integrated development system in 48 hours, even overnight. Avocet can help you turn more good ideas into more real products in less time. Just call us now and we'll get you up and running— with everything you need to turn your computer into a personal, professional development system. All at a modest price. From a single source. Backed by the reassurance of a technical hotline. So friendly, knowledgeable support is always as close as your phone. No wonder design engineers with no time to spare come to us first— and keep coming back smiling. Any similarity to Intel, Hitachi or Motorola is purely intentional. Avocet's professional quality AVMAC assem- blers run on any PC-compatible with DOS or Xenix. And on VAX Unix. Just released, AVMAC Version 2.0 has major speed improvements to assure you. lightning-fast assembly. Plus, enhanced compatibil- ity with Intel, Hitachi, Motorola & other chip makers — so you can convert existing code more easily than ever before. Each AVMAC package comes complete with our AVLINK" linker, AVLIB'" librarian, AVREF" cross-reference generator and new 200+ page AVMAC Users Guide— all the assembly tools you want and need. After assembly, check your program with AVSIM'"— widely acclaimed as the best simulator/ debugger in the industry AVSIM tests target it? code right on your PC— with no special hardware. It's crashproof. And what you see is what you get: AVSlM's full-screen display gives you instant visual access to the entire CPU— registers, memory, I/O ports, even attached peripheral chips. ttwctr^ *t AVOCET 1802/1805 6502/65C02 6801/6301 6804 6805/6305 6809 68HC11 Target Microprocessor Families Supported 68000/68010 68020 8048/8041 8051/8052 8085 8096 F8/3870 COP400 HD64180 NEC 7500 TMS-32010 TX4S-32020 Z8 Z80 HostOperatingSystems CP/M DOS PC Xenix VAX Unix AVMAC Macro Assemblers from S349 AVSIM Simulator Debuggers from $379 Other Development Tools Call CALL TOLL-FREE 800-448-8500* to order or receive our latest catalog of microprocessor development tools Try before you buy. Order your AVMAC assembler and AVSIM simulator/ debugger today and we'll include a special demo kit for both. Try the demo for 30 days. If youre not satisfied for any reason, return the unopened products for a full refund, less the S35 demo/ documentation kit which is yours to keep. Avocet Systems. We help you get your job done, on time and on budget. Avocet Systems, Inc., 120 Union Street RQ Box 490AI, Rockport, Maine 04856 *Outside US and in ME, call (207) 236-9055 TLX: 467210 AVOCET CI FAX: (207) 236-6713 Avocet delivers all the tools you need— in 48 hours or less. Ask about our AVPROh/T and AVPAV programmers. And our NEW 8051 in-circuit emulator, development boards, AVPAS 5V cross-compiler—and AVKIT™ the total Unix toolbox for DOS, including the incomparable VI editor. © 1987 Avocet Systems, Inc. All rights reserved. VAX is a tradcmarkofDEC Unix is a trademark of AT&T. Xenix is a trademark of Microsoft CP/M is a trademark of Digital Research. SYSTEMS, INC? THE SOURCE FOR PERSONAL pP DEVELOPMENT TOOLS. 208 BYTE- SEPTEMBER 1987 Inquiry 24 PRINTER TECHNOLOGIES Engineering Close-Ups Printers encompass technologies from a wider variety of engineering disci- plines than any other component of a computer system. Most design improve- ments go far beyond electronics and elec- tromechanics into areas such as ballistics, chemistry, thermal mechanics, optics, fluid mechanics, and metallurgy. At the same time, the engineering goals behind these improvements are easy to appreciate, since the ultimate product, printing, is one with which we are all familiar. Considering these two points about printer technology— its variety and con- crete end-product— we thought it would be interesting to present close-up views of specific printer developments, written by engineers with firsthand knowledge of the problems involved. The five close-ups that follow don't cover all the various printing technol- ogies, but they do illustrate the engineer- ing process that underlies any technologi- cal improvement: analysis, design, modeling, prototyping, and refining to a finished design. As you'll see, printer technology is a mature but by no means static area of engineering. —George A. Stewart Technical Editor Taming the Hot Heads As printers get faster, print heads get hotter. Computer-aided design plays a major role in solving the problem. Keith B. Davenport A warning label ("Hot") appears on al- most every current-model dot-matrix im- pact (DMI) print head. The need for that warning is a direct result of the increased speeds in today's printers. New print- head designs are capable of 200 to 300 characters per second. Just as important, Keith B. Davenport is advanced tech- niques manager at Newbury Data Re- cording Ltd., Hawthorne Rd., Staines, Middlesex, England. character throughput has increased due to improved printer firmware and increased paper slew rates. The negative side of in- creased throughput is that the print head has a higher duty cycle; it has less time to cool off. Other than the safety issue, what's wrong with a hot print head? Operating at high temperatures reduces the useful life- span of most materials or requires that more expensive, high-temperature mate- rials be used. High temperatures reduce the ferromagnetic qualities of most mate- rials, which are the heart of any electro- mechanical device. The more energy wasted, the larger the power supply must be. Finally, a hot print head often reduces throughput because the printer must slow the printing rate at various times during printing to let the head cool off. Most DMI print heads are very ineffi- cient, with typically 94 percent to 99 per- cent of the input energy wasted. Figure 1 illustrates the various kinds of losses in the DMI design. Engineers at Newbury Data Recording have been making DMI print heads since the early 1970s. Their first print head was a seven-pin device using coaxial sole- noids to drive the print wires (see figure 2). Though it was in step with the state of the art at that time, the design had several disadvantages: The nonlaminated struc- ture allowed for high magnetic "eddy current" losses; the completely encased coil restricted heat dissipation; the large remanent air gap in the rear bearing re- continued SEPTEMBER 1987 -BYTE 209 Inquiry 233 Graphically Speaking HOT HEADS tyocjc IS THE LOGICAL CHOICE NEW ONLY 790°° FEATURES: • Single slot, 8 bit interface for PCs and compatibles • 640x200, 350, 400, 480 or 800 x 400 or 960x350 (60 hz refresh), 1000x700 (interlaced), 30 Mhz video Rate max. • 1024 x 1024 x 8 frame buffer • 256 simultaneous colors from a palette of over 60,000 • Supports 25 commands in hardware including eight windows, plus viewports. Excellent window & icon management • Compatible with most analog monitors including multi-scan types • 'C drivers included (source code provided) Spock is a full featured graphics card for PCs and compatibles. The board uses the NCR 7300 color graphics controller making it capable of executing up to 3.75 million instructions per second. A DMA channel allows for high speed data transfer be- tween the PC and the screen. The board uses an on chip sequencer to perform display refresh while the drawing processor draws images into its cache memory. During display blanking intervals, the images in the cache memory are downloaded to the frame buffer, in this way images are drawn very quickly without producing flashes on the display. The board supports the use of soft fonts allowing itto be tailored tospecificapplicationssuch as scienti- fic notation, it can support two modes of text; fast text and proportionally spaced. The high level com- mand set reduces software development costs and improves performance. And much more... please call for more information. Imaging Systems Corp 21 Antares Dr., Unit 207 Nepean, Ontario, Canada K2E 7T8 (613) 226-8727 Visa and American Express accepted Custom and OEM Inquiries welcome! Call us... and let us beam you a board 210 BYTE- SEPTEMBER 1987 duced the magnetic efficiency; and the large armature mass, required to carry the magnetic flux and drive the print pin, made the device mechanically inefficient, with poor response. As a result of these factors, the print head was limited to low- frequency operation and was quite ineffi- cient (1.5 percent). With this analysis in mind, engineers at Newbury Data Recording resolved the problems to provide designs for 9-, 12-, and 18-wire print heads that ran cool. This meant increasing the devices' efficiency. The plan of action involved consider- able mathematical work, CAD, and opti- mization using prototype models. Here's a summary of the process by which they maximized the efficiency of a DMI print- head design: 1. Generate the actuator (pin-drive) mechanism. 2. Describe the actuator mathematically. 3. Compile a computer program to opti- mize the efficiency . 4. Predict the overall performance using a finite-element analysis program. 5. Compare computer predictions with the actual model. 6. Realize a manufacturable design using CAD. 7. Use open construction to allow forced- convection cooling to occur during car- riage motion. 8. Maximize the heat-conducting surfaces. 9. Use laminated structure to minimize the eddy currents. Because of the decision to laminate, New- Input energy I Print head | \ \ \ \ Resistive ■ f Hysteresis Acoustic Electro magnetic losses losses losses radiation l 2 R Eddy Frictional Mechanical current losses losses losses V J V Heat dissipation Figure 1: Types of losses associated with a DMI print head. Coil Rear bearing Pole piece Rear ring Printing pin Figure 2: Coaxial solenoid used as an actuator in an early seven- pin design. HOT HEADS Yoke Print pin Note: Coils omitted for clarity Figure 3: This U-shaped yoke and pivoted-armature model formed the basis of the computer-aided modeling process. Figure 4: Flux distribution across the yoke and armature. bury engineers rejected the previous coaxi- al design . A laminated cylinder is expen- sive to manufacture and is less efficient. Instead, they chose a simple U-shaped yoke with a pivoted armature (see figure 3) and used this design as the basis for a math- ematical model describing the dynamics of the actuator to the point of air-gap closure (when the armature is pulled down by mag- netic force onto the yoke). The engineers made one major as- sumption about the magnetics of the model: The flux in the armature equalled the flux in the air gaps. Reluctance (mag- netic resistance) was calculated as four components: yoke, air gaps, leakage, and armature. Mathematical Model The model describes every aspect of the print head: electrical, magnetic, and me- chanical, as well as their interrelation- ships, and with respect to time. When the coil receives an electrical pulse, the current generates a flux field concentrated in the yoke and passing across the air gaps (see figure 4). The flux field increases with time, accelerat- ing the armature/arm/print wire assem- bly until the air gap closes, launching the print wire into free flight to place a dot upon the paper. The print wire returns by rebound, colliding with and imparting momentum to the arm; a visco-elastic damper absorbs most of the energy over the course of several bounces. __^— High inertia \3 '3 fake A a Non-tapered pole tips Low inertia J N foke A b Tapered pole tips Figure 5: Nontapered yoke tips (a) and tapered tips (b). Tapering the yoke tips reduces the length and hence the inertia of the armature. In modeling the electrical input energy, the engineers chose a capacitor- discharge circuit that provides an LCR (inductance-capacitance-resistance) net- work. They concentrated on the capaci- tor-discharge drive because it provides a constant energy input. However, two other designs can also be used by simple changes to the mathematical model: volt- age drive and current limit. Providing an infinite value of capacitance would force the model to behave as a voltage drive, and placing a current-limit trap in the algorithm would let it simulate a current-limit circuit. To maximize the coil surface area and minimize leakage flux, they placed a coil on each limb of the yoke. Tapering the yoke tips let them (at the expense of mag- netic saturation) significantly reduce the length and hence inertia of the armature, a function of (length) 3 (see figure 5). Within the armature/arm assembly, they calculated a theoretical mechanical continued SEPTEMBER 1987 -BYTE 211 HOT HEADS efficiency of 65 percent, but much de- pends on the arm shape and the practical limitations of manufacture. Computer Modeling and Design Having settled on a model, the engineers developed a computer program called Sheba (which stands for simulated high- speed electromagnetic ballistic actuator) to optimize the efficiency, based on the following inputs: • time to shut the air gap • capacitor voltage • print energy at launch (Vimv 2 ) • starting values for all dimensions • capacitor value • frictional allowances • material characteristics At various stages within the program's operation, ferromagnetic data is extrapo- lated using linear interpolation. The pro- gram attempts to optimize efficiency by varying five dimensions of the model: ar- mature thickness, yoke thickness, yoke throat width and depth, and yoke limb width. These are the key parameters af- fecting the electromagnetic actuator. The program outputs all dimensions and voltages, electrical current profile, number of turns in the coil, initial air-gap distance, time to launch, other electrical and mechanical characteristics, and, of course, the overall efficiency. The mathematical model and Sheba describe the actuator only to the point of air-gap closure. Since this is only 30 per- cent of the total cycle, the engineers Photo 1: The culmination of the CAD process was an accurate solids model 100 - Increasing Cl E c B o — !q ° F © * 2 § CD JQ **• CD 1 tn 80 - 60 - dot rate v / 400 c. p. s. 1 c 40 - Draft print o 20 - I 2 I I 4 6 i I l 8 10 12 o/o- Efficiency Figure 6: The curve shows the relationship between efficiency and head temperature for a 400-cps (draft mode) printer. needed another means of completing the study. They used a general-purpose fi- nite-element program, ANSYS, to ana- lyze the time/displacement histories of the structure under various loading con- ditions. This let them graphically de- scribe the important components of the system and follow their behavior under various flux-field situations. To measure actual performance of pro- totype models for the print-head actuator, they used a noncontacting displacement follower, deriving time/displacement and first and second derivative curves for sin- gle-shot or continuous operation of any of the moving parts. They then correlated the measured and predicted results and made the necessary modifications to the com- puter model. For example, the visco-elastic damper has nonlinear characteristics that are particularly difficult to model. To ensure a manufacturable design, they made extensive use of CAD. All de- tail, assembly drawings, and the bill of materials were produced from a solids model (see photo 1). The overall design i s suited for a vari- ety of product ranges, resulting in further benefits from using a computer model in the design. It was a straightforward pro- cess to produce components for a variety of print-head models by duplicating com- ponents in the computer model. The use of CAD also made possible the genera- tion of complex three-dimensional and sectional views in any orientation— in- valuable for checking manufacturability. The resulting print head, incorporated into a capacitor-discharge drive circuit, requires only 4.7 millijoules per cycle per actuator (12 percent efficient); incorpo- rated into a voltage drive circuit, the head requires 8 mJ/cycle/actuator (7.4 percent efficient). Contrast these numbers with typical industry figures of 1 1 mJ /cycle/ actuator (6.3 percent efficient). The Future Still greater demands will continue to be made on DMI print heads, and therefore it becomes increasingly important to pro- vide devices with higher efficiencies (see figure 6). The flapper or armature print head is limited in its performance by the high inertia of the moving parts. Stored- energy heads may become increasingly important because they offer potentially higher firing frequencies with better effi- ciency. [Editor's note: The stored-energy design is described in "Matrix-Line Printing" on page 215. ] The design approach summarized in this article— with suitable changes to the mathematical algorithms— will be equal- ly beneficial to future print heads, keep- ing efficiency high and temperatures low. ■ 212 BYTE* SEPTEMBER 1987 \ Ut l ( ■ IN. \i MICRO-CAP 1 1: The CAE tool with fully interactive analog simulation for your PC. Spectrum Software's MICRO-CAP II® is fast, powerful, and feature rich. This fully interactive, advanced electronic circuit analysis program helps engineers speed through analog problems right at their own PCs. MICRO-CAP n, which is based on our origi- nal MICRO-CAP software, is a field-proven, second-generation program. But it's dra- matically improved. Transient, AC, DC, and FFT routines Op-amp and switch models Spec-sheet-to model converter* Printer and plotter* hard copy ■IS 51 Schematic Editor MICRO-CAP II has faster analysis routines. Better resolution and color. Larger librar- ies. All add up to a powerful, cost-effective CAE tool for your PC. The program has a sophisticated inte- grated schematic editor with a pan capa- bility. Just sketch and analyze. You can step Inquiry 274 Transient Analysis component values, and run worst-case scenarios — all interactively. And a 500-type* library of standard parts is at your finger- tips for added flexiblity. MICRO-CAP II is available for IBM® PCs and Macintosh.™ The IBM version is CGA, EGA, and Hercules® compatible and costs only $895 complete. An evaluation version is available for $100. Call or write today for our free brochure and demo disk. We'd like to tell you more about analog solutions in the fast lane. ■ Integrated schematic editor ■ Fast analysis routines ■ High-resolution graphic output ■ Standard parts library of 500* types * IBM versions only. ^E~^E~^R ^s *g*i'BSt J \C Analysis — 1021 S. Wolfe Road, Dept. Sunnyvale, CA 94087 (408) 738-4387 MICRO-CAP II is a registered trademark of Spectrum Software. Macintosh is a trademark of Mcintosh Laboratory, Inc. and is being used with express permission of its owner. Hercules is a registered trademark of Hercules Computer Technology IBM is a registered trademark of International Business Machines, Inc. SEPTEMBER 1987 -BYTE 213 GET SERIOUS ...ABOUT ANALYZING VniTD riATTA You might be spreading your I V/U IV Ut\ll\. spreadsheet a little too thin. Or maybe you're starting from scratch. But if you're serious about data analysis, you're ready for SPSS/PC+ T,, -a full software family that brings you eight high-powered ways to complete any data analysis task. Enter it. SPSS Data Entry IT" is a fully integrated data entry, cleaning and editing tool. Analyze it. The SPSS/PC+ base package provides a powerful array of statistical and reporting procedures. _ Picture it. SPSS/PC+ Graph-in-the-Box" featuring New England Software's Graph-in-the-Box™ offers full color "snapshot" graphics. Examine it SPSS/PC+ Advanced Statistics" lets you get more serious with your data. Predict it SPSS/PC+ Trends'" -our latest option-is the complete time series analysis/forecasting tool. Table it SPSS/PC+ Tables'" produces presentation- ready tables instantly Chart it. SPSS/PC+ Graphics'" featuring Microsoft 8 Chart creates show-stopping graphs and charts. Map it. SPSS/PC+ Mapping'" featuring MAP-MASTER'" creates maps where vast amounts of data can be sum- marized and presented in one, simple picture. SPSS/PC+ products are being put to productive use by serious factfinders in business, government and edu- cation. For countless purposes such as market research. Wage and salary studies. Survey analysis. And quality control. Plus each product is superbly documented and supported by SPSS Inc., a leader in statistical software for nearly 20 years. While specially tailored customer support is available through the VALUE PLUS'" plan. So if you're serious about data analysis, step up to SPSS/PC+. For details, contact our Marketing Department QML X/3X2/3293315 SPSS inc. SPSS Inc. • 444 North Michigan Avenue, Suite 3000 • Chicago, Illinois 6061 1 In Europe: SPSS Europe B.V • PO. Box 1 15 • 4200 AC Gorinchem, The Netherlands • Telephone: +31 18303671 1 «TWX: 21019 SPSS/PO runs on IBM PC/XT/ATs with hand disk. Contact SPSS Inc. for compatible microcomputers, SPSS/PC+ . SPSS Data Entry II, SPSS/PC+ Graph-in-the-Box, SPSS/PC+ Advanced Statistics, SPSS/PC+ Trends, SPSS/PC+ Tables, SPSS/PC+ Graphics and SPSS/PC+ Mapping are trademarks of SPSS Inc. VALUE PLUS is a trademark of SPSS Inc. Chart and Microsoft are trademarks of Microsoft Corporation. MAP-MASTER is a trademark of Ashton-Tate. Graph-in-the-Box is a trademark of New England Software, Inc. © ig87 SPSS Inc 214 BYTE- SEPTEMBER 1987 Inquiry 275 PRINTER TECHNOLOGIES Matrix- Line Printing In this alternative to serial character printing, an 8-inch-wide bank of print hammers moves just V3 inch to print an entire line Mark Hohneker Matrix-line technology has been used in commercial, heavy-duty printers for over 12 years but has only recently been adapt- ed for personal computing applications. I am going to explain some of the more un- usual features of matrix-line printing as implemented in printers from Printronix. The typical dot-matrix printer uses a print head with 9 to 24 closely spaced pins. The print head generates print char- acters in serial fashion, moving horizon- Mar/: Hohneker is a technical writer for Printronix Inc. (17500 Cartwright Rd., P. O. Box 19559, Irvine, CA 92713). tally back and forth across the full width of a page, printing a vertical bar of nine or more dots at each dot column position. In this design, printing speed is largely a function of the number of characters printed. In matrix-line technology, 24 print hammers are arrayed horizontally on an 8-inch shuttle (wide-carriage designs use more print hammers and a wider shuttle). The hammers fire simultaneously, print- ing an entire horizontal line of dots with a single l A -inch sweep of the shuttle assem- bly. Figure 1 is a simplified drawing showing the design's major components. During the course of this sweeping movement, each hammer prints a hori- zontal dot pattern for characters that be- long in the Vs -inch zone covered by that hammer. At a setting of 1 characters per inch in an 8-by-9 matrix, each zone con- tains 30 dots, or 3 characters. At the completion of the horizontal sweep, the printer advances the paper by one dot row. The shuttle then reverses di- rection and prints the next row. Although the matrix-line printer uses a hammer bank in place of a serially mov- ing print head, it does maintain a logical continued LF gear LF motor Ink ribbon Cartridge Printing hammers Ink ribbon Platen Cam follower Carriage shaft v, \ / Platen knob Carriage P.C. board Carriage guide shaft Balancer Shuttle motor Ribbon drive mechanism Figure 1: A simplified cutaway drawing of the matrix-line printer design, showing only 10 print hammers. SEPTEMBER 1987 -BYTE 215 MATRIX-LINE PRINTING Data presented row-by-row Typically 3 characters per hammer o Dot Character line 1st character 2nd character 3rd character Aw w^^ .-*. ™ Direction of shuttle sweep -o All print positions tracked by the logical print head Hammer bank Data input ^> Figure 2: On-board printer firmware rasterizes a full line of text into a buffer called the logical print head, which is then mapped into the hammer bank. The figure shows the number of dots printed by a single print hammer to produce three characters in nine sweeps of the shuttle. De-energized Energized Coil Permanent magnet Hammer tip Hammer Spring / Coil Permanent magnet a Normal (retracted) state b Activated (released) state Figure 3: The hammer bank consists of 24 stored-energy print hammers, a) While the coil is de-energized, the permanent magnet holds the hammer in tension. b) When the coil is energized, its magnetic force field cancels that of the permanent magnet, letting the hammer spring forward, striking the ribbon onto the paper on the platen. print head in on-board memory to map the rasterized data from the character generator into the appropriate print zones, as figure 2 illustrates in simplified form. The key to matrix-line printing is the hammer bank, patented by Printronix. It is a group of individually controlled, stored-energy print hammers mounted on a shuttle assembly. The stored-energy print hammer con- sists of three basic parts: the print ham- mer, a stiff leaf spring with an 8-mil car- bide steel tip; a permanent magnet to hold the individual hammer retracted in ten- sion (stored energy); and an electromag- netic coil. When energized by a signal from the hammer-driver circuit, the electromag- netic coil neutralizes the effect of the per- manent magnet and lets the hammer spring forward and strike the ribbon against the paper, printing a dot. The coil is immediately de-energized, letting the permanent magnet recapture the re- bounding hammer. Figure 3 shows the stored-energy print hammer in the de-energized and activated states. The maximum frequency for firing a stored-energy hammer depends on the mechanical characteristics of the hammer spring. Its natural frequency is similar to that of a pendulum swinging from one ex- treme position through a midpoint to an- other extreme position and back: /= \l{2-K^IkTM e ), where k is the spring constant and M e is the effective mass of the hammer tip. However, actual hammer flight is re- stricted to about half the natural cycle be- cause the travel is cut short when the hammer strikes the paper. Consequently, hammer-firing frequency is almost twice the natural frequency. In the Printronix design, each hammer fires up to 1493 times per second. Advantages of the Hammer-Bank Design Since the shuttle motion of the printer is the same regardless of the contents of each dot row, the number of rows in a character matrix solely determines print- ing speed. It is independent of the num- ber of characters to be printed on a given line of text. Since the 24 individual print hammers serve the same function as the 9 print wires in a serial moving-head design, the duty cycle per pin is far less, and the life cycle increases correspondingly. Since horizontal motion is confined to a span of !/3 inch, position tolerances are easier to maintain, assuming the mechanical spac- ing of the hammers is correct to start with. In terms of graphics, matrix-line printers have no vertical bias; the same set of hammers produces each row of dots. In contrast, nine-wire printers tend to produce visible bands or patterns that are nine dots wide. The matrix-line printer design proves that, in dot-matrix printing, there is in- deed more than one way to put the dots on paper. ■ 216 BYTE • SEPTEMBER 1987 'We *Defowi fidvancect *7ec6*tetoyy ADmNCE TO THE NEXT LEVEL ATI-386 The ATI-386 AT board is a high-performance system board that provides the primary elements for building advanced personal computers. The board is functionally compatible with the system board in the IBM AT. However, it contains an 80386 microprocessor, 32-bit access to data and other features that give it over twice the performance of an 8MHz IBM AT. Other features include downward compatibility with IBM 8 MHz AT, one MByte 32-bit on-board memory expandable to 16 MByte, a socket for the Intel 80387 math co-processor and more. ATI-386-64 The ATI-386/64 Board features the same specifications as the ATI-386 AT board as well as on-board 64 KByte cache memory, cacheable to a full 16 MByte memory space to achieve nearly zero-wait state operation at full speed. ATI-6/12 System 286 The ATI System 286-12 runs at an amazing speed of 12MHz. That's 20% faster than the IBM* Personal System 2 50/60. And to protect your existing investment, we've built-in a normal-speed mode as well. A few simple keystrokes will switch you to 6MHz operation mode, when necessary. Combine the ATI System 286-12 with our MegaGraph Plus EGA board to get superb graphics performance. Or expand your system's main memory with the ATI Multifunction card. Expand from single-user to multi-user system with up to five disk drive slots and eight expansion slots. 6/8 & 6/10 MHz systems also available. 12 MHz Multifunction Card Our versatile multifunction card features a system bus of 12MHz. Sockets on board to handle up to 2.5 MBytes of memory, one serial port, one parallel port, one game port. Optional second serial port available. Professional Image Board The new Professional Image Board is a PC board which allows an ordinary home video camera (color or black-and-white) to be plugged into an IBM PC/XT/AT personal computers or IBM compatibles. Now, live, fast action scenes can be instantly captured in full color and frozen. The frozen pictures can be stored on a floppy or hard disk. The frozen pictures can also be transmitted to any remote computer in the world via modem or network. ATronics International Inc. LiM^ TOe Veboex /i^^tced 7«^^^ Inquiry 22 1830 McCandless Dr. Milpitas CA, 95035 USA (408)942-3344 TLX: 510-600-6093 FAX: (408) 942-1674 Southern California Contact: CNT Marketing 16580 Harbor Blvd., Ste. J, Fountain Valley, CA 92780 (714) 839-3724 IBM & ATronics are trademarks of their respective companies. MOTOROLA lmd*mlmtimd>*£ I **■ WMMMwi Apple picked our brains. And so did hundreds of other companies. Before millions of people picked Macintosh'/ Apple® picked Motorola's M68000 Family — the brains behind one of the most successful computer products ever launched. Now Apple has tapped the brainpower of the Motorola MC68020 microprocessor for the Macintosh II, bringing the high performance of a graphics workstation to business desk- tops everywhere. 72% of all 32-bit systems ever shipped included at least one MC68020. That's more than half a million high-performance systems. The high-performance business solution. The MC68020 is not just the overwhelming choice in workstations-it is now setting new performance standards in the office-where it is essential to the computation, graphics and communication necessary for interconnected systems. While Apple's choice of the MC68020 was a smart move, there's no license on genius: the '020 is the microprocessor of choice in advanced business system designs by such The Brain Trust: Where M68000 microprocessors predominate. indus- try leaders as Altos, Alpha Micro, Casio, C.Itoh, Fujitsu, Honeywell Bull, NEC, NCR, Olivetti, Plexus, Ricoh, Sanyo, Sharp, TI, Toshiba and UNISYS. The graphics solution. The M68000 family helped Apple implement the visionary "point and click" graphic work- style that has driven productivity up while driving training costs way down. Businesses of all sizes are discovering dramatic productivity increases in office computing through innovations such as desktop publishing. The software solution. Among programmers and designers dedicated to creating the best, most innovative appli- cations, the M68000 architec- ture has been the leading choice by far -with over seven million M68000 systems installed since 1979. Meanwhile, the MC68020, on the market now for three years, is already backed by two billion dollars worth of 32-bit software. This is more 32-bit software than all competitive products combined! Engineering Workstations Apollo, Hitachi, HP, Sony, Sun, Tektronix. Laser Printers Apple, Canon, HI? IBM, QMS, Ricoh. Departmental Computers Fujitsu, Honeywell Bull, NEC, NCR, UNISYS. PBX and Telephone Systems AT&T, Northern Telecom, Siemens. Fault Tolerant Systems IBM, NCR, Stratus, Tandem. Supercomputers Alliant, BBN, Caltech, Fifth Generation. Factory Automation Allen-Bradley, ASEA, Bailey Controls, GM, Mitsubishi, Square D. Join the Brain Trust. Challenge us to persuade you of the sound business and technical reasons to join the M68020 Brain Trust. Write to us at Motorola Semiconductor Products Inc., P.O. Box 20912, Phoenix, AZ 85036. V\fere pnyour design-in team. Apple is a registered trademark and Macintosh is a trademark of Apple Computer, Inc. M MOTOROLA MICROPROCESSOR MASTERY! The Development System that Supports 150 Different Microprocessors. A complete solution Here, at last is the working environ- ment of the future for developing error-free and efficient microproces- sor code. Save time and money with UniLab ll's seamlessly integrated toolset: An 8/16-Bit Universal Emulator- With UniLab's full selection of symbolic, debug commands you can quickly display and change all registers, memory, and ports, plus set software and hardware breakpoints. An Advanced 48Channel Analyzer- Most other 1 Find Bugs Fast Searching for bugs by single-stepping through suspect code can take forever, now, with UniLab, just specify the bug symptom you are looking for as a trigger spec and let UniLab catch the On-Linetlelp blig for yOU 3S menus, Command \JOUX program runs in real time. Pop-up Modem M Glossary, and Word Cist, Selection panel called by soft key. Get Running Fast Windows can be used to uiewsource files, previous traces, and more. BINLOrtP BIHLOfiD Loads a binary f Ha fro* disk into emulation mmory. Pro for the nane of the file if you don't include it on the c line. USAGE Starts loading a binary filo Into too fro* addr ~^" loading at the to addri or «hon and of filo is The binary file should contain a program. Can to load the product of a cross coup Her into m nenory, Symbol 4 translation or source code line display. cyl IS XFER BUF 1C IF 22 SIOR.DAIA 24KH1 TBL 25 TARGJIL 28 SIORJMTA resetting ~\ development systems are dead in the water if there is a hardware fault, such as a simple bus short Now, you can use the power of UniLab to home in on both software and hardware problems quickly. An Input Stimulus Generator You conveniently specify system inputs and observe the results. A Built-in EPROM Programmer helps finish the job! Development Dreams Come True Use Unilab's advanced windows to set up your screen the way you want to... view multiple items of interest. Imagine being able to auto- matically compare a current trace with previous trace data to instantly determine differences. You can set breakpoints, single- step, then go back to the an- alyzer without missing a beat, If you make a change in your code, use UniLab's built-in line- by-line assembler to instantly patch the fix and test the results. Think of the time savings. 220 BYTE* SEPTEMBER 1987 ADR DftTft B014 218601 LD HL.HBI.m 8817 812880 OOlfl 116818 B81D W i 6188 16 read 1888 16 write ttu mm LB BC,28 LD DEiTARGJBL LB lit 14 218881 LD HL*1 i? 812886 LD BC,28 M 11B81B LD BE, 1886 ID EDR8 LDIR IF 21FFFF LD HL.FFFF 22 3E18 LD A,18 Z4 77 LB (HL),A 2S C3B888 JP 88 I HOP AF=rt81 (sx-a-pnC) BC=FFFF DE=86FF HL=1988 1X=1234 1¥=S678 SP=18FE PCs»14 XFJOJUF 6814 218881 LP HL,HEH_TBL (next step) jgfeft org] (trace resune) IB (top) n IK (from step n) T (fro* n=16 ) sensitive prompt line.9 screen displays UniLab trace scroll off into . ^history buffer- riltenng can^be viewed e ij minates extraneous information 3nd shows you only the program steps of interest. Set up for any 8- or 16- bit processor in seconds! Thanks to our innova- tive emulation approach, moving between processor types requires only a new emulation module and soft- ware change. You save both money and time: Our inexpensive Personality Paks™ (only about $500) include all the items you need for fast hook-up. Orion Micro- Targetsr functioning target circuits for popular MPUs, let you test your software before your own hardware is ready. context yfoe story on UniLab II and how it can ensitive f . ,. r , , . You probably won't use your develop- ment system every day. You do need a system that's easy to learn, and easy to come back to. That's UniLab. It lets you use commands or menus -or a mixture of both. The same commands work for all MPUs. Useful help screens, on-line manual & glossary, instant pop-up mode panels, a quick command and parameter reference, are at the ready. Affordable, Expandable At less than $5,000 UniLab costs less than our less-able competitors. You can add our new Program Performance Analysis option to help you optimize your software. If you don't need UniLab's power, other models are available from $2,995. Get Disassembly of code in memory can be compared withtrace in adjacent window. Symbolic breakpoint register display. revolutionize your software design efficiency, as it has for thousands. Universities, ask about our Education Outreach Discount Program. Call Toll-free 1-800-245-8500. In California call (415) 361-8883. When you own or rent a UniLab 11, you get access to Orion's team of Applications Engineers. ^^="= = ^F= = 94063 INSTRUMENTS, INC. TELEX 530942 Inquiry 208 PRINTER TECHNOLOGIES Color Thermal-Transfer Printing Getting good results requires solutions to a variety of engineering challenges Julio Guardado The thermal-transfer process is simple in principle, but its implementation for high-quality printing like that shown in photo 1 is quite complex. I'll describe some of the engineering challenges and show how CalComp solved them in de- signing a series of color printers. In the thermal-transfer process, a donor ribbon coated with a solid ink is heated to the ink's melting point. The ink is then transferred to the receiving paper or film, to which it adheres after cooling. Figure 1 illustrates the process. By repeating the process three times using combinations of inks of the three primary subtractive colors (yellow, ma- genta, and cyan), you can produce colors across the full spectrum. Lining Up the Dots Registration of the three passes is the first challenge. For instance, to produce a blue dot, the printer must place a dot of magenta ink directly on top of a yellow dot. The molten layers of ink mix to form a light filter that turns white light into blue. However, if the second dot is mis- registered, it ruins the effect. The Color- Master design places up to 200 dots per linear inch, each dot with a 0.005-inch diameter. That doesn't leave much room for error in the placement of dots that are supposed to be overlaid. Any multipass device is subject to errors caused by tolerance buildups in the mech- anism. A small variance in paper posi- tioning, added to a small variance in print- head positioning and a small amount of vibration, may result in a variance that exceeds the design tolerance. The ther- mal nature of the design introduces an ad- ditional source of variance: the expand- ing and contracting caused by changes in the moisture content of the medium. To minimize registration error, Color- Master uses a unidirectional media-feed mechanism. The paper or transparency film is fed from an automatic sheet feeder and clipped to a rubberized drum (with a circumference of 12 inches). The media-handling drum makes three Julio Guardado is director of the small- format raster business unit at CalComp, a Lockheed Company (P.O. Box 3250, Anaheim, CA 92803). rotations, exposing the paper to three panels of yellow, magenta, and cyan rib- bon. Each pass takes about 20 seconds, yielding a page rate of one per minute. The ColorMaster's unidirectional media transport avoids the backlash that can occur when a drive changes direc- tion. The drum's rubberized surface also helps by overcoming the media's tenden- cy to slip or change shape better than would a sprocket feed or friction feed; the holding force is spread out over the entire paper surface rather than being concen- trated along the edges of the paper. The net result of this media-handling system is an overall registration of about half a dot, which is well below the thresh- old at which fringing and other undesir- able visual effects appear. Thermal Print Heads As with any raster printing device, in- cluding impact printers, the designer has a choice between using a scanning head, which moves across the width of the page printing dots as it goes along, and a sta- tionary head, which prints an entire line of dots simultaneously. Stationary heads— because there are more of them and they print simultaneous- ly—offer greater throughput than scan- ning heads. The design also reduces the problem of registration to one dimension, continued Photo 1: Sample output from the Color Master thermal-transfer printer. SEPTEMBER 1987 -BYTE 221 THERMAL-TRANSFER PRINTING Thermal print head ^ Transferred ink Substrate ■t Thermal ink £■ Paper Figure 1: A simplified diagram of the thermal-transfer process. Thick film head Glass protective layer- 10 microns Heating element 10-20 microns Glass layer -60 microns Ceramic substrate Figure 2: Thick-film heads offer durability and greater leeway in manufacturing tolerances. Thin film head Glass protective layers- 7 microns Conductive pattern Heating element 0.5-1 micron Partial glazed dome Ceramic substrate Figure 3: Thin-film heads offer the potential for higher resolution and are more energy-efficient. since there is movement along one axis. Thermal heads are either thick-film or thin-film. Thick-film heads (see figure 2) are manufactured by silk-screening a 0.015-millimeter-thick resistive material across an array of conductor leads. When power is applied to one of the leads, the head heats up across the path of current flow, the shortest path between the two conductors. This creates a "virtual" print element— virtual because there is no distinct element. All the electronics to drive the head are built right onto the thermal head. Thin-film heads (see figure 3) are manu- factured much in the same way as ICs. A resistive material 0.5- to 1 -micron thick is deposited between each pair of conduc- tors, forming a discrete heating element. A protective glass layer 7 to 10 microns thick is applied to both print-head types. Heat transfer from the heads to the ink is 20 percent efficient. The head heats to about 350° C within a span of about 1 millisecond, raising the ink temperature to its melting point of 70° C. To minimize power requirements, current is applied in multiple strobes. By definition, thick-film heads are more durable than thin-film. They also allow higher tolerances in their mechani- cal design since they project farther from the background surface. Thin-film heads, on the other hand, can be manu- factured less expensively, use about 20 percent to 30 percent less energy, and can provide higher dot densities. The ColorMaster design uses a thick- film stationary head to maximize throughput and reliability while provid- ing 200-dpi resolution. In terms of manu- facturing, the key challenge has been to achieve element-to-element uniformity, since this largely determines the lateral evenness of color on the final printed page. Head uniformity is a function of the resistance distribution of the thick-film material. At the beginning of the Color- Master's development, element-to-ele- ment variation was as high as 25 percent over all the elements. Heads now used in the ColorMaster production units have a variation of 5 percent over 95 percent of the elements. Thermal Ribbon and Media Thermal ribbon is a substrate coated with a heat-sensitive solid ink made primarily of waxes, oils, and dyes. Varying the ratio of these ingredients changes the viscosity, melting point, and, ultimately, image qual- ity. The substrate itself introduces another variable, determining the efficiency of heat transfer from the heads to the ink. Thermal-transfer printers usually out- put on paper or transparency film (for use with overhead projectors). The proper- ties of these two media are quite different, and getting good results on both using the same ink and the same print head is an- other difficult challenge. The Future of Thermal Transfer Manufacturers of color thermal printers are currently working on several chal- lenges: to lower the cost of the units through improvements to the manufactur- ing process, to provide even higher reso- lution through improvements to thin-film technology, and to allow printing on lower-cost, rougher papers . ■ 222 BYTE- SEPTEMBER 1987 TEST EQUIPMENT THAT MEASURES UP TO YOUR SPECIFICATIONS DMM-300 $79.95 DMM-200 $49.95 DMM-700 $49.95 D MM -100 $29.95 3.5 DIGIT DMM / MULTITESTER 3.5 DIGIT FULLFUNCTIONDMM 3.5 DIGIT AUTORANGING DMM 3.5 DIGIT POCKET SIZE DMM Our best model. A highly accurate, full func- tion DMM loaded with many extra features. Audible continuity, capacitance, transistor, temperature and conductance all in one hand- held meter. Temperature probe, test leadsand battery included. * Basic DC accuracy: plus or minus 0.25% * DC voltage: 20Omv — 1000v, 5 ranges * AC voltage; 200mv — 750v, 5 ranges * Resistance: 200 ohms — 20M ohms, 6 ranges * AC/DC current: 200uA — 1 0A, 6 ranges * Capacitance: 2000pf — 20uf. 3 ranges * Transistor tester: hFE test, NPN, PNP * Temperature tester: 0° — 2000° F * Conductance: 200ns * Fully over-load protected * Input impedance: 10M ohm High accuracy, 20 amp current capability and many range settings make this model ideal for serious bench or field work. Tilt stand for hands-free operation. 2000 hour battery life with standard 9v cell. Probes and battery included. * Basic DC accuracy: plus or minus 0.25% * DC voltage: 200mv — 1000v, 5 ranges * AC voltage: 200mv — 750v, 5 ranges ..* Resistance: 200 ohms — 20M ohms, 6 ranges * AC/DC current: 200uA — 20A. 6 ranges * Fully over-load protected * Input impedance: 10M ohm * 1 80 x B6 x 37mm, weighs 320 grams Autorange convenience orfully manual oper- ation. Selectable LO OHM mode permits accurate in-circuit resistance measurements involving semi-conductor junctions. MEM mode for measurements relative to a specific reading. Probes and battery included. * Basic DC accuracy: plus or minus 0.5% * DC voltage: 200mv — 1000v, autoranging or 5 manual ranges * AC voltage: 2v — 750v. autoranging or 4 manual ranges * Resistance: 200 ohms — 20M ohms, autoranging * AC/DC current: 20mA — 10A, 2 ranges * Fully over- load protected * Audible continuity tester + Input impedance: 10M ohm * 150 x 75 x 34mm. weighs 230 grams Shirt-pocket portability with no compromise in features or accuracy. Large, easy to read .5" LCD display. 2000 hour battery life with standard 9v cell provides over two years of average use. Probes and battery included. * Basic DC accuracy: plus or minus 0.5% * DC voltage: 2v — 1 0OOv. 4 ranges * AC voltage: 200v — 750v, 2 ranges * Resistance: 2k ohms— 2M ohms. 4 ranges * DC current: 2mA — 2A, 4 ranges * Fully over-load protected * Input impedance: 10M ohm * 130 x 75 x 28mm. weighs 195 grams ■ ■ jl.j.j.,1 luMi.jwiam "-', ," - - -- . ~- .-^JESSES"- «- 1 M± - - £§*£ © : ;>"■' j ' 3 — ^ —a 3 MODEL 2000 $349.95 20 MHz DUAL TRACE OSCILLOSCOPE Model 2000 combines useful features and exacting quality. Frequency calculation and phase measure- ment are quick and easy in the X-Y Mode. Service technicians will appreciate the TV Sync circuitry for viewing TV-V and TV-H as well as accurate synchroni- zation of the Video Signal. Blanking Pedestals. VITS and Verticle/Horizontal sync pulses. * Lab quality compensated 1 0X probes included * Built-in component tester * 11 0/220 Volt operation * X-Y operation * Bright 5" CRT * TV Sync filter MODEL 3500 $499.95 - 35MHz DUAL TRACE OSCILLOSCOPE Wide bandwidth and exceptional 1 mV/DIV sensitivity make the Model 3500 a powerful diagnostic tool for engineers or technicians. Delayed triggering allows any portion of a waveform to be isolated and expanded for closer inspection. Variable Holdoff makes possible the stable viewing of complex waveforms. * Lab quality compensated 10X probes included * Delayed and singlesweep modes * Z Axis intensity modulation * X-Y operation * Bright 5" CRT * TV Sync filter DPM-1000 $54.95 3.5 DIGIT PROBE TYPE DMM Autoranging, pen style design for the ultimate in portability and ease of use. Custom BO pin LSI chip increases reliability. Audible continuity tester and data hold feature for added convenience. Case, test leads and batteries included. * Basic DC accuracy: plus or minus 1% * DC voltage: 2 v — 500 v, autoranging * AC voltage: 2v — 500v, autoranging * Resistance: 2k ohms— 2M ohms, autoranging * Fully over-load protected * Input impedance 1 1 M ohm * 162 x 2B x 1 7mm, weighs 75 grams 2 YEAR WARRANTY ON ALL MODELS #JDR INSTRUMENTS 110 Knowles Drive, Los Gatos, CA 95030 (408) 866-6200 • FAX (408) 378-8927 •Telex 171-1 10 COPYRIGHT 1966 JDR MICRODEVICES Inquiry 137 the jdr instruments logo is a registered trademark of jdr microdevices. JDR INSTRUMENTS IS A TRADEMARK OF JDR MICRODEVICES. ORDER TOLL FREE 800-538-5000 OR VISIT OUR RETAIL STORE 1256 SOUTH BASCOM AVE. SAN JOSE, CA. (408) 947-8881 <30mPUTER WAREHOUSE CALL TOLL FREE 1 -80 Q-528-10 54 LBEST PRICES]-^ rds] — Charge for Bank Cards HARDWARE MONITORS Amdex All Monitors. NEC Multisync . Multisync Plus . Multisync Graphic Board . Princeton Graphics All Models Call Hewlett-Packard LazerJet II . NEC 3510. 3550 8810,8850 P6 P7 P9 $1829 ..$729 $1059 ..$429 $619 $1159 VIDEO TERMINALS Oumei01 PlusGreen 101 Plus Amber Wyse 30 50 75 Wyse 85 $315 $315 $285 $359 $565 $425 MODEMS OKIDATA All Printer Models Call HAYES All Modems Call Panasonic 10801 $155 1091 I $169 1092 1 $295 1592...... S375 1595. S419 3131 S229 3151 S369 Prometheus All Models US Robotics Courier2400 . Password 1200 Microlink 2400 Ventel . Call $335 $149 $335 .Call STAR MICRONICS All Printer Models Call DISK DRIVES Iomega Bernoulli 10 meg . Bernoulli 20 meg Bernoulli 40 meg $865 $1190 $1720 Toshiba32l SL Call 341E Parallel S595 351 Model II $899 Laser Printer Call SEAGATE 20 meg w/Western I/O . Other Models $339 .Call W W ¥WW??=r*r£*£Turbo PC/XT 256 Memory, One 360K Brand Name ■& ^ Floppy Drive • 135 Watt Power Supply, Slide Case, AT Style Keyboard • 4-10 MHz Clock Speed, (Keyboard Selectable). 8 Expansion Slots Turbo PC/XT W/640K& 1 Drive S439 Turbb PC/XT W/640K & 2 Drives .... $51 5 TurbO PC/XT W/640K. 1 Drive & 20 MG '. $799 PC/AT 10 MHz W/512K. 1.2 FloppyDrive $989 PC/AT 10 MHz W/1024K, 1.2 Floppy Drive $1039 PC/AT 10 MHzw/1024K, 1.2 Floppy, 40 MG $1625 MonGraphics Card with Parallel Printer Port $69 ColorCardw/Parallel Printer Port $65 Multifunction Card w/Software $79 Amber Monitor (TTL) $89 Amber Monitorw/Swivel Tilt $99 ColorMonitor(RGB) $279 Sega Enhanced Graphics Card $145 I/O Card (Serial/Parallel) $38 I/O Card (Serial/Clock Calendar) $39 Enhanced Keyboard $69 AT Multi l/OCard $69 XT Multi I/O Card $55 TRAINING FlightSimulator $27 PC Logo S69 Typing Instructor S27 Typing Tutor III $27 MS Learning DOS S27 LANGUAGES C Compiler (Microsoft) Fortran Compiler (Microsoft) . . Macro Assembler (Microsoft) . Pascal Compiler (Microsoft). . . Quick Basic 2 . SOFTWARE BOARDS AST Six-Pack Plus $139 Other Models Call ATI EGA Wonder $245 CSSL Awesome S375 Hercules Color Card $ 1 45 Graphic Card $ 1 75 Graphic Card + $ 1 85 Intel Above Board PS/PC (1110)... $239 Above Board AT (4020) $315 Above Board PS/AT (41 20) $345 Above Board PC 1010 $210 NEC Multisync Graphic Board Call OrchidTinyTurbo288 $355 Turbo EGA $449 Paradise Five Pak S99 Autoswitch 350 $205 Autoswitch 480 $279 Plus Development Plus Hard Card 20 Megabyte $609 Plus Hard Card 40 Megabyte $829 Quadram Quad EGA+ $295 Tec Mar Graphics Master $409 Captain No Memory $ 1 09 EGA Master $239 EGA Prosync $335 Video-7 Vega Deluxe $285 COMPUTERS TOSHIBA T-1100 Supertwist Call T-3100 .^.Call IBM PC and 100% Compatibles INTEGRATIVE SOFTWARE $249 $245 ...$83 $165 $55 Turbo Jumbo Pack S159 Turbo Pascal w/8087 & BCD S55 Turbo C $55 Turbo Basic $55 Turbo Prolog S54 PROJECT MANAGEMENT Harvard Total Project Manager II $282 Microsoft Project .$218 Super Project Plus Call Timeline 2.0 ....$235 COMMUNICATIONS CompuServe Starter Kit ..S19 CrosstalkXVI $88 MS Access $137 Mirror II $33 Remote $88 Smartcom II $79 Enable 2.0 Framework II Smart Software System 3.1 . Symphony Ability GRAPHICS Logi Mouse Logi Buss Mouse w/paint . . Newsmaster In-A-Vision Microsoft Buss Mouse 6.0 . . Microsoft Chart Microsoft Serial Mouse 6.0 . Newsroom PCBussPlusMouse PFS: First Publisher IMSI Mouse w/Dr. Halo II Call $395 $409 $439 $55 Call S85 $48 $259 $103 $163 $115 .. S31 $99 $45 $92 WORD PROCESSORS Leading Edge Word Processor $25 Leading EdgeW/P w/Spell & Mail .... $59 Turbo Lightening $55 MicrosoftWord 3.11 .$175 Multimate Advantage II Call Wordstar w/Tutor S162 Wordstar Pro Pack 4.0 $233 PFS: Professional Write $89 UTILITIES MS Windows Copy II PC IDIRPIus Fastback Norton Utilities 4.0 Printworks Sidekick (Unprotected) . Travelling Sidekick .... Sideways 3.1 Superkey Xtree SQZ Word Perfect (Ver.4.2)$195 Wordstar 2000 + 2.0 $209 SPREADSHEETS Lotus 1-2-3 Multiplan 3.0 Spreadsheet Auditor 3.0 .... VP Planner . PC Mouse $89 Printmaster. S29 Signmaster Call Turbo GraphixTool Box $38 Call $108 $82 $47 | Supercalc4 Call | MONEY MANAGEMENT Dollars & Sense w/Forcast $92 Tobias Managing Your Money Call S55 $19 ... ..$46 S80 $48 $36 S47 $39 S37 Call $25 $46 DATA BASE MANAGEMENT Clipper $375 Cornerstone S53 dBase II $289 dBase III Plus S379 Extended Report Writer $175 KnowledgemanU PromoPack $319 Quickcode Plus $138 QuickReport $ 1 38 Reflex $79 DB-XL $82 PFS: Professional File S112 R:Base 5000 SystemV $415 Many other titles available. Inquiry 65 for MS DOS Products. Inquiry 66 for all others. COfflPUTER WAREHOUSE Order Line: 1-800-528-1054 Order Processing: 602-224-9345 8804 N. 23rd Ave. Phoenix, Arizona 85021 Order Line Hours: Mon-Fri 7:00 a.m.-6:00 p.m. Saturday 9:00-1:00 Alaska Orders: Call (602) 468-1731 Order Processing: (602) 224-9345 1 0:00 a.m.-3:00 p.m. Mon-Fri ■ No Charge for VISA and MasterCard* You Pay the Ground Shipping— We Pay the Air* Ground Shipping & Handling $6.00 • Free Air applies ONLY to orders up to 10 lbs. & Over $50. • All productscarry a manufacturer's warranty. All Guarantees, rebates, trial period privileges & promotional programs are handled by themanufactureronly. • NOAPO. FPO, or international orders, please* Call before submitting PO Numbers • Personal and Company Checks Will Delay Ship- Ding 3weeks • Prices. Terms & Availability Subject to Change Without Notice • Add 3%forCOD Orders ■ We Do Not Guarantee Machine Compatibility • All J Sales Are Final V A s& ez? PRINTER TECHNOLOGIES Designing a High-Speed Page Printer Controller Fast forms processing is an ideal application for page printers. The controller is often the bottleneck. Phil Ellison Common sense tells us that an electro- mechanical print engine should be slower than an all-electronic controller, but the reverse is usually true. Most of the time, in a desktop page printer, the engine out- performs the controller. The engines are capable of printing at a rate of six or more pages per minute, while the controllers often feed the printer data at less than one page per minute. Unless the printer is producing the same page multiple times, the speed of the print engine is meaningless. In electronic forms processing, the form exists as an electronic image until it is printed with the data filled in. The forms are designed, stored, managed, up- dated, and completed in computer mem- ory and translated to paper only when needed in a paper format. The controller bottleneck is a serious problem in forms processing, where the printer must turn out many different form sets every day. The requirements for forms printing are stringent. The control- ler must be able to handle complex com- binations of fonts (sometimes as many as 36 per form plus 36 for the variable data to fill in the blanks), graphics, logos, and digitized signatures. The overall forms- processing system usually needs to be a turnkey system because its typical opera- tors are not computer specialists. Design Solutions Most first-generation personal page printers have the controller built into the printer. In fact, the dedicated computers in those controllers are commonly more powerful than the microcomputers at- tached to them (for instance, a 68000- based printer attached to an 8088-based computer). Placing the printer controller in the computer lets the computer's micropro- cessor handle memory-intensive page Phil Ellison is engineering manager at Electronic Form Systems. He can be con- tacted at EFS, 2395 Midway Rd., Car- rollton, TX 75006. makeup and processing operations. The controller writes the byte stream to the print engine. This approach eliminates duplicating parts of the computer system, such as chassis, memory, and power sup- ply. It also eliminates the need to have font memory (RAM, ROM, or disk) in the printer and provides for a convenient user interface (the keyboard and display screen as opposed to a printer control panel and set of LEDs). The controller we at EFS designed, the Form writer Adapter Card (see photo 1), i s a single board with a Motorola 68008 microprocessor, several custom logic arrays, and 256K bytes of 120-nanosec- ond RAM. It runs under a multitasking operating system written specifically for this application; the system can handle an unlimited number of separate tasks. The operating system, written in as- sembly language, allocates resources by time slices and interrupts. Time slices control most of its activities, but impor- tant events, such as the horizontal sync pulses, generate interrupts. By design, the controller is fast but limited. It detects error conditions at the printer, for in- stance, but passes them on to the host processor for action. Forms are created and stored in FGL (forms-generation language), a document description language optimized for forms. FGL resolution is 2400 dots per inch horizontally and vertically. This permits easy scaling to the resolution of the output device being driven. A moderately complex form, compiled in FGL, like the IRS Form 1040 page 1 , requires about 8K bytes to store. Variable information for forms is stored and man- aged separately and merged for display and printing. This eliminates the need to store the form multiple times. The Computer/Printer Interface The connection between the computer and page printer is often another bottle- neck. Conventional serial connections are limited to 19.2K bits per second. Par- allel connections at 56K bps are better, but still not fast enough to keep pace with the print engine's capacity. Because a full page of graphics represents, on the average, about 1.05 megabytes of infor- mation, sending a full page over a parallel interface requires about 150 seconds. The Formwriter Adapter Card con- nects directly to the video port of the laser engine over a shielded twisted-pair cable. The data-transmission rate ranges from 1.5 to 8 megabits per second, de- pending on the capacity of the print engine. Almost all print engines receive data through a video interface. This means that one controller card can drive a vari- ety of print engines, such as models from Xerox, Ricoh, and Canon. However, video interfaces differ among the various printers; there is no standard. All the interfaces support the basic functions of control, status reporting, and image synchronization. Control commands allow the controller to start and stop the printer, select paper trays, control display indicators, and so forth. In some cases, commands are sent over a serial line using a command/response protocol. In other cases, commands are implemented using TTL signals. Status functions allow the controller to monitor the condition of the printer and detect various errors, such as paper jams, out of paper, engine errors, and so forth. In some systems, the controller uses hardware signals to sample and evaluate the printer status in real time. More com- monly, status information is passed over a serial communications line using a query/status exchange. Sometimes the control and status protocols are combined or intermixed in such a way that the con- troller might issue a print command and receive back a status response such as out of paper. Image synchronization applies sepa- rately to the horizontal and vertical di- mensions. The controller needs to know when the printer's photoreceptor is posi- tioned at the top of the page and when to continued SEPTEMBER 1987 -BYTE 225 HIGH-SPEED CONTROLLER begin sending raster data for each scan line down the page. A print command typically initiates the vertical synchronization sequence. When it has a page ready to print, the controller issues a print command and the printer responds with a vertical sync signal that begins the print cycle. The controller Photo 1 : The Formwriter Adapter Card can control a variety of printer engines from Xerox, Ricoh, and Canon. then looks for horizontal sync signals from the printer and sends one scan line of raster image for each horizontal sync, progressing down the page. Again, the specifics of sending the ras- ter image vary with each printer. Nor- mally the image is sent at video rates of 1.5 MHz or higher and is synchronized with a video clock signal that is provided by the printer. The printer samples the video data signal at each strobe of the video clock and writes a dot when the sig- nal is TRUE. Implications for Other Printer Applications The EFS Formwriter Adapter Card proves that the controller does not have to bottleneck the printing system. However, it is not intended as a general-purpose printer controller, rather it is optimized for forms processing. Page printers have raised the expecta- tions of many personal computer users with regard to traditional word process- ing and data reporting. Don't be sur- prised if the next generation of general- purpose page printers incorporates many of the design concepts that we found to be so effective in driving page printers at top-rated speed. ■ Hardware Specials AMSTRAD PC1512 SYSTEM T SIERRA LEISURE SUIT LARRY .._ For IBM and compatibles *Z/ SPS: FIRST PUBLISHER . - A „, desklop publishing tor IBM >©T SUBLOGIC FOOTBALL .._ An Incredible computer simulation. IBM ... ZV WORD PERFECT VERSION 4.2 $ 10095 for IBM and compatibles ITT us%i«f *** Anr\rn nu ta a ■■ SEND MONEY ORDER. CERTIFIED OR CASHIER'S CHECK, MASTERCARD, VISA or DISCOVER CARD (Include card number, Interbank No, MOW TO ORDER BY MAIL: expiration date and signature.) TO: JAR MUSIC WORLD, 59 50 QUEENSMIDTOWN EXPRESSWAY, DEPARTMENT BM0987, QUEENS, NY 11378 DO NOT SEND CASH. Personal and business checks must clear our Authorization Center before processing. $25 MINIMUM ORDER. Shipping, Handling & Insurance Charge is 5% ot Total Order with a $3.95 minimum. (Canadian Orders Add 15% Shipping, with a $9.95 minimum charge.) For shipments by air, please double these charges. SORRY, NO C.O.D.'t. NEW YORK RESIDENTS PLEASE ADD SALES TAX. ALL MERCHANDISE SHIPPED BRAND NEW, FACTORY FRESH, AND 100% GUARANTEED. WE ARE NOT RESPONSIBLE FOR ANY TYPOGRAPHICAL ERRORS. ^B 59-50 Queens-Mldtown Expressway, Queens, NY 11378 IS BhH 226 BYTE- SEPTEMBER 1987 Inquiry 143 Introducing Printer Control Worth Showing Off It Begins By Making Resident Onscreen Printer Control A Reality... And Then It Goes A Whole Lot Further. Just because you need to print something sideways... doesn't mean you have to turn your whole world upside down! We've out-sidewaysed Sideways" ... and that's only one part of Duet! Duet decodes and prints spreadsheets and text sideways in the background. ..while you and your computer go of fin other directions . . . together! When you swear atyour printer... does that help you remember how to get it into compressed mode? Duet's pop-up menu allows you to select compressed print or double width, letter quality or drail. You can change spacing, choose a font or easily command what- ever else your printer has to offer. You can even advance your paper a page or a line al a time without having to approach your hardware. On laser printers you can choose between landscape and por- trait modes, select paper tray and lots more. And you'll never have to memorize escape sequences to do it. Duet can make your word processor, spreadsheet or database report generator do things with the printer it never knew was possible. When you need to stack up a bunch of liles to be printed, do you ever feel like you're just groping in the dark? With Duet, you can see a list of what's wailing to be printed, any time you want. You even have the ability to go in and shuttle things around, cancel files and individually configure print jobs for sideways or normal print. Power failure? Printer jam? Anyone who's been around printers for a while knows the feeling of groping around for a power switch whilepaper flies in all directions and the print head bores a hole in your masterpiece. That's why Duet saves print queues to disk. When I you bring the power up again, or clear the confetti out of your printer, you'll be able to restart wherever you left off. . . or even back up a page or two if necessary. I Have you ever been forced out of your own office because someone came to visit while your printer was hammering away? Duet lets you quiet your printer with a keystroke, and then start up again when it's convenient for you... and you'll never miss a character. With all or its power, Duet is so easy to use that in five or ten minutes, it will feel likean old friend. And like any true friend, it's never intrusive. Depending on how you configure it, Duet can occupy as little as 60K of RAM. CUJ^Er^ 1 s you in harmony «>* y«« r printer. RECENT QNSC.XX VK1NTMC «>««•>• iBackcrouno Printing Sm^vs P*tfn*G «*«* BM»««*«» L*atti Pwntkk Sumy" tHdMTKULESS PMKTINO SAVKQUEUESro* RHWINW* UNOERUNlNtJ NUMBER OF PWKTtK ?*»"» MF-d tiirinUta «\ ueue wUl A'umsn\ CS\ is Ihe original developer of The Spreadsheet Auditor, and the produeerof the premier LAN electronic mail system: The Network Courier. Lotus and Symphony auk tradkmahks ok IjOtusCowoiiation. Sideways is a tradkmark oh - Funk Soktwahk. To order your copy of Duet direct, phone: 800-645-5501 or, in California dial 800-556-6699. Or mail us your name and address along with a check, money order, or your Visa, MasterCard or American Express number and expi- ration date. 'California residents, please add sales tax (616%). Fororders outside of the U.S. please add $15. CSI, 756 Chestnut Street, Santa Cruz, CA 95060. Inquiry 329 SEPTEMBER 1987 -BYTE 227 H9 All you need Is a personal computer, overhead projector and a new color MagnaBytelT Electronic Imager to Instantly share colorful computer data with a room full of people. The MagnaBytel LCD display palette transforms the color data that appears on your monitor into an electronic "trans- parency" utilizing selected colors for added impact. Even if your computer system is monochromatic MagnaByte I will project in deep blue and yellow When placed on an overhead projector, the data and graphics that were once confined to your small monitor are simultaneously projected onto any wall or screen. No additional hardware or software is required. Just connect the palette and remote control to the interface card provided with MagnaByte systems and turn on the computer. Exclusive MagnaByte circuitry provides quick, convenient setup including automatic image centering. IBM is a registered trademark of International Business Machines Corporation. Apple is a registered trademark of Apple Computer; Inc. This new color MagnaBytel system can be used with IBM PC/XT/ATs and most IBM compatibles such as the Telex Intel- ligent Workstation. A monochromatic version of the MagnaByte is compatible with the Apple II family including the GS series. Both models come with a multilingual software program allowing you to capture and assemble information onto your own presentation disc. For a free brochure about this exciting new color LCD technology plus the name of your dealer, phone or write to: Telex Communications, Inc. 9600 Aldrich Av So., Minneapolis, MN 55420. Call Toll Free: 1-800-328-5727 ext. 8812. In MN 1-800-742-5685 ext. 8812. BH 228 BYTE* SEPTEMBER 1987 Inquiry 291 for End-Users. Inquiry 292 for DEALERS ONLY. PRINTER TECHNOLOGIES Strip-Buffer vs . Full-Page Bit-Map Imaging As printer resolution increases, the cost of a full- page bit map goes up quadratically. Strip-buffer technology is a memory-thrifty alternative. Bert Douglas One of the jobs of a printer controller is to convert a page of two-dimensional ob- jects (text characters and other shapes) into a sequence of dot rows that can be transmitted to the engine for printing. That job is getting harder as the number of dots increases. With traditional full-page bit-map de- signs, the controller generates a bit-map image of the entire page to be printed; one bit in memory corresponds to one dot lo- cation on the printed page. The image is not sent to the print engine until the entire page is ready. This method allows for virtually un- limited complexity on the page, but it also requires a lot of memory. At a reso- lution of 300 dots per inch, an 8V2- by 1 1- inch image requires a megabyte of RAM ; doubling the resolution to 600 dpi ups the memory requirement to 4 megabytes. Time is another cost of the full-page Bert Douglas is a senior design engineer with Office Automation Systems Inc. He can be contacted at OASYS, 8352 Claire- mont Mesa Blvd. , San Diego, CA 92111. bit-map approach. The two-cycle mode of writing the image and then copying it to the print engine frequently results in waiting periods between pages, making it difficult for the system to meet the rated speed of the printer. Strip-buffer imaging is an alternative technology that minimizes memory re- quirements while sacrificing some of the capacity for complexity. Another pur- pose of the design is to ensure that the controller drives the print engine to its throughput capacity, regardless of the contents of the pages. Strip buffering is similar to the virtual- memory technique used in large com- puters to provide a logical address space larger than the available physical mem- ory. The logical address space is the print drum, and the physical address space is the strip buffer (see figure 1). The strip buffer i s a narrow, horizontal bit matrix (typically 256 by 2550 bits). At any given time,, the content of the strip buffer is a partial-page bit image. The bit image can consist of any ar- rangement of predefined text characters and graphics, with certain limitations. Each individual text character and graph- ic object must be able to fit entirely with- in the strip buffer. (However, some graphic elements, such as lines and box- es, can be larger than the size of the strip buffer.) The constraints in no way hinder the use of the system for general forms printing and word processing, but they might make it unsuitable for extremely complex graphic arts work. Imaging a Page of Text In the strip-buffer controller design, printing and imaging take place simulta- neously. While one line of dots is being output to the print engine, another line is being written into the strip buffer. The top row of bits from the strip buffer is out- put to the print engine, the remaining lines of the buffer scroll up one row, and a new line of dots fills the bottom row of the strip buffer. Printer software in the host computer sends a page of text in the form of a display list (i.e., a sequence of instruc- tions for printing). The display list is a concise, high-level description of the page to be printed. A typical page-display list is only about 1 percent as large as a full -page bit-map- description. Inside the controller, a display-list in- terpreter (DLI) goes to work on the display list, generating rasterized data for the strip buffer. To illustrate the operation of the DLI, I'll follow its handling of a hypothetical stream of commands from a simple display list. For the sake of simplicity , I'll reduce the dimensions of the output: Page size is 20 by 50 dots rather than the typi- cal 3300- by 2550-dot page. The strip buffer is 10 dots deep rather than the usual 256 dots. The character matrix is 5 continued Print Controller Print Engine Physical address space Logical address space (page) c .0 0) & .9- (strip butter) A\ A\ B \ C r^e- data ^ 1 C\ Figure 1: At any given time, the strip buffer contains only a partial-page bit image. In a process similar to virtual-memory techniques, the physical address space of the strip buffer scrolls across the much larger logical space of the printed page. SEPTEMBER 1987 -BYTE 229 STRIP-BUFFER IMAGING 10 20 n 30 40 50 10 20 - - i ■ •■ i .... i n 30 40 50 - * »* s * * ^ s Q - • c •' 9 i ••••• ? • 1 ■ »' * ■ • m 10 - I c • on 10 20 n 30 40 50 10 20 n 30 40 50 • • i i '.J c i 1 9 ~ c e I 9 9 1 ® ;- • ««•« *£«*• - V * * * c • « * * • • m _, m 1 V ■:.; on I 10 20 o 30 40 50 10 20 n 30 40 50 u - ' *r i • *^ i ■ . * 9 * 9 T 9 c * ~* r. **«•* n^ r urn r • V inii*i niiiilffffinifiiiiii iiuituiiiiiiffiiiifi!fmtirttiiiiitifff{Hifaffiri#ifiivffvHtniifiutniffi nyiimiiiitiiJiiuiwto I tttJitt ilift lift 'ili fill 'Jiiffillftfilliltjllllii If 1 1 1 f f I ffif I'Jif f fif if 1 1 1 liff iiM if iiiilif ililfflfiiffifil t f 1 1 1- tT^f i t riTTT*! i fililiiif If : MIIMIMflWIHIIIHIl lii^ iwfflmiwiiiiintfiiwlir' /WflHIffiii lUflllKHM HUM. mm hi wmmmmmi imiiilii«iiii#Mt«*fliiimiif!fii!iii l«JJJIjlf»i!!!!li«f«l«IJI/lJfl!!!fI|!l!l|l !lHJfHpjiJ||J«!Jlftl/{!!««/IJ!lll! HWJI'ffNfllii^illlfiilfMiff II mi if i f •- . ummimumiimntw mmmmwwiw „ ^ mmmmmr inmt&ffifiijffiifitt li«M L. i I ...JIIIIlllHiljJ. iinwittwiiwn»ii«wmj ■iimtiitiiifiiiBwliiimiM*! iifllllfllflBipilMWlHl WlWtflflliWHIIIHIHll W«!«{tlHjHHJHIM«» ^IttlHlipHflfS iifltmititfii/fiffff! aiiitmiiiiiiiiiiiin WMMmW IJIIIIIIIHHfiWiiDfil' IlilHIIHifllUIK \imnm imm hifl(iw«iiijiiiijiiiiiiHiijii!Hjiiiiijifl!iiHi!ifliiiiiiinjiiii!••••••••••• i ■ ••••••« XT TURBO SYSTEM J TIMES FASTER THAN IBM XT • Mini AT Case • 150W Power Supply • 640K on Board • V20-8 • AT Type Keyboard • Floppy Disk Controller • 1 360K Drive • Monochrome Graphics Card w/Printer Port • TTL Hi-Res Monitor • Assembled and Fully Tested • 1 Yr Warranty Including Parts and Labor 'AT/XT are registered trademarks of the IBM Corporation Mono: $569.00 Color: $769.00 SENIOR AT SYSTEM Mono: $1349.00 j • AT Case Color: $1549.00 • 200 W Power Supply • 6 - 10 MHZ at Mother Board • 1 MB Onboard • 1 360K Drive w/Controller • 130 MB Hard Disk w/Controller • AT Keyboard • Monochrome Graphics Card w/Printer Port • TTL Hi-Res Monitor • Assembled and Fully Tested • 1 Yr Warranty Including Parts and Labor .v.v.v.v.v.y - * .w.v.v.v.v. •■ r • t * ■ W.V.V.V. ,■■„-„ r.r. i - - -„ ', AT 386 COMPATIBLE SYSTEM $2690.00 • AT Slide in Case • 200 W Power Supply • 1MB on Board • AT Keyboard • 1.2 MB Drive • AT Controller Card • Monochrome Graphics Card w/Printer Port • TTL Hi-Res Monitor • Assembled and Fully Tested • 6 Mts Warranty for Parts and Labor Only 100 systems available order yours now! /♦<Xv v.v.v , v.v.\\%y »%»•»• _ MMMMaaaBiaaaaaaiMaaaaaMaMB TT •■ v ■•'■■••■■■'■■' ■' - MONITOR I Samsung TTL Hi-Res Monitor . . Samsung EGA Monitor CTX 1410 Hi-Res Color Monitor Taxan 660 EGA Monitor Taxan 770/650/635/840 Sony 1302 Multiscan NEC Multisync . S 79.00 . $370.00 . $280.00 ; $370.00 . . . . CALL . $629.00 . $579.00 HARD DISK & FLOPPY DRIVE ■HHHi TEAC 360 K Floppy Drive TEAC 1.2MB Floppy Drive TEAC 720 K 3 1/2 HT. Floppy Drive Fujitsu 360 Floppy Drive Seagate ST-225 20 MB Hard Disk w/WD Cont.. Seagate ST-238 30MB Hard Disk w/Cont Seagate ST- 251 40MB Hard Disk Seagate ST-4038 30MB Hard Disk (39 MS) . . Seagate ST-4096 80MB Hard Disk (39 MS) . , Miniscribe 6085 77MB (28MS) 30MB Hard Card . $ 90.00 .$125.00 $125.00 . S 85.00 . $339.00 . $359.00 . $475.00 . $525.00 . $899.00 . $899.00 . $449.00 PRINTERS I Epson FX-286E 240/48CPS 136 COL 9 PIN . Epson LQ-800 180/60 CPS 24 PIN S/P Panasonic KX-P1 080 1/P1 091 1 Citizen 120D 120 CPS 80 COL Citizen MSP-10 160 CPS 80 COL Citizen MSP-15 160 CPS 136 COL Citizen Premiere 35 Daisy Wheel Okidata ML Series 0lympiaNP136 COL 200 CPS Glympia ESW 1000 Daisy Wheel 15 CPS . . . Olympia NP80 200 CPS 80 COL... $459.00 $479.00 $185,00/5225.00 $185.00 $279.00 $349.00 $449.00 CALL CALL CALL CALL Brother M1509 180 CPS 136 COL $369.00 Toshiba P341 E CALL Toshiba P321SL 24 pin 216/72 CPS 80 COL S/P w/Tractor CALL HP Laser Printer Series II $1 750.00 AT/XT ADD ON I 640K Ram Card for XT S 45.00 RS-232 Serial Card S 35.00 RS-232 4 Serial Port for XT S 99.00 RS-232 4 Serial Port for AT $129.00 2 MB Ram Card for AT S1 19.00 XT Speed Up Card $295.00 Baby AT Mother Board 6-10 MHZ $429.00 Turbo Mother Board 4.77-10MHZ $129.00 AT Mother Board 6-10 MHZ $439.00 Turbo XT Mother Board 4.77 - 8 MHZ S 99.00 2 MB 80286 Mother Board w/Printer Port 6-8 MHZ $379.00 MODEM I Mitsuba 1200 B Internal Modem $1 19.00 Mitsuba 1200B External Modem $145.00 Mitsuba 2400 B Internal Modem $199.00 Mitsuba 2400 B External Modem $239.00 Smart One 1 200 B Internal Modem $ 99.00 TAPE BACKUP ■HHIHI^^^^H^^^^^^HHH Irwin 10MB Tape Backup for XT Irwin 20 MB Tape Backup for XT/AT . . Irwin 40MB Tape Backup for AT Archive 60 MB External Tape Backup. Archive 60 MB Internal Tape Backup . EGA CARDS ^^HMMH Vega Video - $310.00 . $390.00 . $429.00 . $799.00 . $699.00 CHASSES. POWER SUPPLIES, 7 Deluxe Genoa Super EGA 640 x 480 . Tatung (EGA Wonder). AND MORE PLEASE CALL .$349.00 .$289.00 . $269.00 y.w «*.y»y y*y*»- y viylw-v-v/v ' .v.y.y»w,%wi? «*. " *.V '* - ■ iYi fcYiYiYiYiYiYiin B? SAMSUNG OLYMPIA O TOSHIBA ^^ Electron Devices ifflr? fr^B • Items Reflect 3% Cash Discount • Discount A vail able for Corporate and Duantity Purchases • Shipping and Handling Charges Extra • Prices and Availability Subject to Change Without Notice • Dealer Inquiries Welcome, Call (818) 284-3281 Inquiry 422 2 S. Garfield Avenue, No. 5, Alhambra, CA 91801 (818) 300-8562,-8563 /.v»v.\v.v - " i Inquiry 429 Y.E.S. MULTINATIONAL, INC. 44833 FREMONT BLVD. FREMONT, CA 94539 (415) 657-4888 UNIVERSITY P.0/S ARE WELCOME CORPORATE BUYER CALL FOR THOMAS FAX (408) 263-3523 QUANTITY DISCOUNTS ARE AVAILABLE DEALERS ARE WELCOME XT TURBO COMPONENTS ■ I 286 AT COMPONENTS I ADD ON BOARD 640K Turto 8/477 MHZ motherboard (OK) $80 640KRAMset $75 Multi I/O (par, ser, game, time, disk cont.) $60 Floppy disk controller (2 drives) $24 150W/180W Power supply $45/$60 XT case •••$27 RS 232 card $30 2nd Serial kit $15 Clock card $25 Memory expansion card (OK) $40 360K Floppy drive (Japan made) ... $69 ST-225 20MB kit. $269 ST-238 30MB kit $319 1024K 12/6 MHZ Motherboard (OK) $350 512K RAM (120ns) $70 AT I/O (par, ser, game) $55 W.D. Hard & floppy controller $135 200W Power supply $75 AT case $60 Memory expansion card (OK) $115 Multifunction card (OK) $125 2nd Serial kit $25 1.2MB Floppy drive (Japan made) . . $95 360KB Floppy drive (Japan made) ... $75 ST-225 20MB Hard disk $235 ST-4038 30MB Hard disk $525 ST-251 40MB Hard disk $495 ST-4051 40MB Hard disk $599 Mono graphics w/printer card $45 Color grapics w/printer card $55 Paradise EGA card $165 12" Amber monitor w/swivel base (720 x 348) $75 14" RGB monitor $249 14" EGA monitor $349 1200/300 Baud internal (USA made) . .$75 2400/1200 Baud internal $159 '"External for above Add $20 MONITORS ■All Gender changer $5 Printer cable 679715' $5/$10/$15 6' RS-232 cable (M-F, M-M, F-F) $9 6-outlet surge protector (UL app.) . .$9.50 Power station (surge protected) $29 Monitor & TV swivel base (12" /14" )$12/$15 AT-XT Keyboard $50 Enhanced RT (AT-XT) keyboard $60 Data switch box $39 Joystick $15 Printer stand $20 Keyboard drawer $29 M-F 10-6 SAT 10-5 LOWEST PRICE GUARANTEED * CALL FOR PRODUCTS NOT LISTED TERMS: We accept cash, cashiers checks, personal checks (15 days to clear) and approved purchase orders. California residents add applicable tax. Ship- ping & handling via UPS Ground $050/lb., UPS BLUS $150/lb., minimum charge $5. All merchandise is warranted for six months unless otherwise stated. Prices and policies subject to change without notice and we reserve the right to substitute equivalent items. We are not responsible for any typographical errors. Unauthorized returns are subject to 20% restocking fee. Returning items must be sent shipping prepaid by customer. PC PORT CONTROLLER Ap plications • Inexpensive local area network. • Printer buffering and sharing by multiple hosts. • Host buffering and sharing for multiple printers. • Local RS232C/RS422 data concentrator with programmable controller functions. • Timed dial-up and message transfer with stand-alone modem. • Point-of-Sale [POS] network systems. • Electronic mail systems. S ystem Features • Ten asynchronous RS232C/RS422 ports. • 192K bytes of buffer memory. • Resident FORTH language [Up to 7 screens of Forth may be stored in changeable non-volatile memory) • Host programmable port set-ups stored in non-volatile memory. • Port reprogrammable transfer destination by embedded character protocol. ©1986 CSl ALL RIGHTS RESERVED • Remote [modem] factory custom programmable. • Real-time calendar clock for time and date stamping of messages. • Any port to any port data concentrators. componEnT systekis inc. 778-A Brannan Street San Francisco, CA 94103 Telephone (415) 861-1345 256PNW-4 BYTE- SEPTEMBER 1987 Inquiry 420 YOU WANT SPEED, VERSATILITY AND RELIABILITY. YOU WANT EPSON: EPSON FX-SERIES PRINTERS Model FX-286e $499.00 / FX-86e $375.00 America's business choice in dot-matrix printers. The FX-86e standard and FX-286e wide carriage printers deliver all the performance you need to handle virtually every business printing task. Perfect for correspondence, spreadsheets, financial reports, and graphs. • Prints 240 characters per second (cps) in draft mode and 48 cps in Near Letter Quality mode • SelecType front control panel offers fast, simple selection of print modes and fonts • Standard Friction Feed and Tractor Feed for use with virtually any type of paper • Epson Standard Code compatibility with IBM®-style graphic characters and IBM printer emulation • Optional Cut Sheet Feeder available I EPSON EX-SERIES PRINTERS Model EX-800 $535.00 / EX-1000 $629.00 High-speed just became faster with the EX-800 standard and the EX-1000 wide carriage printers. At 300 characters per second (cps) in the draft mode and 60 cps in the Near Letter Quality mode, these 9-pin, dot-matrix printers produce volume work in a flash. • Prints 300 cps in the draft mode and 60 cps in Near Letter Quality mode • SelecType II front control panel puts eight different typestyles at your fingertips • Built-in Automatic Sheet Load and Push Feed Tractor • Epson Standard Code compatibility with IBM®-style graphic characters and IBM printer emulation • User-installable, Color Option Kit for seven-color printing • User-installable, Scanner Option Kit will scan and digitize hard copy images fed through the printer EPSON LQ-SERIES PRINTERS Model LQ-800 $549.00 / LQ-1000 $759.00 Outstanding print quality. Our LQ-800 standard and LQ-1000 wide carriage 24-pin dot-matrix printers produce such clear, crisp images you'll think documents were typed on a fine, office typewriter. • Prints 180 characters per second (cps) in draft mode and 60 cps in Letter Quality mode • Front panel, one touch selection for Letter Quality or draft mode • Built-in 7K buffer allows you to print and use your computer simultaneously • Optional, user-installable Identity and Font Modules expand your printing capabilities • Optional Cut Sheet Feeder and Tractor Feed available for versatile paper handling m j Do You Need a Reliable, Low Cost Source for PC Products? Then call Diamond Software. • Free technical support • Volume discount pricing • A selection of over 1 200 software and hardware products • 48 hour delivery on in-stock products For more information, or to place an order, call and ask for Dept. 9060. Inquiry 421 Diamond Software 800-227-0545 In California (415) 633-2588 FAX # (415) 633-2817 7916 Capwell Drive, Oakland, CA 94621 SEPTEMBER 1987 -BYTE 256PNW-5 Inquiry 428 TCS-7000 • 6/12 MHz Switchable • IBM PC-AT Compatible • Expands to 1 Mb Ram on Motherboard • 8 Expansion Slots TC&4000 • IBM PC-AT Compatible • 6/10 MHz Switchable • Expands to 1 Mb Ram on Motherboard • Equivalent of 5 Ex- pansion Slots Color Monitor Model Resolution • CM-1360 640 x 200 • CM-1322N 640 x 200 • CM-1380F 640 x 350 IBM EGA Compatible • CM-1376 640 x 480 IBM PGA Compatible Mono Monitor Model Resolution • MM-1222 800x350 • MM-1422 800x350 Terminal • TVT-7220 DEC VT 220 Compatible • TVT-7261 ANSI-ASCII Terminal Make The Right Connection Local Area Network TCS7000 TATUNG Call Now: (408) 435-0140 VAR, Distributors, OEM and Dealer Inquiries Are Welcome latung Science & Technology 780 Charcot Avenue San Jose, CA 95131 Tatung Computer Systems give you better than IBM PC-AT Com- patible speed, memory, and performance at a great price. And, you need look no further to find savings on high quality monitors, too. You see, Tatung is one of the world's largest manufacturers of com- puter components with a reputation for superior quality kiown around the world. In feet, we produce over a million monitors every year. That's quality you can trust. And we deliver complete after sales service to you. IBM and DEC VT 220 are registered trademarks of International Business Machines & Digital Equipment Corporation. TCS4000 KGB Enterprises Is Your ASK How KGB Can Meet ANY of your Special Cable Configuration Needs! If We Don't have It- WE'LL MAKE ITU For ALL y our Cable Needs, KGB is THE ONE to call! Tie Your Peripherals together with our Cables, RS232 Accessories and Computer Data Switches. We offer shielded or unshielded cables with industry-standard terminations. All of our cables include screw-type strain relief + internal insulation + 100% Factory Certified. HUNDREDS OF SERIAL & PARALLEL CABLES NOW IN STOCK! MATCH WITH ANY COMPUTER/PERIPHERAL COMBINATION!! IBM MONITOR EXTENSION SET This Handy Accessory Package Includes: • Monitor Power Extension • Monitor Signal Extension • Keyboard Extension ' .. /~o Electronics DESIGNER'S DREAM MACHINE m FREE! Electronics . . .The Magazine That Gives You Technology With Perspective. There's simply no other magazine like Electronics ! It brings to your desk the comprehensive coverage and perspective you need, no matter what your job or responsibilities are. Electronics provides you with technical information on computers, data proces- sors, peripheral equipment, office and business machines, communications equipment and semi- conductors. Information that keeps you abreast of industry breakthroughs, trends and business direc- tions. It gives you the savvy needed to compete. Each issue focuses in on the meaningful techno- logical developments and concerns driving the electronics industry Why Is Electronics Free to Professionals Like You? By controlling circulation, we make our readership fit our editorial. Editorial for important people, like you, who need the important information only Electronics provides. And it's yours, FREE... if you qualify. Simply fill out and return the adjacent card. If you qualify we'll start your subscription with the very next issue of Electronics . Electronics 256PNW-8 BYTE- SEPTEMBER 1987 Electronics FREE. If You Qualify. □ YES, begin my FREE subscription to Electronics magazine, if I qualify. □ No, I am not interested in this free offer. Signature Date Companyaffiliation and address must be given. Application must be signed and dated. Name Title Company Div. or Dept. Address City State Zip D Check here if you wish publication to be sent to home address Street City State Zip TO QUALIFY, you must answer all questions. The publisher reserves the right to serve only those individuals who qualify for a free subscription. This application becomes void if improperly completed. 1 . The primary end product (or service) at your plant, ana the product (or service) that is your own work. (Insert one code for each) I | Plant |_l Own work A. Computers, data processing/ peripheral equipment, office/business machines B. Communications, data communications, telecommunications equipment C. Navigation and guidance, aircraft/ missile systems and equipment (oceanography) D. Test and measurement equipment E. Consumerproducts(TV, radio, hi-fi, recorders, home computers, appliances) Q. Medical systems and equipment R. Industrialcontrolsystemsand equipment G. Semiconductor production equipment (componentinsertion, coil winding, etc.) H. Electronic sub-assemblies, components and materials (active and passive components, ICs, discretes, hybrids, power supplies) I. Other manufacturers using electronic equipment as part of their manufacturing process (machine tools, chemicals, metals, plastics, pharmaceuticals, etc.) J. Government and military K. Independent research and development laboratories or consultants L, Research and development organizations within an educational institution M. Independent software developers N. Operators of communications equipment (utilities, railroads, police, airlines, broadcasters, etc.) 0. Educational: 2-4 year colleges, universities P. Other (please describe) 2. 1 I Your principal job function: (Insert one code only) A. Corporate management (owner, partner, president, VP, etc.) B. Operating management (general manager, group manager, division head, etc.) C Engineering management (project manager, chief engineer, section head, VP of engineering, VP of research and development, VP of quality control, etc.) D. Software engineering E. Systems engineering / integration F. Quality control engineering (reliability and standards) G. Design engineering H. Engineering support (lab assistant, etc.) I. Test engineering (materials, test, evaluation) J. Field service engineering K. Researchand development (scientist, chemist, physicist, etc.) L. Manufacturing and production M. Purchasing and procurement N. Marketing and sales 0. Professor/ instructor at ______ P. Senior student at Q. Graduate student at Z. Othe r (please describe) 3. I I Your principal responsibility: (Insert one code only) 1. General management 3. Engineering 2. Engineering,management 4. Other 4. 1 I What is your title? (Insert one code only) Operations Management 01 . President/ Chairman /Owner / 03. Vice President of Engineering Partner 04. Product Marketing Manager 02. Vice President Engineering Management 11. Technical Director 16. Project Engineer 21. Manufacturing /Production 12. Chief Engineer 17. Senior Engineer Manager 13. Principal Engineer 18. Software Manager 22. Group Leader 14. Research Director 19. Senior Test Engineer 23. Department Head 15. Section Head 20. Senior Field Test 24. Other Management (explain) Engineer Design or Standards Personnel 31. Systems Engineer 35. Manufacturing Engineer 39. Consultant 32. Software Engineer 35. Production Engineer 40. Scientist 33. Test Engineer 37. Engineer 41. Physicist 34. Field Test Engineer 38. MTS 42. Other Staff (explain) 58R9 NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES m BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 42 HIGHTSTOWN. NJ. 08520 POSTAGE WILL BE PAID BY ADDRESSEE Electronics McGraw-Hill Publications Company P.O. Box 641 Hightstown, NJ 08520-0641 I M I M I I I I I II I I llll I I I II I III I I I H I I I I M II M I I I I I I HARDWARE REVIEW The Micro Clipper Graphics Subsystem Charles Weston Graphics performance has been the traditional stumbling block to truly productive IBM PC-based CAD systems. Spe- cifically, the problems with running popular packages, such as AutoCAD, are low screen resolution and poor graphics throughput. However, at least one solution is now available. Micro Clipper Graphics from Pixelworks ($3295) is a two-board graphics subsystem for the IBM PC AT, RT, and compatibles that typically im- proves AutoCAD graphics per- formance by 5 to 10 times. The subsystem provides enhance- ment functions, such as contin- uous real-time pan and zoom and a split- window display. It also operates with other popu- lar CAD packages, including Easy CAD, Personal Designer, and VersaCAD. The subsystem features a 66- MHz internal clock, pipelined architecture, and direct mem- ory access (DMA) to a locally generated graphics-display list. It supports a "multisync" mode of 720 by 560 pixels with 4-bit planes, a 1020- by 816-pixel 4-bit-plane mode (these modes both provide 16 colors from a palette of 4096), and emulation of IBM CGA and EGA. The subsystem uses a 9-conductor NEC MultiSync-type (9-pin D to 9-pin D) cable. An optional jumper is available for CGA or EGA pass-through, allowing you to route your CGA or EGA adapter's signal through Micro Clipper Graphics to avoid switching monitor cables whenever you want to use your standard display adapter. Unfortunately, although you can use Micro Clipper Graphics as a CGA or EGA adapter, you have to manually tog- gle a switch on the board. The Micro Clipper Graphics subsys- tem requires a host computer with two adjacent 16-bit slots (like those on an IBM PC AT or RT PC), 22.5 watts of 5- High-end graphics performance for your PC-based CAD application volt power, and a 60-hertz noninterlaced 3-wire RGB monitor, such as the NEC MultiSync. All CAD programs recom- mend, and some require, a math copro- cessor. RAM requirements vary, de- pending on the CAD package. Generally, you'll need enough RAM to satisfy not only the CAD software's basic needs, but also about double the amount of RAM you would normally need for the display list. This means that if you're processing 250K-byte AutoCAD drawings, at least another half megabyte of RAM is re- quired. AutoCAD specifies a minimum of 512K bytes of RAM, but as the pro- gram "pages" a drawing from disk into RAM, the more memory you have, the more efficiently your system will run. Pixelworks also offers a big brother to Micro Clipper Graphics, called Clipper Graphics ($4500), that is designed pri- marily for three-dimensional use. It has a 119-MHz clock, resolution of 1024 by 1280 pixels, and 256 simultaneous colors from a 4096-color pal- ette. A 16.7-million color pal- ette is available as an option. Its special three-dimensional func- tions include rotation, transla- tion, perspective, and shading. I evaluated Micro Clipper Graphics on a TeleVideo Tele- CAT-286 8 equipped with an 8- MHz 80286 processor, 2 mega- bytes of RAM, an 80287 math coprocessor chip, a 30-mega- byte hard disk drive, and an NEC MultiSync monitor. Inside the Graphics Engine The most interesting compo- nent of the Micro Clipper Graphics subsystem is the graphics engine. Its primary function is to manipulate "transformed vectors," which are the definitions of lines based on a coordinate system. The graphics engine accomplishes all scaling, rotation, zooming, and panning by matrix multiplication of these vectors. A bus interface processor on the sub- system communicates with the host com- puter's bus. This processor is responsible for DMA, using a 1 6-bit DMA channel in Cascade mode to access nonsequential addresses. To increase the overall pro- cessing speed, Micro Clipper Graphics becomes the bus master, sourcing the ad- dresses necessary to get the display-list data. (CAD drawing data is stored in hier- archical tree structures throughout the memory space.) A display-list processor interprets the continued Charles Weston is a BYTE technical edi- tor. He can be contacted at BYTE, One Phoenix Mill Lane, Peterborough, NH 03458. SEPTEMBER 1987 -BYTE 257 REVIEW: MICRO CLIPPER GRAPHICS Micro Clipper Graphics Type Graphics subsystem Company Pixelworks Inc. 225A Lowell Rd. Hudson, NH 03051 (603)880-1322 Size Two 13V2- by 4 3 A-inch boards; weight: 2 pounds Features Ten enhanced CAD functions, including Autopan and Zoom; CGA- and EGA-emulation modes; split screen; writable control store for user-defined graphics primitives; line, polyline, rubber-band, and drag support; 16 simultaneous colors from a palette of 4096; support for AutoCAD, VersaCAD, and other popular CAD packages; third-party software support for the GKS standard and Tektronix and DEC terminal emulation; comes with Pixelworks' drivers and diagnostics on two 5 1 /4-inch floppy disks. Hardware Required IBM PC AT, RT, and compatibles with at least 51 2K bytes of RAM, a hard disk drive, and an NEC MultiSync-type RGB monitor capable of 720- by 560- or 1020- by 816-pixel resolution; math coprocessor and extra memory recommended Software Required MS-DOS or PC-DOS 3.0 or higher or GEM plus CAD application software package Documentation 29-page user's manual Price $3295 data coming from the DMA channel. The data can be of two types: branches (con- ditional or unconditional), which are based on some status change dictated by the drawing operation, or graphics com- mands (e.g., points, lines, and arcs), which are control points within a "mod- eling space. " A modeling space can best be described as a virtual drawing. The modeling space on Micro Clipper Graph- ics theoretically can comprise 32,000 by 32,000 addressable points. The control points interpreted by the display-list processor are then fed through the graphics engine's transfer m- and-clip processors, where they are translated from virtual-drawing coordi- nates to "screen-space" coordinates. The screen space on Micro Clipper Graphics is 1020 by 816 pixels, but the actual display window for the NEC MultiSync comprises only 720 by 560 pixels. The 720- by 560-pixel display-window area is actually a translated subset of the virtual drawing. The drawing is repre- sented as a vector list, which describes the 32,000 by 32,000 points. To translate the vector list to the screen image, Micro Clipper Graphics multiplies the coordi- nates by a scale plus an added offset and then clips the image to the screen boundaries. Without Micro Clipper Graphics, a CAD system running with a CGA, EGA, or other standard graphics interface forces the microprocessor to do all the vector computation. Micro Clipper Graphics, however, has a floating-point package implemented in microcode on the subsystem for doing the vector calcu- lations. This arrangement frees the host processor from graphics-calculation tasks. Micro Clipper Graphics's draw pro- cessor contains microcode to produce 1 6 different line styles and patterns com- monly used in CAD drawings, such as dashed and broken lines. Circles, ellip- ses, and arcs are also defined by the microcode. The graphics engine needs only the center point and a radius to create arcs and circles. The draw proces- sor has a 32K-byte writable control-store area that you can load with user-defined graphics primitives, such as custom text fonts. The draw processor also contains the logic required to create windows. Plane- masking and Boolean operations on pixels also take place within the draw processor. Raster-operations logic is responsible for bit-block transfers (BIT/BLTs) to the pixel memory, and, ultimately, to the screen. The pixel mem- ory contains the video RAMs that store the screen-space image, which is raster- ized in the last stage of the viewing pipe- line by the high-speed D/A converter (a BrooktreeBT451 RAMDACchip). All text generated by the graphics en- gine is "stroke text"; that is, text made up of vectors arranged in head-to-tail fashion that compose the individual letters. This type of text has the advantage of being easier to scale and rotate than pixel-ori- ented fonts. To rescale the text, the graph- ics engine merely rescales the matrix of the endpoints that define the characters. Similarly, the graphics engine can rotate text— a time-consuming process with pixel-oriented text. Panning Around Before using Micro Clipper Graphics, you must configure the switches and jumpers on the subsystem board set. I al- tered my system configuration to allow routing of the CGA/EGA board signals through the Micro Clipper Graphics sub- system to my MultiSync monitor. The two high-end graphics resolutions are switch-selectable, and the DMA channel is jumper-selectable. Normally, the graphics subsystem uses DMA chan- nel 6, but you can select channel 7 and change the corresponding interrupt vec- tor by switch-selection to avoid conflicts with other boards in your system. Setting the switches and connecting the factory- supplied feed-through cable was no prob- lem. I also ran the factory-supplied TESTME diagnostic, which indicated that the boards were functioning properly. I encountered difficulty in configuring AutoCAD and the software, however. First, you must delete the ACAD.MNX and ACAD.MNU files from the AutoCAD directory and rename the Pixelworks ADI (AutoCAD device interface) driver file, which corresponds to your memory model, as DSCLIPER.EXE and then add it to the directory. I used a simple 640K-byte nonextended memory model for this. The next file that you need to copy into the AutoCAD directory is Pixelworks' DSCLIP.MNU. You must rename this file ACAD.MNU to replace the original Auto- CAD menu file with it. AutoCAD com- piles this file into a smaller executable file, called ACAD.MNX, which contains the icons that appear at the lower right corner of the screen. Then you enter the Auto- CAD configuration and the type of digi- tizer used; I used a Logitech C7 Mouse. The version of AutoCAD that I used, ver- sion 2.6, contains the option for the Pixelworks ADI driver file in the config- uration menu, and, once I selected it, AutoCAD came up in 720- by 560-pixel resolution with the six extra menu items that appear on the right edge of the Auto- CAD display. In short, installing Micro Clipper Graphics for use with AutoCAD is not for the fainthearted. The Pixelworks disks supplied with the subsystem contain the necessary software, but the user's man- ual is not explicit about the actual in- stallation. According to Pixelworks, sof t- ware-installation support is the responsibility of the application vendor. Nonetheless, Pixelworks has a hotline to call for troubleshooting information, and I made good use of it. New Level of Functions Micro Clipper Graphics adds a level of functions that are completely resident in the subsystem's hardware, and the CAD application software has no knowledge of continued 258 BYTE- SEPTEMBER 1987 ■ WHO YA GONNA CALL? BUGBUSfERS! This is how PROBE displays real-time trace data. Trace information includes C source code, assembly language and data which was read or written during instruction execution. PROBE software simplifies the display by tossing out prefetched but unexecuted instructions. — ( for next p 4se ) dDDB COil W W**** "" {ftt * otht * *•» *o "tit trwaj (*?tr). Worker £1]. 19 = 199; *m?s *» ^""^3 £ir+rmi ,. (»Ptr). Worker HI. StUry = 18B88B; ft*A?W36 48 65 6B 72 79 08 N B3-FF FP R 89 22 BA 5ft M *H e »u rntl inttU.« = BMi "*■ 'fflI.IHiroU.aW» =B8B186A8 r HI] WBBK1.MWBW = M11 & ASM BP BVte CONpare CONsole DElete Dlr Dna LCho EDit Qla^^f^^^ ma flOat So IF Wt! Ijn^rpt Us^Ofld LOOp jlftcro ttEnu HOIh.1. gl ^T PROBE knows all about your local and complex variables. You can display and change an array of structures as easily as shown in this display. PROBE's menu ^ window means you do not have to look up debug commands in the manual. Entering the command name shows you command syntax. 'Real-time source-level debugging of very large programs simply can't be done Without AtTOn's AT PROBE. " Ed Oates, Director of PC Software Development, Oracle Corporation The good news with your new Microsoft 4.0 or Lattice* C compilers is that they're providing more symbolic debugging information than ever. The bad news is you can't fit your program, a software debugger and that monster symbol table into memory - at least at the same time. The great news is that Atron's AT PROBE™ hardware- assisted software debugger not only has 1 -MByte of onboard memory for debugger and symbol table, but it now supports local variables and complex data types. The AT PROBE is a debugging tool that plugs into your PC AT and monitors everything the processor is doing. In real time. REAL TIME DEBUGGING. SOONER OR LATER, YOU KNOW YOU'LL NEED IT. The AT PROBE's hardware-assisted breakpoints trap on reading, writing, executing, inputting and outputting. On single or ranges of addresses, including particular variable values. All in real time. For a mere software debugger to attempt this, a 1 minute program would take 5 hours to execute. OPTIMIZED CODE - GOOD, BAD AND UGLY The good news is optimizing compilers generate very tight code. The bad news. The time to debug optimized code is inversely proportional to the quality of the optimizer. Figuring out how in the world you ended up somewhere gets ugly, fast. With AT PROBE's real-time trace capability, program execution history is saved on-board, in real time. Once a hardware trap has occurred, PROBE displays the program execution in detail, including symbols and source code. Real- time trace can show you how out-of-range pointers got that way. And there's really no other way to debug interrupt-driven code. AT PROBE OPTIMIZES THE OPTIMIZED When the job of bugbusting is done, your AT PROBE becomes a performance analyzer. So you can have both reliability and performance. So you can send only the best software into the field. CALL TODAY FOR YOUR FREE BUGBUSTING MANUAL Nine of the top ten software packages were debugged using Atron tools. Our complete tutorial on state-of-the-art bug- busting is yours, free. Full of examples and illustrations, it will show you how to become a bugbuster yourself. Call today. Bust bugs tomorrow. £u3SR* BUGBUSTERS A division of Northwest Instrument Systems, Inc. 20665 Fourth Street • Saratoga, CA 95070 408/741-5900 Inquiry 21 *Soon to be supported. Copyright © 1987 by Atron. AT PROBE is a trademark of Atron. IBM and Oracle own numerous registered trademarks. Adv. by TRBA. REVIEW: MICRO CLIPPER GRAPHICS Table 1: Benchmark results; all times are in seconds. Anomalies in timings for some tests, such as the X25 , zoom, are due to the ability of high ■resolution graphics boards to capture more detailed information in Zoom mode. Thus, more time is required to draw these images than would be expected Micro Clipper Clipper AutoCAD QuadEGA + QuadEGA + Graphics Graphics nozzle (CGA) (320 by (EGA) (640 by (720 by 560 (1280 by 1024 drawing 200 pixels) 350 pixels) pixels) pixels) Redraw 1.25 1.58 0.267 0.320 x 5 zoom 0.77 1.22 0.245 0.295 x 25 zoom 0.51 0.64 0.228 0.273 PCB layout Redraw 13.95 16.59 1.92 2.15 x 5 zoom 4.09 6.24 1.84 2.03 x 25 zoom 2.60 3.03 2.04 2.22 CADSource Shootout drawing Redraw 9.65 15.08 1.15 1.33 x 5 zoom 5.88 8.27 0.86 1.05 x 25 zoom 5.25 6.84 0.53 0.64 whether any of the functions has been in- voked, or even that they exist. Zooming in AutoCAD with Micro Clipper Graph- ics occurs entirely inside the graphics en- gine of the subsystem. A small window in the upper left corner of the screen displays a scaled ver- sion of the complete drawing being edited with its own cross-hair cursor. The cur- sor position in the small window corre- sponds to the position of the working cursor. In Zoom mode, a lightened trans- parent block within the small window shows you where you are working in rela- tion to the complete drawing. The level of detail in x 25 zoom makes it difficult to see where you are without this indicator. To change the zoom level, you use AutoCAD's Control-L command. Micro Clipper Graphics traps the command and controls the zoom from the graphics en- gine. Control-L steps continually among three zoom factors. The first time the function is invoked, the graphics subsys- tem will execute a x5 zoom; the next time, a x25 zoom; and the third time, a x 1 zoom (a return to the original draw- ing scale) . A zoom is not a pixel replica- tion, but a total recalculation and scaling of the individual lines' endpoints de- scribed by the clipping rectangle. The six "local" commands (so named because they execute on the subsystem) are AUT0PAN, ZMALL, SPLIT, SIZE, CLEANUP, and REDRAW. The most useful of these added features is AUT0PAN. In Zoom mode, you simply use the mouse to move the cross hair and the transparent window around the scaled drawing in the small window, and the rest of the screen displays a panorama of the drawing at the zoomed magnification practically as fast as you can move the mouse. The ZMALL function redraws the origi- nal picture without zooming or panning. SPLIT toggles the small window that dis- plays the scaled drawing. The SIZE func- tion prints out the current number of display-list pages in use at the bottom of the screen. The CLEANUP command erases all unnecessary dots, such as those for control points for circle and arc cen- ters. The REDRAW function redraws an image. Although AutoCAD already has a REDRAW command, the function added by Micro Clipper Graphics is performed quickly by the subsystem. Other functions offered by Micro Clip- per Graphics include ZMWIND, LPAN, and LDRAG. The ZMWIND function, which you invoke from the command line, defines the zoom area, and it simplifies the DEF- WIND implementation in AutoCAD. The first selection of ZMWIND, done with the mouse or the cursor, sets the start corner of the area, or block, to be zoomed, and the second selection sets the opposite corner. The area is then enlarged to fill the entire view window of AutoCAD. LPAN pans the screen to the current cursor position shown in the small win- dow. LDRAG drags the current zoom win- dow to a new point on the screen. LDRAG works whether the small window is in use or not, so you can zoom around a drawing even if you don't know the precise cursor position in relation to the complete drawing. Graphics Performance Graphics system performance is not easy to assess; comprehensive benchmarks for graphics systems are still being evaluated and debated. The performance of Micro Clipper Graphics can best be measured by using some actual AutoCAD draw- ings. For the benchmark drawings, I se- lected the well-known AutoCAD nozzle drawing, a printed circuit board layout from The Great SoftWestern Company, and the CADSource Shootout (a drawing specifically designed to exercise CAD functions). The tasks I timed were a redraw, a x 5 zoom, and a x25 zoom. I created a script-command file and used Auto- CAD's timing function to calculate the elapsed times for doing the assigned benchmark tasks. The script-command file started the AutoCAD timer, executed 100 iterations of each test function using the AutoCAD nozzle drawing, and then stopped the timer. I conducted the same tests using the CADSource Shootout and the printed circuit board layout, but I exe- cuted only two iterations because of the time required. I then divided the total elapsed time by the number of iterations to determine the time required for one iteration. The benchmark results of the AutoCAD system running on my Tele- Video TeleCAT-286 8 with a Quadram QuadEGA + board in both CGA and EGA modes, with Micro Clipper Graph- ics, and with Clipper Graphics, are shown in table 1 . Time Caveats The benchmark times for the CGA and EGA modes of the QuadEGAH- board are close to those of the Micro Clipper Graphics subsystem for some of the zoom tests, but these results can be misleading. Due to the lower resolution of the CGA and EGA graphics modes, there is not much detail in the zoomed image, and therefore the images are drawn relatively fast. However, the lack of detail in a 320- by 200-pixel x 25 zoomed image renders the drawing useless for all practical pur- poses—there are just not enough pixels to accurately represent the information. The slower-than-expected zoom times for Micro Clipper Graphics and Clipper Graphics is caused by the subsystems' higher resolution, which provides more detail than the CGA and EGA modes; the greater the number of pixels, the more processing required. Overall, the benchmark tests show that the Redraw speed of Micro Clipper Graphics is several times faster than that of AutoCAD running with a math copro- cessor. In addition, while its price at first seems prohibitive, the Redraw speed, en- hanced resolution, and the ease with which you can zoom and pan around drawings makes Micro Clipper Graphics a useful graphics enhancement tool. ■ 260 BYTE- SEPTEMBER 1987 TM AutoSketch A Resource to Draw Upon To get any job done, you need the right tools. Ideally, they should be extensions of your talents, freeing you to do what you do best. And speed, precision, flexibility, and consistency are always top priorities, no ma tter what the job. If communicating with drawings is part of your job, AutoSketch should be one of your resources. AutoSketch from Autodesk, the developers of AutoCAD? is the precision drawing tool for professional use. It's fast, powerful, and simple to learn. The price is right, too. With AutoSketch and your personal computer, you'll enter the world of computer-aided drawing with ease. You may never have designed with a PC before, and you may think it's bound to be complicated and time-consuming. Surprise! With AutoSketch, you'll probably be up and running in about an hour. Despite its ease of use, AutoSketch is a full-function, object-oriented CAD program. Pull-down menus and dialog boxes help you each step of the way. With a click of the mouse, you can draw, then copy, mirror, or move objects, even create symbol libraries. AutoSketch automatically updates measurements whenever you stretch, scale, or rotate dimensioned objects. It even keeps track of everything you do, so that you can delete and restore parts of your drawing as easily as you change your mind, using successive undo or redo commands. We know you'll be impressed with the professional results. So will your clients and colleagues. AutoSketch runs on the IBM PC/XT/AT and compatible systems with a minimum of 512K RAM and either color or monochrome display. The standard version is yours for just $79.95. If your PC has an 8087 or 80287 math coprocessor, this version operates about three times faster. The £ speed- enhanced version for $99,95, requiring the coprocessor, is three times faster still. Call 800-445-5415 for the name of the AutoSketch Dealer nearest you or more information on supported peripherals. To order direct with a credit card, call 800-772-9200, ext. 347. Inquiry 23 Touch all the bases. cW &>?/' Databases, that is. Exactly the ones you need to remain competitive in a rapidly changing marketplace. Our magazine is here to coach busi- ness professionals in the online skills. Because tapping into the exciting new sources of business information can be the move that keeps you one step ahead of the competition. It's a guaranteed way to put runs on the board. So whether you're a rookie in the online game or a veteran with years of experience, let Online Access magazine help make winning a little easier. Touch all the bases. With Online Access. Call 800.922.9232 and subscribe today. ONLINE ACCESS The Gateway to Business Information Yes, I want the power of online information at my fingertips. Please send me a 1-year subscription to Online Access for $24.95. If ever I'm not satisfied with my subscription, I'll let you know - and will receive a refund on all unmailed issues. Please bill me □ Payment enclosed □ Online Access 53 W. Jackson Blvd., Suite 1750 Chicago, IL 60604 Name Company Title Address City U.S. funds only. Canadian residents add S6.00. State Zip x CO < 262 BYTE- SEPTEMBER 1987 Inquiry 345 SOFTWARE REVIEW □ PC-MOS/386 Richard Grehan PC-DOS just isn't cut out as an 80386 operating system, and new OSs are trickling out in an effort to fill the gap. One of the early arrivals is The Software Link's PC-MOS/386. Its de- sign is ambitious: PC/MOS- 386 attempts to retain compatibility with PC-DOS while adding a host of multi- tasking and multiuser capabilities, plus the ability to run protected-mode 80386 applications when they become available. These goals, though, fall short in the execution. I tested PC/MOS-386 release 1.01 on two Compaq Deskpro 386s: one with an 80287 coprocessor, 2 megabytes of RAM, and a 20-megabyte hard disk drive, and the other with an 80387 copro- cessor, 4 megabytes of RAM, and a 40- megabyte hard disk drive. In addition to a five-user version ($595), PC-MOS/386 comes in two other forms: a single-user version ($195) and a 25-user version ($995). A Promising Start Installing PC-MOS/386 is as painless as it gets. I simply inserted the master disk in the floppy disk drive, booted the sys- tem, ran HDSETUP (analogous to PC- DOS's FDISK) to create a PC-MOS parti- tion on the hard disk, ran FORMAT to format the hard disk, executed . MSYS C : to write boot information on it, and cop- ied three files to it to get a bootable PC- MOS drive. The manual guided me step- by-step through all this, and I encountered no problems in getting the system operational. Since PC-MOS lets you create a logical drive of up to 256 megabytes, I was able to use the entire 40-megabyte drive on one machine. PC-MOS has no trouble reading standard PC-DOS 360K- and 320K-byte floppies, so transferring files onto the hard disk was simply a matter of using the COPY command. All the commands in PC-DOS for creating, deleting, copying, and renam- ing files and directories are available in PC-MOS/386, and most of them use the A DOS-compatible multitasking, multiuser operating system for 80386-based hardware same syntax. I found some differences that led to momentary confusion; for ex- ample, the PC-DOS CHKDSK command is called VERIFY in PC-MOS/386, and PC- DOS ' s VERIFY command is called WVER . PC-MOS/386 uses a CONFIG.SYS file to define the operating system's environ- ment at boot-up time. Several of the CON- FIG . SYS directives are similar to those in PC-DOS. For instance, BUFFERS=nnn tells PC-MOS to set aside nnn (which can range from 1 to 999) 530-byte records in memory for disk buffers. DEVICE= directs PC-MOS to load as a device driver. Other directives, listed below, have no PC-DOS counterparts. •FREEMEM=m,Ai informs PC-MOS of free memory your system might have be- tween 640K bytes and 1 megabyte; m and n specify the low and high boundaries, respectively. •SLICE=nnn sets the time-slice size in units of y i8 second. The default is SLICE=1, in which case the processor will service a task for Vis second before swapping in the next task. •SMPSIZE=wwK allots nnnK bytes to the system memory pool, which PC- MOS uses to track open files and created tasks. The default is 20K bytes, but as you anticipate running more tasks, you must increase the size. •USERFILE= $$USER.SYS tells PC-MOS/386 where to find the $$USER.SYS file, which holds security information. You can specify a number of other driver files in CONFIG . SYS . For instance, DEVICE=$CACHE.SYS nnnK installs a disk-caching system. If you include DE- VICE=$EMS.SYS nnnK, then at boot time PC-MOS installs driver code that emu- lates Lotus-Intel-Microsoft expanded memory nnnK bytes long. Fi- nally, DEVICE=$PIPE.SYS , n installs a pipe with buffer size n that partitions can use to communicate with one another. Your tasks can ac- cess the pipe like any other de- vice with the name < devname> . And You'll Also Receive . . . ED is PC-MOS/386's source-file editor, which, fortunately, does not adhere to the format of PC-DO S's Edlin. You can op- erate ED in one of two modes: a com- mand mode, where you work a line at a time from a prompt line (similar to Edlin), and a visual mode, where ED be- comes an easy-to-use screen-oriented editor. I found myself switching to the visual mode constantly, since I could fig- ure out how to make changes with only rare forays to the manual. DEBUG is the PC-MOS/386 equivalent to the PC-DOS version of DEBUG, with some handy enhancements. Not only does PC-MOS's DEBUG have all the com- mands of the PC-DOS version, but you can also set up to 10 breakpoints, access the registers of a math coprocessor, and use a remote terminal for your debugging session. Another clever addition is DE- BUG's assemble/unassemble command (AU). Using AU when you can enter a ma- chine-code source statement at a selected address, DEBUG will automatically echo your input and display the address and the hexadecimal bytes that the source code translates to. At the time of this writing, only the user's manual for the operating system was available. Instructions for installa- tion and for setting up various device drivers are clear. Whenever I had trouble with the system, I had no difficulty locat- ing topics in the manual. Sometimes, continued Richard Grehan is a technical editor for BYTE. He can be reached at BYTE, One Phoenix Mill Lane, Peterborough, NH 03458. SEPTEMBER 1987 -BYTE 263 REVIEW: PC-MOS/386 PC-MOS/386 Modular Operating System version 1 .01 Type Multitasking, multiuser operating system Company The Software Link 3577 Parkway Lane Atlanta, GA 30092 (404) 448-5465 Format Two5 1 /4-inch floppy disks Computer 80386-based computers with 1 megabyte of RAM and a hard disk drive Language Assembly language Documentation 349-page 8 1 /2- by 9-inch ring-bound user's guide Price Single-user version: $195; five-user version: $595; 25-user version: $995 though, essential information is missing, as I'll describe later. I would have liked to have a technical reference manual to experiment with the programming interface. Unfortunately, people at The Software Link said that one wouldn't be available until the early part of August. (One engineer described the programming interface as looking exactly like PC-DOS 3.x with NETBIOS. PC- MOS uses a NETBIOS emulation for task-to-task communications.) Moving into Multitasking PC-MOS/386 lets you execute more than one program at once by dividing extended memory (i.e., memory above 1 mega- byte) into multiple partitions in which DOS applications execute. The maxi- mum size of any partition is 640K bytes, and the size and number of partitions that you can have depends, of course, on the amount of RAM on your computer. When PC-MOS/386 first boots up, it sets up partition in the memory region below 640K as attached to the main console. To create a new partition, you use the ADDTASK command. This command lets you specify the partition's size, its task ID, its security class, and a start-up batch file name that's analogous to AUTO- EXEC.BAT in PC-DOS. By specifying these parameters, you create a second task that is associated with the main con- sole. To access a given partition, you simply press the Alt key and then type that partition's number on the numeric keypad. To set up a multiuser configuration, you use the ADDTASK command as before, except you specify parameters that indi- cate the serial port the partition is associ- ated with, the data rate of the port, and the device driver that PC-MOS/386 should use to talk to the remote terminal you're using. (You have your pick of PC- type, ADDS Viewpoint, TeleVideo 910, DEC VT-52, or Teletype terminals, among others.) Once you've got multiple tasks run- ning, you can call a number of task-main- tenance commands. Many of these are grouped under the M0S utility command. They include: •MAP, which displays a map of all the partitions currently defined, the address at which the partition starts in memory, the size of the partition, the serial port that it's associated with (if any), and more. •DIS, which lets you disable any code in the current partition that polls the key- board looking for input (since this could eat up processor time). If PC-MOS senses that a task is awaiting keyboard in- put, the task is suspended until an actual keyboard request is issued. As I'll discuss later, this may not work for some pro- grams that must have direct access to the keyboard. •USE IRQ n , for reserving control of in- terrupt vector n (where n can range from 2 to 7) . This handles the situation where two or more tasks attempt to gain control of the same interrupt vector, say, for managing an I/O port. Once a task is completed, it can free whatever inter- rupts it has control of by using the M0S FREEIRQ n command. Additional commands for managing partition parameters are available in the M0SADM utility command. These include commands for setting the time slice for the task in a partition, assigning a priority to a partition, and turning the system's disk-caching o n o r off. Since PC-MOS/386 is a multiuser OS, there's an optional security system that you can install. Basically, it gives you 26 security classes and the ability to assign a class to each directory and file. A user's privileges for a particular directory or file depend on an access-level code asso- ciated with that class. This code ranges from to 3 and is read from a user log file ($$USER.SYS) and attached to a user when logging onto the system. A access level means the user has no access to a di- rectory or file, a 1 grants execute-only privileges, a 2 grants read and execute privileges, and a 3 means unrestricted access. What Works and What Doesn't I tried a number of popular IBM PC pro- grams with PC-MOS, and the following is a brief description of what I en- countered. •Xy Write III (version 3.05): I loaded a document and did some simple editing. All went well until I tried to quit and re- ceived the File open, QUIT anyway? prompt, at which point the machine locked up completely. This is probably a case of an application that sidesteps the operating system and "talks" directly to the keyboard. The PC-MOS user's man- ual warns of problems with packages like this. •Norton Commander (version 1.00): When I tried to execute this program, PC- MOS reported that a general software error had occurred and that it was at- tempting to terminate the application. It succeeded. •WordStar (version 3.30): This worked fine. I loaded a file, did minor editing, and saved. •SideKick (version 1.50): When I in- stalled SideKick and attempted to activate it, the machine simply beeped at me four times. •QuickBASIC (version 2.0): I used the BASIC version of BYTE's Sieve bench- mark to test QuickBASIC and had no problem with the compiler. •Turbo Pascal (version 3.01A): I used a number of the demo programs supplied with Turbo Pascal, and they all worked (including the spreadsheet demo). I also successfully compiled and ran the pro- grams using the version of Turbo Pascal that includes 8087 support. Turbo Pas- cal's SOUND. PAS demo turned up an in- teresting effect, however. If I started the program (which causes the computer to sound like a ringing phone) in one parti- tion and switched to another partition, sometimes the sound followed me across partitions. An engineer at The Software Link said that this was due to a program that fools with the system timer, which is a sensitive area to PC-MOS/386 since it uses the timer to generate task-switching interrupts. •Turbo C (version 1.0): Using Turbo C's interactive environment editor, I re- coded the timing routines for the BYTE C benchmarks to use Turbo C's get time ( ) function, recompiled, and executed the programs. I did not run any benchmarks that performed floating-point operations, due to problems with the math copro- cessor that I'll discuss later. •AutoCAD (version 2.6): AutoCAD worked until I attempted to load a draw- ing, at which time the screen flickered 264 BYTE- SEPTEMBER 1987 REVIEW: PC-MOS/386 strangely and I was returned immediately to the system prompt. •Lotus 1-2-3 (version 2.01): This worked fine in partition 0, but when I created a second task in a 500K-byte par- tition and switched to the second parti- tion, 1-2-3 simply killed the machine when I executed it. The company said that the version of PC-MOS/386 I was using lets you create a partition that is too big, and that a rule of thumb for maxi- mum partition size was 640K bytes minus whatever size I had set the system-mem- ory pool to. So I reduced the partition size to 400K bytes, and, sure enough, I could run 1-2-3 in both partitions simultaneously. •Microsoft C (version 4.0): Microsoft C worked fine. However, it was while using this package that I first discovered that PC-MOS/386 and the 80387 didn't get along. •MetaWare's High C (version 1.3): I really hoped I could execute this package, since it's currently the only C compiler that can generate 80386 code. However, you can run programs created by High C only under Phar Lap's RUN386, and RUN386 will not execute in PC-MOS/ 386. This is due to the fact that RUN386 attempts to create a protected-mode envi- ronment, and since PC-MOS/386 runs programs in virtual 8086 partitions, it won't let RUN386 take control of the 80386. A programmer at The Software Link informed me that the company was working on a fix to allow High C to exe- cute under PC-MOS/386 but did not indicate when the fix would be available. •GWBASIC (version 2.02): This ver- sion of GWBASIC worked like a champ. I used it to run the BASIC benchmarks. It was while running GWBASIC from a re- mote terminal that I encountered addi- tional problems, however, which I'll dis- cuss below. Complaints At the top of my list of gripes is the lack of a list of software that The Software Link has tested on PC-MOS/386. It would be helpful to know what programs you shouldn't even bother trying with this op- erating system. I also ran into problems determining the proper setting for environment pa- rameters as defined in the CONFIG.SYS file. Specifically, the manual gives little guidance for choosing a proper time-slice value, and no help at all in picking a prop- er system-memory-pool size. Your best method for zeroing in on a proper time- slice is experience, and you'll surely want to experiment with different values as the task load changes. However, the only way I could determine a system-memory-pool size that worked was by booting the sys- tem, trying to add a second task, getting a Not enough memory message, editing the CONFIG.SYS file, rebooting the system, and repeating the process all over again. I spent most of an afternoon trying to get an external terminal to work with PC- MOS. First I connected a Wyse terminal via a serial cable, but when I initialized a task associated with the serial port, PC- MOS would do nothing but transmit spaces to the monitor. Oddly enough, flow control worked— I could hit Con- trol-S on the Wyse to halt the incoming characters and then use Control- Q, and they'd resume; but I could get no prompt, nor any way to send a command to PC- MOS from the terminal. Next, I connected an IBM PC and started up the VTERM terminal-emula- tion program. I finally got things to work and started GWBASIC from the remote terminal. Scrolling was horribly slow, however, since the screen completely re- wrote itself for every new line that rolled in at the bottom. I'm certain that the scrolling was being done by VTERM, so I shouldn't fault PC-MOS for the lack of speed. But during rewriting of the remote terminal's screen, the task running on the main console simply came to a standstill. I could type characters at the console, and the type-ahead buffer would remem- ber them; when scrolling on the terminal was completed, they would burst out onto the screen as the main console task sprang back to life. I contacted The Soft- ware Link about this problem and was told that they had not seen it happen before. Benchmarks To get a sense of how the operating sys- tem performed, I ran the standard BASIC and C benchmarks. The results of the BASIC benchmarks are in table 1 . 1 tried the benchmarks with the time slice set to both 1 and 2 and with a second task (with a partition size of 600K bytes) sitting at the PC-MOS prompt on a remote termi- nal (i.e., quiescent). The alteration in timeslice size had little or no effect on the execution time. If you compare these re- sults with those obtained running a Com- paq Deskpro 386 under Compaq DOS 3.1 (see page 240), you'll see that PC- MOS has little effect on CPU-intensive operations when there's only one active task. Adding a second task added only minor overhead. PC-MOS/386 runs the Calculation, Sieve, and Read tests as fast as, or only slightly slower than, MS-DOS on a Desk- pro 386. However, PC-MOS's Write benchmark is nearly twice as slow. I think this is due to additional code that PC-MOS must run to coordinate multiple tasks accessing the same disk (code that Table 1: (a) Byte's BASIC benchmarks run in partition with no other partitions activated. (b) The same benchmarks, this time run in partition with another task added (in partition 1) and sitting at the PC-MOS/386 system prompt. All times are in seconds. a. 1 task in partition Slice = 1 Slice = 2 Write 10.4 10.4 Read 4.8 4.8 Calculation 7.0 7.0 Sieve 23.4 23.4 b. 2 tasks (1 active, 1 waiting at system prompt) Slice = 1 Slice = 2 Write Read Calculation Sieve 10.6 4.9 7.4 24.5 10.5 4.9 7.1 24.0 Table 2: The BYTE C benchmarks run under PC-MOS/386 using Microsoft 's C compiler version 4. 0. No coprocessor 80287 Fibonnaci 8.5 8.5 Float 22.7 4.4 Savage 41.7 2.8 Sieve 1.1 1.1 Sort 2.2 2.2 Fileio 128.0 128.0 (with cache) 114.0 113.0 Dhrystone 3125.0 3125.0 (Note: All times are in seconds, except the Dhrystone, which is in Dhrystones per second.) executes even when you're only running one task) . To test the effects of running multiple tasks, I used the TIME$ function in GWBASIC. I set up three 500K-byte par- titions (in addition to partition 0), exe- cuted GWBASIC in each one, and loaded and executed the BASIC benchmark pro- grams with the additional statement 50 IFTIME$O M 13:00:00 n G0T0 50 tacked on the front of each parameter. In this way, the system executed four copies of each benchmark simultaneously. The average result for each benchmark continued SEPTEMBER 1987 • B Y T E 265 REVIEW: ACTOR 1.0 was as follows: Write, 42.5 seconds; Read, 17.5 seconds; Calculation, 28.5 seconds; and Sieve, 97.5 seconds. Except for the Read benchmark, these times are approximately four times greater than the times for the benchmarks run in partition with three additional quiescent parti- tions. The Read benchmark is only about three times greater. This makes sense: Since all tasks were reading from the same file, the system was most likely per- forming only one physical read per sec- tor, so three of the four partitions could read the data from memory buffers. Finally, I executed the standard BYTE C benchmarks. The times you see in table 2 were generated by programs processed by Microsoft C version 4.0. I tested the programs with and without the 80287 math coprocessor, and here's where I ran into another problem. One of our Desk- pro 386s has an 80387 installed, and each time I tried executing a C program that made use of the math coprocessor, the machine froze. All these programs worked on the same machine under PC- DOS and executed fine on our other Deskpro 386, which has an 80287. A programmer at The Software Link in- formed me that the company was aware of this problem and was working on a fix. A Nice Idea My most vivid memory of working with PC-MOS/386 is how many times I had to power the machine off and back on again after something I'd done had locked it up. Case in point: The manual clearly documents that the maximum partition size you can create using ADDTASK is "de- termined by the amount of free memory that is remaining on your computer and cannot be larger than approximately 640K," but I can't remember how many times I executed ADDTASK 600K (and even ADDTASK 500K) on a 4-megaby te machine only to have it lock up— and with only two partitions. The Software Link says it's working on a fix to keep the machine from freezing in such a situation. Engineers at The Software Link also said they were aware of most of the other problems I had encountered, that they were working on fixes, and that users of PC-MOS/386 would receive free updates for them all. (I was told that the first up- date was due out in July.) All in all, although PC-MOS/386 has a great deal of potential, I cannot at this point recommend it. I wonder whether its multiuser capabilities make any sense in an application beyond, say, a means for a background task to control infrequent ac- cess to the system via a modem. And if you're interested only in multitasking, other packages on the market (Quarter- deck's DESQview, for example) provide this capability. Admittedly, PC-MOS/386 offers an environment for executing protected- mode 80386 programs, and this might prove useful if you're developing 80386 code. But I was unable to use the only high-level 80386 development package that I had— High C— because of PC- MOS's incompatibility with RUN386. Even if The Software Link can get High C to work on this operating system, PC- MOS/386 carries with it the old PC-DOS restriction of a 640K-byte maximum par- tition size, so there's no way to experi- ment with larger address spaces. The idea of a multitasking 80386 oper- ating system with PC-DOS compatibility combined with advanced task communi- cations is exciting. But PC-MOS's de- signers still have some work to do. ■ Actor 1 . Leonard Moskowitz Object-oriented programming languages (OOPL), of which the best-known is Smalltalk, ease program development and maintenance. Often, however, these languages are also slow, memory- hungry, and have a steep learning curve. Actor is an OOPL designed to be a fast, memory-efficient, easy-to-learn alterna- tive to Smalltalk. Actor version 1.0 ($495) runs under the Microsoft Windows operating envi- ronment version 1.03 on IBM PCs and compatibles with MS-DOS 2.0 or high- er. It requires a hard disk drive, a graph- ics display adapter, a mouse, and 640K bytes of memory. I ran Actor on a 6-MHz IBM PC AT with 640K bytes of memory , an EGA graphics adapter, a 30-megabyte hard disk drive, and a Mouse Systems op- tical mouse running under PC-DOS 3.2 and Microsoft Windows 1 .03. Actor achieves its speed through use of a token-threaded interpreter, optional early binding, and an incremental dy- namic-memory garbage collector, as op- posed to Smalltalk's byte-code inter- preter, late binding, and various imple- mentation-dependent garbage-collection schemes. Like Smalltalk, Actor is an in- terpreted language and provides a rich programming environment. Actor differs from other object-ori- ented languages in that its syntax is simi- lar to Pascal and C. Actor allows optional termination with semicolons to make Pas- cal programmers feel more at home. As- signment is via the := form, which, again, is much like Pascal. Blocks are en- closed in curly brackets, as in C, and the then can be left out of conditional forms. Although these points don't make object- oriented programming concepts any easi- er to absorb, they do ease the transition. As with any new release of software, there are a few problems with Actor. A README file on the disk describes most of them and mentions that they will be fixed in the next version. An additional shortcoming is that in the 640K-byte limit of PC-DOS, Actor leaves little room for application code. Future releases of Ac- tor will increase the amount of memory available to a programmer. [Editor's note: In the August 1986 issue of BYTE, dedicated to the theme of object-oriented languages, Charles B. Duff, the author of the Actor language, discusses the philosophy behind its de- sign. Other articles in that issue explain what an object-oriented language is and its advantages and disadvantages over more conventional programming lan- guages, like C or Pascal. ] A Complete Environment Actor provides a complete programming environment, familiar to the users of Smalltalk and Flavors, including browsers, inspectors, a workspace, and a file editor. Browsers are specialized edit windows designed to view and change Actor-class source code and immediately implement the changes. When you edit in a browser, text is automatically for- matted. Inspectors, another kind of win- dow editor, allow you to view an object, send it messages, or modify it. You can use inspectors to trace an object's inheri- tance of methods and instance variables. The Actor workspace is the developer's primary interaction window. In the work- space, you can write and interpret Actor source code (as you can in the browser and inspector windows), edit, select to browse or inspect, and check on certain system parameters. Actor provides a solid base of pro- gramming code. It comes with more than 90 predefined object classes and hun- 266 BYTE- SEPTEMBER 1987 REVIEW: ACTOR 1.0 dreds of methods, including various types of windows, collections (arrays, struc- tures, bags, strings, symbols, sets, dictio- naries, and graphic objects), associations (for making ordered pairs), characters, and numbers (16-bit signed integers, longs, and reals). One class, Behavior, lets you treat classes as objects and is used to implement inheritance. You can use the browser to explore the class-hier- archy source code for 92 of the classes and their methods. The source for primi- tive methods is not provided. Primitive methods perform basic operations re- quired by Actor objects, and, in the inter- est of speed, are written in assembly language. Two classes, Library and Proc, let you call library procedures from Micro- soft languages such as C, FORTRAN, Pascal, and assembly language. You use the Library class to set the filename of the library, and then you add entries for each procedure in the library that you want to use. The Library class creates an instance (or object) of class Proc for each entry, which you can call by sending a pcall message to the Proc object that de- fines the procedure. Not all the classes come already loaded into Actor; in some cases, you load them into the environment when you need them. For example, to use the file editor that comes with Actor, you must load in the FileWindow class. If you want the editor to be present each time you enter Actor, you can save a copy (or snapshot) of the environment that you've built up during a session for later use. When using an editor within Microsoft Windows, such as Microsoft Write, I had to take Actor out of the system because Windows spent most of its time accessing the disk, compensating for the memory shortage. I used WordStar and PC -Write outside of Microsoft Windows, and both worked just fine. Actor is tightly integrated with Micro- soft Windows' mouse-and-menu operat- ing environment, which gives it a familiar feel to those who have used Windows. Windows is slow and ungainly on PCs and XTs, but on an AT, response was timely as long as I was running only Ac- tor and not too close to the memory limit. Actor provides a full set of interface functions to Windows. You can define windows, menus, dialog boxes, accelera- tor keys, and icons and pass information between Actor and Windows. Each win- dow becomes an Actor object, and you communicate with it and command it much as you do with any Actor object. Speed Optimizations Actor gives you the option of defining the type of a program's variable at compile (early binding) rather than at run time (late binding). By using this option, you can substantially improve a program's run-time efficiency. As an example, run- ning the Sieve of Eratosthenes with late binding took 6.6 seconds; with early binding, it took 5.4 seconds. Early binding should be used only after the application is completely de- bugged and the algorithms are optimized. You can use the class PROF. ACT to profile your application to find which functions the application is spending the most time in. Once you have isolated the heavily used functions, you can specify early binding by explicitly assigning the class of the receiving object so that the com- piler can search this class for the object pointer of the method. [Editor's note: The source code for both versions of the Sieve test are avail- able on disk, in print, and on BIX. See the insert card following page 256 for de- tails. Listings are also available on BYTEnet. See page 4.] In most languages that provide garbage collection, long pauses occur intermit- tently while the computer reclaims dis- carded memory. In Actor, however, gar- bage collection is interleaved with program execution; thus, Actor never stops for a noticeable interval. Actor's object memory is divided into static and dynamic areas. (You can adjust the size of each with parameters in the Microsoft Windows initialization file.) The garbage collector polices the dynamic memory; this memory contains volatile objects, such as strings and integers. Static memory, which contains objects such as classes, methods, and symbols, rarely changes during run time. But it may fill up during the edit/modify /com- pile cycle of code development. Then you can explicitly evaluate the cleanup ( ) ob- ject to invoke the static-memory garbage collector. The manual cautions that you should save the image of the system first; if Actor runs out of dynamic memory during the static-memory cleanup, you lose all the work done since the last snap- shot. I found this out the hard way. Using Actor Actor comes on seven 5^ -inch floppy disks. Three hold the Actor files and an installation program, and the other four hold a run-time version of Microsoft Windows. Since I already had a complete version of Windows on my PC AT, I only had to run Actor's installation program. The program transfers the files from the floppy disks to the appropriate directo- ries on your hard disk and adds Actor's static- and dynamic-memory-allocation variables to Windows 's initialization file. The process takes under 5 minutes. Actor 1.0 Type Object-oriented programming language Company Name The Whitewater Group Inc. Technology Innovation Center 906 University Place Evanston, Illinois 60201 (312)491-2370 Format Seven 5 1 /4-inch floppy disks; not copy- protected Computer IBM PC, XT, AT, or compatible with a hard disk drive, at least 640K bytes of RAM, a graphics display adapter, and a mouse Software Required MS-DOS 2.0 or higher Documentation 500-page user's guide with tutorial Price $495 with Microsoft Windows run-time support package; academic price: $99 The Whitewater Group recommends that memory-resident programs not be used with Actor or Windows and men- tions that you may have to delete device drivers and RAM disks to make enough space for Actor. The memory problems were apparent the first time I tried to run Actor: I met with a Not enough memory to run Actor message. After I deleted all the graphics drivers from my AUTOEXEC . BAT and CONFIG . SYS files, Actor loaded up. I immediately checked to see how much memory was free by using the Microsoft Windows sys- tem menu about item (the run-time ver- sion supplied with Actor doesn't have this item); only 6K bytes was left. The Actor user's guide says that when less than 10K bytes is available, Actor is running criti- cally short of memory and could crash, so I went back to my CONFIG.SYS and AUTOEXEC.BAT files and deleted the mouse drivers (superfluous under Micro- soft Windows) . I then had 40K bytes free. Finally, I deleted my RAM disk driver and 3'/2-inch floppy disk driver, render- ing my extended-memory RAM and the 3!/2-inch floppy drive useless. This freed up another 12 K bytes, making a total of only 52K bytes available. (If I'd been running an IBM EGA board instead of continued SEPTEMBER 1987 -BYTE 267 REVIEW: ACTOR 1.0 my Vega video card, roughly another 8K bytes could have been reclaimed, for a total of 60K bytes). Actor takes up over 350K bytes of memory. Adding Windows' s RAM re- quirement (about 230K bytes in my sys- tem) leaves very little for the user. Multi- tasking under Windows with Actor installed is just about impossible. Even using Windows 's spooler causes Win- dows to access the disk continuously, slowing the work pace to a crawl. Quirks Windows considerably eases the task of programming user interfaces, but it has its quirks. It is possible to move a window so that its control areas— size box, cap- tion bar, and system menu— are inacces- sible to the mouse. Then you have to re- member the keyboard equivalents to the mouse commands to get the window back on the screen. Also, Windows' s naming conventions conflict with those of Actor. Method names are lowercase in Actor unless the name is the concatenation of two English words, in which case the first letter of the second word is capitalized. Windows comes with predefined upper- case messages. In addition, Windows limits you to a maximum of five active display contexts at one time. Actor's user interface is inconsistent. In the workspace window, if you want to execute a section of code, you can posi- tion the mouse at the end of the line and press Return. However, if you do this in an editor window (the file editor or the browser), the code is not executed; in- stead, a new line is inserted. To execute code in the editor or browser, you must select the text with the mouse and click on the Doit! menu item. There is a hazard to this: Highlighting (inverse video) is used for both editing and execution. If you highlight a section of code to run it via the Doit! command and then acci- dentally type some input, the highlighted code is deleted and cannot be retrieved. There are other inconsistencies: In the workspace, you press Control-Return to insert a new line. In other windows, that does nothing. In some windows, the Con- trol-A accelerator key highlights the en- tire text; in others, it doesn't. The Select All edit menu item doesn't work at all. Neither does the Undo menu item, which the documentation says will be imple- mented in a future release. Cautions As I mentioned earlier, Actor has a few serious bugs. Once I iconized (i.e., inac- tivated) a sample window that I'd built during a tutorial exercise. When I reacti- vated it and tried to close it via the system menu Close item, I received an error message, and the machine locked up so tight I had to reboot, losing the environ- ment I'd built up during the tutorial. Another time, I ran the file editor pro- vided with Actor. I selected Actor's par- ent directory and then its parent, my root directory. When I tried to edit a file, an error window popped up with the mes- sage: Dynamic memory is full . When I clicked on its confirmation, Actor exited to Windows and its icon was deleted, and again the environment was lost. This was due to the memory limitations. On occasion, an error window would pop up claiming that Actor's stack over- flowed. If I closed Actor's windows and attempted to reload, Windows would indicate an infinite wait. I could not cor- rect this error, and the only alternative was to reboot. At other times, Actor would lock up for no apparent reason. There are a few less serious bugs, too, including odd highlighting of areas in the Actor workspace window (the White- water Group now has a patch that fixes this), incompatibilities between long and integer objects, and the printing of re- turned results in inappropriate areas of the workspace. Error messages are printed to the Actor Display window, which is over writable and not refreshed, so if you have a window overlaying the error message, you will never see it. If you move the window, the text is not re- stored. This, again, is due to the memory limitations. Other error messages, which are printed in the pop-up window, are truncated and often uninformative. When a file loads, and also when a program runs that prints out to the Actor Display window, other windows' caption lines get replicated over and over again up to the top of the display window. Once the pro- gram is loaded or finishes running, the garbage goes away. Documentation The Actor user's guide comes in a 500- page three-ring binder. It includes a re- view of all major classes; sections on memory management, calling external li- brary procedures, accessing MS-DOS and Windows functions, and building ap- plications; a class reference; a language description; a list of error messages; and a complete subcategorized index. The documentation opens with a quick section on hardware requirements and in- stallation, and then goes through a pleas- ant and thorough 74-page tutorial. The tutorial includes a short discussion of the Microsoft Windows user interface. Next is a clear description of what object-ori- ented programming is all about, includ- ing descriptions of classes, objects, methods, messages, instances, instance variables, and inheritance. This discus- sion is highlighted by a short demonstra- tion program implementing a LOGO-like turtle. The tutorial covers the use of in- spectors, browsers, some of the primary programming constructs and classes, and it closes with a demonstration of Actor's facility with windows. On the whole, the documentation is very effective. In some areas, though, it doesn't match the way the programs op- erate. The file-read method requires an integer argument, but the manual speci- fies a long-number argument in several places. Methods that the documentation says should return return their message parameters instead (e.g., the message r(90) returns 90 instead of ). Also, since Actor is case-sensitive, a user expects the documentation to be rea- sonably consistent about case. But when you type the message home (Sam), it re- turns , which is not quite the same as the documentation's . Later the manual shows that when you add an element to SortedCol- lection objects, they return the whole object. In fact, they don't; they return the element. All in all, however, even with the minor hiccups, the documentation and demonstrations are well written and pleasant to use, and they serve their purpose. Support The Whitewater Group provides three levels of support. The first (Level 0) is free access to an Actor bulletin-board ser- vice for all registered users, three calls to The Whitewater Group Technical Sup- port Hotline, a promised prompt re- sponse to mailed inquiries, and no penal- ty or charge for bug fixes or reports. The next two levels of support are $ 1 00 and $250 options. Level One ($100) sup- port provides for up to 20 free calls per year to the Hotline, up to a 20 percent dis- count on future products, free access to a special section on the bulletin-board ser- vice, which has maintenance releases and small system enhancements, and inter- face for one user representative per unit purchased, up to a maximum of three. The Level Two support plan ($250) pro- vides unlimited phone support from the Technical Support Hotline, access to a developer's workshop on the bulletin- board service, and up to five user repre- sentatives. Serious software developers should consider this option. Special sup- port plans are available for academic sites. Other Considerations As a development language for the Microsoft Windows operating environ- 268 BYTE- SEPTEMBER 1987 REVIEW: ALS PROLOG ment, Actor has the potential to be a powerhouse, but this potential won't be realized in the cramped quarters of to- day's 8088/8086/80286-based MS-DOS machines. Actor will come into its own when OS/2 becomes available or when versions of Actor are developed for fast, large-memory-space machines, like the Apple Macintosh II, Commodore Amiga, Atari ST, or 80386-based ma- chines. While it runs acceptably fast on the 80286-based PC AT, it fairly begs for expanded memory. The Whitewater Group says it plans to port Actor to multi- ple machine architectures and operating systems and to implement a standard graphics layer. The next release of Win- dows will provide for expanded memory. Although Actor 1.0 is expensive, it is also easy to learn and pleasant to use, and it provides strong development and run- time features. Actor's philosophy of ap- pealing to C and Pascal programmers just might lure proceduralists to object- oriented programming. Subsequent re- leases will probably clean up the minor documentation errors and the software bugs; until then, however, let the user beware. ■ [Editor's note: Actor version 1.1 is now available and, according to the company, is 60 K bytes smaller than version 1.0. The static garbage collector now uses the hard disk as a temporary storage device instead of the dynamic memory region, and the window class hierarchy has been revised. ] Leonard Moskowitz (0-75 Morlot Ave. , Fair Lawn, NJ 07410) heads a Research and Development group that applies arti- ficial intelligence technology to the prob- lems of maintenance and diagnostics at Allied Corporation 's Bendix Test Systems Division. ALS Prolog Alex Lane The ALS Prolog compiler from Applied Logic Systems is a Prolog language com- piler for MS-DOS computers. It is avail- able in two versions, the Professional ver- sion 1.0 ($499) and the Personal version 1 .0 ($199), and requires an IBM PC or compatible with a minimum of 256K bytes of memory and one floppy disk drive. I reviewed both packages on an IBM PC XT with 640K bytes of memory and a 20-megabyte hard disk drive. Compiling on the Fly The heart of the ALS Prolog software is ALSPRO.EXE, which reads source files and compiles them on the fly into ab- stract machine instructions. The package provides object-code files of such in- structions for the built-in predicates, a debugger, and a definite-clause-grammar (DCG) expander. The Professional ver- sion also provides source code for these predicates. The Personal version of ALS Prolog comes with a number of examples, in- cluding the eight queens problem, the missionaries and cannibals problem, and a symbolic differentiator. The Profes- sional version has a larger number of ex- amples, including a couple of expert programs. Other software in the ALS package in- cludes VI.EXE, a full-screen text edi- tor from Manx Software Systems that is similar to the Unix vi editor, and ALSKEY.EXE, a memory-resident key- board-enhancement program. How ALS Prolog Works If you've worked with traditional com- pilers, you might expect ALS Prolog to generate separate object modules that, when linked, form stand-alone programs independent of the ALS software. How- ever, this is not the case. The ALS Prolog compiler is an incre- mental interactive compiler, which means that when you consult Prolog source files, ALS Prolog reads in the consulted files statement-by-statement and compiles them into an intermediate code (as opposed to native 8086 machine language). When compilation is com- plete, the predicates of the consulted file are represented as a series of instructions for an abstract Prolog machine; these in- structions are executed when you run the program. The result is a Prolog imple- mentation that feels like an interpreter yet appears to run much faster than an inter- preter, due in part to efficient garbage collection. A major disadvantage of using inter- mediate code is that if you plan to sell Prolog applications written with the ALS compiler version 1.0, each of your cus- tomers must have a copy of the compiler; the intermediate code won't run without it. Furthermore, there is no way to hide predicates, so the source code for your application is available to anyone with a rudimentary knowledge of Prolog. ALS automatically saves the abstract object code generated by the compiler in a file with an .OBP extension (unlike the .OBJ extension for object files in other languages) for future loading. If you make no changes to the source file, ALS saves compilation time by directly load- ing the object file the next time you con- sult the source file. A make-like facility that is transparent ALS Prolog 1.0 Type Programming language Company Applied Logic Systems Inc. Box 90, University Station Syracuse, NY 13210 (315)471-3900 Format One (Personal version) or two (Professional version) 5 1 /4-inch floppy disks Computer IBM PC, XT, AT, or compatible with at least 256K bytes of memory (51 2K bytes recommended for Personal version) and one floppy disk drive (hard disk drive recommended for Professional version) Software Required PC-DOS/MS-DOS 2.0 or higher Compatible Software Aztec C86 C compiler, version 3.2 Documentation ALS Prolog Technical Reference Manual; Prolog Programming for Artificial Intelligence by Ivan Bratko (Reading, MA: Addison-Wesley, 1986) Price $499 (Professional version) $199 (Personal version) to the user decides whether to load exist- ing .OBP instruction files or to read in and compile new source code. Its deci- sion is based on the DOS date-time stamp on the file, so if you are one of those who never enter the correct date and time on continued SEPTEMBER 1987 -BYTE 269 8087 Potpourri COPROCESSORS 8087 5 MHz $99 For the IBM PC, XT and compatibles 8087-2 8 MHz $154 For Wang, AT&T, DeskPro, NEC, Leading Edge 80287-3 5 MHz $159 For the IBM PC AT and 286 compatibles 80287-6 6 MHz $179 For the 8 MHz AT and compatibles 80287-8 8 MHz $259 For the 8 MHz 80286 accelerator cards and Compaq 386 80287-10 10 MHz $395 80387-16 16 MHz $495 INTEL INBOARD $1250 All MicroWay 8087s include a one year warranty, complete MicroWay Test Program and installation instructions. 64K DRAM 150ns $10 256K DRAM 150ns $29 PC-PAL Programmer $395 287Turbo™-10/12 _ Boost your 80287 speed with 287Turto and AT speed with 287TurboPlus. 1 00% software compatible. See our full color ad on page 1 1 4 for details. REVIEW: ALS PROLOG ' C1 ( UA __ 287Turbo 10 MHz $450 12 MHz $550 287TurboPius 10 MHz $549 12 MHz $629 PC Magazine "Editor's Choice" 8087 SOFTWARE MICROSOFT QUICK BASIC $79 87BASIC COMPILER PATCH $150 87BASIC/INLINE $200 87MACRO/DEBUG $199 MICROSOFF FORTRAN V4 $299 RM FORTRAN $399 LAHEY FORTRAN F77L $477 GRAFMATIC Graphics $125 MS or LATTICE C CALL STSC APL*PLUS/PC $450 STSC STATGRAPHICS $675 87SFL Scientific Functions $250 87FFT $200 OBJ —ASM $200 PowerDialer for 1 -2-3 $79 EPSILON EDITOR $169 Call for technical information and our complete catalog. Micro INay : f| P.O. Box 79 L^Kingston, Mass. 02364 USA (617)746-7341 your PC as you boot and reboot your sys- tem, beware. It is entirely possible for the ALS program to ignore your most recent changes to a Prolog source file and load old object code that has a "fresher" date. ALS Syntax By and large, ALS Prolog implements the standard Prolog syntax found in C- Prolog and Edinburgh Prolog, as pub- lished in Programming in Prolog by W. F. Clocksin and C. S. Mellish (New York: Springer- Verlag, 1982). ALS's one major extension (besides the use of uninterned atoms, discussed below) is the implementation of modules to support good software-engineering practice. The use of modules lets you isolate some pro- cedures from others by judiciously plac- ing them in separate modules with appro- priate use declarations and export declarations. After working with the software, I concluded that, aside from a few added features, such as an interface to the Aztec C compiler, the Professional version of ALS Prolog is basically the same pro- gram as the Personal version. One major difference, however, is that the Profes- sional version supports both interned and uninterned atoms, while the Personal version supports only interned atoms. Thus, in the Professional version, atoms that seldom appear in the program text can be stored on the Prolog heap in mem- ory instead of in the symbol table, there- by conserving valuable space in the table. Another difference is that the Profes- sional version has predicates that invoke the ROM BIOS services as well as the BIOS keyboard services. This gives pro- grammers an opportunity to write proce- dures to manipulate the user's screen. The biggest extra in the Professional package, however, is the ability to utilize the $icode/4 predicate to access the code generator for the abstract machine in- structions. This lets programmers experi- ment with compilation on the abstract machine or compile "roll-your-own" clauses. The ALS Prolog manual con- tains several examples of the use of the $icode/4 predicate, and several more appear in the accompanying source files. Documentation: Thin but Adequate The basic ALS package consists of a three-ring IBM-style binder containing printed documentation, one disk of soft- ware for the Personal version or two disks for the Professional version, and a card entitling you to a free copy of Ivan Bratko's Prolog Programming for Artifi- cial Intelligence (Reading, MA: Addi- son-Wesley, 1986). [Editor's note: See Alex Lane 's review of Ivan Bratko *s book in the August issue of BYTE. ] The core section of the ALS documen- tation is about 60 pages long, and most of those pages are devoted to a terse descrip- tion of the language syntax and the built- in predicates. Another dozen or so pages discuss the example programs that come with the package. If you consider that ALS intends Ivan Bratko's book to serve as a language tutorial, the documentation is adequate. The Professional version's documenta- tion contains additional pages that discuss the use of the $icode/4 predicate, the in- terface to the Aztec C compiler, and the extra example programs. Both versions include approximately 60 pages of docu- mentation on the VI. EXE editor. Page 101 of the Professional version manual catalogs a raft of arcane limita- tions for the package— compiled code is limited to 48K bytes, functors are limited to 15 arguments, the symbol table is limited to 907 entries, and so on. Other limitations were not included in the man- ual. For example, I learned early on to be leery of floating-point operations in ALS Prolog, such as C isl.O, D is C/3. 14159, EisD/28, F is E*3- 14159, G is F*28, C=: = G. This would very likely fail, because the actual value of G is something like 1.0000000000000001, rather than 1.0. However, the debugger would display 1 =:= 1 ? and then calmly announce the failure of the test. This is a problem, because 1 =:= 1 must be true. I liked the compact debugger imple- mented in ALS Prolog. It has the stan- dard trace/1 and spy/1 predicates and a leash/1 predicate, which controls the debugger's prompts at the call, redo, fail, and exit ports. Editor Interface The ALS package comes set up with the VI. EXE editor, although you can. change the default editor using the change_ editor/1 predicate. Thereafter, typing edit suspends operation of the ALS package and lets you use the default editor to edit whatever file you've indicated. If you don't supply a filename, the editor will call up the last file that you edited. Upon leaving the editor, ALS Prolog "reconsults" the file you are working on; 270 BYTE* SEPTEMBER 1987 REVIEW: ALS PROLOG that is, any predicates in that file over- write existing predicates in memory. If the system finds any syntax errors while reconsulting the file, it flags them and displays the line number of the error on the screen. As with most compilers, this line number is only approximate. It re- flects the line where the error was de- tected, which is not necessarily where it actually occurred. Benchmarking ALS Prolog I performed a series of benchmarks simi- lar to those previously carried out on Bor- land's Turbo Prolog (see page 295 in the September 1986 BYTE). I did not mea- sure the time required for compilation of code in memory, since this time never ex- ceeded 10 seconds and usually was too short to be noticeable. For the sake of comparison, I also ran the tests on ver- sion 1 . 1 of Turbo Prolog. The results are shown in table 1 . The Math Functions test measures how fast Prolog can calculate the square root, natural logarithm, exponential, arctan- gent, and sine of a fixed argument 1000 times. The Floating Point test repeats a series of four basic operations 5000 times, while the Sieve extracts the prime numbers between 1 and 100. The Disk Read and Disk Write tests are Prolog implementations of the standard BYTE benchmarks and measure the time required to perform the respective tasks 512 times on 12 8-byte atoms. In my opinion, these benchmarks are of limited value because the power of Prolog lies not in how fast it can calculate a transcendental function or in how quickly it can isolate primes, but in how rapidly it can manipulate symbols and make inferences. The conclusion to draw from these particular benchmarks is: If continued Table 1: Results < of the benchmark tests run on the ALS Prolog Compiler and Arity Prolog. Tests were conducted on an IBM PC XT with 640K bytes of memory and a 20 -megabyte hard disk drive. All times are in seconds. Test ALS Prolog 1.0 Turbo Prolog 1.1 List Reversal 13.79 11.27 Floating Point 201.91 30.83 Sieve 6.7 2.89 Math Functions Sqrt 30.81 5.19 Logs 31.25 13.58 Exp 29.0 24.24 Atan 30.21 15.46 Sin 35.05 16.18 Factorial 34.6 21.86 Tower of Hanoi 5 rings 4.18 2.69 7 rings 19.06 10.87 10 rings 153.13 87.71 Disk Write 29.05 29.73 Disk Read 29.39 15.85 Nothing Should Come Between Mainframe Mag Tapes and Your dBASE or Lotus Except Telebyte Tape Drives TDX Mag 9-track 1/2" Tape Systems from Telebyte provide faster, error-free download- ing of mainframe data into your PC. You con- trol the start-stop tape drive either from the keyboard or with Telebyte's exclusive Data- verter software for faster file transfer — the equivalent of a 720,000 bit/second datalink. Telebyte TDX tape drives are available at either 45 or 75 ips, feature dual density (800/1600 bpi) storage and back up process- ed files at 2 MB/minute (up to 10 times faster than other 9-track drive systems) as a bonus. Enter data into dBASE® and Lotus® with no user programming. You do it in two easy steps because Telebyte's exclusive Dataverter runs under both DOS 2.0 and Xenix." Dataverter will automatically convert packed, zoned and unsigned decimal field files, as well as labeled tapes, from EBCDIC to ASCII. The tape system is also supported by software lan- guages in your PC, including C, BASIC, Fortran, Cobol.etc. Only Telebyte offers such mainframe stand- ards of reliability and IBM-compatible tape drive quality for so little money. "™f SSfWTS GSA Contract Number GS00K86AGS5301 technology, inc. 1 -800-835-3298 Telebyte Technology, Inc. • 270 E. Pulaski Road • Greenlawn NY 11740 • (516) 423-3232 dBASE* is a registered trademark of Ashton-Tate, Inc.; Lotus* is a registered trademark of Lotus Development Corporation; IBM* is a registered trademark of International Business Machine Corporation; Xenix'" is a registered trademark of Microsoft. Inquiry 290 SEPTEMBER 1987 -BYTE 271 REVIEW: ALS PROLOG you want a language that's suitable for numerical analysis, Prolog isn't it. Other tests, however, do provide some evidence of the package's performance. These include the Factorial test, which uses simple recursion to measure how fast 10! can be calculated 1000 times; the List Reversal test, which measures the time required to reverse a list of 50 inte- gers 30 times; and, to a lesser extent, the Tower of Hanoi program, which per- forms recursion and screen output. I also performed the Peak System Per- formance and Nondeterministic Behavior benchmarks from the Logic Program- ming Group and the Computer Architec- ture Group of the European Industry Re- search Center in Munich. The Boresea performance benchmark consists of a se- quence of 200 predicates having no argu- ments and no choice points. The results show the effect of pure calls, and the KLIPS (thousands of logical inferences per second) figure gives a rough idea of peak system performance. ALS Prolog ran 1000 iterations of the Boresea test in 5.66 seconds and performed 35.33 KLIPS. The Choice Point benchmark tests calls that invoke the creation of a branch point to which execution may pos- sibly backtrack. The compiler ran 100 it- erations of this test in 0.37 seconds and performed 5.40 KLIPS. [Editor's note: The benchmark pro- grams are included in the file ALS- PRO. TXT, which is available on disk, in print, and on BIX. See the insert card fol- lowing page 256 for details. Listings are also available on BYTEnet. See page 4. You will need an IBM PC and ALS Prolog or another compatible version of Prolog to run the tests.] ALS Prolog Version 1.1 Although the upcoming release of ALS Prolog version 1 . 1 was not part of the for- mal review, I did discuss it with Applied Logic Systems. Version 1.1 addresses some of the shortcomings of the current package, and the company said that all owners of version 1.0 will receive a free upgrade to 1 . 1 . As mentioned earlier, in version 1.0 the size of the compiled code is limited to approximately 48K bytes. According to the company, version 1.1 implements a virtual-memory scheme that will let you write much larger programs. Version 1.1 will also let you create stand-alone . EXE files and allow predicates to be hidden. In addition, an interface to the Microsoft C compiler will be provided. Finally, the company told me that ad- ditional predicates will implement DOS function calls and destructive assign- ments (along the lines of LISP's RPLACA and RPLACD) to permit creation of Pascal- like data structures. Nice Product, Some Shortcomings ALS Prolog is a comfortable, competent package to work with. ALS's confor- mance to the Edinburgh syntax means that you don't have to master a "new, im- proved" variation of the language. Com- pilation is pretty much transparent to the user; if I hadn't been told that ALS Pro- log was a compiler, I'd have assumed from the interactive response that it was an interpreter. Two features I particularly liked were the editor interface and the compact debugger. In general, I liked the ALS Prolog compiler, but I think version 1.0 has too many shortcomings— such as the inabil- ity to develop salable applications and the limited clause space of 48K bytes for compiled code— to be worth the price. ■ Alex Lane (Reynolds, Smith and Hills, P.O. Box 4850, Jacksonville, FL 32201) is a senior software engineer and moder- ator of the Prolog conference on BIX. 12 MHz— NO WAITING! Introducing the DP12/0 High Performance 100% AT Compatible Motherboard. True Zero Wait-State design increases throughput up to 30% over competing products. The DP12/0 design is optimized for demanding engineering and scientific applications... e.g. AutoCAD, Fortran. •8/12 MHz Zero Wait-State 80286-12 CPU-Fastest '286 performance available. • 1 Mbyte CMOS Zero Wait-State RAM. • 80287 Math Co-Processor socket with independent clock allows full 10 MHz 80287-10 operation. ZyMOS POACH/AT CMOS chip set reduces chip count for improved reliability and reduced power consumption. 8 expansion slots (6-16, 2-8 bit) with 8 MHz I/O clock to ensure reliable expansion board operation. AWARD BIOS with built-in setup utility. Quiet, fully socketed, multi-layer board design. 16 MHz ready. CMOS Clock Calendar/ Configuration File. 1 Keyboard Controller. • Made in U.S.A. > One Year Warranty. For evaluation, dealerand OEM pricing, contact: *' DISKS PLUS, INC. 356 Lexington Drive Buffalo Grove, IL 60089 WT Telex: 650 249 2139 MCI UW Fax: (312) 537-8331 Technical and more info: (312) 537-7888 To order: 1 800 752-DISK Trademarks: IBM PC-AT, International Business Machines Corp.; AutoCAD, Autodesk, Inc.; Poach/AT. ZyMOS Corporation. DISKS PLUS Microcomputers & Peripherals Also refer to our ad, page 335 272 BYTE- SEPTEMBER 1987 Inquiry 80 Select 5 Books for only $3 95 Please accept my membership in The Computer Book Club® and send the 5 volumes listed below, billing me $3.95 plus shipping and handling charges. If not satis- fied, I may return the books within ten days without obligation and have my membership canceled. I agree to purchase 3 or more books at regular Club Prices (plus shipping/handling) during the next 12 months, and may resign any time thereafter. Write your selections here: Name Address City _ State/Zip Phone Valid for new members only. Foreign applicants will receive special ordering instructions. Canada must remit in U.S. currency. This order subject to ac- ceptance by The Computer Book Club' 11 . BY-987B iy: ;iii|ii:i in 1 . ;ii'i P.O. Box 80, Blue Ridge Summit, PA 17214 ^ Select 5 Books for only $3 95 ENROLLMENT APPLICATION Please accept my membership in The Computer Book Club® and send the 5 volumes listed below, billing me $3.95 plus shipping and handling charges. If not satis- fied, I may return the books within ten days without obligation and have my membership canceled. I agree to purchase 3 or more books at regular Club Prices (plus shipping/handling) during the next 12 months, and may resign any time thereafter. Write your selections here: Name Address City _ State/Zip Phone Valid for new members only. Foreign applicants will receive special ordering instructions. Canada must remit in U.S. currency. This order subject to ac- ceptance by The Computer Book Club' . BY-987A SITia Junpufar Ege^ Sliff P.O. Box 80, Blue Ridge Summit, PA 17214 00 o < 0c< < oo Q W W H * oo O a* 00 W u < Zpq O z Wuu ~H z 1—1 Z 3 -s- fN r- J < PL. HH {-' ^ s s 5 00 ^ W G J Q 5 W Cm rvi D J f^ CO P*4 o^ ITl O in z h*H 5 ^f Dm* W HH a. an 00 P < PQ U H 00 0* PL w © iJJ pfi 00 ■/3 a: 5 00 OS OS 1 n i-H < pM n >+ o OQ o Q PQ < &H < Oh u ■*■* PU OQ , 1 S E E % S o 00 PU o o WD a U IS < « tf oo a> . O Qm pS q j3 H cC 5 00 TAGE SARY ILED HE STATE £2 oo < W G hJ Q Ph UJ TtI D J pj CQ p*4 On CD O Cfl 2 E- p-H 5; ^f Cm PQ HH PL. on 00 P < _] PQ U H 00 OJ u. UJ © uu A 00 00 PJ OCh Q s 00 OS OS 1 Tf a i-H < -^ o OQ o Q PQ < < Qh u +J* PJ m E J 3 E J Pm 3 £ E o 00 PJ o © CQ COD a < U 5 oo a> , a> 5 O CL 43 O H cC 5 Increase your knowledge about all aspects of computers An absolutely no-risk guarantee, i p Select 5 Books for only $3 More programs, projects, and ways to use your micro. Keep well-informed about the latest books available—and get discounts of up to 50% off the publishers' prices! ■ LOTUS 1-2-5 SIMPUflED inauwiM vwswn 2.0 COBOL-I GRAPHICS PROGRAMS IBMJPC' HH « (•HE LANGUAGE^^ OFBUSJNJESS^M 1990 $24.95 1556P $15.50 1848P $15.95 1939P $17.95 2754 $28.95 Counts as 2 2627P $17.95 2870 $24.95 C FUNDAMENTALS OF ' IBM PC dBASE PLUS ^^'■ta!^M ,\ppli, Jh*h far S POWER- ' TURBO PROLOG, TM Neural Ur#»* °' Artificial inteKtg*"" 1710P $15.50 2808 $27.95 Counts as 2 MON EY MANAGEMENT WORKS HEETS NETWCRKHSKa I WTHTE ens TGKEN-RINS TRUE BASIC A COMPLETE MANUAL databases theory practice 2600 S28.95 Counts as 2 PROGRAMMING WITH PARADOX 2906P $19.95 1921P $15.95 1993 $21.95 2831 $22.95 2688 $26.95 Counts as 2 SYSTEMS mmmar WORKSTATIONS j STBATffllS fScrnm ■■■•■ Si py 2833 $21.95 2738 $29.95 Counts as 2 ~-"^v '-*...' IComputer SgCareer^ 5 Guided 2757 $24.95 (Publishers' Prices Shown) 1894 $22.95 2771 $25.95 If card is missing, use this address to join: THE COMPUTER BOOK CLUB® P.O. Box 80, Dept. BY-987, Blue Ridge Summit, PA 17214 Inquiry 59 All books are hardcover editions unless numbers are followed by a P for paperback. Tfta JcmpLiar Ecc^ W\\h" Membership Benefits • Big Savings. In addition to this introductory offer, you keep saving substantially with members' prices of up to 50% off the publishers' prices. • Bonus Books. Starting immediately, you will be eligible for our Bonus Book Plan, with savings of up to 80% off publishers' prices. • Club News Bulletins. 14 times per year you will receive the Book Club News, describ- ing all the current selections— mains, alternates, extras— plus bonus offers and special sales, with hundreds of titles to choose from. • Automatic Order. If you want the Main Selection, do nothing and it will be sent to you automatically, /f you prefer another selection, or no book at all, simply indicate your choice on the reply form provided. As a member, you agree to purchase at least 3 books within the next 12 months and may resign at any time thereafter. • Ironclad No-Risk Guarantee. If not satisfied with your books, return them within 10 days without obligation! • Exceptional Quality. All books are especially selected by our Editorial Board. SEPTEMBER 1987 -BYTE 273 SR^g r% M ^^^to+to^^ ■W PeterNortDn newpnqgrammi whohafe Guides The ultimate productivity tool for programme^.* Puts volumes -, j*7 of cross-referenced data * Jg« ^ finoertios ■ Replaces most manual keystrokes. ■ Includes compiler for creating your own databases. 1 B Also available in versions for BASIC, C and Pascal. For the complete IBM* I mpatibtes. Nobody ever said programming PCs was supposed to be easy. But does it have to be tedious and time- consuming, too? Not any more. Not since the arrival of the remarkable new program on the left Which is designed to save you most of the time you're currently spending searching through the books and manuals on the shelf above. The Norton On-Line Programmer's Guides™ are a quartet of pop-up reference packages that do the same things in four differ- ent languages. Each package consists of two parts: A memory-resident Instant Access™ program. And a comprehensive, cross-referenced database crammed with just about everything you need to know to program in your favorite language. And when we say everything, we mean everything. Everything from information about language Designed for the IBM® PC, PC-AT and DOS compatibles. Available at most software K. • 1 announces a ng tool for people manual labor. syntax to a variety of tables, including ASCII characters, line draw- ing characters, error messages, memory usage maps, important data structures and A Guides reference summary screen (shown in blue) pops up on top of the program you re working on (shown in green). more. How much more? Well, the databases for BASIC, C and Pas- cal give you detailed listings of all built-in and library functions. While the Assembly database delivers a com- plete collection of DOS service calls, interrupts and ROM BIOS routines. You can, of course, find most of this informa- tion in the books and manuals on our shelf. But Peter Norton— who's written a few books himself —figured you'd rather have it on your screen. In seconds. In full-screen or moveable half-screen mode. Popping up right next to your work Right where you need it Summary data expands on command into extensive detail. And you can select from a wide variety of information. This, you're probably thinking, is precisely the kind of thinking that pro- duced the classic Norton Utilities:" And you're right But even Peter Nor- ton can't think of every- thing. Which is why there's a built-in compiler for creating databases of your own. And why all Guides databases are compatible with the Instant Access program in your original package. So you can add more languages without spend- ing a lot more money. To get more information, call your dealer. Or call Peter Norton at 1-800-451-0303 Ext 40. And ask for some guidance. CSeftr Norton COMPUTING dealers, or direct from Peter Norton Computing, Inc., 2210 Wilshire Blvd., #186, Santa Monica, CA 90403. 213-453-2361, Fax 213-453-6398, MCI Mail: PNCI ©1987 Peter Norton Computing Inquiry 230 for End-Users. Inquiry 231 for DEALERS ONLY. aBte itfmatm (Wtt) darily ferny this ought to clear tilings up. DISTRIBUTED BY KARL-LORIMAR HOME VIDEO IN ASSOCIATION WITH FORUM ENTERTAINMENT. Choose Business Week Video Magazine's "How to Benefit From Tax Reform". Why? That's simple. It's co-hosted by Dr. Arthur Laffer, one of the fathers of tax reform, and an economic advisor to the President. And Business Vteek Editor William Vtolman. So pull up your chair. And let a panel of America's top tax and investment experts tell you what they know. With candor. Commentaries. Interpretations. The hour will fly by. With clips from the past. Tips for the future. And most important, what you can do to start benefiting now! Also included, get the "Business Week Personal Tax Planning Guide" -a comprehensive 48 page guide, prepared by Deloitte, Haskins & Sells- that complements the video. And helps you forecast your own 1987 and 1988 taxes. Everything you need to know about tax reform. With that same insightful analysis that made Business Week the number one business magazine. The choice is clear. You can get your video somewhere else, but then it wouldn't be from Business Vteek. To order now, just call toll-free: 1-800-523-5503 today. (In Illinois, call 1-312-250-9292.) Or clip and mail in the coupon below. □ YES! Rush me How to Benefit from Tox Reform and my Business Week Personal Tax Planning Guide for only $29.95 plus $3.25 shipping & handling (Illinois residents add 7% sales tax). Check one: Send □ VHS □ BETA □ My check (payable to Business Week Video) is enclosed. Charge my Q American Express Q Visa □ Mastercard Exp. Date Signature Name (please print) Address City Zip Clip and Mail Today to: Business Week Video Magazine, PO Box 62 1 , Elk Grove, IL 60009 276 BYTE- SEPTEMBER 1987 APPLICATION REVIEWS □ Benchmarking dBASE III Plus Compilers Malcolm C. Rubel Quicksilver 1 . 1 from Wordtech Systems and Clipper (Autumn 1986 version) from Nantucket, two true compilers, and Fox- BASE + 2.00 from Fox Soft- ware, a pseudocompiler, are all unique implementations of the dBASE III language. Each is a subset of the dBASE III Plus language as defined by Ashton-Tate, and each program has some commands, functions, and capabil- ities that are not contained in the other packages. These three compilers are also super- sets of dBASE III Plus, because each con- tains features that are not available in dBASE III. These programs take dBASE III instructions and compile them into more compact code that takes up less memory space and executes faster. Com- paring these compilers to dBASE III is therefore a more complex task than sim- ply measuring speed differences. Each program has its own strengths and weak- nesses when compared to dBASE III Plus and to each other. Each of these products supports net- working. The network support is in- cluded with Clipper and Quicksilver; with FoxBASE + , it costs an additional $200. Neither Nantucket nor Fox Soft- ware will say what local area networks their compilers will run on; they will only say that their compatibility relies on the LAN's proper adherence to using DOS function calls. Wordtech says that Quicksilver will run on the Novell, IBM, and Software 2000 LANs. All three products support record- and file-locking, exclusive file use, and printer commands. Quicksilver also has an Automatic mode that lets applications run on a LAN without the user's having to go in and do all the programming manually. Clipper and Quicksilver, the two true compilers, have the ability to integrate unique functions into applications com- piled with their libraries. You can write the functions in dBASE, C, or assembly language and then link them to the appli- Three packages that have extended features as well as a speed advantage cation when the load module is assem- bled. You can even include these routines in the working .PRG files or develop them as separate object modules. This capability gives both programs a decided edge over dBASE III Plus and FoxBASE + , in that you can develop or purchase custom extensions to the language for a specific purpose and include them as an integral part of the application. To do this with dBASE III, you must fudge some of these features as a part of a procedure file or purchase one of the add- on packages that will enable you to gain access to the functions. Tom Rettig's Li- brary (which is available in Clipper and dBASE III editions) and the dBASE Tools for C package enable you to perform this type of function, but both require you to use more programs and more memory. If you intend to distribute your final appli- cation, this also adds more files and more cost for the end user. One negative aspect of both Clipper and Quicksilver is that neither permits access to the dBASE III Plus full-screen functions, including APPEND, BROWSE, CHANGE, and EDIT. This means that you must spend time programming replace- ments for these functions if you need them. This is not as great a loss as it would seem, however, as commercial- quality applications should not be using these functions anyway because they per- mit unrestricted access to the database without any edit checks. support, some new commands, and a better memory-manage- ment capability that includes support for expanded memory. Nantucket says that Clipper- compiled programs can use up to 1 megabyte of RAM for in- dexing, although I did not test this. In certain situations with large indexes, this should substantially improve the prod- uct's indexing speed. Of the three compilers, Clipper is probably the least compatible with dBASE III Plus. Several commands, in- cluding box commands, READKEY, and Return to Master, are either not sup- ported by Clipper or are supported in a different manner than that of dBASE III Plus. Clipper also has many commands and functions that are not available in dBASE III Plus. These include special help capabilities, memory variables, the ability to open multiple parent-child rela- tionships at once, special menu-creation commands, the SAVE SCREEN command, arrays, FOR. . .NEXT loops, and the VALID function, to name a few . The differences between Clipper and dBASE III can make Clipper more versa- tile than dBASE III, but they also make programming more difficult, as most people would use dBASE III for program development and then compile their applications with Clipper. Nantucket supports a CLIPPER public variable that enables developers to include Clipper- specific code in their development files that does not run when the file is executed on an interpreter such as dBASE III Plus. Unfortunately, as soon as you start in- cluding some of the more powerful Clip- per commands, you must start writing continued Clipper Nantucket's Clipper, the first of the na- tive-code dBASE compilers, was re- leased over two years ago and has under- gone four major revisions. The current release, which is simply called the Autumn 1986 version, includes network Malcolm C. Rubel is president of Per- formance Dynamics Associates (305 Madison Ave., New York, NY 10165), a consulting firm specializing in office sys- tems, and author of Programming the dBASE III Plus User Interface (Bantam Books, 1987). SEPTEMBER 1987 -BYTE 277 REVIEW: DBASE III PLUS COMPILERS Clipper (Autumn 1 986 version) Quicksilver 1.1 FoxBASE + 2.00 Type dBASE compiler dBASE compiler dBASE pseudocompiler Company Nantucket Inc. Wordtech Systems Inc. Fox Software Inc. 12555 Jefferson Blvd. P.O. Box 1747 27493 Holiday Lane Los Angeles, CA 90066 Orinda,CA94563 Perrysburg, OH 43551 (213)390-7923 (415)254-0900 (419)874-0162 Format Three 5 1 /4-inch floppy disks Eight 5 1 /4-inch floppy disks Two5 1 /4-inch floppy disks Computer IBM PC or compatible with at least IBM PC and mostother MS-DOS IBM PC or compatible with at least 256K bytes of RAM to compile computers with at least 256K bytes 360K bytes of RAM, two floppy disk programs, two floppy disk drives of RAM, two floppy disk drives drives (hard disk drive recom- (hard disk drive recommended), (hard disk drive recommended), mended), and DOS 2.0 or higher and DOS 2.0 or higher and DOS 3.1 or higher Language C C C Documentation User's manual, 200 pages User's manual, 452 pages User's manual, 350 pages Price $695 $599 Single-user version: $395 Multiuser version: $595 Single-user run-time: (10/unlimited) $300/ $500 Multiuser run-time: (10/unlimited) $500/ $700 code solely for Clipper, because the code differences between Clipper and dBASE III quickly become a burden. Clipper also supports many of dBASE Ill's functions in a slightly different man- ner than dBASE III does, so you must learn a slightly different language if you want to compile your applications with Clipper. For example, the Clipper VALID function as a part of the PICTURE tem- plate language provides a way for you to program direct access to HELP, lookup tables, or to other programs during the middle of a READ; dBASE III does not support this feature. To use the feature, you must learn how to program this func- tion for Clipper, as well as how to write code that will execute under dBASE III during program development. While there is a tremendous amount of information in the Clipper user's manual, it is sometimes not easy to find what you need (even with the index), and then you must read the information carefully. Nan- tucket should do some work to make the manual a more usable document. The manual is split into two different sections: the basic manual and the Autumn 1986 update. For a compiler that costs close to $700, it is not too much to expect a better- quality manual. Clipper comes with a custom version of Phoenix Computer Products' Plink86, so you can compile applications that are too large to fit into RAM as overlay pro- grams. Unless you need to use the overlay capabilities of Plink86, however, the DOS LINK program supplied with MS- DOS works just as well and is quicker. I used DOS LINK as a linker for Clipper for all the benchmark tests. Unless specifically told otherwise, Clipper compiles the named program and all called programs into a single object file. You can then link that object file or files with the Clipper library to create an executable load module. Clipper lets you compile separate specified object mod- ules using a special compiler file with a .CLP extension. Clipper will then com- pile only those files you specify. This feature can be used for reducing compile times during debugging and for creating overlays. By press time, Nantucket had not yet released its Spring 1987 version of Clip- per. I called the company, however, and received a description of the latest ver- sion 's new features and enhancements. Nantucket says it has improved Clipper's indexing speed due to recoding and com- patibility. Clipper indexes can be either Clipper- or dBASE-compatible. The compiler's sorting speed has also been improved due to recoding. The Spring 1987 version of Clipper also has a number of new commands. The SET S0FTSEEK ON/OFF command allows "relative" seeking (i.e., if a record is not found, the pointer is set at the next logical record). The SET CURSOR command turns the cursor on or off, SET MESSAGE TO [CENTER] centers a message on the specified line, and the MEM0LINE and MLC0UNT functions can format a memo for printing. In addition to these functions, the latest version of Clipper has a number of file-handling functions that are compatible with DOS 3.3 . The program now provides for more than 150 open files and can handle strings up to 64K bytes long. Quicksilver 1.1 Wordtech Systems advertises Quicksilver 1 . 1 as the first dBASE III Plus compiler. The compiler supports the dBASE III Plus language more closely than Clipper does, but if you use the full capabilities of Quicksilver, it is not compatible with dBASE III either. Although version 1.1 of Quicksilver is more compatible with dBASE III Plus than the original version was, it also implements some commands that take it further away from dBASE III Plus. Quicksilver 1.1 supports FOR. . .NEXT loops and has an excellent help function that is part of the @ GET command. A set of AUT0MEM functions provides a mecha- nism for creating, loading, and clearing memory variables with the same names as field variables, as well as replacing data-table fields with the contents of these memory variables. Several of Quicksilver's functions bring it much closer to the extended capa- bilities of Clipper. The SET ORDER TO function enables you to have more than one index active at a time, FR0W ( ) and FC0L( ) position the cursor in an alternate 278 BYTE* SEPTEMBER 1987 REVIEW: DBASE III PLUS COMPILERS file, CENTER( ) centers text, and PRINTER ( ) tests whether the printer is on-line. The PROPER ( ) function capital- izes the first letter of a character string, SELECT ( ) returns the current work area, SKIP (alias) moves the pointer in open tables without requiring you to first select them, and SLEEP ( ) pauses the program for a specified length of time. The cost of all these improvements is increased code size and longer sort times. The minimum native-code .EXE file has grown from 126K bytes for Clipper 1 .0 to 167K bytes for version 1 . 1 , an increase of 41K bytes, or 32.5 percent. In addition, sorting times have nearly doubled. How- ever, since sorting is seldom necessary on large applications and because alterna- tives are available, longer sort times are not a serious drawback. The main difference between dBASE III Plus and Quicksilver is Quicksilver's use of windows. Quicksilver has a com- plete set of window commands that allow the developer to define and display up to 99 different windows on the screen at any one time. This opens up virtually limit- less possibilities for help screens, menus, and the like. One of the nice things about this window capability is that it is fully supported by Wordtech System's dBASE interpreter, dBXL, which sells for $169. These two programs in tandem make an interesting and cost-effective develop- ment pair. Quicksilver 1 . 1 's revised user's man- ual is well thought out and well put to- gether. The discussion of overlay strate- gies is excellent and informative. I found that as I went through the manual, I learned things that were unrelated to what I was looking for, but helpful nonethe- less. Quicksilver takes a different approach to compiling than Clipper does. Instead of compiling a single object module, which is then linked into an .EXE file, Quicksilver compiles two different types of programs. The first type is what Wordtech calls a compiled d-code program. The "linker" (not to be confused with a native-code linker) creates three files: an .EXE file, an .OVL file, and a .DBC file. These three files execute as a stand-alone appli- cation, requiring a minimum of 256K bytes of memory. You can compile or re- compile the Quicksilver intermediate- stage program much faster than you can when using Clipper. This compiled pro- gram does not execute as fast as the fin- ished native-code (or "optimized" in Wordtech 's terminology) .EXE file, nor does it support more than 256 memory variables, but it supports UDFs and serves as an excellent vehicle for program development and debugging. Quicksilver does not come with a linker. Wordtech Systems suggests that you use the DOS LINK program, which is fine, unless you must create overlays. Quicksilver supports Plink86, but you must buy it separately from Phoenix Computer Products for $495 . FoxBASE + 2.00 FoxBASE + 2.00 from Fox Software is not a true compiler, but rather an inter- preter of tokenized code. The latest ver- sion has automatic memory management and allocates all available memory, in- cluding up to 64K bytes of expanded memory. This is a boon to developers whose code must run on different types of machines. FoxBASE + adjusts itself to the machine's available memory when it is loaded and optimizes its performance for that environment. If the environment changes (due to activating a spooler, for example), you no longer have to change the CONFIG. FX file. Version 2.00 of FoxBASE + requires only 360K bytes of memory (versus the 375K bytes needed for version 1.21), and continued You'll also appreciate the shirt itself: a heavyweight cotton/polyester blend which combines tough washability with the cool, softcomfortof cotton. Each Byte T-shirt is priced at only $12.50 ($1 1 .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), and XL— (46-48). Most orders shipped within a week. #T1 — Computer Engineering #T5— Breakthrough Send the following T-shirt(s) at $12.50 each, or St 1.50 each for 3 or more. 1 have included $2 f orshipping & handling ($5 overseas). QTY. # TITLE AMOUNT Shlppln g & handling (see above) D Pleaaesand your COLOR brochuto TOTAL $ G I have enclosed U.S. check or money order. □ COD. (via UPS— stateside orders only) □ VISA □ MasterCard □ American Express Ship my shlrt(s) to: (Business): Address: City: State: mail this coupon to: Robert Tinney Graphics 1864 North PamelaDr. Baton Rouge, Louisiana 70815 For VISA, MasterCard or American Express orders, or for more information . Call 1-504-272-7266 ^* comes from USRobotics, a leading American manu- facturer for over 10 years. A Sportster internal or exter nal modem teamed with your computer connects you to a world of informa- tion at 1200 or 2400 bps. Choose from three models, $139 to $299. Easily the USA's best modem value 7* 1-800-DIAL-USR In Illinois, call 312-982-5001 Ext. 29 a,/ The Sportster features auto-dial, auto-redial and auto-answer. And it uses the industry standard AT command set, so it works with all data com- munication software. For quick reference, the bottom panel contains a printed operations summary. You also get a 28- page user's guide, a two-year warranty, USR's Telpac™ Communications Software for IBM users, and a free subscription and connect time to the CompuServe® information service. Call us today for your nearest dealer. m TM The Intelligent Choice In Data Communications Inquiry 302 for End-Users. Inquiry 303 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 283 \ 12// ^ * 6 \ •&% &* BIX Microbytes: One of '*/*: J • : The new f % : system wo ' and then it** P^-^w The r^mawinX* persons «X ^6 ^\<%C* \^orKsbdjt & V % ^ , a\\:%\;v^ ^ : ^ -%,. \ X X> or %> V, BIX Logo— Name: new After you register on-line, you're immediately taken to the BIX learn conference and can start using the system right away. Foreign Access: To access BIX from foreign countries, you must have a packet switching account with your local Postal Telephone & Telegraph (PTT) company. From your PTT enter 3 106001 57878. Then enter bix < CR > and new < CR > at the prompts. Call or write us for PTT con- tact information. BIX Helpline (8:30 AM-II-.00 PM Eastern Weekdays) U.S. (except NH) and Canada- 1-800-2 2 7-BYTE Elsewhere (603) 924-7681 EIX One Phoenix Mill Lane Peterborough, NH 03458 (603) 924*9281 Inquiry 450 SEPTEMBER 1987 -BYTE 285 MICROSOFT LANGUAGES NEWSLETTER VOL. 2, NO. 9 News about the Microsoft Language Family Microsoft® Macro Assembler Version 5.0 Microsoft Macro Assembler Version 5.0 has a host of exciting new features that make assembly language programming easier and more powerful than ever! Microsoft Macro Assembler Version 5.0 now includes the Microsoft CodeView® window- oriented debugger and can assemble instructions written for the Intel® 80386 CPU. Comprehensive documentation and example programs help you write assembly code subroutines that can be called from other Microsoft languages such as C, BASIC, FORTRAN, and Pascal. Microsoft Macro Assembler Version 5.0 also assembles your programs 25 - 40% faster than Version 4.0. Now it's easy to write assembly language subroutines for high-level language programs If you have always wanted to write fast assembly language subroutines to make your programs fly, now is the time to try Microsoft Macro Assembler Version 5.0. Version 5.0 comes with a completely new Mixed-feangnage Programming Guide, which describes in clear, step-by-step language how to write, assemble, and link an assembly language subroutine with your Microsoft BASIC, C, FORTRAN, or Pascal programs. The examples from this man- ual are provided on disk so you can use them as templates, filling in your own code and leaving the prologue and epilogue instructions that make the interface function correctly. Now Microsoft Macro Assembler Version 5.0 makes segmentation easy. Our new ' 'simplified segmentation' ' directives are short, straight- forward, and intuitive: To declare the correct model for your subroutine, just use the. MODEL directive and choose the model you need: SMALL, MEDIUM, COMPACT, LARGE, or HUGE. To start your data segment, just add a .DATA directive; to, set your stack, add a .STACK Hie lj ie« 'eareh ■iin ' ; atch ■ ptions . anguajel alls ' elp | FS-Trace F5=Cq Microsoft Macro Assembler's CodeView at Work Latest DOS Versions: Microsoft C Compiler 4.00 Microsoft COBOL 2.20 Microsoft FORTRAN 4.01 Microsoft Macro Assembler 5.00 Microsoft Pascal 3.32 1 Microsoft QuickBASIC 3.00 directive; and to begin writing instructions, use the .CODE directive. Microsoft Macro Assembler now includes the CodeView source-level debugger CodeView, Microsoft's famous debugger for its C and FORTRAN languages, now comes to the world of assembly language program- ming. Source-level debugging allows you to view your program just as you wrote it, including the comments and spacing that are especially important in helping you follow your program's execution. You can access variables by name, even if they aren't declared public, and see constants as names instead of as anonymous numbers. Write programs for the 80386 Microsoft Macro Assembler Version 5.0 can assemble the new instructions available with the powerful 80386 CPU and the 80387 math coprocessor, as well as 80286 instructions that have been enhanced to work with 32-bit registers. You can also use the new 32-bit wide registers to write faster programs than^ ever by using such operations as 32-bit add and subtract and 32-bit multiply and divide without using multiple registers. For more powerful data access Microsoft Macro Assembler Version 5.0 allows you to choose any 32-bit register for indirect memory access, to use "scaling" for easy array access, and to move 32 bits of data directly from memory into a register and back. 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, the Microsoft, logo and CodeView are registered trademarks of Microsoft Corporat on. Intel is a registered trademark of Intel Corporation. Look for the Microsoft Languages Newsletter every month in this publication. Microsoft BYTE Kernel Computing at Chaos Manor: In the Chips by Jerry Pournelle Applications Only: Potpourri by Ezra Shapiro .289 .307 ail!!™ mm fiftfrmffjifiiifHiifr/ii»ffi»fftiiiftiuiUffNiffmism iitfiffrminfriiiitfifirmfffftnfiiuiimwiMlwimv ******** 1 • : L UUL X H]lvi • : •:;!'■:' fn yffflM ,- ' IUS2 Sp ••iMMHiinniii .Jllllfllll/lillflll llllljlllllitlilll. HHIIM »|« I IM Ml HM §»»«'*" "-'*»*• mi " " Jit! fun if Uif iliitf l|4f f Hi t if ( i SlIllllllflBIHWWllWllK. Hlffflfl 11 P mm [mm fllffltfl Wl fpHfffWIHp kmmmww nmmwm mmimmin mmmum wmmwm HHmmhhi wncimm nm ffif iui j ; (j uif aceshipping add S3 item PC Call MS $329 PC $429 PC $649 PC $139 MS $349 PC $439 PC $ 65 PC Call MS Call MS Call MS Call MS $299 MS $239 PC $ 89 PC $249 1 1 PC $ 95 MS $ 59 PC $129 MS $279 PC $109 PC $165 MS Call MS $129 MS $185 MS $455 PC $ 79 PC $375 MS $389 PS $209 PC $789 PC $639 PC $129 MS $ 99 MS $215 MS $229 PC $ 69 PC $145 MS $309 MS $109 MS $ 79 MS $109 PC 5 59 PC $ 95 MS $159 MS $375 MS $195 MS $199 PC $ 89 Subscription Problems? ^qsha\l\^§ We want to help! // you have a problem with your BYTE subscription, write us with the details. We'll do our best to set it right. But we must have the name, address, and zip of the subscription (new and old address, if it's a change of address). If the problem involves a payment, be sure to include copies of the credit card statement, or front and back of cancelled checks. Include a "business hours" phone number if possible. BYTE Subscriber Service P.O. Box 6821 Piscataway, NJ 08854 m* 1 - CodeView? ForTbibo Pascal? T-DebugPLUS 2.0 brings powerful but easy-to-use symbolic run-time debugging to your fingertips ~ the same power you'd expect to find in Microsoft's CodeView™. Debug Turbo Pascal programs faster with: ♦ Watch windows for variables ♦ Conditional breakpoints ♦ CGA, EGA & Hercules graphics nju "T-DebugPLUS is the liWffi most important Pascal pniTOR'S tool ...since Turbo itself." CHOICE PC Magazine, June 23, 1987 T-DebugPLUS is only $60. ► Call toll free for credit card orders. 1-800-538-8157 x 830 1-800-672-3470 x 830 in CA Satisfaction Guaranteed or your money back within 30 days, CHAOS MANOR Also from TurboPower Software: Turbo OPTIMIZER, makes your compiled programs smaller and faster, only $75. Turbo EXTENDER, breaks the 64K barrier, only $85. TurboPower Utilities, only $95 with source. For other information call 408438-8608, 9AM to 5PM PST. Shipping & taxes prepaid for US and Canadian customers, others please add $6 per item. CodeView is a trademark of Microsoft Corporation. ©TurboPower Software, 1987 TurboPower Software 3109 Scotts Valley Dr., Suite 122 Scotts Valley, CA 95066 its window. Unlike the SideKick editor, there's no way to set colors for the note- pad itself. Then, too, if I invoke the notepad first (and thus get the screen colors The Nor- ton Utilities set for me on boot-up), odd things can happen. At least once I brought Fast Kat up in DESQview, opened the notepad as one window, opened Crosstalk as another, and con- nected to BIX. I used the Mark, Cut, and Paste routines to do some editing. All worked fine. Then I closed the Crosstalk window and went to bed, leaving the DESQview notepad as the sole surviving job. The next morning the machine was locked up. I had to reset to get started. That could, of course, be the result of a mini power failure or some kind of hard- ware glitch. I'd be more inclined to think so if similar things hadn't happened under DESQview, and not when DESQ- view was turned off. Of course, most of my problems have been due to insuffi- cient spelunking of the DESQview man- ual; but some, I think, were just plain bugs. For all that, I tend to use DESQview more and more. For one thing, Quarter- deck is quite responsive to bug reports; the DESQview you '11 be able to buy when you read this will not be the same one I'm running. Also, DESQview has some really neat features, including a very nice keyboard swap and macro program simi- lar to SuperKey. It's possible to build a customized file of keyboard macros that will be "automagically" invoked when- ever you bring in the program they're as- sociated with. For example, when I bring in Word- Perfect under DESQview, I also bring in a macro that redefines the backspace to "left-arrow delete left-arrow right- arrow." The "left-arrow delete" busi- ness is necessary because DESQview won't let you define a key recursively; and the "left-arrow right-arrow" monkey motion makes WordPerfect reformat the paragraph. I expect that would be a silly thing to do on a slower machine, but on the Kaypro 386, the operation is instanta- neous. The macros are neat, but mostly, DESQview is still the only way to do real multitasking; and that's quite often worth the problems DESQview can cause. Swaps I use DESQview a lot, but not always; often, it's just more convenient to have my usual bunch of memory-resident pro- grams. Of course, I want them installed automatically; I also tend to want a differ- ent configuration of memory residents continued 292 BYTE- SEPTEMBER 1987 Inquiry 298 Offers a 31 Day Money Back Guarantee on any product in this ad. Call Today. NEW! From Sterling Castle. . . BASIC Development Tools Powerful "Automatic Programming" Tools That Save You Hours of Valuable Time. The novice or power programmer, can easily add these professional features. ■ Screen Builder ■ B+ Tree ■ EZ Screen Pop-up Windows ■ Help Message System BASIC Development Tools™ (BDT™) is compatible with the newest, fastest compilers, including Microsoft QuickBASIC™ and Borland Turbo Basic.™ In BDT you have four powerful aids that can be used separately or together. Screen Builder System translates the painted screen image into BASIC code which then can be merged in your program. B+Tree Data Manager is a very fast data file index system providing both direct and sequential access to data. Complete source provided. EZ Screen Pop-up Window Manager, written in assembler, easily inserts menus, windows, notepads. Saves a portion of the screen to/from a buffer. Help Message System allows the creation of context sensitive help messages in your application program. With BDT you have four of the mo?' popular programming aids for $99 Includes two diskettes and 220 page manual. 60 DAY FREE TRIAL. STERLING CASTLE' ORDER TODAY! (800) 722-7853 swim, c*.ie. w: washm*™ s... suit* 174 (213)306-3020 in California Manna del Rev. CAW2Y2 M All trademarks acknowledged . " ^ PVCS The Most Powerful & Flexible Source Code Revision & Version Control System The POLYTRON Version Control System (PVCS) allows programmers, project managers, librarians and system administrators to effectively control the proliferation of revisions and versions of source code in software systems and products. PVCS is a superb tool for programmers and programming teams. (A special LAN version is also available.) If you allow simultaneous changes to a module PVCS can merge the changes into a single new revision. If the changes conflict, the user is notified. Powerful capabilities include: Stores and retrieves multiple revisions of text; Maintains a complete history of revisions to act as an "audit trail" to monitor the evolution of a software system; Maintains separate lines of development or "branching"; Provides for levels of security to assure system integrity; Uses an intelligent "difference detection" to minimize the amount of disk space required to store a new version. Requires DOS 2.0 or higher. Compatible with the IBM PC, XT, AT and other MS-DOS PCs. Sug. Retail Prog. Shop Personal PVCS —For single-programmer projects $149 $109 Corporate PVCS —For larger, multiple-programmer projects $395 $309 Call POLYTRON at (503) 645-1150 for pricing on larger networks High Quality Software Since 1982 Call Today for FREE detailed OAA /ll"! Qfifi/Z information or try RISK-FREE OUU"TrZl"OllUU for 31 days HOURS: 8:30 A. M. -8:00P. M. E.S.T. 5 Pond Park Road, Hingham, MA 02043 Mass: 800-442-8070 or 61 7.740-2510 5/87 Inquiry 338 PROGRAMMABLE EDITOR iBb FREE fully functional DEMO disk! Stunning speed. Unmatched performance. Total flexibility. Simple and intuitive operation. The newest VEDIT PLUS defies comparison. Other editors just don'tofferthis wide a rangeof features: Execute DOS commands Configurable keyboard layout 'Cut and paste' buffers Undo line changes Paragraph justification On-line calculator • 'Off the cuff macros • Built-in macros • Keystroke macros • Multiple file editing • Windows • Macro execution window • Trace & Breakpoint macros VEDIT PLUS performed 10 times faster than its nearest competitor in a pattern matching search test and replaced patterns even faster. Go ahead. Call for your free, fully functional demo today. You'll see why VEDIT PLUS has been the #1 choice of pro- grammers, writers, and engineers since 1 980. Available for IBM PC's, MS-DOS, and CP/M. List: $185 Ours: $125 Inquiry 337 CompuView 1955 Pauline Blvd.. Ann Arbor. Ml 48103(313) 995-1299. TELEX 701821 FREE* : Probe the Minds of 19 World-Class Programmers! Programmers at Work is a fascinating coljection of interviews with industry leaders like Jon Sachs, Wayne Ratliff, Dan Bricklin, and Bill Gates. "Prefaced by a short biography and including program doodles and samples of source code, each interview examines the forces, the events, and the personality traits that have influenced the programmers' work. - from the jacket FREE* or Only $14.95 NOW: Special OFFER! viacoupon(ormentionthisad) * Order any product on this page OR $250 of any software and get Programmers at Work FREE! Payment method: Acct. # Check/MO MasterCard/ VIS A Your Computer: Name: Street: Exp.: _ O/S: City: . State: Item: . Zip: Price: UPS Ground $3/item. Air $6/item. (except book): (Call about other methods) Total: Offercxpires 9/30/87. The Programmer's Shop, 5 Pond Park Rd., Hingham, MA 02043-(800) 421-8006 or in MA (617) 740-2510 Inquiry 339 Inquiry 272 Even More Power & Flexibility BRIEF 2.0 BRIEF easily conforms to your editing preferences and style, ensuring you are truly comfortable and productive. Straight from the box , BRIEF is as much editor as most people will ever need — thanks to features like the real Undo, flexible windowing, and unlimited file size. But BRIEF's hidden power is in its exclusive macro language. Customize BRIEF to include the commands and features YOU desire. It's fast and easy. Users and industry press alike unanimously praise BRIEF. 'Recommended. " — Jerry Pournelle, Byte 12/86. Now BRIEF 2.0 adds: Basic \? Setup Programf oreasy installation and configuration. (Requires no macro knowledge). Features \ # Increased speed for sophisticated operations like Undo and Regular Expression Search. • All new documentation WITH tutorial on the Macro Language. • Command line editing (move cursor, add & delete characters, specify parameters). • Expanded RegularExpressions, with matching over line boundaries. • More block types, with marking by character, line or column. Edit many files \ # Reconfigurable indenting for C files (supports most indenting styles). a \ • Enhanced large display support, including wider displays. - File size limited only \ • Optional borderless windows, by disk space. - Automatic language \ Try BRIEF ($195) for 30 days — if not satisfied get a full refund. sensitive indentation. \ If already Qwn BRI£F mU fof up(Jate |nf Q - EGA and Hercules Plus 43-line CHAOS MANOR Windows Multi-level UndoN support - Compile & find errors within BRIEF ? And much, much more! Requires an IBM PC, AT or compatible with 192K. CALL 800-821-2492 In MA 617-337-6963 -Solution Systems 541 Main Street, Suite 410B So. Weymouth, MA 02190 You get intelligent IEEE-488andRS232 ports to make instru- ment programming last and easy. % have up to 4 Mbytes of memory on the same board for your largest programs, RAM disks, and d^ta acquisition tasks. Compatibility is built-in so you can run your favorite programs or create new ones with our advanced programming tools. To get your FREE demo disk— call 617-273-1818. Capital Equipment Corp. Burlington, MA 01^03 The bottom Hne--lEEE-488, RS232, par. port, 4MB EEM LIM, runs DOS and OS/2. depending on which job I want to do. That used to take me more time than I like. The solution to that seems obvious enough now, but I confess it took me a while to think of it. What I've done is make a series of batch files that copy spe- cialized versions of AUTOEXEC.BAT and CONFIG.SYS. As an example, I have a file called MAKEREG.BAT that says Echo off Echo Setting up to make ' 'REGULAR' ' Echo This installs Ready] , Super- Key, andSideKick Echo on Copy autoexec . reg autoexec . bat Copy config.reg config.sys Echo off Echo NOW RESET SYSTEM Similar batch files are MAKEDV.BAT, which sets things up to install DESQ- view; MAKEFRAM.BAT, which sets up to install Framework; and so on. Fast Kat resets very quickly, so it's no inconve- nience. All of this is so obvious, I wonder why it took me so long to think of it. Q&A I've had Q&A version 2.0 for the 80386 for most of the month, and I like it a lot. There are more powerful database pro- grams, and there are certainly better text editors; but I think there isn't a much bet- ter combination database and word pro- cessor, and each of them separately is a great deal better than good enough. The main attraction, though, is that there's nothing easier t o u s e right out o f the box. Q&A isn't perfect. The original ver- sion ate memory like mad, and so does this version. This is because of an artifi- cial intelligence routine called the Intelli- gent Assistant. There aren't any small and compact AI programs. If you run Q&A without the Intelligent Assistant, it's not much larger than other database programs. Q&A for the 386 is partly written in 386 native code, but it doesn't take much advantage of extended mem- ory. Symantec says they'll change that. Another problem with the new Q&A is the manual. Unlike the original, this one isn't loose-leaf. It's spiral-bound in two parts. That probably wouldn't be a prob- lem for some people, but it is for me. The two volumes are very different in size. Volume II is quite thin. I'm always losing it— and it contains the index, so then it's nearly impossible to find anything in Vol- ume I. This is a dumb way to organize material. I've ended up digging out the old loose-leaf manuals for version 1.2. They're not seriously out of date. On the good side, Q&A for the 386 is 294 BYTE- SEPTEMBER 1987 Inquiry 43 Inquiry 105 CHAOS MANOR blazingly fast. Moreover, it not only runs fine under DESQview, the DESQview script (key-swap and macro) capability lets you improve Q&A quite a lot. Q&A has a pretty powerful macro capability of its own, but it's not always as convenient to use as DESQview' s. For example, the Q&A people went to considerable trouble to make the back- space work differently when in type-over and insert mode. I'm not used to that; I want the backspace to be the Rubout key that both deletes the letter to the left of the cursor and sucks up the empty space for- merly occupied. It was no great trick to use the DESQview macro capability to set things so the backspace does that all the time. Since Q&A's word processor automatically reformats paragraphs with every insert/delete, no monkey motions were needed. The Q&A word processor is plenty good enough for just about everything I'm likely to do, but if that were all there was to the program, I'd never use it; TNT Software's My Word and Bob Wallace's shareware PC-Write both pack more fea- tures and cost quite a lot less; and some of Q&A's editing features are not particu- larly easy to use. As an example, to get a word count, you must go into search mode, then search on the wild card for "any word" (which happens, in Q&A, to be '..'). That uses a lot of keystrokes, and for what? Also, to get line counts, you have to do arithmetic; there's nothing corre- sponding to WRITE 's command that tells you words, lines, and paragraphs before cursor, after cursor, and for entire docu- ment in one (almost instantaneously exe- cuted) command. So: the word processor is easy to learn and better than adequate, but not spectac- ular. The big deal with Q&A is that it's an easy-to-use database. It certainly is easy to learn. When Mrs. Pournelle decided to try organizing some of the flood of software that pours into Chaos Manor, she had to choose a data- base program to do it with. Heaven knows we have enough of them around here. She'd never before worked with a computer database, and I didn't have time to tell her anything. She was on her own. She looked through the manuals of about a dozen and chose Q&A as the sim- plest to set up. First thing I knew about it was when I came downstairs and found one of the editorial assistants happily log- ging in software data. A couple of weeks later, I got involved with Sundog, a computer game written originally for the Apple II by my friend and colleague Bruce Webster. Sundog has been ported to the Atari ST, and it's The word processor with Q&A is easy to learn and better than adequate, but not spectacular. The big deal is that Q&A is an easy-to-use database. my kind of game, which is to say there's a little arcade skill involved, but it's mostly strategy. Part of that strategy is commod- ity trading; and in Sundog that can be complex. In fact, the game information was so complex I found myself wanting a data- base program to organize it; and since I needed a way to test Q&A for myself, this seemed a good way to do it. A Database for Sundog I had the same experience Mrs. Pournelle did, namely , that it took almost no time to get things set up. Q&A organizes records as "forms," and designing a form is liter- ally no trick at all. Of course, I wasn't sure what information I wanted, or how to organize it, but that didn't turn out to be difficult, either. Sundog is a complex game. There are about a dozen solar systems, each with one to four planets. Each planet has from one to seven cities. Each city has an ex- change building located randomly inside its boundaries. The exchanges offer a va- riety of commodities, but not all com- modities are offered at all exchanges. Each commodity comes in grades A (best) through G (worst). Prices for commodities in various grades vary from planet to planet, and from city to city on each planet. You can get infor- mation about prices in a particular city only by visiting that city's exchange and either offering to sell something you've brought or waiting to see what's offered for sale. One object of the game— or at least a necessary action— is to make money through buying commodities in one place, transporting them to another, and selling them. Of course, if you buy inap- propriate items for the place you're go- ing, you can lose money, especially since fuel isn't cheap. To make things even more compli- cated, the game lets you engage in black- market trading of ship and computer parts. These don't come in grades (al- continued Now Your Computer Can See! Two camera designs for scientific, engineering, art, graphics and OEM applications. Plug one of these digitizing cameras into your personal computer, focus the lens, and produce immediate visual input A binary image is instantly loaded into the MOS~sensor-based memory array, from which it can be reviewed and manipu- lated like any other binary file. MicronEye $295. 00 " Produce inexpensive digi- tized images for desktop publishing, graphics, draft- ing, signature recognition, animation and a variety of other applications. The MicronEye™ is extremely versatile for photographing flat and 3-dimen- sional subjects, and provides instantaneous response. Multiple exposure capability allows a range of gray scale values. Available now for IBM PC and compatibles, Apple II, Apple Macintosh and Commodore 64. Idetix™ $695. 00 For rugged indus- trial applications, the high-speed Idetix™ camera offers en- hanced still and multi-interval imaging capabilities that are ideal for process control, factory inspection and robotics applications. Available now for IBM PC and compatibles. Each camera comes complete with lens, cable, interface board and introductory software. Custom engineering and appli- cations assistance are available. For Credit Card and C.O.D. orders, or for further information, phone toll free: 1-800-253-2226 In Idaho, phone (208)939-0420 GENERAL IMAGING CORP. P.O. Box 9000 • Boise, Idaho 83707 MicronEye™ and Idetix™ are manufactured by Micron Technology, Inc. Shipped UPS- add $10.00 for shipping and handling; $1.90 C.O.D. charge; please add applicable sales tax. IBM PC is a trademark of Internationa! Business Machines, Apple II and Apple Macintosh are trademarks of Apple Computer, Inc., Commodore 64 is a trademark of Commodore Corp. SEPTEMBER 1987 -BYTE 295 CHAOS MANOR Q&A is, after all, a file management program, and what I have here is a relational-database problem. though you could consider them all to be of grade A) and aren't bought and sold in exchanges; to buy, you generally go to a parts store on a high-tech planet, and to sell, you generally go to a bar. Finally, there is information about the cities themselves; information unrelated to any commodity . Things like, does the city have parts stores? What do they look like? Where is the exchange? (You can spend half an hour of real time looking for it if you haven't made notes.) What's the price of beer and hamburgers? (This gives a good indication of the general price levels for the city as a whole.) This makes for a complicated data- base. When I started, I set it up so that a record consisted of the name of the star system; planet; city; commodity; grade; price; and I left fields for comments. I certainly don't have information about all commodities or all grades for each city. On the other hand, if I find that in one city the price for grade D biochips is higher than the price for grade B in an- other city, I don't need to know more to get a handle on the profit to be made in that commodity . Q&A is admirable for organizing in- formation like that. Once I had my data- base established, I had it print out re- ports: one set was organized alphabeti- cally by commodities, so that any time I needed to buy a given commodity, I could look up all the places that commod- ity might be available and the price I'd be likely to pay; and another report was or- ganized by cities, so that I could look up for any given city what commodities I'd been offered and what they sold for. Q&A could handle other information, but organizing it wasn't quite so simple. In fairness, what I have isn't a simple problem. For example, how to preserve general information not associated with commodities? Do I note the location of the exchange in a field on a typical form with commodity information, and thus have that blank field on most entries; or do I put it on a special form with the com- modity information blank; or do I make a special file that contains only that information? No database easily handles this kind of problem. What I really need is a pair of linked relational databases, as well as some ingenuity in modeling my data problems. Q&A certainly does this as well as most, and because it's compara- tively easy to add new data fields, or even get the Intelligent Assistant to make new databases from your old one, I was able to work around the difficulty. Q&A is, after all, a file management program, and what I have here is a relational-database problem. More on this in the next few months. Meanwhile, my main problem was that blanks are sorted to the beginning of a re- port, and sometimes my reports had un- aesthetic blank-line entries at the top when printed out. Another example: suppose I know that in the city of Drahew I can buy grade C droids for 10,000 and grade E for 9000. A good guess would be that grade D sells for 9500; it would sure be nice if I could make the computer go through the data- base and fill in blanks everywhere through interpolation and averaging. Of continued UNINTERRUPTIBLE AT SYSTEM KITS POWER SUPPLY The SEN DON UPS-300W, UPS4O0 W and the UPS-800 W provide high 9«clency{85%), reliable be ttetyback-uppo werprotectiontorsyslams ot al slzee. M ade wf m Interrialtealc-pi ool ge I oe I ■ loissla olfice use. T) e s e unftsare themosUella&lewe have bund, and we recommend Bern UPS-300W $239.95 UPS-400W $379.95 UPS-800W $675.00 T.Ktgh efficiency - 2.lntsmel MO-SPILL bett 1 h ^ 3, Audible powerloes 4.Feettrenefertlme : * - : - s.Houtletaocketa 1 **,. ft ^ e.Tranelentfllterlng Dealers welcome ASK ASTEC 200W AT POWER SUPPLY 4*# ASTEC 200W AT SUPPLY..$1 29.95 Wt sail the ASTEC AT power supplies because they are 100% good reliable until. With full FCC, UL and CSA app- rovals ao you know thay are good. After all why put a few thousand dollar* of good USA made stuff on one of those EL-CHEAPO power supplies you sea for a bit leas money. Moat of those have no +12V regulation, so they fry hard drive* all the time. And the warren ty la no good becauss It wen l replace what was burned up. All they will do la give you another dog eo you can bum up some mora good stuff. KEYTRONICSRT-101 KEYBOARD H AT/XT ocmpstlble : i i . *■* 1 I 1 1 i /.gpcTfc RT-101 $99.95 Ourreeaone f oreelllng the KEVTRONICS RT-101 keyboerd are elmllerto thoee for calling the ASTEC power eupply end the ATTAK-28S motherboard. NO-ONEweaeverbumedby good quelltymerchendlee. Whet cen we aay? Keytronlcele the ecfcnow/edgedworfd feederln keyboerde. They run f or-ever, they feel very good, they look very good, end they ere only ellghtly more money then the TAIWAN Junkies. Why le thle?? KEVTRONICS hea a robot plant ao their lebour co»t le ee low ea Telwen'a, the only extre le good peite. And they ere like good eats..., no Indlgeetlon, heve e nice meel. DELUXE AT KIT .....$999.95 Our AT system kits are made with the femous ATTAK-268 motherboard. What a daal. We aend you our ASTEC-200W power aupply, 8 nice FLIP-TOP AT case, en ATTAK-288 motherboard with 512K ol RAM, a DTC hard/floppy drive controller, e PANASONIC 1.2M drive, end e KEVTRONICS RT-101 keyboard. This meene you cen heve e full AT competlble system et e very low price.. STANDARD AT KIT... $799.95 We also have e lower cost kit for thoee ol you who need to eave ae much money ea poealbte. Theonly change la the keyboerd will be a BTC 5060, the drive controller a 360/1,2 floppy only controller, and with zero K RAM on boerd, BASIC AT KIT $599.95 And for those who want Juet the beelce we heve the basic ATklt. Juet en ATTAK.236 molherboerd, en ASTEC200W Power Supply, end e great AT Flip-Top case, Ten MHZ option, add $99.95 to above prices on each kit XT SYSTEM KITS COMPLETE 8MHZXTTURBO KIT BARE BONESBMHZ •Flip-top case "I50W Power Supply •6160 AT/XT Keyboard eMhz Turbo with 640K • Flip-Top Case M50W Power Supply •8MhiTurbo\ fompuSeivev^ 800-848-8199 X «*» Inquiry 55 / ^ 3780Ptw* CLEO is your SNA or BSC Gateway , Remote Sites Communication Whatever your industry, your remote computers need to share information with your mainframe. Or, they need to exchange data with other remotes. In either case, you need a total solution at the remote sites. You need software, hardware interfaces and modems that all work together smoothly. You need CLEO! CLEO software products allow micro- computers to communicate with mini- computers and mainframes, and to emulate their workstations. Since 1981, CLEO has pro videdremote communications between micros and mainframes for the automotive, insurance, medical and banking industries. Today over 44,000 CLEO users worldwide are running on all major brands of micro- processors. The greatest number of these users run CLEO software on IBM Personal Computers and NETBIOS LANs. Complete Software/Hardware Package Every CLEO package contains all the soft- ware and hardware accessories needed at the remote site. Your selected CLEO SNA or BSC software is packaged with 1) an internal modem cardfor dial-up applications, or 2) an interface card and cable for use with your existing modem. There's no waiting for non- CLEO add-ons. And, you get prompt, single- source service. Package prices range from $795.00 for most stand-alone packages, up to 32,995-00 for the 32-user SNA gateway. Call us today to discuss your application. CLEO Software 1639 North Alpine Rd. Rockford,IL 61107 Telex 703639 Headquarters: USA: 1-800/233-2536 Illinois: 1-800/422-2536 International: 815/397-8110 Sales and Distribution: Benelux, Scandinavia: 31 (71) 899202 Canada, East: 800/361-3185 Canada, West: 800/361-1210 Canada, Montreal: 514/737-3631 Colombia, S.A.: 12875492 Denmark: 451 628300 Italy: (0331) 634 562 Mexico City: 203-0444 CLEO CLEO and 3780Plus are registered trademarks of CLEO Software. IBM is a registered trademark of International Business MachinesCorporation. CHAOS MANOR course, I don't know any other program that can do that. Finally, what I'm really looking for is the largest spreads. I don't really care what commodities I trade in; what I want is the largest profit for the shortest trip. Can I make the computer find me the best possible deals? Intelligent Reports As I mentioned earlier, Q&A has an AI routine— written originally in LISP, as a matter of fact— called the Intelligent As- sistant. This makes report generation and database manipulation much easier. For instance, I can, with patience, tell the As- sistant to go through and make new forms based on information derived from the old ones and present the information in interesting ways. Intelligent Assistant can be taught all manner of things. It knows the difference between verbs and adjectives. You can teach it a new vocabulary, and since it has automatically learned a lot about the database the first time it's invoked, it's easy to give it synonyms. I can do a lot with the Assistant, and it's easier to use every time I try. On the other hand, I haven't been able to get the Assistant to give me much help finding the most profitable deals. It's easier to print out the data organized in different ways and search through myself. Q&A uses a menu system. The menus are one of the main reasons why Q&A is so easy to learn and use, and I wouldn't change them for the world, especially since there's context-sensitive on-line help at all stages, from database creation to report design. Sometimes, though, the menus get in the way when I'd like to jump from one place to another. Macros do only part of the job. Oh, well, you can't have everything. I suppose it's a bit silly to complain on the one hand that Q&A is a memory hog, and on the other to wish for new features. Of course, it wouldn't be impossible to get Q&A smarter and effectively smaller by using the 386's capabilities. Q&A is both easy to learn and easy to use. There are lots of features and utilities to help import data from other databases, including PFS.File, dBASE II and III, and Lotus 1-2-3, so the data can be re- organized. With Q&A, it's particularly simple to add new categories of informa- tion you didn't think of, and the Intelli- gent Assistant helps a lot. Q&A is fast. For most jobs, it's more than good enough. The next step up is something like Guru from Micro Data Base Sys- tems, and that's complex, not easy for be- ginners to learn or use, and quite expen- sive. The bottom line is that Q&A is what I find myself using at Chaos Manor for everything from games to organizing the files. Fixing WordStar There are a lot of new text editors out, but it's amazing how many people still use WordStar. Clearly, there's a dance in the old girl yet. Serious WordStar users may want to get WordStar Professional 4.0, which fixes a number of complaints people had about version 3.3 and adds new fea- tures—but there are some disadvantages to that. When MicroPro married Word- Star and NewWord to produce 4.0, they made some changes in the file, menu, and command structures. Most of the changes were trivial, but some weren't, so there can be some incompatibilities between old and new WordStar files. For those who really like the look and feel of the old WordStar, there may be a better route. Over the years, user's groups have built a body of folklore on ways to customize WordStar by patching the code. Patching means using DDT, Debug, or a similar utility to modify a copy of the command file; it's simple enough to do, provided you know what has to be done. You can find tips on how to modify WordStar on both free and commercial bulletin boards, in user's group publica- tions, or in conversations at computer club meetings. But if you want to go at it systematically, the simplest way is to get hold of the following two items. The first is Stuart Bonney's The Word- star Customizing Guide (Wordware Pub- lishing, P.O. Box 1747, Piano, TX 75074, (214) 423-0090). This used to be called Wordstar As You Like It, and it fea- tures a pretty complete presentation of how to use Debug to customize Word- Star. It has an excellent discussion of WordStar's hidden proportional spacing capability and goes into principles of printer installation. There's a supple- mentary section for CP/M users. If you use WordStar at all, this book is worth the price. If you're really serious about patching WordStar, you need StarFixer by Stephen Manes and Paul Somerson (Bantam Books, but you can get your copy directly from the authors at Hard/Soft Press, P.O. Box 1277-B, Riverdale, NY 10471, (800) 222-9409). This package bills itself as "The Ultimate WordStar Enhance- ment. " I suspect MicroPro would say that WordStar 4.0 has a better claim to that continued UTAH COBOL NEW VERSION 4.0 69! 5 [ For IBM^C's, XT's, AT's and other DOS machines. This is the oneyou'veheardso much about- with fast compile times, small object code modules, no royal- ties, and clear error messages. Version 4.0 is based upon ANSI-74 standards with new features including: • Multi-key Indexed files with up to 24 keys. This advanced feature requires the software package Btrieve®which is optionally available. • Windowing, pop-up's, color and overlays. This advanced feature requires the software package Saywhat?!™ which is optionally available. • ACCEPT numerics with decimal point alignment, numeric checking, AUTO-SKIP, SECU- RITY, LENGTH-CHECK, EMPTY-CHECK. • Fast memory mapped DISPLAY'S (1,5) ERASE, BEEP, ATTRIBUTE. • Level 88's - READ INTO - WRITE/REWRITE FROM - and DELETE. • An easy to use, COBOL source code EDITOR with auto line numbering, A-margin, B- margin tabbing with full screen cursor control. Current customers can receive the new version by sending in their original diskette and $30.00. This offer expires Dec. 31, 1987 Also available: Utah FORTRAN, Utah BASIC, Utah PASCAL, Utah PILOT, Btrieve and Saywhat?!. Used by 50,000 professionals, students and teachers in 40 countries. To order call: (702) 827-3030 o SINCE 1977 ELLIS COMPUTING™ 5655 Riggins Court, Suite 10 Reno, Nevada 89502 IBM is a registered trademark of International Business Machines. Inc. Btrieve is a registered trademark of Softcraft, Inc. SAYWHAT?' is a trademark of The Research Group. Utah COBOL is a trademark of Ellis Computing, Inc. © 1987 Ellis Computing Inc. Inquiry 89 SEPTEMBER 1987 -BYTE 299 CHAOS MANOR SOFTWARE & PRINTERS PRINTERS A LASERS Alps Call AST TurboLaser Call Citizen 120-D $159 MSP-10 $249 MSP-15 $319 MSP-20 $279 MSP-25 $375 Overture 110 Laser ..$1599 Premiere 35 $429 Tribute 224 $579 Diconix 150 $289 Fijitsu Call H-P Laser Jet 500* ... . Call JDL Call NEC. Call CHIPS 64k. 256k. 8087. 80287 MONITORS A TERMINALS Nissho Call Okidata Call Panasonic $153 $167 $289 $370 $399 $250 $275 1091i 1092i 1592 1595 3131 3151 Toshiba 321 SL $479 341 E $649 341 SL $689 35111 $888 351 C $1029 Call . .$674 Amdek 1280 ....... Goldstar TTL $70 RGB $229 RGB .31 $289 Hitachi Call Mitsubishi Diamond Scan Call Others Call NEC Multisync $529 Multisync Plus Call Multisync XL Call Sigma Designs LaserView 15" $1590 LaserView 19" $1890 SonyMultiscan Call Taxan 123G $85 124 A $95 635 Ultra HiRes RGB . .$378 650 Ultra HiRes RGB ..$439 720 14" HiRes $315 770 14" MultiRes $559 Teknika Multi-Scan ...$469 Thompson Ultrascan .,$569 Verticom CD-5 $1998 Viking 1& 10 Call VMI . T.. 50 ... 75 ... 85 ... 99GT. 700 . .Call ..$282 ..$356 ..$399 . .$559 ..$419 ..$498 ,.$674 Others Call SOFTWARE Logitech Publisher & Mouse $119 Lotus 123 2.01 $296 MathCad $189 MemoryMate Call MicroSoM Word 3.11 ..$199 MSDOS3.2w/Basic....$65 NewViews $479 Paradox $369 PathMinder $49 Peachtree Accounting .$159 Perspective 3D $159 PFS: First Choice $81 PFS First Publisher:... Call PFS: Professional File .$110 PFS: Professional Plan .$99 PFS: Professional Write $87 R:Base 5000 Sys V ....$345 Tas-Books Acctingr & Dbase ,....$85 V-EMM $68 Ventura Publishing $479 VersaCad & Libraries . Call WordPerfect 4.2 $192 WordPerfect & Library $235 DIGITIZERS A PLOTTERS Calcomp 1041 Call 1043 $6790 Digitizers Call Autocad Call AutoSketch $59 BoeingGraph $219 CPA+ for Lotus 123 ..,$279 Clipper $365 dBase III Plus $365 Diagraph Windows . . . $299 Drafix 1 $129 Drafix 1 Plus Call Drafix Options Call Dr. Halo II {ltd qty) $29 EasyCad $279 Enable 2.0 S355 Fast Forward $59 FastCad $1298 FastBack Backup $89 FullBack Backup $49 GEM Publisher $299 Generic Cadd 3.0 $55 Generic Opt Call Harvard Presentation Graph II $194 Lighting Speedup $54 LogiCadd & Mouse.... $119 Hitachi ' ger 11 11 C Enter Sweet-p600 $639 1000 $2690 1200 $2990 Houston Instruments DMP 41/42 $2298 DMP 51/52 $3298 DMP52MP $3698 DMP56A $4098 MP Options Call COMPUTERS AST Premium 286 Call Toshiba Compaq Call Cordata Call IBM Call NEC Multispeed Call Sperry IT (AT) Enhanced 40 Meg $2599 Tiger Others Call H-P Plotters Call loline Call JDL Call Kurta Cat! Mitsubishi Digitizers Grafnet-01 8x12 $260 Grafnet-02 13x16 Call Numonics Call Summagraphirs Summa 12x12 $339 Others Call T1100* Call T1100/T3100 Modem H.M $219 T3100 .....S2755 Wysepc/286 $1299 Zenith 181 Laptop.... $1629 BOARDS A NETWORKS Others Call NECGB-1 $299 Novell Call Number 9 Call Paradise AutoSwitch EGA 480 . .$279 Photon Call Sigma Designs EGAAutoCard480....$249 Color 400 $289 Verticom Call Video 7 Vega Deluxe w/VGA , .$275 Others Call Aristocats Call AST Boards Call ATI Graphics Solutions ...$169 EGA Wonder $219 Control Sys Artist .... Call Genoa SuperEGA $318 hercules Color $139 Graphics Plus S171 InColor $359 Intel" Above Board AT $311 Above Board PS/AT ..$341 InBoard 386/AT $1436 DRIVES MODEMS FAX Fijitsu 5 25 360k Drive . .$79 SmartModem 1200i Hayes Call MicroFax Call Novell Call Modem T1100/T3100/ Z181 $219 PhoneFlex $169 Seagate ST225 20 w/Card S309 ST238 30 w/Card $359 MOUSE A ACCESSORIES Logitech Microsoft Mouse Logimouse C7 $65 w/Paint $115 Logimouse Bus $89 PC Mouse/Optimouse w/Halo II .$97 ..,$85 ..$199 ssw . SmartModem 2400e SSW Toshiba 3.5" XT/AT 720k Drive $115 US Robotics Courier 2400 $329 Microlink 2400 $326 M.H.I. WAREHOUSE 5021 N 20lh Slreel #10261 • Phoenix, AZ 85064 TOLL FREE with order • 602-995-1134 Hours 8-5 MTM-F 9-2 SAT t'lett c»sh d i Mount jnu i>r lu eject to Cfcingt nalics Compilibililr 0! nrooVctl not gulf JMtrt ► ■II ni'flr Eureka is powerful enough to get most engineering and financial jobs done. title, but it's not really misleading. StarFixer comes with a disk of pro- grams that will "automagically" do a lot of customization without having to load Debug. There's a Rescue program that will retrieve text if you exit WordStar without saving and a Filter program that will convert WordStar files into ASCII. Finally, there's a discussion of how to use Debug to do even more advanced modifi- cations of WordStar. Bonney's book has somewhat clearer discussions of what you're doing and why, while StarFixer is generally more complete, and its programs are easier to use. Both are just about indispensable for anyone doing professional work with WordStar. Recommended. Eureka! It used to be that if you got a small com- puter, you'd sooner or later be surround- ed by scornful philistines demanding to know "What can you do with it that a cal- culator can't do?" It wasn't always easy to answer that question unless you were a programmer. There have always been "math pro- grams" for small computers, but they haven't been easy to learn. There's muMath, based on MIT's MACSYMA symbolic algebra program: extremely powerful, but complicated to get going and easy to forget if you didn't use it a lot. There was TKlSolver, not so powerful, but nearly as tough to learn. The ulti- mate, I suppose, was the language APL, which made child's play out of all kinds of hairy mathematical problems but was something between a hobby and a career to learn. Now there's Borland's Eureka:The Solver. It's not as powerful as APL or muMath, but it will get most engineering and financial jobs done. It's very easy to use. The manual is clearly written, and there are plenty of examples. You can get Eureka up and running in about five minutes. My first Eureka task was elementary planet design. As Poul Anderson put it in the old SFWA Handbook, "Far too many stories merely give us a planet exactly like Earth except for having neither geog- raphy nor history. Other stories, trying for the exotic, serve up an unbelievable mishmash. " The remedy to that is to use imagination but fit what you imagine into the equations that govern the real universe. For example, the size of a sun pretty well determines both its color and bright- ness. The illuminance a planet will re- ceive is determined by the solar luminos- ity and the distance to its star i = L/R 2 (where i is illuminance received relative to what Earth gets from Sol, L is the star's luminosity relative to Sol, and R is distance to the star relative to Earth's dis- tance from Sol). The planet's year is de- termined by that distance and also the star's mass (MP 2 = R 3 , where M is stel- lar mass relative to mass of our sun, P is the period in years, and R is the distance relative to Earth's distance from the sun). The apparent size of the star as seen from the planet depends on distance and stellar diameter. And so forth. To design a planet, you pick the num- bers you want and stuff them into the equations, then solve for everything else. This isn't hard, but it used to be tedious. Eureka has changed all that. When you invoke Eureka, you come up in the Borland editor that's used for near- ly all their programs. You then write your equations using pretty standard notation (e.g., M*P~2 = R~3 and i = L/R*2), then set the values you want fixed (e.g., by writing i = 0.97, L = 0.93, and so forth), then turn Eureka loose. It will give self -consistent values for every vari- able in your equations. If some of those values turn out not to your liking, you can change them. If you fix too many of the variables so that the system of equations is no longer self-consistent, Eureka will tell you that. The whole process is nearly instantaneous and completely painless. Of course, you can use Eureka for a lot more than planet design. The manual gives examples of solving financial prob- lems, like mortgage payments, ballistic problems, polynomials, charged parti- cles in a gravitational field, and a whole bunch of other stuff. Eureka can make graphs and generate reports. It doesn't require a math chip, but it will automatically use one if your computer has a math chip installed. I've often said that if I could do arith- metic, I might well have become an astro- physicist. I understood high school and college physics, but I got lousy grades be- cause, although I set up the equations right, I never got the right answers. If I'd had a PC and Eureka, I would have. Borland's blurb says that "if you're a scientist, engineer, financial analyst, stu- dent, teacher, or any other professional continued 1 From 360K to 70MB, we've still got your number. Please send me your Tandon Fact Pac, a comprehensive set of literature and product reviews. Company Address City/State Telephone Tandon Computer Corporation 405 Science Drive Moorpark,CA 93021 805/378.6104 BYTE 9/7 The best value in personal computing just got even better. WeVe added more standard features while low- ering our prices* even further. Starting at an incredible 5850, our XT-compatible workstations now come with a standard dual video adapter and a serial port. In our line of AT-compatibles there is a choice of five models, starting at a low $1,899. And all come with additional standard features such as a powerful 1MB of main memory, a serial port and a parallel port. And at prices that are consistently around 40% less than our major competitors. But a low price doesn't mean you have to sacrifice quality. Tandon personal computers are brought to you by a trusted manufacturer who has been an industry leader for over a decade. For the Tandon dealer nearest you call toll-free 1-800-556-1234 ext. 171. In California call 1-800-441-2345 ext. 171. Tandon Personal computers. With selection and price, we've still got your number. Price. Selection. Quality. Inquiry 287 for End-Users. Inquiry 288 for DEALERS ONLY. SEPTEMBER 1987 -BYTE 301 CHAOS MANOR working with equations, Eureka:The Solver can do your algebra, trigonom- etry, and calculus problems in a snap." That's pretty well true. I'd add that even- tually everyone has to deal with equations and numbers, and when it happens, Eureka will make it a lot easier. I'll go further: programs like this may go a long way toward correcting some of the defi- ciencies of our school system. A com- puter can't teach math, but with a PC and this program, you can learn to use math on your own. Get Eureka. You won't regret it. High- ly recommended. Care and Feeding of Fixed Disks Hard disks are wonderful, but after a while, reading and writing to them takes longer and longer. What happens is that when you start with an empty disk there's plenty of space available, and your files are written in one long string. As the disk gets full and you erase files, things get patchier and patchier until, finally, the space that's left is all chopped up, so that the disk controller has to keep looking for space, finding it, writing to it, and re- cording where it wrote it. This makes for a lot of head movement and takes time. The remedy for that is to repack your disk every now and then. Several disk management programs are available, but the one I use is Golden Bow's VOPT. This comes with VMAP, which paints a map of which disk sectors are in use and which are empty, and VOPT, which moves the files around so that everything that can be saved is saved in contiguous blocks. VOPT keeps track of how many files it has moved and how long it took; on the Zenith Z-248 and the Kaypro 386, that will typically be some 25 files moved in around 30 seconds. It makes a real difference. As a test, I let my disk get cluttered and disorga- nized, then wrote an enormous text file to it, retrieved it, erased it, used VOPT to repack, and did all that again. Retrieving the file took about 16 percent less time after VOPT. Now I routinely use VOPT every couple of days. VOPT comes with a jazzed-up version of the DOS utility CHKDSK, but for some reason the Golden Bow CHKDSK has never worked on either the Z-248 or the Kaypro 386. It hardly matters: VMAP and VOPT are what's important. The other program you need is Speed- Stor, which I mentioned last month. SpeedStor is a hard disk drive integration and diagnostic program that lets you in- stall virtually any size hard disk in your system. I finally got around to partition- ing Fast Kat's 40-megabyte hard disk, of which DOS could find only 32 mega- Items Discussed Chessmaster 2000 $39.95 to $44.95 The Software Toolworks 13557 Ventura Blvd. Sherman Oaks, CA 91423 (818)907-6789 DSI-785 68020 Coprocessor Board 12.5 MHz, 1 megabyte of RAM $1094 20 MHz, 4 megabytes of RAM $3295 Def inicon Systems 1100 Business Circle Dr. Newbury Park, CA 91320 (805) 499-0652 Eureka:The Solver Borland International 4585 Scotts Valley Dr. Scotts Valley, CA 95066 (408) 438-8400 Faery Tale Adventure . . . Micro Illusions 17408ChatsworthSt. . $99.95 , $49.95 Granada Hills, CA 91344 (818)360-3715 Kaypro 386 Kaypro Corp. 533 Stevens Ave. Solana Beach, CA 92075 (619)481-4300 pc-ditto Avant Garde Systems 381 Pablo Point Dr. Jacksonville, FL 32225 (904)221-2904 SpeedStor Storage Dimensions 981 University Ave. Los Gatos, CA 95030 (408) 395-2688 VOPT Golden Bow Systems P.O. Box 3039 San Diego, CA 92013 (619) 298-9349 . $5795 , $89.95 .$79 . $49.95 bytes. Thanks to SpeedStor, it now has two 20-megabyte logical drives. (VOPT, incidentally, can operate on both of them with no difficulty.) SpeedStor i s especially useful i f you're installing your first hard disk in a PC or XT. The manual is detailed, and since the program works automatically in batch mode for most hard disk installations, SpeedStor makes the installation fairly simple. Winding Down I'm out of time and space, and I haven't even got started on the pile I set out to write about. I do want to mention Definicon's 68020 and graphics boards for the PC. Their boards drop into a PC and turn it into the fastest thing this side of a VAX; maybe faster. There's not a lot of soft- ware, but there are compilers. My matrix benchmark runs (in C) so fast you can't really measure it. Anyone doing serious software development ought to know about Def inicon. Then there's a flier from the good guys at The Software Toolworks reminding me that Chessmaster 2000 makes a great Christmas gift. I. think they have a weird idea of BYTE deadlines, but, in fact, that's the best chess program I know of. There's a pile of stuff I collected at Spring COMDEX, including pc-ditto, which lets you run just about any PC pro- gram there is on your Atari ST. There's Borland's new C compiler and a big package of new stuff from Microsoft. It will all have to wait. The game of the month (other than Sundog for the Atari ST) is Faery Tale Adventure for the Amiga. This has fabu- lous graphics and a pretty good story line. It's hard to get started— I kept get- ting killed in the first three minutes, so I never saw much of the scenery— but my son Phillip has definitely mastered the system and is able to romp about bashing bad guys. The book of the month is Arthur Fer- rill's The Fall of the Roman Empire— The Military Explanation (Thames and Hud- son, 1986). Good reading and plenty of lessons for our time. With any luck, by next month I'll have written some new text-handling bench- mark programs. ■ Jerry Pournelle welcomes readers ' com- ments and opinions. Send a self -ad- dressed, stamped envelope to Jerry Pour- nelle, c/o BYTE, One Phoenix Mill Lane, Peterborough, NH 03458. Please put your address on the letter as well as on the envelope. Due to the high volume of letters, Jerry cannot guarantee a person- al reply. 302 BYTE- SEPTEMBER 1987 Borland's TUrbo Prolog, the natural introduction to Artificial Intelligence Nothing says Artificial Intelligence has to be complicated, aca demic or obscure. Turbo Prolog® proves that. It's intelligent about Intelli- gence and teaches you carefully and concisely so that you soon feel right at home. Which is not to say that Artificial Intelligence is an easy concept to grasp, but there's no easier way to grasp it than with Turbo Prolog's point-by-point, easy-to-follow Tutorial. l\irbo Prolog is for both beginners and professional programmers Because of Turbo Prolog's natural logic, both beginners and accom- plished programmers can quickly build powerful applications — like expert systems, natural language interfaces, customized knowledge bases and smart information- management systems. Turbo Prolog is a 5th-generation language that almost instantly puts you and your programs into a fascinating new dimension. Whatever level you work at, you'll find Turbo Prolog both challenging and exhilarating. l\irbo Prolog is to Prolog what TVirbo Pascal is to Pascal Borland's Turbo Pascal® and Turbo C® are already famous, and our Turbo Prolog is now just as famous. Turbo Pascal is so fast and power- ful that it's become a worldwide standard in universities, research centers, schools, and with pro- grammers and hobbyists. Turbo Prolog, the natural language of Arti- ficial Intelligence, is having the same dramatic impact. All Borland products are trademarks or registered trademarks of Bor- land International, Inc. or Borland/Analytica. Inc. Other brand and pro- duct names and trademarks or registered trademarks of their respec- tive holders. Copyright 1987 Borland International BI-1120 Inquiry 31 for End-Users. Inquiry 32 for DEALERS ONLY. jffl^ Borland's new Tfcrbo Prolog Toolbox adds 80 powerful tools Turbo Prolog Toolbox™ includes 80 new tools and 8000 lines of source code that can easily be incorporated into your own pro- grams. We've included 40 sample programs that show you how to put these Artificial Intelligence tools to work. Already one of the most powerful computer programming languages ever conceived, Turbo Prolog is now even more powerful with the new Toolbox addition. The Critics' Choice tf tf I really wouldn't want to choose the most important MS-DOS product devel- oped last year, but if I had to, I think it would be Borland's Prolog, which gives users a whole new way to think about how to use their computers. Jerry Poumelle, 'A User's View, ' InfoWorld Turbo Prolog offers the fastest and most approachable implementation of Prolog. Darryl Rubin, AI Expert 99 BORLAND INTERNATIONAL 4585 SC0TTS VALLEY DRIVE SC0TTS VALLEY, CA 95066 (408)438-8400 TELEX: 172373 Hirbo Prolog Features: A complete development environment A fast incremental compiler A full-screen interactive editor Graphic and text window support Tools to build your own expert systems Full DOS access and support A free Tutorial The free GeoBase" natural query language database An easy-to-understand 200- page manual All this and more for only $99-95! The new T\irbo Prolog Toolbox includes: 80 tools 8000 lines of source code that can easily be incorporated into your own programs 40 sample programs Business graphics File transfers from Reflex, 9 dBASE III, 8 1-2-3* and Symphony* Sophisticated user-interface design Screen layout and handling — including virtual screens Complete communications package including XMODEM protocol Parser generation Opportunity to design AI applications quickly 5th-generation language and supercomputer power to your IBM*PC and compatibles Only $99.95! People who deal wittf baud of McGraw-Hill information. Nobody understands the value of good informa- tion better than the people who work in computers and communications. And forthose people, no information carries more weight than McGraw-Hill's. We provide the databases, analyses and news that computer and communications professionals rely on to illuminate the workings of their industries. Everyone in the business keeps up with the latest developments by reading McGraw-Hill maga- zines. BYTE, Electronics and Data Communications are all required reading in the field. So are books from Osborne/McGraw-Hill. For MIS/EDP and communications professionals, Datapro's print and on-line directories and reports cover every aspect of computer hardware and software from mainframes to micros, as well as communications and office automation. For people who manufacture or sell microcom- puters and microsoftware, Future Computing is the andbyte use every bit number one information source for product tests, analyses and comparisons. People who specialize in communications are wired into CCMl/McGraw-Hill, to receive not only the hard facts on communications tariffs, but also in-depth analyses and bottom-line recommendations via print, software and on-line products. And when telecommunications and computer companies plan for the future, they rely on DRI Communications to provide them with forecasts of economic forces and industry trends. When it comes to turning megabytes into mega- bucks, nothing computes like McGraw-Hill information. McGraw-Hill, Inc., 1221 Avenue of the Americas, New York, N.Y. 10020. McGraw-Hill. Information that leads to action. Our Prices Are SoLow They fe Downright Embarrassing -n*!2 '?rf**» 1 •&&?#* I/O cat* Wet n***° *r . //o Art"* if.- (h ir* s^jjgfSJ* */«fl5 306 BYTE- SEPTEMBER 1987 Our low prices are leaving a lot of people red-faced. Like manufacturers who charge twice as much for similarly-configured systems. And managers who paid twice as much for their company's computer equipment. Our low prices include all the things that other manufacturers leave out — like monochrome monitors, graphics cards, and hard drives. SST Quantus I business computers are complete, ready-to-run systems, featuring name-brand components. At unbelievably low prices. So when you need high-performance computer systems at the right price, call SST. Anything else will leave you in the red. QUHNTLE/ Scientific Storage Technology One Butterfield Park, Spofford, NH 03462 (800) 255-0125 (603) 363-4564 (800) 356-9001 Inquiry 257 APPLICATIONS 4^- Potpourri Ezra Shapiro I've bitten the bullet. The Mac- intosh Plus and the QMS laser printer live on, but my faithful Compaq is sitting in a corner gathering dust. I'm now run- ning my MS-DOS programs on a Tandon AT clone, a PCA-40 to be exact, equipped with an EGA card and a Quimax monitor. The Tandon is not the slickest, fastest AT out there— it runs only at 6 or 8 megahertz— but I needed a stock machine for evaluating software in a clean environment. The "40" in the name indicates that this baby comes with a 40-megabyte, 40-millisec- ond hard disk drive. So far, it has run like a dream, right out of the box. Nary a problem. The monitor is a little fuzzy, and it broadcasts annoy- ing interference to the Mac two feet away, but that isn't Tandon 's fault. I'm pleased with the machine. I'm pointing this out for two reasons. First, I'll be able to look at software that requires AT speed and EGA graphics (such as desktop-publishing products). Look for some AT/EGA packages to hit this column in the next few months. Sec- ond, my estimates of software speed will now be based on 80286 performance levels rather than the old 8088. Bear that in mind when you're reading about MS- DOS programs here; if I say a program is merely a little slow, you'll know it's ab- solutely impossible on an 8088 machine. Name Change Last October, I wrote about a neat shareware MS-DOS text database prod- uct called Instant Recall. It's a great little data-retrieval system: simple, fast, and uncluttered. You can store up to 2 mega- bytes of free-form text records, each of which can be up to 60 lines by 80 charac- ters. There are no field names as such; you can search on any word or phrase that appears anywhere in the database. Be- cause the program can operate either as a stand-alone application or as a pop-up with cut-and-paste capabilities, I've been using it to store all sorts of fragments, in- MemoryMate, Mirror II, Tracker, Oyster, Guide, and The Comic Strip Factory eluding notes about appointments, stray electronic-mail messages, and reference materials for this column. I've been waiting for an update for some time, but nothing has happened. I suspect Michael Fremont, the program's creator, has been caught in the trap that catches many shareware authors: He's been too busy running a small business to spend much time improving the code. The good news is that relief is in sight. By the time you read this, the product will have become a commercial offering from Broderbund, and Fremont will no longer have to worry about marketing and distribution. The program will be known as Memory Mate (a horrible name, but there's at least one other package on the market called Instant Recall, so a name change was inevitable) , and it will sell for $69.95. The first release of MemoryMate will not be a major revision of the package. I've been told to expect a slightly differ- ent look to the program's menu and a method of shutting off the Control-key command triggers to avoid contention with keyboard macro programs, but not much else. I'm hoping Fremont will finally have the freedom to work on enhancements; I'll report changes when they happen. In the meantime, though, I still recommend the basic product; it's a winner. No Longer a Clone When Mirror, an MS-DOS telecom- munications package, entered the world, it did so as a copy of Crosstalk XVI. Sure, there were some enhancements, but Mirror was intended to appeal to those seeking a low-cost alternative to Cross- talk. It looked like Crosstalk, it acted like Crosstalk, and it read Crosstalk scripts. As you would expect, there was a lawsuit. Mirror lost. Now we have Mirror II (SoftKlone, $69.95), sporting a user inter- face that doesn't look anything like Crosstalk XVI. No more infringement. However, Mirror II still reads Crosstalk script files, and the new interface causes hardly a mo- ment's pause to anyone familiar with Crosstalk. This is my favorite stand-alone com- munications program. It supports more protocols and emulates more terminals than I'll ever need. A "learn" mode auto- matically creates Crosstalk log-on scripts (a nifty technique— Mirror stuffs the last 10 characters received from the remote computer into a variable so it can tie your actions to the actual prompts). If you ini- tiate a file transfer, you can lean on both Shift keys and send Mirror into the back- ground and continue working in the fore- ground; I've noticed no performance degradation when I do this. There's a built-in editor for creating scripts, mail messages, and so on. Com- mand lines can be edited without retyp- ing. You can monitor call progress if your modem supports the procedure. Mirror II can keep a time-stamped transaction log. And your old Crosstalk files can be run without modification . I used Mirror for a year. I've been using Mirror II for a month. I have been, and still am, extremely happy with this package. A Better Card File Tracker (Adaptive, $99) is the kind of software package that can best be termed a "no-brainer. " Designed for business- people with little patience for intricate computer procedures, it's an MS-DOS continued Ezra Shapiro is a consulting editor for BYTE. Contact him at P. O. Box 146069, San Francisco, CA 94114. Because of the volume of mail he receives, Ezra, regret- fully, cannot respond to each inquiry. SEPTEMBER 1987 -BYTE 307 APPLICATIONS ONLY client/contact database from Australia that runs either as a memory-resident utility or as a stand-alone program. Noth- ing spectacular, but it's simple and handy for anyone who has to make a lot of phone calls. The program presents you with a data- entry screen containing 15 predefined fields for name, address, telephone num- ber, and so on. Though you can change the field names, you can't alter the length of the fields or the appearance of the screen. Perhaps the most useful items here are the three date fields, for first contact, last contact, and next contact; one touch of a function key retrieves the records for all the calls you have to make today. Tracker has two secondary windows for each record. The first lets you attach a list of up to 20 keywords; the second is a utilitarian editor for adding text notes. Notes are stored by date; you can have as many as you like, provided you enter no more than— ahem— 64,000 lines per note per day. Records can be dredged up and reports printed, sorted on any field or the keywords. The program will dump out BE THE WORLDS FASTEST PROGRAMMER WRITE A RELATIONAL DATABASE APPLICATION IN TURBO PASCAL IN 6 SECONDS WITH: SYSTEM BUILDER and REPORT BUILDER SYSTEM BUILDER and REPORT BUILDER make for amazing savings in development time. Simply define the database application you want by giving the system your specifications and SYSTEM BUILDER will generate the appropriate TURBO PASCAL source code. This code is complete and ready to compile into a working application. ***Thousands Sold In over 30 Countries*** ' Up to 16 data files and 256 indexes simultaneously open, automatically maintained indexes. * Full screen painting with control over colors, ASCII characters, copying, pasting, etc. * Automatic maintenance of relational links, true mother-daughter operation. * Flexible! Link your own code. * Multiple selection criteria in reports, multiple control breaks, up to 1 6 files per report, range screens. SYSTEM BUILDER 149.95 REPORT BUILDER 129.95