10 74470°19388 "3 0 ° a ; : «tt: on ea ar” a”. ay fee ' Sd ,0° ‘ gt : aah, “6 : as oa Vag 7. _” s we i, f-.- a ve b =i vat g: ; f ° an * 9 ” ’ ' Fe ¢ Tr = a at «a BY? vfs )igitizaitys fan a . aan os ops a oes ae +e i ‘ a0) mal We Soes5, v4 f Fen “October November 1986 World’s Cheapest Unix System Public Domain 32000: The Hardware.................002. How to put together a UNIX co-processor system (complete with UNIX V) for under $1,000. Public Domain 32000: The Software.............eeeeeeee The software end of this UNIX compatible. PALs — What They Are And When To Use Them Side Sans Why the 32000 UNIX system was designed with PALs Special Features Controlling The Real World With Your PC: An Introduction To Microcomputer Electronics ...... eelhas A fun series that will take you from zero to an understanding of computer hardware. RFI/EMI Protection For Your Computer ae eeeaa le. nee Is your computer interfering with more serious things? Writing A Printer Driver For MS-DOS ......... essences Excellent. introduction to MS-DOS drivers and assembly language. Recover A Directory By Reading & Write Disk Sectors ic acorns ve 8465 ca eh Seah a Maes Recovering your files and your sanity. a nee bf THE PC 8700 AT-STYLE KEYBOARD INCORPORATES EVERY IMPROVEMENT IBM DESIGNED INTO THEIR ADVANCED “AT” KEYBOARD. QUALITY SO GOOD, IT’S BACKED BY AN UNPRECEDENTED TWO-YEAR WARRANTY! Advanced design features include: e Separate Numeric Keypad simplifies data entry e Status Lights for Cap, Num and Scroll Lock helps eliminate typing errors e Extra-wide Control and Return Keys for ease of use e Return Key placed in “standard typewriter” position for touch typists Selectric layout for Office Standardization ¢ Positive Tactile Feedback e Keyswitches rated for 50 million keystrokes e Made in USA e 2Year Warranty BORLAND’S AWARD-WINNING SUPERKEY INCLUDED! GET THIS BEST- SELLING KEYBOARD ENHANCER SOFTWARE — VALUED AT $69.95 — AS PART OF THIS AMAZING OFFER AND CAPTURE THE POWER OF MACROS! SuperKey’s macro capability is remarkable. It literally turns a thousand keystrokes into one. e Exclusive screen data Cut & Paste © Screen Privacy and Protection ¢ Time & Data Stamping ¢ ProKey Compatibility e Data Encryption e Keyboard Lock ¢ Keyboard layout customization e Integration with SideKick e Pull-Down Menus ¢ On-Line Help and much, much more! ORDER NOW — CALL TOLL FREE 800-826-5398; IN CA 800-592-9602 _______ KEYBOARD/SUPERKEY BUNDLES AT # $99.95 EACH. PLUS $10 SHIPPING AND HANDLING IN THE U.S.A.* C1 ENCLOSED IS MY CHECK FOR $109.99 FOR EACH BUNDLE ($116.45 FOR CA RES. — SALES TAX INCL.) PLEASE RUSH ME OVISA OMC O NUMBER EXP. DATE ________ SIGNATURE NAME ADDRESS CITY 4. STATE TELEPHONE _ ® COMPUTER TYPE & MODEL PC Jr, AT&T and Corona computers require adaptors available at a nominal fee. Call for pricing. ZIP BLES * c, XT, Al ara, PC Jr. AND COMPAT| FAR” BARGAIN OF THE YEN Bath Hardware & Software INCLUDES BORLAND’S SUPERKEY AWARDED “BEST OF 1985” BY PC MAGAZINE RETAILS ALONE FOR $69.95 CRITICS’ CHOICE “Who Can Pass Up a Deal Dept?” John C. Dvorak, Infoworld, 3-10-86 “The best part of the keyboard is the feel. It is ideal!’ PC Productivity Digest, 5-86 “The keyboard's construction is solid .. . also quick and responsive to the touch. It is ideal for anyone who wants to or has to replace their PC keyboard ... At $129.95 DataDesk’s keyboard is a bargain. The PC 8700 keyboard with SuperKey for that price is a steal.” Computer Shop Talk, 3-3-86 “DataDesk International has designed a sturdy and hand- some keyboard that has a tactile response... and bundled with SuperKey is the PC hardware bargain of the year.” Charles Humble—Computer Editor, The Oregonian “DataDesk’s is genuinely a nice keyboard... It feels nice ... ican type much faster and much more accurately on it than most others ... and it’s inexpensive. It costs only $129, compared to around $300 for the Keytronics 5151.” Harry Newton, Publisher, Teleconnect, 5-86 Ss L4]SeOnrcanp cONNer The DataDesk CG 1-800-826-5398 PC8700 Keyboard 1-800-592-9602 inside Calif. dataciesk INTERNATIONAL 7650 Haskell Ave. (iiamamamant Van Nuys, CA 91406 818-780-1673 vst The KeyTronics 5151 Keyboard PLUG INTO SAVINGS! HARD DRIVES 3 mw (5 mw Fallouts) with instructions may have cosmetic defects but are fully operational $8995 LIMITED SUPPLY ON HAND Name: — Model: Megs: — Size: Price: . POWER SUPPLY KITS Tandon (New) ae 26. pn - $ 399.95 ‘(suitable for above) Rodime (New) 202E 2% 5.25 Full 399.95 $6995 (includes P.C. Board) CMI (Used Tested) = 6426 26 0 5.25 Full 299.95 WARNING: Improper use of these items can be dangerous CMI (Used Tested) 6640 40 5.25 Full 489.95 Quantum (New) 540 45 5.25 Full 699.95 Atasi (Used Tested) 3046. 46 _ 5.25 Full 649.95 Maxtor (Used Tested) ‘1050. 50 5.25 Full 649.95 Micropolis (New) ae 85 5.25 Full 1,194.95 BARE FRAME) "Seagate . ST419 15 5.25 Full 359.95 Ball Brothers TV-120 (shown) !6mhz, Xerox 820 compatible, 12” B/W, P-4 phosphor. $4995 SWITCHING POWER SUPPLY a CONTROLLER CARDS Audiotronic 964-04 Hitachi MD 1431 Fd TTUXY Xerox 820 compatible TTUXY Xerox 820 compatible D.T.C. 1403-D (shown with optional software and adaptor) Real Power From a Famous Manufacturer delivers: 12 VDC..79 amp 12 VDC 1.5 amp 1 8” 851, DSDD and 8” 1000 hard drives 10 amps at SV, 8 amps at |2V, measures only 8.5 73 ; ‘i contro! two ‘ two type hard drives. by 4.5” and is only 2.25” thick . ; 9” Green 13” Green $ 249 with pinouts 39 (limited supply on hand) 3 9 $49 ype ‘ NEC 140 ANB4 Composite video or $ 95 + SV (@ 8amp TTUXY Xerox 820 compatible TTUXY , o ; - 24V (@ Samp 12 VDC .8 amp 12VDC HOST ADAPTER FOR ABOVE CONTROLLERS . ey ee is isi Sc een (for most popular Z-80 computers) x 49 4 9 The Winif Adapter and software + 24V (@ Samp $ ; $ + $3995 BUILDING A ROBOT? WE CAN HELP! STEPPER MOTORS $5QO95 Xebec Controller, auto boot with your software (advanced diagnostic disk) for XT PC clones with up to 33 meg. SI995 SA 450 FLOPPY DRIVES DSDD (Brand new in boxes) 48 T.P.I. Full Height; 5.25 Sages BUSINESS | TELEPHONES BRAND NEW 6 button business telephones all the standard features including buzzers and ringers looks the same as picture. Color, choc. brown. Superior model #M061-FD02 Superior model #M092-FT-402 ‘A" shaft, 200 steps per rev. 35” 0z.0f 4" shaft, 200 steps per rev., 200” oz. of TH E SE N Sl BLE torque 5V (| amp torque, 3.0 V. (4 4.0 amps. 51/4’ DISK DRIVE i a 4 Copal model #SP-57 Airpax model #LA82120-MI 1/16” Shaft, : A" shaft, 7.5° steps 12V, 36 OHM 1S° steps, 5V, 65 OHM $695 $495 UNIVERSAL STEPPER MOTOR DRIVER KITS FOR DIRECT CONTROL = Til Ki— GNIVERSAL STEPPER MOTOR ‘ FROM YOUR COMPUTER = PERFECT FOR ROBOTICS AND MANY | CABINET KIT . MIE.MLL Filter, 6 AMP (Surge Protection Power Switch (Power Supply Shield @WConnector and Fan Cutouts Constructed of heavy gauge aluminum, this utility disk drive case will accommodate: 5/4" hard disks, floppy drives, half heights, full heights, % heights, controller card and single board computer. Overall dimensions 10%" x 10" x 7” Color is TAN on SHO SALE 56995 Without Power Supply = ON LINE WITH | UNITED PRODUCTS Take advantage of the many items that space does not allow us to advertise. Use your computer to down load our weekly specials and hard to find items. On line 24 hours a day. 7 days a week. 300 or 1200 baud, even parity, 8 bits with one stop bit. : The phone number is: (206) 682-5593 New items are added weekly. Don’t miss out, call each week. Model #23 Medel #77 $13599 42995 DC FANS 12 Volts @ 6W, 4.5” S i 995 di) united products, inc. @ Control almost any stepper motor, forward/REVERSE and step sequence. @ For stepper motors rated 1.7 VDC — 12.0 VDC @ Uses a power supply with an output between 3.0 VDC and 12.0 VDC ®@ Modifications included for motors rated above 12.0 VDC @ Inputs/outputs are ona standard 22 pin edge card connector (.156 spacing) 4'2 x 64 card, G-10 epox. TECHNA-KIT TECHNA-KIT cat# U.S.M.D.-C SAME SPECS. ASU.S.M.D.-C cat.# U.S.M.D. except a stand-alone driver $99 95 @ On board clock (user optional) $ | 995 @ No edge connector 1123 Valley Hours: 9-6 Seattle, WA 98109 Sat. 9-5 PHONE (206) 682-5025 Terms: All orders are shipped F.O.B. Seattle, Wash. C.0.D’s are OK with cash or certified check MasterCard and Visa accepted On orders over $50.00 in the continental U.S. we pay the freight. All advertised items are subject to prior sale MICRO CORNUCOPIA, #32, Oct-Nov 1986 1 * MICRO CORNUCOPIA, #32, Oct-Nov 1986 B AROUNDTHEBEND———™ By David Thompson Hi Pops! -I’m not really ““Dad”’ “Y’d like to introduce David Thompson, father of us all. aun Z Boy, that introduction Bol my attention. Not that I don’t like being a father, but when ‘‘all’’ means the more than 400 computer fanatics attending SOG V, it’s more . than your classic scene where the little girl runs up, flings her arms around you, and wails, ‘‘Daddy.”’ In fact, I’ve sometimes wondered what I’d do if I were waifed that way. If the child were absolutely adorable, I’d probably confess my lack of self-control and start adoption proceedings. (Erin would love a younger sib- ling.) But I’m not sure how. one goes about adopting some 400-odd people (some of them old ‘enough, and odd enough, to be my parents), and I’m not sure how I’d explain that many indiscretions to Sandy. ““You see, sweety, it was a dark and stormy night. The moon was full, the bats making their rounds. I was alone in the computer room when a harried looking little man in a musty white lab coat scurried by looking for raw material to use in a cloning experiment and...’’ Sandy’s smarter than that. Gary set up the introductions this year, so I’m betting he’s behind this. There’s no question in my mind that he needs to speak next year, and I need to introduce him. Speaking Of Gary © . Gary Entsminger got married the end of August (so by the time you read this it'll be too late to save him). He’s now living in Davis, California where Alison, his new bride, is attending UC Davis. Gary will still be editing and writing for Micro C (hooray, hooray). Hard Drives I’ve gotten some very ‘good feedback on my hard drive article in issue #31. One person has written to say that his 20 Meg CMI drive has been working fine, for a whole month. Another noted that Siemens has been putting out shoddy drives so long, they couldn’t be Japanese. One thing I forgot to mention in that article. Many drives, including the Seagate 225s (20 Meg) run quite warm. If you put anything directly above them, they get hot enough to generate read errors (the platter expands as it heats). Put your winnies on top of the drive stack so they'll stay cooler; the floppies won’t Mike Maurice, member of a large. Portland, ~Oregon PC group, called me the other day with the following winnie info: About six months ago, the Portland market was flooded with Micropolis 20 _Meg drives (Tektronix had shut down a product line). Some of those drives have (continued on page 78) October-November 1986 Issue No. 32 Features 6 18 22 30 36 38 60 Dave Rand & George scolaro Public Domain [~ ih. 32000: The Hardware A $400 build-it-yourself 32000 co-processor system that plugs into clones or 280 systems and runs UNIX! Dave Rand & George Scolaro Public Domain 32000: The Software Theory behind the software eee between the 32000 and the host. Dave Rand & George Scolaro PALS-What They Are | And When To Use Them Programmable array logic (PALs), What do they do? How can you design with them? Bruce Eckel Controlling the Real World with your PC: An Introduction to Microcomputer Electronics Like to understand hardware but can't ~ get past go? Join Bruce as he starts from zero and moves quickly into some really interesting projects. Exciting series. Rex Buddenberg RFI/EMI Protection For Your Computer Is your computer’ $ power cord putting the kabosh on prime time TV? This’ll raise your popularity with the rest is the family. Dave Thompson The SOG Report Join us for a look at the SOG that was Don Fletcher Writing A Printer Driver For MS-DOS | A printer driver? MS-DOS has a printer driver! But, it’s not like this one. Excellent tutorial on writing 8088 assembly language and on writing drivers. 66 70 88 CONTENTS Gary Entsminger Recover A Directory By Reading & Writing Disk Sectors Using MS-DOS interrupts for practical purposes. Leroy Searle Computers And Education In Central America Know where your closet computers could go and really get used? Sigi Kluger 2 Megabytes On the 68020 Sigi piggy-backs another meg of RAM on the DSI-020 board. Columns 26 C’ing Clearly Creating memory resident programs in C. 44 86 World . SOG V, Taiwanese miscues, and MS-DOS environments 52 Kaypro Redefining the CP/M Kaypro’s key pad in Modula II 56 Pascal Procedures Low level futzing from a high level language. 72 The S-100 Bus — Is 20¢ on the dollar a bargain? Not necessarily. 74 In The Public Domain | -SIG/M changes direction: the latest from New Jersey. — 85. Culture Corner 86 On Your Own : | . Dave found a really good book on consulting. 82 Technical Tips Future Tense 92 96 By Gary Entsminger Tidbits A computer learns to heel (and gets a new leash on life). The Last Page Help your program figure out the type of video board. MICRO CORNUCOPIA, #32, Oct-Nov 1986 3 i Free Software Catalog At Dave Rand’s public domain for- um at SOG V, I promised to find you the name and publisher of a book that one of the attendees was asking about. The book is called ‘‘The Free Software Catalog and Directory.”” Written by Robert A. Froehlich, it’s published by Crown Publishers, Inc., One Park Ave., New York NY 10016. It’s a cross-referenced listing of pub- lic domain files available for the CP/M operating system. I’ve found it very _useful for quickly finding stuff in the SIG/M and CPMUG collections. It also provides a brief description of each file or collection. I don’t hesitate to recom- mend it to other SYSOPs or anyone needing this kind of information. I had a- ball at SOG and enjoyed very much meeting Dave Thompson and the others there. I especially en- joyed those late night sessions at the dorm. The trip was worth making for those alone! Dave McCrady 13324-138 Street Edmonton Alberta Canada T5L 2B4 PC Speedup I just finished Larry Fogg’s PC speedup described in issue #31. Over- . all, it went well. Only one call to your tech support line with questions. My machine is a K16. It ain’t fun to work on. I had to remove some slow memory. There was one solder bridge and one wire soldered to the wrong place. Since the Speedset program didn’t work with this machine, I installed a switch at your suggestion. Now every- thing goes like hell. . The graphics routines are much fast- er too. I’d be glad to help out anyone in the Spokane area who’s having problems with this conversion. John van Veen E. 2230 11th Spokane WA 99202 (509) 535-5131 More On Hard Disks I have been building 8MHz V20 XT clones lately, and having researched. boards, suppliers, and prices, I have a few words about hard disks. The Tandon 3 1/2” drives are OK. They are shock mounted, which makes them particularly good for port- ables, but they seem very slow com- pared to others I’ve used. The rumors that these drives are self-parking are false (the same is true with the Ro- dimes that came with the Compacs). My understanding is that only the more expensive voice-coil drives that use much less juice to position the heads can be made to sense when the power goes off and quickly park the heads on the last track while there is still a bit of juice left in the circuits. The Seagate ST-225 is still the old standby, but it’s not shock mounted, and must be carefully bolted in from underneath. (Four #8 very short bolts ‘hold them to the chassis, accessed by holes in the bottom of the clone cases. You must place washers in between the drives and the chassis and torque them down evenly and carefully. I usually cut an edge off the washer with wire cutters so it fits flat against the side of the chassis.) Otherwise, it won’t boot up all the time, or will get senile when looking for data. The newest technology is the Adap- tek controller card which compresses data before it is stored on the drive, and expands it after it is read. Thus, a 20 Meg drive can store 30 Meg and I/O speeds up about 33 percent. Seagate has come out with their ST- 238 for use with this card, and West- ern Digital is about to release their own version of this controller technol- ogy. . However, I’ve had problems using Concurrent PC-DOS with this system. It works on the CP/M partition, but you must format the PC-DOS partition under Concurrent, and then files writ- ten by Concurrent cannot be accessed under PC-DOS and vice versa. All of which brings up a few ques- tions: Why is Digital Research Concur- rent never fully compatible with the standards set by Microsoft and IBM, why don’t they seem to care, why are they such a pain in the ass to deal with, and why doesn’t anyone else come out with a fully compatible mul- ti-tasking DOS so I wouldn’t have to use Digital Research’s program and put up with their lousy attitude? Everex/Western Digital cards come with a disk containing Fmtdrive.Exe which does the physical format (rather than using DEBUG and having the controller do it). This program seems to work fine on all of the drives and controllers I’ve used. I’ve been warned that the shipdisk program on the same disk (which allows you to park more than one hard disk, one at a time, and gives you an OK message so you know the heads are really safely parked) will not work correctly with other cards. If you haven’t mapped bad tracks during Fmtdrive (drives usually come with a list of bad tracks), use Norton Utilities disktest (DT) to lock out bad tracks before entering any data. It’s a good idea to run this program regular- ly as well as Chkdsk/f from your MS- DOS disk. | _ Finally, for clones or parts, check out Ishvar Technology (formerly Avatar . Systems). They have the best quality and prices that I’ve found, and Jim is very knowledgeable and honest. Look for his add in Computer Shopper, or call or write at 43571 Sierra Drive, Three Rivers CA 93271, (209) 561-3139. Harv Koplo AVROM Systems (formerly Slipped Disk Computers) RR 11 Box 217 Springfield IL 62707 More On Mix C In response to R.W. Odlin’s letter about Mix C that appeared in Micro C Issue 29: Mr. Odlin wrote to me after reading my review of Mix C in the MAXIMUL newsletter (the Lobo Max-80 newslet- ter edited by Glen Guyer, 120-C3 North Pacific, San Marcos, CA 92069) concerning a discrepancy in our tim- ings of the string.c benchmark. (He reported 54 seconds, while I measured 880 seconds without running the ob- ject code through a Mix-supplied speedup utility and 465 seconds after speedup.) Mr. Odlin discovered that instead of coding the for-loop in the string- length function: 4 MICRO CORNUCOPIA, #32, Oct-Nov 1986 QC88s C Compiler . Concurrent C . Coder’s Prolog in C | Fi Op, Ge me ra YACC & PREP Small-C compiler for 8088 tiny-c interpreter & shell . Xlisp 1.5a & tiny-Prolog C Tools (512) 258-0785 Free shipping on prepaid orders for (p = s; #s t= '\O'; s++) t] return (s - p); he wrote the following: for (p = s; *s I= '\O's s++) return (s ~- p); This will definitely have an effect on the execution of the loop! (It would execute just once.) In his letter, Mr. Odlin also noted that he could not get the register version of this function to compile. I have found a work-around for this problem. Mix C will not let you code the following sequence: string(s) register char *s; but will allow you to code it if you create a dummy function argument and declare that first: string(s, j) int j; register char *s; However, all of this is: academic | C CODE FOR THE PC source code, of course GraphiC 3.0 hi-res color plots a ae eel The Austin Code Works 11100 Leafwood Lane Austin, Texas 78750-8409 No credit cards $90 $45 $45 $25 $25 $20 $20 $20 because Mix C doesn’t actually use a register for this variable. The timings . are the same with or without the register declaration, All in all, I am quite happy with Mix C. Its complete implementation allows me to try just about anything appear- ing in the magazines and numerous C books. Although its execution speed is quite slow, its compile and link times are fast, and for beginners like me, that’s important. Spencer R. Lepley 1655 Capital Circle SE, Lot 12 Tallahassee FL 32301 Editor’s note: Thanks for all the great information, John, Dave, Harv, and Spencer. This is one of the top rated columns in Micro C because of you. However, I must complain: — You guys are falling down a bit. In all these letters, there’s not a single reason for me to drag out my apple box and expound. What am I going to do, write a longer editorial? I spent one whole afternoon trying to contact other editors to see how they were DSD86, The PC-DOS Debugger DSD87, The PC-DOS Debugger with 8087 Support. 99.95 DSD80, The CP/M Debugger SoftAdvances P.O. Box 49473 e Austin, Texas 78765 © (512) 478-4763 1-800-232-8088 faring: three had disappeared, six had taken the afternoon for lunch, and the last had fallen asleep reading old listings. Wake up! You guys can do better than this! So, I’m declaring November ‘‘Harass An Editor Month.’’ Get out there and harass an editor. (Editors need to make a living too.) Take your choice: a city desk editor, a newsletter editor, a political editor, a full-screen editor, a serious editor, even me. (And if your letters are particularly good (bad?) and particularly short they'll get printed.) Write: Harass An Editor Micro Cornucopia PO Box 223 Bend, OR 97709 Clone Report I recently bought an AT clone from a company in Austin TX called Com- puadd. The machine’s an 8MHz with 640K RAM, a 20 Meg. CMI disk, a 1.2 Meg. floppy, an Amdek monitor, and a Hercules clone monographics board. (continued on page 95) MICRO CORNUCOPIA, #32, Oct-Nov 1986 5 Public Domain 32000: The Hardware This is for all of you who want to put a computer in your clone or CP/ M machine. (Sorry, that was a cheap shot.) Actually, this is the cheapest way known to hacker or human to build a truly powerful system (UNIX System V if you wish). With hardware floating point that outruns DEC 11-70s, 2 Meg of DRAM, DMA, and a memory man- agement chip, this $400 system is an incredible hardware bargain. See the SOG V article in this issue for information on a public domain oper- ating system for this machine. ur primary goal in designing () 32000 based system was to come up with a low cost system without compromising per- formance. One of the unique aspects of the design (which was first present- ed at SOG V) is that it has been released to the public; schematics, PAL equations, interface software, and the PCB artwork. For this reason, we named our design PD32. (We are, however, restricting commercial copy- ing of the system, see the note at the end.) We chose the National Semiconduc- tor 32000 chip set (second-sourced by Texas Instruments) because it’s inex- pensive, is a mature product, and was designed to support high level lan- guages. The total cost of both the hardware and UNIX System V, with which the system runs, should be under $1000. The version of UNIX ‘available for. this board is the full AT&T UNIX System V release 2. The port was performed by ZAIAZ Communications and is AT&T and National Semicon- ductor approved. About The 32000 The 32000 series includes the timing control unit (TCU), the central process- ing unit (CPU), the memory manage- ment unit (MMU), the floating point - unit (FPU), and the interrupt control unit (ICU). Currently four CPUs are available in the 32000 series; they are the 32008, 32016, 32032, and 32332. The 32000 series is unique in the microprocessor world in that it is the only family that maintains 100 percent upward and downward software com- patibility at the binary level. This compatiblity means the end user doesn’t need to change software when changing CPUs. Of the four CPUs, we chose the — 32016 for its price and ease of board routing (the board has only two lay- ers). The 32016 still has a full 32-bit internal architecture but has a 16-bit external data. path. To reduce pin count both the CPU and MMU multi- plex their data and address buses. In other words, data and address infor- mation are put on the same set of pins. Hardware Design. Now that we’ve covered some of the background, let’s take a close look at the design. From Figure 1 we can see that the TCU, CPU, MMU, and FPU literally bolt together. To understand how the rest of the system interfaces to these four devices, we need to _ understand the timing of a bus cycle. Addressing The CPU places the logical address onto the data/address bus during T1 and pulses its address strobe (ADS) pin. If an MMU is in the system (as in this design) ADS from the. CPU con- nects to ADS of the MMU. The MMU then performs any necessary page ta- ble lookups and translations, places the physical address onto the data/ address bus, and pulses the physical address valid (PAV) pin. This is per- | formed in the TMMU state. This pin becomes the system-wide address strobe pin and also connects By Dave Rand and George Scolaro 72 Longfellow St. Thousand Oaks CA 91360 (805) 493-1987 into the TCU. The TCU, on receiving the ADS signal, generates either a read (RD) or write (WR) signal during ‘T2 and T3. During T2 and T3 the bus becomes a data bus with data either being read or written by the CPU or MMU. The final T4 state is used internally by the CPU to prepare for entering an idle bus condition (if the 8- byte prefetch queue is full) or for . starting a new T1 state. | Wait States Since the TCU generates the RD and WR signals, wait states may be re- quested by asserting either the CWAIT, PER, or WAITn signals. The TCU. generates READY, which the CPU and MMU sample and wait on as necessary. The CWAIT is a continuous wait signal. WAIT1, WAIT2, WAIT4, WAITS... allow from 1 to 15 wait states to be digitally selected. - We did. not use the PER signal in this design. It modifies the bus cycle so the 32000 can talk to slow peripher- als such as UARTs. The TCU generates several other useful signals: data bus enable (DBE) which is used to enable data bus transceivers (which don’t exist in this design), timing state output (TSO) which is a signal that comes out very early in T2 and lasts through T3 (used by the DRAM controller), CTTL (TTL buffered PHI1), and FCLK Sa es fre- quency). . Latching And Decoding Since the data and address buses are multiplexed together we need to sepa- rate them into two buses for the EPROMS, the ICU, and address de- coder PAL (U3 DEC32). Figure 2 shows U14 and U15 which latch the 16 least significant address lines using the inverted system address strobe signal (ADS). The high order address lines Al6 to A23 are latched by the CPU/ (continued on page 8) a em mm Ne Tn mer 6 MICRO CORNUCOPIA, #32, Oct-Nov 1986 This ts the Modula2 compiler everybody’s ainda Or... Mae ‘Mo at its absolute best. It’s a fully integrated development environment that takes into account what you need asa programmer. Without leaving the Editor, you can call the compiler, linker and utilities. “With Logitech’s Modula-2, you'll have the ability to edit several files at once, “comparing, window to. window,. various code modules. You can even move from -Window-to:- window compiling, linking, debugging and running. The compiler has the kind of power and room to breathe that you really need in today’s complex applications. It is as easy to use as Turbo Pascal, without your programs being limited to 64K of code. At your command will be the libraries of modules that make Modula-2 a programmer’s dream. It has essentially the same structure as Pascal with the major addition of a library organization of code modules that allow you to put together programs on a solid, block-by-block, foundation of proven code. Whether you’re working with a module of your own making, or one of the many in our library, you'll find the system by which each module is identified, described and stored an organizational masterpiece. And that’s at the heart of Modula-2. Underneath the sophisticated system is a Modula-2 compiler that is the result of years of development and proven use in industry. We run on the Vax’, and we run on the IBM PC. And the code is portable-from one to the other. Best of all... you can have it right now! Logitech Modula-2/86 Complete with Editor, $ Run Time System, Linker, Cursor-posi- 89 tioning debugger, 8087 Software Emula- tion, BCD module, Logitech's extended library, Utility to generate standard .EXE files, Turbo Pascal (and standard Pascal, too) to Modula-2 translator (included without charge until 8/1/86), and much, much more! Logitech Modula-2/86 with 8087 support Even if $129 you haven’t yet gotten an 8087 co-pro- cessor, you can still use this version. Logitech Modula-2/86 Plus For machines with $ 512K or more. Takes advantage of the 189 larger memory to increase compilation speed by 50%! Supports 80186 and 80286 as well as 8086 and 8088. Includes 8087 and 80287 support, too. Window Package Now you can build true win- $ 49 dowing into your Modula-2/86 code with ease, too. Very powerful and very full, yet only 15K in size. Features virtual screens, color support, overlapping windows and a variety of borders. Run Time Debugger (source level) Much more 5 69 powerful than just a symbolic RTD. Display source code, data, procedure call chain and raw memory. Set break points, assign values to variables, pinpoint and __ identify bugs in your source. The ultimate professional’s tool! Utilities Package Features a post-mortem de- 5 49 bugger for static debugging. If a program you've written crashes at run time, the situation is frozen, and you can pinpoint, in source, the cause of the error and the data at that moment. Also includes a disassembler, a cross reference utility and a “version” utility that allows conditional ‘ compilation. Make Utility Automatically selects modules af- fected by code changes for quick and minimal re-compilation and _ relinking. Even figures out dependencies for you. Library Sources Source code for our major library $99 modules is now available-for customiza- tion or exemplification. ROM Package If you need to produce rommable code, call our 800 number for further To place an order call our special toll free number 800-231-7717 in California 800-552-8885 Special offer until 8/1/86! includes Free! $49.95 value Turbo Pascal translator! Now, you can take your library with you! $39 COHOSCSTOHCHOHSHSHESEHHESHEHEOHESEHEHHE HEHEHE H OBER H EES Y I'd like to take the next Cs, logical step in programming. Please send my copy of Logitech Modula-2/86 to the following address: OVISA OMasterCard O Check Enclosed Card Number Expiration Date Signature Name Address City State Here's the configuration I'd like: O Logitech Modula-2/86 $89 O Logitech Modula-2/86 $129 O Run Time Debugger $69 with 8087 support (source level) O Logitech Modula-2/86 Plus $189 O Utilities Package $49 Please add $6.50 for shipping O Make Utility $29 and handling. O Library Sources $99 Totalenclosed$___ {California residents, please add applicable sales tax) LOGITECH LOGITECH, Inc. 805 Veterans Boulevard Redwood City, California 94063 Telephone (415) 365-9852 For European pricing, please contact: LOGITECH SA Box 32, CH-1143 Apples, Switzerland Telephone 41 (21) 774545 Zip____ Phone ( ) 0 Window Package $49 And include the indicated items: FeSO SHAS SESSHOSEHHSHHSSSHSHSHSHSSHSHHSHSHEHSHEHEHHHEHHEOSHEESEEHHE SESH HSHHCHEOHHEE ; a information on this package. SCHRSSCHOSHHEHCHEHRSESESHHCSEEESH SHH HOEHEHE GEESE SCHHHHOHHE Please call our 800 line for: GO Information on our *VAX version Ci Site License and University Discounts O Dealer and Distributor information “Turbo Pascal is a registered trademark of Borland international MICRO CORNUCOPIA, #32, Oct-Nov 1986 7 PD32: THE HARDWARE . (continued from page 6) _ MMU for the full bus cycle, so at this _ point we have a separate 16-bit wide ‘ data bus and 24-bit wide address bus. The DEC32 PAL takes several of the -address lines and generates the PPORT, INT86, EPROM, ICU, and _ RAMS signals. PPORT is the select for -the parallel port which forms the - PD32-to-host data interface. INT86 is a signal used to interrupt the host or set a flag that the host can sample to see - if the PD32 has a request waiting for service. EPROM is the select line for the two EPROMS (remember the 32016 has a 16-bit wide data bus). ICU is the chip select for the ICU, and RAMS is the chip select for the dynamic memo- DEC32 also generates a_ software reset signal that is combined with -TRESET (the power-on reset signal from the host) which connects to the “input reset pin of the TCU. DEC32 _also takes several of the host signals (ISEL, IA1, IA2, IOR, and IOW) and generates a signal to clear the flip flop . U2 (via pin 13). This half of the flip flop is set whenever the PD32 at- tempts to interrupt the host. Thus the host may honor the interrupt (the Z80 host design does not use interrupts), or it can poll the interrupt status via a status read. Parallel control PAL U1 takes the - output of the interrupt status flip flop . and makes it available on IDO. U1 also generates the signals to clock data into the data latch when either the PD32 or the host performs a data write cycle, and the data enable output signal when either the PD32 or host performs a data read cycle. _ The data latch is a 74AS646, a very handy chip. It has two back-to-back transparent latches (in a glass case). with tristate capability. Thus it acts somewhat like a one-byte FIFO. The other half of U2 is used to keep track of whether the data latch, U5, is full or empty. The PAL U1 and the flip flop form the control circuit for manag- _ing the data latch, U5. This design ' forces wait states on both the PD32 -and the host to synchronize data transactions. Wait states are asserted if either the PD32 or host attempts to write to the data latch if it is already full, or if either attempts to read the data latch if it is empty. We designed the software protocol so that in all situations the PD32 rather than the host will be placed in wait states. Plus, we designed the PD32 so that the DRAM continues to be re- freshed even if the CPU is forced to indefinitely wait (this cannot be as- sumed of the host and certainly not the IBM PC/AT). Parallel Port Vs. Dual Port In case you’re wondering why we - ‘chose a parallel port interface rather than a dual port approach, the parallel port approach has many advantages in this design, some of which are listed below: . — very simple interface requirements on the host. The IBM PC/AT or Z80 or Slicer make ideal hosts for the PD32. — very fast data transfer rate. 250Kbytes/sec on a 4MHz Z80, and up to 500Kbytes/second on an IBM AT or PC with a V20 or V30. — easy to debug the interface via the host by output commands with a | _ debugger while monitoring the signals on the PD32. — data from the host is read by a. software loop on the PD32: This means that the CPU can read the data and transfer it to the logical address . with the MMU actually mapping the address to the physical address. Thus, data from the host does not have to be double buffered. . The last point is very important. since UNIX requires that the data be transferred to the logical address. In a dual port system the host would move the data directly to the physical ad- dress. Since the UNIX System V on the PD32 supports demand paged vir- tual memory, logical. pages are not necessarily stored contiguously in physical memory. This complicates the software in a dual port system since the host would have to read the MMU translation table entries for every 512° byte block of data it was transferring. The ICU’s Function The ICU performs several tasks in this design. First, it generates both real time interrupts (60Hz time slicing for UNIX) and software interrupts inside UNIX, and also accepts interrupts from the host on IR13. Second, since in this design the ICU is programmed to have eight general purpose outputs, - GO/IRO to G7/IR14, we use these to perform the following: — When the GI1/IR2 output goes low, U7’s /1Q output latches low causing the DEC32 PAL to switch out _ the EPROMs in low memory and select the DRAM. (On reset, the 32000 starts execution at memory location 0. _ Thus we want the EPROMs at 0 | _ “initially, but once the PD32 is up and running, we want RAM at location 0.) — G2/IR4 if low causes the EPROM software to perform a full memory test every time the host resets the PD32. This helps you debug the memory circuit. — G3/IR6 may be Siunitoned with a meter, and if low indicates that the self-test performed by the EPROM has_ failed. This information is also output to the data latch so that the host can check the status of the PD32 after the reset command. The DRAM and EPROM are fairly self-explanatory (Figure 4). Both EPROMs are selected’ whether the CPU performs a byte or word access .since_ the EPROM can be read only. The DRAM, on the other hand, is - organized as four banks of 512K bytes each. (A total of 2 megabytes is sup- ported and automatically sized by the EPROM software.) There are upper and lower bytes (to create the 16-bit word). The 32000 series has no alignment Testrictions on data read/writes or in- struction fetches. Thus the memory has to be organized so reads and, More importantly, writes to individual bytes are supported. The 32016 signals the data bus width (whether the read or write is 8 or 16 bits) using the AO and HBE signals. If AO is low, the low byte is active (assuming HBE is high). If HBE is low then the high byte is_— - active. These signals are shown on the DRAM controller schematic (Figure 3). DRAM Control Explaining the interaction between the DP84412 (U18) and the DP8409AN- 2 (U20) is beyond the scope of this article, so we'll just treat them as a single unit (refer to the series 32000 hardware databook). This design al- lows a wait state to be inserted into a (continued on page 14) STL SSP I Pa SR SS SSR SS 5 2 EICRE 8 MICRO CORNUCOPIA, #32, Oct-Nov 1986 9861 AON-PO ‘ZE# ‘VIAODNNYOD OUIN Pa 700IN +E “7/408 /ASTO -ADY PHI4 PHI2 eTTL FoLK}S 7Ro |} 7WA CTTL FCLUK /RAO /WR Figure 1-- Main Processor Section. ADoO — AD45 AiG - A23. OL 9861 AON-39O ‘Ze# “VICODNNUOD OUIN Ui4 : 74ALS573 RD JQ) Jd [OR 1 INI 1D [to U6 4caALsoo u6B t Z4AL.S00 * USE 32202-6 {6 MHZ) WITH THIS DESIGN WHETHER A 32016-6 OR 32016-10 IS USED IND JOD |S JOR {OV INI | FLO U15 74ALS573 /PPORT ODIN /Tso /OBE ZISEL IAt IAe2 ZIOR IOW LA2s LA2e bLA2ai LAoB LAOS RSTO ISEt ITAi TAé ZIOR /IOW IRESET U5 74LS646 PARALLEL PORT CONTROL PAL /PPORT /JINT32 OD FO INS Jon Foot > [te [ry foe Figure 2 - Interrupt Generation And Address Decoding Circuits 986L AON-O ‘ZE# ‘VIACOODNNUOD OUWIN IL /WAITWA /WAITRO RESi DAPACS& ooh 3 14 18 RES2 DAPACS Figure 3 - Dynamic RAM Controller And Decode Circuit rai 9861 AON-9O ‘Ze# “VITCODNNUOD OWDIN Figure 4 - Memory Circuit 9861 AON-190 ‘ZE# ‘VIAODNNYOD OUDIN €L Ua ZBOCPU * ALL PINS THAT STAAT WITH THE LETTER °C‘ EG C23 REFER TO THE ORIGINAL CONNECTIONS THAT THE zB80 CPU MADE TO THE PCB SOCKET U2 74.9245 Figure 5 - Interfacing A Non-IBM PC/AT Host To The PD32 ‘PD32: THE HARDWARE (continued from page 8) DRAM read cycle by jumpering J7. -Even using 150ns DRAM, you need this wait state if you’re using a 10MHz ~PD32 and a DP8409AN-2 (slow ver- sion). If you have a DP8419 (fast part) in the system you won't need the wait. U20 multiplexes address lines for the DRAMs and generates the RAS, CAS, and WE signals. All the outputs of U20 that connect to the DRAMs are designed to drive high capacitance loads (typical of large DRAM arrays). The series resistors reduce under- shoot voltages caused by fast signals from U20, PCB trace inductance, and DRAM capacitive input loads. U20 and U18 also generate refresh cycles for the DRAMs with period RFCK (16 usec square wave from one of the internal 16-bit counters in the ICU). The refresh cycles and CPU/MMU cycles are arbitrated by U18. Once a refresh cycle is started, U18 keeps asserting wait states until it’s com- ‘plete. The circuitry that generates the CASL and CASH signals for the DRAMs is necessary, first to support the byte read/write capability of the CPU, and second, the word read/write requests from the MMU when it’s performing translation table upaates or fetches. The FLT signal trom’ the MMU caus- es the CPU to release the bus. In this design FLT is used as the equivalent to HBE from the CPU. The MMU will always assert AO low since it accesses word aligned data only. — | One final point regarding chip select: for the DP8409AN-2 (U20). In order to use the slow (cheap) DP8409AN-2 in systems with fast clocks (such as the 10MHz PD32) and still not violate its specifications, we keep it enabled. Because it’s always enabled it will constantly generate RAS/CAS cycles for all CPU bus cycles (including ac- cesses to EPROM, etc.). Then we use the RAMS signal to gate off the CAS signal from U20 unless we’re really accessing DRAM. Thus the DRAMs will see only a RAS cycle (a refresh cycle) when DRAM is not selected. The final part of the schematic is the decode circuitry in Figure 3 which is used to qualify the address from the | IBM PC/AT. If a Z80 is being used as the host, this decode circuitry is by- passed via J1, with the decoding being accomplished on a daughter board. CONN2 in Figure 5 is used to connect to a daughter board via a 26-line ribbon cable. The schematic of the Z80 daughter board in Figure 6 shows how to interface a non-IBM PC/AT host to the PD32. _ For more information regarding con- struction, debugging, software sources, and latest schematics, as well as the PD32 user’s group, contact: Dan Efron 8910 Westmoreland Lane ~ Minneapolis MN 55426 (503) 382-7643 (Micro C RBBS) Note: George Scolaro is maintaining the copyright on the hardware design and is restricting copying to small-quantity, non- commercial users. Any commercial produc- tion of this system must be by license through George. 14 MICRO CORNUCOPIA, #32, Oct-Nov 1986 VEDIT PLUS MULTIPLE WINDOWS POP-UP MENUS KEYSTROKE MACROS WINDOW 1 VEDIT PLUS is an advanced editor that makes your program development and word processing as efficient and easy as possible. VEDIT PLUS is simple enough to learn and use for the novice, fet has the speed, flexibility and power to satisfy the for (i:0; istermlim: i++) { most demanding computer professional. ptr = malloc ( NODESIZE ): VEDIT PLUS is particularly suited for if (4) writing all types of programs and head : tail = ptr: lengthy documents such as reports or else { manuscripts. tail - next:ptr; é . : tail:ptr: This shows how VEDIT PLUS can perform i windowing. One window is used for word processing, a second for program development, and the third for commands. blidlist ( infile ) FILE *infiie:. register 1. struct node “ptr: tail- next = NULL: load _str( &(tail- header), i return ( termiim | WINDOW $ VPLUSPC .COM INSTALL .EXE LIHARD .BAT T -BAT LIGHT .COM ENVI .COM *.NUM DISK -DIC VEDIT INI RAM2 DIC BM THES DIC a LIGHT — .HLP RAM3 .DIC PRINT -.EXC INSTALL .INI For over six years VEDIT has been the choice of professionals who demand the most powerful edit- ing software available. CompuView has once again enhanced this power with the latest VEDIT PLUS - you can now open windows to simultaneously edit several files, access editing functions with pop-up menus, use keystroke macros to speed editing and run other programs within VEDIT PLUS. Whether your needs are program development, technical writing or word processing, VEDIT PLUS is your answer. VEDIT PLUS is simple enough to learn for the novice, yet has the speed, flexibility and power to satisfy the most demanding computer pro- fessional. Its powerful macro programming lan- guage helps you eliminate repetitive editing tasks. If you take your editing seriously, you need VEDIT PLUS. With over 40,000 users, you can depend on VEDIT PLUS to perform consistently and reliably. As have GE, EDS, U.S. Navy, GM, Sperry and many others. VEDIT PLUS supports color windows on the IBM CGA & EGA and even windows on most CRT terminals. Available for MS-DOS, PCDOS, CP/M-86 and CP/M-80. List price $185. ‘To sum things up, VEDIT PLUS is a small, fast, sophisticated editor with a wealth of features and a good macro language. It offers many rewards for the dedicated programmer.” . Computer Language, Chris Wolf, Scott Lewis, Mark Gayman 6/86 ‘“VEDIT PLUS is a wholly remarkable program: blindingly fast, extremely powerful, and highly flexible.”’ Profiles Magazine, Robert Lavenda 4/86 VEDIT and CompuView are registered trademarks of CompuView Products, Inc. MS- DOS is a registered trademark of Microsoft. CP/M is a registered trademark of Digital Research. WordStar is a registered trademark of MicroPro. EXECUTE DOS PROGRAMS VEDIT PLUS FEATURES e Simultaneously edit up to 37 files of unlimited size. e Split the screen into variable sized windows. e ‘Virtual’ disk buffering simplifies editing of large files. e Memory management supports up to 640K. e Execute DOS commands or other programs. e MS-DOS pathname and CP/M user number support. e Horizontal scrolling - edit long lines. ' e Flexible ‘cut and paste’ with 36 text registers. e Customization - determine your own keyboard layout, create your own editing functions, support any screen size, any CRT. e Optimized for IBM PC/XT/AT. Also 132 column & up to 70 lines. EASY TO USE e Interactive on-line help is user changeable and expandable. e On-line integer calculator (also algebraic expressions). e Single key search and global or selective replace. e Pop-up menus for easy access to many editing functions. e Keystroke macros speed editing, ‘hot keys’ for menu functions. FOR PROGRAMMERS e Automatic Indent/Undent for ‘C’, PL/I or PASCAL. e Match/check nested parentheses, i.e. ‘{’ and ‘}’ for ‘C’. e Automatic conversion to upper case for assembly language labels, opcodes, operands with comments unchanged. e Optional 8080 to 8086 source code translator. FOR WRITERS e Word Wrap and paragraph formatting at adjustable margins. e Right margin justification. e Support foreign, graphic and special characters. e Convert WordStar and mainframe files. e Print any portion of file; separate printer margins. MACRO PROGRAMMING LANGUAGE e ‘If-then-else’, looping, testing, branching, user prompts key- board input, 17 bit algebraic expressions, variables. e CRT emulation within windows, Forms entry. e Simplifies complex text processing, formatting, conversions and translations. e Complete TECO capability. e Free macros: © Full screen file compare/merge e Sort mailing lists e Print Formatter e Main menu CompuView 1955 Pauline Bivd., Ann Arbor, Ml 48103 (313) 996-1299, TELEX 701821 SANYO | Prices don’t get any lower. MBC 1200 SPECIFICATIONS: * Two 2-80A (main and subsidiary) CPUs with no- wait mode for fast execution, substantial memory capacity (RAM 64KB, ROM 4KB). © High-resolution full graphic function with 640 x 400 dot matrix display. ® Choice of 33 or 40 line text mode. ¢ CP/M operating system complete with assembler, editor and all utilities. * Easy-to-use Sanyo graphic BASIC. ¢ One (MBC 1200) or two (MBC 1250) internal double-sided, double-density, double-track, 51/4" slim-type 640KB formatted mini floppy disk drives. ® Keyboard with 15 user-programmable function keys. Interfaces for Centronics printer and one RS- 232C port provided. © Free software from Micropro: Wordstar, Mailmerge, Spellstar, Infostar, Calcstar & Basic. @® SANYO MBC 4000 FREE SOFTWARE FROM MICROPRO MBC 4000 SPECIFICATIONS: e MS DOS - CP/M 86 operating system with a SANYO M BC 1 200 editor, assembler and all standard utilities. ¢ 128KB RAM memory capacity, expandable to 2 R E E sO FIWA R | | e race for one Centronics printer and one FRO M M | [e- se) | sie) e 12" aoee een monitor display screen for easy viewing. © One (MBC 4000) or two (MBC 4050) internal double-sided, double-density, double-track, 5%" slim-type mini floppy disk drives with ° 640KB formatted capacity. ® Keyboard with 15 user-programmable function keys. e Thousands of FREE public domain software available ¢ COMPAT disk utility for over 50 e 8086 Microprocesser e Runs MS DOS & CP/M 86 e Floppy disk drive with 640K CP/M formats—only $39 © Free software from Micropro: Wordstar, — Capacity : e Professional accounting soft- ea a e RAM expansion to 640K ware available available. e 20 meg hardrive optional : EDUC ATIONAL e Utility pack including BIOS & schematics option $499 Special pricing for printers DISCOUNTS At Micro Supply Organization we offer: the lowest prices on Sanyo computers and software. With prices like these you can afford the convenience of owning and operating more than one computer. ‘399 Special pricing for printers We also offer the User Support Hotline for questions concerning your computer: - or about software availability. Whether you need one or.a dozen computers, Micro Supply Organization is the place to get them. _For our catalog with compiete pas Na a details and prices, send $2 to: _ Micro Supply Organization, inc. : ; i “4909 Stockdale Hwy. #180 é 4 - Bakersfield, CA 93309 emer: ioe ORGANIZATION INC. 15% Restocking on Returned Orders 16 =MICRO CORNUCOPIA, #32, Oct-Nov 1986 MAXIMUM P Don’t be fooled. No hidden cost! In keeping with industry trends MSO is bringing our customers high performance P.C. compatibles and accessories. The GEM-ST™ features the V20-8 chip which runs at three times the speed of the IBM- PC XT* and also runs CPM 8080 software. FREE 5 module intergrated software 22 meg sub-system with tape back-up $599 w/purchase FORMANCE. GEM-ST Specifications: CPU - V20-8 Chip & Run CPM Software RAM - 640K Clock Rate - 4.77 or 8 MHZ Disk Interface and Drives - (2) - 5-1/4" floppy drives 360K ROM BIOS - Legal BIOS Keyboard - AT Style Keyboard Expansion Slots - 8 IBM* compatible slots Power Supply - DC Voltage and Max Current + 5V @ 15A- -5V@ 5A + 12V @ 6A-12V @ 5A Imput Voltage 115/230V Meets UL/FCC Standards Standard Interface - (1) - Serial RS-232-Port (1) - Game Port (1) - Parallel Printer Port Clock - Clock calendar battery backed up Video - TTL Hi-Res Monographics Card and TTL Monitor Operating System - MS-DOS Warranty: 1 year all parts. 90 day labor. GEN-AT Specifications: CPU - 80286 RAM - 1 Meg Clock Rate - 8 MHZ Disk Interface and Drives - (1) - 5-1/4” floppy drive 1.2 Meg ROM BIOS - Legal BIOS Keyboard - AT Style Keyboard Expansion Slots - 8 IBM* compatible slots Power Supply - 200 Watt Meets UL/FCC Standards Standard Interface - (1) - Serial RS-232-Port (1) - Parallel Printer Port Clock - Clock calendar battery backed up Video - TTL Hi-Res Monographics Card and TTL Monitor Operating System - MS-DOS Warranty: 1 year all parts. 90 day labor. m > 0lo7 Wale], 7.8 DISCOUNTS At Micro Supply Organization we offer the lowest prices on GEM computers. With prices like these you can afford the convenience of owning and operating more than one computer. We also offer the User Support Hotline for questions concerning GEM com- puters. Whether you need one or a dozen computers, Micro Supply Organization is the place to get them. For our catalog with complete details and prices, send $2 to: Micro Supply Organization, Inc. 4909 Stockdale Hwy. #180 Bakersfield, CA 93309 15% Restocking on Returned Orders AMERICA ORGANIZATION INC. MADE IN Performance for the power user. The GEM-AT™ runs eight times as fast as an IBM-XT"™, for your multi- tasking and multi-user needs. Including MS-DOS 3.2 with G.W. Basic. The GEM-AT™ is a complete turnkey system with everything to plug and go! te Intergrated software 32 meg sub system. with tape backup $799 w/purchase 805/393-2247 MICRO CORNUCOPIA, #32, Oct-Nov. 1986 17 Public Domain 32000: The Software There are two tricks to integrating two systems: hardware and software. Interestingly, the best trick is the software. This is the software part of the PD32 series. ne of our challenges in de- signing the PD32 software “was to support UNIX(tm) and still make it portable enough to be | moved to a number of different oper- ating environments. Thus, the soft- ware implements a multi-channel in- terface to consoles, disks, printers, and the like, while using only the single 500K/second I/O channel available on the PD32. Since the PD32 cannot be. talking and listening at the same time, a protocol must be used. PD32 employs two different protocols; both will be discussed below. Getting Started When the PD32 first powers up, the PROM is bank switched into the PD32 memory space at physical address 0. The PROM code tests the CPU reg- isters, initializes the Interrupt Control Unit (ICU), and waits a few microse-. conds for the RAM refresh to start. Then it tests to see if that’s the first _ power-on of the day. If it is, the PROM does 256 write cycles to the RAM, just to make sure the RAM is awake. A hard memory test follows, to check memory size and ensure that the memory is good. If the memory fails, a Ox5a (5A hex) is output to the PD32 data port. If the memory is good, then a 0x00 is out- put, and the PC I/O processor knows everything’s OK. Subsequent resets of the PD32 do not repeat the full self- test, but instead do a quick test of the RAM, unless you install the ‘always test’ jumper. Protocol #1 After the PROM completes the self- test, it drops into the first protocol. This simple protocol puts the host system in control of the PD32 and supports only three functions: reading PD32 memory, writing PD32 memory, and starting program execution. This is handled with a 6-byte packet. Request type (1 byte) Length (2 bytes) Address of data (3 bytes) By Dave Rand and George Scolaro 72 Longfellow St. Thousand Oaks CA 91360 The request type must be (R)ead, (W)rite, or (E)xecute. The length field tells the PD32 how much data to read or write. The address field tells the PD32 where in memory to get or put the data. With this simple protocol, it’s easy to do diagnostic programs from the PC side since the PC is the master and the PD32 is the slave. Figure 1 shows a sample of this proto- col. . To let the other side know that data will be coming, the transmitting side ‘always asserts the other system’s Figure 1 - Host-PD32 Communications Protocol #1 PC PD32 0x00 *R*,1000,0 [data] *R*,1000, 1000 {data] ,100,4000 {data] ,0,0 Comments PC issues a reset (hardware signal) PD32 issues an interrupt and sends the ‘all ok’ signal PC issues an interrupt and tells the PD32 to read 1000 bytes into address zero PC issues an interrupt and tells the PD32 to read 1000 setes into address 1000 PC issues and interrupt | and tells the PD32 to write 1000 bytes PD32 issues and interrupt and writes the data back to the PC PC issues and interrupt and tells PD32 to execute the program Figure 2 - Host-PD32 Communications Protocol #2 straddr a “Hello, world! \r\n" PC —séBD32- | . ,0,sarc,dst, 15 [Hello, world! \r\n] . ,20 ‘W',20,straddr,0,15 Comments. PD32 issues interrupt PD32 sends RPB to PC PC issues interrupt PC asks for data from straddr PD32 issues interrupt PD32 sends data across PC prints the string PC issues interrupt PC sends completion code 18 MICRO CORNUCOPIA, #32, Oct-Nov 1986 - hardware interrupt line. This gives the receiving computer plenty of time to load up registers and drop into the appropriate loops. This protocol as- ‘sumes nothing but memory, and fur- ther assumes that the PC is always the master. For these reasons (plus a few ‘more), once UNIX is running, we switch toa different proteol Protocol #2 The multi-channel protocol (MCP) “was designed to give UNIX the best possible interface. Because it’s an op- erating system, UNIX expects to see , disks, printers, and consoles. It does . NOT expect to see a single 500K/ second channel! Therefore, we gave UNIX an interface with a very straight- forward protocol designed to have low overhead and still provide maximum | flexibility. To initiate a request, a 20-byte Re- _ quest Parameter Block (RPB) is passed, _ the format of which is below: Offset Contents 0 Request type (R/W/T) 1 Device ID (0-255) 2-5 Source address 6-9 Destination address 10-13 Block count 44217 Data 1 18-19 Data 2 The RPB supplies enough informa- tion to allow a channel to be set up for a Read or Write operation. The Device _ ID specifies the channel and is as- signed in the following way: Device ID Use 0 Memory only 149 Logical disk drives 10-19 - Physioal disk drives 20-29 Console drivers 30-49 Reserved 50-59 printer drivers 60-127 Available 128 IOCTL on device | 129-254 Reserved for system use 255 Terminate | The grouping of like devices alkowis _ UNIX to use a single code fragment in (continued next page) speeds of BDS C; are the fastest avail ble, even (especially!) on floppy- -based systems lust ask any user! With 15,000 +: package fo 1979, there are lots of users ... New! Ed Reams s RED text editor has been’. -. \jntegrated into the package, making. BDS ca a * truly complete, self- contained: C development system. Powerful original features: CDB symbolic Complete i asin price: $150. All soft-sectored-disk formats, | oe CP/M, available off-the-shelf: Shipping: free, by. UPS, within USA for prepaid orders. Canada: $5. Other: $25. VISA, MC, COD, rush orders accepted. :DSofiiware, line. : BD Software, Inc. P.0 Box 2368 Cambridge MA 02238. 617 * 576 ¢ 3828 MICRO CORNUCOPIA, #32, Oct-Nov 1986 PD32: THE SOFTWARE x i (continued from page 19) Figure 3 - This is a sample of the interface activity during UNIX load. The sample starts on the 73rd line, continues for 52 lines, and is shown to give readers a taste of UNIX code. The complete activity list Is available on the Micro C bulletin board. . a device driver to service many, physi- "cal devices. There must also be a way of telling when an operation is complete, since “ transmitting the RPB does not com- prise the whole transaction! The Com- pletion Parameter Block (CPB) sent by the PC accomplishes this. Below is the 20 - MICRO CORNUCOPIA, #32, Oct-Nov 1986 _ format of the CPB: : rt=W id= 20 src= 3278 dst= _ % 2 rt=W id= 20 src= 3278 dst= Offset Contents : rt=I id= 1 src= 2de90 dst= 0. Completion type (C) . : rt=I id= 2 sre= 2defl dst= ‘ raciians oe : ot id= 1 src= 00 dst= eb % s rt=R id= 1 sre= 00 dst= 47400 Mise. MEE : rtsR id= 1 src= 800 dst= 47400 14-17 Data 1 : rt=R id= 1 sre= 14000 dst= 47400 18~19 Completion status : rt=R id= 1 sre= 3400 dst= 47400 (0-ok, nz-failed) 3: rt=R id= 1 sre=20cc00 dst= 47400 . : rt=R id= 1 sre= 1800 dst= 47400 To write to the console, for example, : rtsR id= 1 heal tono dst= 47400 | st the request pe to the D1 Barteria _ 20, the’ source address to the address : rtsR id= 1 sres126c00 dst= 47400 “. of the string we want to print, and the : rt=R id= 1 sre=127000 dst= 47400 . length to the length of the string. At : rt=R id= 1 sre=127400 dst= 47400 « - this point, transmitting the RPB to the : rt=R id= 1 sre=12c800 dst= 47400 PC will cause the string to be printed, 2 rt=R id= 1 sre=12cc00 dst= 47400 -- then a CPB to be transmitted back to : rt=R id= 1 sre=12d000 dst= 47400 "the PD32. See Figure 2. : rt=R id= 1 sre=12d400 dst= 47400 A similar méthod is used for all : ae a eros lennon date ae s rts = = = other devices, including disk 1/0. rteR id= 1 sre=t2b000 dste 47400 Watching UNIX come up via this : rt=R id= 1 sre=12b400 dst= 47400 protocol is interesting, however. The : rtsR id= 1 src=12b800 dst= 47400 first 52 lines (of anything interesting) s rt=R id= 1 sre=12be00 dst= 47400 are reproduced in Figure 3. The whole 2 rt=R id= 1 sre=127800 dst= 47400 thing is available on the Micro C * rtsR id= 1 sre=127c00 dst= 47400 bulletin board (503) 382-7643. : rt=R id= 1 src=128000 dst= 47400 ' : rt=R id= 1 sre=128400 dst= 47400 re : rtsR id= 1 sro=12a800 dst= 47400 Note: Dave Rand is maintaining the s rt=R id= 1 src=12a400 dst= 47400 copyright on the software and is restricting : rt=R id= 1 sre= c00 dst= 47400 - copying to small-quantity, non-commercial s rt=R id= 1 srce=129800 dst= 47400 ~. use. Any commercial production of this : a ve sane ia ane aie mush Derby. Heenee through: Dave : rtsR id= 1 sre=12cl00 dst= 47400 s rt=sR id= 1 sre=37f400 dst= 47400 : rt=R id= 1 sre=128800 dst= 47400 : rt=R id= 1 sre=129000 dst= 47400 = | : : rtsR id= 1 src=129400 dst= 47400 = . RPB: rt=R id= 1 sre=12c000 dst= 47400 = oo... , SE | 2 rt=R id= 1 srce=386c00 dst= 47400 = a ; a? : rt=R id= 1 sre= 1c00 dst= 47400 = cae | ee Be i s rt=R id= 1 src=20b000 dst= 47400 = oe Oe ie A . : rt=R id= 1 sre=20c400 dst= 47400 = ; oe : rt=W id= 20 src= 20136 dst= 0 = 8 | . : rt=W id= 20 src= 20136 dst= 0 = 18 .. . ‘i — : rt=R id= 1 src= 14c00 dst= 47400 - - a4 ne : rt=R id= 1 srce=10a400 dst= 47400 cnt= 1024 a a eee : rt=R id= 1 src= 4c00 dst= 47400 = : a — MONITORS — 15” ELECTROHOME HI-RES ~—COMPOSITE INPUT —1000 LINE RESOLUTION —GREEN PHOSPHOR —ATTRACTIVE CASE 15”” WELLS GARDENER —24 VDC —3 LINE TTL INPUT —GREEN PHOSPHOR —OPEN FRAME 12” SAMPO —AMBER, 3 LINE TTL INPUT —ATTRACTIVE WHITE CASE —WORKS ON IBM FOR TEXT APPLICATIONS! —HIGH CONTRAST 9”” AUDIOTRONICS —3 LINE TTL INPUT —OPEN FRAME 5” ZENITH —3 LINE TTL INPUT —GREEN PHOSPHOR —OPEN FRAME 5’”” MOTOROLA —3 LINE TTL INPUT —BLACK & WHITE —OPEN FRAME SYNC-SEPARATOR KIT USE WITH ANY 3 LINE TTL MONITOR ALLOWS YOU TO RUN 3 LINE MONITOR FROM A COMPOSITE VIDEO SOURCE! $12.95 — POWER SUPPLIES — VARIABLE 0-10 VOLTS DC $375.00 -—0-200 AMPS _ . —VOLTAGE AND CURRENT METERS —SINGLE PHASE AC INPUT —MADE BY SCR MEMOREX MULTI VOLTAGE. +5v6.5A -5.2v4A t15v5A LAMBDA LXS SERIES +5v 27.5A +5v 90A — FLOPPY DISK DRIVES — 3.5 EPSON SMD 100 —DOUBLE SIDED —IBM LAPTOP COMPATIBLE —AMIGA COMPATIBLE — 1 MB UNFORMATTED 5%"? OKIDATA % HEIGHT —DOUBLE SIDED, 48TPI —IBM PC/XT COMPATIBLE 5%” TEC FB503 —DOUBLE SIDED 48TPI —IBM PC/XT COMPATIBLE —QUIET! 5%"? TEC FB504 —DOUBLE SIDED 96TPI —720 KB FORMATTED! —RUNS ON IBM PC/XT WITH J FORMAT. SOFT- SPECIAL OF THE MONTH! EPROM PROGRAMMER FOR IBM PC $109.00 ¢ INTERNAL CARD WITH EXTERNAL ZIF POD ¢ PROGRAMS 2716 UP TO 27512 : ¢ SOFTWARE INCLUDED WARE OR DOS 3.2 (NOT SUPPLIED) SHUGART SA801R na —SINGLE SIDED, DOUBLED DENSITY —600 KB FORMATTED CAPACITY —NEW, NOT RECONDITIONED! J FORMAT SOFTWARE PACKAGE. . $43.95 ALLOWS USE OF 96TPi DRIVE ON IBM PC/XT 720 KB CAPACITY . $179.00 — HARD DISK DRIVES — 3.5 MMI 10 MB $249.95 —10 MB HALF HEIGHT —ST 212/412 COMPATIBLE —SHOCK MOUNTED IN 5%" FRAME —1 YEAR GUARANTEE —GREAT FOR PORTABLE! HIGHER CAPACITY DRIVES AVAILABLE CALL!! — HARD DISK CONTROLLERS — XEBEC S1410A REQUIRES HOST ADAPTOR OMT! 5510 PC/XT CONTROLLER. . —SHORT SLOT, LOW POWER CARD —COMES WITH CONFIGURABLE BIOS AND SOFTWARE TO HANDLE ANY 5%" HARD DISK —COMES WITH CABLES PACKAGE DEAL FOR IBM PC/XT: MMI OMTI CONTROLLER, CABLES $375.00 MAXWELL DESOLDERING STATION e SELF-CONTAINED (INTERNAL VACUUM PUMP) e FOOTSWITCH ¢ VARIABLE TEMP/VAC LEVEL ¢ 10 SPARE TIPS (Extra tips not available) $149.95 WE STOCK A FULL LINE OF IBM COMPATIBLE PRODUCTS PLEASE CALL FOR LATEST PRICES 1 YEAR GUARANTEE ON IBM COMPATIBLES . $139.95 HALTED SPECIALTIES co., inc. MA " TERMS: Minimum order $10.00. California residents add 827 E. EVELYN AVE., SUNNYVALE, CA 94086 IL ORDERS CALL: (408) 732-1573 3 CONVENIENT LOCATIONS “tia shart HSC Electronic Supply of Santa Rosa HSC Electronic Supply — saturday 9:00-5:00 6819 S. Santa Rosa Ave. 5549 Hemlock Street Cotati, CA Sacramento, CA WE SHIP (707) 792-2357 (916) 338-2545 C.0.D. 7% sales tax. Prepaid orders sent freight C.0.D. or call for charges, shipping will be added to credit card and C.0.D. orders. Prepaid orders over $100.00 use money order or certified check. Please do not send cash. Some items limited to stock on hand. Prices subject to change. PALs — What They Are And When To Use Them My experience with PALs, so far, has been mixed. They are the answer to a designer’s prayers and the bane of every independent repairman. Dave and George used PALs in the design of the PD32. The following is — as intelligible a look at PALs and GALs (this is now a family magazine) as any we've seen. And, for those of you waiting for me to say, “I never met a PAL I didn’t like, ’ hae | oe you're satisfied. AL (Programmable Array Logic) is a term used to-describe a - family of devices first introduced by MMI and now second-sourced by several companies including Texas In- . struments, National Semiconductor, and Advanced Micro Devices. PALs are a blessing for the hardware design- er and at the same time a possible: curse for the purchaser of a system. that has PALs in it. Drawbacks Of PALs — If a manufacturer goes out of business and does not release the PAL equations, then replacing faulty PALs may be impossible. — PALs have security fuses that, once blown, make it very difficult to find out how the PAL was =PEO- grammed. - — PALs tend to hide certain sections of a design that if not documented. make it very difficult to understand the design. — PALs are difficult to program if you don’t have access to relatively expensive programmers. On The Positive Side — PALs are a cheap, yet moderately secure, way to customize circuitry so it’s not easily duplicated by a competi- tor. -— PALs help speed design and help reduce parts count. PAL compiler. -— PALs provide speed for critical circuit areas. PALs are currently avail- able with a maximum of 12nsec from ‘input to output (propagation delay). PALs (at least bipolar PALs) are programmed by ‘‘blowing’’ fuses in a fixed array. You can select which fuses to blow to implement a logical func- tion by studying the switching array, _or.by using a PAL language. Languages such as PALASM (from MMI) and ABEL (from Data I/O) let ‘you specify logic functions in a high level language. The PAL language is then translated to a fuse buffer by the There are also PAL steillatore which let you test the de- ‘sign. | You sively the test vectors (a list of expected outputs for specified inputs) to test the software equation. The test vectors can also be used to test a . programmed PAL. upeteware can have bugs too). Which PAL Should You Use? Some programmers have PALASM. built in, such as the Storey Systems PAL programmer (one. of the more. inexpensive units around). Choosing the PAL type is initially a difficult step for an inexperienced designer to take, so here are a few hints: a — Determine how many output sig- nals you will need. Most PALs can have output pins reassigned as a so this is the first step. _ — Determine the number of output pins that need to be latched.. i Determine the number: of output pins. that must also be used as terms within the PAL. Some PALs do not allow all euipae pins to. be Meee: as feedback terms. . — Determine if outputs must be tristate.. Not all PALs suppor. tristate outputs. —-Determine the number of init pins that are required ote feed- back terms). .— Finally, based on a PAL that has By Dave Rand and George Scolaro 72 Longfellow St. Thousand Oaks CA 91360 satisfied the above requirements, com- mence writing the equations. PALs allow only so many “OR’ed terms, so the equations will. also help in decid- ing which PAL to use. Of course, it’s ‘normal. to have a requirement that cannot be solved with a single PAL. Also, certain types of problems cannot inherently be _ solved by PALs. PALs implement sum of products logic by using a pro- grammable AND array whose outputs feed a fixed OR array. Therefore, PALs can be used only when the problem can be fit into the size of the OR array (which is fixed for different PAL types). 7 Certain designs require the use’ ot bipolar PROMs, especially when ..the number of OR terms is relatively large (more than about eight). On the other hand, PALs can be used in : many situations where PROMs cannot, such as where a device with programmable tae or registers is eeduireds How To Use Your PAL Because there are so many types of PALs, .an example that shows all the uses is impossible. Instead, let’s look at a simple but typical use of a PAL — the PALI6L8. It has eight outputs, tristating on all outputs, speed-from 12nsec: to 35nsec, and various power ratings (dependent on speed). Our example (shown in Figure 1) is written in PALASM since. that’s one of the most common PAL languages. A This example shows most . ofthe features of a typical PAL file. The equations may be entered :in any ‘ot- der. PALASM uses the pin list (in order from pin 1 to pin 20) on lines 5 and 6:to assign mnemonic names ‘to physical pins. Line 1 specifies the PAL type so that PALASM can check the validity of pin assignments ae ue tion syntax. In line 8 the IF (SEL) syntax epectes that this output is to be in tristate if SEL is not valid (high): The ‘*’ sepa- 22 MICRO CORNUCOPIA, #32, Oct-Nov 1986 rating terms in line 8 indicates logical ‘AND’ ing (product term), and the ‘/’ indicates negation of the term. Thus if SEL is true (low on the /SEL pin), then DO will be true (low) if FLAG1 is true (high) or if FLAG2 is true (low). The ‘+’ on line 9 indicates logical ‘OR’ ing of the product terms. The SEL term on line 8 shows an output being used as an input term. The IF (VCC) syntax on line 11 means that the output, SEL in this case, is never to be tristated. Line 16 shows that the tristate con- trol may be a product term (never a sum of products). Since only a single . product term may be used to control | tristate signal, complicated tristate equations must be constructed as in line 8 and then used as a term. The rest of the lines (up to 31) should be studied based on the infor- mation presented above. Lines 31 to 37 are the test vectors for both simulation and functional testing of the PAL equations. The pin names that are to be tested start after line 31 and may extend to several lines as necessary. -The ‘L’ means low, ‘H’ means high, and ‘X’ means don’t care. Any input that has an ‘X’ will be cycled low and high during the simulation and func- tional test to insure that the output signal is not influenced. Output sig- nals with an ‘X’ will be ignored. After line 38, everything is treated as comment and is typically used by the PAL designer as notes. Any pin on a PAL (input or output) that is not required may be labeled ‘NC.’ Note that in this example we assigned an input pin the mnemonic AEN but didn’t use it in the equa- tions. PALASM ignores this pin as it ignores NC pins. The spare pins on a PAL may either be left floating or connected to signals that may later be incorporated into the PAL equations. — Needless to say, PALs are only the beginning of user programmable logic. With gate arrays, silicon compilers, Figure 1 - Using The PALI6L8 With PALASM PAL16L8 OW ONAU FWP = IF (SEL) DO = FLAG1 * /A0 ' « FLAG2 ® AO 10 2ND LINE IS USUALLY THE USER'S PART NUMBER, NAME AND DATE 3RD LINE IS THE DEVICE APPLICATION NAME 4TH LINE IS THE USER'S COMPANY NAME, CITY AND STATE /RD /WR AO Ai A2 A3 AEN FLAG1 /FLAG2 GND /D0 /OUT1 /OUT2 /OUT3 /OUT4 /OUT5 /SEL NC NC VCC 11 IF (VCC) SEL = /A0 © 7a # /A2 * /A3 * RD 12 + AO * /A1 * /A2 * /A3 * RD 13 | 3 14 IF (VCC) OUTI = /AO * A1 ® /A2 ® /A3 * RD 15 16 IF (AO ® a1 *® /A2 ® /a3 # 17 | 18 IF (VCC) OUT3 = /AO ® /A1 19 + /AO * /A1 20 21 IF (VCC) OUT4 * /A1 * /A1 3 . IF (VCC) OUTS Al FUNCTION TABLE | RD) OUT2 = VCC # a2 ® /A3 ® RD * A2 * /A3 * WR # ao # /A3 ® RD A2 * /A3 * WR A2 ® /A3 ® RD A2 ® /A3 * WR A2 * /A3 * RD A2 * /A3 * WR ;COMMENTS HAVE 3 SEMICOLONS AO Al A2 A3 /RD /WR /DO /SEL FLAG1 /FLAG2 LLLL UL Xx Xx LLLL UL XxX Lb 38 DESCRIPTION L x x L H 39 JUST ABOUT ANYTHING YOU WANT TO SAY ABOUT 40 THE PAL GOES HERE and standard cell technology, design- ers already can produce many compact custom devices. Make Way For GALs Recently Lattice Semiconductor in- troduced a new family of PALs called GALs (generic array logic). GALs offer the same features of PALs with the advantage of being electrically erasa- ble. (Editor’s note: I asked Sandy about this and she said GALs have more advantages than that.) The other feature of GALs, the ge- neric part, is that most of the PAL family may be replaced by either a GAL16V8 or GAL20V8 (20- and 24-pin respectively). GALs have a user pro- grammable architecture word that specifies which PAL they’re supposed to emulate. A designer can use GALs to develop a working design without spending a small fortune on one-time-only PALs. The current pricing of GALs is very competitive with PALs, and since they are functionally interchangeable, either may be used in the final design. MICRO CORNUCOPIA, #32, Oct-Nov 1986 23 WHO WE ARE Echelon is a unique company, oriented exclusively toward your CP/M-compatible computer. Echelon offers top quality software at extremely low prices; our customers are overwhelmed at the amount of software they receive when buying our products. For example, the Z-Com product comes with approximately 80 utility programs; and our TERM Il communications package runs to a full megabyte of files. This is real value for your software dollar. ZCPR3 Echelon is famous for our operating systems products. ZCPR3, our CP/M enhancement, was written by a software professional who wanted to add features normally found in minicomputer and mainframe operating systems to his home computer. He succeeded wonderfully, and ZCPR3 has become the environment of choice for "power" CP/M users. Multiple Commands per Line You can easily use multiple commands per line under ZCPR3. Simply separate the individual commands with semicolons. For example, "PIP B:=A:*.TXT;STAT B:”*.*" will copy files and then show you the STAT results. User-Programmed menu systems ZCPR3 comes with three different menu systems that you can use to create custom menu-driven "front ends” for your computer. This is especially useful for setting up menus for your spouse or co-workers to use the computer, as they never have to see the A> prompt. All they have to do is press a single key to run any single or multiple CP/M programs, and when the task is done, control is automatically returned to the menu (ordinary CP/M menu programs cannot do this). Extended Command Processing When you type a command under CP/M, it will only look for the program in the current drive . and user area. ZCPR3 gives you more flexibility by additionally searching other disks and user . areas when resolving commands. You have full control of this function, called the PATH. This is ' probably the one element of ZCPR3 that is missed most if you return to "ordinary" CP/M. Also, ZCPR3 supports the capability of grouping all your commonly used utility programs into a library file (*.LBR). This is great for systems with a small number of directory entries per disk, as the library file only uses one entry. It also has the advantage of reducing disk space requirements for a given set of programs, allowing you to put more programs on a disk. And the programs in the library file are invokable from the commandline just like any other program notin the library. eeicisn: Inc. 885 N. San Antonio Road, Los Altos, CA 94022 USA 415/948-3820 (order line and tech support) NAME ADDRESS TELEPHONE [1] REQUESTING LITERATURE DISK FORMAT Other Features There's much more to ZCPR3, like named directories, online help system, etc., but it can't be described on one page. If you would like more information, consider the books shown below. Z-SYSTEM Perhaps the only shortcoming of ZCPR3 is that itis not a complete replacement for CP/M. This is what the Z-System does. The Z-System. contains ZCPR3 and an additional module, ZRDOS, and is a complete replacement for CP/M. ZRDOS adds even more utility programs, and has the nice feature of no need to warm boot (C) after changing a disk. Hard disk users can take advantage of ZRDOS “archive” status file handling to make incremental backup fast and easy. Because ZRDOS is written to take full advantage of the Z80, it executes faster than ordinary CP/M and can improve your system's performance by up to 10%. INSTALLING ZCPR3/Z-SYSTEM Echelon offers ZCPR3/Z-System in many different forms. For $44 you get the complete source code to ZCPR3 and the installation files. However, this takes some experience with assembly language programming to get running, as you must perform the installation yourself. For users who are not qualified in assembly language programming, Echelon offers our “auto-install" products. Z-Com is our 100% complete Z-System which even a monkey can install, because it installs itself. Z-Com includes many interesting utility programs, like UNERASE, MENU, VFILER, and much more. Echelon also offers “bootable” disks for some CP/M computers, which require absolutely no installation, and are capable of reconfiguration to change ZCPR3's memory requirements. At present, only Kaypro conver have this option available. BOOKS We sometimes joke around the office that we are really in the business of publishing, not selling software. We have books. Lots of books. We have to have lots of books, considering how powerful our software is and the large quantity of different packages we offer. Here are our best sellers: ZCPR3: The Manual This is the "bible" for the ZCPR3 user. An exhaustive technical reference, bound softcover, 350 pages. Contains descriptions of each ZCPR3 utility program, a detailed discussion about the innards of ZCPR3, anda full installation manual for those doing their own installation. You could order it from B. Dalton, but why? Get it from us. ORDER FORM Payment to be made by: O Cash - O Check O Money Order O UPS COD 0 Mastercard/Visa: # |. Exp. Date California residents add 7% sales tax. Add $4.00 shipping/handling. 24 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Z sets you free! The Z-System User's Guide For those who are not technically inclined. This is an excellent tutorial-style manual filled with examples of how to use the power of ZCPR3/ Z-System most effectively, written by two highly experienced Z users. (One useris a lawyer, the other a writer; this proves that anyone can use Z and benefit from it.) 2ZCPR3:.The Libraries The extensive documentation for the libraries of ZCPR3, SYSLIB, Z3LIB, and VLIB. A must for any serious user of these programming tools. Loose-leaf notebook style; easy to work with as it will lay flat on your desk. THERE'S MORE We couldn't fit all Echelon has to offer ona single page (you see how small this type is). We haven't begun to talk about the many additional software packages and publications we offer. Send in the order form below and just check the "Requesting Literature" box for more information. Item Name Price 1. ZCPR3 Core Installation Package $44.00 (3 disks)* 2 ZCPR3 Utilities Package $89.00 (9 disks) 3 2Z3-Dot-Com (Auto-Install ZCPR3) $99.00 (6 disks)* 4 2Z3-Dot-Com "Bare Minimum” $49.95 (1 disk) 5 2Z-Com (Auto-Instal! Z-System) $119.00 (7 disks)* 6 Z-Com "Bare Minimum” $69.95 (2 disks) 12 PUBLIC ZRDOS Plus (by itself) $59.50 (1 disk) 13 Kaypro Z-System : Bootable Disk $69.95 (3 disks) 20 ZAS/ZLINK Macro Assembler . and Linker $69.00 (1 disk) 21 ZDM Debugger for 8080/Z80/HD64180 CPU's $50.00 (1 disk) 22 Translators for Assembler Source Code ; $51.00 (1 disk) 23 REVAS3/4 Disassembler - $90.00 (1 disk) 24 Special — Items 20 through 23 $150.00 (4 disks) © 25 DSD-80 Full Screen Debugger $129.95 (1 disk) 27 The Libraries. SYSLIB, Z3LIB, and VLIB $69.00 (8 disks) 28 Graphics and Windows Libraries $49.00 (1 disk) 29 Special — items 27, 28, and 82 40 Input/Output Recorder $129.00 (9 disks) IOP (I/OR) $39.95 (1 disk) 41 Background Printer IOP (BPrinter) $39.95 (1 disk) 42 Programmable Key lOP. (PKey) $39.95 (1 disk) 43 Special - : ll ey through 42 $89.95 (3 disks) 60 DISCA : Disk easton Sion. $39.99 (1 disk) 61 TER Eonineaics System $99.00 (6 disks) 64 Z-Msg Message Handling : System $99.00 (1 disk) 81 ZCPR3: The Manual bound, 350 pages $19.95 82 ZCPR3: The Libraries 310 pages _ $29.95 83 Z-NEWS Newsletter, 1 yr subsciption $24.00 84 ZCPR3 and IOPs 50 pages $9.95 85 ZRDOS Programmers's Manual 35 pages. $8.95 88 Z-System User's Guide - 80 page tutorial. - $14.95 “Includes ZCPR3: The Manual ITEM PRICE Subtotal Sales Tax Shipping/Handling Total nf ‘DD /N/ A 5 > LL IDLY transportable box for It even has a 30 day money back guarantee! More Hardware, Less Money! 2 double density disk drives 64K memory 80 CPS dot matrix printer 80 character x 25 line amber screen 300 Baud modem 4 expansion ports (2 @ RS 232, 1 @ parallel, 1 @ IEEE 488) Phone toll free . out of CA 800-222-5401 inCA 800-222-5403 right now to order your Actrix. More Software, No More Money CP/M 2.2 operating system C Basic and M Basic Perfect Writer word processor Perfect Speller spelling checker Perfect Calc spread sheet Perfect Filer P Font Telecommunications program 160 B Great Oaks Blvd. San Jose,CA95119 ggg (SC VISA ‘MasterCard ‘MICRO CORNUCOPIA, #32, Oct-Nov 1986 25 Taking C Into Assembly Language’s Domain Ron takes on resident programs (or temporary shell programs) this time. It’s amazing what he can do with a C compiler and a couple of library func- tions. ast fall the ‘‘in thing’’ was resi- Le programs. The MS/PC- DOS community had just discovered the joys of tinkering with the operating system, especially using Turbo Pascal .COM files, and legions of how-to code marched across the pages of PC magazines. (Oh, the vir- tues of interrupt-snatching.) Recently, I found myself stumbling back to residency to solve some very practical problems. Since the tech- niques involve potentials of C that are seldom discussed, perhaps a reminder or two might speed up some of your programming. Beyond The Batch File I’ve been hacking out some business software recently, mostly (I'll admit) in Pascal. Despite all its virtues, C doesn’t handle random files very easi- ly, and the El] Cheapo C I own doesn’t offer a genuine ‘‘double’’ float type. Even for government work, I need something better than 32 bits. Anyhow, when it came time to tie programs together — my own efforts and those of the Lotus Development Corporation — I first turned to batch files. To someone used to the limitations of CP/M’s .SUB files, the MS-DOS batch utilities are like a dream. For automating dull and repetitive com- ' mand line entries, such as those need- ed to run a C compiler and linker, they’re perfect. For a salable package, however, they have problems: - 1. Since .BAT files are just text files, they’re open to ‘‘improvements’’ from folks who think they know what they’re doing. I have better things to do than troubleshoot batch files for businessmen who shouldn’t fiddle with PCs. Also, to justify our fees we computer types need to preserve what the sixteenth and seventeenth century Englishmen would have termed our “‘mystery.’’ What they can’t see must be impressive. 2. The functions available for con- trolling program flow are very limited and agonizingly slow. Batch file ‘‘for’’ and “‘if’’ utilities make one think fond- ly of BASIC. 3. Batch files offer little or no control over the operating environment for the programs they call. The conditions you start with will be the conditions throughout. . 4. Batch files cannot call other batch files and then recover control of the program flow. Turn the corner and there’s no going back. Homegrown C-Shells Several weeks of frustration drove me to dig out two C library functions, ‘“‘system()’’ and ‘‘exec().’’ Though their exact configurations may vary Figure 1 - Simple C Shell eet) RGNGEN By Ron Miller 1157 Ellison Dr. Pensacola FL 32503 from this compiler to that, they are available in every package I’ve seen. On MS-DOS machines they seem to be domesticated versions of the DOS 2.0+ 4BH function call, which lets one program execute another by a sort of stack-the-pancakes effect: the subpro- gram is loaded (for-system calls, that subprogram is COMMAND.COM) in the first free memory space above the calling program. Control is then pass- ed to the subprogram, which does its thing and then returns control to the calling program. - (While retyping this column I finally opened up Micro C’s issue #31 and saw Laine Stump’s discussion thereon. Is that what they mean by parallel processing? For what it’s worth, I too think Turkey is the Land of heart’s desire. Are there still red pears at the Yalava market, Mr. Stump? How about the Doner kebab in Bursa?) If all this reminds you of the discus- sions of resident programs you read last fall, it should. All that’s different with a DOS 4BH call is that control passes directly back to the “‘lower’’ or system("copy c:\budget\taxes.wk c:\lotus"); system("cd \lotus"); exec("123.exe",""); system("copy c:\lotus\taxes.wk c:\budget"); system("del c:\lotus\taxes.wk"); Figure 2 - Copy Routine For Invalid Filenames filesend(source, target ) char *source. *target; int fout, fin; char buffer[BUFSIZE]; /* set BUFSIZE as big as you'd like, for speed */ if( (foutzopen(source,0)) == -1) error(); /#or however you wish to #/ if( (finscreat(target,0) == -1) error(); /*® handle errors */ while( write(fin, buffer, read(fout, buffer, BUFSIZE)) == BUFSIZE); sli mimi iimdeaia ceinmerseeioioeliedagiceeinitiimeereeemeemmniceeions 26 MICRO CORNUCOPIA, #32, Oct-Nov 1986 resident program after the ‘‘higher’’ program has finished, and the resident program removes itself from memory with an interrupt 20H call when it’s finished. No need to reboot the system to get rid of an unwanted patch to the operating system. Function 4BH is a shell utility, and the shell goes away when it’s no longer needed. At the simplest level, a C-shell mere- ly offers a memory-expensive substi- tute for a batch file. For example, if you wanted to copy a file on the “C:\budget’’ directory to your Lotus directory and then call up the spread sheet (your own version 1A that can’t use subdirectories), and then transfer the file back home, you could just ' write the code shown in Figure 1. Still, who would bother his compiler with such trivia? A sane person would use a batch file. But while you are in C you have all the power of the lan- guage. . Suppose you wanted to keep other folks’ hands off your ‘‘taxes’’ file. If you owned Lotus 2, you could encode it with a password to keep your mother-in-law out of your records. Even without that, however, you could make your secrets hard to get to by storing them as ‘tax es.wk1’’ in the ‘‘budget’’ directory. Try typing that into a ‘‘copy’’ command. Though no MS-DOS resident com- mand can handle the blank space in “tax es.wk1,’’ both C and assembly language can. handle it without a blink. For the two copy routines above, let’s substitute calls to a file read and write function (see Figure 2). _ Just include a filesend(‘‘c:\bud- get\tax es.wks’’, ‘‘c:\budget\tax- es.wks’’) and a filesend(‘‘c: \lotus\ tax- es.wks’’,’‘c:\budget\tax es.wks’’) in your C program, and you're safe. Well, safe from your mother-in-law, but not from a hot-shot kid who knows DEBUG. As we used to say back in Texas, ‘‘There haint no hoss that kaint be rode, and there haint no code that kaint be busted.’’ But the casual snooper can enter ‘‘copy tax es.wks...’’ or ‘‘/fstax es’’ all day with no success. Nor need one stop with name changes and transfers. Once launched (continued next page) Figure 3 - An On Screen Clock 3 Module for masm. DeSmet fans could go in-line with this. CODE — SEGMENT PUBLIC BYTE ASSUME CS:CODE ,DS:DATA PUBLIC —ourint,_putds savds DW ? ;storage for DS —puts: MOV CS:savds,DS ;storing DS in code segment RET —ourint: PUSH AX sheck=-save everything in sight PUSH BX sbut let's use. the subprogram's stack PUSH cx PUSH DX PUSH DI PUSH SI PUSH ES PUSH DS PUSH BP MOV DS, CS:savds MOV ES, CS:savds CALL _procss 3; calling C-code POP BP POP ' DS srestore everything again POP ES POP sI POP DI POP Dx POP cx POP BX POP AX IRET sand back to subprogram VALLI a /* the C module #/ finclude /* header for interrupt structures */ #define clkint Ox1c /* clock interrupt %/ #define timeaddr 0x46C /* ticks past midnight */ #define scrseg 0xb800 /* video ram segment--you could test for this &/ #define offset 3840 /* position on screen = lower left corner */ extern unsigned _code,_data; /* obvious segment addresses */ unsigned us[2],them[2], hand, index, tick, hour, minute, second; char time[]=: ® \160 \160 \160:\160 \160 \160:\160 \160 \160 \160"; /#reverse video */ long midtick; WTITTIT UT procss() = /# interrupt handler itself: called by assembly code*/ { -if(tick++%9) return; else tick=0; /* look every half second */ peek(0,timeaddr, &midtick,4); /* get tick count from low memory */ hoursmidtick/65543; /* 65543 ticks/hour #/ midtick %= 65543; minute = midtick/1092; midtick $= 1092; second = midtick/18; time[2]=0x30+hour/10; /* stuffing array for poking into video ram.*/ time[4]=0x30+hour% 10; ; : time[8]=0x30+minute/10; time[10]=0x30+minute%10; time[14]=0x30+second/10; time[ 16 ]=0x30+second%10; poke(serseg, offset, time, 18); /# Who needs an operating system, anyway? #/ /HHKELERRESHRSHKRERE/ main(arge,argy) /# put compound command line in quotes as argument */ int arge; char *#argv; int ourint(); /* declaring assembly language routine */ if(arge != 2){ puts(*USE: clock \"command_line\"\n"); exit(0);. } putds(); /#assembly language routine for storing DS in CODE segment */ peek(0,clkint#4,,them, 4); /* preserve old interrupt */ us[0]sourint; us[1]=_code; Si poke(0,clkint#4,us,4); /* insert our own handler */ system(argv[1]); /* pun applications program */ poke(0,clkint®4,them,4); /*nice children clean up after playing */ MICRO CORNUCOPIA, #32, Oct-Nov 1986 27 C'ING CLEARLY pene from page 20 into this C- shell business, I ee that I could alter and restore Lotus configuration files to ensure that my files were treated as I jolly well want- ed them to be, while letting my client have his own setups before and after. Memory could be altered, flags set, ports written and read, files hidden _and unhidden, screen modes changed, resident modules called and erased. If you can do it in C — and just what CAN'T you do in C? — it can be used to control the flow and access of a larger program. Only ethics and the haunting possibility that the power may go off in the middle of your best subversion, stands between you and total mastery of your (and everyone ‘else’s) programs. Semi-Resident C And then there are the interrupts. By altering and restoring the interrupt table down in low memory, your shell can control the operating system in ‘which commercial software works. This is, of course, the traditional prov- ince of resident programs. If the inter- rupt vectors are redirected toward part -of a shell program, you too have patched. the operating system, albeit ‘only temporarily, if. you restore the original interrupt table when you are finished. The old game of grab-hold-of-the- keyboard-interrupt is of course an ob- vious choice. The possibilities are de- lightful. Suppose you wanted to let somebody examine a file in a commer- Figure 4- Going All The Way main(arge, argv) int arge; char *#argy; int ourint(); char *malloc(); cial word processor but not alter it. A ‘bit of judicious interrupt 16H filtration, and the ‘‘write file’’ commands are not available. And all without patching the word processor itself. When that routine’s over, give them back their old interrupt 16H. Or seize the printer interrupt. I’ve used this trick to capture Lotus graphs in a binary file which can in turn be sent to the printer from my Kaypro (attached to my sole dot matrix printer). Anoth- er cable might have been simpler, but it was fun to see the Great Grey Lunchbox doing graphics. To illustrate the technique, I’ll do something less mundane. I'll take over the clock interrupt and use the ticks to update an on-screen clock display ev- ery half second or so. Maybe you’d like to see a clock on the screen while running Word Perfect. Though this will require a smidgen of assembly language to save some registers, if we are careful with stack variables (i.e., avoid them like the plague) we can do the real work in C. The whole pro-— gram is given in Figure 3. Find a batch _ file that can do that. A Few Elaborations 1. It’s unnecessary to pass the clock interrupt beyond my program, because interrupt 1CH is a cul-de-sac. Things would be more complicated if I had captured the keyboard or printer inter- rupt. 2. A more elegant run of resident C code could set up a short stack in the data segment of the C module, so we wouldn’t have to declare all the varia- unsigned topseg /* bottom of freeable memory #/ _. struct regs rr; putds(); us[OJ=ourint; us[1]=_code; poke(0,clkint#4,us,4); topseg = rr. ax=0x3100; rr.dx=topseg + data - interrupt (0x21, érr); 1+ (unsigned)malloc(0)/0x10 ; /*get paragraph beundaiy*/ /* terminate but stay resident */ _code; /*program size, in paragraphs # /* bye bye */ bles as statics. Unfortunately, some Cs — mine, for instance — use the DS register to address stack locations, too. It’s usually simpler to use the other guy’s stack. | 3. Since DOS is not reentrant, you're likely to freeze things up if you call a DOS or BIOS function from an interrupt. So I’m writing directly to the screen. In multitasking circles mine is what is called a ‘badly behaved program.”’ Frankly, I think lockups are even worse. 4, In some implementations, this | program will gobble up 64K+ for one little 7K semi-resident program. You can trim things down considerably if you’re willing to free up the extra memory with a DOS 4Ah call before the system() call. Just remember that if -you chop off the data segment, pre- vious stack variables — argv and argc, for example — are sent into the great beyond. There’s a reason why .COM files, which have no. stack segment, are almost always used for resident programs. Fully Resident C But it doesn’t have to be that way. The code in Figure 3 can easily be ‘made permanently resident if the end- © ing of main() is changed just a tad. Things are actually simpler. No need to save the old interrupt vector. Since malloc() returns the top of the static heap, I'll locate the first paragraph ‘boundary above my variables with a fake allocation call and then terminate and stay resident. Figure 4 shows the new version of main(). Just don’t try this if you plan to use automatic variables in your resident C code. You can, of course, preserve the old stack segment in the code segment, leave room for a short stack, store the new stack registers... Oh well, you get the idea. Take it from me. Switching stacks isn’t much fun. I did it, but. only after some know-it-all told me that .EXE files wouldn’t work as resi- dent programs. (And if I can write resident programs in C, why not de- vice drivers in C?. I'll let you know.) 28 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Nothing can improve your computer's productivity like a hard disk. HARD DISK SYSTEMS by Emerald Microware | If you have been thinking about moving up toa hard drive, why wait any longer? We have everything you need from the host board to acomplete turn-key system. Runs on the Xerox, Kaypro, or almost ANY Z80 system. HDS Host Board — The hardware you need to connect your computer to your hard disk controller board. e Interfaces to the WD1002 controller board ¢ Plugs into the Z80 socket, no other wiring required e Switch selectable I/O addressing ¢ Comes fully assembled and tested THE WINCHESTER CONNECTION by MICROCode Consulting The most comprehensive hard disk software package that you can buy. e Works with one or two hard disks — 5 to 64 meg ¢ Menu operated install, no software to assemble ¢ Complete testing and error handling e Warm boot from hard drive ¢ BIOS drivers install above or below CP/M, your option e Allows custom partitioning and mixed drives types ¢ Includes manual, format, test, park, backup, and swap utilities WD1002-05 HARD DISK CONTROLLER BOARD by Western Digital © 5 %" profile with standard power connector (+5 only required) e 40 pin host interface © Connects to ST506 compatible drives © WD2797 floppy disk controller and interface on board e Can control up to three hard drives and four 5 %” floppies COMPLETE HARD DISK SUBSYSTEMS by Emerald Microware e Hard disk subsystems with host, cables, software, hard drive, and cabi- nets with power supply. Fully tested and ready to go. e Internal hard disk kits availble for Kaypro computers © 10 and 20 meg units in stock, others by order e Available for Kaypro, Xerox, Morrow, and others 10 Meg Hard Drive Subsystem ............ 0.0... c eee eee $745.00 20 Meg Hard Drive Subsystem ................0 eee eee $940.00 . Host board with software ......... 0... cece eee eee $ 89.00 WD1002-05 Controller Board ............. 0. cece ee eee $185.00 20 Meg Kaypro Internal kit w/KayPLUS rom ....... vee + $995.00 ACCESSORIES FOR THE KAYPRO AND THE XEROX 820 Xerox 820-2 Main Computer Board ..................-. $ 95.00 Xerox 820-2 Floppy Controller board .................4. $ 75.00 Xerox 820-2 Main board w/Floppy Controller.............. $150.00 Xerox 5 ¥%4" Drive cabinet weable.................-00-- $. 25.00 Xerox internal video cable ............ 0.02 cee eee eee $ 800 Board mount power connector.....:...... 00s eee ee eee $ 2.50 Paralle! ASCII keyboard (not standard Xerox sly Grasitans, atten $ 15.00 Dual 5 4” Disk Drives — DSDD 48 TPI, in cabinet with standard Xerox cable........ any Ud acthausnsteteun aoits & UNIFOIM . ooo c ec ccc ccc cecceccccuucuccecceeuuecees $ 6495 UniDOS for IBM............. Ree ean ee a: $ 64.95 We guarantee satisfaction on all of our products or your money back. Include $4.00 shipping and handling, $7.00 for COD, call for Blue Label charges. Phone hours: 8:30am to 5:00 pm weekdays; check our bulletin board — RQP/M, 5:30pm to 8:00am seven days a week, for our latest stock and prices. WE SUPPORT OUR CUSTOMERS EXPAND YOUR KAYPRO OR XEROX Most versatile. Easiest to use. Finest quality. Claims are one thing, but the proof is in our products. We guarantee satisfaction. INTRODUCING THE KayPLUS ROM PACKAGE by MICROCode Consulting The most important element in the performance of your Kaypro computer is its monitor rom. With KayPLUS you get ail of the advantages of a Kaypro 10, even on your Kaypro 2. ¢ Install up to four floppies and two hard drives © Boots from floppy or hard disk © 32 character keyboard buffer e Automatic screen blanking © 12 disk formats built in © Full automatic disk relogging e Internal real-time clock and ram card support e Can use 96 TPI and 3 ¥2” disk drives ¢ Includes manual, format, configuration, diagnostics, sysgen, i and hard disk utilities © No software assembly required ¢ Available for ’83 and ’84 series Kaypros — Specify Model KayPLUuS ROM Set vc idxse se seed pees te aey deat ewes $ 69.95 KayPLUS ROM Set with QP/M .............. 02-0 ee eee $125.00 Need to keep better track of your files? Date stamp them with QP/M. QP/M by MICROCode Consulting Full CP/M 2.2 compatability with many more features. You've seen the replacements that eat up memory and need auxillary programs to run. Not QP/M. Fifteen internal commands, automatic disk relogging (no more control C), user area selection from colon, 31 user areas, drive search path, archive bit maintenance, and transparent time/date stamping, all in the same space as CP/M 2.2. Installs from a convenient customization menu, without any software to assemble. QP/M Operating System, complete bootable copy ......... $ 80.00 QP/M without BIOS ......... 0... eee eee eee $ 60.00 Still running single density on your 820-1? PLUS2 ROM by MICROCode Consulting X120 DOUBLE DENSITY BOARD by Emerald Microware Clearly the most versatile double density package for the Xerox 820-1. Run up to four floppy disk drives at once, both 8” and 5 %" at the same time. Software compatable with Kaypro and Xerox 820. Supports all standard printers, and most add ons like the Ferguson Ram Board. You get mini- monitor functions, autoboot capability, 19 builtin disk formats, and bank mode operation for more space in your TPA. Lets you run 48 TPI disks on 96 track drives. Works with UniForm and QP/M. PLUS2 ROM Set and X120 Board A&T ..............05. $ 135.00 PLUS2 ROM Set and X120 Bare Board ...........:....$ 62.00 PLUS2 ROM Setonly......... 0.0... ce cece ee eens $ 49.95 120 Bare Boardonly ........... 0... eee es $ 22.00 Other kits, parts, and packages available EMERALD MICROWARE PO. Box 6118 Aloha, OR 97007 (503) 642-1860 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Controlling The Real World. With Your PC By Bruce Eckel c/o John Fluke Mfg. Co. P.O. Box C9090 M/S 266D Everett WA 98206 An Introduction To Microcomputer Electronics This is for all of you who wrote: ‘I don’t understand half of what you put in Micro C’’ on your renewal forms. Bruce goes back to the beginning with this series but he'll have us doing _ some interesting projects before he’s done. . radio club. They tried to teach us how transistors worked by saying, “Well, you put a little current in here, and it controls the current flowing from here to there, except you have to understand these funny curves, and...’’ They lost me. What I REALLY learned from that _ experience was that if you connected a transistor the wrong way, you could touch it and it would feel hot, but by the time it felt hot, it was already gone. I’m now older and wiser. I under- stand the funny curves. I also think I understand what the radio club did wrong when they tried to teach me about transistors. They gave me too much all at once, and I couldn’t do anything simple with it. Instead of experimenting a little at a time, I was expected to design an entire amplifier. |: junior high school I joined the Switch First, Amplify Later If the transistor had first been presented to me as a switch, I would have understood it. A switch is some- thing we use every day. Once I got comfortable with the idea of a transis- tor, and had used it to turn some lights or something on and off, I could have been introduced to the idea that, under certain conditions, the transistor also works as an amplifier. In this. series of two articles, I'll show you how to hook a stepper motor up to the parallel port of your computer, and how to make it move. We'll learn how the stepper motor works, how to use transistors as . eight ‘‘on-off’’ switches, how to use optocouplers, and we'll talk a bit about pve supplies. Starting Out I wanted to know about stepper motors, so I tore one out of an old disk drive and used a nine volt battery to make it move a step at a time, so I could figure out the pattern. Then I wondered: ‘How can I hook this up to my computer so it can do nifty things?”’ This question led to the problem of making sure that the 24 volt supply (powering the stepper motor) could not possibly damage the five volt system (computer) that was controlling the motor. In this article, we'll solve the prob- lem of setting up a microcomputer, which uses five volt DC power, to control other voltages. Next issue, I’ll finish the project by describing a stepper motor, connecting it to this month’s circuit, and program- _ ming the computer to make it turn. Streams Of Bits In Parallel We'll be using the parallel port in- stead of the serial port on your com- puter because the serial port sends out a stream of bits through a single wire, while the parallel port has a wire for each bit (and then some). Since we want to control several lines (there are four on a typical stepper motor), the parallel port is a natural. The parallel port is like a bank of eight switches, each of which can be on or off independent of the others. By writing to this port, you can change one line while leaving the others untouched, or change several lines, or all of them at once. Thus the parallel port can be used to control events in the world (we could multiplex and control more, but let’s keep it simple). . But there’s a problem: these contol lines are always somewhere between 0 and 5 volts and can handle only a small amount of current; their value is in the information they contain and not the power they can handle. If we hook a higher voltage to them, or demand a higher current, they'll be damaged. . We could solve this problem a num- ber of ways, but the simplest, most foolproof way.is to use optocouplers (also known as optoisolators). Optocouplers ' From the outside, these look like ordinary integrated circuit (IC) chips; inside, they have a light-emitting diode (LED) at one end and a photo- transistor at the other. There’s no electrical connection between the LED and the photo-transistor; they're ‘‘con- nected”’ by light. | The optocoupler works like the light communication system I made when I was a boy. Each of us held a light bulb inside a foil-lined can. The light was controlled by a. telegraph key made from another can. In the dark. we could ‘‘talk’’ as far away as 1/2 mile. The only way to keep an optocou- pler from doing its job (ie., getting information across without letting the voltages across) is to exceed its ‘breakdown voltage.’’ It’s possible to have such a tremendous voltage be- _ tween the LED side and the photo- transistor side that current arcs from one side to the other, and everything, including the optocoupler, is de- stroyed. Fortunately, the breakdown ssteae of optocouplers is generally in the hundreds or thousands of volts. The greater the distance between the LED and the photo-transistor, the greater the breakdown voltage. But be careful — if you’re controlling very high vol- tages, be sure the coupler was de- signed for it. So, we have an optocoupler}: we have 5 volts on one side (from. the computer) and. 24 volts on the other 30 MICRO CORNUCOPIA, #32, Oct-Nov 1986 (for the stepper motor or whatever). How do we connect it? LEDs Let’s start with 1/2 of the optocou- pler: the light-emitting diode (LED). The voltage across an LED is the same all the time (about 1.4 volts since it’s a gallium arsenide junction). So, it’s CURRENT which is important. Any diode (an LED is really just a diode) works this way; the voltage drop across the device depends on what the junction is made of (silicon, for example, is 0.7 volts) — sometimes you'll hear people talk about ‘‘diode drops.’’ If you don’t want to burn it out, you'll need to limit the current passing through it. For the garden- variety LED, that’s about 20mA. But 10mA will work fine. (mA stands for milliampere or 1/1000 of an amp.) To control the current when we have a fixed voltage, we insert a resistor in the circuit. We can determine the size of the resistor by using Ohm’s Law (V = I times R. The voltage across a 6 TRGKE wet Megheard frigger YATE mag Pea dete an @ Dismay bate Graphic form 9 Stat Conte 6 1M Te pate ina Fi ‘its Pes 10 1 GRO Sere BIT: 2 Sat Tal SET? NORTE | CPamemmenur ne — device is the current through the de- vice times the resistance of the device). -We want to find R, so we rearrange the equation: R = V/I. Pretend the diode isn’t important; we have 5 volts and we want 10mA, so 5V/10mA = 500 ohms. If you’re a pragmatist, the above calculation is fine. You know they don’t make 500 ohm resistors (the closest you can get is 470 ohms) and resistors and diodes will have errors in them anyway. We’re in the ball park so we won’t hurt anything, and if it doesn’t quite work we can try differ- ent values. In our little circuit, three variables affect the voltage — the computer, which outputs about 5 volts; the LED, which has a voltage across it of 1.4 volts; and the resistor, which must cause the rest of the drop (5 - 1.4 = 3.6 volts). Once the LED is on, the flow of current is controlled by the resistor. So we apply Ohm’s Law again, assuming we want about 10mA, and get: R = V/ I = 3.6 volts/l0mA = 360 ohms. But when we try to buy a 360 ohm resistor, we find they don’t make one of these either (resistors are a lot like shoes in this respect). We compro- mise, try a 470 ohm resistor, and, sure enough, it works. (The wattage rating of the resistor isn’t important here. 1/ 8, 1/4 and 1/2 watt are standard rat- ings.) So we’ve taken the signal from the computer and made an LED turn on or off inside this little black box. What do we do with the signal at the other end — the one caused by the light hitting the base of the photo-transis- tor, causing it to turn on and off? My first impulse was to connect the collector and emitter like two ends of a switch into the stepper motor circuit. Unfortunately, the optocoupler is good for only one job: keeping voltages apart. Its output still can’t control anything significant. Thus, once you get the signal across, (continued next page) MODULAR DATA ACQUISITION SYSTEM We Bring Engineers, Scientists And The IBM-PC Together. Our unique high-performance modular data acquisition system allows you to purchase the configuration that exactly meets your requirements. All of Qua Tech’s data acquisition products include LABSTAR, powerful software designed to give BASIC programmers total con- trol of their application. 8 BIT A/D SYSTEM QUA TECH, INC. 478 E. Exchange St. Akron, OH 44304 12 BIT A/D SYSTEM CALL NOW (216) 434-3154 MICRO CORNUCOPIA, #32, Oct-Nov 1986 31 CONTROLLING THE REAL WORLD (continued from page 31) you still have the problem of passing enough current to move the stepper, close your relay, activate the solenoid, light the lamp, or whatever. The opto- coupler won't handle enough current to do what we want, and even if it did, the light hitting it from the LED isn’t enough to turn it on all the way. Here’s why: A Little About Transistors The transistor can be used two ways: as a switch, or as an amplifier. We're using it as a switch, so we must turn it on all the way (Wham!) or turn it off all the way (Slam!). In between Wham and Slam is the “‘lin- ear region’”’ (or, as I came to know it, the ‘‘region of funny curves’’). This is where we use it as an amplifier. If you’re trying to use it as a switch and get caught in this region, it doesn’t ' work very well because it isn’t turned on all the way. So we need to take this signal, which is ‘‘Really Off’’ and ‘“‘Sort of _ On” and turn it into ‘Really Off’’ and “‘Really On.’’ Fortunately, there’s a device designed for this (the Darling- ton transistor) which comes in its own package with a heat sink. A Darlington transistor (or Darling- ton pair) is actually two transistors hooked up one right after the other to look like one transistor which requires only a very little signal (like the output of an optocoupler) to turn itself all the — way on or off (see Figure 1). . The first transistor is good at turning on, while the second is good at pass- ing lots of current (but not as good at turning on), so together they make one transistor which is good at turning on and good at passing current. Per- fect for what we want. The signal comes out one of the lines of our computer’s parallel port through a resistor to control the cur- rent and through an LED, which is’ one-half of the optocoupler. The signal turns into light (for a one), or no light (for a zero), travels through the opto- coupler, strikes the base of the photo- transistor, and turns it on. The photo-transistor drives the base of the Darlington pair, and Voila! We've isolated the computer from the 24 volt system it’s going to control. (Actually, by selecting the right Dar- lington and optocoupler you could control much higher voltages.) The collector and emitter of the Darlington are like the two wires of a switch. The Circuit Let’s walk through the circuit I built (see Figure 2). We’ll put some LEDs on the outputs and use the computer to turn them on and off, and that will be the end of this article. If you simply must hook a stepper motor into your circuit before next issue, make sure you put some diodes in the circuit to prevent the stepper coil inductance from punching holes in the Darling- tons. I'll explain that completely in the next article, but I thought I’d warn you. cee A circuit diagram doesn’t show ev- erything. For example, it doesn’t show how to get the signals from your computer to the circuit, and what the circuit is built on. . '. To get the signals from your com- puter to the circuit, you have to find a connector that mates to your comput- er’s Centronics port. I found this no easy task, because some people don’t know what a “standard, usual kind of Centronics connector’ is, and other people don’t know what a ‘’36-line micro-ribbon connector”’ is (they’re the same thing). And, just to be different, a lot of IBM parallel connectors are the ‘“DB”’ types, but not DB-25s (25-pin connec- tors) like the RS-232C connectors. In- 32 MICRO CORNUCOPIA, #32, Oct-Nov 1986 stead, they're DB-36s. Fortunately, the Radio Shack deities generally smile upon connector problems for comput- ers, and you can find them there. (Editor’s note: Most of the clones are now using female DB-25s as parallel connectors. All you need is the male DB-25 and a guide to which PIO output lines are connected to which _DB-25 pins, although a simple voltme- ter will tell you pretty quickly which lines are active.) Can You Slice Bread Around Here? Once you get the connector and solder the wires on all the pins of the connector, and then figure out what the wires mean (more about that in a minute), what do you do with them? Well, the early pioneers would (al- - legedly) go down into the kitchen and steal one of Mom’s breadboards, stick little nails, wires, and blobs of solder on the board, and try out their experi- ments (thus the term ‘“‘breadboard- ing’’). (Also the term ‘‘disinherit- ance.”’ a te Mothers were no doubt responsible for the development of these neat chunks of plastic with lots of little holes in them that you can push wires into. They’re still called breadboards, of course. Breadboards now come in strips about two inches wide and eight inches long. Don’t be fooled by the people who want to sell you a bunch of these strips glued down on a metal board for a lot of money. They’re the a a aE TA RE EY I I TI A a TO OE same strips; buy your own and glue them on a board. Also don’t get fooled by the expen- sive boxes filled with carefully stripped wire of all sizes, lengths, and colors. Those are only for professionals; defi- nitely out of our league. Buy your own wire and strip it yourself, but make sure it’s solid wire, not stranded — ask the salesman or look at the profes- sional box of wire for the gauge (thick- ness of the wire — a bigger number means a smaller wire). With a breadboard you can try out circuits without soldering. Just figure out which holes are connected to. which other holes, push the wires into the holes, and presto! — you’re an electrical engineer! (Perhaps you should memorize a few equations in case there’s a test.) If parts don’t work, or you hook it up wrong, you don’t have to desolder or snip or anything — just pull stuff out of one hole and push it into another. This way you can very quick- ly try out ideas. (A lot like FORTH.) Only after the design works do you get out the soldering iron, or printed- circuit etching kit. Centronics Port Wires Usually, you can find the numbering of the wires on one of the connectors, but it’s printed small and is easy to miss. The Centronics port wires 2-9 represent bits 0-8. The rest of the lines are either grounds or handshaking lines. You want at. least one ground, but we'll ignore the handshaking lines. If your connector has a different configuration, you'll have to look up its pin configuration in one of your manuals, or figure it out by tracing the wires with an ohmmeter or continuity tester. Your printer manual will have the wiring of its connector. About Power Supplies One more problem: we have effec- tively isolated our computer from the part we’re controlling. So effectively, in fact, that we left all the power on the computer side! We need some power on the ‘outside’ too. We can solve the problem with batteries or a power supply. Batteries are okay, but you can get frustrated when they run down in the middle of the night. It’s nice to have a power supply. I found a good switching power supply with several different voltages for around $30. Astec makes it, and you can get it by mail from several outlets. I got mine from American Design Components, 62 Joseph St., Moonachie, NJ 07074. JOR Microdev- ices, a reliable mail-order firm, also carries them. (Note: stepper motors taken from 5 1/4” drives run on 12V rather than 24V. There are many more supplies to choose from if you don’t need 24V.) This power supply doesn’t come in a metal box — you just look at its guts. For decency’s sake I recommend you put it in a box. (There’s 110V AC on the input side of that little beastie — not a good thing for fingers, little or big.) So Now You Have A Lab Almost. You have a power supply, a breadboard, and a connection to your computer so you can quickly generate digital control signals with software (this is really nice, since otherwise, you might spend a lot of time making circuits to do the same thing). But you still need a meter. I work for Fluke, so recommending a meter from them probably sounds like hype. But I use the meters, and have talked to people who have designed them, and have seen what else is out there. In addition, customer service is very good about fixing/replacing bro- ken meters. I recommend one of the LCD ‘’70-series’’ meters, which you can get for around $100. If you’re not ready to spend that much, get an inexpensive one at Radio Shack. They aren’t as nice and won’t last as long, but I got a lot of use out of them as a boy. Back To The Circuit I connected an LED and resistor to the emitter of the Darlington transistor (the emitter always has the arrow on it, and the arrow points in the direc- tion of ‘‘conventional’’ current flow; i.e., flow of positive charge, or holes). (Again see Figure 1.) (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 33 CONTROLLING THE REAL WORLD (continued from page 33) The trons, are going the other way. This is an NPN transistor. I remember it by © saying ‘‘No PiNpoint’’ — the pin isn’t pointing at the flat spot of the transis- ~ tor. When it is, that’s a ‘“PiNPoint’’ — PNP. For now, this LED and resistor will © be our output circuit. Next issue, we'll replace it with one of the stepper motor coils and a diode (there'll be three other circuits for the other three coils). The resistor is there, as before, - to prevent too much current from going through the. LED (these LEDs have no self-control). The collector is connected to the source voltage, which will be 24 volts next issue (or whatever your stepper ‘needs), but can be anything now. When the Darlington is off, no vol- “tage appears on its emitter pin. When - it’s on, it has a voltage drop between its collector and emitter of about .2 volts. So the voltage appearing on the emitter is 24 - .2 = 23.8 (24 volts if _ you're a pragmatist). We need to choose a resistor which will keep the current. down to about 10mA and not fry our LED. (The magic words ‘‘volts,’’ ‘‘current,’’ and “‘resistor’’ mean bring out Ohm’s - Law! — 24V/10mA = 2400 ohms, or 2.4K ohms.) Yes, you guessed it — there isn’t a 2.4K ohm resistor! (Unless you want to pay more, and go from the El - _ Cheapo 10 percent tolerance to the more expensive 5 percent tolerance.) We need to go up a little, to 2.7K, or down a little, to 2.2K. It doesn’t really matter, but let’s go down. And that’s the circuit (you'll proba- bly want to duplicate it for each of the eight parallel port lines). All that’s left _ is to turn the LEDs on and off. » Are We Having Software Yet? You probably thought you could just PIP a file to the parallel port and watch the LEDs flash, right? Well, so did I. But it doesn’t work that way. “Some LEDs will turn on and the -whole thing just sits there. _ The port is waiting for a handshake (remember, this is a business ma-_ chine). When you send something through the operating system, it uses “‘real’’ charge carriers, the elec- Figure 3 - Using the OUT PORT and BYTE Commands in BASIC 10 * Random output at random intervals 20 K$ = "*" : WHILE K$ = "* ; K$ = INKEY$ :'Press any key to quit: 30 OUT &H19, INT(255 ® RND) :*Send out a random Number between 0-255 4O FOR I = 1 TO INT(300 # RND) 50 WEND NEXT ;:'*Wait a random period ' Bouncing up and down; delays adjusted to look like a — yveal bouncing ball. K$ = "";WHILE K$="" :K$ = FOR I= 0 T07 FOR J = 1 TO 115 +5 FOR I FOR J WEND 1 TO I#15 +53: NEXT : a device driver, a little piece of soft- ware which knows how to work the buffer and knows exactly where the parallel port is (not just a device name, like PRN:, but the location in the memory or the input/output address). It takes a byte out of the bag, sticks it in the port (our LEDs just came on) and waits. Waits for what? Waits for the special ‘‘handshake’’ line to go high and low which tells the computer that it got that first byte. and it’s ready for another. The MS-DOS device driv- er is watching that line, so as long as © we go through the device driver, we either learn to be courteous or we wait. The solution is to go AROUND the device driver, by addressing the port directly. Here’s where you get to do detective work. I have a Kaypro 2X, and I know where its parallel port lives (19 hex). For XTs and other clones the common parallel port addresses are 3BC hex and 378 hex. Look first in your computer man- uals; find the most technical looking - part with lots of tables, strange words, and numbers, and look for the port location. Call someone who has a... computer like yours. Call the dealer. _ Call the manufacturer. Persist. Once you have the port address, use the command in your programming language which will put a byte directly to a port (assuming your ports aren’t memory-mapped, in which case you _ would simply stick things in that 34. MICRO CORNUCOPIA, #32, Oct-Nov 1986 INKEY$ : OUT &H19, 2°I : NEXT ; 7 TO 0 STEP -1 : OUT &H19, 2°I:"Bounce back down :*Selects I-th bit NEXT NEXT ~ memory location). ’* -T’ll use BASIC and the OUT PORT and BYTE commands in my examples. (See Figure 3.) In Turbo Pascal, you’d use the ‘“’port array’’ like this: Port[PORT] := BYTE; You may need to tweak the timing constants on these examples, since your machine may run faster or slower than mine. Now Do Something You now have switches to the out- side world anda programming exam- ple. You can use these switches to drive relays to handle more current and bigger voltages. Next issue, we’ll see how a stepper motor works and how to. hook it into our system and program it. | Don - 800/1600 BPI ASCII/EBCDIC %'"~9 Track Data Transfer to Microcomputer Magnetic Media’ * PC DOS Diskettes Raw Data Dump to one Diskette Batch Service Setup Fee: ‘ Each Diskette: e Alternative Media 8” or 5%” Diskette, Hard Disk or Cassette Tape: Inquire | Informational Brochure Available MICRO LOGIC SYSTEMS , 207 Kent Avenue 41, Kentfield, CA 94904 -(415) 461-8077 $ 5Q09 $49 $18°° KAYPRO EQUIPMENT 9’’ Amber CRT .............. $39.00 9’’ Green Monitor ............. 35.00 12’’ Green Monitor ............ 45.00 81 Series ROM’s........ ip actos 7.00 Keyboard (Kaypro) ............ 75.00 Keyboard Siemens w/case ...... 65.00 Wiring Harness ................ 7.50 KAYPRO MAINBOARDS K2 With Sockets ............. $39.00 K2 Populated - Tested......... 129.00 K2 with PRO8-3 Mod. ......... 239.00 This one runs at 2,4 & 5 MHz, up to 4 drives SS, DS, or Quad drives. New ROM has screen dump and step speed select. With manual & software, tested and guaranteed 30 days. K2 PRO8-3 Mod. EXCHANGE ...149.00 We will update your K2 or K4 as above. Mail working Main board. _ We can install double or quad drives and check complete package..... CALL K10 Populated - Tested........ 250.00 WD1002-5 Hard Disk Controller . 200.00 Host Interface Board ......... .. 15.00 CABINETS Bottom portion with front and back only. CRY B@Zel <2. sacred G05 mane tly 12.00 : MISC. CABLES 9’’ 50 Pin - 50 Pin Header ..... $2.50 14°’ 40 Pin- 40 Pin Header ...... 2.29 9°’ Hard Disk - 20 Pin Header... .2.00 14’ Dual Inline 16 Pin Male (2) ...2.00 FLOPPY DISK DRIVES — 3 HEIGHT — Okidata DSDD ............... $99.00 Supplied w/sub-panel to make ¥% ht. — %2 HEIGHT — Mitsubishi M4851 DSDD 40 Tr .$139.00 Mitsubishi M4853 DSDD 80 Tr . . 139.00 Qume Trak 1425%4"’ DSDD ..... 99.00 Tandon TM 848-1 8’’ SSDD .... 149.00 Shugart 475 DS Quad 1.2Mb ...159.00 Sweda Cash Registers Models 303, 2640 & 2650 arom ere? 8280 CLAIREMONT MESA BLVD., SUITE 117° (619) 569-1864 SAN DIEGO, CA 92111 HOURS: Mon..- Fri.9-6 — Sat. 10 -4 MINIMUM ORDER — $15.00 TERMS: VISA, MasterCard, Certified Checks, Money Order, NO COD. Visa and MasterCard: add 3%. Personal checks must clear BEFORE we ship. Include shipping charges. California residents add 6% Sales Tax. For more info please call — DON’T WRITE! We don’t have time to answer your letters. ERAC CO. From major supermarket . . .$99 ea. Mainboard, 8 Slot, Case, Power Supply............ $225 To make this a complete system, add A) Memory 8B) Floppy Controller C) Drive D) Keyboard E&) Video Card F) Video Monitor G) Multifunction Card A) MEMORY 200K “ISO NS: cette ees $25 DIZK TOONS = caaeisaw sv ass 50 640K: 150 NS oc cane4 yada 68 B) FLOPPY DISK CONTROLLER Card for 2 Floppy Drives ....... $36 Card for 4 Floppy Drives ....... 42 C) 5%4’’ FLOPPY DISK DRIVES MIUSIABS 1.2 cstcd ons eet, D) KEYBOARDS Cherry Keyboard (no case) ..... $38 AT Style Keyboard............ 69 E) VIDEO CARDS Tomcat with Parallel and Lightpen Port.............. $53 Hercules compatible Video Board 75 Color Graphics Adapter........ 69 Enhanced Graphics Adapter F) VIDEO MONITORS Roland MB-122G, 12’’ (no case) $39 Samsung MD-1254G, 12°’ Green 72 Samsung MD-1254G, 12’’ Amber 78 Goldstar MBM-2015, 12°’ Amber 106 Mitsi AT-1332A 13°’ RGB TTL ..295 Goldstar MCH-4015 13”' RGB 30 MHz.............. 420 NEC Multisync 30 MHz SO0*560°EGA: inant bea 935 G) MULTI FUNCTION CARD Parallel & Serial Port, Game Port Floppy Controller, Clock & Cal. $96 CPU/SUPPORT MC68000-8 CPU.............. $9.99 GB0TGG=S 3 sc eie neque os ae 27.00 CO018626 2h coesog tog ees eon 9.00 280 CPU! 3 Ges erage nite Beeo cules 1.00 Z80A CPU ..... oS iti a tak nee 2.90 5014/29) (0 pene a era rer iS hiew OU Z80A SIO...... NN oda piats Oe See 9.00 PRINTERS Centronics 703 ............. $395.00 Centronics 588- Asis ........ 125.00 NEC2000 w/Single Sheet Feed . .999.00 8280 Clairemont Mesa Blvd., Suite 117 San Diego, California 92111 (61 9) 969-1864 Call for our Test Equipment Mailer! IBM/PC COMPATIBLES SYSTEM EXAMPLE #1 For the Hacker (Cheap) Mainboard, Case, Power Supply ..$225 256K Memory 150NS......... 25 Floppy Controller (2 Drives) ...... 36 Floppy Drive Ye Ht DSDD...... 99 Keyboard Cherry (no case) ..... 38 Video Board with Parallel and LIGHIDEN PON a cacu seeded p ees 53 Roland MB-122G, 12’’ Green Monitor (no case) ............ 39 SYSTEM EXAMPLE #2 FCC Approved (Not Cheap) Mainboard, Case, Power Supply . .$225 640K Memory 150NS......... 68 Multi !/0, Parallel, Serial, Floppy, Clock/Cal. ........... 96 2 DSDD Floppy Drives (minimum) . 198 Enhanced Graphic Adapter (EGA). . 275 NEC Multisync Color Monitor CINE BOS Dee cane Bears oe Meena 535 AT Style Keyboard ............. 69 Oh, you wanted a turbo board .... 20 and a 20M Hard Drive & Controller. 410 Now how much would you pay? JUST $1896 HARD DISK DRIVES 10M Rodin RO-252............. $230 ON GT-2 12s. cc nadeteoeseens: 185 20M ST-225 oo... eee ee ee 385 19M ST-419 00a, 230 20M Half Height with Controller... 410 32M Half Height with Controller... 667 60M with Controller ............ 1150 70M Vertex V170 .............. 725 WD-1027 with Cable............ $156 Omni-5510 .......... la SoG aia 150 Adaptec 2770A (Get 15M on 10M Drive) ....... POWER SUPPLIES Elgar 400W Unint. Power Sup. .$375.00 +5V/1A, —5V/.2A, +12V/1A, —12V/.2A, —24V/.05A ....... 15.00 H2AV/ 2.2K sn sie ted cae de day BOD _ SWITCHERS 5V/9.5A, 12V/3.8A, —12V/.8A $39.00 DV/3A, 12V/2A, —12V/.4A..... 29.00 OV/75A, +12V/8A, +12V/8A . 55.00 DV COR Rass Sa eared oe bad 35.00 _ MISCELLANEOUS Headset/Boom Microphone...... $3.95 Nicad Pack 12V/.5AH ........... 6.50 5 Blade Muffin Fans ............ 7.50 Joystick 4 Switches 1°’ Knob..... 5.50 MICRO CORNUCOPIA, #32, Oct-Nov 1986 35 . RFI/EMI Protection. For Your Computer - . There are lots of ways that comput- ers can be noisy. In this case, Rex isn’t talking about fans or hard drives — he’s talking about turning on the system and destroying Cheers. Sti- fling electrical radiation is a popular black art right now because the FCC is cracking down on manufacturers whose products radiate noise. Here are some quick and cheap ideas that just _ might make your system less prone to disconnection during prime time. sors suggested ways to eliminate some of the radio frequency inter- ference (RFI) and electromagnetic in- terference (EMI) between my computer and other electronic devices in the neighborhood. The tips aren’t guaranteed to make everything quiet, but like chicken soup, they can’t hurt. These practices apparently aren’t well known — I found about half my equipment wired incorrectly. | n.a recent class, one of my profes- Some Theory ‘Just look inside your computer, ter- minal, printer, etc. There’s a clock circuit in the system that puts a square wave pulse onto the clock line (a copper trace). A true square wave is “about the noisiest kind of wave known: those nearly vertical rising and falling edges are combinations of odd harmonics. A IMHz square wave for instance, would contain 1, 3, 5, 7, 9, 11, 13, 15... MHz components. If the rise time for that IMHz signal is 10ns, then the highest component would be at least 100MHz. (Editor’s note: The clock trace is only one of many lines.that carry signals. One of my systems generates a hashy noise right on top of my favorite FM - station. If I select a blinking cursor, the noise blinks on and off with me cursor.) Tacking a terminating resistor onto a signal line sometimes reduces its radia- tion a bit. Four-layer circuit boards usually radiate less than two-layer boards, but the most common means of limiting interference is to enclose the board in a metal box. Unfortunate- ly, the power leads usually compro- mise the box. The biggest culprit is the ground wire in the power cable. If your equipment is wired like Fig- | ure 1, the ground wire acts as an antenna. It receives all those RF noises running around inside the box and transmits them outside. (Take a porta- 36 MICRO CORNUCOPIA, #32, Oct-Nov 1986 By Rex Buddenberg 3425 Elmwood Dr. Alexandria VA 22303 ble FM radio and pass it around the cord. What do you hear?) Reverse Engineering? Since the ground wire acts as a receiving antenna as well as a trans- mitting one, the reverse situation is also possible — external equipment can dump noise into your computer. By rewiring the ground wire as in Figure 2, you preserve the electrical grounding characteristics (this is im- portant to avoid smoke-tested hacker), but you interrupt the RF circuit. In other words, you're keeping the ‘‘in- nies’’ in and the ‘‘outies”’ out. Make sure you use husky bolts on this job (3/8’’), and don’t try it on a plastic case! If you have a socketed power lead, see Figures 3 and 4. The same principles apply. Don’t use the ground tab supplied on the EMI filter or appliance socket; instead, take the inside ground to the socket mounting screws. Make sure the.sock- et is mounted from the ‘outside in’”’ and that it makes clean electrical con- tact with the cabinet wall. One More Thing You can also quiet things down by adding a strong external bond from Suc Srna aon TOOLS FOR The MasterFORTH pro- gramming system gets your application running in the least amount of time. How? With a built-in user interface. With an interactive de- bugger. With ares- ident assembler-linkage is instantaneous. MasterFORTH's target application generation system (TAGS) can produce a ROM-able image in seconds. Its unique symbol table identifies seldorm-used code so you can pack the most power in the least amount of memory. Choose your development system. We support the IBM PC family, Apple’s Macintosh, CP/M systems and others. Need to program a controller from your IBM PC? No prob- lem. We have cross-development sources for most popular microprocessors. You can even generate a MasterFORTH system for yourtarget application, addaterminalandrunit there. Forth is widely used in industry and aerospace for robotics and machine control. Call or write us for details. MICROMOTION 8726 S. Sepulveda BI., #A174. (213) 821-4340 Los sia iv CA 90045 ; your equipment cabinet to a solid ground such as a water pipe. And An Afterthought While you’re inside the cabinet and monkeying around with the wiring, install three metal oxide varistors (MOVs): across the power leads as shown below. (These little guys con- duct whenever the voltage across their leads exceeds their rating — usually 130V.) BLACK -HOT WHITE-NEUTRAL GREEN OR BARE- GROUND My batch of MOVs = say “"V130LA20A’’ (130 volt, 20 amp). 10A sizes are adequate for most computers and environments. The MOVs should - be around $1 each and are available at most parts houses (including many Radio Shacks). PROGRAMMER /4+ Reads and programs 2716 through Power electronically switched. Can’t 27128 including CMOS types. damage EPROMS. Reads 2-16K ROMS Menu-driven, user-friendly. Software on Disk including source code. Manual includes full schematic. © Direct connect to any RS232 terminal or computer. Save/Program to and from disk files. Not a kit, completely built and tested. 48 hour burn-in and test <.05% field failures over the last three years. QpPE riopfco Programmer/4+ with manual and one disk $169.95 1659 Scott Bivd., #1 Additional disk format add $15.00 ance = Visa and MasterCard, Telephone orders welcome. Please specify disk format, i.e., CP/M, MS-DOS & computer type. California residents add 6% sales tax. MICRO CORNUCOPIA, #32, Oct-Nov 1986 37 The SOG Report: Exciting New Systems It was Saturday evening. I had just _ finished dinner when I glanced up at my companions, all 256 of them (the - fire marshall’s limit). They had the faces of marathoners — deep lines, sunken eyes, heads propped on hands. ‘But they and I shared the exhilaration of a task well chosen and well done. We had run another SOG. OG V included: 29 formal talks, a half dozen informal sessions, recreation (rafting, horseback riding, chair lifts to a mountain top), babysitting, meals, and products from all over the world. But that was the normal part, the easy part. The mara- thon began after supper and continued into the wee hours, sometimes until breakfast (7 a.m.). Reminiscing: At the first SOG we’d had none of the formal talks, displays, babysitting, _or recreation, yet the SOG I faces had. shown the same excitement, the same feeling of being somewhere special, of helping create something that might someday make a difference to a lot of people. At SOG I the common interest was the Big Board I, the first compact, low power, single-board Z80 system on the market. It was cheap ($650 for an empty board and a bag of parts), and it was small enough to fit on the side of a disk drive (OK, OK, so it was an 8” drive). It supported the most popular operating system, CP/M. At SOGs II, Ill, and IV, the scope expanded to include Big Board II,. By David Thompson Xerox 820, and Kaypro, all Z80, CP/M machines. Then came Slicer, Defini- con, and finally the clones. This year, we cussed and discussed nearly every processor from the 4004 to the Transputer. (George Morrow had the audacity to suggest that the 8008 was the first real processor, so we discussed the 4004.) We talked lan- guages and operating systems, a Unix. Most of the informal discussions this year centered around ways of building up systems around the latest, greatest technology (and where to find operat- ing system support). ; It’s curious that we were having those same discussions at SOG I. . Many of the Big Board folks have since built clones, but they complain that the feeling isn’t the same. Fifteen 1986 Ochoco Jack Dennon The-V20, V30 & Hall Room 104 CP/M Emulation aes cui Taine Stump International De ve ak Computing ~ G Pence David Thompson vs) Hall An Inside Look pS N Room 28 At Micra C ~ — - eid Ochoco Don Latham George Watts ee Hall Goat Oriented Pitfalts of Small ee) Room 231 ‘Program Building Business Ventures Larry Fogg Jatro to Turbo Pascal: Novice Programming 32-Bit UNIX On A Shoestring Ease Instruction Set CPUs Dave Rand in The Public Domain Andy Bakkers The Transputer: Life After : The Microprocessor (New Life for 250s) ea P| This is the SOG that was. We hope to see you next year. SOG SPEAKERS SCHEDULE cena! Oregon Community College - Bend oregon Se TE a a Teo esi ini Michael Frieling Developing Tools parry ie For Expert Systems Trevor Marshall Designer's View Of The 68020 Joseph Bartel 68000 Multi-User System: Alternative To LAN George Scolaro Dean Klein The V Series & In Pence 28: The 80386: Dual "SOFTWARE FOR UM Dave Rand Earl Hinrichs Michael Frieling George Scolaro In the Pinckney Center: Allyn Franklin’s Drive Workshop McTek PC Workshop Jim Tanaka Artificial Intelligence & Human Cognition In the Pinckney Center: In Pence 28: Don Fletcher intro To 8088 : Assembly Language Room 104 Programming Pence Doug Anderson Peter Casey Hall Poor Man's Unique Features Room 28 Networking ofc | George meee HARDWARE FORUM Don Fletcher _ Dean Klein Chris Jones : CAD (and more} On The 68020 Joseph Bartel New Directions In Trevor Marshall Computing = Dente John Kirk John Kirk ~ | Math & Graphics Reon 231 For Geometric Models Languages QOchoco Chris Brock Hall Hardware & Software Roo Considerations For m 5 A Multl-User System 38 MICRO CORNUCOPIA, #32, Oct-Nov 1986 <= © N ~ J] =) Lome) Source Code Translation Between ~ < a % ~ >) < N In the Pinckney Center: Allyn Franklin’s Drive Workshop McTek PC Workshop Sigi Kluger Programming The 68020 minutes worth of plugging boards to- gether is different than gluing chips on a board. Also, MS-DOS supports serial and parallel interfaces, and so many utilities come with it that there’s a lot less reason to hack. (See Don Fletch- er’s MS-DOS driver article in this issue if you’re still interested in hack- ing.) PD32 Thanks to SOG, we’ve got two spectacular projects coming up for you. The first, the Public Domain Project — 32000 (PD32), is in this issue. The PD32 is a 32016 system designed by Dave Rand and George Scolaro. They came up with the system after National started selling a 32016 starter kit for a paltry $69 (6MHz). The kit includes the processor, memory man- agement unit, clock, floating point processor (the same one Definicon is using), and an interrupt handler. But that’s just the beginning. They also include a pair of monitor ROMs, serial transfer software, books, instructions, etc., etc., etc. Kits are available from any parts house that handles National. Jameco Electronics is selling the 32016 Design- er Kit for $59.95 (no doubt the 6MHz chips). The 10 Meg parts should be about $120 a set (but the 6MHz parts will often run 8 or 9MHz). Jameco Electronics 1355 Shoreway Rd Belmont CA 94002 (415) 592-8097 The PD32 is a public domain system because Dave and George are releas- ing the board, artwork, circuit design, and software drivers to the public. It’s also public domain because a number of SOG attendees got together to form a users group to promote the system and produce hard-to-get items. The group will be making boards, When the artwork i, ‘a burning PALs and ROMs, and making them available at cost. Micro C will be the information center. Dan Efron volunteered to head the distribution of boards and parts for the system (while attending college). You can contact him via his parents’ ad- dress (he says it'll be a day delay at best). Dan Efron 8910 Westmoreland Lane Minneapolis MN 55426 (503) 382-7643 (Micro C RBBS) Dan says he will be a regular partici- Bn gs ae AY Z| a pant on the Micro C bulletin board so ° you can reach him that way. Be sure to check out the PD32 area on ane board. I talked to Dan three weeks see SOG and he told me that Ken Berry will be helping in the project. Ken will be putting together kits of peripheral parts (including RAM sticks). Dan says he’s getting some very good quotes from board houses. Meanwhile, George Scolaro said he was expecting to get the test run of - boards back from the prototype shop by early September. If there weren’t too many cuts and jumpers, he’s prob- ably already shipped those boards to the dozen folks who were on the list. is finalized, George’ll be sending it along to Dan so the production run can get started. They’re hoping to have shippable boards and kits a short time after you © read this. Host System The PD32 will take some ideas from the Definicon board. All I/O will come | and go through a host system. ‘‘Aha!’’ you say. ‘‘Another PC leach.’’ Well, yes and no. Yes, it will plug quite happily into a clone. However, it will also run on a Z80 CP/M machine. They’ve written software interfaces (in y p BY toad R iy “if, My ply et/= Ay te VERA RYE ‘ LTD en G7 % " My Ly a Ly rs «a C) for bak types of machines. Plus, there is full Unix Version V for the system at only $500. (Only $500 for an operating system?! Has this guy pg ‘been hanging out with Digital Re- search?) However, the price includes compi- lers, editors, 31 disks worth of utilities — and all multi-user. You could put together a complete Unix system with | 2 Meg of RAM for under $1,000, including the operating system. (You'll need at least 10 Meg of winnie on. the base system to run Unix properly.) Even considering the cost of the host system, this has to be the cheapest way known to man or hacker to get into a full-blown, multi-user Unix sys- tem. . On The Other Hand Maybe you don’t want a full-blown Unix system and just maybe you don’t have a winnie on your Z80 system. (Unix alone requires 10 Meg.) “Aha, I’ve finally got you,’ you say. ‘‘This won’t plug into my stock Big Board and single handedly support all the programmers on Michigan’s upper peninsula. I’ve got to add a winnie.”’ Neil Koozer attended SOG V and also got excited about the PD32. He’s been working with National chips for some time now. He dropped me a letter a couple of weeks after SOG: ‘‘When I started coding for the 32000 ‘I thought I had died and gone to heaven. If you do assembly coding for an 8-bit machine or for one of those . segmented things, you know that you spend most of your energy working around obstacles. It took me five days to write a disassembler for the 32000. “IT have no interest in Unix or in a hard disk; all I want is an assembler and enough of an operating system to run the assembler. (So he has a basic foundation to build on.) (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 39 THE SOG REPORT — - (continued from page 39) “In the interest of promoting a 32000 users group, I will be donating all the 32000 stuff that I write. I’m in the middle of. writing a high/low level language and a debug monitor.’ Neil Koozer Kellogg Star Route, Box 125 Oakland OR 97462 | (503) 459-3709 Talk about a group effort. If you want to get involved in the PD32 project, get in touch with Dan or Neil. Allyn Franklin teaches disk drive alignment and re- pair to a sitting room only crowd. In the background, vendors display their wares. A PC workshop and a hard- ware forum were running concurrently with this work- shop. 68000 The 68000 system which follows is a different kind of project. It isn’t as close to reality as the 32000 board because it saw first light at the SOG, but it has lots of potential. This is the generic 68000 system, and its claim to fame is that Hawthorne Technology will be providing a com- plete, single-user operating system for $50 per copy. (There’s also a second 68000 sicject that’s. in the ‘waiting for more infor- mation”’ stage, but we’ll deal with that as Andy Bakkers gets more details from Germany.) The Generic 68000 Motorola fans also showed up in force at SOG V, and, as usual, discus- sions centered on the lack of a cheap, standard operating system for the pro- ‘cessor. Sure, there are proprietary sys- tems for the Macintosh, Amiga, and ST. There are also expensive ones like CP/M 68K and OS-9. In fact, there isn’t much incentive to design new 68000 hardware because the operating systems are so expen- sive. Just the operating system, two compilers, and a few utilities total over $1,000 in OS-9/68000. And that’s what each user pays. System designers also have to fork over significant sheckles to get the source of the BIOS. Well, at the SOG we discussed the 68000’s operating system problem, cussed it, and then changed it. Maybe permanently. Joe Bartel of Hawthorne Technology offered to sell a single user version of his operating system for $50 per copy. It would include source, have built -in hooks so you could add drivers for nearly anything, an assembler, and a simple mid-level language of his own design. (It’s best described as FORTH with added IF/THEN/ELSE type struc- tures.) The operating system a MS-DOS disk formats. If that project comes together in time (hardware, software, assembler...) we'll have a full-blown 68000 issue around the first (or second) of the year. I’m guessing it’ll happen. Guide demonstrates spe- cialized equipment (paddle) as rafters prepare to drift off on the annual Tour de Splashe. The placid Des- chutes takes a dive about half a mile downstream. 40 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Of course, one of the projects would be porting the operating system over to a number of 68000 computers. Any- one already running a 68000 or think- ing of designing a new hardware package (hooray, hooray) should talk to Joe. Joe Bartel 8836 SE Stark Portland OR 97216 (503) 254-2005 Joe mentioned a number of options for the hardware: 1. Plug-in board for the PC 2. 4 Meg 68000 replacement board for the Kaypro 3. Same size board as the mother- board in an XT, so it could use cheap cabinets, power supplies, etc. Joe also noted that there’s a Pascal compiler in the PC-SIG library, written in Pascal, and he’s writing a database handler. Educational 68000 In his talk this year, George Morrow mentioned that there’s still that great divide — hardware folks do hardware, software folks do software — and it’s the in between places where low level software and hardware meet that most folks don’t understand. How do you create a system from scratch, from just a pile of parts connected together? Where does the system monitor come from? Who cre- ates the first assembler? What does the assembler run on if there’s no operat- ing system, and how do you write an operating system without an assem- bler? Of course, if you just want to build the hardware and purchase an operat- ing system complete with basic (not BASIC) tools rather than tangle with a Chinese computer puzzle, you'll be able to do that too. Andy Bakkers came by the office before heading back to Holland. He suggested that folks start at absolute zero with the 68000. What he meant was that the user should build the system (wirewrap or PC board), create a simple monitor, and then bootstrap the system. Bootstrapping would mean creating C SOURCE CODE XLT MACRO PROCESSOR . ee XLT can be used as a preprocessor, text translator, or simple cross-assembler, . depending on your macro definitions. Comes with manual, C source and macro files. Q/C 4. 0 CP/M C COMPILER w/source . ONLY 95.00 Save $70.00. Fast, full featured compiler from the Code Works includes nes single- -precision floats, excellent manual. QC88 C COMPILER FOR PC’s w/source ONLY 125.00 Save $70.00. As above but no floats or longs. Runs on PC clones. QCX C CROSS-COMPILER w/source Runs on PC, generates code fit to run on Z80 CP/M or ROM base controller system. ® Tony Ozrelic’s L.A. Software is now KYSO Technology ® TO ORDER: Add $5.00 to total for shipping and handling. Personal check or M.O. are OK. Sorry, no COD’s, PO's, or plastic money. 30-day money-back guarantee. Most order shipped Ist class within 5 working days. KNOCK YOUR SOCKS OFF KYS8SoO TE CA ONO OGY © P.O. Box 5246 © Bend, Oregon 97708 © (503) 389-3452 @ an assembler and then a high level language. Other languages and tools could then be written either in assem- bly or the high level language. He suggested that the assembler and ‘some simple debugging tools be in- cluded in the monitor. Then, once the monitor was finished, builders could move on to C or Pascal. He mentioned that a company in Germany is selling a 68000 board (and parts) along with such a monitor. (The package is aimed at educational use.) The assembler built into the monitor is complete enough that users can con- struct a complete compiler, working with Wirth’s Pascal book. Andy will be gathering some addi- tional information about this ayelem for us. The Rest Of SOG We'll include excerpts from many of the talks in Micro C over the next year, so you won’t miss out entirely. We started the schedule with the idea that there would be only two things happening at a time (and folks could remain in the room for the following hour if they wanted to con- tinue the discussion). We weren’t en- tirely successful. Oh well, maybe next year we'll try for three at a time, or expand the formal talks into Sunday, or... The all-day white water rafters (60 people) wanted a two or three day raft trip next year. We'll see about setting up one of those. The last dorm room was assigned on May 1 (almost three full months before SOG). So if you have a hankering to stay in the dorm next year, plan to get your reservation in early. Fortunately, there are lots of motels within a couple of miles, and there’s plenty of parking for campers and trailers next to the dorm. MICRO CORNUCOPIA, #32, Oct-Nov 1986 41 ALL SALES ARE MADE SUBJECT TO THE TERMS OF OUR 90 DAY LIMITED WARRANTY. A COPY OF THIS WARRANTY IS AVAILABLE FREE, ON REQUEST. DIGITAL RESEARCH COMPUTERS CAF 8 MHZ AT COMPATIBLE - $1399 * PRODUCED BY CAF: A $500 MILLION/YEAR TAIWANESE CONGLOMERATE. * BURNED IN FOR 48 HRS. * INCLUDES DOS 3.1 AND MANUALS. * 512K RAM, EXPANDABLE TO 1MEG ON M.B. * 1.2 MEG FLOPPY INCLUDED. * 80286 WITH OPTIONAL 80287 * ON BOARD REAL TIME CLOCK. * AT STYLE KEYBOARD WITH ENLARGED ENTER AND SHIFT. * 195W POWER SUPPLY x COMPLETE SERVICE MANUAL AVAILABLE: $40. * COMPLETE SYSTEM DOCUMENTATION INCLUDED, PLUS DOS MANUALS. : * FLOPPY AND HARD DISK CONTROLLER CARD INCLUDED. * ERSO BIOS FOR MAXIMUM AT SOFTWARE COMPATIBILITY. * LIMITED 1-YEAR FACTORY WARRANTY. * FCC CERTIFIED! * 1.2 MEG FLOPPY CAN READ AND WRITE 360K DISKETTES. ADD $15 UPS. CMI 6640 33 MB. HARD DISK 39 MS - AT COMPATIBLE. VERY LIMITED STOCK — $325 MEX-PC MODEM } SOFTWARE PACKAGE 969.95 A FANTASTIC COMMUNICATIONS PACKAGE WITH FEATURES TOO NUMEROUS TO LIST. SEE MAY/JUNE ’86 MICRO SYSTEMS JOURNAL FOR FULL REVIEW OR CALL FOR BROCHURE. SUPPORTS COLOR, KERMIT PROTOCOL, Y MODEM BATCH, VT100 EMULATION, REMOTE OPERATION, ON LINE HELP, ETC. RUNS UNDER PC/MS DOS. 180 PAGE MANUAL & BINDER. MEX-PACK LIST IS $99.95 — SPECIAL $69.95 NEW! PC/XT EPROM PROGRAMMER $199 * LATEST DESIGN * PROGRAMS UP TO 4 DEVICES AT ONE TIME * FEATURES EASY TO USE MENU DRIVEN SOFTWARE THAT RUNS UNDER PC OR MS-DOS. * USES AN INTELLIGENT PROGRAMMING ALGORITHM FOR SUPER FAST (8X) EPROM BURNING. * THIS PLUG-IN BOARD ATTACHES TO AN EXTERNAL MINI CHASSIS CONTAINING 4 TEXTOOL Z.I.F. SOCKETS. * NO PERSONALITY MODULES REQUIRED * AUTOMATIC VPP SELECTION: 12.5V, 21V, OR 25V. * EPROM DATA CAN ALSO BE LOADED FROM OR SAVED TO A DISKETTE. * PROGRAMMING SOFTWARE SUPPORTS: 2716, 2732, 2732A, 2764, 2764A, 27128, 27128A, 27256, 27256A, 27512, AND 27512A. * ASSEMBLED AND TESTED, BURNED. IN WITH MANUAL. $199 WITH SOFTWARE. MICROTEK 2 M.B. EXPANDED MEMORY BOARD $195 (0. K) MEETS LOTUS/INTEL/MICROSOFT SPEC. FOR EXPANDED MEMORY. FOR.USE AS EXPANDED MEMORY (EMS), ELECTRONIC DISK, OR PRINT SPOOLER. WITH A SUPERB MANUAL AND INSTALLATION SOFTWARE. FOR PC/XT OR MOST COMPATIBLES. FOR 2 MEGABYTES OF 150 NS RAM (72 DEVICES) INSTALLED AND BURNED IN ADD $225. ZRT-80 CRT TERMINAL BOARD! - A LOW COST 2-80 BASED SINGLE BOARD THAT ONLY NEEDS AN ASCII KEYBOARD, POWER SUPPLY, AND VIDEO MONITOR TO MAKEA COMPLETE CRT TERMINAL. USE AS A COMPUTER CONSOLE, OR WITH A MODEM FOR USE WITH ANY OF THE PHONE-LINE COMPUTER SERVICES. FEATURES: » Uses a Z80A and 6845 CRT Controller for powerful video capabilities. RS232 at 16 BAUD Rates from 75 to 19,200. 24 x 80 standard format (60 Hz). Optional formats from 24 x 80 (50 Hz) to 64 lines x 96 characters (60 Hz). Higher density formats require up to 3 additional 2K x 8 6116 RAMS. Uses N.S. INS 8250 BAUD Rate Gen. and USART combo IC. 3 Terminal Emulation Modes which are Dip Switch selectable. These include the LSI-ADM3A, the Heath H-19, and the Beehive. Composite or Split Video. Any polarity of video or sync. Inverse Video Capability. Small Size: 6.5 x 9 inches. Upper & lower case with descenders. 7 x 9 Character Matrix. Requires Par. ASCII keyboard. FOR 8 IN. SOURCE DISK (CP/M COMPATIBLE) ADD $10 Digital Research Computers P.O. BOX 381450 « DUNCANVILLE, TX 75138 + (214) 225-2309 A&T ADD $50 (COMPLETE KIT, 2K VIDEO RAM) BLANK PCB WITH 2716 CHAR. ROM. 2732 MON. ROM sages SOURCE DISKETTE - ADD $10 SET OF 2 CRYSTALS - ADD $7.50 *TM OF DIGITAL RESEARCH INC. (CALIF.) *IBM TM OF INT. BUS. MACHINES. (214) 225-2309. STANFORD TURBO XT - $399 4.77 OR 8 MHZ x FCC CERTIFIED * 640K MOTHER BOARD (0 K) * .135 WATT P.S. * XT-AT 5160 KEYBOARD « FLIP TOP CASE * 8 EXPANSION SLOTS x ASSEMBLED AND TESTED * WITH BIOS * FLOPPY CONTROLLER CARD & CABLES * WITH DOCUMEN- TATION. ADD $12 UPS.. A.R.C. XT TURBO - $529 4.77 OR 7.4 MHZ * 8 EXPANSION SLOTS * SLIDE OUT PC CASE * 5160 XT-AT KEYBOARD « MS DOS 3.1 + BASIC DISKETTE * 256K RAM, EXPANDABLE TO 640K * 4 LAYER JAPANESE MOTHER BOARD x FULLY TESTED AND BURNED IN. * SUPERIOR, CLEAN BIOS. * 135 WATT P.S. x SUPERB DOCUMENTATION * FCC CERTIFIED. ADD $15 UPS. XT OPTIONS: * V20.8 MHZ NEC PROCESSOR. REPLACES 8088. - $12.95 * TWO 1/2 HT. D.S. DD. FLOPPIES INSTALLED: $175/Palr * 256K DRAM. 150 NS. INSTALLED AND TESTED: $28/9 * 64K DRAM. 150 NS. INSTALLED AND TESTED: $10/9 * HARD DISK: ST225 WITH CONTROLLER CABLES & FORMATTED: $425 * ZUCKER COLOR CARD WITH PARALLEL PRINTER PORT: $86 * MONOCHROME/GRAPHICS VIDEO CARD WITH PRINTER PORT: $89 * PLEASE CALL FOR MONITOR PRICING SCHEMA: Schematic Capture and Drawing Package WORKS WITH PC'S AND COMPATIBLES. EASY TO USE WITH OFF THE SHELF PRINTERS, MOUSES, VIDEO CARDS, ETC. COMES COMPLETE WITH A HUGE COMPONENT DATABASE. SUPPORTS MONOCHROME, COLOR, OR EVEN EGA. FREE BROCHURE AND DEMO DISKETTE ON REQUEST. LIST $500 — SPECIAL $396.15 $100 BUSS LIVES! WE STILL SELL S100 PRO- DUCTS AND CP/M SINGLE BOARDS. FREE CATALOG. PC/XT AT ENHANCED GRAPHICS ADAPTER * 3 CARDS IN ONE! * 100% IBM COMPATIBLE. * COMPATIBLE WITH IBM EGA, COLOR GRAPHICS ADAPTER, OR MONOCHROME ADAPTER. * 256K VIDEO RAM! (4 TIMES MORE THAN IBM!) * DUAL FREQUENCY OUTPUT FOR EITHER EGA OR STANDARD RGB COLOR MONITORS. .. * PERFECT MATE FOR NEC MULTISYNC COLOR MONITOR! .* LIGHT PEN INPUT. * FULL 16 COLORS. * MFG. BY D.F.I., THE PREMIER FAR-EAST ADD-ON BOARD MAKER. * A SUPERIOR BOARD AT ABOUT 1/3 THE COST OF IBM EGA! * ASSEMBLED, TESTED, AND BURNED IN. WITH MANUAL. * USES CHIPS & TECH. VLSI! 4 CHIP SET. * FIELD PROVEN BIOS. THE NEW 65/9028 VT ANSI VIDEO TERMINAL BOARD! * FROM LINGER ENTERPRISES * A second generation, low cost, high performance, mini sized, single board for making your own RS232 Video Terminal. Use as a computer console or with a MODEM for hook up to any of the telephone-line computer services. pen tvere: MICRO SIZE! Uses the new SMC 9028 Video Controller Chip coupled with a 6502A CPU. RS-232 at 16 Baud Rates from 50 to 19,200 On board printer port! 24 X 80 format (50/60 Hz). For 15,750 Hz (Horiz.) monitors. 3 Terminal Modes: H-19, ADM3A, and ANSI X 3.64-1979 Wide and thin-line graphics. — White characters on black back- ground or reversed. Character Attributes: De-Inten, Inverse, Underline and Blank. Low Power: 5VDC @.7A, + 12VDC @ 20MA. Mini size: 6.5 X 5 inches. Composite or split video. 5 X 8 Dot Matrix characters (U/L case) with descenders. Answer back capability. Battery backed up status memory. For ASCII parailel keyboard. (Full Kit) ADD $40 FOR A&T SOURCE DISKETTE: PC/XT FORMAT 5¥% IN. $15 NEW OPTION . PC/XT keyboard ROM. Allows use of IBM style keyboard. $15 _ TERMS: Add $3.00 postage. Orders under $15add 75¢ handling. NoC.O.D. ‘We accept Visa and MasterCharge. Tex. Res. add 5-1/8% Tax. Foreign orders (except Canada) add 20% P & H. Orders over $50 add 85¢ for insurance. Prices subject to change without notice. ~ WE ARE NOT ASSOCIATED WITH DIGITAL RESEARCH INC. (CALIF.) THE SUPPLIERS OF CPM SOFTWARE LEAP INTO A NEW DIMENSION CALENDARICLOCK No 569 KIT At @ Works with any Z-80 based tipi e Currently being used in Ampro, Kaypro ' 2, 4& 10, Morrow, Northstar, Osborne, NL Xerox, Zorba and many other computers. Piggybacks in Z80 socket. Uses National MM58167 clock chip, as featured in May '82 Byte. Battery backup keeps time with CPU power off! Full implementation of ‘’C’’ with standard floating Optional software is available for file point, library, and I/O subroutines. UNIX VER 7 date stamping, screen time displays, compatible. Produces relocatable 8080 (optional 0Z80) etc. assembler code. Relocating assembler and_ linker Specify computer type when ordering. supplied with package or use Microsoft M80 and L80 Packages available: : : Fully assembled and tested $99. SID/ZSID debugger interface. FAST COMPILATION Complete kit $69. AND EXECUTION. Bare board and software $29. AZTEC Cll FOR CP/M $199 DES dreund: shipping $ 3. Special price for Micro C subscrib 149 MASTERCARD, VISA, PERSONAL CHECKS, Ee nee tae eae MONEY ORDERS §&§ C.O.D.'S ACCEPTED. i {AX N X N.Y. STATE RESIDENTS ADD 8% SALES TAX software systems Es , KENMORE Box 55, Shrewsbury, N.J. 07701 COMPUTER (201) 780-4004 : TECHNOLOGIES Also available for Apple DOS, HDOS, CP/M-86, PC-DOS P.O. Box 635, Kenmore, New York 14217 (716) 877-0617 WITH AZTEC Cll PERFORMANCE : P 0 o with Mitek’s — - Relocatable Z80_ Relocatable Z80 Macro Assembler Only $49.95 plus shipping. @ Phase/dephase. 8080 to Z80 Source Code Converter. Cross-reference generation. Generates Microsoft compatible Full Zilog mnemonics. REL files or INTEL compatible hex INCLUDE and MACLIB FILES. files. . Separate data, program, common, Compatible with Digital Research and absolute program spaces. macro assemblers MAC & RMAC. e Supports Hitachi HD64180. Generates Digital Research compat- @ Z80 Linker and Library Manager for ible SYM files. Microsoft compatible REL files avail- Conditional assembly. - _ able as an add-on to Assembler. ATTENTION Turbo Pascal Users: Assembler will generate Turbo Pascal in-line machine code include files. “MICRO CORNUCOPIA, #32, Oct-Nov 1986 43 En — Laine Heads Home After The SOG, And Makes It _« In. his own one-track way, Laine ' talks about Yugoslavia, militia, Tai- wan, clones, floppy driver boards, SOG V, the X-16, the Slicer, and environments in MS-DOS. (Actually, he really covers more, I just forgot what it was.) This column is obvious- ly just another Micro C attempt at blatant sensationalism. . e’re sitting in central Yugo- slavia waiting for a police roadblock to filter back to us. We would have been down the highway to Belgrade long ago, but our bus driver was caught passing the line of cars now ahead of us and the militia confiscated his passport. We had to turn around and drive the 10 kilometers back to the militia post. The other lane was solid cars the entire way. And only one militia car with three officers to sift through them. The line extended an hour beyond the militia station when the officers realized the fruitlessness of their situa- tion and with one wave of the hand, overheated cars, sweating bodies, and screaming beasties were dispersed into the Yugoslavian afternoon. © The militiamen have now returned to their post and are arguing with our bus driver over the merits of his driving style, politics, and most likely, religion. It’s cooler now, sitting on the grass next to the militia house, waiting for our driver to come back. He'll no doubt: tell us that the bus has been confiscated along with everything and everyone on board and we’ll all be relocated to the Adriatic Coast where we will be’ pressed into service as latrine technicians and goat herders. The bus will probably be used to decoy other Turkish busses across the border. Our belongings, including my “little Toshiba portable and the ribbon re-inkers I brought to sneak across the border into Turkey, will be donated to . the People’s Work Training Center where they will be used for practice in the Advanced Sledge Pounding Class. And How Was YOUR Trip Home From SOG ??? Later: Well, we ended up waiting at the militia post for about two and a half hours before we could go, and by then the line of cars was backed up again. (We lost six hours in all.) SOG V Yes, I did make it to SOG. Had a GREAT time, too. Since everyone else will be talking about it this issue anyway, I'll just take a quick, surreal dip through the highlights: Grey boat slamming into white waves - Tom into the water by acci- dent - water fights - Tom into the water on purpose - volleyball in a dust storm with the gang - ‘’Watch how fast this scrolls!’’ - ‘‘Hey, come over and look at my 68000.”’ - bi-window visual translation - ‘‘But ours works with a mouse.”’ - Clone Wars - ‘Why don’t you give me a copy of that?” - ‘‘Where’s the beer in this place, any- way?’ - dinner at The Pine Tavern - “‘So I’m taking back two rocks from Mount Bachelor for the kids’ pres- ents.’’ - ‘‘We’ll get some chips and be right over.’’ - ‘‘When you hit the print screen. key, you generate a: keyboard hardware interrupt which generates a print screen interrupt which is inter- cepted by the GRAPHICS program which generates a video interrupt which is intercepted by the EGA card and then you generate a printer inter- rupt which is intercepted by the MODE program which generates a serial COM interrupt, which ...”’ - “Let me know how your project goes.”’ - ‘‘Has anyone seen my beer cooler?’’ A brief list of my favorites at SOG: PC-Tech’s X16 and 4 Meg ‘‘Above- Board”’ card (for 850 bucks!), Logitech Modula, Shawn’s Megabyte Slicer, new (finally!) monitor ROMs from By Laine Stump Development Foundation of Turkey Tunali Hilmi Cad. 22 Ankara Turkey Slicer, and EXPRESS 2.2 in flaming, instantaneous Hawaiian color on Dean’s EGA card on the X16. Update On Taiwan Thirty-five PCs arrived from Taipei while I was away, along with 35 3’ disk drives to mount in them. Nothing is really together yet, and already I have problems. Flakey Flakey Flakey The motherboards we got are 8MHz turbo boards from Auto Computer (doesn’t really matter, you’d get the same board no matter where you ordered from). Unlike most Taiwan junk, they actually WILL run at 8MHz. Almost. All is well until there’s a disk error and then, instead of printing out a nice error message, the machines just lock up and die. Totally. This isn’t the only time they die, either. At random times during the day they simply decide to go home early and don’t even have the decency to mark their names ‘‘OUT’’ on the office bulletin board. So I guess we just use them at 4.77 until I discover the culprit or find some 20MHz crys- tals (6.67MHz). And Still More Flakes We actually had fairly decent luck with DOAs this time — only one bad power supply, one video card (caused by the power supply), one winchester faceplate fallen off, and one color monitor power supply shish kebabed. Of course, that’s only if you don’t count the stripped screw holes, wrong sized nuts, poorly mounted drives, and the floppy controller cards. Loss Of Control Three months ago, when I connect- ed a 3’’ drive to one of the sample Taiwan units to make sure they were compatible, everything worked fine. The new machines and drives work fine together too — until you try a a] . 44 _ MICRO CORNUCOPIA, #32, Oct-Nov 1986 writing to the disk. Then your entire disk gets trashed! When I replaced the new controller with an earlier version I had no prob- lem. The two cards used nearly the same parts; the new one just had a different layout to conserve space. Then I noticed that someone had cut costs by removing all but four of the “fingers” for ground connections on the card edge connector which hooks up to the data cable! The pinout is cleverly designed so that every other wire is ground, helping to reduce crosstalk between channels. But a ground which is connected only at one end does absolutely NO GOOD. Oh, Ataturk! What have our neighbors done now?!? Not so fast, though. I had seen these symptoms before when I installed a single 5’’ drive with no terminating resistors, so I checked the OEM man- ual. On this drive the termination is built in; all the drives have terminator packs. Each signal has 1K ohm of pullup (providing about 5 milliamperes of pull-up current). They say it’s enough. It should be. Every other ‘machine I have, including the X16 and my Toshiba portable AND my Slicer, can handle the little buggers just fine. Well, perhaps a grounding problem can cause the same symptoms. I tried tying all the grounds on the floppy cable together, but it didn’t help. Must be the termination after all. All right, let’s try it with a terminat- ed 5’ drive together with the 3’, AOK. How about with two of the little guys? Sure thing. Now I know. These $%@%%!*! flop- py cards don’t have as much ‘‘drive’’ as the old card, and they need 500 ohms of termination on the cable. Wonderful! Where am I going to put it? The built-in termination on the drive is in a cute little SIP resistor network. Cute little SIP resistor net- works aren’t available in Turkey. Looks like I'll have to solder eight tiny 1K ohm resistors onto 35 floppy disk drives. That makes 560 solder connec- tions! Why can life never be simple? Postscript: I have decided instead to have a “‘terminator plug’’ manufac- tured to be plugged into the unused cable plug. I also rechecked the parts on both controllers and discovered the sole difference is that the old controller . NEW LOWER 16 BIT PRICE SPEED — POWER — VERSATILITY (al =o 4 FULL SCREEN EDITOR ONLY $29.95 Most EXPRESS users are converts from the GIANTS of WORD PROCESSING....... wand you couldn't pay them to go back... HERE'S WHY NAMED DIRECTORIES su POWERFUL KEYBOARD MACRO’ FAST, FAST, FAST SEARCH! FILES LARGER THAN MEMORY handled wi FULL BLOCK INSTRUCTIONS includin VARIABLE SPEED (FAST!) BI-DIRE NOT COPY ee EXPRESS 1.0S GENTLEMEN .. FULL ACCESS TO CP/M USERS AREAS (up to 32) with any editor command! ported on MSDOS VERSION! MEMORY MAPPED VIDEO AVAILABLE FOR IBM PC and PC clones! BUILT-IN CP/M LIKE COMMANDS (RENAME, COPY, ERASE, TYPE, DIR, LOG)! as many as you want)! FULLY RECONFIGURABLE COMMAND KEYS (emulate be other editor if you like)! TERMINAL DATA BASE...INSTANTLY configure is over 50 predefined terminals! CONTROL and HIGH BIT CHARACTERS may be ae and edited! DYNAMIC WORD WRAP/UNWRAP FULL CURSOR CONTROL (and then EASY to SET TAB STOPS - GLOBAU/SELECTIVE/LITERAL/IGNORE CASE I REF LACE PRINT, SAVE, INCLUDE, MOVE, COPY, DELETE IONAL AUTO SCROLL+ GOTO PAGE N/ LINEN COMPACT on disk and in RAM. (even the 16-bit versions are only 25k bytes)! AFFORDABLE... I ral ata fair price is our motto R available FREE on your Local Bulletin Board or for $10.00 from TCI . I'm ready to step up to EXPRESS... please send: copies EXPRESS 2.2 at $29.95 + $5.00 shipping and handling copies EXPRESS 1.0 at $10.00 + $2.00 shipping and handling My computer uses: PCDOS — MSDOS — CPM-86 — CCPM-86 — CPM-80 Kaypro Il — Kaypro 2X,4,10 — Osborne 1 SSDD — EPSON QX-10 Morrow MD2 — Morrow MD3 — MS-PCDOS STD 5" DSDD — XEROX 5" DSDD Disk format: (Circle One) (Cirle One) IBM CPN-86 5" SSDD — Zenith Z90 — 8" SSSD — Apple 35 TRK CPM Other 5" Computer Send Check or Money Order to: Name TCI Address 17733 205th Ave. NE Woodinville, WA 98072 Washington residents must add 8.1% Sales Tax MASTER CARD ‘Tomorrow's Phone Day uses 7438 NAND gates to drive the outputs (as suggested in the drive manual) while the new controller uses 74LS38s. Is this enough difference to cause what is happening? Somebody clue me in.... Editor’s note: Low power Schottky parts (74LS38s in this case) have relatively weak outputs (which isn’t a problem as long as they are talking to other LS parts). Stan- dard TTL parts (7438s) generally have much stronger outputs and that’s obvious- ly important in this application. Mastercard/Visa Sides Den Ciy___s SiC‘ State ___. Zip PHONE ORDERS 1-206-644-3133 Computine | NNOVATIONS The Lesson The great deals found in Taiwan are not all peaches and cream (or straw- berries and sugar). You never know exactly what you'll get. In fact, you can’t even guarantee that the screws holding your winchester drive in the ~ cabinet will be the right size. Most of the time they aren’t. Either they’re too ‘big and the threads are stripped or they’re too small and held in with _ (continued next page) : MICRO CORNUCOPIA, #32, Oct-Nov 1986 45 66 WORLD (continued from page.45) fingernail polish. I no longer have ANY respect or trust AT ALL for Taiwanese computer manufacturers. At least none of them we’ve dealt with so far (and they were the best out of the 30 or so we met with when we went to Taipei). Oh, yeah. Except Multitech. But they couldn’t sell to us anyway. _ By the way, the 3’’ drives we pur- chased are Panasonic (Matsushita, Na- tional) ‘‘super thin’’ 363s, and they are wonderful little units indeed. Small, light, low power, quiet. I only wish we had such good luck at the other end of the cable. On The Pleasant Side We didn’t buy the monitors for our clones from Taiwan. We bought them from a local junk dealer who had yanked them out of an old IBM main- frame before he melted it down for scrap (what a lovely sight that must have been). Of course we tried one before we bought, and it worked. The price was right (about $15 each) but they all had 110 volt transformers and no cabinets. Ergun (my compan- ion on the Taiwan trip) is handling the reconditioning. He’s getting the cabi- _nets made by a friend who usually builds speaker cabinets. The trans- formers will be hefty 220 volt affairs custom made by a local manufacturer (oh, the strange and wonderful things that can be had in this country). In the meantime I’ve sacrificed the monitor from my Slicer so Ron can use it on the X16 over at the main office. This has forced me to hook my Slicer up to a serial terminal (a Wyse 50) for the first time in several months. I can’t BELIEVE how fast it is! On the clones you can actually see the cursor moving across the screen; on the Slicer/Wyse you can barely even see the screen scroll! Typing the ‘‘next page’’ key in the editor brings up the entire next page long before I can even start to say “‘one thousand one’’ (somewhat faster than memory mapping on a clone with a color card, although slightly slower than a monochrome card). I’m talking running MS-DOS and going all the way through the operating system for each and every character here! Clones may be trendy right now, but for sheer word-chopping speed I still couldn’t do without my Slicer. Espe- cially since somebody took away all my 40-track drives, and the Slicer is the only system I have which knows how to double-track a 40-track MS- DOS format on an 80-track drive. Environmental Awareness “2 Okay. Enough -chit-chat. On to con- structive things. You’ll remember that in the last episode of ‘’86 World’’ we learned how to call one program from within another program by using the DOS “’Exec’’ function call. It’s a useful tool to have tucked off in your \tur- bo\lib and \asm\lib directories some- where. Very useful, but limited in an incon- venient way. The problem with the Exec procedure given last issue (for Turbo Pascal, Assembly Language, and Microsoft BasCom) is that it as- Our EXTERNAL systems install in seconds! Includes an attractive vertical cabinet with integral P/S and fan, 3 foot cables. Everything necessary to plug in and go! $465. 5mb External Kaypro (4,2,4,10) Big Board Ill Xerox 820-11! Micro Mint SB-180 Gemini Zorba Osborne Sanyo MBC-41150/ 4460/4200 AVL Eagle (with mods) Alspa I! Epson QXx-410 Morrow MD-2,3 2-80 S-100 Computers aeons CA i SO 262626 66 £62668 66 SOURCE files. No programming required. desired floppy format. 46 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Advanced Concepts “Mini-Winnie’, HARD DISK SYSTEMS For your 2-80 Computer! COMPLETE SUBSYSTEMS Plug in and run! Includes software, documents, cables, brackets as req'd. $665. 40mb External You may buy our controller, software, cables & P/S enclosure for $395. Add your own ST-506 family disk drive (up to 26mb) to complete your system! Compatible with most other add-ons, Including Microsphere & Advent RAM disks, SWP CoPower/RAM disk, Pro-8 Family, Advent Turbo ROM, all soeedup and double/ quad density upgrades ZCPR3, Microshell, Plu’ Perfect 2.2E. The key to the Mini-Winnie system is the INSTALL program, which links your drive and your computer, the way. YOU want it. Extensive menu options allow selection of any ST-506 Compatible drive, as 1 to 4 logical drives within CP/M at any drive letter. Diagnostic and format capability provided to match the installation. Distributed with We have club, user group, OEM/Dealer programs. Call for quantity schedule. If for any reason you are not satisfied, return for full refund within 30 days. All systems warranteed for 90 days. Info and manual $8.00 credited with your system purchase. ORDER INFO: Call (305) 482-7302. Terms: UPS cash COD, check or M.O. Please allow 4 weeks for delivery. Fla. add 5% tax. Shipping extra. Please specify Advanced Concepts Engineering & Consulting 8926 SW. 17th Street Boca Raton, Florida 33433 Our INTERNAL systems do not displace a floppy drive, do not require a power supply upgrade, use the highest technology winchesters available. No compromises. $790. $740. $845. 20mb 40mb 20mb External Internal — Internal v v v v v v v v v % (You may delete $90 v for external systems v less P/S enclosure. v Add $6.00 for extra Vv long cables.) sumes COMMAND.COM (the com- mand processor) is in the root directo- ry of the currently selected drive. However, this isn’t always the case. If you (or the person you sold your slick new text editor to) happen to boot from drive C: and be working on a ‘‘data only” disk on drive A: and then try to execute an external com- mand, then what happens? Exec will croak (not even ribbet or sneeze), that’s what. The Exec func- Figure 1 - GetEnvironment For Pascal CONST string128 = string[l128]; tion call doesn’t know a thing about PATH or any of that good stuff. Enter COMSPEC Fortunately somebody at Microsoft foresaw this problem and put a varia- ble in the MS-DOS ‘“‘Environment’’ called COMSPEC. COMSPEC is set at boot time to the proper drive/path/ filename to find COMMAND.COM. All we have to do is call the program described by COMSPEC instead of just {---------~-~-~---~~~--- GetEnvironment ------=----------~--~---} { return the value of the Environment Variable 'EnvVar' } a ea —---} FUNCTION GetEnvironment (EnvVar : String128) : String128; CONST NULL = “@; EnvPtr EnvSeg EnvOfs : INTEGER; Found BOOLEAN}; TmpStr, MatchStr “CHAR; : String128; begin TmpStr : EnvOfs ; EnvPtr ; r(EnvSeg, EnvOfs); Found ; FALSE; : INTEGER ABSOLUTE CSEG:$2C; WHILE (EnvPtr* <> NULL) AND (NOT Found) DO { check for match of current variable name } begin MatchStr := ''; WHILE (EnvPtr* <> NULL) DO { extract an environment variable name and its value } begin MatchStr := MatchStr + EnvPtr*; EnvOfs := EnvOfs+1; end; EnvPtr := Ptr(EnvSeg, EnvOfs); IF (EnvVar = Copy (MatchStr, 1, POS('=',MatchStr)-1)) THEN { Found the variable, get its value to return } begin TmpStr := COPY(MatchStr, POS('=',MatchStr)+1, Length(MatchStr) ); Found := TRUE; end { if variable found } ELSE { Not Found, move past NULL to next variable } begin EnvOfs := EnvOfse1; EnvPtr := Ptr(EnvSeg,EnvOfs); { variable not found } end; end; { while not found and not end of environment } GetEnvironment := TmpStr; end; { GetEnvironment } { transfer result into return variable } COMMAND.COM. Simple! WHOA! Hold It! Slow down here! First of all, what is the ‘Environment’? anyway? And how do we find this ‘“COMSPEC’’? Good questions. Environment First, the Environment is a collection of strings of the form “‘NAME =string’’ stored somewhere down in the depths of low memory. You can view and change them from the user level with the SET command (try it now — just type SET at the A> prompt and see what it shows). From a program, the environment can be scoped out by following the clue of the ‘Environment Segment’ pointer stored at location 2Ch ($2C for all you Turbo-ers) in the Program Segment Prefix (simply the bottom of the code segment for .COM pro- grams). The environment variables are stored starting at location 0 in the segment indicated by ‘‘Environment Segment.’’ They consist of a series of C-style (0 terminated) strings followed by a final 0. In Assembly Language DB statements the environment would look something like this: DB *M2LIB=C: \M2\LIB*,0 DB *PATH=C: \3C:\BIN;\',0 DB 'CLUB=Sierra',0 DB *NEIGHBORHOOD=Watts! DB So, how do we find COMSPEC? Just scan through the environment looking for the word COMSPEC and then use everything from the = to the next 0 as the filename of our command proces- sor. But let’s not hardcode this thing. Let’s be really neat and make a gener- al purpose function called ‘’GetEnvi- ronment’ that will return the value of ANY environment variable. GetEnvironment In Pascal Armed with only the above informa- tion, my roommate Ron set out to do exactly that, and in a few hours (prob- ably less, but I wasn’t there so I don’t know) he came up with the routine in Figure 1 for Turbo Pascal. (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 47 86 WORLD (continued from page 47) There really isn’t much to explain about it. Just notice how he declared the EnvSeg variable to be at “‘CSeg:$2C”’ with the absolute direc- tive. CSeg is a standard function in the MS-DOS version of Turbo Pascal. CSeg. returns the address of the beginning of the Code Segment. The ““$2C’’ after the colon is the offset, i.e., the exact location within the Code . Segment of the environment. Editor’s note: For more on Code Seg- ments and offsets, see Don Fletcher’s “Writing A Printer Driver For MS-DOS” in this issue of Micro C. After that he just put the value at EnvSeg into the segment of a pointer variable (with the PTR procedure), and from then on it was turned into simple character crunching. Since we started talking about this in terms of COMSPEC and Exec, let’s make the patch to Exec (see Micro C, issue #31, page 41) so that it uses GetEnvironment. First Copy the rou- _ tine GetEnvironment into the begin- ning of the same INCLUDE file as Exec. Then replace the line: ComFile := '\command.com'+chr(0); with: ComFile := GetEnvironment( '*COMSPEC') +chr(0); Now your programs will always be able to find COMMAND ~— as long as there is a system disk in the drive you booted. (Some feats are beyond the reach of mere specks of dust like us.): And In Assembly The Assembly Language version ac- complishes the same results although in a slightly different manner. Ron copied entire ‘“VAR=VALUE” strings into a local variable and then com- pared VAR, returning a newly con- structed string containing the desired VALUE. For Assembly Language we'll simplify things by directly scanning through the environment (no _ local variables) and just returning a pointer to the proper VALUE in EnvSeg (in- stead of making a copy to return). This method may require a few extra steps for some uses, but in many (if not most) it will provide the necessary Figure 2 - GetEnvironment For Assembly Language EXIT: we we We we We we we we ENVSEG equ GetEnvironment PROC Near PUSH AX PUSH cx . PUSH ‘SI MOV ES, ENVSEG XOR DI,DI XOR AX, AX - CMP ES:[DI], AL JZ GetEnv9 GetEnv1: ; POP SI PUSH st MOV CL, {SI] XOR CH, CH Inc = SI REPE CMPSB JNZ GetEnv2 JZ GetEnv3 GetEnv2: — oa MOV CX, OFFFFh REPNZ SCASB CMP ES:(DI],AL JZ GetEnv9 JMP GetEnv1 GetEnv3: INC ‘CMP = seESzbyte ptr [DI],'s! ;FOUND GetEnvironment- return-a pointer to the value of a string in the MSDOS "Environment" ENTRY: DS:SI -—> a string (in Pascal Format) containing var. name IF (NC) ES:DI --> the value of said variable IF (C) nothing (not found) word ptr cs:2Ch ;ptr to environment in base page ssee if no environment at all sretrieve string address stry to match ’ sNOT FOUND sscan until 0 3if double 0 then end of environment selse try next one DI. ;point past t=t STC sindicate FOUND GetEnv9: POP SI POP CX POP AX CMC RET GetEnvironment ENDP information without wasting time or space; that’s the beauty of Assembly Language. . Figure 2 shows GetEnvironment for Assembly Language. To find the value of an environment variable, just put the address of a Pascal string (length byte followed by string) containing an environment variable name in DS:SI and call GetEnvironment. On return, if the Z flag is set, ES:DI will point to ‘the value of the variable. If Z is not set then the variable wasn’t found. To upgrade the Assembly version of Exec (Micro C, issue #31, pages 42-43), add the GetEnvironment procedure into the source file, then change the FINDCOMSPEC procedure (bottom of page 43) to the new one defined in Figure 3. - Disclaimers Our newly-made GetEnvironment has one big problem. It will work only in COM files. In an EXE file the ‘Program Segment Prefix’’ isn’t in the code segment. Details, details. Use the TESTEXEC program in Figure 4 to test the new Exec. . In Turbo this is no problem, since the Turbo compiler can only generate COM files anyway. Be serious now — you aren’t actually working on any- thing in Assembly big enough that it has to be an EXE, are you? At any rate, leaving this limitation for now 48 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Figure 3 - New FINDCOMAPEC For Assembly Language EXEC COMSPECSTR DB 7, *COMSPEC® FINDCOMSPEC: PUSH SI MOV PATHOFS, offset DEFPATH MOV PATHSEG, DS MOV SI,offset COMSPECSTR CALL GetEnvironment Jc FINDCOMSPEC9 MOV PATHOFS, DI MOV PATHSEG, ES FINDCOMSPEC9: POP SI RET 3set up default 3 found Figure 4- New TESTEXEC To Test Modified EXEC masm testexec; exe2bin testexec erase testexec.exe ° ’ ° ? ° ’ ° ’ e 9 ° a r ? ° ’ e e] e ’ . , EXTRN Exec:NEAR Code segment byte public ‘CODE! assume cs:;code,ds:code org 100h TESTEXEC: MOV SP,8000h TESTEXEC.ASM = test the new exec procedure This program MUST be made into a .COM file: link testexec+asmexec; ren testexec.bin testexec. com MOV BX,800h ;request 32k even though we'll never need it MOV AH, 4Ah INT 21h MOV SI, 80h CALL EXEC MOV AH, 4Ch INT 2th ENDS end TESTEXEC gives me something to talk about later. Other Neat Uses You aren’t limited to using existing variables in the environment. You can . put in your own with the SET com- mand. Here’s one I’ve been thinking about lately: ‘“LANGUAGE = Turk- ish’’. Just retrieve this variable when your program starts and then load up the appropriate message file. An inter- esting idea when you work in a multil- ingual environment like we do. Just watch out when and where you set the environment. Unfortunately, MS-DOS makes a copy of the environ- ment for a ‘‘child’’ type of program, i.e., you can EXEC the SET command sactually we are 'freeing' all but 32k sexecute the command trailer sin the base page (CS:80h) 3(since this is a COM, CS<=DS) from within your program to change the environment, but since you’re just changing a copy and not the original, the environment will appear un- changed. For now you'll just have to make do with using SET from com- mand level or batch files. Coming Up Come on now! You think I’m simple minded enough to try and tell you what I'll write about next time? That never works and you know it! You can at least be sure that it will have nothing to do with the Statue of Liberty or migration patterns of the club-footed wildebeest. Well, at least nothing about the statue... a6 8 VAX power In your PC $1500 FREE BOOKLET © 10MHz 32032 CPU no-wait- states e Floating Si point processor — ig e 1MB to 8MB RAM e Virtual memory with Cte MS-DOS and UNIX™ iia? ese eae a SYSTEMS 31324 Via Colinas, Suite 108. Westlake Village, CA 91362 USA (818) 889-1646 Telex: 272849 DS! UR (818) 889-1646 __ MICRO CORNUCOPIA, #32, Oct-Nov 1986 49 Disk Variables gins gereen POF 39°? \e Co ne Re sor Pipes Memory Managemen jo Reareeh™ Function Keys sve ent vans ee : sxe Ove Virtual Disk lay sg, ™ archin, Memory Files ey dea Ql Perfected User Wo | If you've tried some of the earlier CP/M-80 add-ons such as Microshell™ and ZCPR™, then you know it’s possible to add new features to CP/M. Now you'can have much more. without all the trade-offs when you use ConlX, the latest and greatest upgrade for CP/M! — “This system has all of its competitors beat.” Computer Language, June 1985. $ ConlX Operating System: List $4965 Low. 9 981 A complete upgrade for 48K+ CP/M 2.2/3.0 and equivalent systems. Provides professional capabilities with blinding speed, as often found on more expensive MS-DOS™ and UNIX™ machines. Installs easily in 1 minute to add over 100 new commands and features. Eliminates many points of user frustration with CP/M. Uses only 1/2K TPA, 0-27K disk minimum. ConIX is the greatest, most powerful 8-bit upgrade, with speed and capabilities that are so incredible it’s bringing users back to CP/M! ConIX Pull-Down Menu: List $395 EREE OFFER! A user-friendly interface to ConIX that is fully menu- driven, with. helpful prompts and easily understood explanations of all menu functions. Loads with a single keystroke at the prompt level. Source code included! ConIX Library |- XCC Utilities: List $49@5 as “A superb product... ConlX is a bargain.” Mole yetenis Journal, May 1986. | } ConlX Programming System: List $4965 Now only A full programming language for ConIX extends CP/M - SUBMIT capability. Features conditionals, loops, subroutines, labels, nesting, interrupt processing, error — traps, and debugging facilities. Design intricate menu _ systems. Includes a special “compiler” that provides string and numeric variables, an integer math package, . a relocatable assembly code generator, and much more. : A must for CP/M power-users and developers! w AS $10.00! Over 25 utilities written in the ConlX shell language, including hierarchical directories with overlay - adds pathname capability to existing software, interactive debugger, move/copy/link multiple files, print files with pagination, review disk files for deletion, unerase disk with . stats, full-screen TYPE, and more. Source code included! ! Does not require Programming System. Special Distribution Versions of the Conlx Operating System NEW! ConIX Shareware Version: Introducing a new Shareware version of our best seller, the ConlX Operating System. Included is our regular . distribution software less the Archiver, On-Line Manual, Menu source code, and some satellite utilities. Con!IX Shareware is available through CHI for just the cost of the diskette and shipping, or on-line via many popular bulletin board systems. Users who wish to register their copy pay regular advertised prices and receive the complete software package as well as full- service customer support with upgrade notifications. NEW! Conix Disk Manual Version: To reduce the cost for those who want to purchase only the ConlX Operating System, we are offering the complete software package without the printed manual. Instead, complete documentation is provided on oe with . each chapter stored i in individual files. The disk manual does not include the Chapter Summary, Chapter Reference, and Index sections that come standard in our regular typeset manuals. Copies of the - printed manual are available separately should you wish to obtain one at a later date. Product Trademarks - CP/M: Digital Research, ConIX: Computer Helper Industries, Microshell: New Generation Systems, ZCPR: R. Conn/Echelon, MS-DOS: Microsoft, UNIX: AT&T Bell Labs ‘ CHI is celebrating the 100th birthday of one of our nation's most beloved landmarks, the Statue of Liberty on Ellis Island, with our Liberty Centennial Sweepstakes. We're simply saying thank you for being our customer by giving you a chance to win back the entire paid price of your order! Every 100 Sweepstakes entries will be placed into a separate drawing, thus making your odds of winning an incredible? in 100! To enter, read, fill out, detach, and return the entry form below with your order. FREE! Pull-Down Menu System: As a special offer, the ConlX Pull-Down Menu System is included FREE with all Operating System purchases. That's a savings of $24.95 off the regular list price! SPECIAL! Buy ‘Em All Discount Offer: As a special incentive, when you buy all three ConlX packages, you get the Library for only $10. That's right, for $69.95 you'll get the ConIX Operating System, . Programming System, Library |, and three instructional manuals. In addition, we'll throw in the Pull-Down Menu at no extra cost. Act now and secure your copy of the complete line of ConIX products at our lowest price, ever! Sweepstakes Entry Form Name: Address: City: State: _. Zip: Dear Computer Helper Industries: I 1 | | I | | I { 1 1 I | Please enter my name in your Liberty Centennial Sweepstakes in , which | am eligible to win a cash prize equal to the amount | am paying | for the enclosed order. | understand that my Sweepstakes entry will be placed into a drawing of no more than 100 entries as soon as they ! are gathered by you, and that | will be notified by mail if | should win, at which time | will have up to ninety (90) days to claim my prize or | forfeit same. | also understand that | will only be eligible to enter after you ship my order if it has been prepaid, or after payment is 1 received if shipped COD, and | am not eligible if ordering PY PO or ! if I've entered this Sweepstakes before. I | | Signature: Void where prohibited by law. May be cancelled without notice after first drawing DT: O#: - C#: PP $: Specials, lee eee Se eee eee a ‘ConlX Liberty Centennial Celebration Sweepstakes, New Price Reductions, and Free Offers Name: Company (if any): Address: City, State, Zip: Tel. #, Hours: _— ConIX Operating System: $ 29.95 $ — Disk Manual Version $ 19.95 $ __._ Limited Shareware Version $ 0.00 $ — Printed Manual Only $ 9.95 $ — ConlX Pull-Down Menu System $ 0.00 $- __. Con!lX Programming System: $ 29.95 $ __. Printed Manual Only $ 9.95 $ _— ConlX Library | XCC Utilities: $ 24.95 $ __. Printed Manual Only $ 9.95 $ ___ All Con!IX Packages Above $ 69.95 $ Computer Brand: Disk Format Information: » — 8" SSSD Standard $ 5.00 $ _ 5%" DSDD 48 TPI Soft Sector $ 5.00 $ — 5% SSDD 48 TPI Soft Sector $ 6.00 $ — 5%" S$ D__TPI___ Sector $ 10.00 $ Format Brand: Shipping Information: O UPS Ground USA $ 4.50 $ 0. Air Mail Canada. $ 9.50 $ ©) Air Mail Foreign $ 12.50 $ Subtotal: $ Tax (N.Y. Residents Only): | $ Total (Thank You)): $ POs and UPS CODs accepted by phone only. Sorry, credit card payment unavailable. Personal checks require 10 days to clear. Non-USA orders must be prepaid by bank draft in US dollars. Computer Helper Industries Inc. Post Office Box 680 ; ~ Parkchester Station, N.Y. 10462 (212) 652-1786 9AM-5PM M-F MICRO CORNUCOPIA, #32, Oct-Nov 1986 By Mark J. Boyd Computer Science Department University of North Carolina at Asheville Asheville NC 28804 Customizing The FTL Modula-2. Editor For The a If you’ve been looking for Modula-2 | for your Kaypro or a customizable text . editor which will let you customize your keypad, this is your column. be years I’ve wanted a text editor which could use the numeric keypad and cursor keys on my Kaypro II. These keys send out unique codes, but the Kaypro BIOS translates them to codes that can be generated by other keys on the keyboard. For example, the seven key on the _keypad (let’s call it KP7) sends the non-ASCII code Elh, but the BIOS translates it to ASCII 37h, the same as i” | | _the seven key on the main keyboard | DOWN SCREEN {| UP (let’s call it 7). Now if I want to . | . | Figure 1 - Custom Keypad For The Kaypro FTL Modula-2 Editor | GO TO BOL} MOVE {.GO TO EOL! | OR | BY | oR =f | UP LINE | WORD {| DN LINE | INSERT I { OVERWRITE SCREEN | associate a function with KP7, it also is b. | I UD OF ES VOSS OTS OC PSS SSS see ee SSeS wesw associated with 7. I’ve gained a func- tion, but lost a digit! Any program that intakes CP/M BDOS or BIOS calls to read a character from the keyboard gets the same char- acter from CP/M whether KP7 or 7 is pushed. For an editor to distinguish between those keys, it must directly read the keyboard serial port. But no editor designed for a CP/M system would do that because, if it did, the editor could work only on the Kaypro. Possible Solutions That meant I either had to write my own. editor, or get an editor with source code that I could modify. I wasn’t dedicated enough to write my own, and, until recently, the source code wasn’t available for any editor I might have wanted to customize. But there’s a third possibility, and probably some of you are using it; I could redirect the BDOS calls through a filter program in high memory (above the BDOS). I don’t like doing this because the filter program has to be loaded separately from the editor. It also requires moving CP/M, a non- trivial procedure that reduces the TPA available to all programs. My Choice Well, now I have a custom editor. It’s based on the FTL Modula-2 editor from Frank Hogg Labs (818-791-7979). What's more, I was able to modify and recompile that editor, which is quite powerful, in less than a day. Both the power of the editor and the ease of its modification are a direct result of the Modula-2 language and the FTL com- piler. I’m impressed with both. The FTL editor, which comes with the FTL Modula-2 compiler package (about $50), has a WordStar-like user interface, but has several advantages over WordStar as a program editor. The most important is that you can have up to three windows open into different parts of the same file or into different files. You can move easily between the windows and copy/move sections from file to file. But that’s not all: proper move by word, automatic restarting at the posi-_ tion you left off when you last edited a file, and nice user-definable macros — (automatically saved to disk and re- loaded for you). For an extra charge (about $30) you can get the source code for the editor, along with some useful utility programs. My custom version adds. several ' commands, remaps the cursor keys to work properly (try that with Word- Star!), and provides 14 single-key com- mands from the keypad. These com- mands allow me to do most of my editing without control keys. Figure 1 shows the definition of my keypad commands, . How I Did It In order to do this customization, I had to create a new assembly language module (KEYPORT.ASM) that reads a character from the keyboard port and translates the special codes. The ‘FTL system comes with an assembler for just this kind of thing. I also modified three of the main modules in_ the editor: the one that handles terminal I/ O (TERMINAL.MOD), the one that interprets keyboard entries (KEY- -BOARD.MOD), and the one that im- 52 MICRO CORNUCOPIA, #32, Oct-Nov 1986 t 4 Figure 2- New Assembly Language Module For Editor DEFINITION MODULE Keyport; (* Used to directly read the Kaypro keyboard codes and map them for use by ME. GetKey is functionally equivalent to BusyRead from Terminal, but cursor and keypad mappings are different to allow keypad commands in ME. #) FROM System IMPORT WORD; PROCEDURE GetKey() :WORD; END Keyboard. we we we we label : in a,O7h 01 Z,out a,05h hl,keymap be,mapout-keymap nz,out de, keymap a hl,de de, mapout hl,de a, (hl) hil de @,a d,0O de (hl) ld pop pop ld ld push Jp s;mapping tables mapin: db db db db Ofth, Of2h, Of4h, Of3h Ob1h, 0cOh, 0o1h, 0c2h OdOh, 0dth, 0d2h, 0e1h 0e2h, 0e3h, 0d3h, Oeth Ob2h, 0c3h,0ffh 00h 005h,018h,004n,013h 003h, 010h, 06h, 01 fh 007h,019h,01eh,01ch 01dh,00ch,014h,00fh - 012h,016h plements 1 most of the cOnmanHts (ED- ITCONT.MOD). The first is required to use the new . keyboard access routine. The second allowed me to replace some two-key commands with single-key commands (for example 4Q “F to FIND a string). This is the assembly language implementation module Keyport - read keyboard code directly sModula-2 reference point scheck for keyboard input sdone if none waiting, ret 0000h sget key value ssearch for match using cpir sdone if not a special key ;clear the carry sget index of char inl ;point to output table s;get corresponding value in a sget return address _ sremove allocation for return value 3put return value in de ;put de on stack jreturn used to convert Kaypro II special key codes p, down, right,left 91,2,3 5,6,7 295"s rotat ' -', ENTER, end of table we we we we we -—@fFros ~ 3;offset, saves code sup, down, right, left 30,1,2,3 34955657 $8,9,',! tat stot, ENTER The third was to change two existing commands into a more useful form. The code for the Assembly Language module is given in Figure 2. (continued next page) : oe See bd ; : * F : MICRO CORNUCOPIA, #32, Oct-Nov 1986 A-OK CompuTERsS 2005 S.E. 82nd Ave. Portland, OR 97216 (503)771-6758, 771-6862 | DELUXE 1 MEG MCKNIGHT-XT-TURBO w/30 Meg Seagate HD, full bundle of software (spreadsht, databse, grphcs, tutorial, more), multifunction w/disk controller & 2 Teac Drives, monitor adapter(your choice) ASSEMBLED - $1,450 BARE BONES MCKNIGHT-XT Includes slide on case, enhanced PC style keyboard, Deluxe 135 watt P/S, 256K of Ram, Turbo, w/manuels, 100% FCC Approved. KIT - $479 SOG SPECIAL!!! Includes Televideo Telecat-286 Meg, 8 MHZ, 7+ x faster than IBM PC!!! AT compatible, w/20 Meg HD & 1 tloppy(needs video crd & mmntr). $2,400 PCKG. OPTIONS OR SEPARATELY FLIP-TOP CASE(not FCC apprvd)Add $20 FLOPPY DSK CNTRLLR upto 4 OR,Add $39.95 CGA(IBM Compatible Color Grphcs Adptr w/Composite Video Port)$79.95 CGA CARD w/Prntr Port(no video,only RGB)$99 TTL IBM Mono. Adptr w/Prntr Port)$89 MGA(Hercules Styl Grphes w/Prntr Port- »inclds sftwr)$109.95 . 20 MEG SEAGATE HD w/OTC CNTRLLR $425 20 MEG * " HO w/WO CNTRLLR $425 30 MEG * * HD w/ADAPTEC,RLL CNTRLLRS$550 2ND 20 MEG OR(sme order)w/CABLES $295 2ND 30 MEG OR(sme order)w/CABLES $385 SET OF WO CABLES $10 MULTIFUNCTION CARD w/DSK CNTRLLA $99 AT STYLE KEYBOARD FOR XT $30,or $99 w/O McKnight-XxT. 5151(KEYTRONICS STYLE)KEYSRD FOR XT, Add $30,or $99 AT STYLE KEYBRD FOR XT or AT Add $40,0r $110 5S1St(KEYTRONICS STYLE)KEYBRD or AT Add $40,or $110 135 WT POWER SUPPLY "IBM" SIDE SWITCH- (Cheap) $75 135 WT POWER SUPPLY "IBM" SIDE SWITCH, DELUXE $85 MULTIFUNCTION, UPTO 1 1/2" MB,256K/64K MEM. CARD(w/nice sftwr)$175 (All mitfnctn. cards incld. clcek/clndr- »stl,parall,& game ports) TEAC DRIVE-SSBV(None Better)$99 TOSHIBA 1.2 MB OR(New Televideo take outssthey bought TEACS)$125 PRINCETON MAX 12 MONITOR-AMBER(CGA & TTL3US Bank likes this one)$163 TAXXAN-KX1212 MNTR-GREEN ONLY (Amber Flickers)$179 100 MB HD(70 MB Formatted w/Adaptec,RLL becomes MB)$1,250 SHARP RGB MNTR/TV DELUXE(Very Nice;- inclds IBM Cable)$375 NEC-MULTISYNC MNTR(Our better than our price)$575 WARRANTY: Over the counter while you wait service at our Portland store, or same day turn around UPS, Greyhound, Trailways;90 Days warranty on options, 6 months on McKnight-XT. $2,400! ! coaposite FOR XT service is TELEVIDEO - TELECAT 286 MEG AT COMPATIBLE - ONLY $2,400!! PRINTERS PANASONIC $269 LEGEND WIDE CARRIAGE 1385 $375 OKIOATA $549 OKIDATA 293 ' $699 Call for others. Prices are cash;US dollars. Next day shipping. on 1st Inter. or U.S. Nat. Bank. All others allow 2. wks. Add 10% for CO0,3% for. shipping costs, -' or we charge you actual weight,which- ever is cheapest. We have happy customers world-wide. Hope to serve you soon! REMEMBER: : The Mcknight-xT is compatible w/the IBM PCI!! : FREE SOFTWARE WITH EVERY PURCHASE eBob McKnight eLinda Parker ¢Patty May 53 SOG SPECIAL!!! 100% KAYPRO (continued from page 53) The modifications to the other mod- ules are given (in DIF format) in - Figure 3 and Figure 4. Finally I recom- piled and linked all the. modules to create the new editor. A submit file for this purpose is given in Figure 5. ~ Modula-2 makes modifying the pro- grams very straightforward because the modules are independent except for the parameters passed back and forth in procedure calls. As James Albert pointed out in ‘‘Practical Pro- gramming in Modula-2’’ (Micro C, issue # 31), this is an easy language for doing complicated programs. The com- bination of strong structure and the ease of integrating really low level modules (directly reading a port is about as low a level as yew can get) is | unique to Modula-2. I’ve worked extensively in various ‘assemblers, as well as Pascal, C, and FORTRAN, and I think Modula-2 is the best general purpose language I’ve ever used. With the FTL compiler, it’s also a fast enviromnent for program development. Turbo Pascal is nice, but FTL Modula-2 is much better for any- thing complex. The FTL Modula-2 system doesn’t compile as fast as Turbo Pascal be- cause the various parts are not memo- ry resident at all times. However, Modula-2 provides a much more so- phisticated and flexible programming environment than Turbo. Its parts are still nicely linked together, e.g., the compiler loads the editor and points to the error when a syntax error is detect- ed. Using a RAM disk, my edit-compile- edit cycle time was about one minute on a 10K source file. The time to recompile and link the entire editor _ (see Listing 4) was ten minutes. These times are for a 5MHz Kaypro 8. Here’s an algorithm for modifying ‘and recompiling the FTL Modula-2 editor: 1. Enter and compile the KEYPORT definition module. 2. Enter and assemble the KEYPORT implementation module. . _ 3, Extract TERMINAL.MOD, STOR- AGE.MOD, and COMMAND.MOD ‘from MODFILES.LBR. 4, Extract TERMINAL.DEF, STOR- Figure 3 - Changes From Standard TERMINAL.MOD enemenee Line +++4+4+4+4+4+ Line +FROM KEYPORT IMPORT GetKey; wwnennnwe Line a i:=BDOS(diofe, 255); +++4+4+4+4+4+ Line + i:=GetKey(); 9 of 'C:TERMINAL.MOD! ---- 9 of 'A:TERMINAL.MOD! 444+ (* added import of GetKey *) 50 of 'CsTERMINAL.MOD! ---- 51 of tAsTERMINAL.MOD! +4++4 (* replaced BDOS call with GetKey #) EDITCONT.MOD CHANGES FROM STANDARD wwe----= Line 504 of 'C:EDITCONT.MOD' -—-- ---PROCEDURE FarLeft; ~=-~BEGIN one IF CurrentLeftMargin>0 THEN --- ChangeMargin(-INTEGER(CurrentLeftMargin)) _ ++++4+4+4+4+ Line 504 of *AsEDITCONT.MOD! ++++ +PROCEDURE FarLeft; (* Modifed to act like DEC move by line, backward *) +BEGIN IF LinePos=0 THEN Up; ELSE END; SetLinePos( 0); : LinePos:=0; ChangePos; END; END FarLeft; t+eeeeeeteet IF CurrentLeftMargin>0O THEN ChangeMargin(~INTEGER( GarrentisttNargia) ) +PROCEDURE FarRight; (# Modifed to act like DEC move by line, forward #) +BEGIN + IF LinePos=LineLen THEN + Down; wenn---- Line 510 of 'C:EDITCONT.MOD*? --—~ os LinePos: =0; won ChangePos; pues END FarLeft; ---PROCEDURE FarRight; ~~-~-BEGIN Soe SetLinePos(0); ++++44+4+ Line 522 of 'AsEDITCONT.MOD! +4+++ -AGE.DEF, and COMMAND.DEF from DEFFILES.LBR. 5. Modify KEYBOARD.MOD, EDIT- ‘CONT.MOD, and TERMINAL.MOD. 6. Modify the submit file to fit your drive assignments. You will have to break it up into parts if you have only two double sided drives. I’m not sure that the editor can be recompiled with a stock Kaypro II, because of the limited disk storage. It would require a lot of disk swapping. 7. Enter the modified submit file(s) and SUBMIT them to generate the new version of the editor. ET I ER I EI I I TG I OTN I I EIS IO COTE LEE EEG ETE TES IE IIIA ELIE OES EEL CELE LEASE TOSI SCIONS IA ETL 54 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Figure 4 - Changes From Standard KEYBOARD.MOD wweenwon= Line 294 of 'C:KEYBOARD.MOD' --—~ MainTable[13x]:=Left; MainTable[ 18x]: =Down; MainTable[04x]:=Right; MainTable[05x]:=Up; (# Other control keys*) MainTable[07x]:=DelOneChar; MainTable[19x]:=DelFullLine; MainTable[16x]:=FlipInsert; MainTable[0ex]:=BreakLine; ++++++++ Line 294 of '"AsKEYBOARD.MOD! MainTable[13x]:=Left; MainTable[18x]:=Down; MainTable[04x];=Right; MainTable[05x]:=Up; MainTable[10x]:=FarLeft; MainTable[1cx]:=Find; MainTable[1dx]:=Replace; MainTable[1ex]:=DelToEOL; MainTable[1fx]}:=FarRight; MainTable[07x]:=Del0OneChar; MainTable[19x]:=DelFullLine; MainTable[ 16x]:=FlipInsert; MainTable[0ex]:=BreakLine; + + + + + + + + + + + + + + + + + + + wneannee Line 307 of "CsKEYBOARD.MOD' --- MainTable[03x] :=DownScreen; << MainTable[ 12x]:=UpScreen; MainTable[14x]:=DelWord; ++++++++ Line 315 of *'A:KEYBOARD.MOD! + MainTable[03x]:=DownScreen; + MainTable[ 12x]: =UpScreen; + MainTable[ 14x]:=DelWord; oweneee= Line 316 of 'C:KEYBOARD.MOD' == MainTable[0bx]:=DefLabel; -<- MainTable[7fx]:=DelBack; o—= MainTable[0cx]: =DoFind; “<< MainTable[ 1fx]:=DelBack; ++++4+4+++ Line 324 of 'AsKEYBOARD.MOD' + MainTable[0bx]:=DefLabel; + MainTable[7fx]:=DelBack; +: MainTable[0cx]:=DoFind; wwennne= Line. 326 of 'C:KEYBOARD.MOD' noe MainTable[0fx]:=Endinterpret; ++++4+++4+ Line 333 of 'A:KEYBOARD.MOD! + MainTable[0fx]:=Endinterpret; (#Ctrl G#) (#Ctrl Y#) (#Ctr1 V#) (#Ctr1 N#) +++ (# Kaypro <= #) (* Kaypro dn arrow *) (# Kaypro -—> #)A (# Kaypro up arrow *) (# ~ Added for remapped Kaypro Keypad *) (* kp1 *) (# kp7 *) (* kp8 *) (# kp6 #) (* kp3 *) (*#Ctr1 G or (*Ctrl Y or (#Ctrl V or (#Ctr1 N #) (#Ctr1 C#) (#Ctrl R#®) (*Ctr1 T#) +++ (*Ctr1 C or (#Ctr1 R or (®Ctr1 T or "(8Ctri K#) (#Del *#) (#Ctri L*) (# Other control keys ~ some remapped to keypad *) kp4 #) kp5 *) kpENTER *) (#*. on Osborne e+ (#Ctrl K or (*Del #) (#Ctr1 L or (#Ctr1 O#) +++ (*Ctr1 O or kp2 kp9 kp- HiSpeed C Library The HiSpeed replacement library for CP/M Tool- works C/80 uses either Microsoft Macro-80/Link-80 or SLR Systems SLRMAC/SLRNK. Compile HELLO.C into a 254-byte HELLO.COM in 10 seconds with a single command line. Features: Fast K&R incremental development. Full STDIO stream library: fseek, fwrite, etc. Function calls match major MS-DOS, CP/M-68K and UNIX compilers. Painless portable code. Full math, strings, searching, sorting, timing. One function per page documentation with examples that work (410 pages, 310+ functions). Utilities to archive, bold-print, beautify, cross- reference, function map, .. . (27 in all). Printed reference manual and object code One megabyte of source code on disk Free brochure. Phone orders shipped immediately. All Media Master formats and 8” sssd. Viking C Systems 2243 South Belaire Drive Salt Lake City, UT 84109 1-801-466-6820 ask for Grant Figure 5 - Submit File For Recompiling Modified Editor md terminal.def m2 terminal.mod md storage.def m2 storage.mod md command.def m2 command.mod md files.def m2 files.mod md screenio.def ' m2 screenio.mod md makeedit.def md editstat.def , md setupcal.def. m2 makeedit.mod md editcont.def md macros.def md domenu.def md menu. def _Md editdisp.def md editcont.def md keyboard.def m2 menu.mod m2 editstat.mod m2 macros.mod m2 domenu.mod m2 editdisp.mod m2 editcont.mod m2 me.mod m2 keyboard.mod m2 setupcal.mod m2 macros,mod ml me/d MICRO CORNUCOPIA, #32, Oct-Nov 1986 55 PASCAL PROCEDURES By John P. Jones Diddling With The Operating St Louis MO G1 System From Pascal Sometimes you need to deal with the operating system, especially when the language you're working in doesn’t do what you need to do. Herein John shows you how to give your programs direct access to MS- DOS (and CP/M) so they can, for instance, do directory searches. ithin an application program there’s a hierarchy of pre- ferred service use. The tools and facilities which the language. pro- vides, or which can be written in the language, should always be used first. In some cases, even with a language as complete as Turbo Pascal, there may be a need for services at a lower level. . The first step below the language is the operating system. High level lan- guages that are intended to operate on a variety of computers will use operat- ing system calls to perform virtually all of their input/output functions. The operating system itself will be relative- ly hardware independent if it relies on calls to the system BIOS (Basic Input Output System). In some cases there may be BIOS facilities which cannot be reached through normal operating system calls so applications may then need to do direct BIOS calls. At the lowest level is direct hard- ware I/O. If you use this method in your programs, yott cannot expect them to run on more than the most compatible machines. Operating System Services Turbo Pascal provides facilities to use all four levels of this hierarchy. This time I'll give some examples of the second level — Operatine synem calls. For CP/M, the most likely services you might need which aren’t provided by Turbo are: reset disk i allow a (314) 645-1596 Figure 1 - Search And Display Program For MS-DOS © Program get_directory; { MS-DOS version 2 or above } const get_dta = $2f00; { get DTA address fxn } srch_first = $4e00; { search first matching file } srch_next = $4f00; { search next matching file } srch_attr = $0000; { don't use file attributes in search } type regset = record { image of processor registers } ax, bx, cx,dx,bp,si,di,ds,es,flags ;: integer; end; dtatype = record { image of Disk Transfer Area } null : array [0..20] of byte; { used by DOS } attr : byte; ' { file attribute spec } time : integer; { coded time of day } date : integer; { coded date } fsiz : array [0..1] of integer; { file size in bytes } fname : array[0..12] of char; { filename, punctuated } end; dtaptr = “dtatype; var regs ;: regset; curnt_dta : dtaptr; searchname : string[64]; { room for a complete path } i: integer; begin regs.ax := get_dta; { request code to proper place } msdos(regs) ; { get and assign DTA address } curnt_dta := ptr(regs.es,regssbx) } searchname ;:= 'DATAK®. JNK'+*@; { what files are we searching? } regs.cx := srch_attr; { search attributes } regs.ax := srch_first;{ request code } regseds :: seg(searchnamel1]); { let DOS know where the string is } regs.dx := ofs(searchname[1]); msdos(regs); { find first occurence } if regs.ax = 18 then { unsuccessful? } writeln('No matching files") { what went wrong? } else while regs.ax <> 18 do { while we're successful } begin writeln; { for demo, just ship to screen } i := 0; { character array pointer } while (curnt_dta*.fname[i] <> *@) and (i <= 12) do begin write(curnt_dta*. fname[i]J); i := suce(i); ‘end; —regs.ax := spch_next; { repeat the search } msdos(regs) ; end; — end. 56 ee CORNUCOPIA, #32, Oct-Nov 1986 user to change a disk and write to the new one), the directory search calls, get/set user code to change to another user area, and the set file attribute function. The CP/M manuals (you should have received them with the operating system) detail them all. The services MS-DOS provides which are not available in Turbo in- clude file search, system clock access, file attribute get/set, and the like. They are NOT detailed in the manuals you get with MS-DOS, but in a separate, extra cost manual. An excellent alter- native is Peter Norton’s Programmer's Guide to the IBM PC, published by Microsoft Press. A Concrete Example (Heavy Stuff) You have written a program that can use any of several data files. To be consistent, these all have names in the range DATA4JAN.JNK to DATA4DEC.JNK. Also, the program is designed for a turnkey (NOT turkey) system, with many users not even knowing what a filename is, much less how it is structured. Within Turbo itself you can prompt for a filename, attempt to open the file, and, if unsuc- cessful, re-prompt or abort. Not too neat for the naive user. Alternatively, you could input the filename on the command line, but this has the same objections for the beginning user... Both MS-DOS and CP/M provide system calls to search a disk’s directo- ry for files matching an ambiguous name. Turbo, in turn, provides a built- in procedure for making operating system calls, though they are less - convenient to use than the higher level procedures. To use system calls your program > has to do all the preliminary setup, and to write this setup code you have to know quite a bit about what the operating system expects. Figure 1 is a program to search and display all files matching an ambigu- ous file specification for MS-DOS, and Figure 2 - Search And Display Program For CP/M Program get_cpm_dir; const set_dma = $1a; srch_first = $11; srch_next = $12; type feb = record drive : byte; fname : array[0..10] of char; extent ;: byte; 81,82 : byte; ro : byte; map : array [0..15] of byte; curr_rec : byte; rndmyrec :‘array[0..2] of byte; ends . var result, i: integer; dma : array[0..127] of byte; our_fob : fcb; begin bdos(set_dma, addr(dma)); our_feb.drive := 0; our_fcb.fname := "DATA??2JNK'; our_fcb.s2 := 0; our_fcb.extent := 0; result := bdos(srch_first, addr(our_feb)); { gotcha? } { yeah, loop til not gotcha } if result <> 255 then while result <> 255 do begin ( CP/M version 2.2 } { won't use default DMA buffer for CP/M } { request codes as above } { image of what CP/M expects } { drive spec } { filename } { extent (16K block) number } { record count for file } { disk allocation blocks used } { current record for read/write } { random I/0 record } { make CP/M put it where we want } { default drive } { this is what we want } { is anybody home? } result := result shl 5; { result * 32 = filename address offset in DMA } writeln; for i := result + 1 to result + 11 do { 8 char name, 3 char extension } begin write(chr(dma[{i])); if i ~ result = 8 then write('.'); { proper punctuation } end; result := bdos(srch_next); end else writeln('No matching files found.'); end. Figure 2 is the equivalent program for CP/M. First the DOS. All DOS calls are made through software interrupts. Software interrupts can be thought of as two-byte ‘‘long calls’’ (a long CALL is normally five bytes). The Turbo procedure MSDOS(registers) performs an INT 21 instruction after loading the processor registers from the record variable specified in the parameter. MS-DOS Program . The constants declared in the pro- gram define three service requests and one DOS parameter. The service re- quested is normally specified in the AH register, the high order byte of the 16-bit AX register. The requests we'll need are: get DTA (data transfer area) { sorry about that } address, search for first matching file, and search next match. The search attribute constant could be used to qualify the search based on file attrib- utes (hidden, system, or archive). — The type REGSET is an image of the internal processor registers and is used to set up all the information DOS will need, DTATYPE defines what a DTA looks like and will allow us to retrieve the information DOS returns. (Not all system calls return data in the DTA, but the ones we use in this program do.) As you can see, we get back a lot | more information than we use. We’re interested in the last field, the filen- ame. Don’t mess with the first field of the record; it’s not really null. It’s (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 57 PASCAL PROCEDURES © (continued fram page. 57) .. used by DOS for repeated calls for get next match. The final type is a pointer to a DTA, so we can get at it no matter where in memory DOS has put it. The first system call we make is to get the address of the current DTA, which has been set up by DOS. This address is returned in registers ES (segment) and BX (offset) and is: as- signed to the pointer crnt_dta. DOS expects the ambiguous filename. to be © in the form of an ASCIIZ string, i.e.,.a character string terminated by a binary zero. a By assigning our name to a “‘stan- dard’’ Pascal string, appending a zero (4@), and letting DOS know where to find the first character (segment in DS and offset in DX) we keep everyone happy. DOS will parse a file specifier including path, drive specification, and wildcard characters, which makes things easier. For the search first operation, we also need to put the attributes in the CX register. DOS returns a completion code in AL with the code 18 meaning ‘‘no more matches found.’’ The matching filename can be found in the DTA as an ASCIIZ string. CP/M eosin The CP/M system calls are’ set up much the same, but the data is a bit harder to retrieve after: the call. The procedure/function BDOS(func, par- -— am) will put the function # in C and the parameter (if supplied) into the DE register pair of the Z80. When called as a function, the result returned in the A register is the function return value. For calls expecting a 16-bit return value, there is a related func- tion BDOSHL. ' Rather than use the default DMA buffer which CP/M sets up, the pro-_ gram’ declares a variable for the re- turned data and'then calls the operat- ing system to set it as the DMA area. CP/M also requires that an FCB (file control block) be set up before any related file calls are made. The first byte of an FCB is the drive _-: | specifier; zero means the currently logged’ drive, and 1..15 represent’ drives A..P. The filename is next, without the period between name and extension. In. addition all asterisks . must be expanded to strings of ques- tion marks. The extent number must be set to zero in order to find the first directory entry for each file. The file search functions can return’. several values. Values 0, 1, 2, or 3 represent a successful search, with the filename to be found in the current :: DMA buffer at position (result * 32). The filename returned has a drive . specifier prefix, which the program ignores, followed by the filename and extension without punctuation, = Back To The Beanpies Each of these programs, with a little massage, can be turned into a proce- dure to search a specific drive’s direc- tory. The calling program could then , display a menu of choices for the user "— much less error prone than expect- ing the user to remember what the ’’. filename should be. é BARGAIN 68000 OPERATING SYSTEM $50 Now “you. can put K-OS ONE, a on your 68000. use and has all of the features you would ' operating system, ‘simply’ great It is simple to expect from an operating system in the class of MS-DOS or CP/M. It's source code for command processor. easy to They. are written in HTPL, You don't have HTPL? No problem, included. The language hybrid. the HTPL compiler is operating. system is' small. the operating customize because you get system and the a powerful, high level, K-OS ONE You can edit and =sre- : : compile the whole operating system.in only 64K of RAM. The spaekade also contains a line editor, assembler and.a manual.covering the whole package. With K-OS ONE, tools you will hardware. a 68000 you can read and write ASCII files on MS-DOS format diskettes. need to port K-OS ONE to: -This gives you the your CP/M is a Trademark of Digital Research MS-DOS is a Trademark of Microsoft Corporation K-OS ONE and HTPL are Trademarks of Hawthorne Technology To order, call: (503) 254-2005 “XN > foe 58. MICRO CORNUCOPIA, #32, Oct-Nov 1986 Hawthorne Technology 8836 SE Stark . Portland, Or 97216 Graphics for the Rest of Us If you own an. '84, '85 or '86 Kaypro CP/M computer, you can quickly and easily ~ draw diagrams = /- sz Yess and illustrations _ "A great way to fly... the power of this like those shown here. All you need is the program is unlimited." | "A fabulous program... SCS-Draw permits you to draw to the best of your abilities -- and your computer's." _- Profiles, March 1986 right software: SCS-Draw. a ; - Cornerstone Magazine, June 1986 SCS-Draw turns your mild-mannered Kaypro "Extremely easy to use... excellent for into a powerful drawing machine, with creating logos, bulletins and newlsetters." features like: . . - . = Clergy KUG, July 1986 * True pixel-by-pixel drawing "The documentation is among and editing capability. the best I've seen." | 2 oe is -lae 353 - MicroTimes, August 1986 * Multi-screen drawings, for a total resolution of over "Best use I have seen of the 120,000 pixels. (336x362) screen graphics." . - $CS-Draw user, Australia * Powerful printing options like rotation, enlargement, and "The best piece of commercial mirror image. software I have bought... the quality is 4.0." — * Block move and file merge. - SCS-Draw user, Idaho errr ee epee ER Ths saly trvedrawina ereavam for Keuere CP/M sernonsl comoutgrn * Context-sensitive help, pop-up menus and a 96-page user's guide. (Illustrated, of course.) "A pleasure to use... user- friendly, fun, well put together." 2 - $CS-Draw user, Michigan * NEW in Draw 1.1:.X/Y coordinate display, "SCS-Draw is the ‘first program for the vertical text for graph axis labels, print Kaypro that I have truly enjoyed." to disk capability, and much more. - SCS-Draw user, Kentucky Get in on the excitement — get your SCS-Draw supports most copy of SCS-Draw today. dot-matrix printers, . including Okidata, [] Send me SCS-Draw immediately Epson, Star Gemini, by UPS 2nd-Day Air. Payment C. Itoh, and IBM. Daisywheel printers from Juki, Diablo and Brother are also supported, and a [] I have to see it to believe it -- custom installation program is provided send me a copy of the SCS-Draw for printers not listed here. Demo. Program. I have enclosed | $5.00 for shipping and handling. of $59.95 is enclosed. Second City Software | 312-577-7680 — _ Mount Prospect, IL 60056 (Specify Kaypro model when ordering.) _ This’ page was created and. printed using only SCS-Draw and WordStar. “MICRO CORNUCOPIA, #32, Oct-Nov 1986. 59 Writing A Printer Driver For MS- DOS ‘Don Fletcher has, in a. very short time, become a household word in the Micro C community. After making his name with the. logic analyzer series, his ‘Intro To 8088 Assembly | Language Programming’’ at the SOG V was well attended. (Well attended by everyone, that is, but Don. He - wound up grounded by an ear infec- tion.) | Herein, he more than makes up for his ears by covering not only Assem- bly Language programming but device drivers as well (in his own infectious style). If you're confused by segments or Assembly Language or drivers, you . should hear him out. oy, that sure was a good deal on B: parallel printer, but then a street-corner van doesn’t have much overhead. No documentation with it, but after so many printers, no problem — I'll figure it out. Okay, cable all hooked up, here goes. Hmmm, it won’t print. Well, when. all else fails, read the manual. Oops, let’s see, where’s my emergen- cy. documentation kit? (A. Japanese- English dictionary.) I’ve never seen a printer that strobes data in a nibble at a time. Well, first time for everything. Time to find the BIOS listing, the Assembly PeOneneee: reference, and get to work. Sound familiar? That was the good old days of working with CP/M and external devices. Want. a RAM disk, stepper motor driver, simple RS-232 channel with XON/XOFF protocol? Lotsa luck. (Or more E sealietically, lotsa wore) MS-DOS Device Drivers ‘Life improved with the introduction of MS-DOS (or PC-DOS) version 2 or later because the Microsoft program- mers borrowed a page from the UNIX manual and supported external device drivers. So in MS-DOS if you don’t like an existing driver (such as CON, PRT, AUX, CLOCK, or a disk drive), or if you want to create a driver for a ‘new device (such as a stepper motor controller, or RAM disk), you can write the code, and at boot, tell MS- -DOS to use it. The only difficulty is 5 that you must write the driver in Assembly Lan- guage. But if you can modify a device driver in CP/M’s BIOS, there’s no reason you can’t do it in MS-DOS. This is a two-part tutorial on device drivers. I’ll cover a simple character driver (a parallel printer routine) in this installment, and stepper motor and RAM disk drivers (block mode drivers) in the next issue. Assembly Language (Quick And Easy) First of all, we'll cover Assembly "Language so you won't be totally lost when we start looking at code. By Don Fletcher University of Missouri at Columbia t. 7 Box 120 Columbia MO 65202 (314) 443-7294 Segments When Intel developed the 8088, it made the address space one megabyte (20 bits of address bus), but it made the address register (usually called the offset register) only 16 bits (64K). So they added four additional 16-bit reg- isters called ‘‘segment’’ registers. Any one of these segment registers can be added to the offset register to create the full 20-bit address (bits 0 through 19). The address register holds bits 0 through 15; a segment register holds bits 4 through 19. So the segment register addresses memory in a mini- mum of 16-byte chunks (called a para- graph), while the offset register can address memory in 1-byte minimums. Again, the 20-bit physical address is formed by adding the 16-bit segment address to the 16-bit offset address. The result is the 20-bit physical ad- dress (see Figure 1). | Figure 1 - Creating A 1 Meg Address From Two 16-bit Registers 16-bit offset address 16=bit segment address 20-bit physical address 1000 0000 0001 0000 0001 0000 0000 1000 0001 81H + 1000 0000 0000 1000 80080H 80101H Figure 2 - Example Of Segment Definition In Assembly Language Segment Para Stack 'Stack' DB 1024 Dup (OFFH) Ends 31K of stack space Segment Para Public ‘Data! DB 'This is a memory test' Ends ‘Segment Para Public ‘Code? . 3Code follows SS:Stack, DS:Data, CS:Code- 60 © MICRO CORNUCOPIA, #32, Oct-Nov 1986 The four Segment registers have specific uses. The CS (Code Segment) register normally points to program instructions (code), DS (Data Segment) register points to general data, SS (Stack Segment) register is used for stack operations, and ES (Extra Seg- ment) is used as a general purpose segment. The segment registers can point anywhere in memory. If all four segment registers contain the same value (or point to the same . general area), thus limiting the pro- gram space to 64K, you have the makings of a COM file if the origin (offset) is 100H, or a device driver if the origin is 0. The segments are defined within an Assembly Language program using the ‘‘Segment’’ and ‘’Ends’’ com- mands, and then referenced using the “‘Assume’’ command (see Figure 2). - The command “Para” tells the as- sembler to start the segment on the Figure 3 - 8086 Addressing Modes CODE Moves the contents of BX into AX Immediate Put 5 (decimal) into AX Direct Mov AX, Test Register next 16-byte boundary. Each segment is named in the label field (‘’Stack’’ “‘Data,’’ and ‘’Code’’) in case there is more than one segment in your pro- gram. The Assume command loads the addresses of the labels (Stack, Data, Code) into the segment registers (SS, DS, CS). In the case of our device driver, I’ve named the segment ‘‘Code”’ and refer- enced all segment registers (except the stack) to the same segment location. This establishes a 64K (maximum) block of memory for our driver code and data. Procedures The pseudo-ops ‘’Proc’’ and “Endp”’ along with -‘’Near’’ and “‘Far’’ divide your program into logical blocks known as procedures. If your procedure is within the present seg- ment, it’s a ‘‘Near’’ procedure (the segment register is unchanged). If it’s DESCRIPTION Put the contents of memory location Test into AX not within the present segment, it’s a “Far’’ procedure. ‘’Proc’’ defines the start of the procedure; “Endp™ i is the end. You don’t know how the segment registers will be set when DOS calls your device driver, so the driver must be a ‘‘Far’’ procedure.. Therefore, the printer driver example is defined as Far procedure ‘‘Device.’’ The driver procedure itself calls several Near and Far procedures. Addressing Modes As you will see in Figure 3, the addressing modes within the 8088 are similar to the 8085. . In almost all cases, when referencing memory in an operand, the segment register used is DS (data segment). If you need to reference any other seg- ment register, simply place it in front of the operand. For example: Mov AX,CS:{BX] This would use the Code Segment register for the segment address in- stead of the Data Segment register. In this case you’d be copying the 16 bits of data from memory to the AX reg- ister. The memory location is calculat- ed by adding the contents of the CS segment register to the contents of the BX register. (In this example, the BX register is the offset register.) (Note: The processor’s general pur- pose 16-bit registers are called AX, BX, CX, and DX. If you want to deal with just the high byte (8 bits) of AX you’d call it AH, and the low byte is AL. The same goes for B, C,andD.) Indirect Mov AX,([BX] © Put the contents of the memory location pointed to by BX into AX Base + Mov AX, [BX+3] Put the contents of the memory location Displacement pointed to by BX+3 into AX . Mov AX, {BX+SI+5] Data Structures . Data structures can help you pass blocks of data between routines. Sim- ply define a base location, then refer- ence the structure from that-base using the ‘Struc’ and ‘Ends’ commands.. You Put the contents of the memory location pointed to by BX+SI+5 into AX ‘Base + Index + . Displacement . (continued next page) : MICRO CORNUCOPIA, #32, Oct-Nov 1986 61 WRITING A PRINTER DRIVER (continued from page 61) Figure 4 - Defining A Data Structure In 8088 Assembly Language move data into or out of the structure : R : ° — by using the [base.offset] format (see equest equ . ES [Dr] ;Base address is ES segment and DI register Figure 4). Reqhdr Struc ;Start the structure Then within your program, if you ; want to move the contents of AX into Numb DB Numb is a byte with no particular value : Unit DB s;Same for Unit Stat, and Numb into BL, the .code Stat DW ;Stat is a word (16 bits) would look something like Figure 5. Address DD. . sAddress is a double word (Segment+offset) Since data is transferred in blocks to ; and from a device driver, the above. Reqhdr Ends structure format makes the code much more understandable. PC Printer Information The parallel printer driver must com- municate with two output ports (data Figure 5 - Using A Data Structure To Pass Data : Mov [ Request. Stat], AX ;Move contents of AX into memory and control out) and one input port sat Request. Stat (control in). I’ve assumed in the code | Mov BL, (Request. Numb] ;Move contents of memory loction example, that the base address of your . ;Request.Numb into the lower 8 bits parallel printer port is 378H (if you _30f BX have a Parallel Printer Adapter). If you ~ aie have a Monochrome Display Adapter, you should change the base aderess to 3BCH. Figure 6 - Definition Of Device Header Block For Device Drivers The Port addressing is: : Offset Size | Description Base address. =-> Output Data ‘Base address + 1 ==> Input status 00 4 byte Link used by DOS to locate the driver within the chain. Bene evareen oe. Ser Qubparncontrot Should be loaded with OFFFFFFFFH (-1,-1) on entry. And the contents of the output 04 2 byte Device attribute word, tells DOS the type of driver and control and input status ports are: its capabilities. Its f orast is: = Bit Meani Qutput Control. : oF Pte . 15 1 if character device, 0 if a block device 6. Unused 7 14 1 if I/0 Control (IOCTL) is supported 5 Unused _ - - 1 if non-IBM format (block devices) 4 Enable Int - 0 Int Disabled 41 Pe until busy (character devices) 1 Int Enabled se o zero 3 Select - 1 (Always) ‘1 if open/close/RM supported (DOS 3 or above) 2 Init = 1 neg pulse inits prtr Undefined set to 0 1 Auto Feed - 0 no LF after CR 1 if current clock device 1 LF after CR ne 1 if current NUL device ' 0 Strobe - 0 pos pulse sends data : Ot 1 if current standard output device CRT usually " 1 if current standard input device input Status: Keyboard usually Bit Use Strategy entry point offset. Should be set to the 7 Busy - 0 Printer busy strategy routine starting location within your driver. 1 Printer not busy t= 6 ACK ~ 1 Normal input ; Interrupt entry point offset. Should be set to the . 0 Acknowledge pulse _ interrupt routine starting location within your driver. 5 Paper - 0 Printer has paper we 1 Printer ate the paper Name of device padded with spaces if a character device 4 Select - 0 Printer off line (example: 'PRN '), or number of units (1 byte) followed 1 Printer on line . by 7 bytes of reserved space if a block device. 3 Error ~- 0 Printer error d 1 Printer normal (This order never varies, and cannot be changed.) 2 Unused 1 Unused O Unused 62 . MICRO CORNUCOPIA, #32, Oct-Nov 1986 The program sends a byte to the Output Data port, then watches the . Busy input (Bit 7) until the printer says it’s ready for data. The program then raises and lowers (pulses) the strobe output (bit 0). Meanwhile, Init (bit 2), Select (bit 3) are kept high, and Auto Feed (bit 1) is kept high or low depending on your pleasure. Device Drivers When MS-DOS bale. it looks for a config.sys file to tell it if you want to make any changes to the operating system. If a device is added or changed (with DEVICE = [D:][PATH]FILEN- AME.EXT), DOS adds the driver in FILENAME.EXT into the driver chain after the NUL device but before any Figure 7- Device Driver Request Header Format Offset Length Name Unit Media Count NN FHV ONnNa other system character devices (CON, AUX, PRN, CLOCK). The user de- fined block mode device drivers are added after the system character driv- ers, but before any system block de- vice drivers. When a call is processed to a device . driver, DOS scans the chain of drivers until it finds a match. Since user drivers are always first, they override the default MS-DOS drivers (unless it is a block mode driver — then you can only supplement, not supersede, the DOS driver). This allows you to change the printer, console, or supple- ment the disk drives to suit yourself. You pay two penalties for using a device driver. First, there may be a slight increase in the size of MS-DOS, and second, there may be a slight ' Meaning Numb Number of bytes in request header Unit number of this request Cmmd Request headers command code Stat Returned status DOS Reserved by DOS Media Descripter Address Data transfer address byte or sector count Sect starting sector value Wondered What Males TURBOPASCAL Tick? Source Code Generators by C. C. Software can give you the answer. “The darndest thing I ever did see..." ",.. if you're at all interested in what's going on in your system, it's worth it." The Jerry Pournelle, BYTE, Sept '83 just edit and assemble. fully commented and source code for your Pascal Version 3.00A (280) is $45. “The Code Busters" SCG-TP program produces labeled TURBO- system. To modify, SCG's available for CP/M 2.2 ($45) and CP/M+ ($75). Please include $1.50 postage (in Calif add 6.5%). C. C. Software, 1907 Alvarado Ave. Walnut Creek, CA 94596 (415) 939-8153 CP/M is a registered trademark of Digital Research, Inc. TURBO Pascal is a trademark of Borland International increase in program execution time. Therefore, if speed is important (A/D conversion for example), and you can- not convert the driver to buffered interrupt or block mode control you should leave the code within your calling program, and access the device directly. However, if you find vette in- cluding the same sequence of code in several. programs, or using different devices (printers for example) and hav- ing to re-configure your word proces- sor to match, then it’s probably time to write a device driver for each printer. Three Sections Device drivers have tities major sec- tions: the Device Header Block used to communicate with the driver, the Strategy routine, and the Interrupt routines. Device Header Block The Device Header Block must start at offset 0 within the driver, and has a strictly defined order shown in Figure 6. Strategy Routine The Strategy routine has a very simple task. It must save a pointer to the MS-DOS request header. When DOS calls a driver, it calls Strategy first. Strategy receives and stores the pointer to the data, and DOS then calls Interrupt to perform the task. All Strategy does is transfer four address bytes from the ES and BX registers into memory so they can be used by the Intenupe procedure. Interrupt Procedure The work is done by the Interrupt procedure (actually a series of com- mand processors), which uses the pointer passed to the Strategy proce- dure to locate the Request Header passed by MS-DOS. Figure 7 shows the format of the Request Header. The character device Cmmd (com- mand) codes are described below. I'll go into the block mode commands in the next issue. Be sure to include some type of command procedure for all the commands in your jump table (even if it’s only an exit routine) in case an (continued next page) + MICRO CORNUCOPIA, #32, Oct-Nov 1986 © 63 WRITING A PRINTER DRIVER | (continued from page 63) unexpected command arrives. (See Figure 8.) . Still with me? Good, we're almost done. Look over the example code for a parallel printer driver to see how all of the above comes together. If you. want to try your own, here are some hints: 1. MS-DOS is not reentrant (cannot call itself), and since the driver be- comes a part of DOS you cannot use any DOS calls within your code. The only exception is command 0 (Initiali- zation) wherein you may use calls 1 through 0CH and 30H. 2. For the same reason, DEBUG won’t work on device drivers unless you write a short program to set up the necessary work areas and call the - driver from it. If the driver is installed in DOS, you cannot use DEBUG. 3. You can use BIOS calls, which I’ve found to be the easiest way to get a driver on its feet. Output a chatacter or data to printer or screen to see if the process made it to the Init code, and so forth. — After you have written the driver, assemble it, then link it. Next convert it to a .BIN file using EXE2BIN. Using an. extra DOS boot disk (please don’t debug a driver using your hard disk), transfer your driver.bin file ahd a config.sys file that contains the com- mand line: | DEVICE=driver. bin (or whatever the driver is called), Then boot the system on that disk. if you get the DOS prompt your driver should be installed. To find out, try transferring some appropriate data (don’t use inappropriate data — it makes too much of a mess) to the driver from the console or a file. The example driver is named SAMPLE sO if you install it you should be able to dump a text file to the printer using it like so: A>Dcopy test.txt sample Get the idea? You can now treat your driver just like a system driver, so have fun. . Next time — RAM disk and exotic driver (stepper motor controller). (DRIVER.ASM is on the Micro C RBBS.) ZB . : Figure 8 - Character Device Command Codes Code # Name 1-2, 13+15 0 Init Description Not supported with character devices Driver Initialization -- This procedure should do whatever initialization is required of the device. Sign on message handlers would be placed here. The procedure must return the last address of the driver code to MS-DOS (in offset _ 14 Address above), since the Init procedure is called only once. It is normally overwritten by placing it at the end of the driver and returning the address of the starting point of the routine. Error status must also be returned. Uses the IOCTL byte to configure itself, return status in Stat, byte (or bytes) in buffer pointed to by Address, Write W/Verif Output Status Flush Output Buffer 12 IOCTL Write 16 Output Until Busy STATUS WORD BIT BIT 15 12=14 9 8 0-7 BITS 0-7 MEANING VALUE WONAU SEWN Oo 64 MICRO CORNUCOPIA, #32, Oct-Nov 1986 and actual number of bytes transferred in Count. Same as IOctl Read, but doesn't use IOCTL byte. Used to read the input buffer without transferring it. Returns status in Stat and Character in Media. Returns the status of the input device in Stat busy bit (see status word below). If busy = 1 device is ready for input, if busy = 0 device not ready. Discard any data in the input buffer, return status in Stat. Transfer the number of bytes in Count located at Address to the output device. Return status in Stat, and the number of bytes transfered in Count. Same as function 8, but perform a read-after-write to. confirm the data was written correctly. Check status of output device, return in Stat busy bit if busy bit = 1 , device is busy, if 0 device is not busy. Empty the output buffer and discard any pending output requests. Return status in Stat Same as function 8 but configure the output device according to the IOCTL byte. Supported in DOS version 3 and above. Same as 8 above but return when device is busy. Unlike 8, a return with fewer bytes output than transferred isn't an error. FLAGS (1 = TRUE) SIGNIFICANCE Error Reserved Busy Done Error code if bit 15 is = 1 4 MEANING Write protect violation ’ Unknown unit Drive not ready Unknown command Data error (CRC) Bad drive request structure length Seek error . Unknown medium Sector not found Printer out of paper Write fault Read fault General failure Reserved Invalid disk change (MS-DOS ver 3 only) TOTAL CONTROL with LMi FORTH™ For Programming Professionals: an expanding family of compatible, high-performance, Forth-83 Standard compilers for microcomputers For 'Development: Interactive Forth-83 Interpreter/Compilers ¢ 16-bit and 32-bit implementations Full screen editor and assembler Uses standard operating system files 400 page manual written in plain English Options include software floating point, arithmetic coprocessor support, symbolic debugger, native code compilers, and graphics support For Applications: Forth-83 Metacompiler e Unique table-driven multi-pass Forth compiler ¢ Compiles compact ROMable or disk-based applications e Excellent error handling e Produces headerless code, compiles from intermediate states, and performs conditional compilation * Cross-compiles to 8080, Z-80, 8086, 68000, 6502, 8051, 8096, 1802, and 6303 ¢ No license fee or royalty for compiled applications For Speed: CForth Application Compiler ¢ Translates ‘‘high-level’”’ Forth into in-line, optimized machine code _ © Can generate ROMable code Support Services for registered users: * Technical Assistance Hotline ¢ Periodic newsletters and low-cost updates ¢ Bulletin Board System Call or write for detailed product Information and prices. Consulting and Educational Services available by special arrangement. ss Laboratory Microsystems Incorporated [I Post Office Box 10430, Marina del Rey, CA 90295 Phone credit card orders to: (213) 306-7412 Overseas Distributors. Germany: Forth-Systeme Angelika Flesch, Titisee-Neustadt, 7651-1665 UK: System Science Ltd., London, 01-248 0962 France: Micro-Sigma S.A.R.L., Paris, (1) 42.65.95.16 Japan: Southern Pacific Ltd., Yokohama, 045-314-9514 Australia: Wave-onic Associates, Wilson, W.A., (09) 451-2946 Up To Your Ears In Alligators? If that sounds familiar, you need Write-Hand-Man™, the mullti- function pop-up desktop organizer that works neatly with existing soft- ware for CP/M™ 2.2 and 3.0 systems. Write-Hand- Man eliminates that swamped feeling with tools that will get you organized. Write-Hand- Man comes with a 4-function, floating-point, 14 digit Calculator — Notepad — Two-week Appointment Book, File and Directory viewing — Phonebook with dialing — Cut and Paste — Key Redefinition — ASC II table. Even add your own applications. Clear the swamp from your desktop. Order Write-Hand-Man today. $49.95 CA residents add 6.5% tax. Sorry, no credit cards or purchase orders. Poor PerSon Specify: 8" or which 5" format — Software CP/M 2.2 or 3.0 format 9 30 day guarantee Dept. 206 : 3721 Starr King Circle ™ Write-Hand-Man — Poor Person Palo Alto, CA 94306 Software (415) 493-3735 “CP/M - Digital Research SERVO INDUSTRIAL PROCESS CONTROL BOARD 14 Bit Lab Accuracy Industrial Durability The Features of 5 Boards in One. -cacasinninianesriGp a aa «sf Mic se The Servo Process Contro! Board Is a general purpose multi-channel analog and digital input/output controller which can communicate with and control most medium-scale industrial processes. Designed to work with the Servo Industrial Microcomputer, (or other computers which support the SASI interface), it offers great accuracy at prices starting as low as $495. American made @ MILSPEC components @ 1 year warranty Maximum configuration includes: HM 192 analog inputs B 64 analog outputs Hf 128 digital inputs BH 512digital outputs @ Based on the INTERSIL 14 Bit A to Dconverter BCommunicates with any micro or mainframecomputer Easily programmed in high level languages (Turbo Pascal, Microsoft Basic, Forth) & PID, FFT, Thermo- couple linearization and laboratory DAS software supplied. i Custom software and hardware engineering assistance available. 360-B N. Ellensburg St. ——] — i al Box 566 Gold Beach, OR. 97444 SERVO COMPUTER CORPORATION (503) 247-2021 MICRO CORNUCOPIA, #32, Oct-Nov 1986 65 Recover A Directory By Reading . & Writing Disk Sectors — A Little Fun With DOS Interrupt 19 (13H) If you've been using a computer for any length of time then you've no doubt run up against one of those nasty ‘‘BAD SECTOR’’ statements on your screen. This is one of those frustrating occurences where the more you know, the more frustrated. you get. You've got a bad bit somewhere and you're going to lose a day’s or week's or month’s worth of labor because of that teeny little bit. In fact, I lost the second-best edito- rial ever written (we're talking major loss here) to just such a bit. Anyway, this is probably as good an introduc- tion to MS-DOS disk operations and recovering lost data (whether in the directory or elsewhere) as any I’ve seen. Another winner from Gary Entsminger. | sually, when we access a disk we're trying to get at files, a chore better left to the high- level control of DOS. But sometimes we need more control — say, we want to copy protect a disk or recover information lost in a. bad sector. We can gain control via the ROM-BIOS diskette services, invoked with inter- rupt 19 (13 hex). Into The ROM-BIOS . The PC ROM-BIOS offers six stan- dard services (additional services have © been added for the AT, but we won’t _ go into them here), numbered from 0 to 5. _ These services are — 0 Reset diskette system 1 Get diskette status ' 2 Read a sector 3 Write a sector - 4 Verify a sector 5 Format a track :_ To invoke a service (or function) put _its number in register AH (the high byte of the AX register) and call the ROM-BIOS with interrupt 19 (13H). For example, to reset the diskette . controller and drive in Assembly Lan- guage — MOV AH,O INT 13H will do the trick. Resetting the drive this way recali- brates the read/write head (positioning the head on a specific track). This function is important during read sec- tor operations since, often, an error _ Status is returned the first time a read -is attempted. This read error occurs because the disk drive motor takes about a half By Gary Entsminger 1912 Haussler St. Davis CA 95617 second to reach usable (full) speed, and the ROM-BIOS doesn’t wait for it. To compensate, repeat (or retry) any read function at least three times be- fore accepting an error. . . The ROM-BIOS does wait, however, for the motor to speed up on write operations, so retries aren’t necessary . for writes. Reading & Writing Sectors To illustrate the use of interrupt 19 (13H), let’s consider the all too fre- quently occurring problem — BDOS ERROR BAD SECTOR. When DOS, SWEEP, XTREE, or whatever program you're using re- Figure 1-PC-DU: A Program to Read & Write Disk Sectors ; PC-DU, a program to read and write disk sectors Illustrates disk I/0 using ROM-BIOS interrupt 13h STACK STACK e 2 ENDS: ? DATA BUFFER DB ERRMSG DB SUCCES DB DATA ENDS 3 3 CODE START *Something is PROC FAR Program prologue ASSUME CS:CODE PUSH DS MOV ‘AX,0 PUSH = AX MOV AX, DATA MOV DS, AX ASSUME DS:DATA MOV ES, AX ASSUME ES:;DATA- SEGMENT PARA STACK 'STACK* | DB 256 DUP (0) ; 256 bytes for the stack SEGMENT PARA PUBLIC 'DATA* 2048 DUP (0); Enough buffer space for 4 sectors "Something isn't working ! ' working ! ' SEGMENT PARA PUBLIC 'CODE! Save PSP Seg Addr ; Save Ret Addr offset (PSP + 0) Setup Data Seg ; Setup Extra Seg Read sectors from disk into memory ; In this example we'll read the 4 directory tracks -= Side 0, Track 0, Sectors 4,5,6,7 66 MICRO CORNUCOPIA, #32, Oct-Nov 1986 (continued) PC-DU Program (continued) . MOV CX,3 3; Retry 3 times if necessary : RETRY: PUSH cx 3; Save retry count ports a bad sector, it usually means MOV BX, OFFSET BUFFER; We'll read the sectors into it’s unable to access the information 3 a buffer on that sector. The sector could be MOV DL, 3; DL gets the drive (0xA;12B) trashed (magnetic interference or the oe : ’ ; Po as ie mare 5). : : | ; gets the tra like) and totally unusable, or just MOV c ; CL gets the sector(1~-8) slightly garbled. I’ll explain. MOV ; No. of sectors to read DOS keeps track of the information MOV ; Service call 2 = read it’s written to a disk via a CRC. When ats ; ad disk mal 0 Sire ; : . ; Restore retry coun beam ee ae writes a nia NC ; Branok to. write, 4¢ veed-ok of data onto the disk, it appends a MOV ; Otherwise, reset number at the end of the sector. That INT number. is called the CRC (cyclic re- LOOP ; Try again (up to 3 times) dundancy check). The controller cre- ERROR: MOV BX, OFFSET ERRMSG CALL DISPLAY ; Display the error message : 1 ? ates the number by summing. all bytes RET - Retunn eontrol to DOS in the sector (in a cyclic-redundant way) and then keeps only 16 bits of ; the total. Write sectors back out to disk Later, when the floppy controller ; téads the: Sector it creates. anew CRC RITSEC:MOV BX, OFFSET BUFFER; Here's the buffer where the read sectors are number and compares it with the one MOV DL gets the drive (0=A;1=B) appended during the write. If the ; Change this to 1 for a copy (see text) numbers match, then there is only 1 MOV ; DH gets the side(0 or 1) chance in 65,000 that the data isn’t i ri teers aia mar perfect. If they don’t match, the flop- MOV = Ho. of sector's to write py controller returns an error message MOV ; Service call 3 = write (along with the data). INT ; BIOS disk I/O routine Sometimes the sector we want to INC ; Branch to ok message, if ok read has been only slightly garbled — ome p Rhee Drench to .ehror mesnnee a byte or two has gone bananas. If we Go get the message we want and display it could look at that sector, we might be able to reconstruct the bad bytes, UCCESS : MOV BX,OFFSET SUCCES; Here's where the good message particularly if those bytes were text. ids . : ‘ CALL DISPLAY ; Display the good message (There are certainly times when I’d RET ; Return control to DOS accept one or two bad characters in _order to save a page of material.) By using the ROM-BIOS to read and write sectors directly, we can ignore Subroutine (or procedure) to set up display 3 ; 3 D ISPLAY PROC NEAR MOV CX,26 ; Display 26 characters the CRC and take our chances. If DIsP: MOV AL, [BX] } Get next char to display you’re an old CP/M hand, you might CALL DISPCHAR; Display char know about DU (on Micro C’s Kaypro INC BX ; Point to next char disk #2) — a program that reads a LOOP DISP ; Loop 26 times (value of CX reg) sector into memory (ignoring the CRC eee sa hc in carriage return status error) and writes the sector back MOV AL,OAH ; line feed to disk. The program I'll describe now CALL DISPCHAR (PC-DU) will work similarly. RET ; Return control to caller of DISPLAY There are disk problems that prevent DISHLAY -ENDE ; the controller from reading anything at ; : asa ” Reon ; Subroutine to actually display messages all (missing disk, disk inserted back- : Dre, = wards, completely erased disk, erased DISPCHAR PROC NEAR - sector header, emulsion scraped off ie =o i ; rales na + ; : : . ’ ; Select display page the disk...). peisinee F ba eer of MOV AH.14 ; Function code for write errors are unrecoverable, but, fortun- INT _ 10H ; Video interrupt ately, most of the errors are the CRC . POP BX ; Restore BX variety. _ RET ; Return control to caller of DISPCHAR . DISPCHAR ENDP PC-DU : PC-DU (see Figure 1) is an Assembly START ENDP Language shell for reading and writing CODE ENDS END (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 67 RECOVERING A DIRECTORY (continued from page 67) sectors. It’s divided roughly into five parts — . 1. Standard 8088 Assembly Language prologue 2. Data, stack, and buffer setup 3. Sector read (including ree 4, Sector write 5. Message display & return In my example, I’ve chosen to read and rewrite the directory, located on Track 0, Side 0, Sectors 4,5,6, and 7. Long note: You could sharpen up this program by permitting a user to interac- tively input Drive, Track, Side, and Sector at runtime. One obvious (and simple) way to handle this is to set up the user interface in Turbo Pascal and pass the Drive, Track, Side, and Sector parameters to an external assembly language subrou- tine. Figure 2 shows the Turbo Pascal shell and write sector portion of such a pro- gram. It doesn’t include read retries or the interactive details. If anyone's interested, I'll put the complete program on the Micro C bulletin board. Note, in particular, how to pass the. parameters from Turbo to the assembly language subroutine. BP is the caller’s saved base pointer; BP + 2 is the return address, offset, and segment; BP + 4 is the first parameter (Drive) if you're calling a NEAR procedure (required by Turbo Pascal); BP + 6 is the second (Track), and so on. The parameters are passed to the stack in the order they appear when the procedure is called. Naturally, the Assembly Lan- guage subroutine must remove these para- meters from the stack in the proper order. If you're calling a FAR procedure (Micro- soft Pascal, for example) add 2 for each - parameter. Briefly, note a few points in PC-DU. Each sector requires 512 bytes worth of buffer in memory. If you’re going to read one sector at a time (see Figure 2), an array of 512 bytes will handle it. To read the entire directory (see Figure 1) of four sectors we need a buffer of 2048 bytes. Also, note the use of service 0 (reset) and the three-time allowance for re- tries during the read sector part of the program. If the read is unsuccessful after three retries, we’ll assume some- thing is really wrong (an unrecovera- ble error) and write an error message. If all is well, we’ll go on and write the sectors back out. If that’s success- ful, we'll write a success message; if not, we'll again report an error. Reading and writing sectors are identical with two exceptions — Read uses ROM-BIOS service 2; Write uses service 3. And we don’t retry writes. Sum Up & Get Out I’ve documented each line of code in Figure 1, so read through it for the details. | Note also that you could copy an entire disk of sectors from one disk to another by changing the drive specifi- cation on the read or write. For exam- ple, put 0 (for Drive A) in DL during the read, and 1 (for Drive B) in DL during the write to copy whatever’s in the sector of choice on Drive A to Drive B. : Just for fun, I used the program in Figure 1 to copy the directory in Drive A to Drive B. Sure enough, when I checked the disk in Drive B, its direc- tory (and nothing else!) was identical to the disk’s in Drive A. Surely you innovative guys (and gals) out there can make some totally bizarre use of this capability. (A disk copier that ignores CRC errors?) - That’s it; I’m out of here. SAAR Pay OS ga ere * ‘~ i . si = ea) US rales POD EDIT o CREATE DOUBLE SIDED BOARDS ON YOUR PC OR XT -- FAST -- MOUSE SUPPORT — CUT AND Lary fy | by FAs | ary CT | ba WIDTHS -- 10 MIL TRACE SEPERATION -- BLOCK PAD _ OR TRACE DELETE. OUTPUT TO DOT MATRIX PRINTER “PLOTTER DRIVER DUE SEPT 86). RESPTOPLSES is) o MUCH MORE — CALL FOR INFO PASTE -- UNLIMITED TRACE. a see Pre rp : ° | : ity ut hi 0 oO DON FLETCHER o RT 7 BOX 120 COLUMBIA, MO 65202 5 (314) 443-7294 | ANALOGIC o 32 CHANNEL LOGIC ANAL FOR THE PC’XT CSTAND re ALONE CPM-80 VERSION = READY JANUARY 1987> i L i6 BIT TRIGGER WORD, 5 4 CLOCK QUALIFIERS 5 TIMING DIAGRAM, HEX, OR §& DEBUG‘DDT DISPLAY BARE BOARD WITH SOFTNARE AND SCEMATICS - $75.00 5 ONLY $389. 95 : 68 MICRO CORNUCOPIA, #32, Oct-Nov 1986 . Figure 2 - Turbo Pascal and External Assembler Shell program PC_DU; TYPE { Turbo Pascal & assembler shell: for interactive PC-DU; does not include retries for reads or interactive details } Size_of_Sector = ARRAY[0..511] of BYTE; { set up buffer to hold 1 sector } Buffer : Size_of_Sector; Drive, Track, Side, Sector : integer; function SECREAD( VAR B : Size_of_ Sector; Drive : integer; Track : integer; Side : integer; Sector ;: integer) : BYTE; external { Secread is an external assembly language subroutine } *secread.com'®; function SECWRIT( BEGIN VAR B ; Size_of_ Sector; Drive : integer; Track : integer; Side : integer; Sector : integer) : BYTE; external 'seewrit.com!; language subroutine } IF SECREAD( Buffer, Drive, Track,Side,Sector)= 0 {If no error} THEN END. _ SECWRIT. ASM IF SECWRIT(Buffer, Drive, Track, Side, Sector) =0 {IF no error! THEN Writeln('success is ours! ') ELSE write('Unable to read Track', Track, — 'Side',Side, 'Sector',Sector); ssubroutine to write 1 disk sector { Seewrite is an external assembly Byte Magazine called it. “CIARCIA’S SUPER SYSTEM” The SBI80 Computer/Controller Featured on the cover of Byte, Sept. 1985, the SB180 lets CP/M users upgrade to a fast, 4’ x 74” single board system. e 6MHz 64180 CPU (Z80 instruction superset), 256K RAM, 8K Monitor ROM with device test, disk format, read/write. @ Mini/Micro Floppy Controller (1-4 drives, Single/Double Density, 1-2 sided, 40/77/80 track 3%'; 5%" and 8” drives). @ Measures 4” x 7%") with mounting holes © One Centronics Printer Port © Two RS232C Serial Ports (75-19,200 baud with console port auto-baud rate select). . © Power Supply Requirements +5V +/-5% @500 mA +12V +/- 20% @40mA © ZCPR3 (CP/M 2.2/3 compatible) © Multiple disk formats supported e@ Menu-based system customization $B180-1 $B180 computer board w/256K bytes RAM and ROM monitor du dos aesossee teaeastionsteseiacsss $369.00 S$B180-1-20 code segment 'codet same as above w/ZCPR3, ZRDOS assume cs:code and BIOS source............. $499.00 3 -Quantity discounts available- SECWRIT proc near push BP Ww MOV BP, SP Nev PUSH DS. COMM180-M-S POP ES optional peripheral board adds 1200 bps modem and SCS! ss a tae 3 hard disk interface. MOV CH, [BP+8] MOV DH, [BP+6] TO ORDER MOV CL, {BP+4] CALL TOLL FREE TELEX MOV 1-800-635-3355 643331 MOV INT For technical assistance or MOV to request a data sheet, call: POP 1-203-871-6170 RET SECREAD ENDP RS. code ends end SS iS Micromint, Inc. 25 Terrace Drive Vernon, CT 06066 MICRO CORNUCOPIA, #32, Oct-Nov 1986 69 Computers And Education In Central America When Leroy flagged me down at SOG and told me what was going on in Central America I was really floored. I've heard of some dumb moves, but emaciating your university system is a pretty quick way to destroy the dreams of your brightest . youth. This is especially true for the technical types who, outside of a university, have little or no hope of getting hands-on experience with com-. puters. ar in Central America has ; not been kind to the univer- sities there. In 1980, the Uni- versity of El Salvador was invaded and sacked by the Salvadoran military. During the next four years, nearly all the university’s equipment and books were sold and many of the facilities destroyed. Although the military with- drew from the campus in 1984, recon- structing the facilities has been greatly hindered by the government’s refusal to allot the university its full budget as provided for in the constitution (they are receiving only 20 percent). That 20 _ percent barely covers faculty salaries. Until June 1986, the university had one microcomputer serving 6000 engi- neering students. That computer was a cassette based Commodore 128. As- sembly Language, BASIC, and FOR- TRAN were all taught on that one Commodore. In June 1986, Michael Hardt (prime -mover in the project) and Andrea Stoutland (a graduate student at Uni- versity of Washington) delivered and installed a Kaypro II and a Morrow Micro Decision. These donated ma- - chines were installed in the ‘‘computer center’ changed to cover Z80 and CP/M. We've arranged to send another mi- -crocomputer and a printer, and hope to keep sending equipment until the computing center is adequately fur- nished. and classes were immediately _ . Nicaragua Also Suffers The 1972 earthquake and the more recent strife in war-torn Central Amer- ica both have devastated Nicaragua’s _ National Engineering University. Its three-computer laboratory serves 4000 students. (Virtually none of the com- puters donated to Nicaragua are avail- able for educational use, since they’ve been donated with the stipulation that they not be moved from the agency to which they were given.) To make matters worse for the university, pri- mary schools get first crack at any education funds. Therefore, the uni- versity must rely on donations from sources outside the country. INTEGRATED BIOS FOR BIGBOARD Ii This BIOS adds special features to your Bigboard II floppydisk and/or Winchester system. Read, write and format any 5” and/or 8” disk formats. 40 formats included. Use any type of 5” and/or 8” drive. New SYSGEN works between 5” and 8”. INCLUDES: e CONFiGuration program that lets you install any new floppy disk format INTERACTIVELY. e FORMATTER allows you to format almost any diskformat. e PC-COPY reads and writes PC disk- ettes on your Bigboard II.; e MONITOR EPROM with serial keyboard and translate table. e 300 page ZCPR2 manual. e 60 page BIGBOARD II tech manual. e BOOTABLE DISK contains free ZCPR2 and P2D0S system. With TIME and DATE stamping. BIOS also has provisions for 256K RAM disk, Centronics, system — in ROM. e WINCHESTER FORMATTER and SYSGEN Supports XEBEC, W-D and ADAPTEC type controllers. Subdivides into any specified number of drives. Price: $99.95 (specify disk} ANDY BAKKERS de Gervelink 12 e 7591 DT Denekamp The Netherlands e Tel: 31-5413-2488 ‘Please pay with US$ Money Order. MC or VISA welcome. 70 MICRO CORNUCOPIA, #32, Oct-Nov 1986 By Leroy Searle Delphi Development, Inc. 6273 19th Ave. NE Seattle WA 98115 The universities in both Nicaragua and El Salvador desperately need used microcomputers, printers, disk drives, hard disks, books, software, and dis- kettes. These donations are tax deduct- ible and do not violate the embargo on trade. (The Seattle Council of Churches is a sponsor of the project.) For more information contact: Michael Hardt 611 10th Ave. E Seattle WA 98102 (206) 328-4534 (evenings) 16 BIT SINGLE . BOARD COMPUTER. The Micro-86 SBC runs PC DOS versions 2.1 or 3.1, and hosts these features: © 8 MHz 8086 16 bit CPU, can be replaced with V30 proces- sor. | © 128k/512k on board RAM . © 2 asynchronous serial I/O . ports, 1 for system console, - 1 general purpose. ® Centronics printer port. © Floppy disk controller will handle up to 4 drives, 5 or 8 inch, SD or DD. e Standard EPROM contains © BIOS, disk formatting pro- | gram and setup program for disk drive and serial terminal set up. e Small size, 5.75 x 8.5 in. Mounts on a 5% inch drive. $3490 + 300 shipping _ (128k) California residents please - add sales tax. Micro Technical Designs 7584 W. Azusa Rd. Dos Palos, CA 93620 (209) 387-4235 NOW AT THE SBC MART COMPUTING SALE-A-THON THE BEST OF BOTH WORLDS Run your CP/M programs on any IBM PC or compatible. RUN/CPM transforms your PC’s floppy drives into CP/M drives able to directly read, write and format over 100 CP/M disks. RUN/CPM directly executes your CP/M programs. Kaypro, Morrow, Osborne, Cromemco, Heath, many more. Because this is a hardware solution, your programs run up to 30% faster. *x RUN/CPM only $79 (Requires NEC V20 chip below) PC SPEEDUP KITS x NEC's V20 chip will increase the throughput of your system up to 90%. That's almost double your present processing speed. 5MHz kit $24. 8MHz $29. ADD-ON CARDS multifunction card 384K, clk/cal w/bat- tey, serial, parallel, and game ports, with OK save $50 Model MFC-4 $135 monochrome graphics card runs 1-2-3 graphics, w/printer port, 720x348, MGC-1 now $135 (Hercules equiv.) floppy controller for 1-4 48tpi or 96tpi drives, w/cable save $25 Model FDC-2 now only $74 color adapter wilight pen port, RGB and composite outputs reg $140 Model CC-1 now just $116 better than the Super 7: floppy disk controller, clk/calendar, serial, parallel & game ports, spooler & RAMDISK s/w Sale $145 ideal mate for 640K mother- boards clock/calendar card reg $58, CL-1 $149 OMTI hard disk controller card (this card is super fast) reg $220, Model HDC-1 now $175, w/cables high quality IBM PC look alike w/side- switch, flip-top or slide chassis any-combo disk drive brackets heavy steel, 8-cutout style Model CA-8 reg $95, now $69 SBC PLEDGE * service after sale * technical support * low prices * one year warranty MOTHERBOARDS = full IBM PC/XT compatibility — 8 I/O slots = runs IBM’s PC- DOS 3.1 —- BASIC inter- preter available { =— great foundation for business or personal system — 1 year warranty Mode! MB-1 256K motherboard with OK regularly $295, now $199 Model MB-3 640K motherboard with OK regularly $399, now $250 Model MB-2 640K motherboard, 4.77 and 7+ MHz clock, w/256K Reg $399, now $297, this is a fast board: SSS OT EE ABOUT OUR MOTHERBOARDS — the most IBM PC compatible mother- boards available each runs ali commercially available software each works with. all available add-on cards These FOUNDATION motherboards are the most compatible you can buy. All work with V20 chips, have parity checked memory, an 8087 socket, 8 adapter slots, four empty ROM sockets. Super manual includes com- plete data on how to put together a com- plete PC system. It even includes schematics. commercially _ HARD DISKS = complete 10MB Kit * — special, only $398 complete internal /2-high 10MB kit, incl. controller and cables, special $398. complete 10MB kit with low power 3-42” half-high drive, fits 5-%4” slots, $469, 3-42” 10MB Winchester drive alone HD-3 just $380. 20MB half-high drive HD-2 now $395. HARDWARE SPECIALS keyboard 5150 style regularly $125, Model KB-3 only $85 keyboard 5151 style regularly $175, ! Model KB-3 only $99 memory nine 150ns DRAMs Set ID-256 256K reg $55, now $34 no better DS/DD drives anywhere, 48tpi F-4 $99; F-9 96tpi $129 Smarteam modem (fully ‘Hayes equivalent) 300/1200 baud auto ans/dial, reg $399, now just $249 POWER seed 135 Watts side switch top quality one year warranty standard cables for 4 disk drives Model PS-135 power supply regularly $129, now only $85 LAST MINUTE SPECIALS x RUN/CPN only $79--see details in upper left corner of this ad e IBN PC-DOS 3.1 $85. a $45 with motherboard); Ellis PASUAL, COBOL, FORTRAN, BASIC a tap only $34 ea; MS mouse w/PC Paintbrush $145 & CONPLETE 100% IBM PC eqiv syst $987 * Hl drive package! over 800K on a single floppy, complete kit with 9tpi drive, software $149 Shipping and handling: drives/motherboards/cases/power supplies $4.50 ea, cards $2 ea, software $2.50 ea, keyboards/modems $4 ea, speedup. kits $2 ea, memory $1/set, COMPUTERFACTS $3 os set then $1/set. CA residents add 6% sales tax. ‘The SBC MART, P.O. Box 1296, Ridgecrest, CA 93555 AMERICAN EXPRESS The SBC Mart is part of Computing Fechialoay 821-B Commercial Street, Ridgecrest, CA 93555 MICRO CORNUCOPIA, #32, Oct-Nov 1986 _ 71 S-100 BUS Bargains In The Surplus Market As the prices plummet in the PC arena, the movement in that direction . has turned into a stampede. Mean- while, yesterday’s major players, in- cluding S-100, are showing up in unexpected places at unexpected prices. Dave helps you weed the gems from the relics. ne of the few good things to () m= from the inundation of IBM PC compatible hardware is that it has driven a lot of S-100 equipment onto the surplus market. S- 100 machines, which are potentially more powerful than their PC brothers, are becoming available for incredibly low prices on the used market. Many who have “‘upgraded’’ to the PC are selling their old S-100 hardware for peanuts, just to get it out of the way. It’s sad that these people don’t realize the abilities of their S-100 equipment, but, at the same time, it’s a great opportunity for die-hard S-100 users to upgrade and expand their S- 100 systems without selling the family car. Good Deals Which brings us to the subject of the “‘Good Deal.’’ Having just seen a one-year-old three-user (TurboDos) S- 100 system, complete with a Paradyn- amics frame, Intercontinental Micro- Systems master and slave processors, and lots of other goodies, sold by a local medium sized company for less than $1000, I can definitely say that the deals are out there. The trick, of course, is to find them, and to be able to tell the good deals from the ele- phant food. Finding used S-100 equipment, espe- cially IEEE-696-compatible hardware that can be used in modern S-100 frames, can be difficult, but newspaper ads, local computerized bulletin boards, and especially auctions and liquidation sales are often good places to start. Once you find it, you have to be able to use it, so the following is a brief checklist I’ve developed (after spending more than a few dollars on some really awful S-100 stuff). If you really do want a boat anchor or a doorstop then ignore my comments. Things To Watch Out For COST — It’s surprising how many people, especially at auctions, will pay too much money for electronic equip- ment, including S-100 systems and boards. Unless the equipment is still new (maybe even under warranty), it isn’t a good deal unless you can buy it for less than about 25 percent of the new equivalent. For example, a functional S-100- based Alpha Micro system that was purchased for $20,000 in 1980 (back when Alpha Micro systems WERE S- 100) wouldn’t be worth much more than $1000 as a ‘’good deal,’’ because it can be replaced today for about $4000 with an S-100-based TurboDos system. However, a six-month-old Compu- Pro system with all IEEE-696 boards that originally sold for $4000 still might be a good deal at more than $2000 because all the boards are still usable in modern (that is, IEEE-696) frames. HARDWARE — The hardware should be functional or easily repaira- ble. Check the equipment for special parts which are available only from the original manufacturer or some other exotic source. S-100 boards using parts which can no longer be obtained, or can be obtained only from a single source, are virtually worthless on the used market. Even established $-100 vendors have destroyed the value of many of their boards by discontinuing special parts (PROMs, personality modules, etc.). Also, beware of ‘‘REV-itis,’’ where something looks like a great buy until By Dave Hardy 736 Notre Dame Grosse Pointe MI 48203 the manufacturer’s revision number reveals that it’s an older version which doesn’t work or doesn’t have all of the bells and whistles. Some boards may require the dreaded ‘‘Factory Modifica- tion’’ to do anything at all. SOFTWARE — If the S-100 product requires special software make sure you get it at purchase time. This is especially true if the product is a complex SBC (single board computer) or sophisticated I/O device, like a high-resolution graphics display board. Nothing is more useless than a great piece of hardware for which you can’t get software (remember the Sphere 6800?). And even if you can get soft- ware, you may pay $500 for the BIOS for your $100 SBC. DOCUMENTATION — A good deal doesn’t have to come with complete documentation, as long as complete documentation is available some- where. After all, most good deals show up because the seller doesn’t realize what he has. If he had all the information, he’d probably be asking a lot more money. Just be sure you can get the information you need to use the equipment. Good documentation should include full schematics, even if you are not a technically oriented S-100 user (your technician will need them sooner or later), complete set-up and operations guides, and at least a basic theory of operation. If the equipment has _ PROMs, then a listing of the contents would be nice, although most manu- facturers don’t make source listings available even to original owners. CAN YOU USE IT? — The most important question to ask when pur- chasing used S-100 equipment is: ‘Do I really need it?’’ (Not to be confused with ‘’Do I really want it?’’ to which the answer is always ‘’Yes.’’) Even an incredibly good deal is a waste of money if you can’t use it. It is usually a good idea not to buy used equipment in the hope of re- 72 MICRO CORNUCOPIA, #32, Oct-Nov 1986 | selling it to make a profit, unless you have a GUARANTEED buyer. Base- ments all over America are full of good deals which were purchased with the idea of being resold for a hefty profit. Bad News For Interfacers Sol Libes, co-author of the S-100 hardware design reference Interfacing to IEEE-696 S-100 Microcomputers, in- forms me that MicroSystems Journal (of which Sol is the editor/publisher) purchased the last 300 or so copies of that definitive S-100 manual, and that, as of this writing, only eight copies are still available. Osborne-McGraw Hill, the publisher of the book, has no plans for a second edition. The good news is that future ‘’S-100 Bus’’ columns will cover all of the major topics of S-100 bus design. Also, the IEEE-696 specification is still avail- able from the IEEE directly, for a small fee, from their main office deep in the heart of Piscataway, New Jersey. Next Time Some notes about PC-compatible 5S- 100 machines, S-100 mice, and a mini- construction project for your S-100 frame! Future columns will also include more S-100 mini-reviews and compari- sons. If you would like to see a mini- review of a certain S-100 product, please let me know, and I’ll be happy to give it the once-over. Of course, we’ll also have more letters, including feedback, S-100 tips, and hints. As always, I encourage reader feed- back, and welcome questions, sugges- tions, comments, and ideas for future ““S-100 Bus’’ columns. You can contact me here at Micro C, on CIS 70150,102, Source TCH054, or via GEnie mail at DJHARDY. HO XT CLONE COMPLETE SYSTEMS " MOTHERBOARD WITH 640K INSTALLED (TURBO) 150 WATT POWER SUPPLY AT STYLE KEYBOARD FLIP TOP CASE COLOR GRAPHICS VIDEO SERIAL PORT PARALLEL PORT REAL TIME CLOCK FLOPPY DISK CONTROLLER TWO FLOPPY DISKS $699.00 ABOVE WITH ONE FLOPPY AND 20 MEG HARD DRIVE $1049.00 TESTED AND ASSEMBLED WITH ONE YEAR GUARANTEE KEYBOARD (MICROSWITCH) 113 KEYS 8 BIT ASCII PARALLEL OUTPUT WITH CASE AND COMPLETE DOCUMENTATION $40.00 SA800-2 DISK DRIVE CLEAN —- USED $39.00 SA850 DISK DRIVE CLEAN —- USED $69.00 STANDARD MOUNTING -— GUARANTEED 60 DAYS CABINET FOR ABOVE HOLDS TWO DRIVES POWER WIRING COMPLETED (AC AND DC) FAN AND INPUT AC WIRING DONE 20 X 9 1/2 X 17 DEEP ALL MOUNTING HARDWARE POWER SUPPLY FOR TWO DRIVES (SWITCHING) WILL POWER DRIVES AND SBC 6 X8X21/2 5VDC @ 8 AMPS, +12VDC, -12VDC, -5VDC @ .5 AMPS EA AND 24VDC @ 2 AMPS CABINET AND POWER SUPPLY ‘TOGETHER $100.00 ORDER CABINET WITH POWER SUPPLY AND 2 SA850 DRIVE 20 MBG HARD DRIVE $200.00 $299.00 XT CLONE PARTS ONE YEAR GUARANTEE “MOTHERBOARD TURBO (4.77 AND 8.00 MHz) $145.00 MONOCHROME GRAPHICS CARD WITH PRINTER S$ 75.00 COLOR GRAPHICS CARD $ 65.00 FLOPPY DISK CONTROLLER . S 40.00 HARD DISK CONTROLLER $100.00 DISK I/O CARD - FLOPPY DISK CONTROLLER RS-232 CLOCK PARALLEL GAME ADAPTER $ 95.00 CASE FLIP TOP STYLE $ 45.00 POWER SUPPLY 150 WATT $ 75.00 KEYBOARD AT STYLE S$ 65.00 HALF-HEIGHT FLOPPY DRIVE - CALL FOR MAKE IBM COMPATIBLE (LIMITED SUPPLY) $ 89.00 COD ADD $3 LIMITED TO STOCK ON HAND CASCADE ELECTRONICS ROUTE 1 BOX 8 RANDOLPH MN 55065 507-645-7997 PLEASE ADD SHIPPING FROM MN ON ALL ORDERS CREDIT CARD ADD 5% MICRO CORNUCOPIA, #32, Oct-Nov 1986 MN ADD 6% PRICES SUBJECT TO CHANGE 73 SIG/M Takes On New Line He may be the late Stephen Leon, but he wasn’t too late. The blockbus- | ter this time is that SIG/M, that bastion of CP/Mism, is now co-min- gling volumes of MS-DOS. Steve also takes on one of those fancy extended _ graphics adapter (EGA) cards and wins (sort of). with copy for this column. Usually, I’m way ahead of schedule, but this time when the material was due, I was so tied up with Project Turbo that I just plum forgot about it. I had seen the NEC Multisyne moni- tor and decided I had to have one. Once it arrived, I needed an EGA card. One of the members of the users group had a clone EGA card, so I tried it. It turns out the people on Taiwan don’t know that Microsoft’s Word rec- ognizes an EGA card by looking for [e the unpardonable. I was late the IBM copyright notice. (Using DE- - BUG enter ‘‘D C000:0’’. If you don’t see the letters ‘‘IBM,’’ Word will not know you have an EGA.) . Since we occasionally use Word, I wound up buying an Everex EGA card after they assured me on the phone that it was fully compatible. Everex makes a real nice card — BUT! I have some UCSD P Systems software, i.e., Charles Schwab’s Equalizer which lets me lose money in the market without even talking to a broker. I therefore have to boot up in CGA mode because the Pascal program can’t be centered for the EGA. Everex And Quadram Don’t Mix | Would you believe it. If you boot up the Everex EGA card in CGA mode and have a Quadram multifunction card in the system, the screen goes into double vision. I wound up taking out the calculator and determining that with the equipment I had in the house, I could put together another system with a turbo board for about $200 — and I did just that. Building a turbo clone is a tale in itself. Suffice it to say, I went through three boards (including one fried by a power supply) before I was satisfied with the results. Even then, every BIOS I tried gave up something to go turbo. I finally wound up with a real IBM ROM and a hardware switch, but even then, I have yet to get the JRAM 3 to work in turbo mode. That extra speed is handy for compiling, but I ran into trouble a few times with Newword. I have been promised a chance to test an AT board that fits inside an XT. That should be interesting. Why tell this story? In the first place, 74 MICRO CORNUCOPIA, #32, Oct-Nov 1986 - Eco-C C Compiler 7. ‘This is the only package we reviewed that we ~ gq _ would be willing to call a professional tool.” When the review mentioned above was written, a the Eco-C C Compiler was priced at $250.00. Now "you can have the same compiler fora mere $59.95. And that price is complete, including a library of 120 functions, all operators (except bit fields), structures, unions, long, floats, doubles, plus user's _ manual. We've even included a special version of the SLR Systems assembler and linker. “Times eourleey of Dr. David Clark CNC - Could Not Compile N/A ~ Does not support floating point Eco-C requires 56K of free memory, 240K disk space (one or two disk drives or hard disk), Z80 ~ CPU and CP/M 2.2 or later. We also have an - MSDOS version at the same low price. Call today! EG (317) 255-6476 6413 N. College Ave. @ Indianapolis, Indiana 46220 INMD TIER UISIDLORDLO\UTLUIN | By Stephen M. Leon ~ 200 Winston Drive Cliffside Park NJ 07010 without the people in the users group, I never could have resolved some of the problems that came up. Second, a lot of this kind of information is in the public domain libraries and on the BBS systems. Last, the extra PC is now a part of the Amateur Computer Group of New Jersey bulletin board system. You can download any of the SIG/M or PC/Blue software we discuss in Micro C by calling (201) 886-8041 with- out having to go through any prelimi- nary registration papceeune What’s New At SIGIM. While the SIG/M library has tradi- tionally featured CP/M and related software, some of the foreign libraries, such as the Australian, UK, and Japa- Computer Language, Feb., 1985 Benchmarks* ‘ (Seconds) 1-800-952-0472 (orders only) 1-317-255-6476 (information) Ny! i cS nese, have tended to mix CP/M and MS/PC-DOS. We recently advised that the SIG/M library was being made available in a variety of 5’’ formats as well as the standard 8’’. Now that we are making 5’’ formats available, we decided to take the next step and include some MS-DOS and PC-DOS material. Editor’s note: This is a real break with tradition for SIG/M, but it’s obviously a matter of survival. Don’t forget that Micro C is also releasing new software into the public domain arena, so keep us in mind. However, we are pickier about program quality and usability than PC/Blue or SIG/ M. But we don’t exclude software Het because it's shareware. Micro C readers who would like to donate PC/MS-DOS software to the public domain are welcome to send it to SIG/M. We will not publish share- ware or any software that asks for a contribution of any sort. Demo pro- grams for commercial software are definitely thumbs down. We also pre- _ fer that source code be included. With these standards, we don’t see any Hi-RES MONO « 14” Uae Monitor! * TEXT _ 732x44! * Hercules Compatible! -| * Parallel Port! Only $295! 200W PS - Clock/Bat AT-Style KB 1 MEG RAM — 1.22 MEG FDD CGA COLOR 14" Swivel RGB! 640x200 Color! FineLine Text! — IBM Compatible! Parallel Port! Only $595! overlapping with the PC/Blue library, which contains mostly ‘‘send-me-mon- ey software.’’ We are also looking for software that works in the MS-DOS orphans. Browse For Clipper Last issue (Micro C #31), our es- teemed editor Dave Thompson ex- plained how he discovered the won- ders of Clipper. At the same time he bemoaned the lack of a Clipper equiv- alent of the dBASE Browse. Well Dave, the first of the SIG/M PC-DOS releases (SIG/M 284 and 185) contain the ACGNJ Mailing List program in dBASE3+ and on the disk is a Clipper compiled version. It contains a full- featured Clipper Browse. This version does just about every- thing you might want a mailing list program to do. (A much simpler dBASE 2 version is available on SIG/M 110.) I wrote the mail program, Harry Van Tassel wrote the Browse, and the disk contains both the source and the exe- cutable program. Harry’s Browse does Parallel 8 Slots ; DOS 31 * NewWord2 WordStar Commands! * SuperCalc2 Superb Spreadsheet! * SuperFile Free-form Text Filing! [21 MEG Only $2295! T 45 mec Only $2695! NEW!!! EGA COLOR *# NEC Multi-Sync Ultra Hi-RES RGB! * 650x350 Color! *« EGA,CGA,MGA & Hercules Compatible! Only $995! 1 Year Warranty! "15 Day MoneyBack - Guarantee! c 9o M P u iT E R * 1690 65th Street, Emeryville, CA 94608 Prices and specifications subject to change without notice. everything the real Browse does except APPEND. | The same disks tell how to add the Clipper SAVE SCREEN to dBASE3, how to have more than 20 open files in dBASE, and include an automatic -CLP and .LNK file maker for Clipper. If you’re addicted to BRIEF as a code editor (as I am), Harry has also written a how-to-add-a-Time-Date-stamp to BRIEF and how-to-add-line-graphics- code to your programs using BRIEF. Irv Hoff’s IMP Irv Hoff and Harry Van Tassel are probably two of the most prolific con- tributors to the public domain. While Harry always makes the source code available, Irv does not. We think Irv is wrong on that score, but we under- stand why he wants only one “‘offi- cial’’ version of his software. We have now released Irv’s Im- proved Modem Program for CP/M as a three volume set (SIG/M 272 to 274). Included on the disks are overlays for just about any computer or modem you can think of. Also in the set is Irv’s version of XMODEM, called KDM17. Another three volume set (SIG/M 275 to 277).is from the Tesseract RCPM+, Dural, New South Wales, Australia. Included in the set is a smart archive backup utility, a full screen C text editor, a volume of ZCPR3 utilities, a Z80 assembler, and a program to read MS-DOS disks in CP/M and CP/M Plus. SIG/M Volume 280 contains some interesting Turbo Pascal programs from Jon Dart. Volume 279 has anoth- er Irv Hoff program — XIZI — a Z80 to 8080 and 8080 to Z80 translator. Also featured on 279 is a disk catalog program, a Z80 disassembler, a file dump/patch utility, and an RPN calcu- lator. Speaking of calculators, the Summer 86 issue of the Nantucket News (Nan- tucket is the publisher of Clipper) contains a program by Guenther Dau- bach called Das Calc. Using a function © key, you can call up a calculator during a Clipper program and output the result into your program. Harry Van Tassel rewrote it and improved the graphics. It will be out with the (continued next page) MICRO CORNUCOPIA, #32, Oct-Nov 1986 75 IN THE PUBLIC DOMAIN — (continued from page 75) next batch of SIG/M | PC-DOS “soft ware, - Volume 278 contains Z80DIS, a Z80 disassembler written in Turbo Pascal by Kenneth Gielow. Unfortunately, he has not released the source code, but we have released the program because of its value. The major feature of the | program is an extensive analysis of the memory usage by the program being disassembled. Z80DIS produces a break table based upon this memory usage analysis. It also gives you an address listing which itemizes all addresses refer- enced by the code, distinguishes types of label references, marks subroutines and jumps, and produces a fully anno- tated cross-reference table. — More From PC/Blue The updated RBBS-PC (version 14.1b) is out on PC/Blue volumes 221 and 222. The Capital PC User Group deserves much credit for their mainte- nance of this program. It’s an excellent BBS system that installs with a mini- mum of effort. (You can even run two BBS systems on a single 640K PC using RBBS-PC and DESQ.) | Volume 223 contains a unique how- to-do-it program’ — a Cantonese tutor from Louis Crew of the Chinese Uni- versity in Hong Kong. For those of you with limited. spreadsheet needs who cannot justify the purchase of Lotus 123, Freecalc on PC/Blue 224 may help. I never could understand why any- one would want to do software en- cryption. It would seem to me that the danger of messing up your data is greater than the value of the encryp- tion. However, if it interests you, take a look at PC-CODE on PC/Blue 225. A general ledger program called PC- BOOKS is on .226.. Volume 227 con- tains a single entry accounting system. Volume 228 has a double entry ac- counting system. Volume 231 contains a general ledger, accounts receivable, and payroll program. How good or bad these programs are I can’t say. I do know that unless you know what you’re doing, one of these programs can really cause trouble for a small business. All my accountant friends tell me they still find a substantial void in current micro accounting software. So, user beware. A Must Mortgage Program. Every banker, lawyer, accountant, or real estate broker with a PC should: pick up a copy of PC/Blue 226. Ronald C. Pakanowski has written Ml-Ana- lyst, a mortgage investors’ forecasting tool. Some of it is dated because of the new tax law, but it has the best display of a mortgage amortization schedule I have ever seen. It does a lot more than that, and it does ask for money — but in a nice way. Not being an engineer type, I didn’t quite understand PC/Blue 229. It con- tains a program called D’SCOPE, which at first I thought made your PC into an oscilloscope. It doesn’t. In- stead, it converts the PC into a power line monitor, if you add some hard- ware. Volume 230 has a Lotus learning adventure, a spline calculator, and a graph program. Templates of Doom is stated to be an interactive adventure game tutorial for 123 versions 1a and 2. Unfortunately, this is nothing more than a demo of a commercial game » which you are told you can purchase ~ for $39.95. The spline and graph pro- gram look good. Church Management User Group ACGNJ is contemplating setting up a Church Management User Group to help religious institutions with their computer hardware and _ software problems. Both the PC/Blue and the SIG/M libraries already have some — church management software, but as. far as we know this would be the first major effort to unite this group. . much more. A Book For SERIOUS Programmers 7 Turbo Pascal - Advanced Applications Written by the experts. Includes using interrupts, bit mapped graphics, optimization techniques, utilities, low level system tools, how to call DOS functions from within your application, using data compression to save disk storage and transmission time, how to build your own subset compiler, using in-line code, and - NOT ANOTHER BEGINNER TUTORIAL Anyone using Pascal or Turbo Pascal-will appreciate the advanced and thorough discussions of program- ming topics. Complete source code in the book and also on MS DOS disk. Order Turbo Pascal - Advanced Applications for $16.95; with MS DOS disk—$29.95. Add $1.50 shipping in US and Canada. Overseas surface, add $3.50. Air rates on request. Order from Rockland Publishing, 190 Sullivan Crossroad, Suite 108, Columbia Falls, MT 59912. Visa and Master Card accepted. Phone or- ders: (406) 257 9119. Further information upon request. Dealer inquiries welcomed. As part of this proposal, a BBS- - system would be set up as a clearing house for information and software. The group would probably try to de- velop or seek some specialized soft- ware which could also go out on SIG/. M and or PC/Blue. If you’re interested in this program, or know someone who might be inter- ested, please have them contact Burke Mawby at (201) 566-7445. How To Order SIG/M volumes are available on 8’’ “SSSD disks for $6 each ($9 foreign) directly from SIG/M, Box 97, Iselin, NJ 08830. They are also available in most 5’’ formats. The charge for 5’’ disks is $7 per volume. However, for SSSD formats, or any format which requires more than one disk, please add anoth- er $2 per volume. Printed catalogs are $3 each ($4 foreign). PC/Blue volumes are $7 each ($10 foreign). The printed catalog is $5. Both are available from the New York Amateur Computer Club, Box 100, Church Street Station, New York, NY 10008. Both groups have a disk catalog (Volume 0) avail- able at the price of a standard disk volume. This catalog volume is usually more current and more readily avail- able than the printed catalog. ew 76 | MICRO CORNUCOPIA, #32, Oct-Nov 1986 Assembled & Tested $70.00 XEROX’820-1 & 2 820-1 $50.00 820-2 CP/M (8") 35.00 CP/M (8") 35.00 820-1 w/CP/M 70.00 820-2 w/CP/M — 90.00 Xerox is a trademark of Xerox Corporation. CP/M is a trademark of Digital Research. OEM HOBBYIST Sips Inductors Pots 7400 Dips Sockets Regulators Caps 74LS chips Linears Resistors Some ECL and more.. POOR MAN'S NETWORK Now you can implement networking on your own CP/M computers and share resources whenever you want. Each user can access files and printers on the other computer directly, without expensive hardware or switches, and without a communications pro- gram. Share floppies, RAM-disk, hard disks, and printers between two users. Works with most standard CP/M programs, like Wordstar,. PIP, dBase II, etc. Poor Man’s Network works best with bidirectional parallel ports, or standard serial ports at 9600 baud or greater. Present version supports two computers only, and requires CP/M 2.2 on each computer. Uses only 6K of memory. Does not require a hard disk; runs on 8080, 8085, 2-80, HD-64180. Poor Man’s Network comes ready to run on BigBoard | and I!, Xerox 820, NorthStar Horizon, NorthStar Advantage, Televideo TPC |, Kaypro (not 2000), Apple II (Super Serial required), S-100 with Compupro Interfacer 4. Can be installed on other computers by altering one of the assembler overlay files provided. Each disk contains drivers for all the specified computers. Best of all is the price: only $69! Specify disk format: 8” SSSD, NorthStar, Kaypro, or Apple CP/M. Phone orders accepted; sorry, no CODs or Purchase Orders. Payment may be by certified cheque, money order, Visa, or Mastercard. Personal cheques from outside Canada require up to 6 weeks to clear. Canadian - orders please pay in Canadian dollars; others in US dollars. Price includes diskette, manual and postage. Ontario residents please add provincial sales tax. Note: If you use another operating system, such as CP/M 3 or PC-DOS, send us your name and address, but no money, and we will notify you when it is available for your system. ANDERSON TECHNO-PRODUCTS INC. 947 Richmond Road, Dept C Ottawa, Ontario K2B 6R1, Canada Telephone 613-722-0690 for more information or to order. CP/M is a trademark of Digital Research; 2-80 is a trademark of Zilog; Wordstar is a trademark of MicroPro; dBase; \l is a trademark of Ashton-Tate. Poor Man's Network is a trademark of Doug Anderson Techno-Products Inc. :5 1/4" DSDD : 80 Track 96 TPI : : Philips*Drives $100.00 Z00-B 6MHz $4.50 3P+N POWER SUPPLY Single board power supply kit with 2 positive fixed voltages. +1 and -1 variable. KIT $54.95 E*| COMPUTER PRODUCTS 2273 American Ave. #8 - Hayward, CA 94545 (415) 786-9203 Sapricot TERMS: All orders are F.O.B. Hayward California - Prepayment or C.0.D. - California residents add sales tax - Prices subject to change without notice - Quantities limited to siock on hand. Real 16 Bit Power on a Single Board — SLICER... THE 1 ies Featuring the Intel 80186 (C) Step CPU = Complete 8 MHz 16-bit micro- TRUE LOW COST processor on a 6” x 12” board mw 256K RAM, plus up to 64K EPROM mw SASI port for hard disk controller THE SLICER SLICER/1MByte EXPANSION COMBO The Slicer (without RAM or RAM W controllers) with Full 1-MByte WE Memory Expansion CCP/M (Digital Research) _ $950 THE SLICER PC EXPANSION BOARD Gives your Slicer high performance AULT -USER ™ Two full function RS232C serial ports | video capability i with individually programmed = IBM compatible monochrome video m Software compatibility with the 8086 text or special graphics capability and 8088. = 21BM type card slots for color video, @ 8K of EPROM contains drivers for 1/O expansion, etc. peripherals, commands for hardware ™ IBM type keyboard port checkout and software testing m= Software supports most types and sizes of disk drives @ Source for monitor included on disk ™ Bios supports Xebec 1410 and - Western Digital WD 1002 SHD controller for hard disks Fully assembled and tested only $445 THE SLICER 1-MByte AN EXPANSION BOARD WE For expanded memory, additional ports, and real time clock @ 1-MByte additional dynamic RAM ® 2 RS232C asychronous ports with baud rates to 38.4K for serial communication . @ 2 additional serial ports for asynch - (RS 232) or synch (Zilog 8530 SCC) communication § Real Time Clock with battery backup @ Centronics type parallel printer port Fully assembled and tested only $450 Fully assembled and tested only $495 All boards avaitable in kit forms The SLICER Bulletin Board (300/1200 baud) 612/788-5909 Runs MS DOS generic software; PC DOS program operation not guaranteed Also available: The ,Slicer 188 $400; 8087 Math Co-Processor Bd. (call); 10 MB Hard Disk $465; W.D. 1002-SHD H.D.C. Bd. $200; Enclosures, Power Supply, and Support Hardware. CP/M 86 $85, CCP/M $250 (Digital Research, Inc.); MS DOS $175 (Microsoft Corp.) MasterCard, Visa, Check, Money Order, or C.O.D. Allow four weeks for delivery. Prices ater to change without notice. QUALIFIED DEALER INQUIRIES INVITED» Slicer Computers Inc. SS —$-_—sw¥"'e2?543. Maarrhaaill St. N.E. SLICER: Minneapolis, MN 55418 612/788-9481 =—=—————___ Telex 501357 | SLICER UD MICRO CORNUCOPIA, #32, Oct-Nov 1986 77 Little Board™.... $249 The World’s Least Expensive CP/M Engine Os, CP/M 2.2 INCLUDED eS O @ 4 MHz Z80A CPU, 64K RAM, Z80A CTC, 4-32K EPROM @ Mini/Micro Floppy Controller (1-4 Drives, Single/Double Density, 1-2 sided 40/80 track) @ 2RS232C Serial Ports (75-9600 baud & 75-38, 400 baud), 1 Centronics Printer Port @ Power Requirement: +5VDC at .75A; +12VDC at .05A / On board -12V converter @ Only 5.75 x 7.75 inches, mounts directly to a 5-1/4” disk drive @ Comprehensive Software Included: @ Enhanced CP/M 2.2 operating system with ZCPR3 @ Read/write/format dozens of floppy formats (IBM PC-DOS, KAYPRO, OSBORNE, MORROW...) @ Menu-based system customization ®@ Operator-friendly MENU shell OPTIONS: @ Source Code ®@ TurooDOS @ ZRDOS ® Hard disk expansion to 60 megabytes @ SCSI/PLUS™ multi-master I/O expansion bus ®@ Loca! Area Network e@ STD Bus Adapter | BOOKSHELF™ <..:25 100 Fast, Compact, High Quality, Easy-to-use CP/M System ® Ready-to-use professional CP/M computer system @ Works with any RS232C ASCII terminal (not included) @ Network available @ Compact 7.3 x 6.5 x 10.5 inches, 12.5 pounds, all-metal construction © Powerful and Versatile: @ Based on Little Board single-board computer @ One or two 400 or 800 KB floppy drives @ 10-MB internal hard disk drive option Priced from $895.00 10MB System Only $1645.00 -@ Comprehensive Software Included: @ Enhanced CP/M operating system with ZCPR3 @ Word processing, spreadsheet, relational database, spelling checker, and data encrypt/ decrypt (T/MAKER III™) @ Operator-friendly shells; Menu, Friendly™ @ Read/write and format dozens of floppy formats (IBM PC-DOS, KAYPRO, OSBORNE, MORROW...) @ Menu-based system customization DISTRIBUTORS ARGENTINA: FACTORIAL, S.A., 41-0018 TLX 22408 AUSTRALIA; ASP MICROCOMPUTERS, (613) 500-0628, TLX 36587 BELGIUM: CENTRE ELECTRONIQUE LEMPEREUR, (041) 23-45-41, TLX 42621 BRAZIL: COMPULEADER COMPUTADORES LTDA, (41) 269-1939, TLX 416132 CANADA: TREM, (604) 438-9012 DENMARK: DANBIT, ATA COMPUTERS. INCORPORATED (03) 66 20 20, TLX 43558 UK: AMBAR SYSTEMS LTD., 0296 35511, TLX 837427 FINLAND: SYMMETRIC OY, 358-0-585-329, TLX 121394 FRANCE: EGAL PLUS, (1) 4502-1800, TLX 620893 ISRAEL: ALPHA TERMINALS, LTD,, (03) 49-16-95, TLX 341667 SWEDEN: AB AKTA, (08) 54-20-20, TLX 13702 USA: CONTACT AMPRO COMPUTERS INC,. IBM®, IBM Corp.; Z80A®, Zilog, Inc.; CP/M®, Digital Research; ZCPR3™ & ZRDOS™, Echelon, Inc.; Turbo DOS®, Software 2000, Inc.; T/MAKER Ili™, T/Maker Co. 67 East Evelyn Ave. e Mountain View, CA94041 « (415) 962-0230 « TELEX 4940302 78 MICRO CORNUCOPIA, #32, Oct-Nov 1986 AROUND THE BEND a (continued from page 2) already seen substantial use (and abuse) and they’ve been great. Mike suspects that they have plated media. Last issue we reported that the Micropolis 85 Meg was probably the most reliable drive on the market with its MTBF (mean time between failures) of 50,000 hours. No one has put 50,000 hours on one of the 20s yet (there haven’t been 50,000 hours to put), but Portland folks are expecting them to make it. Unfortunately, Micropolis drives haven't been generally available on the user market because the company prefers to deal with OEMs. . Mike also reported that his group likes the Adaptec 2010A controller. He says it’s very fast (2 to 1 interleave with an XT) and will format anything with platters. The group was using the DTC before they discovered the Adaptec. (They’ve spent the past few months checking out keyboards, and the two which haven’t worked with some of their clones are Cherry and Microswitch. They'll let us know if they find a keyboard that works with everything.) _ . 7 By the way, for those of you in the Portland area, the group meets the second Wednesday, 7 p.m., in the Multnomah Art Center (an ex-grade school in Multno- mah). See the letters column for more information on hard drives. QEX The American Radio Relay League has recently begun publishing QEX, a journal for radio experimenters. At 20 pages it’s not large, but it has quite a bit of information for those of you interested in packet radio, amateur satellites, and other new communications technologies. The June issue of this monthly magazine included the first of a series of articles on the Xerox 820-1. They are covering the 820 because it’s used as a packet controller. QEX 225 Main St.. Newington CT 06111 $12 per year, 12 issues ($6 for ARRL members) Power Supplies . I’ve been working, on and off, on the next servicing article. The next is to be about power supplies, those low tech versions of high tech that can wipe out a complete system, drives and all, in mere milliseconds. The current supplies (pun intended) are all switchers. They all take AC, rectify it and filter it into a reasonable facsimile of DC (about 300V), run it through high speed switching transistors, a toroidal transformer, and then through regulators to the system. | That’s a very simplified look, but it gives you an idea. Neo ge eel The problem with most power supplies is that there is no protection for the computer should the supplies fail. All the supplies I’ve seen have spike arresters built in (same as the ones in those expensive power line filters), but spikes account for only a small percentage of the problem. Most of the damage to supplies and most system crashes are caused by dropouts (or holes) where the power goes away or sags for a few milliseconds. Also, the input (300V) side of these switchers will occasionally self- destruct without any help from outside. Anyway, the ICs on the main board are literally at the mercy of the power supply. They get fried by voltages that are 20 percent or more over spec. So when Dean Klein mentioned that PC-Tech had found a better power supply, I was very interested (we've had two fail so far, and both caused significant damage to the computer system). The company is Phihong, and it’s been making power supplies for Japanese manufacturers for many years. Dean was im- pressed with the quality of the parts and the fact that the supplies had over voltage protection built in. (Hooray, no more sizzled parts.) I just purchased one of the 135 watt supplies. It was nearly $90 (including shipping), but it has the best quality assembly I’ve seen, and the fan is very, very quiet. If you purchase in quantity, prices get very competitive, so this may be a good group purchase. ‘Phihong USA © 204 Los Gatos Blvd Los Gatos CA 95030 (408) 395-9222 Automatic Transmission Micro C has been called the Hot Rod magazine of the computer world. OK, we’ll match our speedups with anyone in the industry. We’ll also match fuel economy with the slow pokes. However, we’re still crystal controlled. We can’t speed up a system until it dies, and then back off 10 percent or 15 percent so it’ll keep running. At least not without 25 or 30 crystals. However, a small outfit in Beaverton, Oregon called Data Environment has designed and produced a variable speed clock which replaced the 8284 clock chip in the XT. Thad Young, the designer, took a VCO ‘voltage con- trolled oscillator) chip and hooked a potentiometer to its input. The VCO outputs anything from 4MHz to well over 10MHz. | 3 | The output of the VCO goes to the 8284 on their daughter board. The daughter board plugs into the 8284 socket on the XT. (continued next page) SCSI ENGINES Little Board/ 186™.... $495 High Performance, Low Cost PC-DOS Engine Boots IBM PC-DOS (not included) BG @ Three times the COMPUTING POWER of ®@ Only 5.75 x 7.75 inches, mounts aPC directly to a 5-1/4” disk drive @ Data and File Compatible with IBM PC, @ Power Requirement: +5VDC at 1.25A; runs “MS-DOS generic” programs +12VDC at .05A; On board -12V @ 8 MHz 80186 CPU, DMA, converter Counter/Timers, 128/512K RAM zero @ SCSI/PLUS™ multi-master I/O wait states, 16-128K EPROM expansion bus @ Mini/Micro Floppy Controller ® Software Included: (1-4 Drives, Single/Double Density, @ PC-DOS compatible ROM-BIOS boots 1-2 sided, 40/80 track) DOS 2.x and 3.x @ 2 RS239C Serial Ports (50 -38,400 ® Hard Disk support baud), 1 Centronics Printer Port OPTIONS PROJECT BOARD/186™ - adds 25 square inches of wire wrap prototype area with buffered and & pre-decoded 80186 bus interface for Little Board/186 EXPANSION/186™ - acids five key options to Little Board/186 @ 512K RAM ® 8087 co-processor © Battery-backed Real Time Clock @ 2RS232/422 sync/async serial ports @ 1/0 expansion bus VIDEO RAM EMULATOR™ -allows use of software that writes to display controller “VIDEO RAM” SCSI/IOP™ - permits connection of off-the-shelf STD bus industrial t/O interfaces (analog, digital, seriat, display, power control, etc.) DISTRIBUTORS (03) 66 20 20, TLX 43558 UK: AMBAR ARGENTINA: FACTORIAL, S.A, 41-0018 TLX 22408 AUSTRALIA: ASP SYSTEMS LTD., 0296 35511, TLX 837427 MICROCOMPUTERS, (613) 500-0628, FINLAND: SYMMETRIC OY, 358-0-585-329, TLX 36587 BELGIUM: CENTRE ELECTRONIQUE —«TLX 121394 FRANCE: EGAL PLUS, LEMPEREUR, (041) 23-45-41, TLX 42621 (1) 4502-1800, TLX 620893 ISRAEL: ALPHA BRAZIL: COMPULEADER COMPUTADORES TERMINALS, LTD., (03) 49-16-95, TLX 341667 LIDA., (41) 269-1939, TLX 416132 CANADA: | SWEDEN: ABAKTA, (08) 54-20-90, TLX 13702 TREM, (604) 438-9012 DENMARK: DANBIT, USA: CONTACT AMPRO COMPUTERS INC,, IBM®, IBM Corp.; 80186, Intel, Corp,. COMPUTERS, INCORPORATED 67 East Evelyn Ave, ¢ Mountain View, CA 94041 ¢ (415) 962-0230 TELEX 4940302 © FAX (415) 962-1042 MICRO CORNUCOPIA, #32, Oct-Nov 1986 79 — — eo oe ee, eee ee, ee eee ee ee ee Le ew” & 47. OCCU & 49 4 aw Electronic RAM DISK /Printer Buffer Combination For your CP/M Kaypro... all boards shipped assembled and tested. Choose from 4K, 32K, or 64K printer buffer options. RAM Disk without RAM Chips 256K RAM Disk 512K RAM Disk 768K RAM Disk 1 MB RAM Disk $495.06 $445. 00 *Prices include all installation materials except for PIO Adapter Board required for Kaypro 10 w/out an internal modem and optional on 1, 2-84, 2X, and 4-84. aed a NOW INCLUDED WITH RAM DISK: FREE! Instruc- tions, Parts Layout, Schematic to build a BATTERY BACK- UP POWER SUPPLY for the RAM Disk. KAYPRO II TO IV UPGRADE includes 2.5 Mhz to 5 Mhz speed up, two 390K disk drives (DSDD) to replace the single sided drives; price includes our labor to do install- $395.00 ALL CP/M HARDWARE ADD-ONS STILL AVAILABLE — CALL OR WRITE FOR CATALOG AND COMPLETE DESCRIPTIONS. ke EK NEw MS DOS ENHANCEMENTS 1. PC Speed-Up Kit: Dual speed 6.67mhz, 6.0mhz, 4.77mhz options. Includes 8 mhz V20, crystals and instruc- tions $37.50 2. NEC V-20 Improved 8088 Microprocessor (8 Mhz); 10-45% increase in speed; just plug it in 3. Kaypro 16 256K-512K Memory Expansion . 4. Kaypro PC 256K-640K Memory Expansion Both memory expansions are simple plug-in installations; includes public domain RAM Disk software and other utility programs. MicroSphere, Inc. P.O. Box 1221 Bend, Oregon 97709 (503) 388-1194 80 MICRO CORNUCOPIA, #32, Oct-Nov 1986 AROUND THE BEND (continued from page 79) They brought out a switch (high speed, low speed) and a reset button on a phone cable so you can switch speeds externally. The pot is mounted on the daughter board inside the computer. Data Environment includes a really nice software routine with the board. The software shows the current speed as well as a rectangle for each 64K bank of RAM on the board (four banks per 256K set). If one of the RAM chips fails while you’re increasing the speed, its rectangle begins to blink. The program crashes when the processor dies and when the program’s bank of RAM goes to lunch. I fired up several Sky High clones and found that the floppy controller quit between 7.5 and 7.8MHz. The processor (or kernel related ICs) died at 8.2 to 8.7MHz. The winchester interfaces were working when the kernel died. In that mix there was an 8088 (not -2) that went to 8.4MHz, a 5MHz V20 that went to 8.2MHz, and several 8MHz V20s that died at 8.2 to 8.7MHz (120ns RAM). At 8.36MHz, the V20 gave me a Norton speed index of 3.2 (4.77MHz 8088s have an index of 1.0). This is a fun little product. And it would be ideal for a group or shop. You could speed up a system until it died and then install a crystal that’s slightly slower. You could also use this system to test boards or RAM chips. The package is $199 retail (dealer orders are encour- aged). Data Environment Box 5191 Beaverton OR 97006 (503) 627-9626 Cal-Tex We no longer have any Big Board IIs at Micro C. It’s not that we didn’t purchase any; we had five as recently as June. It’s just that we’ve been getting calls from desperate corporation types looking for BBIIs. The calls began in early spring and went something like: “‘Do you know what happened to Cal-Tex? We’ve been calling them and writing to them and no one answers. Are they out of business?” Our five boards have gone out to those businesses which had designed products around the BBII and now have no source of boards. I talked to Jim Ferguson, designer of the board, and he told me that Bill Siegmund (head honcho, chief techni- cian, marketing director, and sole Cal-Tex employee) had gone to Hawaii. Temporarily. I understand that Bill is now back in the San Jose area, the Cal-Tex office is still there, mail still arrives at the door, hundreds of populated boards gather dust on the shelves, but no one goes to the office. They Don’t Write Right I attended a writers’ conference last weekend and rubbed shoulders with some major league novelists, technical writers, romance writers, play writers, and crime writers (romance writers who love violence). All of the technical writers used word processors. Very, very few of the other writers used computers at all (maybe 10 percent). An Apple dealer conducted a forum on desk top publishing and demonstrated his Macintosh and Apple laser printer package (complete with software) for a mere $10,000. Later, Computerland showed up with their clone package for $2,000 (two floppies). The average profes- sional writer makes $8,000 per year, working full time. Anyway, these poor writers were being told that they should invest anywhere from $2,000 to $10,000, and, of course, most of them couldn’t afford it. But even those who could were put off by the treatment they received from computer salesmen. One attendee mentioned that he had found a store in the Portland area (after trying over a dozen) where the salesperson worked with him for more than an hour figuring out what he wanted to do and how she could help him do it. This guy is no dummy — he’s a well- known film and TV commercial producer, but he was most impressed with the fact that she didn’t make him feel like a dummy. That salesperson talked to him in writers’ language, and carefully defined computer terms (byte, memory, RAM, drives, word processor) before using them. He wound up purchasing a Leading Edge system with Word Perfect from the gal, and is delighted with the package. “TI don’t know why I waited so long. If someone offered to trade a new Porsche for this computer, and stipulated that I couldn’t buy another system, I’d turn him down. I can’t go back. But if I hadn’t found that computer store (Abacus) I’d still be scribbling on parch- ment.’ One attendee who was knowledgeable about computers had set himself up as a computer consultant. For $20 per hour he’d work with prospective computer owners helping them decide what they needed and where to get it. He’s writing his experiences for an ‘‘On Your Own.” Need your Kaypro”™ at home and at work? Let UniForm and UniDOS help you cut down on the carrying. UniForm by MicroSolutions Don’t carry your computer, just take the diskette. The solution to the diskette and computer incompatibility problem. UniForm allows you to transfer diskette files between almost two hundred formats including CP/M, TRSDOS, and MSDOS. Lists computers by name—so you don't have to be a technical expertto use it. Read, write, and format diskettes for the target computer, even on 96 TPI drives. UniFormis available from our stock forthe Kaypro, Xerox 820-2, Morrow MD2 & MD3, IBM, and 100% compatibles. — UNIFONMN ses shces ct ccincs atin ae ads eee eee Mes ab aie sats $ 64.95 UniDOS by MicroSolutions Turn your IBM into a Kaypro*. UniDOS allows you to actually RUN most of your CP/M programs on your IBM com- patible, almost as fast as on their native system. Use UniDOS in conjunction with UniForm and you don't even need to copy your files, just run them as the are, right on your Kaypro“ diskette. 8080 code programs run using the NEC V20 chip which replaces your 8088. Z80 programs may be run in emulation mode. The V20 chip speeds up many standard DOS operations as well as maintaining 100% compatibility with your existing DOS programs. **UniDOS emulates eleven computers or terminals including the Kaypro, Osborne, Northstar Advantage, and Apple Softcard CP/M. UniDOS is available for IBM and 100% compatibles. UNIDOS o's disc ecient bases Seth aiden Re dieg wegiews uote eee Bea's $ 64.95 UniDOS and UniForm with V20 chip ...........-..-0 000 eee #4 $139.95 «+0 See our full page ad for our other products. Add $4.00 for shipping and handling, $7.00 for COD. Bankcards welcome. EMERALD MICROWARE, ALOHA, OR 97007 P.O. BOX 6118 CP/M, MS-DOS EPROM PROGRAMMING SYSTEM (503) 642-1860 *ADAPTER SOCKET REQUIRED ~- STAND ALONB BOARD USES NO BACKPLANS SLOT — FAST ALGORITHM - NO Senne MODULES — INSTALL PROGRAM FOR SOPTWARB - USES 24 VOLT XFMR FOR POWER — LARGE COMPREHENSIVE MANUAL - PROGRAMS 26,25,21 & 125V B/EEPROMS — ALL SUPPLIES ON BOARD - NOT A SERIAL PROGRAMMER, NO FILB DOWNLOADING REQUIRED ** PARALLEL PRINTER INTERFACE * * CONNECTS TO ANY PARALLEL PRINTER INTERFACE — USES 8 OUTPUT DATA BITS AND ONE BIT (THE BUSY LING) FOR DATA INPUT. * * CONTROL PROGRAM COMMANDS * # — PROGRAM FLBINTO RA Bw DISK - SAVE AN EPROM TO DISK - CAN DISK FILE | — PROGRA\ Ue Hap BN Via BAD EP INTO RAM - cone - - VERY EPROM D Y EPROM. — DISPLAY/MODIFY RAM — ee MOD) wl ITH 11 SUB COMMANDS PILL—DUMP—XFER-BXAM-MODIFY-BIAS-PRGM-VBRIFY-CKSUM, BTC.) ASSEMBLED @ TESTED UNIT WITH COMPLETB ——> $199 eer RS AND Sa tae ON DISKBTT! KIT WITH SOPTWARB AND DOC->$179 PCB SOFTWARE & DOC->$69 SOPTWARE ON 8 @ 5 1/4 DISK FOR KAYPRO, AMPRO, IBM & OTHER FMTS TO ORDER SEND CHECK, MONBY BCH. WRITB OR CALL P.O. BOX 222 MILFORD, OHIO 45150 (513) 752-7218 CALL OR WRITE FOR MORE INFORMATION —~ ADD $4.00 FOR SHIPPING OHIO RES. ADD 5.5% TAX -- MSAIMG ACCEPTED ~~ $3.00 FOR COD - MICRO CORNUCOPIA, #32, Oct-Nov 1986 81 256K Fix | We've had a few calls recently from - frustrated folks attempting the 256K Kaypro upgrade from issue #30. After all that work, they would end up with only 16K of memory. Dr. Liddle (the author of the up- grade) called from England the other day with the answer to the 16K blues. Refer to figure 1 of that article and make the following changes. On the 74LS393, pin 2 should be grounded. Jumper it to pin 7. On the 74LS153, connect pins 10 and 11 to Al4b and pin 12 to PIO1. Ray Rizzuto came up with the same answers and added another warning. He was picking up noise at the input to U3 which was dependent on the position of the board. Ray stifled the noise by connecting up three 4.7K pullup resistors: one between plus 5V and each of PIO1, PIO2, and PIO3. | Check the Micro C bulletin board for _ Dr. Liddle’s software. It’s in the KAY- PRO area under ‘the. name - Q56KAY.LBR. — : - Portable EPROM Eraser Have you’ve been out camping and suddenly realized that you needed to erase an EPROM? If so, here’s your project. This EPROM eraser came about because I couldn’t find a stan- dard fixture for a 6 watt (9’’) ultra violet fluorescent tube. (For erasing EPROMs.) - ; I tried all the local hardware and home centers with no luck. Finally, I read the back of the package of a standard 6 watt fluorescent tube. It said: ‘’For use in battery powered lanterns.”’ I now have an EPROM eraser and a 1 Mbit 4464 41256 41256 41256 41128 4164 27128 27C64 2764 640 Kbyte MOTHERBOARD KITS: Zenith 150: $77.74 IBM PC/XT, Compag Portable & Plus; hp Vectra SAT DELIVERY INCLUDED ON — FED-EX ORDERS . RECEIVED BY: Fr: P-One $13/2 lbs 82 MICRO CORNUCOPIA, #32, Oct-Nov 1986 PROMPT DELIVERY!!! G SAME DAY SHIPPING (USUALLY) . QUANTITY ONE PRICES SHOWN for AUGUST 24, 1986 OUTSIDE OKLAHOMA: NO SALES TAX 27512 27C256 27256 1000Kx1 100ns $69.50 64Kx4 150 ns 4.20 256Kx1 100 ns 5.10 Bae 256Kx1 120 ns 3.10 Hes 256Kx1 150ns 2.93 2° 128Kx1 150 ns 4.99 Bee 64Kx1 150 ns 1.45 EPROM | o° 64Kx8 250ns $24.00 Biss 32kx8 250ns _—s«= 7.00 [egy 32Kx8 250 ns 5.46 Be 16Kx8 250 ns 4.15 Be: 8Kx8 200 ns 5.15 Bar 8Kx8 250 ns 3.75 co STATIC RAM nbs 43256L-12 32kx8 120ns $33.00 HRs 6264LP-15 skxs8 150 ns OPEN 61 DAYS 7AM-9PM: SHIP VIA FED-EX ON SAT. MasterCard/VISA or UPS CASH.COD Factory New, Prime Parts uPoo MICROPROCESSORS UNLIMITED, INC. Th: Std Air $6/4 Ibs 24,000 8. fay Ave. (918) 267-4961 Please call for current prices because prices are subject to change. Shipping & insurance extra. Cash discount prices shown. Orders received by next moming, via Federal Express Standard Alr (@ $6.00, or Priority One @ $13.00! cM camping lantern. Lanterns cost from $10 to $15 and are available at any department store with an automotive or camping section. The 6-watt ultra violet light costs about the same. A good source for the lights is: Ultra Violet Products 5100 Walnut Grove San Gabriel CA 91778 (818) 285-3123 It takes about 15 minutes to erase an EPROM under the ultra violet. Be sure not to look at the tube any longer than ‘Necessary — severe eye damage can result. (Black lights or bug lights are totally useless on EPROMs.) ‘Robert R. Carroll 19860 Kingswood Lane Huntington Beach CA 92646 DYNAMIC RAM $12.00 $14.00 9 PM CST can usually be delivered to you the PC Speedup Tips A couple of potential technical prob- lems which your readers might en- counter when attempting to install Larry Fogg’s PC speedup which ap- peared in Micro C issue #31: 1. Thermal problems: The 8284A is a very high power device, dissipating as much as 1 watt under normal operat- ing conditions. The stacked mounting scheme shown in the article does not provide adequate air flow and can cause device failure. 2. Hardware incompatibilities: Some expansion hardware such as Quad- ram’s Quadboard expect the 14.318MHz oscillator signal to be speeded up to match the Pioce e S clock. 3. Boot problems: While the author’s system boots properly at high speed, many won't. Also, the high speed boot up will not allow users to run either IBM’s standard or extended di- agnostics. 4. Installation: The installation neces- sitates tacking wires on the mother- board and mounting the 74LS04. If ‘removal is necessary, the wires will need to be removed. ' Also, a minor note regarding RAM speed. In the article the readers are -advised to check RAM for “’150 micro- ,second parts or faster’’ The correct IBM-PC COMPUTERS COMMODORE 64 IBM-PC SIG 454 Disksides ....... PC-Blue 187 Disksides .......... Capitol-PC 35 Disksides ........ ‘ Author’s Showcase 25 Disksides - PC Gold 102 Disksides .......... _C-64 28 Disksides ............... . Amiga 25 Disksides ............. APPLE (Also CP/M Format Available) Best of DOS 120 Disksides ....:.. Macintosh 74 Disksides .......... Call (619) 727-1015 for 3 minute info recording. Call (619) 941-0925 for technical info. Call 1(800) 621-5640, wait for tone, then dial “PUBLIC” for orders only. Send large $.39¢ stamped envelope for free catalog. NATIONAL PUBLIC DOMAIN SOFTWARE LIBRARY, 1533-A AVOHILL, VISTA, CA 92084 access time specifications for RAM devices are in nanoseconds. Many systems will run fine at 7.37MHz with 200ns devices. There is never any need to use the more expensive 120ns devices; 150ns devices meet all worst case timing specifica- tions at 7.37MHz. Alternatively, users with 200ns RAM and memory timing problems can spare themselves the chore and expense of RAM replace- ment by replacing the 22.11MHz crys- tal on the high speed oscillator with a 20.0MHz crystal which will run the system at 6.67MHz. John K. Martinelli Director of Engineering Microspeed, Inc. 5307 Randall Pl. Fremont CA 94538 Editor’s note: First: we haven't had any heat problems with 8284s and yours is the first report. An unscientific test for overheating is to lay your hand firmly on top of the suspected chip. If the chip is hot enough to burn your hand, the chip's probably too hot. Since we have two chips stacked, you'll have to deduce the temperature of the lower. (Touch the power supply first to discharge any static.) Second: the boot problem .shows up around 7.5 MHz. It’s a limitation of the PUBLIC DOMAIN SOFTWARE FOR *ALL* COMPUTERS FROM THE LARGEST LIBRARY IN THE WORLD! Rent or buy complete user group libraries! (Or select individual disk: ONLY $4.00 each.) Since it's not copyrighted, PD software may be freely distributed. Get accounting, dbase, Games, Word Processors, Educational, Communications, Utilities, Spread Sheets and hundreds more! User Group libraries are expanding every month as new software is ; contributed, get the latest info: a directory disk and catalog — only $5.00 postpaid! (Specify computer). . Browse through a rental library — copying out programs of interest to build your very own special interest library! CP/M COMPUTERS - 300 Formats Available Rent Buy siataswi Care crave Snoaeweet $175 $600 ee TT $ 45 $249 sheaesa/giekelscaisre aie) s:etelawie, 0 $ 25 $100 acta ated chSteiara Salas Wieraa $ 70 $230 oi atayea a die ertiard' ele G.oidiereinia $ 70 $220 Rent . Buy susieseeyaieial batt $460 $845 SIG/M UG 260 Disksides sree eNotes $190 $375 CP/M UG 92 Disksides avechseieee siete $ 40 $105 CP/M 86 25 Disksides Sijeorbeet eats $ 50. $100 Kaypro UG 60 Disksides Epson UG 58 Disksides were.et eintehas $100 $200 ATARI ST ; saradsrar'ardromess $ 25 $ 65 STD PD 25 Disksides wialeteiape axeieese $ 50 $100 Nodes Phe $120 $200 iba winters e scete $ 80 $225 siahetaeadslaneveeihi aida aes $ 50 $100 Disk downloading service — $10.00 first disk, $5.00 thereafter. No label disk sales $.69¢ with PD order. Rentals are for 7 days, 3 more days grace for return. We use UPS. floppy controller board (see the Editorial in this issue). Third: as for wires on the board, I guess I've been playing with hardware too long to see that as anything less than a sign of maturity. A system that’s reached its potential will have more than a few grey hairs. (And that goes for people too.) Fourth, I didn’t catch the ns/us error during proofreading. My fault. As for the 120ns vs. 150ns vs. 200ns parts, a conservative rule of thumb is: Memory access time should not be longer than 1 clock cycle (though processors often leave extra time during memory access). Anyway: 8 MHz times 120ns = .960 cycle 6.67 MHz times 150 ns = 1.00 cycle Since 200ns parts will often pass 150ns or 120ns tests, it’s not too unusual to find them working fine in fast machines. Finally, most commercial speedup prod- ucts and turbo boards add wait states to memory and I/O accesses, so a system will run dependably with cheap memory. For that reason, the ‘8 MHz’ super systems we've seen have benchmarked out at about 6.6 MHz. MICRO CORNUCOPIA, #32, Oct-Nov 1986 83 BUILD YOUR OWN PC XT/XT TURBO EXPANDABILITY 8 IBM Compatible I/O Slot bus. Works with all Hardware for IBM PC/XT VIDEO CARD Monochrome graphic card or color graphic card CUSTOM LANGUAGES EPROM & ROM sockets, accepts 2764-27128 chips for custom BIOS applications. RANDOM ACCESS MEMORY 640K RAM on board. Utilizes 41256-150 N.S. RAM chips. 250% higher reliability factor based on‘2 5ths amount of memory chips required with IBM PC/XT for 640K RAM using 64K RAM chips. Memory versatility, single 256K or 640K RAM on board selectable jumper. OPTIONAL PROCESSOR INTEL 8087 Math CPU socket for volume numerical calculations. ENCLOSURE Convenient flip-top style or slide-in style metal case. Scratch resistant enamel surface. POWER SUPPLY 150 Watt output, 110 or 220 volt operation. Quiet cooling fan. Ample current for high wattage consumption accessories. FLOPPY DRIVES Model Teac-55BV 5%” 1% Height, Double Sided, Double ' Density, 48 TPI, 360K Storage, Direct Drive, Quiet mechanism, low power consumption. HARD DRIVE UPGRADES Room for two optional half height accessories. Auxiliary cooling fan mounting capability. PC/XT COMPATIBLE ADD ON & ACCESSORIES MONITORS RGB Color/amber/green (TVM) TTL Monochrome amber/soft white (Mctek) SYSTEM COMPONENTS XT Motherboard 0-640K (2 layers) 4.77 mhz XT Motherboard 0-640K (4 layers) 4.77 mhz _ XT Turbo-motherboard (4 layers) 8 mhz XT Case (flip-top) XT Case (slide-in) XT 150W power supply XT 5160 keyboard (AT style) FCC approved Floppy controller w/cable Multi 1/O card ; 384K Multifunction card (OK) I/O Plus Il Color graphic card Monochrome graphic w/printer port |! Teac 55BV Floppy drive Assembly & Test HARD DISK SYSTEMS: Internal SEAGATE ST-215 10MB hard disk drive A with controller $359.00 109.00 119.00 _ 149.00 179.00 45.00 49.00 89.00 85.00 39.00 89.00 10.00 Internal SEAGATE ST-225 20 MB hard disk drive por with controller Internal 30MB hard disk drive with controller V20-8 . EasyData 1200H (half size internal modem) 655.00 25.00 149.00 half size internal modem card for IBM Portable and PC/XT/AT and compatibles, same features as 1200L but without the additional serial port. XT Assembly Manual 9.00 HARDWARE FOR IBM AT a. AT compatibie motherboard $650.00 8 slots 1 MB memory on board, expandable to 1M © b. Combined floppy/hard disk controller 239.00 c. Printer port/serial port card 115.00 d. 200 watt power supply , 139.00 e. 1.2MB floppy disk drive 155.00 f. 2MB multifunction — 239.00 OK expandable to 2M, parallel port, 2 serial ports, game port g. 3MB multifunction — , 259.00 OK expandable to 3M, parallel port, 2 serial ports, game port h. AT type case | ; 89.00 i. AT compatible keyboard 89.00 j. 20MB hard disk, SEAGATE 4026 595.00 k. 30MB hard disk, SEAGATE 4038 739.00 — |. 40MB hard disk, SEAGATE 4051 899. 00 - ACCESSORIES . - Surge Suppressed outlet strip Ps 9.50 Surge Suppressed outlet strip (UL approved) ~~ 15.95 Parallel printer cable/serial cable -. 12.95 Disk storage w/lock (holds 100 pcs) 14.50 Disk storage w/lock (holds 50 pcs) 10.95 Roll Top Disk Storage (holds 100 pcs) 29.50 McTEK SYSTEMS, INC. 2316 FOURTH STREET BERKELEY, CA 94710 (415) 549-3472 DEALERS: Identify yourself as a dealer and we'll send you dealer information. We're reliable, efficient, and price competitive. 84 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Turbo Pascal, An Almost Complete Language By Mortimer Nerd ll you Pascal, and non-Pascal, programmers A should note that there’s a super bargain in the computer language field. It’s Turbo Pascal. Turbo Pascal is the really neat brainchild. of Philippe Borland, an old prospector who comes down from the mountains to visit computer shows. I’d recommend that you all program in BASIC except that it’s expensive, at least for a compiler and compilers make your code run faster, but faster isn’t always better. I’ve found that the compiled Pascal code is taking as long to run as the BASIC interpreter. Pascal Pascal is a computer language like no other, except that it’s somewhat like C and Modula II. It’s also like RATFOR, which is similar to C and Modula II, too. I learned structured programming in BASIC, and I’ve found that Pascal gives me everything I need to write structured code except GOSUBs. It’s hard to be really structured without GOSUBs. If you don’t use GOSUBs you're missing something. A Letter Anyway, I wrote to Mr. Borland and told him that if he were going to pretend to be structured then he had to add GOSUBs. I won’t read you the letter he sent me, but it’s obvious that he’s been to too many computer shows (or his bear has a foul mouth). Outside of the language, ‘his letter was pretty interesting; you should read it someday. THE CULTURE Fortunately, I did figure out how to add line numbers. Because of this I was able to translate my favorite BASIC program into Pascal in only two weeks. The Pascal program follows. Program hiworld; label: 1,2,3,4; 1: begin 2: writeln(‘hello world’); 3: goto 2; 4: end. This program compiled very quickly, but it’s taking as long to run as the BASIC version. I checked the computer just last week and the program was still running. The BASIC version is running on my other computer. It has tied up that computer for over two months. I may have to speed up both computers to get them to finish. 1’ll let you know which one wins. Next I think I’ll learn another language, but I'll have to save up for another computer first. (Maybe I need hardware floating point.) P.S. I’d like to thank the following people for helping me translate my program: Peter Casey, Larry Fogg (those Micro C people are great), Sheila Silverman, Jim Warren, Captain Crunch (unfortunately he doesn’t have a phone), Mike Weisert, George Morrow, the entire staff of the Dead Pines Computer Center and Tanning Salon in Tucson, and my mother. (Hi mom.) Solution to last issue’s Technical Torture puzzle. S{TIAIC]K MMe Als] i [CHINE |wimfolols) MIATCIH] I INIETLTAINIG)UJAIGIE BG/ Al ATR T] (/S]7 MO MH BB 2 Bo BR) TS) L|O MMP S MME GIRIALPIHI LIC|s| TIE; AIM LIVIR {EM | BR FO [HM 2 WH HLEIXJAJDTEICH I MAIL ID/AIMIe MM Alt TE FALOJAMM RI €|N BME Mc |O|WHORM Sela RIO|MMA BM o}KIR|A MMB E [RMB E IND, on IS] i |M/O}N | THE ToIR IY {olr Joie BY) € MMM S Ajsie| Tle |N MM S|O[M Sa anaes a K O|TIS TA os cmt ol mi [AIR | IN oli RIE|GIRI LIN) L[SMMol i io} iitialuiairii [Pie iR| ESS woo RIE |P JE MM E|O|S MB ABENIHE BIR felF EPR MMR] AlOT ATI 1 OTN! PlAMB VME Be) BK ML i siojs ele EIR{S {ol 8] 1 ols! [O]K MB S| 1 Jo} SfolojRie|U[N] i [o[N]s| MICRO CORNUCOPIA, #32, Oct-Nov 1986 AmAnOO 85 BONO ROL | The Secrets Of Consulting There are lots of books for consul- tants, serious books, funny books, readable books, and useful books. I found a book recently that was all the above and I thought you should know. about it. for this issue’s ‘On Your Own” when I heard about a book titled The Secrets of Consulting written by Gerald Weinberg, author of such tech- nical tomes as The Psychology of Com- puter Programming and An Introduction to General Systems Thinking. - “He should have a computer per- spective, and secrets too,’”’ I thought, and ordered it. (The bookstores here [= digging around for a subject Relocating Macro Assemblers e Z80 e NSC800 © 8085 © HD64180 What is your turnaround time? Eliminate this dilemma with the fastest have lots of books, but the interesting ones I have to order.) I have a natural curiosity about secrets, especially pub- lished secrets. First Three Chapters Anyway, I climbed into the book, and an hour later found myself three chapters in and fascinated. What I had started out hoping to find were the secrets, those hard facts everyone else had missed, key infor- mation that would mean automatic success in the consulting field. Then I’d distill those secrets into this col- umn and make you all rich and fa- mous consultants. I didn’t find many secrets in that first hour, but Weinberg did show me By Dave Thompson a philosophy I hadn't encountered before. I'd. already heard that Gasinensee don’t succeed or fail because of their products; they succeed or fail because of their people. Generally, I agree with that (after leaving space for a few short-term hi-tech exceptions). Anyway, Weinberg says that busi- ness problems are really people prob- lems. Businesses call in consultants to solve software problems, or hardware problems, or accounting problems, or financial problems, or whatever. But. deep down, those problems are really people problems, and in the first three chapters Gerald Weinberg made it clear that he’s at home dealing with people. RP/M2™ creates ‘CP/M©2.2 compatible IBM PC 1. Remove the 8088 2. Install the NEC »PD70108 (V20) 3. Boot PC RP/M2 The »PD70108 chip is a fast 8088 that “ig executes 8080 machine code. PC RP/M2 is an operating system. Either standalone or with MSDOS present, PC RP/M2 provides the solid base of a genuine operating system reliably distinct from the facade created by an MSDOS interface. All 2.2 features are supported with 56.5k TPA, plus file date and time stamping, fast virtual disk, iobyte redirection, terminal cursor positioning, color console display. DOSDISK acces- ’ ses MSDOS drives; MODEMPC transfers files via serial port; SETDISK redefines a drive to any of over 80 formats, allow- ing PC RP/M2 to directly process existing CP/M files in their native form. Two system disks plus 105 page user and techni- — cal manual $129.Shipping $5 ($10 nonUS) Ezy @Q A | 118 SW First St. - Box G 7 Mstic ‘Warrenton, OR 97146 m4 ethods, inc. (503)861-1765 most powerful assemblers \, on the market. @ 32 significant chars. on externals | | @ math on externals | e T-states in listing e local labels @ full drive/user support Requires: Z80 W/40 K TPA, CP/M 2.2 or greater ——SLR_Systems e M80 Kacros e M80 Pseudo-ops e tables overflow to disk e recommend JR over JP $6195 1622 N. Main St., Butler, PA 16001 (800) 833-3061 (412) 282-0864 86 MICRO CORNUCOPIA, #32, Oct-Nov 1986 Next Six Chapters I read three more chapters; then a fourth, fifth, sixth. It was fun. I was fascinated by this guy’s ideas. Gerald was speaking to me, as though I were sitting in on one of his lectures. It was easy listening, punctuated by stories of his own life, and curious principles: “Clients always know how to solve their problems, and always tell the solution in the first five minutes.’’ “‘The chances of solving a problem decline the closer you get to finding out who was the cause of the prob- lem.”’ ; “Repeatedly curing a system that can cure itself will eventually create a system that can’t.’’ “If what they’ve been doing hasn't ‘solved the problem, tell them to do something else.’’ “‘Most of the time, for most of the world, no matter how hard people work at it, nothing of any significance happens.”’ ‘The best way to lose something is to struggle to keep it.’’ Hey, just a crummy minute. If some- GRAPHICS Angular Frequency (w) w.A_ versus US thing isn’t working then people should do something else? Seems a bit obvious. And what about curing a system, or making significant change, or find the person who’s causing a problem? If consultants can’t (or shouldn’t) do that, it doesn’t leave much. Plus, if clients tell their consultants the solutions to the problems in the first five minutes, what are consultants going to do with all their free time? And, what does any of this have to do with secrets and computers and suc- cess and the universe? A lot. And the further I got into the book, the more I understood why he’d been playing hardball with my assumptions. Those off the wall comments had . stretched my thinking so I could han- die it when the game really warmed up. Chapter 11 In Chapter 11 he talks about market- ing your services. If any chapter con- tains secrets, this one does. A few starting at 49% (M/UZ = X) yyBua|anny SCI-GRAF: Produces line. scatter, and high/low plots on Epson or 1BM com- patible dot-matrix graphics printers. Supports images up to 1680x1712 dots (over 3 million pixels!), log & linear . scales, graphs in 7 colors (on a JX-80), ’ batch processing. Requires MS-DOS 2 or 3, 256k . ..$99°5 5.0 time (pS) FONTEDIT: Easy-to-use full screen font editor allows you to create and modify fonts for our SCI-GRAF program. Create Greek, math, and custom symbols in 3 sizes. Supports SCI-GRAF's. propor- tional spacing. Requires IBM compati- : ble 320x200 pixel on-screen graphics & 1BM compatible keyboard ....... $3995 Microcomputer om MAS C v1" Consultants GRAF 3.0: Produces bar, pie, line, scatter, and highMow plots on Epson, IBM, C.ltoh, or NEC compatible dot-matrix graphics printers. Supports 14 fill-in patt- erns, 8 point-plotting symbols, automatic scaling, labeling, and legend creation. MS-DOS 2 or 3, 192k .........065 569% CP/M-80: Requires 64k (54k TPA) $495 32 West Anapamu Suite 190 Santa Barbara CA 93101 (805) 963-3412 secrets: “A consultant can exist in one of two states: Idle or Busy.’’ (There is no in-between.) “The best way to get clients is to have clients.’’ “Spend at least one day a week getting exposure.’’ (While you’re busy!) ‘Clients are more important to you than you can ever be to them.”’ “Never let a single client have more than one-fourth of your business.’ ‘“‘Give away your best ideas.’’ Really interesting stuff, and it really makes sense when you follow his reasoning all the way through. In this chapter he also states that you should spend at least a quarter of your time doing nothing. This means not marketing yourself, not bookkeep- ing, not smiling at the folks in the office — nothing. This is how you keep your mind fresh, how you have a little margin if an emergency arises (personal or otherwise), and how you avoid burnout. So you’re only going to spend half your time doing billable work, even when you're busiest. There are also those times when you’re not working, ‘so he figures that you should be charging five times what you need to make. For example, if you need $10 per hour, then charge $50. If you need $100 per day charge $500. If you need $1,000 a day, find another profession. Finally Can I recommend this book? Yes. Especially if you are a consultant or are thinking about becoming a consul- tant. It really does contain those little secrets that I had expected, but it also has something much more important: a way of understanding your role as consultant that should make you far more effective for your clients, and far more comfortable with yourself. The Secrets of Consulting By Gerald Weinberg Dorset House Publishing | 353 W 12th St New York NY 10014 ISBN 0-932633-01-3. . 228 pages, about $25 MICRO CORNUCOPIA, #32, Oct-Nov 1986 87 2 Megabytes On The 68020 The Definicon folks have always . kept us abreast of their latest boards and the latest of mods to their latest | boards. The latest board is the 68020, the latest mod is the following memo- ry upgrade. (Sort of a two-for-one special.) hen we designed the DSI-32 (a 32032 co-processor for the PC) we figured it should support up to 2 Meg of RAM, but because of the limited space available on a PC main board, 256K RAM chips had to be piggybacked in order to get those 2 megabytes. . That board had traces and pin holes for the ‘‘upper’’ RAS signal already in place, so you could simply install a wire leading from the RAS pin of the upper chip to the hole directly beneath the pin. (Incidentally, two customers insisted on getting 4 Meg of RAM that way. While it worked at first, it wasn’t reliable. So please refrain from ex- panding memory past two meg using - piggybacking.) On To The DSI-020 Definicon’s latest project, the DSI- 020 (a 68020 controlled board), was designed with low cost in mind. Al- though intended to run at 12.5 MHz, it’s worked reliably at 16.67MHz. (If you use 120ns RAM chips, an NS8419 DRAM controller instead of the 8409, and the higher speed CU/FPU.) I’ve even cranked one up to 20MHz and am using it for software development. As far as memory space is con- cerned, however, the DSI-020 was NOT designed to be expanded past one meg. Despite that, I figured it must be possible to piggyback chips the saiie way it’s done on the DSI-32. Checking the schematics, I noticed that the DRAM controller has four RAS outputs. Only the first one is used by the DSI-020; it’s connected to all RAS pins via a 220 ohm resistor. So what’s to keep us from using the second RAS output for the second megabyte? Nothing! About Those Warranties At this point, let me warn you that “following along’’ will make all war- ranties on the DSI-020 NULL AND VOID. This procedure is not recom- mended by Definicon Systems, Inc. So, if you want to play it safe, restrain your memory hungry programs. But if you’re the hardware hacker I know you are, then let’s get started! You'll need the following: — 1 DSI-020 co-processor board (see your local hardware store) — 1 220 ohm resistor, 1/8 watt — 1 ft. wire-wrap wire (30 gauge) — 40 (36 plus 4 spare) 256K dynamic RAM chips (150ns for 12.5MHz, 120ns for 16.67MHz) — a 20-30 watt soldering iron — solder — screwdriver — wire cutters Start by removing the DSI-020 from your computer. (Remember to turn the power off first.) Now follow these instructions: 1. Remove all RAM chips from the DSI-020. There’ll be 36 chips if you have parity, 32 if you don’t. 2. Take one of the RAM chips you bought and stick it on top of one of those you removed from the board. You may have to devise some means of holding them together for a while. (Make doubly sure the pin 1s are together.) 3. CAREFULLY solder all leads to- gether, EXCEPT FOR PIN 4. Do NOT allow any excess solder to remain on the pins. 4, Carefully bend pin 4 of the top chip (the only one that’s not soldered By Sigi Kluger Definicon Systems, Inc. 21042 Vintage St. Chatsworth CA 91311 (818) 341-5654 to the bottom chip) all the way up. Note that if you bend the pin back down, it WILL break! 5. Insert the piggybacked chip into the DSI-020. 6. Repeat steps 2 through 5 for all remaining RAM chips. 7. Cut the leads on both sides of the 220 ohm resistor to about 1/8 inch. 8. Solder one end of the resistor to pin 29 of the DRAM controller. The DRAM controller is the large 48-pin chip to the right of the RAM array. The resistor goes on the component side, sticking straight up in the air. 9. Now run a wire from the other end of the resistor to every pin 4 sticking up from the RAM array. Use your own ingenuity, but be sure the wire doesn’t short out anything, and use as little wire as possible. 10. Plug the board into the computer and smoketest it (i.e., turn it on). Troubleshooting Not much can go wrong if you work carefully. You will, of course, have observed all static electricity precau- tions, so it’s unlikely you’ll have zapped a chip. Nevertheless, it is possible that a chip or two won’t work, If the card doesn’t work, but you’ve run a memory test on the 8086 side (see below) and the card passed, you might try moving the delay line tap. The delay line, located just below the clock crystal, has a set of four jumper pairs located to its left. There’s one jumper installed, which you can move left or right until you’ve found a satisfactory setting. When the jumper is set correctly the board should run. You can now run the 68020 memory test, MEMTEST.HEX, to see if the RAM can be accessed by the 68020. MEMTEST should indicate that it’s testing memory up to 1FFFO0 or some such. When you load the monitor it should come up with a message say- ing it’s loaded at 001F0000. 88 MICRO CORNUCOPIA, #32, Oct-Nov 1986 More Disclaimers Let me remind you again that up- grading your DSI-020 to 2 Meg, or attempting to do so, will void warran- ties. The procedure isn’t approved by Definicon. Forget about the fact that this was written by a DSI employee. As far as you’re concerned, the in- structions herein were written by an anonymous hardware hacker. And, again, be careful. Don’t break the board beyond repair. Don’t modify your board without being able to thor- oughly test and troubleshoot it! Write (if you need to) memory test routines BEFORE touching the board. I would consider RANTEST.A86 es- sential for testing RAM on the PC side. RANTEST is available in source and object form on Trevor Marshall’s BBS (805-492-5472 or 805-493-1495, di- rectory path is 68020\dsi020) and in source only in the ‘‘dsi.32bit’’ confer- ence on BIX and on the Micro C bulletin board (503-382-7643). Finally, be aware that you can mini- mize trouble by buying your RAM chips from a reputable source. I don’t wish to publicly endorse anyone, but if you write to me I'll tell you a good source. Good luck! noo Peek inside your mailbox and Whats new at Micro C. Sample of disks in the upcoming Fall catalog MS-DOS Disks-5%”’ or 3%” MS-24 Superior Games Core Wars, SPACE WAR, Dun- geons & Dragons, and (TRONLC includes Source.) MS-25 Ultra Utilities U-ZAP, U-FORMAT, and U-FILE; Map diskettes, unerase files, format non-standard disks, interrogate sec- tors & much more! MS-26 Expert System Genera- tor & Tutorial . Introductory expert system builder (ESIE), example expert systems, and detailed tutorial. MS-27 System Primer Device drivers and utility tutorials with source and DIAGS-the super system snooper. Micro Cornucopia gp, SON ae ee ‘MasterCard |: eS | All Disks $8.00 each 9-5 Weekdays Order 503-382-5060 KAYPRO CP/M Disks-5%4”’ K-44 Pascal Runoff-Printer . Utilities Print sideways, on both sides, or design your own character font. Source included. K-45 Pascal Runoff-Utilities File manipulation and encryption, sorting routines, and much more with source. K-46 Pascal Runoff-Turbo N, Utilities _ £, , Kaypro graphics routines (84 mod- els), inline machine code generator, menu generator, and.run time pack- age for .CHN files. . Technical Calls: 9am-noon, M-F 503-382-8048 P.O. Box 223 Bend, OR 97709 aes VISA’. a MICRO CORNUCOPIA, #32, Oct-Nov 1986 CAN ‘s é ZW re ‘ae Zui Ny) ie SS . Say a. ISSUE #1 (8/81) Power Supply RAM Protection Video Wiggle 1/2 PFM.PRN 16 pages ISSUE #2 (10/81) Parallel Print Driver Drive Motor Control Shugart Jumpers Program Storage Above PFM 1/2 PFM.PRN 16 pages ISSUE #3 (12/81) *, 4 MHz Mods - :. Configuring Modem 7 Safer Formatter Reverse Video Cursor __ FORTHwords Begins 16 pages ? _ ISSUE #4 (2/82) Keyboard Translation More 4 MHz Mods .Modems, Lync, and SIOs Undoing CP/M ERASE Keyboard Encoder 20 pages - ISSUE #5 (4/82) Word Processing Two Great Spells Two Text Editors - Double Density Review | Scribble, A Formatter 20 pages ISSUE #6 (6/82) BBI EPROM Programmer Customize Your Chars Double Density Update ' Self-Loading ROM Terminal In FORTH 24 pages “ISSUE #7 (8/82) 6 Reviews Of C . “ Adding 6K of RAM ‘Viewing 50 Hz . On Your Own Begins ' 24 pages PRIMI ete lier “it APN ayn +, BINS See risiieS Ww URUS URL iy U ISSUE #8 (10/82) Drive Maintenance Interfacing Drives Installing A New BIOS Flippy Floppies C’ing Clearly Begins Xerox 820 Begins 28 pages ISSUE #9 (12/82) BBII EPROM Program Relocating Your CP/M Serial Print Driver Big Board I Fixes Bringing Up WordStar Cheap RAM Disk 32 pages ISSUE #10 (2/83) _ Saving A Flake isk Hooking Wis) "SBI The Disk Jy O-ctor JRT Fix 4) Serial ¢ SVooard Interface Pas.~rocedures Begins 36 pages ISSUE #11 (4/83) BBI papansions BBII Details Dyna, RAM. ™sk Review Easier R-. De Video Cursor Planrg ac Review Kaypi Column Begins 36 pages ISSUE #12 (6/83) 256K For BBI Bringing UP BBII dBase II Look At WordStar Double Sided Drives For BBI Packet Radio 5 MHz For Kaypro 40 pages ISSUE #13 (8/83) CP/M Disk Directory More 256K FOR BBI Mini Front Panel Cheap Fast Modem “Nevada COBOL Review BBI Printer Interface Kaypro Reverse Video Mod 44 pages: Complete Your Education ISSUE #14 (10/83) BBII Installation The Perfect Terminal Interface To Electronic Typewriter BBI Video Size Video Jitter Fix Slicer Column Begins Kaypro Color Graphics Review 48 pages ISSUE #15 (12/83) Screen Dump Listing Fixing Serial Ports Playing Adventrue SBASIC Column Begins Upgrading Kaypro II to 4 Upgrading Kaypro 4 to 8 48 pages ISSUE #16 (12/84) Xerox 820 Column Restarts BBI Double Density BBII 5’/8’ Interface Fix Kaypro ZCPR Patch Adding Joystick To Color Graphics Recovering Text From Memory 52 pages ISSUE #17 (4/84) Voice Synthesizer 820 RAM Disk Kaypro Morse Code Interface 68000-Based System Review Inside CP/M 86 56 pages ISSUE #18 (6/84) Kaypro EPROM Programmer I/O Byte: A Primer Kaypro Joystick Serial To Parallel Interface Business COBOL 60 pages ISSUE #19 (8/84) Adding Winchester To BBII 6 MHz On The BBI Bulletin Boards Track Buffering On Slicer 4 MHz For The 820-1 64 pages If you’re not working with a full set, fill out your collection of Micro C today. BACK ISSUES OF MICRO C. ‘Only $1.50 each when you order 6 or more All Foreign $2.00 each for 6 or more ISSUE #20 (10/84) HSC 68000 CO-Processor DynaDisk For The BBII Serial Printer On BBI Sans SIO Cheap & Dirty Talker For Kaypro Extended 8’ Single Density 72 pages : ISSUE #21 (12/84) Analog To Digital Interface Installing Turbo Pascal Low Intensity BBI Video Turbo Pascal, The Early Days 80 pages ISSUE #22 (2/85) Xerox 820-II To A Kaypro-8 Sound Generator For The STD Bus Reviews Of 256K RAM Expansion In The Public Domain Begins 88 pages ISSUE #23 (4/85) Automatic Disk Relogging Interrupt Driven Serial Printer Low Cost EPROM Eraser Smart Video Controller Review: MicroSphere RAM Disk Future Tense Begins 86 pages ISSUE #24 (6/85) C‘ing Into Turbo Pascal 8’ Drives On The Kaypro | 48 Lines On a BBI 68000 Versus 80X86 Soldering: The First Steps 88 pages ISSUE #25 (8/85) Why I Wrote A Debugger The 32-Bit Super Chips Programming The 32032 Modula II RS-232C: The Interface 104 pages ISSUE #26 (10/85) Inside ZCPR3 Two Megabytes On DSI-32 . SOG IV The Future Of Computing MS-DOS In The Public Domain Graphics In Turbo Pascal 104 pages BACK ISSUES U.S. Regular Price ..............002eee++++~- $3.00 each 6 or more 1/2 price ........... cee cee eee eee ee $1.50 each (includes surface postage) ISSUE #27 (12/85) ‘Build An $800 Clone Fixing Your Own System NEC V20 Processor Selling Your Own Software Inside Small C Compiler 104 pages : ISSUE #28 (2/86) Pascal Runoff Winners Rescuing Lost Text From Memory Introduction To Modula-2 First Look At Amiga Inside The PC 104 pages ISSUE #29 (4/86) Speeding Up Your XT Importing Systems From Taiwan Prototyping In C C Interpreters Reviewed Benchmarking The PCs 104 pages ISSUE #30 (6/86) PROLOG On The PC Expert Systems Logic Programming Building Your Own Logic Analyzer 256 K RAM For Your 83 Kaypro PC-DOS For Non-Clones 104 pages ISSUE #31 (8/86) RAM Resident PC Speedup ° Practical Programming In Modula-2 Unblinking the PC’s Blinkin’ Cursor Game Theory in PROLOG and C 104 pages Regular Foreign Price (air mail) ...........+.-$5.00 each 6 or more (including Canada) ...............-$2.00 each (surface postage) 90 = MICRO CORNUCOPIA, #32, Oct-Nov 1986 _ WANT ADS The following folks are reaching you for only 20 cents per word. If you would like to reach the same audience, send your words and 20 cents for each to Micro Cornucopia. Public Domain UG Software Rental: CP/M UG Vol 1-92 on 46 8” flippies, $45, SIGIM UG Vol 1-270 on 135 8” flippies, $175. PICONET Vol 1-34 on 17 8’ flippies, $25,- Pascal-Z UG Vol 1-30 13 8” flippies, $25, KUG (Char- lottesville) 74 disks, $80, IBM-PC SIG 1-454 PC-DOS, $475, PC-Blue 1-220 MS-DOS, $230, directory disks $5 PP. Also available on 209 5.25’’ formats. Rental is for 7 days after receipt with 3 more days grace for return. Credit cards accepted (preferred), Downloading-disk format con- versions. Call. User Group Software Automatic Update Service, $3.00 per disk. 619-727-1015 info, 24 hrs, 619-749- 7534 9-5. National Public Domain Software Center, 1533 Avohill, Vista, CA 92084. “Getting Started With CBASIC” - Tutorial workbook for beginners/intermediates in this powerful language. Funda- mentals through file handling, user functions, etc. Gets you started and takes you up to advanced features and functions. Ends confusion, frustrations! $25/U.S. Fourcor- ners Press, 222 Washington St., Hanover, MA 02339. | DDraw 3.0 gives you total control of Kaypro graphics! Flowcharts, circuit diagrams, business graphs and more! Epson compatible printer required for printouts. Works on all 1984+ Kaypro CP/M computers. For your copy with extensive manual, send check or money order for $49.95 to: Titan Software, 39 13th St. #2, Troy NY 12180-4203. For $12 postpaid, I will send you the neatest ‘‘gadget’’ you can have for your small-screen Kaypro. MAGGIE! is a flat plastic lens that slips into place in front of your screen (without tools) and gives you the effect of a 12 inch screen. Virtually no distortion, and no more glare from ambient light than your regular screen. Money back guarantee of satisfaction. Kay-Pal, 107 Hudson Dr., Hen- dersonville, NC 28739. Allow three weeks for delivery. Affordable Engineering Software for CP/M-80, PC-DOS, MS-DOS, and TRS-DOS. Free 52-page catalog. Low cost pen plotter driver, transfer function analysis, . scientific calculator, communications design spreadsheet, graph printing, circuit analysis, signal processing, mathematics, toot locus, active filter design, thermal analysis, and report proofreader programs. BV Engineering, 2200 Busi- ness Way, Suite #207, Riverside, CA 92501. (714) 781-0252. VISA and MasterCard accepted. Flight Plan Program with NAV-AID database covering entire U.S. ‘‘Install’’ for your airplane’s performance. CP/ M or IBM. Supports user entered ‘‘custom’’ waypoints. Completely menu driven. Thoroughly documented. $29.95. For program description send SASE to NAVI- GATE, 3051 Shirley Dr., Newbury Park, CA 91320. CP/M Emulates PC-DOS! Innovative utilities let CP/M reassign drives, autofind files (even overlays!), transform user areas into ‘‘disk drives,’’ create smart batch jobs, “window” the BDOS, format text columns, and much more. Inexpensive, copy-enabled, 30-day trial. LOGIC ASSOCIATES, 1433 Thome, Chicago, IL 60660, (312) 274- 0531. Ask for free catalog, reviews. $120 Value: Micro C Pro-884 MAX ROM (Normal version) and PLUS-4 Decoder Board. $55 postpaid. Richard Brews- ter, R.D.1, Brackney PA 18812, (717) 663-2408. Organize Your Hard Disk Tired of wading. through confusing manuals? Step-by-step instructions show you how to manage your hard disk. Begin immediately with our MS-DOS help system and library of batch files. On 5 1/4” disk. $12.50 PP. Gordon Thomas, 759 S. State St. #125-A, Ukiah CA 95482. Free information sheet. BBI System For Sale BBI, 2 Shugart drives, Odd Ball Electronics cabinet, keyboard, Zenith monitor, lots of software. $450 or best offer. David Lubkeman, 4131 The Oaks Drive, Raleigh NC 27606. (919) 737-2336 daytime. DDraw 3.0 gives you total control of Kaypro graphics! Flowcharts, circuit diagrams, business graphs and more! | Epson compatible printer required for printouts. Works on all 1984+ Kaypro CP/M computers. For your copy with - extensive manual, send check or money order for $49.95 to: Titan Software, 39 13th St. #2, Troy NY 12180-4203. Version Control System - TLIB (tm) stores ALL versions of your source code in ONE compact library file, even with hundreds of revisions. Updates (deltas) 5 - 7 times faster than UNIX SCCS. Date and comments with each version. Easy retrieval. LAN-shared libraries. Synchro- nized control of related source files. Free public domain MAKE (with Lattice C source) by Landon Dyer. MS/PC- DOS 2.x/3.x $99.95 + $3 s/h. VISA/MC. Burton Systems Software, POB 4156, Cary NC 27511-4156. (919) 469-3068. 640K Mother board Upgrade 640K memory without using an expansion slot! Allows easy insertion of 256K chips on the system board. 100% compatible. 30 day $$ back guarantee, 2 year limited warranty. COMPAQ Portable & . Plus - $29; $99 with memory. IBM XT, 3270 & Portable - $39; $109 w.m. IBM PC - $50; $129 w.m. $4 s/h. Site — discount. Dealers welcome. Product of Innoventions, Inc. Aristo, 16811 El Camino #213-S, Houston TX 77058, (713) 480-6288, 800/3ARISTO. ’ DataCOM Super Systems (tm) is your one-stop headquar- ters for all the latest public domain and shareware programs. We support CP/M, CP/M+, CP/M86, MS-DOS, PC-DOS, and TurboDOS users with over 100MB of online files. DataCOM is a remote multi-user TurboDOS data- base with 2 incoming phone lines and Courier 2400 modems. We have an international reputation as the Tampa Bay Kaypro Users Group and have been online since July 1982. Call (813) 791-1454 by modem (300/1200/ 2400 baud) and download an application or send $35 to: DataCOM Systems, 2643 Cedarview Ct., Clearwater FL 33519. DataCOM also has over 120 disks of CP/M and 150+ disks of IBM software available by mail for $10 each. _ Catalogs available if you send a disk in a reusable mailer and include appropriate return postage. Specify Kaypro SSDD, DSDD, or IBM DSDD format. Xerox 820 w/Emerald DSDD Upgrade. Has SSDD drives. Complete w/CP/M. Like new condition. $450. Juki 6200 daisy wheel, 18 cps on 4th ribbon, $325. Ken, Sonoma CA (207) 935-1001. Science Software for the Commodore 64 and C-128 (in C- 64 mode). Includes hi-res color graphics and capability to save to most popular printers. Programs for amateur astronomy, earth satellites and aeronautics. $19.95 - $34.95. Demo disk and catalog available for $5. Science Software, 7952 W. Quarto Dr., Littleton CO 80123, All New & Unused: Big Board Il A&T with CP/M $200; Morrow MD-1 $500; MD-2 $550; MD-3 $600; Smith- Corona TP-1 daisywheel $200; Cromemco CS-3 $1000; Otrona Attache $1200; Wicat 150-1FS $1500; Wicat 150- 3WS $2500. Polygon Industries (504) 486-2154. Turbo Budget! and Turbo Cheques! CompuTech an- nounces the release of Turbo Budget!, the financial companion to Turbo Cheques!, the most comprehensive personal checkbook management program available for the IBM PC. Turbo Budget! provides budget management tracking capabilities. Update budget expenses automatical- ly as you write checks. Both programs are professionally developed, easy to use, support color, hard disks, contain no copy-protection, print checks, password controlled, extensive screen displays, reports, and Turbo Budget utilizes window technology. 140+ page users manual. FREE demo disk available with self-addressed, .54 stamped mailer. For the IBM PC/XT/AT and high PC compatibles. Price: $49.95 for both programs. Send check or M.O. to: CompuTech, Box 7000-309, Redondo Beach CA 90277. Call me, Ralph Freshour, for more information at (213) 377-7198. MICRO CORNUCOPIA, #32, Oct-Nov 1986 91 i Secret Computers & Turbo Tutor Gary looks at a new version of Turbo Tutor, and the Heel computer (it has a leg. up on the roulette wheel). If you’ve been looking for a no-risk gamble, or wondered how to make an easy million using parts out of an old Apple, then read on. ou might have noticed a new address in my byline. Dave’s charged me with the care. of Micro C’s California office (what, you didn’t know Micro C had a California office?), so I’ll be writing and editing from Davis while my wife, Alison, attends graduate school at the Univer- sity of California. Editor’s note: Our only other office is in Turkey, and Laine is staffing that one. If you have ideas for articles you’d like to see in Micro C, or questions about articles we’ve already published, write me here. I’d love to hear from - you. A Piece Of The Pie I’ve just been treated. to an outra- geous reading experience — ‘’The Eu- daemonic Pie’ by Thomas A. Bass. Bass, a science writer, was part of a group of Santa Cruz crazies who de- signed, built, and tested a computer system for predicting the results of spins of a roulette wheel. As if the notion itself weren’t enough, consider the computer — it fits into the sole of a shoe. In Bass’s Terms “We are slipping into our soles a CMOS 6502 microprocessor with 5,000 bytes of RAM. Apple computers are made with the same chip. (Editor's ‘note: But let’s not hold that against it.) We carry another 4,000 bytes of mem- ory crafted into a program smart enough to beat roulette at a 44 percent advantage. “‘The program — a set of mathemati- cal equations similar to those used by NASA for landing spaceships on the moon — tracks a ball in orbit around a spinning disk of numbers. During the ten to twenty seconds in which the game is played from beginning to end, the computer calculates coefficients of - friction and drag, adjusts for changes | in velocity, plots relative positions and trajectories, and then announces where in this heavenly cosmos a rou- lette ball will likely come to rest on a still-spinning rotor. “Its predictive power lies in the fact that the computer in our shoes can play out in microseconds a game that in real life takes a million times long- er.’” The payoff in roulette is 35 to 1, soa 44 percent advantage, according to Bass’s calculations, can produce a re- turn of as much as $2200 per hour if only a few hundred dollars are invest- ed. Not bad, not to mention the pleasure one would derive from beat- ing up on a heavy favorite (gambling losses for bettors are figured in the billions per year). In the beginning, there was no ven- ture capital, so each member of the group donated time, skills, ideas, etc. to the project. Eventually, they planned to beat the casinos in Reno, Las Vegas, and Tahoe with their com- puter-in-a-shoe and divide the win- nings (the pie). ‘The Eudaemonic Pie’’ is the funny, skillfully written story of the design and implementation of one of the wildest computer systems I’ve ever heard of. Read it.for an entirely new experience. From Vintage Books, it’s in paper- back for $5.95. (Don’t try to purchase the computer from your local Apple outlet. At least not just yet.) Turbo Tutor ; Borland International continues to . produce pleasant surprises — this one a rehash of an old Borland product, the Turbo Tutor (which I wrote about By Gary Entsminger 1912 Haussler St. Davis CA 95617 back in issue #23). The manual and program have been extensively revised to include many advanced Turbo Pascal topics — Stacks, queues, deques, lists, trees and graphs, assembly language inter- facing, accessing parameters from ex- ternal subprograms, libraries & more. For example, the little shell in Figure 1 illustrates how an external program accesses the parameters of the calling program (or procedure). To clear things up a little, picture the stack after executing the first two instructions of SIMPLE (PUSH BP and MOV BP, SP) — High Memory BP +8 | SEG (X) | BP + 6 | ors (x) | ‘BP +4 | ¥(integer)| BP + 2 | RET ADDRES| BP | OLD BP { 2 BYTE WD | Low Memory “The stack grows downward from SS:SP to SS:00, which means it starts at high-memory addresses and moves toward low-memory addresses. Every- thing is pushed onto the stack in 2- byte quantities. “The parameters are pushed onto the stack immediately before the call to SIMPLE, and the call itself uses the return address to be pushed as well. To access the parameters, the subpro- gram can use the BP register. Once BP has been loaded with the previous value of SP, it points the stack seg- ment’ at a_ location relative to the parameters.’’ Since Y is an integer, it occupies two bytes. X, a VAR parameter, consumes four bytes. All addresses, regardless of the size of the object they reference, take up four bytes of stack. 92 MICRO CORNUCOPIA, #32, Oct-Nov 1986 SINGLE BOARD MAIN/FRAMES erom *425 (Including power supply) e Heavy Duty All Metal Cabinet e Fan & Dust Filter e Full or Slim Drives e Hefty Power Supplies (many with start currents for Winchester drives) e Line Fuse, EMI Filter Detachable Line Cord e Power Harness from Supply to Drives e Cabinets & Supplies Available Separately Write or call for complete catalog and prices. 8620 Roosevelt Ave./Visalia, CA 93294 (209) 651-1203 TELEX 5106012830 (INTEGRAND UD) ‘‘When a subprogram is completed, Figure 1 - Assembler Code To Add Two Numbers it returns control to the calling routine with a NEAR RET instruction. If the program is called with parameters, they must be popped from the stack. In addition, if the subprogram is a function, a function-result variable may need to be popped as well.”’ The RET instruction performs this task automatically. In SIMPLE, the RET 6 instruction deallocates six bytes CODE SEGMENT ASSUME NOTHING procedure Simple(var X : integer; Y : integer); Simply adds X to Y and returns the sum in X. Note that X is a var parameter (address passed on the stack) and Y is a value parameter (value passed on the stack). CA wo we we we wo we we IMPLE PROC NEAR = PUSH BP s; Save old BP, - ane TOUE AF. ss ae MOV BP, SP Load in SP so procedure has no parameters, just use BP can be used RET without specifying a number of ; to address bytes. ; parameters. Perhaps the most significant feature DI,DWORD PTR [BP +6] | of the new Tutor is the program itself : jatbe esis which provides a split screen — de- AX, (BP+4] scriptive text below and running pro- ; Move Y's value gram above — to create a very effec- no eae tive learning environment. : Add Y's value to X's If you're just starting out, or in need BP * Restore BP of some really indepth information 6 Return, popping 6 bytes about Turbo Pascal, you’ll have to look long and hard for a better tutorial and reference. Highly recommended! And that, friends, is Tidbits. ; 4 for X (a var parameter) 2 for Y (an int value ? 3 ; of parameters from stack ? 3 ; parameter) MICRO CORNUCOPIA, #32, Oct-Nov 1986 93 MICRO CORNUCOPIA’S C CONTEST “Se eX Wr ~ If you’ve been going so hard you just ‘ (a ann can’t C straight, then drop everything, Vw dig out the old compiler, brush off the cobwebs, and C what you can C. Any kind of C. From Small-C to large, from a hundred lines up, this is your chance to C’cure fame and glory (plus valuable prizes). PROGRAMMING _— CONTEST ‘SCORING — The programs will be judged by the Micro C staff on the following: 0-15 for ALGORITHM i | 0:25 for CODE ORGANIZATION & READABILITY GRAND PRIZE: 0-40 for PROGRAM FUNCTION @ DSI-32, 1 meg, 10 Mhz 32032 computer board with a -20 for USER DOCUMENTATION assembler/linker from Definicon Systems : 21042 Vintage St., Chatsworth, CA 91311 Ist & ond Place ‘@ Optimizing C Compiler (large model) © Optimizing C Compiler (large model) me from Manx Software, Box 55, Shrewsbury, NJ 07701 @ Essential Software’s C Library (graphics, I/O, everything) @ 2 year subscription to Micro C © Fssential Software’s C Library (graphics, I/O, everything) _ 8rd - 5th Place from Essential Software, Inc. . © Anez C Prime Package Box 1003, Maplewood, NJ 07040 (interpreter & compiler) from Manx Software @ 3 year subscription to Micro C e | year subscription to Micro C . sala CONTEST DEADLINE November 1, 1986 --------- aay PROGRAMMING Program Title CONTEST Purpose Which C compiler? _______"/___ Target system(s) NOTE: Please include source and object files on disk. I hereby release this program to the public domain and give Micro Cornucopia the right to print the listing. Signature Name MICRO CORNUCOPIA a P.O. Box 223 Address Bend, Oregon 97709 ht Oe ZI 94 MICRO CORNUCOPIA, #32, Oct-Nov 1986 LETTERS (continued from page 5) The workmanship looked solid, and after a few minor problems, I got the disk formatted and everything running smoothly. Then I decided to test the keyboard lock on the front panel. I turned the keyboard lock to disconnect the keyboard, and the machine died. It turns out that the switch had been miswired to short the power supply. I returned it to Compuadd for repair and was surprised to get it back just four days later. Now the story gets interesting. The new unit had a new power supply which consistently died after several hours. I sent it back. Same fast turn- around, but they sent me a totally new system. This one ran fine when it was warm, but the hard disk was dead. When I sent this second unit back, I made one of the repair people promise to keep it on his desk until he was absolutely sure it was working. My latest machine works! The downside of this story is ob- viously the questionable quality con- trol. Another of Compuadd’s problems is that they put too much emphasis on fast repair turnaround. The upside is their fast warranty repair, the inexpen- sive price, and the solid feel of the base unit and keyboard. Performance is impressive. The CMI disk is de- pendable, so far, although I’ve logged only about 40 hours on it. W.Y. Crutchfield 5503 Yarwell Houston TX 77096 Back To The Future? Thanks for nothing, John P. Jones! Three days ago my Kaypro locked up. Nothing short of unplugging it helped. Even when I plugged it back in, nothing but an unblinking cursor ap- peared on the screen. Until yesterday I thought it was dead; now I don’t know. Then I received Micro C issue #29 — and a package from Berlund Extrana- tional. I had never heard of them, but I now suspect that-my computer has been running Chrono Pascal for some time. Careful excavation of my desk revealed mysterious printouts at a stra- ta that indicates the work was proba- bly conducted four to six weeks ago. Underneath the printouts I found handwritten notes (my handwriting) on the niceties of Chrono Pascal syn- tax and error checking. Spooky! There’s no telling how much software might be in progress, or even complet- ed, on my disk. The computer, of course, is locked up. . I phoned Berlund to see what they could suggest. They answered before the phone rang and refused to talk to me ‘‘again’’. The article mentioned that Berlund’s mail order processing runs under Chrono Pascal, but if my experience is indicative they are shipping products as much as six weeks before an order is received, not two days. This is unethical, arrogant, and, in my case, disastrous. My heavily modified Kay- pro 4-84 has obviously gagged on some hardware-specific code in the Berlund compiler. Now I’m contem- plating a ‘processor lobotomy’’ to get my machine back. Darrell Bethune Box 1632 Fairview, AB Canada TOH 1L0 Stuck At 200 Points About a year ago I bought a copy of your disk K4, the 550 point Adventure game. I’ve enjoyed playing it, but I need some hints. Specifically, I need help getting by the ogre near the golden eggs, cross- ing the reservoir north of the mirror canyon, opening the safe below the hall of the Mountain King, under- standing the clue about ‘stand where the statue gazes and use the right tool,’’ and finding the pirate’s chest in the maze. I have found the vending machine maze and have mapped the maze south of. the west mist hall, assuming it to be the pirate’s, without locating the chest. Is the pirate’s a third maze? HELP! Thomas L. Adams SAPL Pgm Ctl POB 30167 Yanbu Al Sinaiyah Saudi Arabia ADVERTISER'S INDEX Actrix Computer Advanced Concepts Engineering .. Ampro Computers Anderson Techno-Products, Inc. Andratech A-OK Computers Austin Codeworks BD Software Bakkers, Andy Borland International Cascade Electronics C Contest C.C. Software Computer Helper Industries Computing Technology CompuView Data Desk Definicon Emerald Microware ERAC Co Halted Specialties Hawthorne Technology Integrand Kenmore Computer Technologies .... KYSO Technology Laboratory Microsystems Logitech, INC. ...... eke cece ce eee eee 7 Microcomputer Systems Consultants . 87 Micro Cornucopia Micro Logic Systems Micro Methods Micromint Micro Motion Microprocessors Unlimited MicroSphere Micro Supply Micro Technical Designs National Public Domain Software PC Tech Periphco Poor Person Software Qua Tech Rockland Publishing SBC Mart Second City Software Servo Computers SLR Systems Soft Advances Tomorrow's Computing United Products Viking C Systems WestWind MICRO CORNUCOPIA, #32, Oct-Nov 1986 95 Various Video: Interrupt 16 On The PC If I may interrupt this column for a second... Actually, I don’t want to interrupt but you might. And if you like interruptions, read on. ou can improve (i.e., make Ym general) your MS-DOS application program by making it work in various video modes — for example, monochrome and color/ graphics. ‘Memory Addresses & The Limbo The monochrome and color graphics adapters have different memory ad- dresses. If your program uses color, for example, it must send the color information to the c/g’s memory which begins at physical location OB8000H. The monochrome adapter’s memory begins at address 0BO000H. The point is — if you're sending information to the wrong memory lo- cation for the current adapter, your program will find itself in limbo (in other words, doing a Chubby Checker dance). But (and here’s the happy part), you can design your program to check the video mode before it takes a chance. If your program is really prepared, it will adjust to the current adapter, or exit gracefully — far better alternatives to _ the limbo. Video Modes On the PC, 12 video modes define the display characteristics correspond- _ ing to the capabilities of the various video adapters — Modes 0-3 are text modes for the color/graphics adapter Modes 4-6 are the graphics modes for the c/g Mode 7 is for the monochrome adapter Modes 13-16 are used by enhanced graphics adapter These modes are controlled by the ROM-BIOS, and we can check or set them via ROM-BIOS interrupt 16 (10H). Service (or function) 15 checks and returns the current video mode. Service 0 sets the video mode. At Interrupt 16 To check the current video mode — MOV AH,15 INT 16 On return — AL = current display mode AH = number of characters per line BH = active display page If your program isn’t prepared for what it sees in register AL, it should branch appropriately — either to a subroutine designed for the particular adapter (which sets the mode before it writes to memory), or exit. For example — MOV AH,0 3; for service 0 MOV AL, 1 3; for mode INT 16 will initialize the c/g adapter for a 40 by 25 color image. More Interrupt 16 Interrupt 16 offers 16 main services for the PC. Each is selected by placing . the service number in the AH register. Some services require other informa- tion which your program places in registers BX, CX, or DX before calling interrupt 16. For example, if you want to set the cursor size — MOV AH, 1 3; for service 1 MOV CH,12 ; for the top of 3; the scan line 3; for the bottom 9 3 of the scan line MOV CL, 13 INT 16 -_ | to get the default underline for a monochrome adapter. If you want to set a cursor position MOV AH,2 3; for service 2 MOV DH,5 3; for row 5 MOV DL,1 ; for column 1 MOV BH,0O 3; for graphic mode INT 16 By Gary Entsminger 1912 Haussler St. Davis CA 95617 defines a cursor on the c/g adapter at (2,5). Here’s a complete list of interrupt 16’s services (in decimal) — 0 = Set video mode 1 = Set cursor size 2 = Set cursor position 3 = Read cursor position 4 = Read light-pen position 5 = Set active display page 6 = Scroll window up 7 = Scroll window down 8 = Read character & attribute 9 = Write character & attribute 10= Write character 11= Set color palette 12= Write pixel 13= Read pixel 14= Write character as TTY - 15= Get current video mode 19= Write character string The Beauty Of Interrupts One of the beauties of the MS-DOS operating system is the range and ease of use of its interrupts. Once you get the hang of calling the various services an interrupt offers, 8088 (8086, etc.) assembly language becomes not only an amazingly powerful but also a very easy-to-use programming language. And much can be learned from the study of these versatile ROM-BIOS services. If you want an in-depth look at assembly language programming for the PC (including excellent studies of ROM-BIOS interrupts), I suggest — “8088 Assembler Language Program- ming: The IBM PC” by Willen and Krantz “‘Programmer’s Guide To The IBM PC’’ by Peter Norton There’s beauty in both of these, and they work perfectly (in my program- ming experience at least) on generic PCs, including the X16. 96 MICRO CORNUCOPIA, #32, Oct-Nov 1986 > the > Se 6B gives you Out of This World Performance "PLUS PC COMPATA ¢ 8 MHz 80186 microprocessor with true Kits - All Wave Soldered!! 16-bit data bus. e True PC compatability with our own custom ROM BIOS and PC cardslots for the video e Full Kit W/O SCSI, serial ports, clock ...$ 550.00 e Assembled and Tested W/O SCSI, serial ports, clock .. . 1-4 $ 599.00 of your choice. 5.9 $ 525.00 e Standard 512K zero wait DRAM, or SCS) POM Even if you've never Prolog what Turbo (Sx? programmed before, Pascal? is to Pascal! < our free tutorial will Our Turbo Pascal astonished = get you started right away everyone who thought of Pascal You'll get started right away as “Just another language.” We because we have included a changed all that—and now Turbo complete step-by-step tutorial as Pascal is the de facto worldwide —_ part of the 200-page Turbo Prolog standard, with hundreds of Reference Manual. Our tutorial , thousands of enthusiasts —_ will take you by the hand and andusersin —_ teach you everything you're likely universities, to need to know about Turbo research Prolog and artifictal intelligence. centers, For example: once you've schools, completed the tutorial, you'll be = and with pro- able to design your own expert fessional program- — gystems utilizing Turbo Prolog’s mers, students, powerful problem-solving and hobbyists. capabilities. You can expect at least the Think of Turbo Prolog as a same impact from Turbo Prolog, high-speed electronic detective. because while Turbo Prolog is the First you feed it information and most revolutionary and natural —_ teach it rules. Then Turbo Prolog programming language, itisalso “thinks” the problem through & complete development environ- and comes up with all the ment—Just like Turbo Pascal reasonable answers—almost instantly. G6 Turbo Prolog offers om eee generally the fastest and most ~—_ remember that Turbo Prolog is a approachable implementation — §th-generation language—and of Prolog. the kind of language that 2lst ayia JI century computers will use routinely. In fact, you can compare Turbo Prolog to BORLAND 4585 SCOTTS VALLEY DRIVE SCOTTS VALLEY, CA 95066 INTERNATIONAL : o 4 (/i Ve be digerence Borland products include Turbo Prolog: Turbo Pascal, Turbo Tutor, Turbo Editor Toolbox; Turbo Database Toolbox; Turbo Graphix Toolbox; Turbo GameWorks; Turbo Lightning, Lightning Word Wizard: Reflex: The Analyst; Retlex Workshop; SideKick; SideKick, The Macintosh Office Manager; Traveling SideKick; and SuperKey—all of which are trademarks or registered trademarks of Borland International, Inc. or Borland/Anatytica, Inc. Copyright 1986 Borland International BI-1045E BM, XT, AT, and PCjr are registered trademarks of International Business Machines Corp. (408) 438-8400 TELEX: 172373 Turbo Prolog 1.0 Technical Specifications Programming System Features 7 compiter: Incremental compiler gen- erating native in-line code and linkable object modules. The linking format includes a linker and is compatible with the PC-DOS linker, Large memory model support. Compiles over 2500 lines per minute on a standard IBM PC. [7 Interactive Editor: The system includes @ powerful interactive full-acreen text editor. If the compller detects an error, the editor automatically poattions the cursor appropriately in the source code. At run-time, Turbo Prolog programs can call the editor, and view the running program's source code. 7 Type System: A flexible anes type aystem 1s supported. caf Windowing Support: The system supports both graphic and text windows. (7 Input/Output: Pull 1/0 faciltues, including formatted 1/0, streams, and random access files. af Numeric Ranges: Integers: -32767 to 32767; Reals: 1E-307 to 1E+308 [7] Debugging: Complete built-in trace debugging capabilities allowing single stepping of programs. B Y B} S | | want : the best Turbo Pascal the way you Turbo pai at only: could compare Turbo Pascal to ; machine language. 99 95 an You get the complete ° a Turbo Prolog To ane by phone, programming system or lor a Geaier Nearest you, << for only $99.95 Call (800) 255-8008 You get a complete Turbo in CA call (800) 742-1133. Prolog development system Send me —_. Turbo Prolog at : rn including: Outside USA add $10 per copy a The igh fast Turbo Prolog : CA and MA res. add applicable sales lax $ —___ incremental compiler and the PERN: s interactive Turbo Prolog editor, This price includes shipping to all US cities = The 200-page reference Payment: VISA MC — Bank Draft Check manual which includes the step- - Credit card expiration date: __/__ RS Pes ae es ae rane ea Bide bd an IBM or true compatible running inclu commen! source M) sate and model is: code on disk—ready to compile. : GeoBase isa complete database The disk size I use iss 3%" O54" designed and developed around NOT COPY PROTECTED U.S. geography. It includes cities, - mountains, rivers, and highways, and comes complete with natural query language. Use GeoBase immediately “as is,” or modify it to fit your own interests. So don’t delay—don’t waste & second—get Turbo Prolog now. *60-DAY MONEY-BACK GUARANTEE Name: Shipping Address: City: State: Zip: Telephone: CODs and purchase orders WILL NOT be accepted by $99.95 is an amazingly small Borland. Outside USA make payment by bank draft payable price to pay to become an - in US dollars drawn on a US bank. * YES, if within 60 days of purchase this product does not immediate authority—an instant: perform in accordance with our claims, please call our customer service department and we will gladly arrange expert on artificial intelligence! ipa a nee The 2lst century is only one tMinimum system requirements: (BM PC, XT. AT, PCjt, phone call away. and true compatibles; 384K RAM. Sus