Home
        ORNUCOPIA
         Contents
1.          miliar and at this juncture  polymor   phism  object oriented programming re   ally  I mean it  gets interesting     Static  amp  Virtual   Each object l ve created so far uses   static  methods  When we call a static  method  the compiler searches for  methods one way   by backtracking up  the hierarchy  A fine and dandy way to  search for methods unless we create  methods that call other methods  and  we decide to reimplement some of these  other methods    Once the compiler has backtracked  to an ancestor object to find a method  it  only uses methods from that ancestor   or its ancestors   if the method is static    We need a way to tell the compiler to  remember which object was current   before it started backtracking  Then   finding one method in an ancestor  the  compiler could look for the next method  beginning with the calling object or de   scendent instead of its ancestor    Static methods  like static variables   are static because the compiler allocates  and resolves all references to them at  compile time  What we   re asking the  compiler to do is to resolve some refer   ences at runtime    To resolve references to methods at  runtime  we create    virtual    methods by  adding the key word virtual to the  method and by including a special pro   cedure called a constructor within the  object  But there   s a catch  A method  can   t be both static  in one object  and  virtual in another  You must anticipate   by declaring these methods virtual from  
2.       Yes  No  100    No  100  No  No  No  No  Difficult  No    No  512  20 000    None    0 3 sec  1 sec  2 5 sec    Cannot  Cannot  Cannot    2 sec    Cannot   54 95    MICRO CORNUCOPIA   49  Sept Oct 1989 7             Building A Controller The E  Easy Way      Using The o8HC 05    8 MICRO CORNUCOPIA   49  Sept Oct 1989                      MM UO  HEEEEEEBEEEEEEEEEEEEEEEEN    Not satisfied with undocumented 68000  systems  Karl switches to a very well docu   mented  very low power  low chip count  controller  Sounds like Motorola has a real  winner     troller unit  MCU  contains   enough EPROM  RAM  and I O  power to solve many controller prob   lems  Use it with the Motorola  68HCO5PGMR development board to  build single chip projects such as bur   glar alarms  robotics sensors  data ac   quisition units   just about anything you  can dream up    Take a look at the example design   complete with assembly language source  code  The project provides 11 channels of  A D  maintains an internal time of day  clock  controls three LEDs  consumes just  30 mA from a battery supply  and uses  only two ICs     Te Motorola 68HC705 micro con     The Chip   s Hardware   The  HC705 MCU is the latest addi   tion to Motorola   s line of 6805 micro con   trollers  Being CMOS  it typically draws  about 4 7 mA at 5 0 volts  making it ideal  for low power  e g   remote  projects  The  on board 7 7K EPROM and 176 bytes of  RAM provide room for surprisingly  powerful programs  Since each of th
3.     If your text editor lets you insert con   trol characters  then append a  D to the  code  Otherwise fire up a disk editor like  EASY ZAP  on Micro C user disk  MS   15  or even DEBUG  if you re desperate   and add a  D  the EOF      After a quick rampage through the  text editors at Micro C  it looks as though  most will preserve the  D once you ve  entered it  So you shouldn t have to edit  the EOF after every file save  Your editor  may tack on a  Z for good measure  but  the PostScript interpreter won t care     A bit of a bother  what  I got around  the problem by generating PostScript  code with a bunch of fprintf   statements  in C  A final putc   writes the  D EOF   You might think it odd to use C to  generate a text file for an interpreter  But  it makes sense in this case since we have  to use C anyway to crank out the mas   sive amount of text defining each Post   Scriptal  over 3 5 MB for our cover      Binary Images   A binary image provides the simplest  way to do our first PostScriptal   Carol   one of our many office clowns  thought  PostScriptals was a new breakfast cereal    Editor s note  This is probably the only  chance I ll get to tell you that Larry really  eats Sugar Frosted Flakes  the breakfast of  nerds    Just like monochrome video  a binary  PostScript image relates one bit of data to  one dot of output  So we can control each  of the 2540 dots in an inch of L300 out   put  or each of the 300 dots per inch on  our laser printer      Figure 1 sh
4.     MICRO CORNUCOPIA    Editor and Publisher  David J  Thompson        AROUND    THE BEND    Associate Editors  Gary Entsminger  Larry Fogg  Cary Gatton    Contributing Writers  Anthony Barcellos  Bruce Eckel  Michael S  Hunt  Scott Ladd  Laine Stump    Advertising  amp  Distribution  Jeff Hopper    Accounting  Sandy Thompson    Order Department  Tammy Westfall    Graphic Design  Carol Steffy    MICRO CORNUCOPIA  ISSN 0747 587X  is  published bi monthly for  18 per year by Micro  Cornucopia  Inc  155 NW Hawthorne  Bend  OR  97701  Second class postage paid at Bend  OR and  additional mailing offices  POSTMASTER  Send  address changes to MICRO CORNUCOPIA  PO  Box 223  Bend  OR 97709     SUBSCRIPTION RATES    1 yr   6 issues   18 00  2 yr   12 issues   34 00  3 yr   18 issues   48 00  1 yr  Canada  amp  Mexico  26 00  1 yr  Other foreign  surface   36 00  1 yr  Foreign  airmail   50 00    Make all orders payable in U S  funds  on a US  bank  please     CHANGE OF ADDRESS   Please send your old label and new address to     MICRO CORNUCOPIA  P O  Box 223  Bend  Oregon 97709    CUSTOMER SERVICE   For orders and subscription problems call  503 382 8048  9 am to 5 pm  Pacific time  M F     TECHNICAL ASSISTANCE  For help call 503 382 8048   9 am to noon Pacific time  M F    BBS   24 hrs  300 1200 2400 baud  8 Bits  No Parity  1 Stop Bit 503 382 7643    Copyright 1989 by Micro Cornucopia  Inc   All rights reserved  ISSN    0747   587X    4 MICRO CORNUCOPIA   49  Sept Oct 1989    Audit 
5.     Pascal   Objects     A Good Lookin    Turbo Pascal 5 5   amp  An I O Error Handlin    Object    First it was structures  now it s objects  What  are objects  The latest buzz word  The ultimate  way to write Pascal  The best and worst of self   modifying code  The reason you have to buy a  whole new set of libraries    Yep  That about covers it     object oriented muck  and know how to      you ve been trying to wade through the  program in Turbo Pascal  you can now take    a leisurely step  up  I believe  into the power        ful world of object oriented programming    OOP  object oriented   programming s  acronym  has suddenly become a buzz term   engulfed in hype  But try not to let that bother  you  Objects are a very powerful way of con   ceptualizing programs  Turbo Pascal 5 5 is a  great way for Pascal programmers to bypass  the buzz and get down to thinkin    out objects    In short  Pascal terms    objects are records  that hold not only data fields  but the proce   dures and functions to manipulate the data  fields as well  In OOP terms  we call these pro   cedures and functions    methods       In addition  objects can inherit data fields  and methods from each other  So you can  build complex objects  easily and quickly   from simpler ones    Third  objects can be polymorphic   just like  their ancestors in some ways and different in  others  A new object created from an existing  object can use some of the methods it inherits  while reimplementing others    I
6.     dots on a screen that measures around  10   That s something like 200 dpi  You  can see why I started to daydream about  printing the highest resolution fractals  ever seen by earthlings  Right here on the  cover of Micro C  too  Of course  it didn t  quite turn out that way  So just slide your  lawn chairs on up to the campfire and Ill  tell you all about it        PostScript    What s a PostScript anyway     you  ask   And shouldn t it be at the end of  this article   Not really  PostScript is a  page description language used to com   municate with electronic printing devices   PostScript can describe all manner of  graphic shapes  binary images  and  printed text  in any orientation     We use Ventura Publisher to generate          PostScript output describing the pages of  Micro C    I never thought I d be doing anything  remotely FORTH like  but you can t talk  about PostScript without at least men   tioning FORTH  That s because Post   Script  like FORTH  is a stack oriented  language  Pascal  C  and many other high  level languages might say       c atb    where a  b  and c all have distinct loca   tions in memory  apart from the stack   But in PostScript  we have       a b add    Here  a and b get pushed onto the stack   we invoke the addition operator  and the  result  c  ends up on the top of the stack   Just like an HP calculator  or any other  RPN device  Simple  but different                    eee  Ga4a GEEEEEEEEEEEEMEEMEMEEEEN    PostScript strives to be d
7.    A2D    Enter with A D channel number in ACC     Returns analog value    Assumes chip select line to A D chip is driven by    Note that the value returned by A2D corresponds to the most  recent previous channel number transmitted  not the current  Therefore  unless you know for a fact that  the last channel number you sent was the one you want to read  now  you had better call this routine twice  using the same    SPSR CLEAR SPIF    3 PORTC    PULL CHIP SELECT LINE LOW    MOVE CHANNEL NUMBER TO HIGH NYBBLE    SPDR SEND CHANNEL TO SPI    7 SPSR  SPIFLP  3 PORTC    WAIT UNTIL COMPLETE  RELEASE CHIP SELECT    SPDR GET VALUE RETURNED    and may draw significantly more cur   rent     Talk About Support   Motorola is really supporting the 6805  family  I purchased the  PGMR develop   ment board through my local Motorola  distributor for less than its normal   168 05  a promotion by Motorola   Even  at list  this development board is a bar   gain  Any shop building custom MCU  projects should check out this system    I have mentioned the FREEWARE  BBS often  Motorola sponsors this BBS as  a way to distribute technical information   software  support tools  and literature  updates  You can access the BBS at  512   891 3733  It uses the standard eight bits   no parity  one stop bit at 300  1200  or  2400 baud    The BBS carries a variety of well writ   ten software modules for many different  68xx x  machines  For example  you can  find the source code for the Motorola  BUFFALO moni
8.    Los Gatos  CA 95030    408  395 6600 FAX 354 4260            XenoCopy PC lets your IBM compatible PC  read write format over 350 other floppy    Don   t struggle with serial communications   disk formats     Don   t pay  per disk  charges     3  2          2  o   gt   Q  a    gt      Q  i   ET  C      a    XENOFONT  49 95    video are clearly    print screen images saved    XenoFont A is a memory resident background  TSR  program  that  with XenoFont A  XenoFont B can also be used to output to disk     allows you to capture and save to disk the data of the screen you want    The XenoFont package currently includes XenoFont A  XenoFont B   to print  You can save as many screens as you want     XenoFont produces faithful  high quality text screen printouts with  and the necessary fonts     attention to detail in the fonts used in printing  The complete PC    character set is fully supported  Bold face and reverse    distinguished   The screen printouts produced by XenoFont are ideal for use in    Software documentation and other writing about computer   related    subjects   XenoFont B is then used to translate and    To Order Contact     Xx lt ENGSRET    2210 SIXTH STREET  BERKELEY  CA 84710     415  644 9366    Reader Service Number 39    MICRO CORNUCOPIA   49  Sept Oct 1989 47       Micro Cornucopia Schematics    MICRO CORNUCOPIA XT SCHEMATIC           5V A RNI     4 7K      Em    SN  lOHLNOO       sna sS3s4QQ0v WNY3LX3  SNS VLVG VNN3LX3    At last you can plumb the myste
9.    V GND          Reprinted from the Programmer Board User s Manual with permission from Motorola     ho o 3 7   7    9  8  7  5     4     EUSNSS       10 MICRO CORNUCOPIA  i49  Sept Oct 1989       single accumulator and single index reg   ister each hold only eight bits  The fixed   position stack wraps after only 64 bytes   The entire address space is a mere 8192  bytes  Quite a change from my 68000    The more I used the instruction set  and studied the internal design  the more  respect I gained for the chip s developers   This stripped down model offers plenty  of power for the jobs it will be asked to  do  Ten addressing modes  with heavy  emphasis on bit manipulation  give you  lots of control over the many I O regis   ters  The flexible interrupt and timing  systems move much of the clock watch   ing and baby sitting duties into hard   ware  freeing up the CPU    Using the SPI and SCI for real world  communications amplifies the chip s  power considerably  These systems  handle sophisticated interface jobs  smoothly  with minimum CPU time    Even the pint sized stack won t get in  your way  Since a subroutine call uses  two bytes and an interrupt only costs  five  the stack provides plenty of elbow   room  Keeping the stack size small frees  up more of the valuable zero page RAM   the stack runs from  FF down to  CO     CAPITAL    for your programs   Accessing zero page  RAM saves a cycle per instruction  since  the CPU knows the operand   s address  lies in the lowes
10.    VEDIT Jr    29  VEDIT   69  VEDIT PLUS  185       FREE Evaluation Copy  _    Call 1 800 45 VEDIT                         Pull Down menus Yes No No  Pop Up ASCII table Yes No No  Keystroke macros 1004   1 No  Regular Expressions Yes Yes No     Cut and Paste    buffers 36 1 1  Text  book  markers 10 10 No  Undo keystroke by keystroke Yes Yes No  Undo line by line Yes No No  Normal max Undo levels 500 1000 30 300      Variable tab positions Yes Yes No  Configurable keyboard Yes Yes No  Integrated mouse support Yes No Yes  FILE LIMITS   Edit files larger memory Yes Yes Difficult  Maximum line length  gt  8096 512 65 535  Maximum lines file 8 388 607 4 65535 265 535  COMPILER SUPPORT None  Menu driven Yes No      Select Compiler options Menu Difficult      Support  Include  files Yes No    BENCHMARKS 50K FILE   Simple search 0 2 sec 1 sec 1 sec  Save and continue 1 sec 2 sec 2 sec  1000 replacements 3 sec 19 sec 17 sec  BENCHMARKS 3 MEG FILE   Simple search 140min 1 36 min Cannot  Save and continue 1 05 min 3 28 min Cannot  60 000 replacements 3 18 min 1 44 hour Cannot       Block column copy  40 x 200  2 sec 30 sec Cannot  Insert 1 Meg file in  middle of 1 Meg file 1 111 min 15 3 min Cannot    PRICE  69  195  75              CompuView    1955 Pauline Blvd   Ann Arbor  MI 48103     Free evaluation disk is fully functional and can edit small files  Reader Service Number 7  313  996 1299  Fax  313  996 1308    Compare Features and Speed  VEDIT BRIEF 2 10 Norton 1 3 QEdit 2 07    
11.    cal tape to keep them from touching as  you push them onto the pins    The physical mounting of the pack is  up to you  Some people have used peel   and stick velcro  also available at Radio    Batteries  Disks  And Drives    Shack  to stick the battery pack to the     ceiling    of the case  and a thin         piece of plastic tape covered rubber  foam under the pack to protect the  motherboard  I used a thin 16    alum   inum strip about 1  wide and 5  long  and placed one end under the modem  support and the other under the old  battery pack holder  Thin foam under  the nicad pack protects the mother   board    That s it  Carefully reassemble the  two halves of the case  don t pinch the  flat cable that connects the LCD screen  to the motherboard   Reformat the D  drive and run the batteries down to  shutdown  then charge them for at least  24 hours with the original charger  After  that  you should get 8 10 hours of total  life between charges  Ordinarily  you  should double the recharge time to  about 16 hours     Periphex Inc    149 Palmer Rd   Southbury  CT 06488   203  264 3985    Guruka Singh Khalsa  Sierra On Line   P O  Box 485  Coarsegold  CA 93644  voice   209  683 4468  data   209  683 2084  CIS ID 71500 34    Traveling With Computers And Disks  What s the effect of airport security  on disks  Will the system erase or dam   age data  I   ve heard people answer  both yes and no  but no one could say  why  So I decided to do a little research   I started this q
12.   1   Motorol li   ripheral Data  Volume otorola publi MSP 50 300 CPS 9     cation DL139     M68HCO05PGMR Programmer Board MSP 55 300 CPS 15   User s Manual  2   Motorola publication   M68HCO05PGMR2 DI  CASCADE ELECTRONICS  INC     ROUTE 1 BOX 8      RANDOLPH  MN 55065  507 645 7997    Please ADD Shipping on all Orders  COD Add  3 00 Credit Cards ADD 5   MN Add 6  Sales Tax Subject to change       Reader Service Number 15    MICRO CORNUCOPIA   49  Sept Oct 1989 15       PostScriptals    Ultimate Fractals Via PostScript       A Cover Story       Larry s created the ultimate fractal     2540 dots per inch   Unfortunately our  print shop couldn t reproduce that kind of  resolution  so we toned it down for the  cover   Here s how Larry created it        t   s hard to say when the notion first   occurred  notions have a habit of   sneaking in the door when I   m not  paying attention  and later announcing  their presence with a rude   Where s  dinner   But sometime in the not too  distant past  very high resolution  printed output and fractals got linked  up in my head    See  the good folks at Salem Type  the  ones responsible for typesetting Micro C     use a Linotype Linotronic 300  capable of  printing 2540 dots per inch  That metal  monster digests PostScript quite happily   and didn t I see some PostScript manuals    16 MICRO CORNUCOPIA   49  Sept Oct 1989        lying around the office somewhere   Think of it  2540 dpi  Figure one of    them fancy graphics cards displays 2K
13.   In spite of it all  I find myself think   ing     What if there were an attachment  to the phone line that could detect a  single isolated ring  and then turn on  the power to the PC  If you called back  immediately  the PC would answer   This way you could share the line with  an answering machine    What if the PC would turn itself on   Then  at 3 a m   click  beep  PC dials   connects to remote computer  download   upload    hangup  print maybe  turn  off  silence    What if you called it LATER ON   since the PC programs itself to come on  later  What if this time the picture was  in color  Hook it up to your printer port   but it doesn t affect printing  A few  lines in the AUTOEXEC and the PC  knows if it s turning on for an automat   ic telecom database inquiry  or for a  user sitting at the console    New applications for realtors  stock   brokers  BBS addicts  football players   housewives  MR  MOX   the next  generation  Clearly there is an opportu   nity here    Maybe just one more release                           Around the Bend    I gave you the details about the problem  but people had  questions so I ll give  em again    First  you ll have to understand that getting valid service  information on hard drives is about as easy as swiping memos  from the CIA  So I make do with a rumor here  an upset cus   tomer there    A while back I started hearing grumbling about hard drive  reformatters  The common complaint was that drives didn t  seem to work as well after 
14.   Pop up Menus x Context Sensitive Help  Lots of low level functions  Introductory Price   69 95  Plus  5 00 shipping   10 00 outside US    CA residents please add sales tax  Business Computer Services  1800 S  Robertson Blvd   Suite 206  Los Angeles  CA 90035    VISA MC orders   213  836   5026  D    emo disk available  10 00             Reader Service Number 155    WHITNEY EDITOR  39    Small and fast  Uses all available memory  Split screen editing  Configurable keyboard  Regular expression search  One key compile    Features for writing documentation  Condensed Outiine display  Runs on IBM PC s  AT s  and PS 2 s    USA shipping  amp  handling  3  Outside USA  15  CA residents add sales tax    Whitney Software  Inc   P O Box 4999  Walnut Creek  CA 94596  415  933 9019       Reader Service Number 164          A Micro Ad is the inexpensive way to reach over 22 000 technical folks like yourself  To place a  Micro Ad  just print out your message  make it short and sweet  and mail it to Micro C  We ll typeset  your ad  no charge  and run it in the next available issue  You can also send camera ready copy   Rates   99 for 1 time   267 for three times   474 for 6 times  a best buy at only  79 per insertion   Full  payment must accompany ad  Each ad space is 2 V4 inches by 1 3  inches     THE DISK ACCELERATOR      EASY to Install     Cache up to 32 MEGS of EXTENDED  and or EXPANDED     Buffers up to 26 DEVICE driven drives    ORDER NOW  69 95   800  25 FLASH    SOFTWARE MASTERS 63
15.   Since IBM and Microsoft are not  providing leadership in setting stand   ards  the major software developers  should  Some suggestions for guidelines  include the assignment of hot keys  des   ignation of interrupts to be taken over   chaining strategies from one handler to  another  and procedure for removal of  resident programs    Will it ever work  It seems unlikely   The technology is changing too fast  By  the time a set of standards are proposed  and accepted  they ll probably be out   dated  Until all TSRs can coexist peace   fully  the best hope is for all of us to stay  informed           Can t  Afford A  PostScript  rinter     NOW YOU CAN  Print PostScript  Language  Text and Graphics  On   S ANY Printer    PostScript Language  Interpreter for the IBM PC    GoScript Software  the Low Cost  PostScript Language Printing Solution    Choose the one that fits YOUR needs   GoScript    195   With 13 Fonts   GoScript Plus    395   With 35 Fonts   Both include our High Quality  Scalable Outline Fonts     Includes Drivers for  NEC Pinwriter   HP LaserJet  DeskJet  PaintJet   Canon LBP 8ll  BubbleJet BJ130   Epson LQ and FX  Toshiba 24 Pin   Fujitsu DL 24 Pin  Panasonic KX 24 Pin   IBM ProPrinter  Quickwriter  Quietwriter    ORDER TODAY   Contact Your Local Dealer    or call the LaserGo Order Line   800  451 0088  outside Calif      In Canada  Contact  CDP Communications   Toronto  ON  TEL   416  323 9666 FAX   416  323 3878    Exclusive European Distributors  Graphic Scien
16.   dBase and obese compatibile indes  amp  data files  Version 4 0        6           ee ee ee  260  MEWEL  extensible window and event library by Magma Software  message passing  amp  object oriented  SAA compatible  dialog editor       250  TurboTEX  Release 2 0  HP  PS  dot drivers  CM fonts  La TEX  MetaFont           eee ee  250  Greenleaf Data Windows  windows  menus  data entry  interactive form csiga  peaty compiler  5    20 49 a Rostro as  220  Greenleaf Communications Library  interrupt mode  modem control  KON XO      specify compiles vu ty ia  Setanta boos AM    175    QuickGeometry Library  large collection of mathematics  graphics  display  amp  DXF subroutines for CAD CAM CAE CNC            170  Sherlock  C de ugging aid       Whe Oh a    Pala besa Zee ae Tel neh quu  TE EAE MEE  170  CBTree  B   tree driver  multiple variable length keys  4 4 4 46 oo oso morcm yo o E woe hec o He ey e D US  165  AT BIOS Kit  roll your own BIOS with this complete set of basic input output functions for ATs    6 6   lle  160  Greenleaf Functions  296 useful C functions  all DOS services  peo Compiler   1 5 2 9  aa row e oa ore eum A dde ie NL ES  160  WKS Library Version 2 0  C program interface to Lotus 1 2 3  dBase  Me ipe 4  Quatro   amp  Clipper                sn  155  OS 88  U     x like operating system  many tools  cross development from MS DOS        s s s e e aoe e rne  150  ME Version 2 1  programmer s editor with C like macro language by Magma Software  Version 1 31 st
17.   mylOhandler s method  report   see  Figure 1  uses a Blaise Toolbox proce   dure to write a message in a window   IOCheck calls report if it finds an error    Now  suppose you re satisfied with  IOCheck  but don t want to incur the  overhead of creating and destroying a  window  You can create your own ob   ject  yourIOhandler  which inherits IO   Check but not report  Because report is  virtual  the compiler knows to keep  track of the current object  the one cal   ling IOCheck     Then when IOCheck calls report  the  compiler will begin searching for report  by backtracking from yourlOhandler   the descendent   not from the ancestor   myIOhandler  where it found IOCheck    First  lets look at your object   yourlOhandler  which consists of  everything from mylOhandler except  your new report       yourlOhandler   object  myIOhandler   constructor init   procedure report  virtual     end     Now recall the order in which the  compiler looks for methods when  methods are static  Let s say you call IO   Check from yourlOhandler  Since IO   Check is an inherited method  the com   piler finds it in an ancestor  myIO   handler  and  effectively  executes IO   Check there    Now IOCheck  see Figure 1  calls re     port  If report is static  the compiler uses  the report in myIOhandler    If report is virtual  the compiler re   members that yourlOhandler called IO   Check and begins backtracking from  yourIOhandler  So it will execute report  in yourIOhandler  not myIOhandler    M
18.   storage oscilloscope with 2048 measured  points  each 100 nanoseconds long  We  set the output data word at hex CC55 so  that the high order byte could be recog   nized from the low order byte  With the    feedback connected to I O CS16 and an  instruction of OUT DX  AX  the hex CC55  transferred to the output of the chips  with a single IOW pulse as expected    With the I O CS16 disconnected  Fig   ure 2B shows the IOW line had two  pulses  At the first IOW pulse  the 16 bit  data transferred to the 16 bit output in  proper order  both high and low bytes   At the second pulse  the high order data    84 MICRO CORNUCOPIA   49  Sept Oct 1989    Figure 2   AT Bus Activity With and Without I O CS16      lOW398    I O CS16      IlOW3008    I O CS16    1OW381    AQ    1 2    Microseconds    transferred to the low order byte of the  output  The word went to the 8 low   order output lines in a byte serial proce   dure   55 followed by CC    If the interface was wired to handle it   the byte serial transfer could be used to  transfer a 16 bit word in two 8 bit bytes  to the low order output lines  The  address line changes  as described earlier   could be used to clock two 8 bit latches   The logic analyzer showed CC in the  high order byte  during part of the sec   ond IOW pulse  but the data changed to  FF part way through  Apparently some  display terminal controllers used this 2   byte serial transfer to load 16 bit words  into their 8 bit memories     Port Addresses   Output to
19.   ture  That s the main reason you  purchase a reformatter  The heads  drift away from the original tracks   When you reformat  you rewrite  the tracks where the heads are   However  the heads may be in one  place after a seek from 0 and in a  slightly different place after step   ping just once    What began as a fix for slight  misalignment could actually make  the problem worse  At least that s  how I read it    So     If you have a half height  drive with a stepper motor for head  position  an even number of heads   running on a Western Digital con   troller  and you find it takes an  hour or more to do a nondestruc   tive reformat     Well  I think I d  back off all the data and follow up  with a low level reformat and copy all the data back    Might be enough reason to get an AT  eh        Games   Okay  enough serious stuff  how about a light game of  chess   An oxymoron for sure   I   ve tried several chess pro   grams  but the Chessmaster 2100 has the best graphics  the  best teaching mode  and it has a database of classic games    Want to step back through one of your old games to see  where you went wrong  Fine  Want the computer to suggest  the next move  Fine  just tell it how much time it has to ex   plore the possibilities  Want to know which positions can be  attacked by the opponent  Want to see your legal moves    You can use a mouse or the keyboard to select and move  pieces  and you do it just like you would on a real chessboard   You can select a top down 
20.   with or without the ferris wheel   and the barkers       t was one of those classic county faires        Hey big fella  win this stuffed panda        for your little sweetheart      Hey big fella  win this little sweetheart  for your stuffed panda      Walk away with these prizes  we re  giving them away today  we can t take  them with us      Three balls for just a quarter     There were also the smells  caramel  corn  corn dogs bubbling in rancid oil   fresh sawdust  and Queen Anne s Lace    Great place to hide from the battles of  hi tech  Grab a snow cone  grape  and feel  like 12 again     Electronic shredder  get your elec   tronic shredder here  Step right up  this is  the kind of file protection you can t be  without   The barker wore a pair of the  brightest green pants I d ever seen    My first reaction was to flee  after all  how many 12 year olds are into shred   ders  Probably none  and certainly not  more than once  But the adult side of me  was curious how this slicker was going to  sell a computer product to farm folks  As  a small crowd of overalls gathered  I  edged in next to a large fellow wearing  huge red suspenders     This is the latest  greatest invention   Keeps the neighbors  the bank  the wife   the IRS  even the government out of your  old data files  With this dramatic break   through you don t just throw away infor   mation  you shred it into electronic his   tory        Lemme see the shavin   s     said red  suspenders   The wife s real handy
21.  1 find by MicroC Staff      All keyboards  XT AT switchable      Prices are subject to change without notice     Shipping CHARGES will be added     BUILDING YOUR OWN CLONE V2 1       FREE BOOKLET            90 day warranty 30 day money back   subject to restrictions     Tech Calls   503  388 1194    Hours  Monday Friday 9 00 5 30    VERY HIGH PERFORMANCE  Processors  Memory  and Display Adapters    The X24 High performance processor  e 120r 16 MHz 80286 with NO WAIT STATES   Small size   XT  heigkt and length  passive bus design  1to 4 Mbyte 0 wait state dynamic memory  Fully  AT  compatible Award BIOS  Runs DOS versions 2 2 and later  Xenix and OS 2    The X24 combines the best of motherboard and backplane designs in a 10096 AT compatible system  Incor   porating a 16 MHz 80286  the X24 processor is designed to operate with the PC Tech Advanced System Mother   board  which contains the peripheral interfaces  hard disk  floppy disk  two serial ports and a parallel port   The  X24 processor can also be used with other totally passive bus backplanes  Most critical components including  the microprocessor and up to 4 megabytes of fast memory are contained on a single PC size plug in card  This  allows the processor and main system memory to be serviced or upgraded without disturbing other peripherals  such as serial ports and disk drives        PC Tech X24 and ASMB    The PC Tech Advanced System Motherboard    e Built in  IDE  interface for AT interface type hard drives   e Ful
22.  27512       7006 E eee  TEK 491 10MH   40 GHz EAE  4000 MC68000 8 CPU            000s ee    OG Elsa UE ee ES QU  Biomation aveform Rcrdr     195 Z80CPU     75 Z80A CPU  1 50  Biomation 8100 2 Channel ZBOCTC occ cccccecccccecececes 1 50 x SPECIAL x  F PIGDUA LOI ASI I ue Z80A PIO   2 00 Z80A SIO   5 00 IBM PS2 Model 25  Freight  mE 8089 3     cesses 550  HP1600A 1607A Logic Aniyzr       595   80C85A    450   8088 680 damaged  Works perfect   550  MISC  cra PA RES 2 00 SPEGIL  Optroni MHz FreaCntr       95 8251        1 50 8253 5       1 50   SPECIAL x  Das Royal Function Gon 210A  n 198 8255 2       3 50 8255 5       2 50 AT 80286 6 CPU BOARD  ot II n with reset and mono color switch  DMM ds 0 0  550   Connector for KB  Battery  amp  SPKR    MINIMUM ORDER      15 00 1793        6 00 Phoenix Bios  TERMS  VISA  MasterCard  Certified  tested with Award 3 03     Checks Money Order  NO COD  Visa 6MHz  can be upgraded to 8 or 10MHz    and MasterCard add 3   Personal    checks must clear BEFORE we ship    SPECIAL x Used with backplane  add memory  board  I O board  etc     Include shipping charges  California External 3     Floppy Drive  720K  Top  onLY  99    residents add 7  Sales Tax  For Loading  5V Only  w Docs  55  more information please call     WIT sises  7 00                        Reader Service Number 93    MICRO CORNUCOPIA   49  Sept Oct 1989 49          By Scott Robert Ladd  705 West Virginia   Gunnison  CO 81230    303  641 6438    Computer Life    Creating Mutations 
23.  40MS  290   type  whether it   s on the Motorola 65 Meg RLL 65MS  275   development board or on the Hitachi   65 Meg SCSI 65MS  325   Plggyback version you have quite a 85 Meg RLL 28MS  310   eee ae 85 Meg SCSI 28MS  370   Enc rata N 40 Meg MFM 28MS      310   P e E E en 80 Meg MFM 28MS  410   p dopo e NDA BE ST 4144R 122 Meg RLL FH 28MS  500  available with more I O lines  fewer I O g    lines  more fast  less fast  more internal  RAM  less internal RAM     You get the Listed above are refurbished SEAGATE  picture  hard drives  Warranty on these units  For more information on the Hitachi is 90 days or the remainder of the  68P05 contact Phil Clyde at United Pro  factory warranty  whichever is greater   ducts 206 682 5025 or  Most drives have six  6  months plus  remaining warranty   Hitachi America Ltd   2210 O   Toole Ave THE ABOVE DRIVES SUBJECT TO STOCK  San Jose  CA 95131   408  435 8300 ALL SALES FINAL ON REBURISHED DRIVES  Additional Information Controllers and cables in stock   CMOS NMOS Special Functions Data    Please call for current price   Motorola publication DL130   Technical Summary  MC68HC705C8     Motorola publication BR594 D  CITIZEN PRINTERS  M68HCO05 Microcontroller Applications 120D 120 CPS 9     Guide   No Motorola publication number    available  contact the Motorola Literature 122D CLE     Pa A TRIBUTE 124 24 PIN 9  Distribution Center  address above   TRIBUTE 224 24 PIN 15   Microprocessor  Microcontroller and Pe  MSP 45 240 CPS 15   ipheral Data  V
24.  5 volts or drop below 0 volts  you  can damage the hardware    The challenge of conditioning the dig   ital input signals is to take the voltage  from the outside world and turn it into  something the board can make sense of   and which won t do damage   We can  do this easily with a voltage divider  see  Figure 1     A voltage divider is simply two resis   tors in series  We connect the bottom re   sistor to ground  and the top to the input  voltage  The center point will be some   where between the input voltage and  ground  You can adjust its value by  changing the values of the resistors   Either check it with a voltmeter or use  the equation     Vout   Vin    R2    R1   R2      A voltage divider only works if the  input voltage doesn t go below zero   since it only reduces the magnitude of  the input voltage  The voltage divider    MICRO CORNUCOPIA   49  Sept Oct 1989 43       doesn t prevent the input voltage from  going negative    If the input signal goes below ground   you can fix it with a simple op amp cir   cuit called a differencial amplifier  see  Figure 2   Op amps  or operational am   plifiers  are inexpensive amplifiers on a  chip which are indispensable for all types  of signal conditioning   I   ve introduced  op amps in my book Computer Interfacing  with Pascal  amp  C  available from Micro  Cornucopia for  30      Digital Outputs   The signals from digital output lines  are also usually TTL signals  This means  that whatever device you turn on and off   
25.  Amber Graphics Monitor     1299  949    EGA ADD  400 EGA ADD  400  40M HD ADD  150 40M HD ADD  150  10 MHz ADD  50 5 amp  10 MHz ADD  21    KAYPRO EQUIPMENT BARGAINS We Repair CPM Kaypros                                                             9  Green Monitor     83              50 Replacement Power Supply          50 IC S   9  Green Monitor     84  K16          60 Drivetek 2 6M FD                   75 81 189 Video Pal                 15 00  9  Amber CRT    45     Keyboard   75 CPM COMPUTERS 81 194 RAM Pal              s  15 00  PRO 8 Mod  to your board           149 K4 83        350 K2 84       81 Series Char  Gen  ROMs          Host Interface Board                 B4 NN 425       KAX euius 81 Series Monitor ROMs                       CPU  amp  RAM  amp  MISC     41256 12    7 50 41256 15     6 00  4164 10     2 50 4164 12     2 10  4164 15     2 00 4164 20     1 25  MK48202B 20               0 05  10 00    SWITCHERS    5V 9 5A  12V 3 8A   12V  8A        39 00  SVIA  12VI2A   12VI 4A                     TEST EQUIPMENT    OSCILLOSCOPES   TEK 7403N 7A18N 7B50A 60 MHz   650  TEK 465B Dual Trace 100 MHz    1395  TEK 2215A Dual Trace 60 MHz      850                                                                          Scope Probe x1  x10 100MHz         2B  jS eS TECH see iex pego denar o SU  T  SVHOA  Loose to ERR uS  USM338 50MHz Dual Trace Th a uS PO    SVIQOA  se eecseeeeetees  Delayed Sweep  asis             145 21 enn T 2 Dis e  PAA EE NE  ANALYZERS 27256       5 25
26.  HERE           IDENTICAL TO MAIN N PROC IN POPUP ASM ex    MAIN  ENDP    come 1CH vector point here     CHECK PROC   NEAR     Sos STI        PUSH             PUSH            MOV DS AX  ASSUME DS  IVT       KEYED     OFFSET  MAIN    TIMER  OFFSET CHECK    TIMER  21  cS           ay PUE called  CHECK is invoked 18  2 Saree        ENABLE INTERRUPTS          SAVE REGISTERS         SOURCE  SEGMENT    eros 10 mvtEmRUP  VECTOR TABLE      INSTALL NEW VECTOR          INSTALL     NEW   TIMER VECTOR     ENABLE INTERRUPTS S V UO  T SAVE TO END OF CHECK PROCEDURE o n    i TSR           Q   A gt POPUP   A gt DEBUG    D0 24  27   0000 0024 4D 20 OE 06    Interrupt 9H should still point to  060E 204DH  Once loaded  RENEGADE  assures that its handler has first claim to  all keystrokes  It not only recaptures the  keyboard interrupt vector  but denies  POPUP any opportunity for activation    What happens if two resident pro   grams attempt similar strategies to take  over INT ICH  The last program loaded  is the one whose handler is invoked 18 2  times per second  In this game  the pro   gram loaded last has the advantage   Now you can appreciate why memory  resident utilities such as SideKick  Super   Key  and Prokey insist they must be  loaded last    I tried loading SideKick  an aggressive  user of five interrupts  followed by RE   NEGADE  The result was chaos  with the  hot keys giving unpredictable and  strange screens  even though  interest   ingly enough  the system didn t crash     Ev
27.  ISSUE  4  2 82   Keyboard Translation  More 4 MHz Mods  Modems  Lync  and S10s  Undoing CP M ERASE  20 pages    ISSUE  5  4 82    Two Text Editors  Double Density Review  20 pages    ISSUE  6  6 82    BB  EPROM Programmer  Customize Your Chars  Double Density Update  24 pages    ISSUE  7  8 82    6 Reviews Of C  Adding 6K Of RAM  On Your Own Begins  24 pages    ISSUE  8  10 82   SOLD OUT    ISSUE  9  12 82   BBII EPROM Program  Relocating Your CP M  Serial Print Driver   Big Board   Fixes   32 pages    ISSUE  10  2 83   ISSUE  11  4 83   SOLD OUT    ISSUE  12  6 83    Bringing Up BBII   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   BBI Printer Interface  Kaypro Reverse Video Mod  44 pages    ISSUE  14  10 83    BBII Installation   The Perfect Terminal   BBI Video Size   Video Jitter Fix   Kaypro Color Graphics Review  48 pages    ISSUE  15  12 83   Screen Dump Listing  Fixing Serial Ports  Playing Adventure  Upgrading Kaypro II To 4  Upgrading Kaypro 4 To 8  48 pages    ISSUE  16  2 84    Xerox 820 Column Restarts  BB  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   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   Kaypr
28.  ROM for processing  Our handler then  calls INT 16H to determine the latest  keystroke s     If you press both shift keys simul   taneously  the processor branches to the  routine that stores the current screen   Then  escape returns you to the current  program  The screen you just stored will  now pop up whenever you press both  shift keys  When you finish viewing the  stored screen  escape restores the current  screen    To store a new screen  press the Alt  and right shift keys  Again  the escape  key returns control to the parent pro   gram    POPUP saves two screens  the current  application screen you ll return to and  the stored screen  Storing a complete  screen demands a significant block of  computer memory  The storing of a color  graphic screen consumes 4000 bytes  as  configured  POPUP works with CGA  systems   whereas the entire POPUP pro   gram requires about 8200 bytes  As you  can see  the two stored screens account  for 98  of the memory allocated to  POPUP    POPUP is an example of a well be   haved resident program  it does not at   tempt to sabotage other programs  But  what if you install a second resident pro   gram  and it also seeks control of the key   board interrupt  The last program loaded  will intercept the keystrokes first  and  then chain them to the previously loaded  TSR  A problem would arise if both pro   grams attempted to use the same hot  keys                 progran   to save  Screen     EGMENT  AT on  RG 9H 4    SEGMENT PARA PUBLIC C
29.  Selecting A Talking Computer  For ABlind Friend   Writing Software For The Blind   File Transfer Via The Parallel  Port   The LIMBO Project   Part Two   PCX Compatibility   A 68000 Based Multitasking  Kernel   The Very Early Days of  Computing    eee                 ADVER    Reader  Service    72 Acquired Intelligence  160 Annabooks  4 Austin Codeworks    147 Berry Computer  155 Business Computer Service    Capital Software  Cascade Electronics  CC Software  CompuView  163 Copy Technologies  158 Cottage Resources  143 Covox  Inc     8  Datadesk  133 DATArx    10 Emerald Microware  135 Epoch Data  93 Erac Company    Issue 49      112 Garrison  Peter    11 HaltedSpecialties  156 Heath    22 Integrand  149 Information Modes    154 JRT Systems    126 Komputerwerk  136 Kore  Inc                91    153 Lattice  144 Lasergo    42 McTek Systems      Micro Cornucopia   37 Microprocessors Unltd   2  Microsphere     Inside Back Cover    110 NuMega Technologies    i Contact Advertiser Directly     129 Research Group  142 RJSwantek  Inc     162 Semi Disk Systems  Inc  127 SemWare   106 Software Masters   40 Star K   152 Stony Brook    62 V Communications    124 Wenham Software  164 Whitney Software    39 XenoSoft    When you write for information  please tell these folks you read about their products in Micro Cornucopia     wet   with Computer    Order From   Micro Cornucopia  PO Box 223  Bend  OR 97709  1 800 888 8087       with Pascal  amp  C    Now Available  From Micro C    Compute
30.  Sued o    NextSrtId    m  0    done  iz bg ahaa    if srtStatArz J   srtState m Gensrtst_ NV   then begin     NextSrtId    a  done  z true  i  FEptatAFT J  ancecace  gt   GenSrtSt REL _    til G  gt  aax LSRTS  OR  done      function Poea   word    boolean        begin ME    SAEC  srtlId  lt   MAX   SRTS  AND  srtId  gt  0  then       if SrtStatArr srtId   srtState  lt  gt  GenSrtSt   Nv    then  ValidSrtId    true    else Validsrtid i  false  end           procedure Clearsrtra  srera E orate  begin  uuu if  srtId  lt   MAX   SRTS  AND dertid 2 0  then   extStatArr sctId   srtState   GenSrtSt NV      procedure Descend  var rec  recen   word    yar j is word  x Se          o var srtld z m var srtStetus   gt    viis    srtStatus   GensztBegin  key  datalen  seti      function GenSrtBeginF  war kay  dataLen  word       5 var srt  d  erar  word     for P   1 to  srtKeyArr srtId    nbrKeys do  artstatAzr artld   keyLen     c2srtStatArr srtId   keyLen       osrtKeyArr  srtId  key j   length   o srtStatArr srtId   nbrRec    0    srtStatArr srtIid   srtState im GenSrtSt REL   r Gensrtnegia   i  GenSrtErxr NM     end     else begin  ClearSrtId srtId     GenSrtBeginE   Dm  GenSrtErr   TMK     end z ui  end  p o Dui bee   else GenSrtBeginF    GenSrtErr MSE  end    K    procedure GenSrtRelease  var  rec  srtid   word        var srtStatus werd    begin  p    srtStatus    GenSrtReleaser  rec  extra   end  ot ir um    function GenSrtReleaseF  var rec  srtid   word   var data  key  tkey   d
31.  System Setup   Typically  they ll bring in a PLC  con   nect the I O  and then use a PC compat   ible to generate the program  This may  seem opposite of normal wisdom  wiring  before programming   but once the I O  is connected  you can do all reconfigura   tion through the LDP program    Once the program has been  downloaded to the controller  you can  disconnect the PC  However  for maxi     MI any companies    make    hardened     IBM PC AT  compatibles for  industrial users     sealed cases   shock mounted hard  disks  and super  heavy duty power  supplies  to support  extra expansion  cards   In dirty or wet  environments they  use membrane  keyboards           mum control  you can leave the PC con   nected and let it serve as a gateway into  a network    When the programmable logic con   troller is running  you can use the IBM   PC to monitor its activities  The IBM PC  can force I O on or off  which really  helps during troubleshooting  It can also  examine and change the PLC registers     PLC Hardware  Let s examine a typical PLC CPU and  its method of operation     The CPU designates a block of  memory as the I O image area  This  block holds the status of all the inputs  and outputs  The I O image is checked  at the beginning of each program scan    When the program needs to energize  an output  for instance  it loads the new  status into a reserved section of memory  called the output image area  At the end  of the scan  the processor checks output  image area an
32.  Yuck  What would have happened if  Ward Christianson had made XModem  shareware    I don   t mean to say that I don   t like  shareware  some of it  PC Write  PC Outline   Procomm  FST Modula 2  etc   is excellent and  worth more than the authors charge  But 99   of the shareware I   ve seen is crap   pure and  simple    Somebody writes a program and distributes  it with a request for money  Often  the program  is badly documented  buggy  or just downright  useless  Why distribute it if it isn   t any good   Don   t people have pride in their work  Or are  they just interested in a quick buck  Somehow   I think the latter attitude is becoming more and  more common as time passes    That   s why all the source code which ap   pears in this column is public domain  I d  appreciate credit for it if you use it  merely as a  courtesy  If l m going to publish it  though  I  expect people to be able to use it if they want  to              C EXPLORATIONS         Life   This part of the column is going to  eat space again     As usual  something  came up which changed my plans for  this issue  I was going to talk about in   finite precision math and methods of  calculating pi to an astounding number  of digits  That idea will have to wait   I m building it as a C   class library   and it will use some very sophisticated  algorithms  Also  I need to do a bit of  brushing up on calculus  So  I came up  with something different   and much  more interesting    Computers have been used fo
33.  a good day they yield 5  hours running time  assuming no disk  accesses   Periphex sells a set of 4 high  capacity C cells that will power the  T1000 for up to 10 hours  after a 16 18  hour recharge  You don t need to be a  brain surgeon to mount these batteries   but you should be careful  You ll need    1  The four Periphex C cells  The C  cells  shrink wrapped into a block with  two leads welded in place  cost about   35  If you ask Periphex  they ll ship the  battery pack with wires already on the  tabs  If you call and ask for the battery  pack for the T1000 modification  they ll  know just what you want  They even  send instructions and a proper piece of  cushioning foam right along with the  nicad pack    2  A soldering iron or gun  about 45  watts     3  Two female crimp on connectors   commonly used to connect to blade   type auto electrical systems  When you  look at the end of these connectors  you  see a shape like this         Radio Shack sells a package of eight  female quick disconnects  64 3039  for  just 99       The Toshiba batteries mount in a  plastic tray that takes up a lot of room  in the battery compartment of the ma   chine  C cells are slightly bigger than  sub Cs  so you can t use the plastic tray   Keep the old batteries and tray in case  of emergencies     or example  if you  must return your T1000 to Toshiba for  service    Toshiba batteries come with two red  wires on one corner and two black  wires on the other end  Match this ar   rangement i
34.  all that meaningless bull  I  will give you a bit of that  in fact  What  I really want to do is show you a few  macros that might give you a feel for  the flavor of Brief  and maybe lead you  to thoughts about some of the possible  uses of Brief and its macro language  over and above just plain text editing    But first  a few praises and whines     Intelligent Indenting   I always thought that an intelligent  indenting editor would be either too in   telligent or too stupid for me  Of course   nearly every editor these days has an  indent mode where hitting  enter   places you on the next line at the posi   tion of the first letter on the previous  line  Somehow it just seemed like a pro   gram would either not recognize every  case  or would force my programming  style into something I didn t like    Brief s intelligent indenting package  for the C language mildly surprised me   There was only one case where it  wouldn t match my own preferences for  indenting  It was able to recognize all  the constructs I gave it and placed me  in the proper position when I hit enter    For example  when I typed     if  junk  25   lt enter gt     it automatically placed the cursor at the  next tab stop in from the position of  if   on the previous line  as shown by the  underscore   If I then typed a single    58 MICRO CORNUCOPIA   49  Sept Oct 1989             Fuss Brief    has tons of  features and is  very fast  its most  important aspect is  the macro  language        statement  fol
35.  and RS 232 port remain connected  your  prototype only needs to provide interface  circuitry    The  PGMR can even serve as a low   volume production facility  You simply  plug a 2764 EPROM containing your  finished program into the on board 28   pin socket  Next  reconfigure the   PGMR  board to perform an automatic copy on  reset  Put an erased MCU into the socket   apply all voltages  including Vpp  and  bring the  PGMR board out of reset   Firmware in the erased MCU copies the  2764 s contents into the MCU s EPROM      9 DIAGNOSIIGS    The Complete Diagnostics Solution for Your PC XT  PC AT  or Compatible    INCLUDES       PC XT System Diagnostic Software          DRIVE TESTS   Complete diagnostics for Hard and Floppy  drives  including controller cards  Tests read  write  and format  capability as well as seek timings  hysteresis and rotation  timings    1 0 PORTS   For both parallel and serial ports  confirms internal  and external loopback capabilities at all baud rates and  configurations     MEMORY     Perforrns over eight different tests to check standard   extended  and expanded memory    KEYBOARD   Verifies that all keys send correct key codes   including shift  CNTL  and ALT modes    CPU  amp  NUMERIC COPROCESSOR   Verifies that all single and  multiple instructions perform correctly and accurately  as well  as testing all internal registers     VIDEO DISPLAY   Checks video controller cards  Confirms  attributes  graphics  colors  if applicable   and CRT alignme
36.  and everything else on your  hard disk  Viruses  however  are more  sophisticated  since they attempt to  propagate  Viruses generally bide their  time until they determine that their pro   geny have infected enough targets to  carry on the strain    Thanks to continuing advances by  sociopathic computer users  now we  have reports that archives can be used  as Trojan Horses to transport viruses    past your watchful eyes  There may be  something to it  though uninformed  panic has probably caused some of the  concern    Here s how it should work  During  archive extraction  comments are dis   played that a deranged mind has al   tered to contain nonstandard escape  codes   PKZIP and LHARC both permit  comments in their file formats     The escape codes then redefine your  keys so that the next time you try to use  the DIR command  you actually invoke  a FORMAT of your hard disk   Plus   self extracting archives could do imme   diate damage     Slick  Not much of a danger  how   ever  unless you use ANSI SYS as your  console driver  Otherwise the escape  codes cannot redefine your keyboard   Furthermore  BBS operators have al   ready started to report precautionary  steps that users can take to counter the  slim dangers that such archives may  offer    The simplest way is to examine the  archive before extracting it  searching  with a utility for dangerous command  strings  Of course  you could just yank  the  device ansisys  line from your  CONFIG SYS file   Are you really 
37.  and queues            ee 4 4 ee e eee eer oer nn  20  DO Processor  general purpose text translator           ee ee eom oe oe onn  20   ata   Protein Sequences  over 10 000 sequences  includes demo disk of Pearson FAST A programs              lcs  60  Smithsonian Astronomical Observatory Subset  right ascension  declination   amp  magnitude of 258 997 stars               c   60  Moby Words  500 000 words  amp  phrases  9 000 stars  15 000 names          we ee es  55  U  S  Cities  names  amp  longitude latitude of 32 000 U S  cities and 6 000 state boundary points                   lle  35  The World Digitized  100 000 longitude latitude of world country boundaries                  llle  30  KST Fonts  13 200 characters in 139 mixed fonts  specify TEX or bitmap format              clle  30  USNO Interactive Computer Ephemeris  high precision moon  sun  planet  amp  star positions                ren  30  NBS Hershey Fonts  1 377 stroke characters in 14 fonts             4 2 4 4 es  15  U  S  Map  15 701 points of state boundaries  pw esr ete cR roro     IESU Ne XR Rode p nece e ge es Aci do c APA  15  The Austin Code Works Voice   512  258 0785  11100 Leafwood Lane acwlinfo uunet uu net BBS   512  258 8831  Austin  Texas 78750 3409 USA   FAX   512  258 1942  Free surface shipping for cash in advance For delivery in Texas add 796 MasterCard VISA    Reader Service Number 4    MICRO CORNUCOPIA   49  Sept Oct 1989 45    There are two common ways to build  filters  Passive filters
38.  before  issues  39 and   42   Log onto our BBS or get the issue  disk for a look at the complete program    Figure 2  a mixture of pseudo code  and C  shows the steps necessary to fill a  byte with 8 points of the image  and print  the byte to a file  fprintf   conveniently    AUMABIE RA OS  2 AT PRICE OF ONLY  54 95          QEdit       ADVANCED    The fast  easy to  use  fully featured text    If you are looking for the  right combination of price    and value in a text editor   then give QEdit a try  At  ONLY 554 95 anda  money back guarantee     you just can t go wrong     QEditis fast  easy to use  and simple  to install  At the same time you get  all of these features and more    ll Completely configurable  in   cluding keyboard and colors   E Edit as many files simultaneously  as will fit in memory   E Open up to eight windows   E 99 scratch buffers for cut and      chick     editor at an affordable price     EDITOR    paste or template operations   E Exit to DOS  or a DOS shell   from within QEdit   E   Pop Down   menu system and  customizable Help Screen   E Column Blocks   E Easy to use macro capability  including keyboard recording   E Wordwrap and paragraph  reformat capabilities   B Recover deleted text   E Automatic indentation for C  programming   E Import files and export blocks  E Locate matching braces and  parentheses   E Execute command line compilers  from within QEdit      6 This small  blazing fast editor  lets program instructions  memos   letters  an
39.  changes to prevent further  entry of records  If you used a sort method  other than the binary tree insertion  this would  be the appropriate procedure to initiate the ac   tual sort    I choose the binary tree insertion sort be   cause it works naturally with the record at a   time loading of SOR  It s also a natural lead  into next issue s topic     GenSrtRetrieve   Use this to get your data back from the  black hole you ve dumped it into  This re   trieves the data from the binary tree and  moves it back into the calling routine s varia   ble  The procedure GenBinRetDelSmRec  stands for  return and then delete the smallest  record from the binary tree      GenSrtEnd   This deletes any records remaining in the  tree and returns the srtId to a    not valid  sta   tus  making it available to another sort     MICRO CORNUCOPIA   49  Sept Oct 1989 77    GenSrtStat  This routine returns the status record  for the passed srtld  It s great for debug     ging     GenSrtMsg   This procedure provides a text inter   pretation of the error messages and sort  states     Miscellaneous   GenSort allows up to MAX SRTS  sorts at one time  I ve found this feature  very useful when reading data from  several files and preparing several re   ports  GenSort does little error checking   The addition of more data types such as  integer and real is necessary for this to  be a really useful tool    As always  the Turbo Pascal 5 0 and  Modula 2 code for the two units  along  with sample programs  ar
40.  character  set standard to another on a specified  I O channel  last week  Columnar cut  and paste saved me at least half an hour  of retyping columnar data in a different  order     No  I don t have Brief for Xenix  I do  most of my work under DOS and then  use the Xenix doscp command to move  it onto the Xenix partition      Other Nice Things   Brief does all kinds of other nice  things  too  So many I can t mention  them all here  A few examples  Brief can  swap itself out to EMS  RAMDisk  or  disk when you escape to DOS to ex   ecute a DOS command  This frees up all  but 3K of your RAM for use by the  command  It also allows you to specify  which directory to put backup files in  so that  for example  all backups go into  a single directory for ease of erasing    Finally  you can specify a macro  package to load for files with different  extensions  that   s how it handles the C  indenting   It does this by setting an en   vironment variable called BPACKAGES   The keyboard assignments of these  macros are kept local to the window  that the file is in    For example  you can have a  C file  in one window which is using smart in   denting  while a  DOC file in another  window uses word wrap     Bad Things  BOO   HISSSSS      The main deficiency of Brief that  kept me away for such a long time was  its tiled windows  a window not al   lowed to partially conceal another win   dow   Even though I know that over   lapped windows don t magically make  the screen capable of hold
41.  consist of resistors   capacitors  and  in some situations  in   ductors  Simple low pass filters are cheap  and easy to make from resistors and  capacitors  see Figure 4   but they don t  have very sharp corners and are thus ap   propriate only when the frequency ele   ments you want to remove are far into  the stop band    For example  if you want to sample a  DC signal you d commonly use a low   pass RC filter to remove 60 Hz noise  generated by household AC power  The  optional connector boards which come  with both the AD1000 and PCL 712 have  spaces on the circuit board where you  can solder resistors and capacitors to  form low pass filters    Active filters use op amps  resistors   and capacitors  Active filters are much  more precise and have much sharper  corners than passive filters  so the  frequency elements you want to remove  can be much closer to the frequency ele   ments you want to keep    Op amps are fairly cheap  so an active  filter isn t much more expensive than a  passive filter  although the design of an  active filter is slightly more complex  An  excellent tutorial on both passive and ac   tive filter design is Introduction to Filter  Theory by Johnson  Hilburn and Johnson    You can now buy a switched capaci   tor filter  which fits on a single chip   Since its less susceptible to the drift  found in ordinary components  it s more  accurate over long periods of timc     Single Vs  Double ended Converters   Both the AD1000 and the PCL 712  have  sin
42.  data  segment  DS  to zero     A gt DEBUG    RDS   DS         0000    S 0 L FFFF EB OE 53 54 41 59 20 52  0000  61E0   0000  8F6F    Ignore the last address retieved by the  search command  If you   re using DOS  2 10  the program   s code begins at  0 61E0H with the PSP 100H bytes below  at 0 60E0H  To display the PSP and code   enter      D0 60E0  61EF    How is DOS able to keep track of resi   dent memory allocations  The paragraph  directly below the PSP  0 60DOH  is a  memory control block  Paragraphs origi   nate at an offset ending in zero and are  16 bytes in length  Let s explore the first  five locations of this block      D60D0  60D4    0000  60D0 4D OE 06 11 00    The first location of a memory control  block  called the identifier byte  contains  either 4DH or 5AH  The value 4DH indi   cates that the memory directly above  belongs to a program or DOS  while 5AH  verifies that no more memory control  blocks succeed this one  The value 5AH    34 MICRO CORNUCOPIA   49  Sept Oct 1989    also instructs DOS to install the next TSR  here    Bytes 2 and 3 of the memory control  block hold the PSP segment  060EH  of  the program to follow  If the PSP seg   ment number is zero  then the memory  defined by the memory control block is  free  Bytes 4 and 5 specify the size  in  paragraphs  of the pending memory  block  Notice the value is 0011H  or 17  paragraphs    Memory control blocks chain from  one to the next  and DOS is notified that  the next memory control block is 
43.  dow  Finally  I reassign the zoom key    There are some problems with  zoom_macro that I haven   t bothered to  figure out  For example  if you move the  cursor while zoomed  the cursor in the  window display doesn   t reflect that  movement when you return  Also  the  word wrap package seems to get lost  now and then if I switch the displaying  file in the zoom window    The solution to the first problem is to  inquire about cursor position in the  zoomed window before deleting it  and  set the tiled window to the same loca   tion  The solution to losing word wrap  when switching files in the zoomed  window is to set up a    local keyboard     for the zoomed window which has the     switch file  keys disabled   Each win   dow can have its own set of com   mands     Those are the famous    exercises for  the reader     though  I may fix them  later  but meanwhile you can fix them  for yourself     Squares   The final program  Figure 3  is just a  little something to show that the Brief  macro language really is a general pur   pose programming language  The func   tion squares accepts an integer as a par   ameter  and returns the sum of the  squares of all numbers from 1 to that  number  inclusive  square_10 shows  how you would call squares    Again you ll notice the strange  parenthesis syntax of the language   You ll also notice that the definition of  squares doesn   t seem to indicate any   where that it accepts a parameter  The  function get_parm handles that    By not
44.  during program compilation  The prob   lem seemed to go away after the machine  had been on for a while    Aha  a heat related hardware prob   lem  But it only happened while using  Turbo C  Perhaps the compiler needs to  warm up  opined Dave  I had visions of a  nice corduroy jacket to keep all the files  on the hard drive toasty warm during  the cool northwest eves  a compiler cozy  if you will  But the problem actually  came from our EMS management soft   ware  With that software removed  Post   Scriptal development went on un   hindered     Fini   As I pound these words into my key   board and try to stay awake  our cover   to be cruises the Cascades on its way  over from Salem Type  nestled in a UPS  semi  oblivious to the full midsummer  moon    It   s passing strange to write about a  cover that doesn t exist yet  If this really  works  the result will be beautiful  If not   the cover will probably be blank  except  for a  This page intentionally left blank   message   and I ll be on permanent vaca   tion    Plenty of folks lent a helping hand on  this project   Thanks to Dan at Salem  Type  and Stan and Patty at Bettis and  Associates  But especially to Carol at  Micro C  ostensibly our graphic design  person  but better known internationally  for her early morning sludge  excuse me   coffee     Well  saddle pals  I didn t get around  to discussing flow control operators  re   cursion  or a host of other PostScript  capabilities  Do I smell a sequel  Stay  tuned to I
45.  environment  Living creatures  evolve as their environment changes  Is  it possible to create evolving creatures  in a computer    Yes  And it   s fun   Oh no  Not fun   we can   t have that around here        I first came upon this idea via A  K   Dewdney s    Computer Recreations     column in Scientific American  Every  month  Dewdney covers subjects rang   ing from prime numbers to fractals  In  the last year and a half  he has covered  computer based life at least three times   in the December 1987  February 1988   and May 1989 issues    An interesting facet of Dewdney   s  column is that he does not publish any  source code  or even pseudocode   Dewdney   s column gives you an excel   lent idea of where the cutting edge of  computer technology is  He discusses  algorithms and ideas   and then leaves    the implementation up to the reader   This is a great way to stretch your pro   gramming  and algorithm development  skills    In the May issue  Dewdney looks at  a program called    Simulated Evolu   tion     written by a California high  school teacher named Michael Palmiter   Palmiter   s    bugs    live in a    dish    which  contains    bacteria     the bugs    primary  food    The bugs begin by randomly moving  about in the dish  eating any bacteria  they encounter  The bacteria provide    energy for the bugs to continue moving   and when the bugs are old enough and  have sufficient energy  they reproduce  by breaking into two new bugs  All this  takes place right 
46.  for your application  We make a complete set of development tools available  including an assembler  C compiler  program loader  34010 debugger  and PC interface tracer debugger  Our stand   ard product includes support for extended CGA  MDA and Hercules emulation as well as a host addressable graphics bit  map  We also support and recommend the DGIS graphics interface standard  from  Graphic Software Systems  for applications development as an alternative to native 34010 software development  Ready to run drivers are available for most major applications software packages as well           Custom Designs Available    PC Tech will license most products for non exclusive manufacture  We will also cus   tomize any of our designs to better meet your needs on our in house CAD systems   All of our standard products are available in private label versions     About PC Tech    PC Tech has been designing  manufacturing and marketing high performance PC re   lated products for over three years  Our standard product line includes processor   memory  and video products  All products are designed  manufactured and sup   ported in our Lake City  Minnesota facilities     Designed  Sold and Serviced By   cS FERE MP ESOS  CUR       Qj High resolution fractal produced  on the PC Tech COLOR 34010  907 N  6th St   Lake City  MN 55041     612  345 4555     612  345 5514  FAX  Reader Service Number 3    PC  XT  AT  DGIS  Hercules  and Award BIOS are trademarks or registered trademarks of their r
47.  forcing you to hardcode the  parameter list for a function  Brief al   lows you to have the same function ac   cept violently different parameter lists  based on decisions made in the func   tion  It also allows the function to either  supply a default value  or prompt the  user for the value  when a parameter  isn t given     MICRO CORNUCOPIA   49  Sept Oct 1989 61       Onward    You can do many other things using  the Brief macro programming language   There s a complete macro package in   cluded for creating menus  as well as in   teger to string and string to integer  routines    There are deficiencies  though  For  example  arrays must be emulated by  using a text buffer  and complex data  types cannot be constructed  Also  there  is no floating point type  big deal                          Goodbye BASIC  C  COBOL   hello PASCAL  Now  to make  this most advanced language available to more micro us   ers  we ve cut our price   to an amazing  29 95  This  astonishing price includes the complete JRT Pascal sys   tem on diskette and the comprehensive new user manual   Not a subset  it s a complete Pascal  Check the features     Separate compilation of external procedures    Auto loading    14 digit FLOATING POINT  arithmetic   True dynamic storage   Verbal  error messages   Fast one step compiler   no link needed   Graphing procedures    Statistics  procedures    Activity analyzer prints program  use histogram    Operating system interface  THIS I  THE SAME SYSTEM WE SOLD 
48.  isn   t in position  the  motor won t start    This approach worked fine until ma   chines started becoming more sophisti   cated  Imagine using relays to also sense  drill speed  part positioning  tool posi   tioning  coolant pump operation  motor  overload  and spindle position    Soon the relay panel necessary to  operate a machine becomes more compli   cated than the machine  Where I work   we have panels containing over 500 re   lays  each  I   ve spent many hours trying  to find bad relays by substituting good  ones for the suspects  It isn   t much fun     Computers Enter The Scene   As computer equipment became  cheaper  electrical engineers started re   placing relay logic with CPU logic  Many  of the early PLCs were based on discrete  minicomputers    Modcomp was one of the premier  names during the first generation of in   dustrial computers  I have one of their  early machines complete with 32K of    magnetic core memory  In its heyday   this unit sold for  24 000    As microprocessors came on the  scene  most manufacturers moved on to  the 8080  and later the Z80  and many  PLCs still use these chips  The other  main chip family used is the INTEL  8088 80188  These machines fall into the  second generation    As with other computers  newer PLCs  have vastly increased computing power  and much lower prices  Small systems go  for  200 and up  while large systems  start at about  3 500     Ladder Diagram Programming   A problem arose when PLCs replaced  relay panel
49.  it chooses  reimplement the  method    For example  suppose we want to  define anObject3 which inherits the data  and methods from anObject2 and in ad   dition reimplements the procedure do   SomethingElse  We define it like so       anObject3   object  anObject2   procedure doSomethingElse     end     Now when we use a variable of type  anObject3  it will inherit the data fields  from anObject2  which anObject2 in   herited from anObject1   but will use its  own doSomethingElse procedure    In one sense  a descendent  object  is  both itself and all its ancestors simul   taneously  And simultaneously  it s differ   ent from all of them by 0 1  or more  methods    The trick for the compiler is to deter   mine when to call one descendent s  method and not another s    When we call  or use  a method from  a descendent object  the compiler looks  first to see if the current object has the  method we re calling  If it finds the  method in the current object  it uses it  and then moves on to the next instruc   tion    If the current object doesn t contain  the method  the compiler backtracks up  the hierarchy through ancestor objects  until it finds a method with the correct  name  When it finds it  it executes it   stops looking  and moves on to the next  instruction  If it doesn t find the method  in any ancestor  it reports an error    If you re a Prolog programmer  this  backtracking scenario should sound fa     88 MICRO CORNUCOPIA   49  Sept Oct 1989    numeric format       
50.  land   s best seller and ee   without ever having to    oer you o e a ds   on shift Num Lock  EEE ee Rime  oue                 to drive it at top speed  s than cost     Get better mileage   i     Namely the Turbo  Thats what PC Magazine from your desktop   149 25 Keyboard  Calealator for IBM and compatibles and     Calc 111  Keyboard  says about Quattro  the   Incaseyouhaventnoticed   Borland s Quattro spreadsheet  Add  10 shipping and handling      Calculator from hot selling spreadsheet already  the keypad       per unit  Continental U S  only   CA residents please add  9 75 Aes tax per unit       Datadesk  el ra ae ee doubles as a full function i       of Units    Ss Amount Enclosed _______        Boost your u thi iid rd about business calculator com     CompuerType           Cis Size  C134 DOSY     overall performance  i dal  mary plete with its own pop up _      If PS 2  include additional  5 for cable adapter     With its built in  A LCD display Which saves       Payment  OVISA OMC OAMEX O CHECK MC     presentation quality graphics  intelli  space on your desktop and lets you 4    Card Noep Date                                 gent recalcs  unlimited macros  easy perform any calculation with a single      installation and compatibility with keystroke   no matter what software   v  leading spreadsheet and database you re driving  Company Name    software  Quattro is made to order What s more  the keypad packs a    for your business  solar panel  so you can start up the 
51.  mostly I work in Pascal  occasionally those efforts are per   forated by a C filter   However  Larry has been disassembling  some things with Sourcer  and Sourcer generates assembly  language  for some reason no one has come up with a disas   sembler that regenerates the original C  or whatever     So  I dug out the office copy of ASMFLOW and attacked  the output of Sourcer  Boxes and code and arrows  pretty  fancy  Makes it a lot easier to see the structure of the program   The program also gives you an estimated time  and clock cy   cles  per routine for the 8088  80286  and 80386    It was interesting to watch the number of cycles it esti   mated  For instance  on Larry s screen update routine  we re  talking fractals here   it specified 486 clocks for the 8088  273  for the 80286  and 156 for the 80386  In fact  all the code I  checked came out with about the same ratio    Boy  shows how gullible I am  I believed it when the sec   ond source of 286s announced that a 20 MHz 80286 is as fast  as a 20 MHz 80386  It might be if they carefully select instruc   tions  but not for any of the code I ve seen    Anyway  I remember writing assembly for a Z80  I would  have traded my second 8  drive for a tool like this  After  seeing what ASMFLOW displays  8088 code looks almost easy   Shucks  if Turbo Pascal 5 5 hadn t just appeared           ASMFLOW    99 95    3 00 S amp H   Quantasm Corporation    formerly Quantum Software    19855 Stevens Creek Blvd   Suite 154  Cupertino  CA 
52.  need to talk to someone s tech support if  you want to figure out exactly how this  works    The third product I looked at was the  Lawson Labs Model 140 15 bit Analog  Interface  for  265   This doesn t have all  the digital I O or counter timers that the  other boards do  but it does have a much  higher resolution  15 bits vs  12   It   s a  differential A D while the others are  single ended   lll explain the terms  shortly   With this board you get more  accurate  albeit much slower  readings   7 5 or 15 readings per second  instead of  30 000 or 50 000 readings per second      A Complaint   In past years  I   ve worked with  several A D converter boards and I m al   ways playing sleuth just to figure out  how to use the boards  That s because I  never get complete documentation  I as   sume the person who created the docu   mentation is the same engineer who de   signed the board   Here are the data  sheets  the rest is left to the student     It s disappointing to see that boards  for the PC follow the same traditions as  those for more obscure busses  Some  packages provide key information from  the data sheets for the chips on their  boards  some reproduce the data sheets                    Unfortunately  none of the three boards  I m taking a look at in this article come  with a schematic    All the boards I ve worked with in the  past had crummy documentation  but at  least they had schematics so I could  puzzle out what was going on  although  I would prefer lucid
53.  not equal  658E  0036    658   0011 40h     658E  003A dx ds data le 3  0040 0008  378h   Simulator 658E  003E dx 2  658E 0041 al 8  follows 658     0043 dx al   port 37h  printer 2 control    z al   8  initialize printer  segment 658E 0044 89 8000 cx  BOO0h    658E 0047 locloop 2   changes 658E 0047 E2 FE locloop     Loop if cx gt  0    658E 0049 BO OC al  OCh  658E 004B EE dx al   port 37Ah  printer 2 control    al  OCh  init  amp  strobe off  658     004C loc 3   658E 004C B4 4C ah 4Ch sut  658E 004E CD 21 21h   DOS Services ah function 4Ch  Easy to   terminate with al return code  read resetprn    format  Stack seg b       stack seg b segment para stack  6593 0000 O0CO FF  db 192 dup  OFFh   stack seg b ends    end start     Source code output and inline cross reference can also be selected     BIOS SOURCE    for PS 2  AT  XT  PC  and Clones    The BIOS Pre Processor    with SOURCER provides the first means to obtain  accurate legal source listings for any BIOS  Identifies entry points with full expla   nations  Resolves PS 2 s multiple jumps for improved clarity  Provides highly  descriptive labels such as  video  mode  and much more  Fully automatic     E CHANGE AND ADD FEATURES  B CLARIFY INTERFACES    SOURCER Commenting disassembler  99 95  UNPACKER    Unpack packed EXE files and more  39 95  SOURCER with BIOS Pre Processor     139 95  ASMtool    Assembly source analyzer and flowcharter 89 95    Shipping  amp  Handling  USA  3  Canada Mexico  10  Other  15  CA Res  a
54.  now  However  I know I ll  stay with this chip for a while  There is  simply too much serious fun here to pass    up     Editor   s Note   This kind of processor and this kind  of support really make designing your  own controller fun   And  easy   So I  called United Products  my usual source                         for prototype boards and parts and asked  if they carried Motorola s 6805 develop   ment kit     Nope   responded Phil Clyde   But    REFURBISHED SEAGATE HARD DRIVES    we have something you might like better  ST 125 20 Meg MFM HH 28M5  175   It s the Hitachi 68P05V07 with a built in ST 125N 20 Meg SCSI HH 28MS  230   piggyback socket     ST 138 30 Meg MFM 28MS  215   It turns out that the chip is compatible ST 138R 32 Meg RLL 40MS  195   with Motorola s 6805 but you don t need ST 138N 32 Meg SCSI 40MS  235   a custom development kit  You just burn ST 151 40 Meg MFM 40MS  315   your code into a standard 2732 and ST 157N 49 Meg SCSI 40MS  270   piggy back the ROM onto the 68P05  To ST 157R 50 Meg RLL 40MS  235   change the code you burn a new ROM  ST 225 20 Meg MFM 65MS  160   Plus  the chip costs only  19 95  ST 225N 21 Meg SCSI 70MS  195   Hitachi has a data book and a pro  21 Meg RLL 65MS  150   gramming book for this new release and 30 Meg RLL 65MS  160   I understand they supply cross assem  40 Meg RLL 70MS  190   blers that run on the PC as well as 40 Meg MFM 40MS  240   sample 6805 code  40 Meg MFM 28MS  260   Anyway  once you finish the proto  40 Meg SCSI
55.  odd port addresses pro   duces double pulsed IOW lines  with or  without feedback to the I O CS16 line   These double pulses and the computer       driven address changes complicate the  operation of the decoder  It is simply best  not to use odd port addresses     Summary   At first glance  the double pulse and  address line changes which occur on the  AT bus during execution of the IN  AX DX or OUT DX AX instructions ap   pear strange  But these pulses could be  used for data transfers of 16 bit words to  8 bit memories or data ports  You can  easily achieve direct transfer of 16 bit  words to 16 bit ports by pulling the I O  CS16 line low with a pulse generated by  the port address decoder    We have made five interface boards  using circuits with both 74LS and 74ALS  chips  We set up two of these boards  with test programs  They ran through  more than 5 billion transfers without an  error           CP M  NorthStar  Macintosh  Apple Il  MS DOS  and PS 2    Don t let incompatible diskette formats get you down     read them all with your PC     Teach your PC  to speak CP M    UniDOS Z80 Coprocessor Board  by MicroSolutions    Run your Z80 and 8080 code programs at LIGHT   NING speed on your PC or AT with the UniDOS  8MHz  Z80 coprocessor board  UniDOS auto   matically switches from MS DOS to CP M mode  when your CP M program is executed  UniDOS  emulates most common computers and terminals  such as Kaypro  Xerox 820  Morrow  Osborne   and VT100  All standard CP M system cal
56.  of Bor   land Turbo Pascal 5 0 with the addition    MICRO CORNUCOPIA   49  Sept Oct 1989 55    printf  buffer  generation   61d  critters   51d V     of compatibility with Apple  amp  Wirth s  object oriented Object Pascal language   Borland  meanwhile  released Turbo  Pascal 5 5  which uses Borland s own  support for objects    Before I make any qualitative state   ments  let me make a disclaimer  I am  writing a book called Learning Object   Oriented Programming with QuickPascal  for Microsoft Press  Some people may  immediately discount my opinions on  Pascal  and possibly other products  be   cause of this  However  I like to make  my affiliations public so that people  know where I m coming from    QuickPascal is a good  solid clone of  Turbo Pascal  It compiled every Turbo  Pascal program I   ve tried very quickly   of course   I like its environment better  than Borland s  since it allows you to  edit multiple files simultaneously  Also   QuickPascal has the capability to ani   mate your program  showing the source    code you are executing while the pro       gram runs in slow motion    QuickPascal is cheaper than Turbo  Pascal  it can be found in some places  for under  50  However  Microsoft has  continued their recent practice of put   ting much of the documentation for  Quick products into on line help  rather  than paper manuals    If it weren t for the object oriented  extensions  I don t think Microsoft did  enough extra to lure many old timers  away from Turb
57.  one resident program to  another  The consequence is that it  doesn t allow other resident programs to  run  Its lack of compatibility diminishes  the worth of RENEGADE  This program  works only with computers storing their  keyboard interrupt routines at address  F000 E987H    To observe RENEGADE in action   load the program and display the vector  for INT 9H  Before executing  reboot the  system to purge any previously installed  resident programs     A gt RENEGADE   A gt DEBUG    D0 24 27   0000 0024 4D 20 OE 06    The vector points to the MAIN proce   dure at 060E 204DH  This is the address  if RENEGADE is the first TSR loaded  and you are using the DOS 2 10 version   Now install POPUP and display the INT  9H vector again        38 MICRO CORNUCOPIA   49  Sept Oct 1989                4   RENEGADEASM      SEGMENT AT on  ORG 9H 4     DW 2 DUP  Gr  ORG 1CH 4   DW  2    DUP 0    SEGMENT PARA PUBLIC   CODE        ASSUME CS CODE     ORG 100H    JMP INIT  LABEL DWORD  iur DB 87H  OE9H  00H  OF OH  ZY DW 2 DUP       DB 4000  DUP  Cs   0  S     4000 DUP   P        MAIN is made resident and every      MAIN PROC NEAR    a   INTERRUPT   TABLE SEGMENT         oH VECTOR    uz INT 1CH VECTOR    Scope SEGMENT     GOTO INITIALIZATION ROUTINE        XNT  9H ADDRESS IN ROM     STORE INT 9H VECTOR      CURRENT INT 9H VECTOR        gt  STORE  ORIGINAL SCREEN    7 SAVE  SHIFT   STATUS CODE    CHECK  NEW  SCREEN STATUS    POP UP   SCREEN       keystroke routed here     NEW INT  9H VECTOR POINTS
58.  our  choices lie at the crux of all that s im   portant    The difference you make  makes all the  difference    Last must have known the instant he  arrived on the morning of 1856  127  years earlier  that something was up      Out of the unimaginable chaos of its in   terminable stochastic fiction  Time thrust  only one unforeseen oddity on Caspar Last  as he  or something like him  appeared  beneath a plaintain tree in 1856  he had  grown a beard almost down to his waist  It  was abominably hot     Funny Lane   I expect  as literary folk learn more  and more about the implications of    scientific theories  we ll see more and  more thoughtful excursions like this one  into stochastic fiction    For now  if you want to enjoy a good  thought  check out  Novelty  Four Stories  by John Crowley  in paperback   6 95   from Doubleday             Quality  amp  Price You Cant Pass Up     COMPLETE 80386 25SDX    Display Color Graphics  on a monochrome monitor     All Microsphere XT  AT   amp  386 systems NOW include  the GRAPHICS COMBO  multimode video card     The Graphics Combo combines  the video functions and software  compatibility of the IBM Mono   chrome Display Adapter  MGA    the Hercules Graphics Card  and  the IBM Color Graphics Adapter   CGA  all on a single card  In ad   dition the CGA graphics are auto   matically converted to display on  a standard TTL monochrome  monitor in 16 shades of gray     SPECIAL OFFER   Order a Complete  MicroSphere Computer    System and re
59.  prose   If these com   panies provided better documentation  with the boards  they d have more  and  happier  customers    The  best  documentation comes with  the Real Time Devices board  Although  the printed material only consists of data  sheets for the chips  which are hard to  use without a schematic   the disk con   tains quite a bit of useful information  It  includes sample programs in BASIC  Pas   cal and C  and a special programming  language based on FORTH  The other  boards had drivers or examples in BASIC  only     Board Applications   The four sections of the board  A D   D A  digital I O  counter timer  serve  four purposes  The A D converter ac   cepts a voltage from the outside world  and digitizes it  converts it into a num   ber   The D A converter converts a num   ber into a voltage    A digital control system uses both  A D and D A  the A D measures a  voltage which represents something  about the device being monitored  for in   stance  its temperature   the D A sets a  voltage that controls the device  The pro   grammer must write an algorithm which  performs the control but doesn   t make  the system unstable    A D and D A conversion are com   monly used alone  without being in a  control system  You may simply want to  monitor some values in an experiment or  process with your A D  Or you might  replace a level control with a D A so you  can change the level with your computer  instead of by hand        ou can   t just  hook a wire  between the  mo
60.  relay or a TRIAC or solid state relay  see  Chapter 6 in Computer Interfacing with  Pascal  amp  C      Measurements Versus Signals   To understand analog signal condi   tioning  you must know whether you  want to simply take a measurement  for  example  getting the temperature  or cap   ture a signal  as in capturing the  waveform of someone s voice     Taking a measurement is a simple  process to manage   filter out as much  noise as possible from the input signal  and then take a measurement whenever  you want  The speed of the A D con   verter usually isn t critical when you re    theres any appreciable change  How   ever  if the signal changes quickly  for a  fast or noisy waveform   it may change  between bits  messing things up appreci   ably  To prevent this  you must   1  filter  the input signal to remove noise  and  2   use a sample and hold before your A D  converter  Luckily  both the AD1000 and  the PCL 712  which use successive ap   proximation  have a built in sample and   hold  I ll go into filtering shortly    The Lawson Labs board uses a dual   slope A D conversion technique  This  charges a capacitor with the input volt   age for a known period of time  then dis   charges it with a known voltage while  counting the discharge time  When the       with the digital output must not only  react properly to TTL voltage levels  it  must also not require more current than  the digital output can provide    If you re driving some other TTL or  CMOS chip  things wi
61.  s that      How about my Sun workstations      Who makes them     At that point the crowd began to dis   perse  smiling to themselves  I overheard a  couple comments about problems running  DOS applications under UNIX    The last I saw of suspenders  he had  his face totally imbedded in a fresh wad of  cotton candy  For a moment I had the im   pression the cotton candy was hiding a  huge grin   the grin of an unrepentant 12   year old                 ARE YOU FAMILIAR WITH THE MICRO CORNUCOPIA NETWORK   BINAE GUEST IM IKE MEME ING Ge MCCC VE I ee RE pO EUEL TM DEM en    The network is a growing  international group of over 20 000 engineers  designers  programmers  publishers   and consultants  practitioners who seek out and use micro computer products and make recommendations  about their use  Over half have advanced degrees and nearly three quarters moonlight as computer  consultants  in addition to their 9 to 5 jobs in the computer industry      The network is the developers  hardware and software manufacturers  and retailers who provide the tools  the  libraries  systems  and hardware  Our advertisers are key technical resources providing both tools and  expertise to this fascinating group  Ads in Micro C are read as thoroughly as the articles     At the heart of the network is MICRO CORNUCOPIA  the Micro Technical Journal  published bimonthly in a  light  often humorous  tell it like it is style  Our writers are experts  providing in depth discussions of utilities   libra
62.  sample thermostat project using  an  HC705 MCU and MC145041 serial  A D  I used the same connections be   tween these chips in my example design   for details  see Figure 2    The Guide contains full source listings  for the thermostat software  source code  is also   available from the Motorola  FREEWARE BBS  The routine A2D  see  Figure 3  contains all the 68HC705 code  needed to interact with the MC145041   using the circuitry shown     The Example Project  I wanted a simple demo project  using    12 MICRO CORNUCOPIA   49  Sept Oct 1989       Figure 2   Schematic for the example MCU project  reprinted from the Pro   grammer Board User s Manual with permission from Motorola      5V    1  2  3  4  5  6  7  8  9    _           N 2    Wiring layout is not critical  a Radio Shack experimenter s board  276 168A  works well  Use    high quality sockets for both ICs  The battery voltage can be between 8 and 30 volts     the  HC705 MCU and the MC145041 se   rial A D  So  I defined a small  one chan   nel voltage sensor    The sensor samples channel 0 of the  A D once per second  The A D returns  an 8 bit value from  00 to  FF  Depend   ing on the value returned  a specific two   LED pattern will be displayed  if the  value lies from  00 to  3F  a green LED  lights  if the value lies from  40 to  7F   the green LED blinks once per second  if  the value lies from  80 to  BF  a red LED  lights  if the value lies from  CO to  FF   the red LED blinks once per second    I wrote the asse
63.  select from    a wide variety of interrupts on the      counter timer   For those really critical functions  the  chip contains a Computer Operating    Properly  COP  timer  When enabled         this feature will force a reset should your  program fail to periodically refresh the  COP register  Additionally  the chip can  provide a reset if the system clock falls  below 200 KHz    The  HC705 also offers two additional  low power modes  as if 4 7 mA isn t low  enough    WAIT suspends CPU operation    but keeps the timer  SCI and SPI running   Any of these three systems can bring the  CPU back to full RUN mode    WAIT consumes about 1 7 mA  the  STOP mode typically uses only 2 8 pA   no  that s not a typo   STOP shuts down  all internal processing  only an external  interrupt or reset can bring the CPU back  to life    The on chip EPROM erases with a  standard shortwave UV lamp  If you  burn your program into the MCU and  find it doesn t work  just erase the MCU   change the software and try again    When it comes time to ship your final  product  Motorola also offers the MCU as  a one time programmable device  OT   PROM   This plastic package does not  have a UV erasing window   once  you ve programmed it  you ve pro   grammed it     Inside The Programming Model  At first glance  the  HC705 program   ming model seemed like a cruel joke  The    MICRO CORNUCOPIA   49  Sept Oct 1989 9     12V    NATE         12v    DENOTES OPTIONAL  T COMMAND ONLY     OPTIONAL     4V    Vee OV  
64.  the  characters double width  Not double  height  but considerably bigger    This works for all DOS commands   more or less  and probably some appli   cation programs  older ones more likely   A modern text editor which seems to  work acceptably in this mode  scrolls  the line horizontally and so forth  is my  copy of the estimable OEdit  I think it s  still available as shareware     J  G  Owen  21 Glenview Ave   Fort Salonga  NY 11768    Talking Amigas   Issue  48 was very interesting  as  usual  I have a comment on Debee  Norling s article   Selecting a Talking  Computer for a Blind Friend     Although the IBM PC family is tlie  business computer family  I was sur   prised to see no  zero  nada  references  to the Amiga computer  Every Amiga  can talk  right out of the box   no  special hardware or software required   At a command line prompt  just type       say  string to speak     The general purpose text to speech al   gorithm seems pretty good  at least to  me  If it isn t  you can send it phonemes  instead  This speech capability is also  available as a system level device  just  like a printer or a serial port  You con   trol the volume  speed  voice type   male  female  robotic   pitch frequency   and rate    Some Amiga applications take  advantage of this ability to talk  If these  do not meet your needs  there are a  number of programmable text editors    6 MICRO CORNUCOPIA   49  Sept Oct 1989    Letters    Wi  N    NWI    and applications that might work    The
65.  the PCX Programmer s Toolkit gives you over 60  powerful functions to manipulate bitmapped graphics  Use Virtual screens   Super VGA modes  LIM 4 0 support  a 300 page manual  9 utilities including  screen capture and display  and the fastest routines on the market   195    Need Special Effects  but caught in a GRASP    F Why create a demo when you can create the real thing  Don t be trapped in  a slideshow editor or demo program when you can use PCX Effects and  your favorite programming language  A complete Music Language and  spectacular special effects for exploding your graphics   99    With PCX Text you can display text with graphics as fast as it always should  have been  Display characters  strings  input fields  font scaling  background  transparency  and more  Includes a font editor  fonts  and conversion utility  for blazing graphics bitmapped text   99    All packages support 12 compilers for C  Pascal  Basic    Fortran  Assembly  and Clipper  All modes of the Hercules  o o o o   CGA  EGA  VGA  and Super VGA adapters are supported  up   through 800x600x256  22 modes in all   Assembly Language    source code is optionally available  Trademarks are property    No Royalties  30 day Money Back Guarantee     sections of a spare CD4001B to first NOR   then invert the NORed signal    This keeps you from having to add  another device  a CD4071B  to the parts  list  Leftover gates always seem to have a  way of getting used    Q  Shouldn t I isolate my computer s port  fro
66.  the pre   vious session automatically     No Mouse Support   Not only is mouse support not in   cluded with Brief  it would be very dif   ficult to do many of the things I like  having a mouse for  An example is  scrolling and searching    In Point  clicking the left or right but   ton on the left border of a window  scrolls forward or backward through  the file  Clicking on the right border  searches for the previous or next occur   rence of the current selection    Since the right side of a Brief win   dow is also the left side of the window  to its right  this scheme would be im   possible  There is no way to decide  whether the desire is to scroll the right  hand window  or search in the left hand  window     CONSULTANTS  PROGRAMMERS  ANALYSTS get    the most advanced  SOURCE GENERATING  DISASSEMBLER AVAILABLE  for the IBM PC XT AT PS2 compatibles    DIS DOC can help you     find and fix bugs in any program     re create lost source code     a great companion utility to compiler  and assembler     able to  give you a great source of  professional programming examples      And Much Much More     DIS DOC is     FAST    Disassembles files up to 500kb in size  OR RAM ROM memory at a rate of  10 000 lines per minute   ACCURATE    Uses seven passes and over 20 SECRET  algorithms to separate code from data  to make the most accurate listing on  the market   FLEXIBLE    Creates a MASM ready listing for easy  re assembly of your disassembly and  only needs 320kb of memory   TECHN
67.  turn to my pile of magazines and  dig out the edition to read my letter  again  Ah  there it is  One passing refer   ence to computer store sales staff  CSSS   and the insinuation that many of their  ranks are pretenders    Not such a damning statement  methinks  A mere pinprick in the blood   letting of business  I would have  thought  Certainly defensible most  would say  I think   A thought provok   ing letter  this     Well it appears that John was pro   voked into thought  too  Several  hundred words worth in fact  All in  defense of himself  Some were dripping  with sarcasm and vitriol  Others I have  not heard of  what do  buffalo chip  slinger    and    dishwashing jarhead     mean    I suspect that the former equates to  an Arthur Daley used car salesman and  the latter to a pre stardom Sylvester  Stallone doing night jobs  maybe post  Rocky X and divorces  as well   And if  money be the measure of success then I  suppose I should be flattered with the  comparisons  but I guess I m indifferent    I understand    intolerant     but I don t    Continued from page 75    think it applies  After all  I am answer   ing John s letter  And from the passion  of it  I m glad I don t live in Syracuse   Author I am not  but I hope John  doesn t have the ear of Khomeni       Honest  John  I was not speaking  specifically of you when I said CSSSes  are less expert than they claim to be   During the last ten years  I have com   puter shopped in many places around  the world  inclu
68.  two 5     hard drives to your Z80  system  The Winchester Connection software  customizes your system from an easy to use  menu  with flexible drive parameters  partition  and block size  and includes complete instal   lation and diagnostic utilities  A complete system  requires a HDS daughter board  WD1002 05  hard drive controller board  hard drive  software  package and cables    HDS Host Board with Software       79 95  HDS Board  WD1002 05    and software   WD1002 05 Controller Board only     185 00  External drive cabinet  with power supply   139 95    Parts and accessories for the  Kaypro and Xerox 820 1    Plus2 ROM Set for Xerox 820 1       Plus2 ROM with X120 bare board      KayPLUS ROM for Kaypro 2  4  10    specify   Kaypro 2X Real time Clock   parts kit   Kaypro 2X Hard disk interface   parts kit   Kaypro 10 Hard Disk controller    39 95  49 95    69 95  29 00    16 00    Kaypro four drive floppy   decoder board   QP M Operating System     bootable   specify system   QP M without CBIOS    installs on any Z80 system    49 95  Complete parts and repair services available    P O  Box 1726   Beaverton  OR 97075    Reader Service Number 10    Special Purchases      PC Mastercard   by Magnum Computer   This is probably the BEST multi function card  on the market  Use mixed banks of 64k and 256k  chips to install up to 1 5 Megabytes of RAMDISK   and PRINT SPOOLER  or fill your system up to  640k   Serial  parallel  game ports  and real time      clock installed  Comes 
69.  very  much  Especially those articles on com   puter hardware  e g   controlling the  outside world through the parallel port   and the Pascal columns  more  please     My only complaint is about what I  seem to get for my subscription fee   Since you only publish six times per  year  I would like to see fewer National  Geographic type articles  For example   the trips through Turkey are interesting   but if you were the size  cost  and peri   odicity of  say  PC Computing  those arti   cles would be a refreshing insert rather  than a squandering of valuable space    Judging from your gushing  pun in   tended  comments on the SOG  there  doesn t appear to be a shortage of com   puter related material  Would it be  possible to include some of the SOG  discussions in future issues    A few times in past issues  great arti   cles were diminished by statements to  the effect of     Here   s a partial program  listing  Call our BBS for the complete  program     Since your BBS isn   t PC Pur   suitable  the long distance charges make  the call cost prohibitive  Please don   t  print only partial listings    Product reviews are okay  but I enjoy  Micro Cornucopia more as a nuts and   bolts type learning tool on the how to  and why of the microprocessor world   Because of this  in the past I have rec   ommended your magazine to others as  a valuable information source     Ron DesGroseilliers  Jr   209 Cecil Ave   Springlake  NC 28390    Editor s note  Boy  I know what you  mean  I l
70.  widespread adoption of the  ARexx language  with its interprocess  communications ports  also facilitates  linking applications together in novel  ways  At a programmer s level  it s rela   tively simple to insert a task into the  chain of event handlers  e g   to speak  keystrokes  including ctrl alt shift  and  to access the speech libraries from  within a program  The Amiga s true  multitasking and ability to play high  quality sampled sounds without any  extra hardware are bonuses    The Amiga has capabilities for the  sight impaired as well  It has become  the standard computer for  Desktop  Video   Its standard NTSC  or PAL   output and low cost GenLoc options  mean it can interface to a wide variety  of video equipment  Its standard analog  RGB output will drive the newer large  analog monitors  or TV   monitors     The bit mapped display and system  fonts mean you can select larger fonts  for many applications  There s even a  little public domain    magnifying glass   tool that lets you enlarge any portion of  the screen    In conclusion  the Amiga is a very  capable machine and certainly in the  running as a blind or disabled person s     window to the world           Kurt Wessels  917 N  87   Seattle  WA 98103    Letters From The Editor   Debee   s articles in Issue  48  generated lots of interest  One thing we  didn   t tell you  the products mentioned  are available through Debee and  Christy at their company  Grassroots  Computing  Obviously  they can sup   por
71.  with  them jigsaws that has lots of sky      That s the best part  there s nothing to  throw away  Nothing to haul out to the  hogs  This is technology at its finest      So what s the use of shredding if you  don t get something to do at the dinner    64 MICRO CORNUCOPIA   49  Sept Oct 1989          By David Thompson  Micro C Staff    table during January  And no mulch   What about the little lady s garden     Mr  Green Jeans looked puzzled for a  moment   Let me explain   this removes  information from a computer  removes it  permanently  by writing new information  over what s already there  By the way  are  any of you fine folks considering buying  your first computer     No one raised a finger     What kind of information does it  write into the computer   asked suspend   ers       I   m not really sure  just different infor   mation  unimportant information  The  most unimportant information available   It s information that wouldn t be interest   ing to the kind of person who might  otherwise be interested        How does anyone know what s not  interesting     I noticed that Red Suspenders  drawl  had disappeared and the grass stalk he d  been chewing was getting quite short       Well take my word for it  no one s  been interested yet        What does it run on     The barker   s eyes brightened     Macs   Apples  Commodores  Ataris  Amigas   and for any of you doing serious comput   ing  the PC family  It ll run on anything      How about Sun workstations      What
72.  you wish to capture    Common filters are high pass  which  pass frequencies above a certain point   low pass  which pass frequencies below a  certain point  and band pass  which only  pass frequencies within a specified range   Generally we describe the quality of the  filter by the  sharpness  of the corner s   between the pass band and the stop  band                    Updated   NEW   NEW    Updated     NEW     NEW     Updated   Updated   Updated     NEW     Updated     I  Und ated    NEW     NEW     C CODE FOR THE PC    source code  of course    MS DOS File Compatibility Package  create  read   amp  write MS DOS file systems on non MS DOS computers             s     500  Bluestreak Plus Communications  two ports  programmer s interface  terminal Tepe A TN vM In tin Oe  agi satay tale he ois  400  C  O Data Structures Library  multiple inheritance  messaging  excpetion handling  call back                    ccn  375  dB2c  dBase to C translator  includes dB Filesfor CanddB ToolsforC                 a  325  pBase  relational DBMS with debugging calls and sparse table  amp  repeated field support                      rr  325  CQL Query System  SQL retrievals on B trees plus windows        6    5    4 4 4 e 4 4 e e e ee o oon n  325  e 5 0  high resolution  DISSPLA style scientific plots in color  amp  hardcopy                       c rns  325  PC Curses  Aspen  Software  System V compatible  extensive documentation        so 1 6 we ee ee ee  290  Code Base  database manager
73. 0 ns  27256 32kx8 150 ns  27128 16Kx8 250 ns   STATIC RAM  62256P 10 32Kx8 100 ns  6264P 1i2  s8Kxe 120 ns  6116AP 12 2Kx8 120 ns    OPEN 61   2 DAYS  7 30 am 10 pm  SHIP VIA FED EX ON SAT     SAT DELIVERY   MasterCard VISA or UPS CASH COD    FED EX ORDERS Ree pene Ee  91 8 267 4961    80287 8  80387 16 80387 25   135 00  215 00 80387 20 80387 33    8087 2    RECEIVED BY    BEGGS  OK  74421  Th Std Air      6 31b   No minimum Order  Please note  prices subject to change   fn PA   1225 1 Ib   Shipping  insurance extra  up to  1 for packing materials        Reader Service Number 37       way when the compiler complains or the code doesn t run  I  know it   s my fault    Now Borland s released 5 5  If objects in Pascal are as good  as objects in C    we may find that software development is  no object  Or it is an object  Or people will no longer object to  writing software   Sorry  I   m not being objective     Anyway this is beginning to sound an awful lot like some   thing I d put in the editorial     Speaking Of Objects   With Borland s release of objects  can Microsoft be far be   hind  Nope  In fact Redmond  Washington  came out with  Pascalian objects before Borland    Microsoft s Quick Pascal is just the first shot  I think Micro   soft would like nothing more than to invade Borland s home  court  the Pascal market    The next year should be very interesting  Microsoft is  smarting from reviews  which conclude that Turbo debugger  is outperforming CodeView   no question 
74. 05 degree screen angle     black   45 degree screen angle       obscure spot function    fprintf  f    dup mul exch dup mul add 1 exch sub  setscreen n      fprintf  f   1 75 inch 1 5 inch translate n      center the image    fprintf  f   5 inch 8 inch scale n       fprintf  f   fractal n            file header       void file tailer  f    FILE  f        fprintf  f   showpage n      putc  0x04              file tailer          make it 5 x8      call fractal procedure       print the page      D EOF for PostScript    void get layers  clr  y  m  c  b     unsigned char clr   unsigned char  y   m   c   b      switch  clr      case 0   m   Ox0f   c  _ break   case 1   m   OxOd   c    break   case 2   m   0x0c   c  break        etc        case 79   y   0x02   m   Ox0f   c   0x0c     break     case 80   y   0x01   m   0x0f   c   0x0c     break     case 81   y   0x00   m   Ox0f   c   0x0c     break             get layers       tum theory of color printing  Since each  cell contains a finite number of dots  the       cell can take on only a finite number of please anyone     shades of grey   not a continuous spec   trum  I wouldn t worry about it though   Even if we can do only 16 shades in each  of the four colors  we still have 16     possible combinations  or colors  64K  different colors should be enough to    PostScript does the halftoning work  for us  In the image operator example  above  we specified one bit per image  element for a monochrome image  Let s       BORLAND PROGRA
75. 0K RAM  OK               ee 25  150 Watt Power Supply           50  Slide case lock  LED             38  2 MB EMS Memory Board   OK Installed                49   AT   200 Watt Power Supply           75  AT 386 Case  Lock  LED          72  Tower AT 386 Case  Lock    LED  amp  200 Watt ps           239  2 MB EMS Memory Board   OK Installed                  99       COMPUTERS    SYSTEM    with Rotary Voice Coil Hard Drive    Now    MOTHERBOARDS  XT Turbo 4 77 10               75  AT 6 10 Award Phoenix    DTKBios               ees 229  AT 6 12 Award Phoenix    DTKBios               ees 279  Baby AT 6 12 AMI DTK         249  AT 8 16 DTK Bios             395  80386 8 20 DTK Bios       vee  799  XT AT Memory              CALL   SOFTWARE  MS DOS 3 21 w GW Basic        49  DR DOS33w GEM             49  MS DOS 3 3 w GW Basic         95  DISK DRIVES   Teac Toshiba 360K              69  Teac Toshiba 1 2 MB            85  Teac Toshiba 3   720K          79    Teac Toshiba 3   1 44 MB kit     90  XT 20 MB Miniscribe    8425  65ms                  279   8425 w controller            319  XT 30 MB Miniscribe   8438  65ms                  299   8438 w controller            349     HARDWARE MANUFACTURER     gMicroSphere     SINCE 1982       Orders Only  1 800 2 34 8086    855 N W  WALL   BEND  OREGON 97701    Reader Service Number 2    This machine features an 80386 CPU running at  25 Mhz on a full size motherboard  For extra  quality and reliability we ve included a 45 Mb  Miniscribe 3053 Hard 
76. 110 MOV AH 31  TSR  DS 0112 MOV AL 01  RETURN CODE  DS 0114 MOV DX 0011  SAVE 17 PGPH  DS 0117 INT 21   CALL DOS  DS 0119   ENTER      When this program terminates  16  paragraphs of PSP and one paragraph of  code will emerge as part of resident  memory  Save the program as  RES31H COM      NRES31H COM   RCX   CX        0019    RBX   BX        0000    W    Return to DOS and  RES31H COM    To determine the location of the sec   ond resident program  search with the  Debug  S  command     execute    A gt DEBUG    RDS   DS         0000    S 0 L FFFF EB OE 53 54 41 59 20 52  0000  61E0   0000 6330   0000  90BF    As anticipated  the new resident code  begins at 0 6330H with the PSP at  0 6230H  The memory control block is lo   cated at the paragraph preceding the PSP   0 6220H   Display the initial five bytes of  this block      D6220  6224    0000 6220 4D 23 06 11 00    The identifier byte  4DH  indicates  that a PSP follows at segment 0623H  The  length of the PSP code is 0011H  or 17  paragraphs  Every time you execute a  TSR function  the protected memory is     stacked    directly above the previous                resident program  You can continue  stacking resident programs until you ve  filled RAM    By now  you have probably realized  how easy it is to install a program or  data in the resident portion of the com   puter s memory  The not so easy part in   volves activating it after it s resident  This  takes us to the subject of interrupt han   dlers     Interrupt Handl
77. 17 plus  one  or 18  paragraphs above  Between  these memory control blocks are the PSP       sers seem to  be divided into two  camps  those who  swear by TSRs  and those who  swear at T SHs         16 paragraphs  and the program s code   1 paragraph   Current DOS versions  don t use the last 11 bytes in a memory  control block so these might contain rem   nants of other programs    To predict the location of the next  resident program  search above the PSP  for the memory control block beginning  with 5AH  The first occurrence here is at  0 6220H  Look at the initial five bytes of  this paragraph      D6220  6224    0000  6220 5A 23 06 DD 79    The information tells us to expect the  PSP of the next resident program to load  at segment 0623H  address 0000 6230H     Let s install the same program a sec   ond time in resident memory  but this  time by invoking the other TSR function   DOS version 2 00 introduced function  31H  IBM prefers this function because it  passes a return code and allows more  than 64K bytes to remain resident    When using DOS function 31H  the  number of bytes made resident is de   clared  by paragraph  in the DX register   The value stored in the DX register     0011H  specifies that 17 paragraphs are  to be protected  Before entering the pro   gram with the DEBUG  A  command   secure a new DS designation by return   ing to DOS and reloading DEBUG      Q   A gt DEBUG    A100   DS 0100 JMP 110   BY PASS DATA  DS 0102 DB  STAY RESIDENT   DATA    DS 0
78. 20 microseconds translates to  loo megahertz  or 50 kilohertz  The  AD1000 contains 24 lines of digital I O  and 3 counter timers  and comes in  faster versions  for more money     While snooping around for boards  I  found two companies  and I m sure there  are more  that market the same board  Bo  Ray at Rapid Systems  in Seattle  made  no bones about it    It s a good board      he said   but the key to customer success  isn t just selling the board  it s helping the  customer solve the problem     Advantech  in Taiwan  manufactures  the PCL 712  soon to be the new  im   proved PCL 812   Both Rapid Systems    395  and Halted Specialties   295  sell  it    Rapid Systems has a larger array of  products  some they designed and built  themselves  And their technical support  seems top notch  which might explain the  higher price  Halted Specialties  though   seems friendly and competent     I d probably opt for Halted if I were  counting dollars and building a simple  application  For bigger  more complex  projects  I d consider Rapid Systems  for  more thorough technical support and  slightly better documentation   l   The PCL 712 has 16 12 bit A D chan   nels  two D A channels  16 separate digi   tal input lines and 16 output lines  and 3  counter timer channels  only one of  which is available to the user   The other  two channels are used for something  called a pacer  which isn t explained very  well but seems to be a way to trigger  A D conversions automatically  You ll 
79. 36 files and split the screen into win   dows  Search replace with regular expressions  Includes the  best compiler support available    menu driven  easy selection  of compiler options  supports  Include  files and MAKE utilities     VEDIT PLUS     Ultimate programmer s tool for only  185   VEDIT PLUS adds the most powerful macro programming  language of any editor  It eliminates repetitive editing tasks and  permits creating your own editing functions  The macro  language includes testing  branching  looping  user prompts   keyboard input  string and numeric variables and control over  the size  position and color of windows  Source level macro  debugging with breakpoints and tracing  Macros developed  with VEDIT PLUS also run under VEDIT     30 day money back guarantee  Call for pricing of XENIX  OS 2  and FlexOS versions  Very attractive quantity pricing is avail   able for schools  hardware and software vendors     VEDIT and CompuView are registered trademarks of CompuView Products  Inc  BRIEF is a  trademark of UnderWare  Inc  Norton Editor is a trademark of Peter Norton Computing Inc  QEdit  is a trademark of SemWare      Supports IBM PC  XT  AT  PS 2 and clones with CGA  MGA  EGA  VGA  Wyse 700  Amdek 1280  and other displays  Also supports Concurrent DOS  DESQview  Microsoft Windows   PC MOS 386 and most networks       Also available for MS DOS  CRT terminals   TI Professional and others        Introducing          The 1st Family of  Low Cost  Powerful  Text Editors 
80. 4 volt motors with  no problems     How Do Steppers Work    A stepper is a permanent magnet  motor with two sets of stator  non   moving  windings  The two windings are  mechanically offset by 1 2 a pole pitch     a pole being either the north or south end  of one of the rotor s permanent magnets    Each time a winding energizes  inter   action  between the winding and the  magnet causes movement  The opposite  poles attract  and the like poles repel  By  controlling the timing  phase  and direc   tion  polarity  of the electricity flowing to  the coils  you control both speed and  direction of rotation    Figure 1 shows a unipolar  center  tapped  winding motor and the order its    Figure 2   CD4001B Clock        ohn and   chose  the center tapped  motors because  they required only  four driver  transistors          windings must be driven  John and I  chose the center tapped motors because  they required only four driver transistors   Bipolar steppers require eight driver  transistors  not good when you re trying  to keep costs down    Steppers are available in a range of  0 72   to 90   rotation per step  The most  common are 7 5   to 18   per step  A 7 5    stepper requires 48 steps per revolution     By David Metz    Metz Electronics  725 Climer  Muscatine  IA 52761    The Break Down   The driver consists of four sections    Clock  Supplies the pulses that deter   mine the speed of the motor    Phase shifter  Produces the 90   phase  shift between the drive coils    Rev
81. 4MB      O WAIT STATE  DUAL SPEED 6 12 MHZ     DUAL FLOPPY AND HARD DISK  CONTROLLER  171 INTERLEAVE      ONE 1 2MB FLOPPY DRIVE     ONE 20MB HARD DISK  40MB      TRUE OS 2  XENIX  MS DOS AND  NOVELL COMPATIBLE     80287 MATH CO PROCESSOR SOCKET     ENHANCED 101 KEYBOARD  w TACTILE FEELING         1 44MB FLOPPY DRIVE AND 20MG   ONE YEAR WARRANTY   2 SERIAL PORTS  1 PARALLEL PORT    HARD AND 1 GAME     e hix SR LB   79 229 9 976 9 9 ELLET CR ere 619A  N a Ri Tru  3400 e  LED INDICATORS     CARRYING BAG w SHOULDER STRAP   200W UL POWER SUPPLY     ONE YEAR LIMITED WARRANTY   ONE YEAR WARRANTY   GAS PLASMA                2199                eeesee  2299   LCD PORTABLE             1729   McTEK 286 12MHZ McTEK 386 165X McTEK 386 20MHZ    Assembled  amp  Tested IBM  AT Compatible  MS DOS   OS 29 Compatible   m 80286 12 6 MHz   B Phoenix BIOS   m 640K of RAM Expandable to 4MB      0 Wait State   m 200W Power Supply   E 1 2MB Floppy Drive   B Ports  1 Serial  1 Parallel  1 Game  e Dual Floppy Dual H D  Controller  m Monochrome Graphic Card   m 101 Key Enhanced Keyboard   B TTL Monitor 12    m 20MB Hard Disk  40MS     Assembled  amp  Tested IBM   AT Compatible  MS DOS   OS 29  amp  UNIX9 Compatible  W 80386 16 8 MHz Norton V4 0 SI 17 6  B Phoenix BIOS   B 1MB expandable to 16MB RAM   a 80387 Coprocessor Socket   B 200W Power Supply   W 1 2MB Floppy Drive   B Ports  1 Serial  1 Parallel  1 Game   m Dual Floppy Dual H D  Controller   B Monochrome Graphic Card   m 101 Key Enhanced Keyboar
82. 503 342 1283    Reader Service Number 143     MICRO CORNUCOPIA   49  Sept Oct 1989 37    Introducing RENEGADE   Not all resident programs are as well   mannered as POPUP  Some have been  labelled thugs  bullies  and outlaws   What have these programs done to war   rant such a reputation  When some com   mercial programs replace the table  address of INT 9H  they exclude all  others and do not allow concurrent use  of a resident program like POPUP  Let s  take POPUP and turn it into a bully    Figure 4 lists the assembly language  source for RENEGADE  The MAIN pro   cedure of this program  not presented in  its entirety in the figure  is identical to  POPUP  RENEGADE performs the same  operations as POPUP but it takes over  both INT 1CH and INT 9H    As mentioned previously  INT 1CH  occurs 18 2 times per second and does  nothing except return from ROM  You  can use this interrupt to monitor the vec   tor table continuously    The initialization portion of RENE   GADE takes control of INT 1CH and  directs it to the CHECK procedure in  resident memory  You need not save the  old INT 1CH vector since it merely ex   ecutes an interrupt return    The CHECK procedure  invoked 18 2  times a second  determines whether the  keyboard interrupt is chaining directly to  the MAIN procedure in resident  memory  If another program has taken  over the INT 9H vector  the CHECK pro   cedure recaptures it    RENEGADE is an example of a selfish  resident program  It doesn t permit  chaining from
83. 52 North Guilford Ave   Indianapolis  In 46220    317  253 8088     5 00 Shp hnd in USA  amp  CANADA   15 00 overseas           Reader Service Number 106    Mr  MOX    99       by Epoch Data  Modem operated  power controller  for your PC     Makes any PC with  external modem  remote accessable   Software included   Order direct from     Epoch Data   P O  Box 1093  Cardiff  CA 92007   619  543 9423    Reader Service Number 135    8031 pu Controller Module  39 95    Shipping   3 00 US  5 00 Canada    Ideal for prototypes  one of a kind devices or short production  runa Perfect building block for PC or Macintosh data aquisition  interface or stand alone control projects  Assembled and teeted  board includes 8031 microprocessor  crystal  8K of EPROM  128  bytes of RAM  2 byte wide VO ports and provisions for a MAX232  to provide industry compatible serial I O  All ICs are nocketed  and I O is via a 2X17 header  Size  2 75  by 4 0   OEM discounts     Cottage Resources  Suite 3 672C  1405 Stevenson Drive  Springfield  Illinois 62703   217  529 7679       Reader Service Number 158    MINI 386 20 25 MOTHERBOARD      20 25 MHz 80386 CPU   On Board Memory Expandable  1M8 2MB AMB 8MB   Fully PC AT Compatible    Phoenix ROM BIOS PLUS with ROM Based SET UP    RESET  TURBO LED Jumpers    Battery Back Up System Clock Calendar and CMOS Ram    Supports 80387 Math Coprocessor Asynchronously    Interleaved Memory Access for Zero Wait State On Board  Operation     Exact XT Dimension and AT Mount
84. 67  Los Angeles  CA 90026    404 984 0742 FAX ORDER LINE  404 984 8248 213 665 1397    ALL TRADEMARKS ARE THE PROPERTY OF THEIR RESPECTIVE OWNERS     When ordering please specify EGA VGA and disk format  Overseas orders please add  4       Reader Service Number 119 Reader Service Number 112  32 MICRO CORNUCOPIA   49  Sept Oct 1989             A    Writing TSR Programs    Dr  Edwin Thall  Professor of Chemistry  at Wayne General and Technical College of  The University of Akron  teaches chemistry  and computer programming   I understand  that he has not been terminated  though he  is definitely resident      approach to writing programs when   they introduced the terminate but   stay resident  TSR  function call with  DOS version 1 1  Software developers  quickly caught on  and now they make  just about every conceivable utility into  a resident program  Preassigned hot  keys pop up such applications as calcu   lators  calendars  address books  and  notepads    As the name suggests  resident pro   grams remain in computer memory  while other programs execute  But resi   dent programs are also potential disasters  since  without warning  they can corrupt  data  scramble the screen  or crash the  system    Usually systems crash because DOS  doesn   t provide the controls needed to  maintain peaceful coexistence between  two or more TSRs  Users seem to be  divided into two camps  those who swear  by TSRs and those who swear at TSRs    The intention of this article is neither  to 
85. 9    buys you both charge your spreadsheet and typing board would be an inspired idea at send them back within 30 days and                   he hat celli i  performance  this price even if you didn   t get we ll cheerfully refund your  149 95   the hot selling spread Like our famous tactile  positive  Quattro in the bargain  l No questions asked   sheet and the EESAN response keys that give After all  as InfoWorld says     if you How  you ask  can you take advan   TurboCale 111 j  9   o you a much better feel for haven t looked at Datadesk s key  tage of this remarkable offer  Just fill   paransi the road  So you can type   boards  you ought to    out the coupon and send it in   Keyb oard  faster with fewer mistakes According to the Washington Post  Better yet  call us toll free   Calculator than ever before     for ingenuity of design and sheer And tell us to step on it     And the new  enhanced dollar value  Datadesk can t be beat   For just  149 95    less IBM  101 key layout with And when it comes to your peace ES  than Quattro s street some logical improve  of mind  nothing beats our two year pm    hin d a ments   including separate TID y Qu Y    t  its  50 sug  numeric and cursor keys at s more  if Quattro and Turbo      gested retail price  you i    that let you cruise through Calc 111 don t blow the doors off the DAT ADESK  can now get both Bor  i spreadsheet data entry vehicles you re currently driving  just All individual trademarks and copyrights are acknowledged  
86. 95014    408  244 6826    Turbo Pascal     For the past nine months  I   ve been working on a hardware  project  You know  it s one of those design jobs that you can t  talk about with your closest compatriots  However  into every  fun project a little software falls    This is one of those I O things where I prod lots of A Ds   MUxs  relays  etc  Ten years ago I d have done it in BASIC   Eight years ago I   d have written it in Pascal  although I m not  sure how  there wasn t much hardware support in the old Mi   crosoft Pascal   Six years ago I d have done it in FORTH  Five  years ago Id have gone nuts trying to read what I d  FORTHed  Four years ago I d have written it in C  Three years  ago l d have written it in Modula    Last year I started writing it in Pascal  Turbo Pascal 4 0    Units make perfect libraries  I write them  compile them   and use them  I write the low level stuff once  When it works   it works  Of course C has libraries  but I don t C as well as I  Pascal  When I C I usually use my old copy of Aztec  That       PROMPT DELIVERY       SAME DAY SHIPPING  USUALLY     ICs QUANTITY ONE PRICES SHOWN for JUNE 25  1989    OUTSIDE OKLAHOMA  NO SALES TAX    DYNAMIC RAM  SIMM  1  256Kx36 80 ns  400 00  SIMM 1Mx9 80ns 220 00  SIMM      1Mx9 85ns 195 00  SIMM 256Kx9  80ns 95 00  1Mbit 1Mx1 100 ns  41256 256Kx1   60 ns  41256 256Kx1 80 ns  41256 256Kx1 100 ns  41256 256Kx1 120 ns  4464 64Kx4 120 ns  aon 120 ns    41264      OM  27C1000 128Kx8 200 ns    27512 64Kx8 20
87. 96 pages    ISSUE  43  9 88    Building Databases   Build a C Database   Selecting a dBase Ill  Compatible Compiler   Working with Paradox   Designing Custom PC Cards   Accessing dBase III Plus  Records from Turbo Pascal   96 pages    ISSUE 44  11 88    Object Oriented Program    ming   A Taste of Smalltalk   Actor   Thinking Objectively   Building MicroCad   Peripheral Technology   PT68K 2   Hercules Graphics Printer  Dump   96 pages    ISSUE  45  1 89    Computer Aided Design   CAD In A Consulting Business   Choosing PCB Layout Systems   Building Circuits With Your   Computer   Secrets of Optimization   Finding Bargains in the  Surplus Market   MASM 5 1   96 pages    To Order   Po    1 800 888 8087          Mail  PO Box 223   Bend  Oregon 97709  United States   Issues  1 34  3 00 each ppd   Issues  35 current  3 95 each ppd   Canada  amp  Mexico  All issues  5 00 each ppd   Foreign  air mail   All Issues  7 00 each ppd     ISSUE  46  3 89    Software Tools   The Art of Disassembly   Handling Interrupts With Any C   Hacking Sprint  Creating  Display Drivers   Greatest C Compilers   Turning A PC into An   Embedded Control System   Practical Fractals   96 pages    ISSUE  47 5 89    Robotics   The LIMBO Project   Starting A Robotics Company   How To Write and Use A  SystemProfiler   Problem Solving and Creativity   Turn Your XT Into A Controller   Writing Code For Two  Operating Systems   96 pages    ISSUE  48 7 89    Tools For The Physically   Impaired   The Adventure Begins  
88. B layout systems    Micro C readers might like to hear of  the best bargain available in this type of  software  autorouting PCB layout soft   ware that runs on EGA systems  out   puts to an HP laser printer  and comes  with full C and assembly source code   The price  FREE    Interested people can contact the  program author       Randy Nevin  1731 211  Pl  NE  Redmond  WA 98053    Just send a formatted floppy and a  self addressed mailer with sufficient  postage  The system doesn   t have a  flashy interface  but it works and is sui   table for two sided board production   The author invites feedback on the pro   duct so he can improve it     76 MICRO CORNUCOPIA   49  Sept Oct 1989    David Gwillim  159 Woodbury Road  Hicksville  NY 11801 3030    ei perjsny   09SZ MSN  uMoj  oqdure      O d LOS xog   uenseg  M  v       ured  e sem Buddy e rqA  preoq  ex ay  dn Sur   pjo   inq    puru o  waas jou prp o1dAey    y  umop apisdn js n a ysanbar smi  paddy      suoyrjar  euoreurojut poo2 jo   s  1  4U1 ay  ut yey  uosduioq     plaeq   JN 1no    a  eseo d nok p noM     QUI o  oreurau s AT o1d  ey ay  puas  pinom no   jt  njojei8 aq prnom J  Io9piQ 1epu   uMo      Rebuttal Rebuttal   What did I say  What did I say   Quick  pass me that half eaten bag of  CCCCs  crispy chocolate chip cookies   from your editorial in Issue  45  What  was it that I said in my letter  in Issue   42  that so upset John Mulligan     Let   ters     Issue  45   a self confessed com   puter store person    I
89. BYTE  magazine  June  88  ran one  LINK UP  ran a paraphrase of my data sheet and a  photo  PCM  a Tandy magazine  gave  MR  MOX a mention  June  88   A note  in a Q and A column in Personal Com   puting  Sept   88  continued my media  barrage    Two problems  however  First  the  Personal Computing author suggested  that it would be better to buy an  8 79  piece of software and an appliance  timer for the PC that would turn it on  when you were likely to call in  Arrrgh   The author had obviously never tried to  use a PC with an appliance timer  2  prongs vs  3   Plus  the PC would crank  up every day whether you were going  to use it or not    Second  even when they simply  printed the releases  the free advertising  didn t work  There was no flood of  orders for MR  MOX   calling it a trickle  would have been generous    Then came a break  I thought  LINK   UP wanted to evaluate MR  MOX in an    MICRO CORNUCOPIA   49  Sept Oct 1989 69    article  I sent off a unit and waited ex   pectantly  And waited  And waited  I  wish now I were still waiting    My first indication that the article  was out came by phone  A modem  manufacturer called to say that their  unit didn t have the problem described  in the article  Uh oh  What did the ar   ticle say  I asked the guy on the other  end     Well  it said that your product  doesn t work  They rated it a poor buy     I had to call LINK UP to get a copy  of the article  The author was a fellow  whose name I had seen mostly on book  
90. Bureau of  Circulations             By David J  Thompson    No Lack  Ot Drive    Hard Drives   Ive been having trouble with my little 20 meg 3  1 2    Miniscribe  Just use it for text mostly  not the  heavy stuff that uses all eight bits   but I began hearing  this siren sound as the spindle motor slowed down and  then came back to speed  I called MicroSphere       Make sure the DC power connector is firmly at   tached  Take needle nosed pliers and push in the little  metal connectors       That seemed reasonable  but the symptoms got  worse  Then  not content with slowing down  the motor  began speeding up  trying to improve transfer rate I  suppose   Certainly not a power problem    Ah well  I backed up everything  using Fastback   and trucked the little hummer back to MicroSphere   aren   t warrantees nice    Within half an hour I was  back at Micro C with another 20 meg 3 1 2  8425   I  really like the little drives because they re very quiet     Fired up the system  booted off floppy  did a low  level format  g c800 5   FDISK     Whoa  wait a minute   I m the guy who tells people to let their drives run at  least half an hour before formatting  This would be a  great excuse to sit back and       I started another low level format  made a cup of tea   and glanced through an article in the Wall Street Journal  about Compaq s new 33 MHz 386 system   Something  about beating IBM  whoever they are  in the perform   ance race     Boy  formats go fast when you re reading someth
91. C Tech  I sat    Raiders Of The Lost Editor    across a desk from Earl Hinrichs  Whenever my  eyes got screwed up from staring too hard at  my own screen  I would look up at Earl  bap   ping away at his keyboard like there was no  tomorrow  Windows flashing by in blinks  file  menus shooting out and disappearing a split  second later  He was using Brief  Basic Recon   figurable Interactive Editing Facility     We talked about editors a few times  After    all  we both spend probably more than half our    waking lives working with an editor  I would  tell him a few things about my current editor   and he would reply with a counter point about  similar capabilities in Brief  It was like    Duel   ing Cursor Keys     and Earl was the local   furiously picking away on his banjo while my  fingers became impossibly tangled in my guitar  strings    Even so  the first year I wasn   t intrigued  enough to spend any time learning yet another  editor  After all  I had just spent a week or so  figuring out how to use Point  It did most  everything I wanted  I thought   Express  covered the rest  I thought   I let it slide    This spring I was finally ready for a change   After using Point for a year  I decided that it  was just too slow  Even on a 10 MHz AT  if I  had multiple views of a window on the screen  and hadn t saved in a while  I could type faster  than it could accept characters  It looked nice   cursor movement was fast  and the price was  right  it came free with Logitech Mo
92. Dewdney s  column  mentioned above  in Scientific  American  If you re interested in expand   ing your mind  this column will do it  for you    Editor s note  Of course  if you re not in   terested in expanding your mind  you can  continue reading Micro C    I hope Dewdney will put out a col   lection of his columns for those people  who are not Scientific American sub   scribers  Heck  I recommend Scientific  American all by itself  it s a solid scien   tific journal for the educated non scien   tist     I   m Outa Here       Im putting together a collection of  computer based life programs which  you can soon find on the Micro C BBS  and issue disk  Included will be pro   grams for the Borland  WATCOM  and  Zortech compilers  In addition  I ll be  putting in a new version of CRITTERS   which will incorporate some of the ex   tensions I mentioned earlier    Please feel free to take these pro   grams and experiment with them  I d  love to hear back about your observa   tions  As always  write me at the above  address  or send to me via FidoNet  NETMAIL at 1 104 45 2                           By Laine Stump    Redhouse Press  Merkez PK 142   34432 Sirkeci   Istanbul  Turkey    Laine discovers Brief  but that doesn t mean he s  short  just Brief as only Laine can be Brief     lifelong search for the perfect programming   editor  Several different editors  including  my own  which my brother and I wrote about  five or six years ago   have led me down the  road  Every time I run 
93. Drive with a 25 ms access  time  1 2Mb  amp  1 44Mb Toshiba or TEAC floppy  drives  2 8Mb 32 bit memory slots  1Mb of fully  optimized 80ns RAM  Runs an incredible Norton    SI test of 24    2 serial ports  1 parallel port  101  key keyboard  Graphics Combo video card with  amber or green monochrome monitor  Bios   socket for an 80387 20 math coprocessor  200  watt power supply  clock calendar  and housed  in a sophisticated tower case  Full 1 year warranty   Ask for FREE assembly and testing         249 5    Tower Case      2395  sid  Case     20MHz            5   200 Less  8 MB RAM Crd              99   32 BIT  fK     DISK DRIVES  Continued     AT 40 MB MiniScribe    3650  61ms                  339  AT 40 MB MiniScribe  3053  25ms                  489  AT 71MB MiniScribe  6085  28ms                  631  AT  MFM  HD  amp  FD  Controller card DTK          110  WD    127  AT RLL HD  amp  FD  Controller                  189  MONITORS  CARDS  EGA CGA   Autoswitch  31 dot           385  CGA EGA VGA    MultiSync  31 dot            495  CGA Color             ees 249  Amber Green 12  TTL           89  Graphics Combo               79  VGA Analog   Mitsubishi  28 dot            549  Color Graphics Par Card         49  Mono Graphics Par Card         49  CGA EGA Card            ss  175  VGA Analog Digital Card        249  KEYBOARDS  Casper Enhanced 101        eO  54  Keytronic KB101                67    Focus 101 Tactile   Switchable  Control Caps Lock   Dust Cover          eese  89   
94. EGRAND UD   FAX 209 651 1353    We accept Bank Americard VISA and MasterCard    IBM  PC  XT  AT trademarks of International Business Machines   Drives and computer boards not included        Reader Service Number 22    MICRO CORNUCOPIA   49  Sept Oct 1989 25       gram tells the CPU what to do with the  data  The program can convert it to a bi   nary coded decimal  integer  or floating  point number before storing it in a user  register    In Figure 3  the signal is input  through a reed relay  A multiplexer then  selects which input to channel to the  A D converter by turning on a relay  The  typical analog card will have 8 inputs   each input capable of handling a current  or voltage  or thermocouple  input     Analog Outputs   In Figure 4  the analog output oper   ates in the reverse of the analog input   Each output has a dedicated D A con   vertor  This D A converter drives a cur   rent source  thus outputting an analog  signal in proportion to the digital infor   mation from the CPU    A register on the D A converter  stores the digital signal so the output will  remain constant until the CPU tells it to  change or shut up     Servo Controller Cards   A servo motor controller is one major  PLC use  Servo motors are used for  robots  part positioning  machine control   and a plethora of other uses  Servo con   trol consists of two separate functions   Sensing motor position and changing  motor position    Servo controller cards have an output  driver and an input  connec
95. FOR  295   So how can we make this offer    why the unbelievable  deal  Very simply  we think all software is overpriced  We  want to build volume with the booming IBM market  and  our overhead is low  So we re passing the savings on to  you   AND AT NO RISK   When you receive JAT Pascal  look it over  check it out   If you re not completely satisfied  return the system within  30 days and your money will be refunded in ful  THAT S    NOW     A COMPLETE PASCAL     FOR ONLY     29 95     Senenesennezesd eu seessesseuseseeanuesy    TIT I iyi iii rrr yyy yy    Still  you can easily solve many prob       lems having to do with manipulating  large amounts of text by using Brief  macro programs  Most important  you  can modify your editing environment to  be very close to  exactly how I want it      Epilogue    I began using Brief two months ago       At first I just used it when I was bored   Later  as I came up against things I  couldn t do with my other editors  I        RIGHT   COMPLETE SATISFACTION GUARANTEED OR          YOUR MONEY BACK   In addition  if you want to copy the diskette or looseleaf  manual   so long as it s not for resale   it s o k  with us   Pass it on to your friends  This is a Limited Time Offer  SO ACT TODAY   DON T DELAY ENJOYING PASCALS  ADVANTAGES   AT  29 95  THERE S NO REASON TO  WAIT      To  JRT SYSTEMS   P O  Box 187 i  Enola  PA 17025 SA   phone 717 732 1093   O K  You ve sold me  Send me JRT Pascal by return mail      understand that if I m not co
96. I wouldn t get anything else done     You know  it s hard to make the computer play a really  intelligent game  Most game writers create a dumb algorithm  but give the computer some kind of advantage  such as pro   ducing men faster  I worked hard on the game algorithm  so  the computer could play by the rules and still be competitive     Anyway  after Cal Tech  I knew it was a good game  I  tried to sell it on my own  It sold okay in spite of my efforts   but mail order consumed too much time   filling orders  an   swering letters  Just a lot of details that don t interest me  I  didn t want to be involved in that end of things     So I collect royalties on the game and on C    The thing  with royalties is that you work and work and work and it s  hard to keep in mind that eventually you re going to get paid  for it  Most people won t work for royalties because of the lag     Anyway  Interstel takes care of sales and promotion  In  fact  Empire was just reviewed in Penthouse     But I m getting ahead of myself   let s see  where was I   Yeah  I start with one city  explore about  I capture more cities  with my armies  make more armies  expand my territory  cap   ture more cities  Hey  there s an enemy troop ship  Where s  one of my destroyers  Geeze  it s getting light outside  Can t  be  it was midnight   just minutes ago     Empire    49 95   Interstel   P O  Box 57825  Webster  TX 77598   713  486 4163    ASMFLOW   I haven t done any assembly language programming lately  
97. ICALLY ADVANCED     The only disassembler that disassemles  all instruction sets including 80386 80387   e And has a built in patcher to make  changes without having to re assemble     DIS DOC also includes BIOS labeling and  its own word processor in its package     DISeDOC is a proven programmer s  tool and is simply a must for the  consultants  programmers or analysts     We CHALLENGE you to find  anything that can beat DiseDoc     DIS   DOC  99 95  EXE Unpacker  29 95    FREE DEMO DISK  add  4 00 for S amp H in the USA   10 00 for outside USA  30 day money back guarantee    To order or get more information  CALL 800 446 4656 today     RJSwantek  Inc     178 Brookside Road    c Newington  CT 06111 emm   203  560 0236    Reader Service Number 142    MICRO CORNUCOPIA   49  Sept Oct 1989 59       Maybe this is just my problem  I m  trying to make Brief be everything I   ve  worked with  Maybe there s a much  more convenient way of searching that I  haven t thought of yet     A Fixable Problem   The final complaint in my notes is  the inability of the BPACKAGES facility  to recognize wildcards  t    01   in  filename extensions  I encountered this  problem when trying to set up BPACK   AGES to turn on the word processing  package  wp  automatically whenever I  edited a text file    The problem is that I use the exten   sion of text filenames to indicate a  sequence number  For example  letters  to my brother are given the names  CECIL 001  CECIL 002  etc  I tried to  make BPAC
98. KAGES recognize this with  the command     SET BPACKAGES 0    wp    which should mean    whenever you see a  file extension with a 0 at the beginning   load the wp macro package     Unfor   tunately  it didn   t work  If I wanted to  I  could do it by specifying every possible  extension  all 999 of them   but       The best solution is to rewrite the  BPACKAGES stuff to recognize wild   cards  Even better would be to rewrite  BPACKAGES to accept regular expres   sions for file extensions  Then I could do  this     SET BPACKAGES  0 9    wp    That s one nice thing about Brief  If a  facility isn t there  the tools to imple   ment it are     Support   Since I seldom ask for support from  Istanbul  I don t know anything first   hand about support from Solution Sys   tems  The one thing I do know is that  Earl sent several letters to them asking  for information on upgrading to version  2 1  and they never replied  I guess they  didn t want his money    However  they do have an 800 num   ber which reportedly gives toll free sup   port  in case your Briefs need extra sup   port      Price   The final bad thing about Brief is the  price   195      Of course  if you believe  what Patrick O  Conley said in  On  Your Own  in issue  48  it makes sense     60 MICRO CORNUCOPIA   49  Sept Oct 1989     extern display file name        macro zoom window      zc    A    Solution Systems is just keeping out the  geeks and nonserious users by pricing  their product above the    Well  hyuck   t
99. MMERS     the  simplest   most  complex    tools  you  will  ever  use    to create a user friendly interface between  your program and the computer operator   Thirty functions provide for the design and  control of menus in either a text or graphic  screen and the number of menus is limited  only by your computer memory  Menus sup   port only C  amp  Pascal  Create bit mapped  screen fonts  icons  amp  graphic mouse cursors   The keyboard or mouse will control the pro     gram flow  CREATIVE INTERFACE TOOLS is    yours for only  69 95    MAXX DATA SYSTEMS  INC     1126 S  CEDAR RIDGE  SUITE 115 DUNCANVILLE  TX 75137  1 800 622 8366 214 298 1384 FAX 214 709 7674    All user modules furnished as source code No run time system No royalty  fees System requirements  PC  XT  AT  CGA  EGA  VGA  DOS 2 1 or  greater  384K RAM  Output routines provided for Turbo C 1 5  amp  2 0  Turbo  Pascal 4 0  amp  5 0  Turbo Prolog 2 0  amp  Turbo Basic 1 1  MAXX DATA and  CREATIVE INTERFACE TOOLS are trademarks of Maxx Data Systems  Inc   Other brand or product names are trademarks or registered trademarks of  their respective holders  Copyright C 1989 by Maxx Data Systems  Inc     Reader Service Number 151    MICRO CORNUCOPIA   49  Sept Oct 1989 21          go to four bits per element  Two differ   ences arise in the code   Figure 3 shows  the important program segments inter   spersed with pseudo code  First  each  byte of hexadecimal image data now  contains two points instead of eight  No  r
100. MS would like to  depose Borland in the Pascal market and they re counting on  objects to do it    Are objects really that important  Look at AI  Prolog  started out with fireworks and then      By the way  what did  happen to Prolog  Maybe Gary remembers Prolog   However   I was talking to Bruce Eckel the other day and I mentioned  some of Blaise s Pascal libraries  most useful      PC COMPATIBLE    ENGINEERING    Annabooks gives you the hardware  software  and firmware information you  need to design PC compatible systems faster and better  And you have con   trol of your design from the ground up    our firmware and software pro   ducts include source code  Plus all the utilities you need   Do hardware design  Decter Desiga   s 1M DRAM SuperSpec is the first of a  series of hardware books you won t want to miss  And a PC Bus timing book  is on the way  Start by getting these books   AT BiosKit  an AT Bios with source code you can modify  With setup   amp  debug  380 pages with disk   199  XT BiosKit  includes a debug  270 pages with disk   99  Intel Wildcard Supplement for XT BiosKit  Includes ASIC setup  turbo  speeds  60 pages with disk   49  1M DRAM SuperSpec  Design your memory to all mfg s specs at once   Lots of timing diagrams  amp  tables   79  PromKit  Puts anything in Eprom or SRAM  DOS  your code  data   you name it  With source on disk   179  SysKit  Here s a debug monitor you can use even with a brand X  Bios  Includes source  of course   69  XT AT Handbook  T
101. Name are data fields   Declare an object like this       type   objecti   anObject    anObject   object  X Y   integer     procedure doSomethingWithX amp Y     end     X and Y are still data fields and the  procedure doSomethingWithX amp Y is a  method for manipulating anObject    An object consists of everything we  know about it  Data  which define the  variables of the object  and code  which  manipulates the object  are together in  one box  a box that can be both black  and white at once  ie  polymorphic   but more on that later     To use a record  we access its data  via  dotting  or via a With statement       recordl X    2   3     recordl Y      or       With recordi do    begin  X   2   Y   4   end   We use the same methods to    manipulate objects  dotting or a With  statement        cbjectl X    2     With objectl do  begin  X   2   Y 2 3   doSomethingWithX amp Y   end     Think of an object as a descendent  type  object  that first inherits all the  power of an ancestor type  record  and  then extends itself with methods       anyObject   object  record     methods     end     If a record is a container for data    fields  then an object is a container for  data fields and methods    Notice that we don t have to pass X   and Y to doSomethingWithX amp Y  do   SomethingWithX amp Y already knows  about X and Y because they   re both con   tained within the same object  i e   they  share a scope   Everything in an object   methods and data  is shared  It s a  small t
102. No  49 az 1989  3 95    T  E ICRO  TEG H N Il    sAW   JO U  RN AL    MICRO uae ra    I O  TO   ts Off To  Work We Go    Want to know where the hackers are   They re busy  automating industrial  processes  It s easy  Very easy     Building A Controller     pages  The Easy Way    Motorola s 6805 contains everything you  need for I O control     except the A D  convertor     Programmable Logic   page 23     Controllers      Driving Steppers page 28    Low Cost I O page 42  For The PC    Bruce looks at off the shelf I O boards     And More       PostScriptals page 16    How Larry produced this cover     Writing TSR Programs page 33  Interfacing 16 Bit Devices page 83  Much  Much  More       7447019388       EE SNNT UT ai et    LIMITED OFFER    Dayjusitestrect           D  HOP OWRD GG wie  eves dodi       Tivelve function Switch selectable Separate numeric keypad that switches to  Tivo Control keys for increased Erasable template for all IBM XT  a multi function business calculator  and Altemate automatic to label your function AT  PS 2 and with tilt up LCD display  Includes memory   keys for operation  hey assignments  compatible square root and percent keys   ambidextrous Switch allows   Systems  Keyboard and Solar panel  operation  you to swap Positive Extra la pn niin P lalake status to power the  Isolated position of Ctrl   tactile  patil el gummi tl indicator lights  calculator     and Caps Lock    feedback  ackspace a   even when           Ese RE  click  keys            14
103. ODE      is CODE oat i    ASSUME  Ca  CODE    MPO INIT 2  LABEL DWORD     DW 2 DUP  2      IN DB 4000 DUP USt     0  o      EID 00 por  Pt     CX  4000       new screen      E TABLE SEGMENT    GINT oH VECTOR oo    a it GoTo   INITIALIZATION  ROUTINE  p c S      INT 9H ADDRESS IN ROM  P ue   i 5  STORE OLD INT 9H VECTOR     STORE ORIGINAL SCREEN         SAVE  SHIFT STATUS  CODE     CHECK NEW SCREEN STATUS     SPOF E SCREEN   D      2  NEW INT 9H VECTOR  POINTS BERE   d     ENABLE INTERRUPTS     o     e    SAVE REGISTERS vs P     SIMULATE INTERRUPT RETURN      OLD  KEYBD ROUTINE  IN ROM     RETURN KEYED FLAGS     ISAVE   SHIFT STATU    BOTH SHIFT KEYS      SOURCE SEGMENT  SOURCE  OFFSET       VOICE MASTER KEY       VOICE RECOGNITION  SYSTEM    FOR PC COMPATIBLES  amp   TANDY 1000 SERIES  A FULL FEATURED VOICE 1 0 SYSTEM    GIVE A NEW DIMENSION TO PERSONAL COMPUT   ING     The amazing Voice Master Key System adds  voice recognition to just about any program or  application  Voice command up to 256 keyboard macros  from within CAD  desktop publishing  word process   ing  spread sheet  or game programs  Fully TSR and  occupies less than 64K  Instant response time and high  recognition accuracy  Voice recognition tool box utili   ties are included  A genuine productivity enhancer     SPEECH RECORDING SOFTWARE     Digitally record  your own speech  sound  or music to put into your own  software programs  Software provides sampling rate  variations  graphics based editing  and data c
104. ONIC SUPPLY      xDEST scanner input SORpy 2  x3 5  and 5 25  Software diskettes    xPop up Menu for ease of use    TION ay   AlLap Le     xComprehensive instruction manual    Now  for the cost of a clone  the real thing  a full featured fax card that supports a  wide variety of printers  Epson Okidata HP LaserJet   150  amp  300 dpi  and others    Incoming fax can be printed during reception  spooled  or saved to disk for selective  printing after review on your graphics display     This single slot card is supplied with the normally optional Hayes  compatible  300 1200 baud plug on modem to permit sharing the same phone line between the  FAX and your normal modem tasks     This is not some OEM packed unit  It is the real thing   current list price  995 00   Our low price is  379 00  optional 300 1200 baud modem provided at no additional cost    Quantities are limited  Order Now    REQUIRES DOS 2 0 AND ABOVE  DEDICATED PRIVATE RJ 11 SINGLE PHONE LINE  640K RAM  HARD DISK  GRAPHIC    DISPLAY  CGA EGA OR HERCULES      ALSO AVAILABLE AT HSC ELECTRONIC SUPPLY OF SACRAMENTO  916  338 2545 AND  HSC ELECTRONIC SUPPLY OF SANTA ROSA  707  792 2277      Toll Free  Orders Only   800  4 HALTED      ELECTRONIC California Residents  408  732 1573     HSC FAX Line  408  732 6428   e SUPPLY Ho Eicon esouce GES  48  Tang  VRA   3500 RYDER STREET   SANTA CLARA  CA 95051   10 1 89      Shipping  UPS Surface unless otherwise specified by purchaser  All items subject to prior sale  Orders shippe
105. OS   load DEBUG and enter the following  program  omit comments      A gt DEBUG    A100   DS 0100 JMP 0110  BY PASS DATA  DS 0102 DB  STAY RESIDENT   DATA    DS 0110 MOV DX 0110 PROT TO HERE  DS 0113 INT 27   TSR  DS 0115   ENTER      The program takes up 21 bytes  offsets  0100 0114H  and can be viewed by typ     ing      D100 114   DS 0100 EB OE 53 54 41 59 20 52   45 53 49 44 45 4E 54 20   DS 0110 BA 10 O1 CD 27    Later  you can search resident    memory to locate this code  The 256 byte  program segment prefix  PSP  precedes  the code  The PSP occupies offsets 00   FFH and is made resident along with the  code  You can display the PSP with      DO FF    Here s how the program works  The  first instruction  JMP 0100  bypasses the  data  DB statement   The next instruction   MOV DX 0110  specifies that the pro     MICRO CORNUCOPIA   49  Sept Oct 1989 33    gram be protected up to  but not includ   ing  offset 0110H  When the program ter   minates with the last instruction  INT  27H   the PSP  offsets 0000 00FFH  and  code  offsets 0100 010FH  become an ex   tension of the resident portion of COM   MAND COM  Save the program as  RES27H COM      NRES27H COM   RCX   CX        0015    RBX   BX        0000    W    Since DEBUG cannot invoke Interrupt  27H  return to DOS and execute the pro   gram    Reload DEBUG and use the  S  com   mand to search the first 64K bytes of  memory for the program s code  When  searching the initial 64K bytes of com   puter memory  you must set the
106. On Your Very Own Computer    Will there be life after computers  Who knows   There certainly was life before computers  even  though it wasn   t worth watching     happening all around  It   s the time of flower    ing in these parts  bright petals of color  cover the forest floor  On the 17    of April  our  daughter Elora was born   a perfect child  if I  might say so myself  She is quite a joy  day and  night    My wife and I took our new child on her  first wilderness hike when she was seven  weeks old  We took the Mill Castle Trail along  Mill Creek into the West Elk Wilderness  Two  miles in  we stopped when the trail crossed  Mill Creek  primarily because the baby  couldn   t swim if she fell in  and had lunch in  an Aspen grove    There wasn   t a human in sight  the nearest  was probably several miles away  In the  shadow of those jagged cliffs  we could feel a  presence  We would have stayed later  but a  fast moving mountain thunderstorm rolled  down the valley  chasing us back to our Jeep   We got soaked  but enjoyed every minute of it   The planet we live on is fantastic    I suppose I d better start talking about com   puter programming  After all  that   s what this  column is supposed to be about     TOOLKIT        The craft of producing computer programs  has undergone a massive change during the  last decade  For those of us who have been a  part of this industry since its earliest days  it s  like walking in the Emerald City after fighting  off the Wicked W
107. SE  treeNode morecord  Bu  Ee link    rlink    treePtr  us  ue data  key   dataPtr  5   datalen  keyLen   word  end C treeNode DNE    procedure  GenBinInsert  var node  creeper  key  dataPtr  1    us  keyLen  word  data dataPtr  dataLen   word    procedure GenBinRetDelSnRec  var node    treePtr   var key   dataPtr  var keyLen   word     var data   dataPtr  var dataLen    implementation   gn a ee E a DE    procedure GenBinInsert ar node   treePtr  i    key    databtr  keyLen 1 word     a data   dataPtr  dataLen  word      if node ma then  o  Begin   nr Ru       word      You ve Seen Your Computer Run   Now Watch It Fly     IBM PC  XT  AT  386 Blue Flame II  SemiDisk Solid State Disk Emulator    Featuring    a PC DOS  MSDOS  and Concurrent DOS Compatible  m Very Fast Access  6 4 Mbits sec   a High Capacity  Up to 8 MB Per Board   s Expandable to 32 MB   m Battery Backup Option   s Hardware Parity Checking    a No Mechanical Wear     SerniDisk Systems  Inc       ii Special Intertacing 11080  W  Allen  400  m Prices Start Under  600  Beaverton  OR 97005   503  626 3104 FAX 503 643 0625       Reader Service Number 162       _Are You wee     Take Micro Cornucopia With You     Please send us your new address at  a  Micro Cornucopia     PO Box 223     Bend  OR 97709     Old Address    Name     Street  a  City     state  a  Zip Code  a  New Address    Street     City  a  State     Zip Code  s    MICRO CORNUCOPIA   49  Sept Oct  1989 81    T R  By William K  Rohwedder and Wayne L  Ever
108. STALL C 675    error 65   codbif    undefined    VIN    Edit source file  then press  lt CTRL    gt  for next error   lt ESC gt  for nenu          Finally  you can choose the best editor for your needs without  compromising performance or paying too much  And organiza   tions that want the  same  editor for everyone can pick VEDIT    for most users and VEDIT PLUS for their power users     The new family of VEDIT text editors are upwards compatible   easy to use and offer exceptional performance  flexibility and  stunning speed   3 to 30 times faster than the competition on  large files where speed really counts      Call for your free evaluation copy today  See why VEDIT has  been the   1 choice of programmers  writers and engineers  since 1980     VEDIT Jr    Unmatched performance for only  29    All VEDIT editors include a pull down menu system with  hot  keys  context sensitive on line help  pop up status and ASCII  table  a configurable keyboard layout and flexible  unlimited  keystroke macros  Edit files of any size and any line length   Perform block operations by character  line  file or column  Undo  up to 1000 keystrokes    keystroke by keystroke  line by line  or  deletion by deletion  Automatic indent  block indent and paren   theses matching speed program development  Word wrap   paragraph formatting  justification  centering  adjustable mar   gins and printing for word processing  Run DOS programs     VEDIT   A best value at only  69    Simultaneously edit up to 
109. T    The memory control block defining  RENEGADE s PSP is modified and can  be viewed with DEBUG     A gt DEBUG   D0000  60D0  60D4  0000  60D0 4D 00 00 14 02    The identifier byte prevails as 4DH   however  bytes 2 and 3 are filled with  zeros  RENEGADE has been purged  from resident memory and its memory  blocks  released  The next TSR is not  stored in this vacated area  but immedi   ately following the memory control block  containing 5AH  A    hole    develops in  resident memory and all newly installed  TSRs are placed above POPUP       CALL DOS  gt      PSP SEGMENT BLOCK             RELEASE PSP BLOCK       ENVIRONMENT SEGMENT BLOCK    FCALL DOS              E9   jORIGINAL INT 9H VECTOR  19  FF 00 F0        ORIGINAL INT 1CH VECTOR          Software packages are available that  can disable  and later enable  a resident  program  These utilities are resident pro   grams that save entire interrupt vector ta   bles prior to the installation of every TSR    To disable a resident program  all in   terrupt vector tables  except one  are  loaded in the same order they were  saved  The address of the disabled pro   gram will be excluded from the chaining  of one handler to the next  Although the  code remains in resident memory  the  program has no mechanism for activa   tion    Reenable the dormant TSR by rein   stating  in the proper order  the excluded  interrupt vector table     In Closing   As the number of TSRs continues to  multiply  a set of guidelines would be  helpful
110. The input to the  D line tells the flip flop what to do  If D  is high  clocking makes Q high and not Q  low    Grounding D does the reverse  Note  how the two flip flops are cross con   nected     Reversing Circuit   The reverser consists of 1  of a quad  CD4070B exclusive NOR gate used as a  controllable inverter  see Figure 4     When line three is high  the gate in   verts  When three is low  the gate does  not invert  The extra inverter in front of  the second section makes it produce the  complement of what the first section is  doing     TIP129  4                 Driver Transistors   The 10 000 ohm resistor in the base  circuit limits base current to something  safe  This value is not critical  The transis   tor is the Texas Instruments TIP 120  darlington    A darlington is two transistors in one  case with one driving the other  This al   lows the device to switch large currents  despite very low drive currents    The TIP 120 can switch voltages of up  to 60 volts and currents of up to 5 amps   Since in this application they are either  on or off  the only heat dissipation comes  from their own internal resistance  The 12  volt Airpax steppers we used have 65  ohm coils  These draw only 220 milli   amps from a 13 8 volt supply  The TIP   120 transistors don t even get warm    At less than a dollar a transistor  I saw  little point in using smaller or cheaper  transistors  If you have the room  use the  TIP 120s or equivalent for the reliability  an oversized componen
111. Valley Road  Valley Heights  NSW 2777  Australia                UNTS amp     By Michael S  Hunt  2313 N  20   Boise  ID 83702    208  233 7539    Keeping Order  Generically    Are you out of sorts  Are your friends out of  sorts  Well  here s the sort for all sorts  the ulti   mate generic sort   You can sort all your generics  this way      sort  shellsort  heapsort  bubblesort  in    sertionsort  and binsort to name a few   Although each of these sorting methods has its  pros and cons  all accomplish the same end   sorted data  we hope  by different means   Usually they re implemented for a specific  data structure    Each time the data structure changes  we  face the task of modifying the sort routine  In  keeping with the spirit of reusable tools  how  about a sort routine that handles any data  structure    As I mentioned last issue  one of my new  toys at work is a VAX cluster running VMS   VMS has many  many  many built in routines  for the programmer  The SOR routines make  up one set    The SOR routines let you sort or merge re   cords and files with a few simple system calls   The unit GenSort  see Figure 1  only supports  sorting of records  A full emulation of the  VMS SOR routines would require about three  to four times the source code    I hope to make clear how the routines work  so you can use them and adapt them to your  specific programming style and needs  I ll  cover them in the order of use     Ts are many ways to sort data  Quick     GenSrtBegin   This 
112. accuracy better than 60 ppm   parts per million  and a 5 1 2 digit digi   tal voltmeter  DVM   Thus  the board  may be under  300 but the equipment  necessary to calibrate it can cost thou   sands   I   m a novice when it comes to  calibration  but it seems like you could  get by with the DVM and a couple of  standard cells   Some manufacturers will  recalibrate the board for you  for a fee     and some commercial laboratories offer a  calibration service     Future Things   Next issue  I O Yet Again   I plan to  apply all the information I ve told you  about here  The example I have in mind  is to capture a voice waveform from a  microphone  display the waveform on  the screen  and then show the frequency  components of the waveform by doing a  fast Fourier transform    Until then  pleasant dreams and good  filtering    Editor s note  I ve noticed that everyone  does fast Fourier transforms these days  I  wonder if they re anything like the  much   slower Fourier transforms we did by hand in  engineering lab     Products Mentioned    Halted Specialties   PCL 712    295   3500 Ryder Street   Santa Clara  CA 95051    800  4 HALTED Outside California   408  732 1573 Inside California    Rapid Systems   PCL 712    395   433 N  34th St  Seattle  WA 98103   206  547 8311    Real Time Devices  Inc   AD1000    295   P O  Box 906   State College  PA 16804   814  234 8087 FAX 234 6864    Lawson Labs Model 140   from Personal Computing Tools  as the ACCUE 140    265   17419 Farley Road
113. address of your  code changes     System debugging  Soft ICE is a natural     Soft ICE is ideal for full source level debugging of TSRs   interrupt service routines  self booting programs  DOS  loadable device drivers  real time kernels  non DOS O Ss  and ROMs  Soft ICE can even debug within DOS  amp  BIOS     New Version 2 0    How Soft ICE Works    Soft ICE uses the power of the 80386 to sur    round your program ina virtual machine    This gives you complete control of the   DOS environment  while Soft ICE runs   safely in protected mode  Soft ICE uses the   80386 to provide real time break points on   memory locations  memory ranges  execution   I O ports  hardware  amp  software interrupts    With Soft ICE you get all the speed and power of   a hardware assisted debugger at a software price     Don   t want to switch debuggers   You don   t have to     Soft ICE can run stand alone or it can add its  powerful break points to the debugger you already  use  Use your favorite debugger until you require  Soft ICE  Simply pop up the Soft ICE window to set  powerful real time break points  When a break point  is reached  your debugger will be activated automatically     MagicCV with Soft ICE    Using Soft ICE with CodeView gives you the features  necessary for professional level systems debugging   MagicCV and Soft ICE can work in concert with Code   View to provide the most powerful debugging platform  you will find anywhere        These may be the only two products I ve seen 
114. airport eras   ing your disks  Just to satisfy my own  curiosity  I carried some disks through  the metal detector and sent others  through the X ray machine at Dulles  airport  I then tested the disks and  guess what  the data was fine    Now for the bad news  If you travel  overseas  there s a possibility that they ll  use different equipment with higher  dosages  That means there s a possi   bility your disks could be erased  But  don t worry  All airports will allow you  to have items inspected visually instead  of by X ray  The only item that should  never be X rayed is photo film with an  ASA of 1000 or higher    Here comes the worst news of all   The biggest potential for data loss  during air travel comes from vibrations  and static electricity  Under most cir   cumstances your disks will not suffer  damage if they   re packed tightly and  are well padded  But static electricity  can zap your disks in a heartbeat    At 35 000 feet  air temperature is ap   proximately  40  F with only 3  humid   ity  That air is taken in  compressed   and warmed up which brings the  humidity down to 1   With the low  humidity  there   s a lot of static electric   ity    Simply moving around the plane  will generate more  So  keep your hands  off your disks during flight    The bottom line is that U S  airport  security systems will not damage your  disks  Using a laptop computer or  touching a disk while flying can be  dangerous  If you   re traveling overseas  with disks or a laptop  
115. ams  Tele windows is the CD component of the Tele  Operating System Toolkit  Tele works on all PC s  based  on any member of the 8086 family     Demo Diskette   5  refundable with purchase   SK system kernel  50  multitasking    CD console display  40  windows  requires SK    FS file system  40  MS DOS media  requires SK   OS core  130  SK  CD  and FS     Telephone support is freely available     The Tele Toolkit is available from     Crosby Associates   P O  Box 248   Sutter Creek  California  95685    CALL NOW TO ORDER    209  267 0362 FAX  209  267 0115    Visa  Mastercard  American Express  amp  Discover Card accepted     MS DOS is a trademark of Microsoft Corporation        Reader Service Number 147    MICRO CORNUCOPIA   49  Sept Oct 1989 53       54 MICRO CORNUCOPIA   49  Sept Oct 1989             sif   dead   are food  x e  _setcolor  food_ color     else         setcolor 0    _setpixel  x y       i xe    if  dead are food   2  food   supply    9   free  temp  critter      pi critter    Femp   critter   next     void movement  void   cus Vibe  int i  x yE Sd  Ant pval  move       struct critter    temp critter     C t critter   first _oritter    ome  temp  critter t  NULL   quc d         erase critter from old posicion      me for  x   temp  critter  gt posx   1       Ea  lt   temp  rictor  gt posx  t i o ttx   A  for  y   temp  exitter  gt posy   1   oy  lt   temp  critter Posy  1    y          gatcolor  0    IA Pr Un YT  T  p gt  select  movement  a  d  move   randva
116. an expensive OS 2 develop   ment kit  The library also supports  multithread programming with no  built in limits to the number of  threads  TheLatticelinker  librarian   editor  debugger and utilities run in  DOS  OS 2 and family mode  Lattice  is the OS 2 leader     The Leader in Productivity  The Lattice C Development System  now includes the utilities that  our customers professional C pro   grammers use mostoften  Of course   the system is based upon our C com   pier editor  linker  librarian  and de   ugger  In addition  we now include  our powerful project maintenance     lt  gt    LSS  E gt     Lattice    Professional Programming Tools Since 1981  2500 S  Highland Avenue  Lombard  IL 60148                          BORAT          k on Top     tool Imk  which is an advanced  version of the UNIX make utility   Build  diff  extract  file  splat  ed  and wc enable you to easily main   tain your source files  and cxref  produces comprehensive cross   reference reports  Lbind produces  family mode executables that can  run under both DOS and OS 2   Lattice is the productivity leader     The Leader in Libraries   Our library has often been praised  forits comprehensive and sophis   ticated features  Now we include  graphics  communications  and  curses libraries  The communica   tions library supports XMODEM   YMODEM  KERMIT and ASCII  protocols  The graphics library  provides a graphic windowing  model  Curses provides a UNIX  compatible screen manager   Lattice is the libra
117. an t think of any   thing else to write  at least write in  Ex   tensive Computer Experience   This line    Figure 4    Digital to Analog Conversion          1 VOLT    Vcc    SIGNAL OUT 3    D A  CONVERTER    SERVO  CONTROLLER    ERROR AMP    pulling apart a steam turbine  freeze  when they re called upon to touch a    computer  Some have never had the    chance to use computers  and some just  aren t interested  This gives computer  users a real opportunity for employment   Industry requires some skills that  seem trivial to us  Simple things like  copying a disk or changing a hard drive  directory appear insurmountable to an  untrained user  More advanced tasks   such as batch file writing or 123 work  sheet configuration  are other common  problems  I found a user who turned off  the computer each time he wanted to  change programs  That was the only way  he could get back to the root directory   When you fill out an application at an  industrial plant  be sure you include any    FEEDBACK    CURRENT  SOURCE    CURRENT  OUTPUT    ENCODER       is enough to pique the interest of an in   terviewer  However  be sure you re ready  with a short  concise explanation of your  experience  Include any programming  languages you know and the different  types of equipment you ve used    One final benefit of industrial employ   ment is training  Industry knows that  most industrial equipment is a long way  from the computer mainstream  So they  look for people who have a basic under   
118. ases    I know I could have done better with  the pictures  I sent B amp W prints to all my  targets  If you are the artistic editor of a  slick mag  and have a choice between  techno surrealistic  visually interesting  photos from HP  Compaq  and AST   and a dull but functional B amp W pic   which would you choose     Editor s note  I m thinking      Don t count on someone else doing  your work for you  No agent or rep or  retailer is as interested in your product  as you are  Perhaps it seems obvious   but it s so very appealing to think some   one else will do the job you don t want    While the odds are against your  generating a retail market  it s not im   possible  If you have an  in  with a re   tailer  give it a try  But prepare yourself  to encounter the sort of attitude I found  while pushing Floppy Pockets   Another  invention of mine that attached to ex   isting hanging folders so you could  keep your floppy discs    Oh  never  mind  That s another story     Anyway  this stationery store buyer  described to me his recollection of a  product that a large  respectable com   pany tried to foist off on him  He knew  it wouldn t sell    The company was 3M  The product   Some silly little sticky pads  and they  only came in yellow     Stay Tuned   Has all this discouraged me  Yep    It looks as though MR  MOX is a bit  of a sleeper  a niche product where the  cost of finding buyers exceeds the price  of the product   It s still available  make  no mistake about that   
119. ataPtr   3 0 kc word      begin  if ValidSrtld srtId   then  begin EES   P ukeim le o S E uum      GetMen key   srtStatArr srtId  JkeyLen   US  gestat rro Ie Eig  dataten    tkey     key   for j    1 to ertKeyArr  ort1d   nbrKeys  do   begin       o  cif  srtKeyArr  srtId   key j   datatype E D     GenSrtDType   BE  pon     then begin Se 3  they      Chars  zec   ertKeyhz  srtTd        key 3    offset     Inc  Perhec  tkey    ofs 1    nd    lse  if  srtKeyArr srtId    wey  1  datatype       cenSrtDType   B     then begin   Lo   r   Chars  rec   eztKeyAze  ert1d       oe key 3   Loftset      ne  PtzRec  they     ofs  1    else i    srtKeyArr srtld   key  41  datatype      de   GenSrtDType   LIRE      then begin   E     tkey      Chars  rec   sztKeyArz  szt1d    er key j   offsettl     pegernec  oko   ofs l         gt   abkey       Chars  rec   sztKeyAer  srt ia           FAYOL offset     E     ne  PtrRec  they    ofs  n     c0 send c c   se   else if   srtkeyarr srtta  key     dataty   ee   GenSrtDType C      then  begin QU S      ey   Chars  rec   artKeyAr    _ Ino  PtzRee  they  ofs  1     ET it  srtKeyArr srtld    GenSrtDTyp  ST       MICRO CORNUCOPIA   49  Sept Oct 1989 79       srtStatus word     m srtldo  word     GensrtRetrlever  rec  p    srtStatArr  srt1d   srtState         Gensxtst_ RET the  f  srtstatrs  srtidl s nbrRec  gt  o    683000    SK DOS   A 68000 68020 DOS containing everything  you expect in a DOS   on line help  multiple directories   floppy and hard dis
120. ate  1 inch    then the y coordinate  0 9 inch  and  moves to that position   This x y order for  parameters remains consistent for all  PostScript operators     rlineto stands for  relative line to  and  constructs a line path to a point 0 inches  along the x axis  and  0 5 inches along the  y axis  relative to the point we moved to  in the third line of code  You can also use  an absolute coordinate version called  lineto  But I prefer rlineto since you never  really have to know where you are    By the way  don t yield to the tempta   tion to code something like  NewPath    PostScript s case sensitivity will shoot  you down in flames    stroke actually draws the line  until  now it was defined  but invisible  As you  can see from the example  a path need  not be connected  Finally  showpage out   puts our efforts to the printer   at least it  does in theory     The Un text File l   PostScript interpreters take pure  ASCII text  I made the rash assumption  that my trusty Turbo Pascal editor could  generate Po  tScript programs  Well  it  can   except for the last byte    When I found that  even a single line  program  showpage  wouldn t execute  I  dug out my documentation  always a  last resort  and found the answer  Post   Script files require a  D end of file mark  instead the more familiar MS DOS  Z   You can still use your favorite editor  in  ASCII mode  to write PostScript pro   grams  but you ll need to take an extra  step     18 MICRO CORNUCOPIA   49  Sept Oct 1989
121. atiCard with UniForm PC   8  Drive adaptor   External 5     drive cable    Compaticard Il by MicroSolutions    Two drive version of the CompatiCard  sorry no  8  or single density    CompatiCard Il   CompatiCard  I with 1 2M or   3   internal drive    Megamate by MicroSolutions   This is the 31 2  drive package that you ve been  waiting for  Run 720k or 1 44M diskettes in this  attractive external drive  Comes complete with  its own controller card  Easy to install  just plug  it into your PC or AT and go   Megamate   329 95    MatchPoint PC by MicroSolutions    The MatchPoint PC board for the PC XT AT  works with your standard controller card to let  you read and write to NorthStar hard sector and  Apple Il diskettes on your PC  INCLUDES a copy  of the UniForm PC program  as well as utilities to  format disks  copy  delete  and view files on Apple  DOS  PRODOS  and Apple CP M diskettes    MatchPoint PC Board  179 95    MatchMaker by MicroSolutions    Now you can copy your Macintosh diskettes right  on your PC XT AT with the MatchMaker  Just  plug your external 31 2    Macintosh drive into the  MatchMaker board and experience EASY access  to your Mac diskettes  Includes programs to  read  write  initialize  and delete files on your  single or double sided Mac diskettes   MatchMaker Board   MatchMaker w External    Mac Drive   325 00    Hard Disks for CP M systems    Pep up your CP M computer with hard disk per   formance  Our simple to install kits allow you to  connect up to
122. came active    A few lines in the AUTOEXEC  a program to  interrogate the state of CD via a BIOS call  and  suddenly your PC was smart enough to know if  you were sitting in front of the screen turning  the power on  or calling it over the modem  If  modem  then CTTY COMI turns control of the  PC over to the phone line    You probably won t remember the article   because it didn t appear  I had even offered to  sell the PC boards and parts kit  with just  enough markup to cover the cost of the PC lay   out  I was convinced that this was something  that people would want to do     Ts story begins with the unsolicited ar     Why I Designed The Product   I had recently worked at two separate loca   tions  one north of home and one equally far  south  After a full day in the south  I didn t feel  like driving north  so I arranged for the installa   tion of a modem operated switch at the north   ern office  which only had one phone line    I also put a simple appliance timer on the  modem only  Turning it on from 7 p m  to 7  a m  gave me access to the office PC  and let the  one phone line do double duty  daytime voice   nighttime data  It was great    This was not revolutionary technology  but I  was sure that if it was easy and convenient   more people would want to take advantage of  it  Besides  there seemed to be no one else who  had done it right    Black Box Catalog sold something called a  Line Operated Relay for  100  but it was made  for a teletype machine  You had to w
123. ccelerate or stop  smoothly    The RC time constant of R1  R2  and  C1 determines the 555 s frequency of  oscillation  When C1 reaches 25 of Ve   the capacitor discharges and another  cycle begins    Since this fixed internal voltage ratio  determines the frequency of oscillation   changes in supply voltage will not affect  the clock frequency  Once you determine  the values for R1  R2  and C1  the supply  voltage can be anything between 5 and  15 volts    The 555 circuits speed  frequency   contro  works by simple parallel re   sistance  With lines one and two low  no  charge current flows to C1 and no oscil   lation occurs  The stepper sits idle  the  current passing through its coils acting as  a brake   Yes  I know what you re think   ing  I ll handle that problem later     We now make the time honored prin     ciple of parallel resistance work for us   R1 gives one charge rate  R2 gives one  that s faster  Thus  if line two is high  the  motor will revolve faster than if line one   R1  is high  If both are high  the charge  rate is much faster since the combined re   sistance of R1 and R2 is lower   For example     R1  Line one    68 000 ohms  R2  Line two    33 000 ohms  Line one high   34 Hz  Line two high   62 Hz  Both high   84 Hz    I would use small ten turn  screw  driver  adjustable pots for R1 and R2   This makes the inevitable after construc   tion fine tuning much easier    The 555s have one other peculiarity  that bears watching  When the output  pin 3 goes f
124. ce  New critters have an in   creased chance of moving in a particu   lar direction    If a critter reaches a certain age  and  has not yet reproduced  it dies of old  age  Critters also die from starvation   when they have a zero energy level      Details   Take a look at the constants I   ve de   fined at the beginning of the code   These 20 values specify the program s  behavior  and changing them can radi   cally alter the lives of the critters  Try  changing just one value  to see what  happens  Changes in the values for  food value  move cost  max mutant   and max age make significant varia   tions in the way critters live and die    If you re so inclined  you can change  the value of dead are food to a nonzero  value  This makes dead critters turn into  food  and radically changes the environ   ment    After initialization  the program will  enter a four part loop containing  repro   duction  which also includes dying    movement  which includes eating   food    Continued on page 55  52 MICRO CORNUCOPIA   49  Sept Oct 1989    start  crit  nt start food      nt repro energy    ae age    const int       mutate parent    dead i are  food                      You asked to see more       And Tele created windows to your world    Berry Computers presents The Tele Toolkit     a complete Operating Systems Kernel    Fast pop up windows  No change in programming model   Transparent use  Those are just some of the advantages Tele  windows will give you     Tele windows work like 
125. ce to reflector dis   tance and d   is the reflector to detector  distance  No product  just the inverse  square of the sum of the distances    As Mr  Nansel has pointed out  we  are measuring power per unit area  The  dimensional analysis must be consistent  with these units  The square of d  a  length  is consistent with area  but the  fourth power of d is not    Neither of the two parts of the article  published so far have made it clear just  what the upper and lower range limits  are  So it isn t possible for the reader to  estimate the limits of sensor input and  thus determine whether he needs a log   rather than a linear  amplifier    I hope  upon reflection  Mr  Nansel  sees the light  puns intended      Don E  Sweet  2161 Snowberry Road  Tustin  CA 92680    Editor s note  When I read Bob s article  for the first time  my physics antennae went  up  too  So I gave him a call to set him  straight on inverse square fall off  Neither of  us could convince the other how wrong he  really was  so I headed off to the library to  check out Bob s reference to something    called the radar equation    I dusted off an ancient tome on radar   and there it was   an inverse fourth power  relationship  Now whether this equation is  empirical or founded in theory  I can t say   And it still feels wrong to me  Anyone have  anything to add to this powerful con   troversy   The airlines are certainly hang   ing on this one    LCF     To List Or Not To List   I have enjoyed your magazine
126. ceive 7 FREE  disks of our best public  domain games        XT SYSTEM   Includes  640K RAM  serial parallel   game ports  clock calendar  101 key  keyboard  turbo switchable  slide cabi   net  power supply  Graphics Combo  video card with amber or green mon   itor  Full 1 year warranty  Ask for  FREE assembly and testing   4 77 10 Mhz with 2   360K floppies                725  1 FD and 1 Miniscribe HD   4 77 10 Mhz with 20 Mb HD     929  4 77 10 Mhz with 30 Mb HD     955    AT SYSTEM  Includes  640K RAM  1 2 Mb FD   1 44Mb FD  40 Mb Miniscribe 3650  HD  serial parallel game ports  clock   calendar  101 key keyboard  turbo  switchable  slide cabinet  power sup   ply  Graphics Combo video card with  amber or green monitor  Full 1 year  warranty  Ask for FREE assembly and    testing     610 Mhz                    1249  612Mhz                    1295    Color options for any kit  includes  video card and monitor     GGA Colon  iio ie cco pias 175  CGA EGA Color           ee  380  VGA  analog  with  Mitsubishi monitor           650  CGA EGA EGA 480   Multisync               eee 450       Parallel  LPT 1  2 or 3   Serial Port Card   1 installed  Switchable Com 1  2  30r 4    18    Kit for 2nd SerialPort            18  Multi 1 0   Serial Par Game              32   2nd Serial Kit              L  20  Multi Drive Controller            39   Supports 1 44  720K  1 2  360K drives   PC XT   Floppy Controller               19  Multi function 1 ser par    clk game 2 floppy             47  64
127. ces Ltd    Surrey  England TEL   01  940 9480  FAX   01  948 2851    La serGo  Inc  TEL   619  530 2400  FAX   619  530 0099  9235 Trade Place  Suite A  San Diego  CA 92126    LaserGo  GoScript are trademarks of LasarGo  Inc  PostScript  is a registered trademark of  Adobe Systems  Inc  All other product names are trademarks of their manufacturers     Reader Service Number 144    MICRO CORNUCOPIA   49  Sept Oct 1989 41          Low Cost l O For The PC    A D Boards Hit The Cheap Seats    Bruce checks out three inexpensive mul   tipurpose I O boards to see if they measure  up  and if so  how fast they do it   Plus he  covers signal conditioning and board test     ing     how to build your own hardware   from chips  boards  wires  and solder   If no one makes what you need  or if  you re trying to save money  or if you  want to learn how to build circuits  then   rolling your own    is a great method    Often  though  it   s almost impossible  to justify building it yourself   If they  make it in Taiwan  a saying goes    chances are you can buy the board built  and debugged for less than the cost of  parts     Low cost data acquisition boards for  the PC are a recent addition to the  it s  cheaper to buy it than build it  phenome   non  Over the years  l ve watched the ads  for analog to digital  A D  cards  and  I ve suddenly started seeing products in  the  300 range which are too impressive  to pass up    In the first part of this article  I ll dis   cuss some of the feature
128. ciates shared a platform in a joint presen   tation to a users group  It was a meeting of the  Communications SIG of the Capital PC Users  Group  SIG chairman Walter Nissen s diplo   matic skills proved equal to the formidable task  of arranging the simultaneous appearance of  the ARC rivals    Nissen had carefully enjoined both speakers  from attempting to rehash the SEA v  PKWare  lawsuit at the user forum  Katz and Henderson  accepted his strictures    I called Nissen immediately after the confer   ence was held            There were only the most remote  references to the lawsuit   he said     al   though many in the audience seemed  curious about it       The two combatants apparently  spent most of their time discussing the  future of archiving and compression  utilities    According to Nissen  Katz and  Henderson agreed that there would  probably be some movement toward  compatibility among archiving pro   grams  But  there were no signs that  either party was prepared to move in  that direction    Katz  of course  is bound by the  terms of the lawsuit settlement to re   frain from producing programs that  work with ARC format archives  unless  he and SEA were to agree on a license  arrangement   Although Katz has  placed his new ZIP format in the public  domain  Henderson did not specifically  address it    Nissen thought compatibility didn   t  interest the speakers as much as it did  the members of the audience  From the  speakers    perspective  it   s easy to unde
129. command or file name    Until computers routinely offer DWIM capabil   ity     Do What I Mean    we ll have to watch  what we type    DOS is not particularly helpful here  Sure   you can reissue or edit your last command  but  unless you use DOSEDIT or CED  all the prior  commands are history    Steven Calwas of Modern Software has  entered this arena with his own command line  editor  Anarkey  Now at version 2 00  Anarkey  boasts a mix of features    The Up and Down arrow keys sequentially  retrieve command lines from the command  buffer  which is a standard approach among  command line editors  However  Anarkey also  lets you enter the initial characters of the com   mand you want to retrieve  it will search the  history buffer to retrieve the command you  started to enter  The command line history  buffer can be written to  or read from  disk    The command completion feature of  Anarkey extends to filenames as well  matching  on a file as soon as you have entered enough  characters to get a unique match    You may stack commands on a single line    Your input strings can have up to 255 char   acters    You may use aliases  including the standard  replaceable DOS parameters   1 through  9     If these features are not enough  you may  enjoy using Anarkey to reconfigure your key   board and retrieve environment variables for  editing    Anarkey can be reconfigured  too  Calwas  provides a utility to edit Anarkey   s defaults  Its  standard history buffer is only 500 charact
130. ction 19H to get the cur   rent drive number  Then I call DOS in   terrupt 21H  function OEH which selects  a drive and returns the number of logi   cal drives  Finally I figure out the num   ber of the first hard drive    Once I know the designation s  of  the hard drive s   I check its status  I do  this by calling DOS interrupt 21H  func   tion 1CH   get drive data  If the func   Soo Y od S o tion returns FFH  the drive is not valid    7 GET ADL THE DRIVE INFO  m If there s no FFH  I add the number  b  to the valid drive list  Since I know the  drives I   m checking are hard drives  I  don t have to bother about checking the  drive type    The routines store all the inf  rimation  in the global variable  drives   I   ve in   cluded lots of remarks so you shouldn t  have much trouble reading the code    The routines could be improved by  thoroughly examining each drive  e g    for color  noise level      I ll let you fig   ure this out  As the code stands  only  RAM disks aren t correctly identified           Jeffrey Donovan  1515 Santa Barbara St   A  Santa Barbara  CA 93101               MICRO CORNUCOPIA   49  Sept Oct 1989 93    MICRO CORNUCOPIA    BACK ISSUES       Is There A Gap In Your Info   Fill in your Back Issues of Micro C today     ISSUE  1  8 81   Power Supply  1 2 PFM PRN  16 pages    ISSUE  2  10 81   Parallel Print Driver  Drive Motor Control  16 pages    ISSUE  3  12 81    4 MHz Mods  Configuring Modem 7  Reverse Video Cursor  FORTHwords Begins  16 pages   
131. cuit in Figure 1 for  16 bit data transfers  Another set of input  and output chips could be wired to  IOW302 and IOR302 for control  to pro   vide data ready  end of conversion   strobes  or handshaking capability  The  IBM AT manual recommends  a maxi   mum of two low power Shotty  LS   loads per line   The outputs of tri state  chips in the high impedance state do not  draw enough current to consider them as  loads on the bus lines     Construction   We wirewrapped the interface on a  Vector Electronic Co  Model 4617 1 plug   board  The board comes with a paper  layout of each side  a universal bracket   and an instruction sheet containing the  AT bus pin names and locations    We soldered the power and ground  wires  not shown in Figure 1  to the  wirewrap pins using 22 gage wire  At  each chip we also soldered in a 0 033 uF  bypass  Then we wirewrapped the signal       Figure 1   Circuit Diagram Of Sixteen bit AT Interface  TUO    PORT ADDRESS DECODER  7418139    DATA OUT READ    4                DATA IN  19 ours 18  7415244  2     ing    18  17 OUT  IN1  OUT2 IN2  OUT3 IN3  AL          1joj  o    74 9574 74LS244    d         gt     o       Ol  N    o     A   gt   a       MICRO CORNUCOPIA   49  Sept Oct 1989 83    lines point to point to reduce crosstalk     I O CS16   The IBM AT manual defines the I O  CS16 line as an input to the AT bus  which  indicates to the system that the  data transfer is a 16 bit  1 wait state  I O  cycle   The manual does not say why it s  impo
132. d   m TTL Monitor 12    w 20MB Hard Disk  40MS     Assembled  amp  Tested IBM9 AT Compatible  MS DOS   OS 2    amp  UNIX Compatible  m 80386 20 8 MHz Norton V4 0 SI 22   E Phoenix BIOS   B 1MB expandable to 16MB RAM   W 80387 Coprocessor Socket   m 220W Power Supply   m 1 2MB Floppy Drive   W Ports  2 Serial  1 Parallel  1 Game   m Dua  Floppy Dual H D  Controller   m Monochrome Graphic Card   m 101 Key Enhanced Keyboard   m TTL Monitor 12    m 40MB Hard Disk  28MS            ODUOMS Airie rhoaa saan we PPSS RENE SO Call  DplOMSS uc dei s inc eode phe EN ER PI Ren Call    ODpJOHSUcusesickbisek etes n vete ERE Call   1 199   1 495     1 995   J J 5   DISK DRIVES   MONITORS   PC XT  PC AT  Fujitsu 360k                      Citizen CD 120                149 Samsung amber                79 640k TurboMothrbrd         80 McTek 286 20MHz          Kingtech CRT Portable Kits   Fujitsu 1 2MB   Citizen CD 180                189 Samsung EGA color      359 10MHz TurboMothrbrd      85 McTek 286 12                  259 XT AT  power supply  case  LEE HPLASAR Serial2        1699   Samsung RGB color      259 Multi 1 O w disk contrir    59   McTek 386 16SxX             429 keyboard  monitor   Teac 1 2MB           Epson LX 800               219   NEC Multisync               559   640k RAM card                39 McTek286 20MHz    699     cene joel  us  Teac 3   1 4MB               89   Epson LQ 500              379   Sony Multiscan                619 2MB Expansion card       89      McTek 386 24MH
133. d  Benchmarking The PCs  104 pages    ISSUE  30  6 86    PROLOG On The PC   Expert Systems   Logic Programming   Building Your Own Logic  Analyzer   256K 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    ISSUE  32  10 86    Public Domain 32000   Hardware And Software  Writing A Printer Driver for   MS DOS   Recover A Directory By  Reading  amp  Writing Disk  Sectors   96 pages    ISSUE  33  12 86   ISSUE  34  2 87   ISSUE 435  4 87   ISSUE  36  6 87   ISSUE  37  9 87   SOLD OUT    ISSUE  38  11 87    Parallel Processing   Laser Printers  Typesetters  And Page Definition  Languages   Build A Graphics Scanner  For  6  Part 2   Writing A Resident Program  Extractor In C   96 pages    ISSUE  39  1 88    PC Graphics   Drawing The Mandelbrot And  Julia Sets   Desktop Graphics   Designing A PC Work   station Board   Around the TMS 34010   96 pages    ISSUE  40  3 88    The Great C Issue   11 C Compilers   Writing A Simple Parser In C  C    An Object Oriented C  Source Level Debugger For  Turbo C   96 pages    ISSUE  41  5 88    Artificial Intelligence   3 D Graphics   Neural Networks   Logic Of Programming  Languages   Applying Information Theory  96 pages    ISSUE   42  7 88   Maintaining PCs   Keeping Your Hard Drives  Running   Troubleshooting PCs   XT Theory of Operation   Simulating A Bus   Ray Tracing   
134. d assorted text data   bases flow easily between brain  and computer  9 9  David M  Kalman   Editor in Chief  Data Based  Advisor  September  1988     E QEdit supports 101 key key   boards  EGA 43 line mode  and  VGA 50 line mode   E Great for use with laptops     QEdit edits files entirely in memory   saving drain on laptop batteries   E Compact   Even with all these  features  QEdit requires less than  50k of disk space    Full 30 day  money back guarantee    System Requirements      1   QEdit requires an IBM PS 2  PC AT  PC XT   PC  PC Jr  or compatible  Minimum system  requirements are 64 KB of memory  PC DOS  2 0 or MS DOS 2 0 or greater  50 KB of disk  space  QEdit runs GREAT on floppy based  systems and laptops     Reader Service Number 127    6 6 The editor s speed  windows   and other features make it among  the best text editors I   ve ever  used  99  George F  Goley IV   Contributing Editor  Data Based  Advisor  September  1988     To order direct call      404 428 6416    ome   ESS i       Add  3 00 for shipping    10 00   for overseas shipping  UPS  and      DAY AIR available within    the U S  for ONLY  5 00       COD       s accepted   please add  3 00      Georgio  residents add 4  sales tax      biens tia cna Rs didicit dud    SEMWARE   730 Elk Cove Ct  e Kennesaw  GA 301 44    QEdit and SemWare are trademarks of  Applied Systems Technologies  Inc      1989 Applied Systems Technologies  Inc        MICRO CORNUCOPIA   49  Sept Oct 1989 19    translates buffer i
135. d by means other than UPS Surface will be at the prevailing carrier rate plus    5 00 surcharge  All orders under  20 subject to  2 00 fee  our minimum order is  10   shipping  All orders shipped FOB Santa Clara  California  Orders to APO and FPO addresses are   shipped via U S  Mail  i    1989 HSC Electronic Supply a Halted Specialties Company  Reader Service Number 11       MICRO CORNUCOPIA   49  Sept Oct 1989 13    A2D first clears the SPI data transfer  flag by reading the SPI status register  It  then pulls the A D chip enable line low  by clearing bit 3 of MCU port C  Next   the A D moves the channel number to  the high nybble as expected  The MCU  transmits the channel number to the  A D by writing to the SPI data register    The loop at SPIFLP simply waits for  the data transfer flag to go true  indicat   ing that the two chips have exchanged  data  The MCU then pulls the chip  enable line high  deselecting the A D  Fi   nally  the byte transferred from the A D  loads into the ACC and control returns to  the calling program    This  explains why the A D always  lags the MCU by one conversion  Each  SPI operation exchanges data between  the MCU and the A D  Following the ex   change  the A D reads and converts the  voltage  on the newly selected channel   The value  it reads on that channel isn t  returned to the MCU until the next SPI  exchange     Burning And Testing   Once you ve written the software  it s  time to  download the program into the  MCU s EPROM  I hook
136. d turns on the output    The PLC s ROM contains the execu   tive operating program  In many ways   this executive can be compared to CP M  or MS DOS  It handles communications  between the user program and the hard   ware  The executive program also han   dles math and timer functions  and trans   lates ASCII text     Digital Inputs   The most common industrial input to  a PLC is 120 VAC  Other common inputs  are 24 VDC and 5 V TIL  All these in   puts are handled the same way  only the  components change    The circuit drawing in Figure 1 shows  a common way of interfacing process sig   nals to the PLC bus    As the 115 VAC signal comes into the  card  resistors R1   R2 lower the voltage   Then the AC signal goes to full wave  bridge D1 for conversion to DC  Next R3  and C1 filter the signal and D2  a Zener  diode  limits the voltage to the relay    The operation of the LED confirms the  relay coil is energized  A set of contacts  on the relay allows a signal to flow to the  input of a quad bilateral switch    A typical input card will have 16 of  these inputs  It will have 4 of the quad  bilateral gates  which the CPU will scan  as a 16 bit word  Energized inputs will  read as 1 and unenergized inputs will  read as 0     Output Cards   Take a look at Figure 2  When an out   put is required  the CPU will send a sig   nal to the card  This signal drives the  base of T1 and energizes the relay coil   The LED confirms that the relay coil is  energized    D2 bleeds off the rever
137. dd sales tax  PS 2 trademark of IBM Corp     All our products come with a 30 day money back satisfaction guarantee  Not copy  protected  To order or receive additional information just call       1 800 662 8266    V COMMUNICATIONS  INC   3031 Tisch Way  Suite 802  Dept  M3  San Jose  CA 95128  408  296 4224    Reader Service Number 62                   40 MICRO CORNUCOPIA   49  Sept Oct 1989    0000 60D0 4D OE 06 14 02 D3 E8 8C   DA 03 C2 A3 1C OB B8 00  0000 60E0 CD 20 22 08 00 9A FO FF   OD FO 8C 02 42 05 99 02    The memory locations beginning at  0 60D0H represent the memory control  block for RENEGADE s PSP code   Another memory control block appears  three paragraphs below  It begins at  0 60A0H and also points to RENE   GADE s PSP segment at 060EH  This  memory control block identifies the en   vironment    The information stored here includes  the path and file name used to load RE   NEGADE  Removing a resident program  requires the release of memory blocks  belonging to the environment and the  PSP code    We re ready to execute EVICT  Figure  5   the program to purge RENEGADE  from resident memory  EVICT is an un   sophisticated program and its sole pur   pose is to demonstrate how to remove a  single resident program from DOS 2 10    For EVICT to work properly  RENE   GADE must be the only TSR installed  If  necessary  reboot the system  Use the  DEBUG  A  command to enter EVICT   The program restores the original vectors  for Interrupts 9H and 1CH  then releases  
138. defend nor attack the widespread use  of TSRs  but rather to explain thoroughly  how they work  I ll present two ex   amples  one well behaved and the other a     pully     We ll also explore removing a  resident program without rebooting the  system         and Microsoft ushered in a new    Resident Versus Transient Memory  COMMAND COM is divided into  three components  the resident  initializa   tion  and transient portions  The resident  portion is loaded in lower memory im   mediately following IBMDOS COM  In     terrupt vectors 21 24H point to routines  within the resident portion  This portion  also contains the bulk of the error re   covery messages  Once loaded  the resi   dent portion remains in memory    The initialization portion of COM   MAND COM loads immediately above  the resident portion when the system  boots  This portion initially takes control  and displays the prompts for the date  and time  It also runs the AUTOEXEC  batch file  if one is present  The first pro   gram from disk overlays this section of  memory     The transient portion loads in the high      end of COMMAND COM and can over   lay one interim program with another   As resident connotes permanency  tran   sient implies temporary  The responsibili   ties of the transient portion include dis   playing the DOS prompt and reading  as  well as executing  commands  The tran   sient portion also contains the routines to  load  COM and  EXE files into the appro   priate memory location for executio
139. derstand we ll soon see a new 60 MHz 486   How soon  is open to speculation   There s a good chance Intel will run  into timing problems  after all the chip will be doing a fair  number of things in a short amount of time  I know a lot of  silicon engineers  hard rock miners  who d be hard pressed to  do that much stuff that quickly    Don t misunderstand  I don t have a pick to grind  Intel can  make chips fly fast and furious  but I reserve the right to finish    If you thought Borland s popup product  was great just wait until you see    OpalFire s MyFLIN for Pascal     MyFLIN is a TSR program that captures procedure and  function details directly from the screen while you are  programming  It saves this information in an indexed database  for instant recall at any time you need it     MyFLIN vill save you hours of searching thru pieces of paper  looking for parameter details when calling a procedure  Simp   ly type part or all of the name and press the hotkey  MyFLIN  will popup over your source code and display the nearest  named description you have stored in your database  complete  with parameters and comments     To save a new description  positon the cursor on the procedure  name  popup MyFLIN and press    A    to add  The details will  be captured from the screen and saved with a single keystroke  and you can add a comment line as well     Price  69 00    5 00 P amp Post     Visa   Mastercard   American Express are accepted     OpalP ire Software Inc    329 North S
140. digital value of the converter  This  error is specified  in both differential con   verters and differential amplifiers  as the       common mode rejection ratio  CMRR   A    CMRR of 10   means that the device  processes one volt of common mode as  though it were a differential signal of 1  microvolt at the input    Often  instrumentation amplifiers  op   amps designed for use in a differential  configuration for instrumentation  have a  much better CMRR than an A D con   verter  In addition  they ll take a differen   tial signal and turn it into a voltage with  respect to ground  Thus  with one device  you reduce the common mode error and  allow a single ended board to read a  differential signal     Input Impedance   There s another reason you may want  to use an instrumentation amplifier at the  front end of your system  An instrumen   tation amplifier has an especially high  input impedance  The input impedance  is what the amplifier looks like to the cir   cuit it measures    In effect  when you measure some   thing  you attach a resistor to ground at  the point you re measuring  If the value  of the resistor is low  a lot of current will  be drawn from the circuit and the be   havior of the circuit will change  This  means you won t see the real behavior of  the circuit while you re measuring it    It also means that the ideal input im   pedance of the system you use to per   form measurements should be infinite so  you don t draw any current from the cir   cuit being 
141. ding Bend   by tele   phone     Unfortunately  I have found many  staff who don t understand their pro   duct range  a lot who believe that they  do  some who make an effort to learn   and some who have been very good   Perhaps the good ones get promoted to  managers  Salesmanship is more impor   tant than technical expertise on the shop  floor  Anyway  my original comment  was aimed at the pretenders    To other matters  I see that DJT of  Micro C  the tall skinny guy with the  startled expression  is suggesting that  the answer to the Ultimate Question of  Life  the Universe  and Everything is a  variable   See  Culture Corner  Issue   45   A daring contention  Just when the  world was getting comfortable with 42    Still  the idea does have consistency  with the Uncertainty Principle  Unless   of course  with your blossoming confi   dence you may task Larry to look at  Schr  dinger s cat and declare that the  Uncertainty Principle is not a sure  thing  Avant garde stuff  Obviously   Micro C thinks it can make waves in the  mainstream of contemporary publica   tions  But be mindful of the puddles  you are leaving behind    Speaking of changes  I am glad the  full frontal is back to the fr  nt so to  speak  Thanks for the CCCCs  but one  didn t taste too good  Could it have  been a Buffalo chip cookie    Having reread this letter  I hope  there are no sensitive Sylvester Stallone  fans out there  I may be running the  risk of another nasty gram     Bevin J  Pettitt   84 Sun 
142. double up one set of   lt  gt    s so they d print   mainly because  Laine s article arrived late  as usual    The problem here is in the table  NewlIntTable  bottom of page 48   Micro  C s program ate the brackets      lt  gt       around the table entries  and the inter   rupt number  which is the first member  of the structure  A correct printing of  NewlIntTable is in Figure 4     References    Solution Systems   541 Main Street  Suite 410   South Weymouth  MA 02190    800  821 2492 Ext  351    617  337 6963 MA and outside U S           RABBIT    GAS PLASMA PORTABLE    CHICONY    LAP TOP    MCTEK    EGA PORTABLE       xLCD PORTABLE  ALSO AVAILABLE      80286 12 CPU     640K MEMORY  EXPANDABLE TO 4MB    DUAL SPEED 6 12 MHZ  0 WAIT STATE    LANDMARK 16 MHZ      5SLOTS  EXTERNAL 5     25 PIN DRIVE PORT      CGA MGA EGA 640x400  4 GRAY SCALE    101 KEY ENHANCED KEYBOARD     GAS PLASMA DISPLAY     1 PARALLEL  1 SERIAL     200WT AC 110 220 AUTOSWITCHABLE     EGA MGA MONITOR PORT 9 PIN     HARD DISK FLOPPY DISK CONTROLLER      80286 16 CPU  0 WAIT STATE      NEAT  TURBO PAGE MODE SPEED UP  TO 21 4 MHZ     1MB ON BOARD  EXPANDABLE TO  5MB  EMS V 4 0      CGA MDA EGA  640x400  4 GRAY  LARGE GAS PLASMA DISPLAY     1 2MB FLOPPY AND 40MB HARD DISK      B4   FN  ENHANCED KEYBOARD   e 1P 2S  D 9 and D 25   REAL TIME CLOCK     100W  AC 110 220V SWITCHABLE     14 8  x 13 4  x 3 7   15 4 LBS      CARRYING BAG w SHOULDER STRAP      286 12 CPU  LANDMARK   16MHZ     640K DRAM  EXPANDABLE TO 
143. dula and  older Logitech Mice   But I was ready for some   thing new    Also  I had decided to get a new PC Tech  Mono II board and double page display  This  display can support at least 160 columns of  text  While no other editor I knew of could  handle that size of display  the ads for Brief  claimed that it could drive displays up to 255  columns by 127 lines  That was enough for me  to dig in and try it     What Is It    How about a brief overview  Brief is a text  editor with a very powerful macro language  It  can display multiple windows on the screen at    MICRO CORNUCOPIA   49  Sept Oct 1989 57    one time  each showing a different  or  possibly the same  file  It is especially  well suited for programming  with  things like automatic indenting and  automatic compilation and error display   it can make any compiler into a   Turbo  compiler     Although Brief has tons of features  and is very fast  its most important  aspect is the macro language  This is not  just a simple keystroke recorder  The  Brief macro language is full enough that  many parts of Brief itself were written  as Brief macros  You can write your  own macros to extend Brief  or modify  existing parts of Brief   It includes the  source code to the parts of Brief written  in the macro language      Review    I could go through a standard ma   gazine review form and tell you how  many seconds it takes to save the   standard  file  what the maximum line  length is  how many windows it can  display  and
144. e 24  bidirectional I O pins can drain up to 25  mA  the  HC705 interfaces directly to  LEDs  beepers  LCD displays  and other  low current devices    You can run this chip with an external  crystal of up to 4 2 MHz  Vda   5 0 volts    the internal bus runs at half the crystal  frequency  I O and option registers   special purpose addresses  give you  software control of the CPU s  RAM EPROM layout  I O ports   counter timer  and communication sys   tems     ee0e0ae0ertr7r7 777770 068  59 0 09 0 9 7A rn       0  peeeeersrn nr rs 7 2 0      eeeoeeseveoenrsrnenrtanannheeoeee  eeeeeonrnrnr ne 020 08      e  e  e   q       e                    t   e            e     T       eoevcecerwvweotcaoeve       e          c   8        t  4     c           e     D   i           n                     i  NE    ABA A e s aae sint ca el FM    By Karl Lunt    4730 W  Menadota Dr   Glendale  AZ 85308   602  869 6146  work    602  582 5863  home     v     06   9      699  90909    EY eeeeeece  o      Proto Board for Example Project   Small  Right     The on board Serial Communication  Interface  SCI  handles asynchronous se   rial I O  though you must provide your  own RS 232 level shifting   12 V to  12  V   You control baud rate and port setup  through I O registers  A Serial Peripheral  Interface  SPI  adds high speed syn   chronous I O  up to 1 05 Mbit sec    You can use the internal 16 bit  counter timer system as part of a real   time clock  frequency counter  or  waveform generator  You can
145. e available on  issue disk  49   6  or the Micro C BBS     Next Time   One of the problems with using the  GenBinTree  see Figure 2  unit is that if  you insert the data into the tree in a  somewhat sorted order  either ascend   ing or descending   the tree begins to re   semble a linked list  Insertion times be   come lengthy and the sort performance  goes to heck  If you keep the tree  balanced  then search and insertion  times get better    The AVL method  named for  developers Adelson Velskii and Landis   is one way of maintaining height  balanced trees  Height balancing does  cost  It requires additional processing  time to keep the tree balanced  A  balance factor  the difference between  height of the right and left subtrees of a  node  must be stored with each node    A programmer has to weigh the  advantage of faster access speed  i e    data retrieval  against the comput   ational and storage overhead of keeping  the tree balanced  The height balanced  tree is ideal when you ll build the initial  tree and then make very few insertions  and deletions  but make many queries    Join us next time when Joe Reader  says   Is that really a full blown  generic  data  AVL  height balanced tree tool   box   And Michael  Midnight Program   mer  Hunt replies   Yes siree  it really      mP    1S            78 MICRO CORNUCOPIA   49  Sept Oct 1989          RootArr   array 1  MAX SRTS  of treePtr     NextSrtId   word   gt   us vord  AE M TUS  T done   boolean      begin ue E Ss    
146. e the port  address  and the IOR or IOW  lines  it  must accept data from the data bus  or  present data to the data bus during the  active IOW or IOR     82 MICRO CORNUCOPIA   49  Sept Oct 1989    Designing 16 bit interfaces is straight   forward if you follow two rules  connect  the I O CS16 feedback  shown in Figure  1   and use only even numbered ports     Circuit Description   We used the inverters in the 74LS04 to  generate logic one inputs to the 74LS30  NAND gate for the chosen port address   The correct I O port address produces all  ones at the 8 inputs to the NAND gate  which in turn produces a logic zero at its  output  pin 8  The decoding includes the  AEN bus line to prevent DMA transfers  from activating the interface    The IBM Technical Reference for the  AT  a lot of money for very little informa   tion  assigns port addresses hex 300  through hex 31F to their prototype card   This would appear to be a good place to  put experimental interfaces  Hex 0 to hex  1F is 16 even numbered input ports and  16 even numbered output ports  The in   terface circuit in Figure 1 decodes only 4  input and 4 output ports    Enabling the 74LS139 2 to 4 decoder  chip requires a logic 0 at the 1G or 2G  input  The 74LS32 OR gates supply this  logic 0 only when the output of the 8   input NAND gate is low and either IOW  or IOR is low  thus enabling the decoder    We decode address lines A1 and A2   along with IOR IOW  to choose one of  the eight devices  The eight outputs of  
147. eal problem   we just shift left by four  bits after loading a point into the data  byte  instead of by one    The second difference makes life inter   esting  Instead of creating one file  we  need four  one for each layer of the color  separation  But how do we choose the  color intensity for each layer     Color Assignments   I would have liked to treat the color  assignment a little more intelligently  but  i s an inherently stupid process  Shift  gears and think about character genera   tion for a moment  Once you ve defined  a matrix of dots for the letter  A   you  can t just add one and get  B   I don t  think you can say  puce   1  either  so T  opted for brute force    Carol and I sat down with a color  guide and picked out a bunch of good  lookin  colors  arranged in a more or less  continuous spectrum  Then  for every  color  I approximated the percentages for  each of the four layers of the separation   by choosing the 1 digit hexadecimal  number closest to the percentage re   quired   Then I added a bunch of new  colors  since I had 16 levels to chose from  instead of the 11 shown in the color  guide   and plugged the values into that  big  ugly switch statement in get layersO     Odds And Ends   A few dangling mysteries and we ll  be in good shape  In file header   there s  a new operator called setscreen  The L300  defaults to an 80 line screen  or 80 half   tone cells per inch  But we print Micro C  at 150 lines  So the first of setscreen s  operands forces t
148. ed up my  PGMR  board to the PC  started the PROG7 pro   gram and applied power to the  PGMR  unit  It only took a few minutes to burn  the MCU s EPROM    After programming the MCU  I in   stalled it in my test board  see Figure 2   I  hooked up a Radio Shack experimenter s  board as a test bed  using a 5K poten   tiometer across Vda and ground for my  voltage input to the A D chip    Applying battery power caused the  MCU to go through its reset sequence  it  immediately began running my program   If I varied the setting on the potentiome   ter  the LEDs blinked in the appropriate  pattern  I  measured the following vol   tages  using an analog VOM  1  thre   shold  green LED starts blinking    1 2  volts  2   threshold  red LED lights    24  volts  3    threshold  red LED starts blink   ing    3 7 volts  full scale voltage  analog  reference voltage    5 0 volts    I need to stress a point about CMOS  circuit design  Motorola recommends  that you tie all unused input pins of the  MCU to Vaa through 10K resistors   Several such pins exist in the example  design  but the schematic does not show  any pullups       While you can usually get away with  this in the prototype stage of noncritical  designs  it is not good practice  Your pro   ject is more vulnerable to static damage    14 MICRO CORNUCOPIA   49  Sept Oct 1989    Figure 3   A2D Read Selected Serial A D Channel    in ACC   port C  bit 3  active low      channel number         0X HH HF OX X 00    0X    channel number  
149. em  For ex   ample  I located the perfect power strip in  which to install MR  MOX  Holding it in my  hand  I ordered that part  by Manufacturer s  Model Number  What I got  with the same  model number  was a power strip from hell   half the size of my example  single outlets in   stead of duplex pairs  and it was riveted together   This was just the beginning  Relays that I could  get routinely in five days suddenly became  three month special orders from Japan  Of  course  my PC boards would accept only this  brand    With naive dedication  I checked every trace             T  D  Eye  Hy RZ  WAN   o     Q    the PC layout person should have put  down before the boards were fabbed  I  might as well have gone fishing   sure  they fixed the errors that I found  but 3   4  of the fixes were done wrong    I even wound up special ordering  the cardboard boxes after I found out  they weren t available locally  As usual   it s the small things that cause the most  frustration    Finally I was held up for an entire  month by a total flake of a graphic art   ist  I finally accepted trash she d pro   duced just to get rid of her    Eventually  though  the only hurdle  left was marketing my product    Only  Here my dream turned into  something of a nightmare  Those of you  who want to market your own pro   duct   Beware  You are not reading a  success story here  The facts are true  I  have omitted the names to protect the    guilty     Got Those Marketing Blues   The greatest product 
150. ers   Interrupts tell the computer s central  processing unit to suspend what it s  doing and transfer to an interrupt han   dler program  The handler quickly takes  the appropriate action and then returns  control to the suspended program  The  8086 8088 80286 family supports up to  256 interrupts  classified as internal hard   ware  external hardware  or software in   terrupts    Certain events encountered during  program operation  such as division by  zero  generate internal hardware inter   rupts  Peripherals  such as the keyboard   generate external hardware interrupts   Any program can request a software in   terrupt    The initial 1 024 bytes of computer  memory are known as the interrupt vec   tor table  Each table entry consists of four  bytes pointing to the address of its han   dler  Figure 1 provides the first 128 bytes  of this table for DOS version 2 10    Each four byte position in the table  corresponds to one interrupt type  00   FFH  and contains the segment and off   set of its interrupt handler  To find a par   ticular interrupt in the table  multiply the  interrupt type by four  For example  INT  9H is stored in offsets 36 39  0024 0027H   and points to address F000 E987H in  ROM      Our main programming interest in in   terrupt vectors is not to read them  but to  change them so they point to a new in   terrupt handling routine    Writing interrupt handlers has the    reputation of being difficult and best left  to experts  Actually  the procedure is  
151. ers  long  but you can expand it  In standard con   figuration  Anarkey requires less than 7400  bytes of memory    The 50 page user   s manual contains lots of    66 MICRO CORNUCOPIA   49  Sept Oct 1989       examples  In it  Calwas explains the standard  Anarkey functions  the use of the AKA  or  alias  feature  applications of environment vari   ables  and the default editing utility    According to the program   s order blank   you owe a modest  25 if you plan to continue  using the program   If you use Anarkey for  more than a month without registering  you are  in violation of the license agreement  If you  truly appreciate shareware and want to en   courage authors to keep distributing software  in this way  you won t flout the honor system  that keeps it going   There is a special registra   tion schedule for commercial institutions    Steven Calwas has also arranged for ac   cepting new registrations by credit card via the  Public  Software  Library at their toll free num   ber   800  2424 PSL  Visa or MasterCard     Anarkey  version 2 00   Personal registration   25   Update for registered users   6    California residents add 7  state sales tax      Steven Calwas   Moderne Software   P O  Box 3638   Santa Clara  CA 95055 3638    The ARC War Peace Talks    You can t fight in here  gentlemen  This is  the war room    Dr  Strangelove   The unlikely happened in Bethesda  Mary   land  on June 7  1989  Phil Katz of PKWare and  Thom Henderson of Software Enhancement  Asso
152. ersing circuit  Produces a selectable  180   phase reversal on one drive coil to  set direction of rotation    Motor coil drivers  Transistors which  take their control from CMOS outputs  and in turn control high current motor  coils     Speed Control   I offer two methods of supplying the  clock pulses to the phase shifter  One  a  fixed frequency clock that uses 1 2 of the  CD4001B NOR gate that you already  have  see Figure 2   The other uses the  ever popular 555 timer  see Figure 3     In either case  I need a clock that runs  between 10 and 70 Hertz  From that you  can infer that Mr  Woodpecker didn   t  move too fast at first  Later he got much  faster  but that   s another story    Your application and the capabilities  of the stepper motor you   re driving will    Figure 3   555 Clock     R1          MICRO CORNUCOPIA   49  Sept Oct 1989 29    determine the frequency range you need   Some can move faster than others  The  advantage of the 4001 clock is simplicity   The disadvantage is that an on board  potentiometer sets the speed  The 555 al   lows a simple means of software speed  control at the cost of a few more parts    Why speed control  Your robotics  project might appear to work just fine at  one speed  Ours did until John speeded it  up  It turned out that the Woodpecker s  mechanical parts did not like being  slammed around by sudden starts and  Stops    By incorporating one additional bit  I  could select three different speeds  Thus  the Woodpecker could a
153. espective companies     
154. ethods by default are static  so we  effectively override this default by using  the keyword  virtual     Whew    Virtua  methods  as you should  begin to expect  positively get interesting  about here  That s where I ll bail out for  this issue    Thanks to Borland International for  letting me have an early look at Turbo  Pascal 5 5 and Turbo Debugger 1 5   which includes debugger support for  objects    Thanks to Blaise Computing for let   ting me use their terrific Turbo Pascal  Toolbox  now recompiled for version  5 5  Power Tools Plus includes several  tools for generating windows  menus   and TSRs  It s a timesaver deluxe for  only  99     Blaise Computing Inc   2560 Ninth St   Ste  316  Berkeley  CA 94710   415  540 5441    Also  thanks to Osborne McGraw   Hill who furnished me a galley of the  object oriented chapter from Stephen  O Brien s new version of the Complete  Turbo Pascal Reference  O Brien develops  a neat little airplane object which il   lustrates the basics of extending Turbo  Pascal with objects  Recommended for  getting your feet wet    Finally  thanks to Bruce Eckel for  stimulating conversations in the Elk  mountains  If you want to leap into the  depths of object oriented programming  C style  check out his book  Using C     also from Osborne McGraw Hill    Bruce really knows objects    And that  friends  is Tidbits             MICRO CORNUCOPIA   49  Sept Oct 1989 89       T1000 Battery Upgrade   The Toshiba T1000 contains 4  sub   C  batteries  On
155. evice inde   pendent  And  as far as I can tell  it  succeeds very well   no mean achieve   ment in the world of hard copy output  devices  It does this by means of a Post   Script interpreter within each printer  The  interpreter hides all device dependencies   giving your PostScript code true portabil   ity    You can change a device s default par   ameters from within your program   thereby mucking up the program s porta   bility  And  of course  that s exactly what    we ll do  But  I m getting ahead of my  story     The Basics   Adobe Systems created PostScript and  wrote three books that make up the Post   Script Rosetta stone  They do read a bit  like an IBM Technical Reference  but with  a much better plot   Anyone who quotes  Woody Allen and Napoleon in the same  book can t be all bad   If you want to do  serious work with a PostScript applica   tion  buy these books    To work  Let s build the cover illustra                     need alignment  lines   called crop  marks   to keep the work from being  printed sideways  So first we need line  drawing capability    PostScript defines a page with origin  at the lower left corner  a comfy spot for  the mathematically inclined among us     The default measure is the point  with 72 _    points to the inch  Printers like points   but I grew up with inches  The PostScript  line        inch  72 mul  def    By Larry Fogg  Micro C Staff    teaches the interpreter the meaning of  inch  The slash keeps the interpreter from  inter
156. f you re soldering the wires     to the battery pack yourself  Use     90 MICRO CORNUCOPIA   49  Sept Oct 1989       stranded wire  about eight inches long    Why two leads from each pole  Be   cause the design allows for separate cir   cuits between the battery and the com   puter  and the battery and the charger   However  as currently configured  the  computer doesn t take advantage of that  separation  The connector that attaches  the batteries to the motherboard is hard  to come by  so you ll have to improvise   Fortunately  the male side of the con   nector is on the PC board    Before you remove the female connec   tor    1  Back up your D  drive  if you have  a RAM drive card  to a floppy  because  as soon as you disconnect the battery   you ll lose all files and D  will have to  be reformatted from the C  drive  the  ROM chip  before it can be used again    2  Note carefully which two pins  have the red  positive  wires attached   and which have the black  negative   wires    The configuration of the pins will  look like this                  B B RR   BzBlack   R Red    After you solder  or crimp  a quick   disconnect to the black and red wires   you ll slip each over the appropriate  pair of male pins  You should pick the  female disconnects that most closely  match the spacing of the pins  then ad   just them with a small screwdriver  blade until they fit smoothly over a pair  of pins    Solder  or crimp  those connectors on  the wires  Then  wrap each with electri
157. g   Pee aen   And TurboCalc 111 is made to calculator even when your computer  Gr  sche nk R   order for Quattro  Or for any other is idle  Mail to  Datadesk  7651 Haskell Ave   Van Nuys  CA 91406  FAX   818  780 7307    software you like to drive  We wouldn t steer Or Call   800  826 5398  In CA  Call   800  592 9602      Because  as you can see  it s loaded you wrong      7    with features designed to turbo  Frankly getting into a Datadesk key    0 DAY  TOTIS CURAN    Reader Service Number 8             You can make software engineering faster  and easier than its ever been before  The  high performance QuickMod by Stony  Brook delivers a compilation speed that  exceeds 15000 lines per minute on AT  machines  And its a true two pass   Modula 2 compiler with an intelligent  environment that determines dependen   cies automatically and builds your pro   gram with a single keystroke  You do little  more than enter the program text   then  let Stony Brook handle the work load     QuickMod is more than a supercharged  compiler   it is a fully supported package  backed up by a text editor  a linker  a  library manager  a symbolic debugger and  a runtime library that offers more func   tionality than anything else on the market   All for  95  Versions available for DOS  and OS 2       1989 Gogesch Micro Systems  Inc        QuickMod V2 0 Compiler     Just think what the two of you can ido     And when you need more horsepower   you can move into the Professional  Modula 2  Stony B
158. generate  new populations based on the genetics  of the few survivors of the earlier  colony  Eventually  the population will  die out completely  although this usu   ally happens only after several thou   sand generations    The longest lived group I ve seen yet  made 29 384 generations before giving  up  Changing the factors listed in the  beginning of CRITTERS C can have a  dramatic affect on the way the popula   tion evolves    This project is by no means finished   Im adding genetics to critters for the  ability to sense food  to change their  metabolic rate  i e   a move costs less    and to change other behaviors    What would happen if critters sud   denly turned carnivorous   Depends  partly on what constitutes meat  I sup   pose   Does changing the distribution of  food make for different behaviors in  different parts of the critter s world   And  of course  the program needs a  setup mode with which you change the  program constants at run time  instead  of having to recompile every time    The possibilities are endless  As I  add new features to the program  you ll  hear about them here in this column     NEWS AND REVIEWS    There isn   t much going on in C these  days  The biggest news is in the Pascal  arena  While this column ostensibly  covers C  the battle over Pascal between  Microsoft and Borland has several im   plications for the future of those compa   nies    C language products    Microsoft has entered Borland   s terri   tory with QuickPascal  a clone
159. gle ended  inputs  while the  Lawson Labs board has  differential  in   puts  Single ended inputs are signals ref   erenced to a common ground  The Real  Time Devices board  for example  has 8  single ended inputs  which means that  all the input signals must have their  grounds tied together    In many situations  this works just  fine   you may have a group of signals  which already have their grounds con   nected  Here  you simply take the ground  from these signals and tie it to the  ground on the I O board    In some situations  however  you  might be measuring a signal between  two points  neither of which is ground   Or  you may not be able to tie grounds  together  Here you ll need to use a differ   ential converter  which measures the  voltage between two points  A single   ended converter also measures the volt     46 MICRO CORNUCOPIA   49  Sept Oct 1989    age between two points  but one of those  points is always the common ground     Common mode Signals   The ideal differential converter will  measure the precise voltage between two  points    However  even though neither of the  converter s inputs connects to ground   the converter itself has a connection to  ground  Let s say that you re measuring  a signal that s 6V and 5 8V  The converter  will output 0 2V  the difference  But  there s another voltage to deal with  the  common mode voltage  It s the average  voltage between ground and the two in   puts  5 9V here     Common mode voltage causes errors  in the 
160. gram    image repeats the data procedure  until it has processed enough data to fill  the image defined by the first three para   meters    Be sure to provide exactly the right    Figure 1   Ultimate Resolution Laser Printer PostScriptal      definitions   strsize 188 string def      procedures    set length of hex string     inch  72 mul  def    inch  procedure     fractal   fractal procedure     1500 1500 1  1500 0 0 1500 O 0    currentfile strsize readhexstring pop    generate the image   end of fractal definition    image    def      main program  1 75 inch 3 inch translate  5 inch 5 inch scale  fractal   0F12   hex data   3COA  showpage    end program         set up transform matrix    read the hex data    locate image in center of page  make it 5 inch by 5 inch   call the fractal procedure  padded hexadecimal image data  print the page             Figure 2   Monochrome Hex Data Generation    unsigned char color  count  buffer     count   7   buffer   0   for  each point in the image     i       corresponds to location of point within data byte       this will hold 8 points    find color  color equals O or 1     Mandelbrot code provides this    mask   color  lt  lt  count   buffer    mask   if  count    0     if  buffer  lt  0x10   fprintf  fp   0     fprintf  fp    x   buffer    count   7   buffer   0        else  count       amount of data  since image will read as  much as it s told  regardless of how  much data you actually place in the file   Here  the right amount 
161. h personal evaluation form beyond the first   We ll review your questionnaire and return  our assessment of product feasibility  including places where the idea and or your group seem particularly  strong and where they seem particularly weak  If we see an opportunity for expanding the idea or taking it in  an entirely new direction  we ll include that     Once you receive the written assessment  you re welcome to schedule a one hour conference call with the  evaluators  This will give you a chance to flesh out old ideas or bang around new ones  We don t guarantee  to be right  we don t even promise to agree with each other  but we do guarantee to give you our thoughtful  opinions and we ll give them to you straight     WOULD YOU LIKE TO CONNECT WITH THE NETWORK        Getting started is easy        Simply return the appropriate response card to subscribe to Micro C  to receive our media kit with everything  you need to prepare and submit your advertising  or to receive your technical review questionnaire  If you  know others who could benefit by connecting with the network please share this information with them     MICRO CORNUCOPIA   49  Sept Oct 1989 65       Anthony Barcellos    P O  Box 2249   Davis  CA 95617 2249  Voice   916  756 4866  Data   916  758 1002    Play It Again  DOS    Anarkey and ARC rivals  if Tony doesn t watch  out  he may have Webster s camped on his doorstep     omputers are quite literal  Muff one  keystroke and your PC comes back at   you with  Bad 
162. harbor an illusion  actu   ally it   s one of several  that  ground is 0  volts   In truth  currents flow through  ground wires and traces  Any time cur   rent flows  there s an associated voltage  drop  In a ground path  this voltage is  generally very small  However  if you re  measuring tiny voltages  the voltages in  the ground path can show up in your  measurements and cause errors  We call  this problem a ground loop    Here s what happens  Suppose you  have a long ground trace on a circuit  board  One end of the trace  which I ll  call downstream  dumps into the power  supply ground  Somewhere in mid   stream  some digital chip grounds attach   When these chips switch  they dump cur   rent into the ground and raise the voltage  at that ground point  and every point up   stream  by a fraction of a volt    Now suppose you attach the ground  of an input amplifier upstream from the  digital chips  The input amplifier  along  with the input voltage  uses the ground  to determine the output voltage of the  amplifier  Thus  if the ground changes                 the output voltage changes  When you re  squinting at small input signals  the effect  can be significant    There are several guidelines you can  use to eliminate ground loop problems       1  All ground traces should be as  large as possible     2  Analog and digital grounds should  be separated by providing completely  separate paths to the power supply     3  And  if possible  all critical chips  should have their 
163. hart    Interfacing    Sixteen Bit Devices    To The IBM AT Bus    Okay  so you got a real 286 machine   Now what re you going to do with it  huh   Hobble it with 8 bit I O  Come on now  you  can do better than that  A lot better     ith its fast processor and 16 bit  We bus  the inexpensive AT    clone provides an excellent in   dustrial and scientific tool for data  measurement and control  The 16 bit in   terface is ideal for driving 16 bit digital   to analog converters  reading 12 bit  analog to digital converters  and com   municating with other word oriented  devices    Almost all personal computer interfac   ing is done in 8 bit bytes from the com   puter to printers  terminals  and modems   Publications like Micro C have  thoroughly described these interfaces   But  little has been written about 16 bit  interfaces     Computer I O   The machine language instructions IN  AX DX and OUT DX AX control input  and output of 16 bit data in AT comput   ers  A MOV Dx   port address  instruc   tion loads the port address into the com   puter   s DX register    During an OUT instruction  the com   puter loads the contents of AX  16 bits   onto the data bus  and the port address  onto the address bus  The computer indi   cates to the interface that the data and  port address are available by bringing the  IOW bus line low    Execution of an IN instruction is iden   tical except that the data moves in the op   posite direction  and the IOR line goes  low  The interface must decod
164. hat looks like a nifty program  Maybe  I ll just buy it even though I m stupid  I  can always call them up when I can t  figure out how to save a file     Aside from the appearance that Solu   tion Systems advertises way too much  for its own good  everywhere except  Micro C   giving them undoubtedly huge  operating expenses  I think the price of  Brief sends a message to prospective  buyers   Think before you buy     Brief is not for the casual Space In   vaders player  Not that it s difficult to  use  While Brief can do many things a   30 editor cannot do  there are many  things that a  30 editor could do just as       well as Brief  If you only need the  30  features  it would be just plain stupidity  to buy Brief and use it as a  30 editor    If you re a real professional  you can  justify the expense  Especially if you  buy it from Programmer s Connection  or Programmer s Paradise  or some  other discount software place     Taste Test   So  enough praising and whining   Now I ll show you a few little chunks of  code that I wrote in the Brief macro lan   guage  They should give you an idea of  some of the possibilities  Remember  though  I   m a Brief neophyte  I wrote  my first Brief program this morning   What I can do is nothing compared to  what is possible                    total 0      ot Dc     returns total      macro s square   30   D AS    es yu s  eo    Reassigning Keys   Probably the first thing anyone will  want to do when they get Brief is to  change the co
165. have them visu   ally inspected        92 MICRO CORNUCOPIA   49  Sept Oct 1989    ee m R  S  Cunningham III  gram DRIVE TYPE TO FLOPPY    512 D Georgetown Rd        LOGICAL DRIVE NUMBER      Charlottesville  VA 22901   re INC  TOTAL  DRIVE     COUNT T    TE NO  ong THAN 10 DRIVES 5    o Disk Drive Sensing   j  Recently I had to write an install pro   gram for a new application  My first  problem was to find out how many  floppy drives  how many hard drives  if  any   and their letter designations   I  pen 2n teen T    was working in Turbo Pascal  but any  regs dl  loop       z  2 language that supports DOS interrupts  Jntr  21 regs     Dk  o should do    7E  regs  on d Ehen o o   oh The solution seemed simple at first    y tU   id find the number of logical drives in the  system  then find the number of floppy  drives  The difference will be the num   v ber of hard drives    D drives  drive   pumb loop starttdrives  no  floppytil i loop 1  Sue   However  DOS 3 0  and higher  does      nc count      ur INC TOTAL DRIVE COUNT   not accurately report the number of     O TRE S DRIVE COUNT ue logical drives  It reports either the num     ber of drives  or the number in con   fig sys s LASTDRIVE  statement  or it  returns a 5 if there are no drives    The routines listed in Figure 1 start  out by getting the number of floppy  drives  I use DOS interrupt 11H  check   ing the value of bits 6 7    Then I find the number of logical  drives  I do this by calling DOS inter   rupt 21H  fun
166. he L300 to a 150 line  screen setting  And here s where we fi   nally muck up the program s device in   dependence  Here at Micro C  150 line  screens look truly awful on the laser  printer  A 300 dpi device works best with  60 line screens and doesn t appreciate  being asked to do the impossible    We also have to consider how the  four layers of regularly spaced halftone  cells might interfere with each other  If  we don t rotate the layers correctly  wild  moir   patterns appear  These separate ro   tations for each layer  called screen an   gles  minimize interference problems   Give the screen angle to setscreen as its  second parameter     22 MICRO CORNUCOPIA  549  Sept Oct 1989    Finally  setscreen requires a spot func   tion  The spot function describes how  halftone cells fill in as they get bigger  I  lifted the version in file header  directly  from Adobe s documentation   Have I no  shame   It grows from the middle of the  cell out  I don t have the slightest idea  how the function works     Confession Time   The more astute  awake  among you  will be grousing   Hey  He said we d be  looking at 2540 dpi stuff  Where d this  150 dpi ca ca come from   It s not my  fault  I thought the presses could print  anything we sent them  Not so  150 line  screens already push the mechanical  limits of initial alignment and subsequent  drift of the four layers    So we re limited  in print  to 150 cells  per inch   still better than most displays   If you want to see the unpr
167. he famous pocket sized book jam packed with  hardware  amp  software info   9 95 ea  or 5 or more for  5 each   Software tools  You need MS C  amp  MASM 5 1 for modifying the Kit products   Mention this ad when you order and get a free XT AT  Handbook by Choisser  amp  Foster  Hurry before we come to our    senses and change our minds   eS     619  271 9526 Money back guarantee       Annabooks  12145 Alta Carmel Ct Suite 250 262   San Diego  California 92128    Reader Service Number 160    MICRO CORNUCOPIA   49  Sept Oct 1989 73          Around the Bend      Are they object oriented        No  not the versions I have      Then I have real trouble getting interested  Too much  trouble to use a library that s not designed around objects     He has a point  The less you need to know about a library  routine  the easier it is to use  Objective libraries should be  very easy to get close to   We re talking libraries here  not  librarians   Speaking of librarians       How Fast Is Fast    I spend most of my life plodding along behind an 8 MHz   80186 system while out in the other room lies our latest acqui   sition  a 20 MHz 80386 screamer  It s usually busy   grinding  out fractals    When I hit return on my 186 things pick right up  and it  isn t very long before something has happened   I do have to  clean up around the processor socket after rust flakes off the  accumulator   By the time I ve finished hitting return on the  386  however  things are fairly well completed    I un
168. hkit products  are designed to perform reliably and    effectively   year after year     See what we have to offer  To get your  FREE Heathkit Catalog  fill out and mail  the coupon below or call toll free today     1 800 44 HEAT     1 800 444 3284          of the Heathkit Catalog     Send To  Heath Company  Dept  027 814    YE S   Please send me a FREE copy    Precision MEM  Test Fre  Instruments Er    H       i Dynamic  Home Entertainment  Products    Benton Harbor  Michigan 49022      Name         Address    City      State Zip  A subsidiary of Zenith Electronics Corporation       CL 801 and Trainers       Reader Service Number 156  MICRO CORNUCOPIA   49  Sept Oct 1989 35    Fee   ERE    c    Organize  Query    amp  Make Connections  Between Files of Information    MICRO EINSTEIN  The Expert System Shell      Create expert systems  easlly In minutes    With pulldown menus and  windows    Automatic rule generator    Context sensitive help    Free example expert  systems    Interactive full screen  text editor    DOS access from shell    Turbo fast execution   NOW 5 times faster      For Diagnosing     Monitoring      Indexing      Organizing      Classifying       amp  Discovering links  between files of information     Only  100   Plus  5 S H     Reader Service Number 72    ACQUIRED INTELLIGENCE    P O  BOX 2091   DAVIS  CA 95617    916  753 4704       36 MICRO CORNUCOPIA   49  Sept Oct 1989          When you take control of INT 9H   every keystroke gets routed through  yo
169. icting RENEGADE   Software packages are available which  allow you to manipulate resident pro   grams  These utilities  often referred to as  managers or organizers  are designed to  remove other programs from resident  memory without rebooting the system   Ive included a short program   EVICT COM  to demonstrate how to  eliminate RENEGADE    s grip on the key   board interrupt    Resident programs are distinct from  normal ones in two ways  they don   t re   lease memory blocks when terminated   and they chain one or more interrupt  vectors to themselves  To remove RENE   GADE from resident memory  you must  restore the interrupt vectors as they ex   isted prior to its installation  and then re   lease all its memory blocks  DOS function  49H releases memory blocks    The ES register specifies the segment  to be released  while bytes 4 and 5 of the  memory block already contain the length  of the block  Display the following resi   dent memory locations      D0 60A0  60EF   0000 60A0 4D OE 06 02 00 05 C8 00   A3 BD OB A1 02 00 8C 1E   0000 60B0 50 41 54 48 3D 00 43 4F   4D 53 50 45 43 3D 43 3A   0000 60CO 5C 43 4F 4D 4D 41 4E 44   2E 43 4F 4D 00 00 FF FF    MICRO CORNUCOPIA   49  Sept Oct 1989 39    Commenting Disassembler     SOURCER      SOURCER    creates detailed commented source code and listings from memory  and executable files  Built in data analyzer and simulator resolves data across  multiple segments and provides detailed comments on interrupts and subfunctions   
170. ike complete listings  I also enjoy  the fun stuff that helps me understand the  person who s behind the technical informa   tion  This issue Larry was struggling with  this question  Much of his current fractal  code is a simple repeat of code we ve run in    MICRO CORNUCOPIA   49  Sept Oct 1989 75          Letters    recent issues  So he s limited it to the Post   Script additions  That way we have room to  run one more article in this issue     Making Custom PC Cards   If you took to heart the piece in Issue   43 by Bruce Eckel on designing your  own cards for your PC  you may wish  to make something less prototype and  more production than the prototype  cards described  If you have OrCAD  PCB  log on to OrCAD s BBS   503  640   5002  Look for IBMPCB ARC in the PCB  Download area  among the Customer  Contributed Models    You won t need to be a registered  user to download it  but you will need  OrCAD PCB to make use of it  It has the  outlines and connectors already drawn  for half  and full length cards for both  XTs and ATs  There is a useful  DOC  file as well  When you ve done the pro   totype the way Bruce suggests  and  you re ready to launch your creation on  the world  this is the way to take the  next step     John Innes   120 MacPherson St   Cremorne  NSW 2090  Australia    Free PCB Autorouter   l ve enjoyed Micro C for many years  as a newsstand purchase  and recently   finally   ordered a subscription  I read  with interest the articles in Issue  45  about PC
171. ill  75                s     140  VTEK 4 3  terminal emulator  VT102 100 52  amp  Tek 4010 14 15  LIM 4 0  26 printers  Kermit  amp  XMODEM                  135  VmenyC  virtual memory manager  least recently used pager  dynamic expansion of swap file                          140  Turbo G Graphics Library  all popular adapters  hidden line removal              ees  135  TurboGeometry  library of routines for computational geometry        e s e ew e ee ee oho o oon n  125  Install 2 3  automatic installation program  user selected partial installation  CRC checking                      cr   120  TE Editor Developer s Kit  full screen editor  undo command  multiple windows                     lle en  105  Minix Operating System  Version 1 3  Us  x like operating system  includes manual             sss DP LE Ven Sa  105  HyperText Viewer fam le hypertext system  multi file documents  includes Tiny Curses          llle een  100  PC IP  CMU MIT TCP IP for PCs  Ethernet  Appletalk  amp  NETBIOS drivers  RVD updatebyDanLanciai                ee   100  B Tree Library  amp  ISAM Driver  file system utilities by Softfocus                   ee  100  The Profiler  program execution profile oo  TT te Ve  Se wah M TN Er PECES eo ay te Medd  hae Suse teat Ae a  100  QC88 C compiler  ASM output  small model  no longs  floats or bit fields  80  function library      6          cler  90  Otter 1 0  beautiful theorem prover by Bill McCune  includes manual  amp  two books by Wos  complete starte
172. in  the last two or three years that exceeded my wildest  expectations for power  compatibility and ease of use         Paul Mace  Paul Mace Software          Soft ICE  MagicCV  MagicCV for Windows    Buy Soft ICE  amp  MagicCV W      Save  86   Buy MagicCV and MagicCVW     Save  100      Save  186      386   199   199    Buy All 3    30 day money back guarantee  Visa  MasterCard and  AmEx accepted    New Soft ICE 2 0 features    O Back Trace Ranges   C Symbolic  amp  Source level debugging   0 EMS 4 0 support with special EMS  debugging commands   C Windowed user interface    fue Nu Mega  TECHNOLOGIES    CALL TODAY  603  888 2386  or FAX  603  888 2465    P O  BOX 7607 E NASHUA  NH E 03060 7607    Reader Service Number 110    2 MICRO CORNUCOPIA   49  Sept Oct 1989       RUN CODEVIEW    IN 8K    MiagicCV  gt     CodeView is a great integrated dolus but  it uses over 200K of conventional memory   MagicCV uses advanced features of the  80386 to load CodeView and symbols in  extended memory  This allows MagicCV to  run CodeView in less than 8K of conven   tional memory on your 80386 PC     NEW     Version 2 0 includes EMS 4 0 driver   Attention Windows Developers   Version available for CVW                    THE MICRO TECHNICAL JOURNAL    VERO CORNUCOPIA     SEPTEMBER OCTOBER 1989   ISSUE  49    M M   MM MM            M   M M   M   M   M   M                 MM            M   M       M      FEATURES COLUMNS    Karl Lunt  8 Building A Controller The Easy Way D   cing Clearly  Mon
173. in the world  won t sell itself  Advertising rates in  magazines are high   a  5 x3  box  among hundreds of other such boxes        among hundreds of pages of bigger  boxes  can cost  400 or more  Of course   you have to recover the cost of advertis   ing out of your    profit     but you can t  price your product too high    I determined that the best way to get  started was by getting  free  advertis   ing in the form of  new product an   nouncements   I bought a mailing list of  computer magazines  and another one  of computer users groups  and began  mailing MR  MOX press releases    For various reasons  all of which  made sense to me at the time  I pro   posed a partnership with the proprietor  of a dormant one product hardware  business  His well known  to me  any   way  logo would appear at the bottom  of MR  MOX ads  He would handle all  advertising and sales  I would supply  the product  We would coordinate ads  to appear along with the press releases  which I would submit  It sounded great    Time passed  I finally  in frustration   placed an ad myself in Micro C  Jan Feb   89   take a look   since this  partner   ship  resulted in no advertising  MR   MOX  to put it mildly  was not the cen   ter of my partner s life        ou are not  reading a success  story here  The facts  are true    have  omitted the names  to protect the guilty        A Little Exposure   However  I was actually having  some success with press releases   that  is  they were getting published  
174. ing  light  After the second format finished  I started a third   That s three low level formats in a row  I followed up  with FDISK and then ran DOS FORMAT   twice  If  those little platters aren t impressed  they ll never be    Finally I restored the files using FASTBACK and the  drive was back  So far this one has run flawlessly  I  must say  though  humming along with the other one  was much more interesting     Nondestructive Reformatting  Again   It seems like every time I say something about hard  drives  I get mail  This time I got lots of mail and Gib   son Research pulled its ad for SpinRite    It s not Gibson s fault that some XT controllers have  problems doing a single track format  Gibson has to talk  through the controller just like everyone else     Continued on page 71                      100    Lattice    The Leader in Performance  Lattice C 6 0 for DOS and OS 2is  the fastest compiler overall on  the eight PC Magazine bench   marks   model  Lattice C is over 10   faster than Microsoft 5 1 and over  15  faster than Borland 2 0  These  results are due to our new op   timizer and the many perform   anceimprovementsin the library   You can make your applications  run even faster by using our new  register variable support and  built in functions  Lattice 6 0 is the    performance leader  10    The Leader in Compatibility  Lattice C is fully compliant with  the ANSI standard  We pass not  only the Computer Language ANSI  Test Suite but 100  of the  Plum Hall Te
175. ing Holes      38 bit  4 16 bit and 1 32 bit expansion slots    Surface Mounting Technology Improves Reliability    Support Diskless Network Application    NOVELL  OS 2 Compatible    SPECIAL  649  949  McTEK SYSTEMS  INC   1521 SAN PABLO AVENUE  BERKELEY  CALIFORNIA 94702   415  525 5129                     Reader Service Number 42    LATEST AWARD BIOS    PC XT vx 286 vx 386  Support for       Enhanced Keyboards  _ EGA  amp  VGA Graphics    3 5 inch Floppies    More     Authorized AWARD Distributor   800  423 3400  KOMPUTERWERK  INC  851 Parkview Blvd  Plitsburgh  PA 15215    Reader Service Number 126    Why you want BATCOM     BATCOM is a batch file compiler that  compiles your    bat  files to   exe  files to  make them faster  more professionel  and  more capable  BAT COM extends DOS with  new commands so you can read keyboard  input  perform arithmetic  use subroutines   and much more  In addition  BATCOM  protects your source code  and you can dis   tribute your compiled programs without roy   alties  For IBM PC   49 95    ZTN Wenham Software Company   T      65 Burley St    N     Y  Wenham  Ma  01984     508  774 7036 FREE catalog     Reader Service Number 124    The  25 Network  Try the 1st truly low cost LAN                                                e Connect 2 or 3 PCs  XTs  ATs  e Uses serial ports and 5 wire cable  e Runs at 115 K baud  e Runs in background  totally transparent  e share any device  any file  e Needs only 14K of ram  Skeptical  We make believer
176. ing more  characters  it does seem to do that  When  you add to this the fact that you can t  move a window border which touches  on more than two windows  see Figure  1   the windowing capability of Brief  appears seriously brain damaged    I can kind of understand the decision  to make windows tiled instead of over   lapped  it makes for much less complex   ity in the screen update algorithms  But  not allowing changes to the position of  a window border touched by more than  two windows looks to me like just plain  laziness  Surely it shouldn t take more  than a simple loop cycling through the  windows  readjusting    Brief does have overlapped win   dows  by the way  I even use them in    one of the examples below   but they  are very restricted  For example  once  you open an overlapped window  you  can t switch to any other window until  you close it  Mostly  it uses overlapped  windows for menu displays    Another window complaint is that  it s impossible to retrieve enough infor   mation about the windows to recon   struct a display successfully once it s  torn down  This would be very useful  for the included  restore  macro pack   age  which causes Brief to reload all the    Figure 1   Window Borders  in Brief     This Brief screen has 3 windows  and 2  edges  a  amp  b   Brief al   lows moving edge b  thus resiz   ing windows  2 and 3   but won t  allow you to move edge a  The  only  way to move a is to first  delete b  i    oo 4       files you were editing during
177. intable 2540  dpi marvels  you ll just have to come by  the Micro C World Headquarters in Bend  and ask for a tour  open daily  more or  less  unless the weather s nice      Execution Speed   I pruned all the video stuff from Har   lan Stockman s  386  32 bit  fixed point  Mandelbrot code  see Micro C issue  43   to do the dirty work for these PostScrip   tals  Harlan used DeSmet C88  with as   sembly for the number crunching  The  results were nothing short of amazing  A  few statistics on the generation of the  cover       Pmax    0 7408  Pmin    0 7504  0 12036  0 105    maximum iterations   2000     Qnax      Qnin      switch point   200   points in image   750x1200  System   20 MHz 80386    execution time   2  hours    To place this in perspective  a stand   ard 4 77 MHz XT  running Turbo C float   ing point code with no 8087  would take  87 days to do the same PostScriptal  I d  call that progress  Thanks  Harlan    Early on I thought it would be nice to  zoom way in for a PostScriptal  Harlan s  fixed point representation can t deal with  numbers smaller than 0 00001  So I  switched over to the Turbo C floating  point code and Dave picked up a 20  MHz  387 math coprocessor  The fixed  point code was still five times faster    You can see that I really couldn t have  done this without Harlan s code and a       handy  386  Although  I had to wonder  about the hardware  Our    386 has a mind  of its own   sometimes no mind of its  own  At one point  it favored locking up 
178. into a new editor that  has some features I   ve been looking for  it al   ways seems to have just enough minor  or  major  flaws to justify not switching over  completely    Because of this dissatisfaction with any one  editor  my machine usually contains three or  four of the beasties    For example  if I need to look at several files  at once  I use Logitech s Point  It has multiple   overlapping windows and can support up to  50 line displays  If I need to do some massive   repetitive changes to a file  or edit a single file  with very quick response  I ll call up Express   my homegrown editor   for its small size   speed  and simple keystroke macros  On the  other hand  if I need to cut and paste columns  of text  I haul out Microsoft Word  the other  two can t do this     All this schizophrenia causes some confu   sion at 5 30 in the morning  For example  Point  uses F5 to begin marking a block of text and F6  to finish  Word uses F6 to begin and finish  marking a block  while F5 turns replace mode  on off    I ve managed to get rid of the glaring differ   ences  like cursor movement keys  by writing a  TSR program that traps keyboard input and  translates my favorite keys into the appropriate  ones for a particular program  But it s still a  royal pain in the butt to keep jumping from one  editor to another  doing twenty seconds of  work  saving  exiting  and then jumping  back         tis just about everybody knows of my    Enter Brief  During my last two winters at P
179. inues to fasci   nate poor and great imaginations alike   Thinking about time is fun  and reading  someone s well constructed thoughts is  better yet       type this at a desk far from the Davis    Great Work Of Time   Recently I read a skillfully con   structed story about time by John Crow   ley a World fantasy Award winning  author  The story  Great Work Of  Time   extends that well worn subclass  of science fiction   time travel  by in   corporating chaos theory into the argu   ment    In    GWOT     a strange genius  named  Caspar Last  discovers  or creates  a  process which can be used for time  travel  The key tool in leading him to  discover the process is a computer     96 MICRO CORNUCOPIA   49  Sept Oct 1989    By Gary Entsminger    1912 Haussler Dr   Davis  CA 95616    Stochastic Fiction     Fiction From Fractals    which he uses to plot the shadows of  imaginary numbers    Last showed me  the narrator of the  story  after our bargain was struck and he  was turning over his data and plans to me   I told him I would not probably grasp the  theoretical basis of the process  however well  I had or would come to manage the practical  processes of it  but he liked to show me    He first summoned up x y coordinates   quite ordinary  and began by showing me  how some surprising results were obtained  by plotting on such coordinates an imagi   nary number  specifically the square root of  minus one  The only way to describe what  happens  he said  is that the plotted figu
180. ire it your     68 MICRO CORNUCOPIA   49  Sept Oct 1989       Modem Operated Switch       self  and it had no override for the times you  were sitting at the console  Then there were the  sophisticated widgets that had the brains to  make you enter a password before they would  turn on the PC  but they sold for  300 or more     Enter MR  MOX   I answered the convenience issue by using  an RS 232 jumper box  like a gender changer   only it doesn   t change the gender  to intercept  the CD signal and run it to a jack on the face of  the MR  MOX   Oh  and that name  like VOX is  to voice operated switch  MOX is to modem     Then  a small switch in a tiny box at the end  of the wire for the override  You could stick  this switch anywhere it was convenient near  the front of the PC  and keep the power cables  in the back  It really did install in seconds  I  shoe horned the circuitry inside the case of a 6   outlet power strip  and considered it product   ized     Manufacturing   What Can Go Wrong       There were trade offs made in manufactur   ing  Everything you buy has its own peculiar  cost vs  quantity curve  but the thing they all  have in common is the more you buy  the  cheaper the unit cost    My general plan was not to sweat for abso   lute lowest cost at the front end  I knew I  wouldn t make any money until sales got into  the hundreds of units  anyway  So I would con   centrate on low manufacturing cost later  if MR   MOX took off    But costs weren t the major probl
181. it  to energize or de energize outputs ac   cording to the state of its inputs     PLC Uses   Industry uses programmable logic  controllers  PLCs  for a variety of tasks   You ll find small PLCs built into elec   tronic motor controllers  machine control  panels  and even vehicles  They oversee  current draw  speed  and load factors   they monitor limit switches and operator  inputs  The typical small PLC will have  from 16 to 200 I O points    Larger PLCs can control whole as   sembly lines or entire factories  Industrial  robots and their support equipment  con   veyors  tool holders  power units  etc   are  also major users of PLCs    Not only do they control equipment   but they also report system faults to the    central computer so technicians can be  dispatched  Many of these units also log  data and generate production or main   tenance reports  These larger PLCs typi   cally have 200 2400 I O points    Of course  PLCs can be networked via  mainframes  This way  any machine  or  human  on the network shares the I O  and data of all the units  And  software  developed on the mainframe can  download to one or more controllers     A Brief History of PLCs   One of the early marvels of electrical  engineering was the relay  Using a relay   an engineer could control electrical  processes using logic    Relay logic is nothing more than a  hard wired program  You can control the  relay that starts the drill motor by  another relay that monitors table posi   tion  If the table
182. itch  Software development  tools of amazing power abound for hardware  platforms of dazzling capability  Unfortunately   we often take it all for granted    With the powerful hardware and fantastic  software development environments  you d  think applications would be equally wonderful   Alas  that is not so  Major companies release       late May as I write this  and spring is    50 MICRO CORNUCOPIA   49  Sept Oct 1989    buggy versions of their software so that they  can meet    marketing windows     Many pro   grams are hard to use  or are missing key fea   tures    As programmers  we need to use these ad   vanced software development tools to create  the next generation of software  As consumers   we need to put our foot down and say     I   m  not going to take it any longer   Buy software  which works  support vendors who support  you   and raise the devil with those companies  who can t or won t do the job  If we continue  accepting the crud  we ll continue getting it    The quality of public domain software is  one of my barometers of programming prac   tice  When affordable microcomputers first ap   peared  public domain software flourished   Everyone wanted to share  knowing that their  combined knowledge would make computer  software more powerful  There was a sense of  community    Today  microcomputers are big business   There s less public domain and more shareware  and crippleware  Legal battles and license  agreements have replaced the spirit of commu   nity 
183. ition is by no  means limited to DOS  SEA is already  working in other environments and  PKWare appears to be doing the same    SEA appears to have an edge in the  corporate market  but several bulletin  boards have converted from ARC to  PKWare s ZIP    The competition could also branch  out into commercial software  where  many developers are interested in  embedded routines that would let their  programs de archive files    Although Katz and Henderson  shared similar views on the future of ar   chiving  bright  and its applications   broad   there was no consensus on  whether future algorithms would be  more effective at compressing files    However  the LHARC program now  making the rounds of the bulletin  boards definitely offers better compres   sion  Unfortunately  it s not as fast as  ARC or ZIP     A Capital Group   The Capital PC User Group  host of  the forum  is one of the most important  and influential users groups in the  country  To learn more about the group   call their 24 hr  recorded message num   ber   301  762 6775  or write to     Capital PC User Group  51 Monroe Street Plaza East Two  Rockville  MD 20850    A one year membership is  35   which entitles you to a subscription to  the Capital PC Monitor  their fabulous  monthly newsletter  The Monitor con   tains a regular column by shareware en   thusiast Bill Fowler     Trojan Viruses   By now everyone knows that Trojan  Horse programs are time bombs that  eventually blow up and destroy both  themselves
184. itor controller projects used to be hardware software marathons   Fortunately  chip manufacturers have discovered there s a huge demand for 57 ee  6 Wor    processors that take the pain out of these designs  Here s a close look at  Motorola s latest     64 Culture Corner    f AR f p   1y  gt  SLA    66 ShareWare    68 On Your Own       1 6 Larry Fogg  PostScriptals 77 Uni  Units and Modul  Interested in creating the world   s highest resolution fractal   The gauntlet is UE SRE  down      90 Techtips    Ron Hicks  23 Programmable Logic Controllers  Programmable logic came into vogue during the days when industrial    controllers were made up of boxes full of relays  Now we use the same logic  r Su   E  with microprocessor controlled equipment   But it s a lot quieter   FUTURE TENSE    28 David Metz l 86 Tidbit  ae idbits    Driving Stepper Motors    How does a controller position an arm  or move a belt  or open a window     Usually via stepper motors  9 6 ae  ast Page  33 Edwin Thall  Writing TSR Programs  5  Here s the real scoop on TSRs   CONTE  RI       Bruce Eckel   42 Low Cost I 0 For The PC  You can get really versatile I O interface cards for the PC for under  300   Bruce takes a look at three winners     William K  Rohwedder and Wayne L  Everhart  83 Interfacing 16 Bit Devices  You have a 16 bit computer  Why not talk to it 16 bits at a time              ku Cover PostScriptal by Larry Fogg   MICRO CORNUCOPIA   49  September October 1989 3    THE MICRO TECHNICAL JOURNAL
185. k support  RAM disk and or disk  cache  I O redirection  and more  Supplied with editor  as   sembler  Basic  powerful utilities  Supported by Users     Group and BBS  Software available from other vendors   includes C compiler  Basic  editors  disassemblers  cross   assemblers  text formatter  communications programs  etc     Priced at  165 with configuration kit  less if already  configured for your system    HARDWARE   68xxx systems start at  200  Call or  write     Star K sottware Systems Corp   P  O  Box 209 Mt  Kisco NY 10549   914  241 0287   Fax  914  241 8607    Reader Service Number 40     80 MICRO CORNUCOPIA   49  Sept Oct 1989    ke klen    T srtStatArr srtId    nbrRec       srtStatArr   extras srtState     1 to MAX SRTS  a a  Statarr i   srtstate imo   Gensrti       Long Horn SOG    Stuart Yarus called to say the Texas SOG has been  reduced to a regular meeting of ihe Computer  Council of Dallas  However  we re all Invited and It   s  free     Leave a message on Stuart s machine if you want  travel and lodging information  or leave a message  to let him know you re coming   Otherwise Just show  up  It ll be Saturday  July 14th 9 a m  to 4 p m  at the    Infomart  If you d like to speak  definitely call him  If  you d like to see 90 SIGs meet at once  then plan to  go     1950 Stemmons FWY   214 867 8012    Infomart  Stuart Yarus    Dallas 75207   Welrd hours         Binary ee ee    iF BinTree  ee      Michael 8  Bunt     pate  June 1  1989       T EreeNoda T  SEN
186. l  temp critter     move  gene 3            or  1 0  move  temp critter   move ou  E        adjust c critters position F  temp eritter  gt posx     delta table  i   0      emp   critter TpoRY t  delta   zrablefilIl s pu     temp  critter   posx  lt      temp  critter  gt posx  temp    exitter  gt posy  temp   critter   posy   temp  critter   posx  temp  critter  gt posx   temp  exitter  gt posy   temp critter  gt posy   ft assess movement cost     temp critter   energy level     move   cost      redraw critter at new position Y  for  xm temp   critter   posx T1  m  SGH  lt   temp  critter tpm  t F too    uvivu An A     Ufer  qe temp _ critter  gt posy     4   sys temp critte  pom    Ar ty                 growth  and statistics calculations  Note  that the critter s world is circular  when  they move off one side of the map  they  reappear on the opposite side    As you watch the program run   you ll notice that the behavior of the  bugs changes  The initial set of critters  jitter around without much direction   Later  you can see certain types of crit   ters   called cruisers   which tend to  travel in a single direction  Often  a  group of cruisers  critter packs  will  form  they ll move across the screen   devouring all the food in their path    The size of the population will ebb  and flow  Sometimes it will grow to  large numbers  and at other times it will  drop to very few members  It s interest   ing to see how the life cycles work   since significant die offs often 
187. l O ports and much more  Determi  es necessary assembler directives for reassem   bly  Includes a definition file facility to include your own remarks and descriptive  labels  force data types  and more  Complete support for 8088 87 through 80286 287  and V20 V30 instruction sets  We welcome comparisons with any other product   because no product comes close to the ease of use and output clarity of SOURCER     Sourcer is the best disassembler we ve ever seen       PC Magazine  January 17  1989  page 101    iM SEE HOW PROGRAMS WORK  IM EASILY MODIFY PROGRAMS    SAMPLE resetprn lst      ResetPRN v1 01 Sourcer Listing 28 Jun 89 2 34 pm Page 1    OUTPUT PAGE 60 132  Fully   Created  15 Apr 88  automatic   Version  1 01    Passes  3 Anatysis Flags on  H  Program  header    RESETPRN    data_le    0040 0008 378h     E segment para public  Assembler assume cs seg a  ds seg a  ss stack seg b  di ri ecti ves resetprn proc far  658   0000 start   658E 0000    B 23 short loc    658E 0002 52 65 5 74 50  ResetPRN v1 01   OOh  658E 0008 52 4E 6 31 2         658E   000E  Determines OM  data areas Heer  and type 658E  001F    658E  0025  658E  0025 cs    40h  00h  OAh     Reset Printer        comments   S5     658E  002E f   658   0030   DOS Services ah function 01h     get keybd char al  with echo  DM      658E 0026   ds  Detailed 658   0027   dx offset data 3    658E 0013  00h   ah 9      DOS Services ahefunction 09h    display char string at ds dx    658E  0032 ety     658E  0034   Jump if
188. ld be to have this  feature       Sorry  The most shelf space goes to  the products that have generated the  most sales  zero sales gets you zero  shelf space  Welcome to the world of  catch 22     70 MICRO CORNUCOPIA   49  Sept Oct 1989    Mr  Mox in the Flesh      0031 USERS MANUAL T    4  uM       i  is    NM ed       There Must Be A Lesson Here  Somewhere       Manufacturing and marketing a pro   duct isn t glamorous  It s hard work   The rewards are possible  the effort a  certainty    First  if you should start down this  road  it won t take you long to discover  that everyone and their brother  and  your brother  will offer you endless ad   vice  If success doesn t beat a path to  your door  they ll tell you exactly what  you re doing wrong  Of course  they ve  never tried doing anything similar    Plan for delays and hitches in materi   als  If work is done for you  check it   Where possible  don t give anyone more  money up front than you re willing to  walk away from  my experience with  the graphic artist nailed that lesson  home     When sending out press releases  be  aware that there is much duplication on  mailing lists  Just pick out titles you rec   ognize  and perhaps others that seem  particularly oriented toward your pro   duct  Be persistent Be aware that  there s a lot of competition for a New  Products editor s attention    Editor s note  If you want an eye opener   show up any Monday morning and you can  help Tammy sort through the basket full of  rele
189. les  with up to  7 indexes with USE  SELECT   SKIP  APPEND  PACK  INDEX  ON  SET INDEX TO  and FIND       No need to buy dBASE  CREATE   BROWSE and REPORT utilities  included        e Easily implement Saywhat and  Lotus style moving bar menus    e BROWSE any DBF file with just  one line of code  Programmable  and windowed too       Pick from windowed data or file   names with one line of code          Comprehensive Time  amp  Date   gt 23  math in 7 international formats        gt     e Powerful code and report generators  included         Comes with a complete 250 page  manual  plus sample programs to    t you started   get you  7 95    ComFood Software  W  Germany 49 2534 7093    Guaranteed     S O F TW A RE       Reader Service Number 129    MICRO CORNUCOPIA   49  Sept Oct 1989 27       Driving Stepper Motors    Do It Yourself Stepper Motor Controller    If you re interested in controlling some   thing mechanical  then you re in the right  place  Steppers give you a great way to  translate the electrical into the physical  and  this is a quick  and clean  way to do it     ne day  my artist friend John  Qs and said   I m building a   computerized wood embossing  machine run by my VIC 20      That sounds neat   I replied  some   what bewildered     It s going to use stepper motors to X   Y scan a pen and ink drawing optically   Then fire a solenoid to punch holes in the  wood when it sees a line     Now things were getting interesting  I  had only the vaguest idea what a ste
190. ll usually work just  fine  If you try to power a relay or some  other piece of hardware which requires  more current or more voltage  you ll  have to amplify the output    You can change both the maximum  voltage and the maximum current to be  switched by the output line  A common  approach uses a Darlington transistor   ie   two transistors ganged together to  provide high current throughput  and a  diode  which allows inductive currents to  flow in the other direction when the tran   sistor shuts off   see Figure 3     You can obtain inexpensive Darling   ton transistors with both transistors in a  single package  the TIP120 is common    or with a gang of Darlingtons in a single  IC package  Siliconix makes a device to  replace the Darlington and the diode  called a FETlington  part 2N7000    Notice that both Darlingtons and  FETlingtons only allow current flow in  one direction  which is okay  since you re  usually just using DC   If you re switch   ing an AC signal  you ll have to use a    44 MICRO CORNUCOPIA   49  Sept Oct 1989    taking measurements  and the time be   tween measurements may not be too im   portant    Capturing a waveform is a whole  different can of sine waves  For one  you  must sample the waveform at regular in   tervals  thus the need for the timer on the  I O board   Also  the sampling rate must  be at least twice the highest signal  frequency  this is the    Nyquist  frequency     even higher sampling rates  are usually better   This means that fo
191. lowed by a semicolon     if  junk  25   ct      enter      the cursor would step back out one tab  stop for the next line  If  on the other  hand  I typed a bracket  followed by  enter  it would go down to the next line   leaving the indent at the same place   until I typed the closing brace     The smart indenting package  which  is written entirely in the Brief macro  language  can recognize the four most  common forms of C indenting style     if  junk  25           if  junk  25          if  junk  25           if  junk  25          It handled the first two automatically  and supported the third and fourth  styles if you set an environment varia   ble in the DOS environment    The one construct that it would not  handle properly  by the way  was the  definition of a function  I like to have  the braces that start and end a function   and all the lines in the function  in     dented one tab from the left margin     void twist  int schillings               end of twist       When I typed enter after the closing  parenthesis of the function definition   the cursor went to the first column of  the next line  I typed the brace there  and typed enter  expecting the cursor to  go to the first column again  Instead it  went in one tab stop     void twist  int schillings        Although the position of the opening  and closing braces of if   while    etc   is  selectable  the position of the braces  around a function is not    Another feature that goes along with  smart indenting is 
192. ls are  supported  Includes UniDOS and UniForm PC   UniDOS Z80 Coprocessor Card      169 95    UniDOS by Micro Solutions    Equip your PC XT with an NEC V20 chip and  run your favorite CP M programs without taking  up another card slot  Runs 8080 code directly  on the V20  and uses emulation mode for Z80  code or systems without a V20    UniDOS by MicroSolutions   UniDOS w UniForm  amp    V20 8 chip    UniForm PC by MicroSolutions    How have you ever wished you could use your  CP M diskettes on your PC  Now you can access  your CP M files and programs on your MS DOS  computer just as you would a standard MS DOS  diskette  Install UniForm and use standard DOS  commands and programs right on your original  diskette without modifying or copying your files   UniForm PC allows you to read  write  format   and copy diskettes from over 275 CP M and  MS DOS computers on your PC  XT  or AT  With  UniForm PC and the Compaticard  you can use  514  high density  96TPI  3      720k 1 44M   and  even 8  drives    UniForm PC by MicroSolutions      Also available for Kaypro   amp  other  CP M computers        64 95    CompatiCard by MicroSolutions    THE universal four drive floppy controller board  for the PC or AT  Run up to 16 disk drives  4 per  CompatiCard   including standard 360K  96 TPI   high density 1 2M  8     SSSD or DSDD   and  720k 1 44M 312  drives  Comes with its own  MS DOS driver and format program  Use it with  UniForm PC for maximum versitility   CompatiCard Board   Comp
193. luding ground  to interface  this chip to the  HC705  The  041 boasts a  maximum cycle time of 40 psec    The Motorola MC14499 LED display  driver  again  with serial interface  con   trols a four digit display  You provide  the common cathode seven segment dis   plays  eight resistors  seven segments  plus decimal point   and four driver tran   sistors  The  499 translates serial data  from the MCU into the display pattern   and even handles digit multiplexing  You  can also cascade additional LEDs    Motorola also offers several SPI con   trolled PLL frequency synthesizers  such  as the MC145159 1  The MCU can vary  the reference counters in this 20 pin dev   ice  add a loop filter and VCO  and you  have a frequency synthesizer     Wiring the  HC705 SPI to a peripheral  chip is simple  you connect the two serial  data lines  the clock line  ground  and  chip enable between the devices  The first  three signals come from  d  dicated pins  on the MCU  You normally use one of  the MCU s outputs   as a chip enable line    To transfer data between the two dev   ices  simply drop the chip enable line     load the proper data into the MCU s SPI  data register  and wait for the transfer  complete bit in the SPI s status register to  go high  Return the chip enable line high  to deselect the device  then read the data  transmitted by the device from the  MCU   s SPI data register  Piece o  cake     The M68HCO05 Microcontroller Applica   tions Guide  available from Motorola   gives a
194. ly AT compatible floppy disk support for 3 5   5 25  drives  capacities of 360k  1 2m and 1 44m  e Two serial ports and one parallel port   e 8 total expansion slots PC XT AT compatible  4 slots have 32 bit bus     The PC Tech Advanced System Motherboard is designed to complement PC Tech s X24 and X32 high performance processor cards  It contains the mass storage interfaces necessary for a complete sys   tem  plus the basic   O required in most systems  Extra care has been given to FCC compliance by design        34010 Monochrome Graphics Adapter II  e Up to 384k bytes display memory  e Upto2 Megabytes program memory  e Software is RAM based  allowing complete operating software  replacement and timing re programming from the host bus  e 34010 program loader included  Assembler  debugger  and C  compiler available   e Full hardware and software CGA  MDA and Hercules emula   tion    e Single bit shared memory bit map with optional resolution up  PC Tech Mono ll to 2048 x 1536  736 x 1008 standard   e Very high resolution COLOR version available    e Custom 34010 software development available  The TMS34010 is a true general purpose graphics processor  PC Tech makes the total processing power of the 34010 available to both programmers and end users  Our 34010 Monochrome Graphics  Adapter is designed to allow programming from the PC XT AT host bus  You can completely replace our 34010 software with yours to directly harness the incredible image processing power of the TMS  34010
195. m generator  Version 4 2  6   6 6 4  4 44 4 4 4 4 4 4 eee eoe eoo o o nos  35  Tiny Curses  Berkeley curses package   s   s e 4 4 4 2 4 4 4 4 4 4 ee ee eoe a a eoe oho eoe oh 9 o oh n e os 9 oh n o4  35  Polyglot RAM Disk  change disk size on the fly  includes utilities             2    eee ees Eua cene uit Sn et Yor  Vlg a Pn  t dues dr oce  30  Clisp EP with extensive internals documentation        s a   4  4 4 4 4 4 4 ee onn  30  Translate Rules to C YACC like function generator for rule based systems      2 1  6 6     ee o  30  6 Pack of Editors  six public domain editors for use  study  amp  hacking         6 6 ee ee  30  Crunch Pack  14 file compression  amp  expansion programs            s sos 4 a 4 4 4 ee ee ee  30  Pascal P Code Compiler  amp  Interpreter or Pascal to C Translator  Wirth standard Pascal                 lll r s  25  ICON  string and list processing language  Version ui       eo DTIc  25  FLEX  fast lexical analyzer generator  new  improved LEX  Version 1 1        4 4 leere  25  LEX  lexical analyzer generator  an oldie but a goodie                 4 4 e ee  25  AutoTrace  program tracer and memory trasher catcher              4  4 e  e e ee Heo eo oho oh hn e n n n n  25  Data Handling Utilities in C  data entry  validation  amp  display  specify Turbo Cor Microsoft                ee ee ee  25  Arrays for C  macro package to ease handling of arrays     6 6 4 ee  25  A68  68000 cross assembler            ee  20  List Pac  C functions for lists  stacks 
196. m the drivers to protect it    A  If it lets you sleep nights  by all  means do it  Opto isolators such as the  GE H11L2GE work perfectly  see Figure  6   The H11L2 needs a current limiting  resistor for the LED inside  about 220  ohms for five volts  Its output comes  from an on board schmitt trigger    It not only isolates and cleans up your  data  you can also use it as a level trans   lator  The H11L2 can run from 3 to 16  volts  That means if you have 12 volt  steppers  you can run your steppers and  logic from the same supply  That would  save drain on your computer and elimi   nate the regulator for the driver logic    The H11L2 has an open collector tran   sistor for an output  So you have to con   nect it to an inverter and use a 100K  pullup resister  That arrangement will  give a logic one output from the inverter  with a logic one into the opto isolator     FTT 774    p            DBAdvisor  Jan  89    M I C R OP ROG RA MM I PN G  11315 Meadow Lake e Houston  Texas 77077 e  713  870 0737    1 800 227 0918    MICRO CORNUCOPIA   49  Sept Oct 1989 31    Suppliers Figure 5   Motor Off Switching  No Braking      DIGI KEY  Inc    Box 677   Thief River Falls  MN 56701   800  344 4539    JERRYCO  Inc   601 Linden Place V V  IN914  OR GATE   Evanston  IL 60202   312  475 8440    Small Parts Unlimited  6891 N E  3rd Ave   P O  Box 381966  Miami  FL 33238 1736   305  751 0856    AIRPAX  Inc  Figure 6   Stepper Motor Interface     A Div  of North America  Philips Controls Cor
197. mbly language code  on my PC clone  using the SideKick  notepad editor  The PC based AS5 as   sembler  available from the Motorola  FREEWARE BBS  took care of assem   bling the code  I then used the PROG7  interface program to move the code into  the  HC705 EPROM           The projects software uses less than  256 bytes of EPROM  but offers consider   able flexibility and power  It should serve  as an excellent starting point for other  micro controller projects   You ll find a  lot of example  HC705 programs on the  FREEWARE BBS     The A2D routine shows how to con   tro  the A D converter chip with the  MCU  Upon entry  the accumulator   ACC  should hold the channel number  in the low nybble     An Example   Let s say you ve just read A D chan   nel 1 and now you re asking for data  from channel 2  When you ask for chan   nel 2  A2D returns the voltage reading  from channel 1  This is most important     a call to A2D does not return the re   quested channel s value  but the value of  the previously requested channel                    DEST Facsimile Pac    The Real thing  as reviewed in PC Magazine  April 11  1989   Features      Full CCITT Group III 8600 baud  capability JUST h   xTrue Background operation ECE  VED  xTelephone port  xKeeps daily activity log    xStores speed dial numbers S  P  ECAI d    xAutomatic requeuing  Broadcast mode           xCompatible with IBM PC    xT    ATTM i P UR CHASE       PS 2 Model 30    and compatibles    HUNDREDS OF EVERYDAY  HSC ELECTR
198. means too  much  We want to print 1500 dots per  line  With eight dots per byte of data  187  1 2 bytes would do the trick  But image  doesn t understand nybbles and would       shift color to the correct position       place it in the buffer     is the 8 bit buffer full       pad hex byte with leading 0 if necessary  P       print the byte in hex format     reset these in preparation for next 8 points       buffer ain t full  so get another point       get out of synch by four dots every line   So the first line of Figure 1 assigns 188 to  strsize and image throws out the extra  nybble at the end of each line     The main section of the program lo   cates the image at the center of the page   scales it to 5 x 5   and calls fractal  In real  life  all 282 000 bytes of data would fol     low fractal  But I didn t think it necessary  or prudent to print each and every one   just use your imagination    Images defined by a manageable  amount of data can use a direct data pro   cedure like         lt 0F12A377 gt          and     gt     tell the interpreter that it s  dealing with hex values  I used this  method at first and it worked fine until I  got into larger images  It turns out that a  hexadecimal string cannot exceed 64K   This wasn   t obvious to me  so I went  whining to Adobe   s developer   s hotline  and had the answer in seconds  Good  outfit     Generating The Hex Data   I won t bore you with the specifics of  the Mandelbrot code again  it s been  covered in Micro C
199. measured    Practically  however  no amplifier has  an infinite input impedance  and many  circuits aren t affected if you remove a  little current  In a circuit where current  drawn by the measuring system causes    significant errors  you should use an in   strumentation amplifier to maximize  your input impedance     Dynamic Range   Dynamic range refers to the largest  and smallest values a system can  measure  If you have a 12 bit converter  and the largest value you want to  measure is 100 volts  obviously this sig   nal would have to be conditioned before  handing it to the converter   and you  want to resolve values down to 0 01 volt   then you have a dynamic range problem    Your converter will need 10 000  counts to measure up to 100 volts in 0 01  volt increments  and a 12 bit converter  only has 21  or 4096  counts  To solve the  dynamic range problem  some boards  allow you to change the gain of the input  amplifier  you use a lower gain for  higher voltages  and increase the gain  when the voltage is lower    Some boards require you to use a  jumper to set the gain  which isn t a very  flexible solution   Real Time Device s  AD100 500 12 bit analog input boards  have software prcgrammable gains so  you can change the gain according to the  signal  Instrumentation amplifiers often  have programmable gains  so if you  build your own  front end  you can use  some of the board s I O lines to control  the amplifier gain     Grounding  amp  Ground Loops   Digital folk 
200. mmand Key assignments  to match what they re accustomed to   The program MYSTUFF M in Figure 2  shows how to do this  To begin using  this program  just type it in with Brief   then type alt F10 to compile and load  it    In subsequent sessions  start Brief  with the   mmystuff  option  The  m  tells Brief to load the macro file mystuff   When loading a macro  Brief searches  for a function called init and  if found   executes it    You re probably wondering about all  those parentheses in there  The Brief  language has many similarities to LISP   One similarity is that every statement is  surrounded by parentheses  instead of  being separated by commas  like C     It also uses prefix notation instead of  the standard infix  This means that if  you want to add 3 and 4  you use the  statement        3 4     If you want to call the routine  square   on the result of 3 4 2 and put the result  of square into the variable  result    you  would use        result  square       3 4  2       Kind of like a backwards HP calculator      message    The  sum of first ten  squares is     DA an   exemple    of  calling   Squares  det    id   squares 10  TE       A Zoom Window   Also in Figure 2 is an assignment of  the alt Z key combination to a macro  called zoom window  This macro isn t  included with Brief  I wrote it myself    I wrote it to mimic a command in  Point that zooms the current window to  fill the entire screen until I press alt Z  again  when it restores the original state  
201. mpletely satisfied    can   return it within 30 days for a full refund    I need O 51 4    disk or O 31   2  disk  O Send me the   JAT Pascal program formatter too  for only  14 95    Name   Address   Cty            State Zp   O Check M 0  OCOD O Company PO   edd  20    PA residents edd sales tax  Add  10 for shipping outside   US Canada  US funds on a US bank only  Needs only  192K and 1 floppy drive     Reader Service Number 154    62 MICRO CORNUCOPIA   49  Sept Oct 1989       used Brief more and more  As of today   I haven t used any editor except Brief in  five days  A couple of times I acciden   tally called up Point from force of habit   and immediately quit    Even though it isn t  everything I ve  always asked for in an editor   it s  slowly becoming    what I   ve always  asked for in an editor more than any   thing else      Corrections   There were a couple of mistakes in  the listing of TRAP in my column of  issue 48    Mistake 1 was my fault  I changed  the operation of the routine CRASHIT   bottom of page 46   but didn t change  the comments at the beginning  Remove  the reference to  string to print in  CS SI    and  interrupt   in DX   These  two parameters don t exist in this ver   sion of TRAP   Mistake 2 is the fault of the stupid  programs that Micro C uses for printing  listings   It seems that somehow my  listing got sent through Ventura again     Editor s note  We ve Ventura d every  listing Laine has sent us for the past 2 1 2  years  But we forgot to 
202. ms may  have up to 100 screens    Each PLC s manufacturer has its own  proprietary LDP  Some implementations  have added features such as subroutines  and advanced mathematical features  The  best of the LDP languages support a  BASIC like language composed of key   words that can be used in the same net   works as the relay contacts  l ve shown  an example of an advanced ladder lan   guage below             TSEC    COND      SUB50     A    TSEC   A second timer    COND   A conditional statement  ie  TSEC 10   SUB50   Goto subnetwork number 50    When contact A closes  TSEC will  start timing  When TSEC equals 10     COND will pass power to SUB50  This     will transfer program execution to sub   network number 50     Programming And Control Computers  Many different machines are used as  programming and control computers   CP M based Kaypro machines were  very popular for a while  as were VAX  computers  However  with the popularity  of the IBM PC  most companies have  switched to the PC standard for their  programming and control computers   Many companies make  hardened   IBM PC AT compatibles for industrial  users  They have sealed cases  shock   mounted hard disks  and super heavy   duty power supplies  to support extra  expansion cards  In dirty or wet en   vironments they use membrane key   boards  At a recent trade show  one ven   dor had his AT compatible running in an    24 MICRO CORNUCOPIA   49  Sept Oct 1989    aquarium with fish swimming around  the EGA monitor  
203. n    When you request execution of a pro   gram  the transient portion constructs a  program segment prefix directly above  the resident portion of COM   MAND COM  It then loads the program  immediately following the program seg   ment prefix  sets the exit addresses  and  transfers control to your program    When execution is complete  COM   MAND COM regains control and assigns  the same memory locations to your next  application  However  if you terminate  with one of the TSR functions  the pro   gram becomes an extension of the resi   dent portion of COMMAND COM    The area of memory occupied by the  program is reserved in the same manner  as memory is reserved for DOS  Future  applications will not overwrite this sec   tion  The only way to eliminate such a  program  without the benefit of a resi   dent memory manager utility  is to re   boot     By Edwin Thall    Wayne General and Technical College  Orrville  OH 44667    Establishing Residency   Let s install a simple program directly  above the resident portion of COM   MAND COM  After installation  we ll use  the DEBUG utility to locate and examine  the program  Let s begin by calling Inter   rupt 27H to incorporate the message   STAY RESIDENT  in the resident por   tion of memory    Interrupt 27H terminates the currently  executing program and reserves part or  all of its memory so that the next tran   sient program will not overlay it  The  maximum quantity of memory this inter   rupt can reserve is 64K bytes  From D
204. n this installment of Tidbits  I ll describe  the key features of object oriented program   ming  from a Turbo Pascal perspective   Then   I ll build a simple object  an I O error handler   to illustrate these features    If youre already familiar with object   oriented programming languages like C   and  Smalltalk  it might help to know that Turbo  Pascal objects are very much like those of C     A little less macho  perhaps  but powerfully  featured     86 MICRO CORNUCOPIA   49  Sept Oct 1989    Turbo Pascal 5 5   TP 5 5 is TP 5 0 plus objects   Actually  5 5  has several other important improvements  but  I ll leave their details to the Borland advertise   ments and my favorite Dr  Dobbs columnist    The big reason for getting your hands on 5 5 is  the new type   object    Objects have lives and a language of their  own  and it s worth spending a few para   graphs getting to know the language    Three main properties characterize an ob   ject oriented programming language        encapsulation     inheritance     polymorphism    Encapsulation   I repeat   tho slightly differently    From a  Turbo Pascal perspective  encapsulation means  you can combine a record with the procedures  and functions which will manipulate the re   cord  The new data type formed by combining  data  a record  with code  procedures and  functions  is an object    Declare a record like this       type  recordl   aRecord     aRecord   record  Name   string   X Y   integer     end     where X  Y  and 
205. nce engine for use with C programs          6 4  4 2 4 4 ee ee  60  Async Termio  Unix compatible general terminal interface for MS DOS          4 ee  55  oe  amp  Restore Utility by Blake McBride  multiple volumes  file compression  amp  encryption      s  s 6 1 ee ee ee ns  50  AUS rep  exceptionally fast  revolutionary text searching algorithm  also searches sub directories            ee ee eee ee  50  OBJASM DE  obj files to  asm files  output is MASM compatible                4 ll s ee ern  50  Polyglot TSR Package  includes reminder  bookmark  virus catcher  cache manager   amp  speech generator             a a a  50  Multi User BBS  chat  mail  menus  sysop displays  does not include modem driver           oo a lll  50  Fortran to C Translator by Polyglot              4    4 44 4 4 e ee e e e hoses homo  oo soo non  40  Virtual Memory Manager by Blake McBride  LRU pager  dynamic swap file  image save restore                  l l ln  40  Heap I O  treat all or part of a disk file as heap storage            4    4 4 4 44 ee hon s  40  Ae  s System Tools  multi tasking window manager kit        a   4  4 4 44 4 4 4 4 ee ee Soo on non  40  OOPS  collection of handy C   classes by Keith Gorlen of NIH  Version 2 2          eee  35  Bison  amp  PREP  YACC workalike parser generator  amp  attribute grammar preprocessor  now includes documentation                   35  PC XINU  Comer s XINU operating system for PO            ee ee 4 4 4 el 4 e  35  CLIPS  rule based expert syste
206. nitored device    and the I O board        You can use the counter timer  as the  name suggests  as a counter or as a  timer  You ll use a counter  usually  to  count some outside event  such as the  number of times a beam of light is  broken  Use a timer to set up a PC inter   rupt so that you can do something at  predetermined intervals  In a control sys   tem  it s usually very important that you  take samples or apply the control signals  at regular intervals    Use the digital I O to read thresholds  and to throw switches  If you just want  to turn something on or off  or see if a    By Bruce Eckel    Revolution2  501 N  36  Street  Suite 163  Seattle  WA 98103    value is above or below a certain level   digital I O is the way to go    All the above functions sound great   but a lot of people become confused  when they realize they aren t just hook   ing up a stereo  You can t just hook a  wire between the monitored device and  the I O board  You have to perform  something called signal conditioning  first  so you give the board a value it s  capable of measuring  that won t fry a  chip      Digital Inputs   All digital inputs and signals to the  counter must be TTL signals unless the  documentation specifies otherwise   Roughly  this means that voltages be   tween 0 volts and 0 8 volts will be inter   preted as a logical zero  Voltages be   tween 2 4 volts and 5 volts will be inter   preted as a logical one   Between 0 8 and  24V is undetermined   If the inputs  exceed
207. nondestructive format  I questioned  the commenters     What kind of software        What kind of drive      What kind of controller      Did you have new problems after reformatting and  if so   what kind and how long did it take for them to show up      Were there problems before reformatting     They were using SpinRite  5 1 4  half height Seagates  usu   ally the 225s   and Western Digital controllers  those who  knew which controller they had   The new problems showed  up within a few weeks of the format  and most folks were  seeing a bad sector or two before they began the reformat    Bear in mind  this is a tiny survey  involving only half a  dozen drives     By the way  if you ve been using any hard drive reformat  packages that save the data  by all means drop me a post card  with answers to the above questions  to Micro C  P O  Box 223   Bend OR 97709  or leave a message to the SYSOP on our BBS   503 382 7643   That way I ll have a bigger survey    Despite the tiny size of the sample  I suspected something  might be connecting all this together  l d noticed that our XT  machines took hours for a reformat while ATs took only  minutes  Plus  the poor XT drives were seeking endlessly   especially as the format progressed  while the ATs were just  stepping merrily along track by track    It was then I discovered that the older XT controllers auto   matically home the head  the move toward home is very  slow   then count their way out  when they re asked to do a  single 
208. nowand put Saywhatand Topaz  to the test yourself  They re fully  guaranteed  You don t risk a penny     Special limited time offer  Save  26   Buy Saywhat   and Topaz together  for just  99  plus  5 shipping  and handling      Visit your nearest dealer  or call toll free   800 468 9273   In California  800 231 7849  International  415 571 5019  Software Science  Inc     The Research Group  100 Valley Drive  Brisbane  CA 94005                      enr etd ane  3 23 gt   15 555 30523         MONEY BACK GUARANTEE   7     Ifyouaren tcompletely delighted with Saywhat  or Topaz  for any reason  return them within   30 days for a prompt  friendly refund          TOPAZ  The breakthrough  DBMS toolkit for Pascal    If you d like to combine the raw power  and speed of Turbo Pascal or Micro   soft s QuickPascal with the simplicity Ps  and elegance of dBASE  Topaz is  just what you re looking for   That s because Topaz was NN  specially created to let you         enjoy the bestof both worlds  yee a7   The result  You create com  UN aa  plete  truly dazzling applicat   ionsina very short time  And no wonder     Topaz is a comprehensive toolkit of GC  dBASE like commands and functions  1  designed to help you produce Dav  outstanding  polished programs  fast    Check out these powerful features        Over 200 routines all with easy to   use  dBASFE like syntax     e Dataentry routines like SAY  GET   PICTURE  RANGE  color selec   tion  unlimited data validation     e Open up to 10 DBF fi
209. nt  patterns     REAL TIME CLOCK   Verifies correct timing  all internal  registers  and battery backed up RAM      and many more features to insure the integrity of your computer     PC XT Disk Diagnostics  w  test diskettes   PC XT I O Loopback Test Plugs  COMPLETE PC XT DIAGNOSTICS SET  save  28     PC AT System Diagnostic Software   PC AT Disk Diagnostics  w  test diskettes   PC AT 1 0 Loopback Test Plugs   COMPLETE PC AT DIAGNOSTICS SET  save  28     BOTH PC XT and PC AT SETS  save  75     Capital Software presents the definitive disk based diagnostics  package for the IBM PC AT and XT  Atechnical tool detailed  enough for the repair technician  A friendly interface that  places problem solving skills in the hands of the end user  An uncompromising solution  i    SEND CHECK OR MONEY ORDER TO USE YOUR VISA OR MASTERCARD    CAPITAL SOFTWARE   951 2 OLD COUNTY ROAD SUITE 224  BELMONT  CALIFORNIA 94002   FOR INFORMATION CALL   408 293 5279    CALL TOLL FREE  800  541 0898    3 Y  p            MICRO CORNUCOPIA   49  Sept Oct 1989 11       The Power Of The SPI   Motorola s high speed SPI adds a new  dimension to micro controller design  By  replacing the older 8 bit parallel interface  with the SPI s three wire synchronous  bus  serial in  serial out  and clock   wir   ing complexity between the MCU and  support chips drops significantly  4   For example  the Motorola MC145041  serial A D chip puts 11 channels of 8 bit    A D in a 20 pin package  It takes only  five wires  inc
210. nto its ASCII hexadeci   mal equivalent  But watch out for single  digit hex numbers  PostScript s image  operator demands two digits for each  hex byte  So any number less than 0x10  gets a leading zero     Color Printing     under suitable conditions  full  color can be represented as three color  separations each defined by a gray scale  image  Such image processing is beyond  the scope of this manual    From p  72 of  the Postscript Language Reference Manual     I just love it when they talk like that   It s a challenge  a gauntlet thrown  We ve  done monochrome  but color   s a must for  the cover    We print Micro C on a four color  press  yellow  magenta  cyan  and black   By laying down different amounts of  each of the four colors  we can build a  staggering number of new colors  But we  can t do any color  Complications arise  due to factors like the color printing  order  and the discrete  rather than con   tinuous  values for color intensities  Six   color presses exist that can print the nor   mal four color options we have  plus two  custom mixed colors  But that s another  story    If you look at a printed page closely   use a magnifying glass   you ll see that it  contains an array of dots  just like a video  image  A square inch of image always  has the same number of dots  But if each  of those dots increases in size  the square  inch becomes darker    The array defining the dot locations is  called a screen  A 0  screen has dots of  zero size and gives a to
211. o Joystick   Serial To Parallel Interface  Business COBOL   60 pages    ISSUE  19  8 84    Adding Winchester To BBII  6 MHz On The BB   Bulletin Boards   Track Buffering On Slicer  4 MHz For The 820 1   64 pages    ISSUE  20  10 84    HSC 68000 Co Processor  DynaDisk For The BBII   Serial Printer On BBI Sans S10  Cheap  amp  Dirty Talker For Kaypro  Extended 8    Single Density   72 pages    ISSUE  21  12 84    Analog To Digital Interface  Installing Turbo Pascal   Low Intensity BB  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   88 pages   ISSUE  23  4 85   Automatic Disk Relogging  Interrupt Drive Serial Printer  Low Cost EPROM Eraser    Smart Video Controller  Review  MicroSphere RAM Disk  86 pages    a    ISSUE  24  6 85    C ing Into Turbo Pascal  8  Drives On The Kaypro  68000 Versus 80x86  Soldering  The First Steps  88 pages    ISSUE  25  8 85    Why   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  Graphics In Turbo Pasca   104 pages    94 MICRO CORNUCOPIA   49  Sept Oct 1989    ISSUE  27  12 85   SOLD OUT    ISSUE  28  2 86   Rescuing Lost Text From  Memory   Introduction To Modula 2  Inside The PC   104 pages    ISSUE  29  4 86   Speeding Up Your XT  Prototyping In C   C Interpreters Reviewe
212. o Pascal  But  of course   it is the object oriented extensions  which make these products interesting     56 MICRO CORNUCOPIA   49  Sept Oct 1989    Microsoft followed the existing  standard for Object Pascal  while Bor   land created their own object oriented  dialect of Pascal  Both programs are  very similar in capability and func   tion   in spite of what the propaganda  says    Borland has made some changes  which enhance the speed of object   oriented programs    Turbo Pascal 5 5 also shows some  signs of incomplete thinking by Bor   land  their implementation of construc   tors and destructors  borrowed from  C    is weak  QuickPascals object   oriented extensions are easy to learn  and follow a standard used in Macin   tosh Pascals  but they produce pro   grams which are 5  slower than their  Borland counterparts    Both companies are looking to the  future  they are developing enhanced  versions of the programs as you read  this  I see a similar fight occurring in re   gard to C    Microsoft has publicly announced  plans to develop an object oriented C by  the first quarter of 1990  they will prob   ably be implementing an extended C      Borland is being coy  saying that  they are moving toward object oriented  C  but that they haven t made a decision  on how to go about it  While Borland  can define their own standards in the  limited world of PC Pascal  I don t think  they can do the same for the larger uni   verse of C        Resources   I highly recommend A K  
213. of anObject1    We want anObject2 to be identical to  anObject1  except we want to extend it  by adding a procedure called do   SomethingElse    We build anObject2 simply and  quickly by inheriting  from  anOb   ject1        anObject2   object  anObjectl   procedure doSomethingElse     end     Since anObject2 inherits access to all  the data and methods of anObject1  we  don t need to redeclare anObjectl s data  fields and methods  We simply add the  new method    Now we can doSomethingWithX amp Y  and doSomethingElse to anObject2       type  object2   anObject2     With object2 do    begin  X   5   Y   8     doS  methingWithX amp Y   doS  methingElse     end     MICRO CORNUCOPIA   49  Sept Oct 1989 87    Notice  again  that we don t have to  pass the variables X and Y to do   SomethingElse  it inherited knowledge  of X and Y along with everything else   from object1     Inheritance lets us build very com   plex objects without repeating any code   The new object simply inherits  whatever it needs from an ancestor  But  thats only the beginning  haven t we  heard that before      More important  the new object can  use as much or as little of its ancestors   code as it needs  In fact  it can reimple   ment any method it chooses  We call  this reimplementation of code polymor   phism  and in it lies incredibly beautiful   and subtle  power     Polymorphism   Polymorphism means that a method  can have one name that s shared up and  down an object hierarchy  Each object  can  if
214. of the  processor board s video section complete with sample driver routines  All packages contain  serial and parallel port details and programming examples  Also coverage of the processor   clock  I O  and disk controller  information that s not even available in Kaypro s own dealer  service manual       Key pro Be IV  pre 84  aiii tig e aria eid p erecti C rites a dtr DU DD Gd  20 00  Kaypro 10  without Modem    iecit est tub ci aaed a6 ero ach Bd erae nennen d det vein raii  20 00  Kaypro 2  4  and 10  84 series    5 eto aco eroi cericsus eode aaro eie Pw ae eec nae  20 00    NOTE  These packages cover only the main boards  You re on your own when it comes to  disk drives  power supplies  video cards  etc     Phone Orders   503  382 5060 or 1 800 888 8087 Monday Friday  9 AM   5 PM PST  48 MICRO CORNUCOPIA   49  Sept Oct 1989                                            8280 Clairemont Mesa Blvd   Suite 117  San Diego  California 92111   619  569 1864      AT BABY AT XT TURBO  um                                                                                  8 Meg CPU Board Motherboard UNINTERRUPTIBLE ED  FINE 2 o Cdp 650  Zero Wait State 5  amp  8 MHz Switchable POWER SUPPLIES Sub C Cells 1 5ah              1 50  8 Expansion Slots 8088     V20 Optional 12V Pack Sub C                  10 00  640K RAM On Board Optional Co processor 400 Watt MODEL IPS400   Double D Cell 2 5V 4ah unused    8 00  Math Co processor Option 8 Expansion Slots  650 COells cire eps 1 75  Phoenix Bio
215. of windows    zoom window uses a Brief over   lapped window to display a file over  the top of the normal windows on the  screen  I was forced to do it this way be   cause  in order to make a tiled window  fill the screen  I would have to tear  down the current window structure of  the screen  I have already mentioned  that there is no way to get enough in   formation about windows on the screen  to reconstruct a window configuration  once it s destroyed    First  zoom window gets the screen  size  It uses that information to make  the zoom window as large as possible   Next it asks which buffer  file  in practi   cal terms  is in the current window  It  then creates a new window to fill the  entire screen and the  current  buffer is  attached to the new window    After setting up the window to edit   but before editing  I reassign the alt Z  key to prevent attempting to zoom an  already zoomed window  This wouldn t  be dangerous  you can create up to  three overlapped windows  simul   taneously  although the only way to    switch to a previous window is to de   lete the current one   but there   s no rea   son to zoom an already zoomed win   dow    To allow entering keystrokes and  editing the file in the zoomed window  I  call process  which is a recursive call to  Brief itself  process inputs and processes  keystrokes until it calls the macro  exit    After process is finished  it   s time to  delete the zoom window  then reattach  the original buffer to the original win  
216. ogram shown in Fig   ure 1  CRITTERS C is written for Micro   soft s C 5 10 and QuickC 2 0  an execu     MICRO CORNUCOPIA   49  Sept Oct 1989 51       table version is available on the Micro C  BBS or on the issue  49 disk    The program requires an IBM PC  compatible with an EGA card and at  least 256K of RAM  I will create ver   sions compatible with Turbo C 2 0  Zor   tech C  and WATCOM C 7 0  I may  even write an object oriented version of  the program in C    Making modifica   tions for non Microsoft C compilers  consists of changing the graphics calls  to match each compiler s library  It isn t  very difficult to do    The version of CRITTERS presented  here has several features of my own de   sign  Bugs are known as critters  and I  refer to the bacterium generically as  food  The critters store in a doubly   linked list and are dynamically allo   cated  You define a critter by a structure  which contains the current location  age   energy level  and pointers to adjacent  critters in tlie list  Food is merely a  different colored pixel    Critters move either up  down  left   or right  Initially  they have an equal  chance of moving in any direction  A  critter gains energy when it occupies the  same position as a food pixel    When the critter is mature  having  reached a specified age   and it has  sufficient energy  it creates a new bug     and has its age reset to zero  New bugs  and their parents each get half of the  energy the parent had when the birth  took pla
217. ompres   sion utilities  Create software sound files you can add  to macros for voice recognition verification response  A  complete  superior speech and sound development tool     SOFTWARE CONVERSION CODES     The Voice  Master Key System operates a growing list of third  party talking software titles using synthesized phone   tics  text to speech  or digitized PCM  ADPCM  and  CVSDM encoded sound files  Voice Master Key System  does it all     EVERYTHING INCLUDED     Voice Master Key  System consists of a plug in card  durable lightweight  microphone headset  software  and manual  Card fits  any available slot  External ports consist of mic inputs  and volume controlled output sockets  High quality  throughout  easy and fun to use     ONLY  149 95 COMPLETE    ONLY  89 95 FOR TANDY 1000 SL TL MODELS     SOFTWARE PACKAGE ONLY   Requires Tandy Brand Electret microphone     ORDER HOTLINE   503  342 1271  Monday Friday  8AM to 5PM Pacific Time    Visa MasterCard  company checks  money orders   CODs  with prior approval  accepted  Personal checks  subject to 3 week shipping delay  Specify computer  type and disk format  3 2   or 514   when ordering   Add  5 shipping charge for delivery in USA and  Canada  Foreign inquiries contact Covox for C  amp  F  quotes  30DAY MONEY BACK GUARANTEE IF NOT  COMPLETELY SATISFIED  ONE YEAR WARRANTY  ON HARDWARE     CALL OR WRITE FOR FREE PRODUCT CATALOG    COVOX  INC  675 D Conger St       Eugene  Oregon 97402  U S A   TEL  503 342 1271    FAX  
218. on the screen    What makes Palmiter   s ideas inter   esting is that he has built a small  amount of  genetic  information into  each bug  Each bug has a set of genes  which control its movement  Lottery de   termines movement  every turn picks a  random direction  However  as the bugs  reproduce  they mutate  The mutation  increases the probability that a bug will  go in a certain direction  Where the first                     bugs tend to jitter randomly  later bugs  take on a more directed pattern    Those bugs which find food live long  enough to reproduce  passing on their  characteristics to a new generation  Jit   ter bugs have a problem when the food  in their local area becomes scarce  be   cause they tend not to travel far from  their origin point  Cruiser bugs  which  travel primarily in one or two direc   tions  are much more likely to find new  sources of food  Zigzag cruisers move  in an erratic pattern which tends to lead  them in one direction  but with more  area coverage    Palmiter s program is simple  yet ele   gant  As time goes on  the bugs seem to  develop behavior patterns   even if they  are a bit random in nature  But is it real   life on a computer screen   No  real  life  even for single cell organisms  is far  more complicated than Palmiter s simu   lated bugs  Nevertheless  he has made a  major step forward in the creation of  real artificial life    I   ve taken the ideas developed by  Palmiter and expanded upon them  My  first effort is the pr
219. ou want to disassemble     With its built in help screens you   won t have to constantly refer to   the manual either  although   there are valuable discus    sions on the ins and outs   of disassembling which   you won t want to miss   S     The Code Baetereol    MD86 is a professionally   supported product and yet costs   no more than  shareware   And of course  it   s   not copy protected  VERSION 2 NOW AVAILABLE     MD86 V2 is ONLY  67 50  51 50 s amp h    tax    C C  Software  1907 Alvarado Ave   Walnut  Creek  CA 94596   415  939 8153    Reader Service Number 31          Letters    practical articles about what you can do  with what you have  articles on disk  formats  what s a FAT  using CON   FIG SYS  etc  So many magazines have  articles that are just hype for new hard   ware and software that I can t afford  anyway  Besides that  your non glossy  pages are easier to read than the glossy  ones that have so much glare    However  I subscribe to your ma   gazine for the computer content  A few  remarks once in a while  about life in  general or your SOG adventures  are re   freshing  And I enjoy your wry humor   But your July August issue went over   board on your metaphysical views   That s not what I subscribe for     Peter E  Walberg  390 Loma Dr  Box 57  Forsyth  IL 62535 0057    Editor s note  Thanks for the comments  Peter  I take them to heart  So far  we ve  received seven letters  calls  and BBS mes   sages opposed to my mentioning the  metaphysical in the edi
220. own traces to the  power supply ground  or to a single  point where all the ground traces meet     Simple Test  Digitize A Battery   You can easily test an A D converter  board by using it to digitize a 1 5 volt  flashlight battery  You can hook the  battery directly to the inputs of most  boards  since 1 5 volts is usually within  the range of a typical board    Then write a very small piece of code  to read the value of the A D converter  and print it to the screen  When trying to  solve a problem which involves both  hardware and software  I find it useful to  start with something simple so I can see  if my problems are hardware or soft   ware  Assuming you hook up the battery  to the board correctly and the board is  operational  the problem you find with  this configuration will always be in hard   ware     Since a battery is such a quiet  stable   source of input  any noise in the least sig   nificant bits of the conversion will almost  always be due to problems in the design  of the board     A  Gotcha   Although boards with A D con   verters on them have become very cheap   you re in for a surprise when you try to  calibrate one  The manufacturer will cali   brate the board  but it s best to test them  when they arrive  All boards eventually  drift out of spec and you need to recali   brate them    The problem is that calibration re   quires equipment which is usually un   available to the average user  For a 12 bit  A D converter  you need a calibrator  with overall 
221. own with a gossip   everything  knows about everything else in the ob   ject       This combining of data and code in  one container is a neat extension of  units  Programs consist of units  Units  consist of objects  So at one level  an ob   ject is a new way to organize tools  But  that s just the beginning  More impor   tant  it   s a new way of thinking about  tools  Let s take another step     Inheritance   Once you ve defined an object  you  can use it to build a hierarchy of objects   Each time you build a new object   called a descendent  from an existing  object  called an ancestor   the new ob   ject inherits all its ancestor s code and  data    An object can have more than one  ancestor  but only one immediate ances   tor  So an object hierarchy might look  like this       objectl      object2         object3       object4  l        object5    In this little sketch  object  has two  descendents  object2 and object3  object3  has two descendents  object4 and ob   ject5  object4  for example  inherits  everything from object3  its immediate  ancestor  and everything from objectl   an earlier ancestor   This can go on ad    infinitum  or until you run out of  memory  disk space  or ideas     In an important sense  object   oriented programming is a method for  building family trees for data structures    Let s say we ve built an object       type    anObjectl   object  X Y  integer   procedure doSomethingWithX amp Y     end     and now we want to build anObject2  out 
222. ows the PostScript code to  print a monochrome  1500x1500  5     square image in the center of an 812 x11   sheet of laser printer output  Right off    you ll see the means for commenting  a  percent sign directs the interpreter to ig   nore all text until the end of the line    The procedure called fractal intro   duces the image operator  image takes its  operands like this  number of horizontal  elements in a line of the image  1500    number of lines  1500   bits per image  element  1 here  but can be 2  4  or 8 for  grey scale images   transform matrix  and  a procedure to provide the image data    The transform matrix  as written        1500 O O 1500 O 0     reproduces our 1500x1500 image with no  changes  But consider an image with  origin at the upper left corner  like a video  image  We d like to invert it to match  PostScript   s expectations  The following  matrix will do the inversion      1500 0 0  1500 0 1500     The other matrix elements define rota   tion and scaling of the image  But Post   Script operators exist to perform these  functions much more easily  so we won t  fool with the elements containing zeros    Next  image s data procedure reads  strsize hexadecimal bytes from the cur   rent PostScript file being interpreted  For  us  that s one horizontal line  Note that a  hexadecimal byte is represented by two  ASCII characters in the PostScript file   PostScript expects the image data to be  the first thing following the call to fractal  in the main pro
223. p   Cheshire Division  Cheshire Industrial Park  Cheshire  CT 06410 FROM   203  271 6000 COMPUTER    Call Airpax for the name of your local  distributor and ask for a copy of their  stepper motor handbook                286 or 386SX   CAN T MAKE UP YOUR MIND     WHAT SUITS YOUR NEEDS NOW MAY NOT BE b i   MD Doo  RIGHT FOR YOU IN THE FUTURE  TAKE ADVAN  E Dem E S  wp  TAGE OF THE SPEED AND POWER OF A PT286 4       ma d  SYSTEM ANDRETAIN THEOPTION OF UPGRADING O rder some   LATER TO A 386SX WITH A PLUG IN CPU MODULE  l   ALL PRODUCTS ARE COMPATIBLE WITH DOS     UNIX  XENIX  OS 2  AND MAY CONTAIN UP TO 5  MEGABYTES OF ON BOARD MEMORY  Mandelbrot Explorer 3 0  286 386SX KITS ARE AVAILABLE    ePT386SX Assembled board  16MHZ  512K RAM     FDC  2 serial  1 parallel port  795 00 Fantastic fractal grapnics on 16 color EGA VGA to 800x600     ePT286 Assembled board  16MHZ  OK RAM  FDC  Magnifies up to 16 5 trillion times  Stop and start at will  save and  2 serial  1 parallel port  475 00 retrieve  collage  full control over color boundaries   Zoom box     ePT386SX Optional upgrade toPT286  325 00 display of periodic orbits  auto backup  all optimizations for speed   CPU Module Only including pixel interpolation and 386 integer support  Comes with    seven ready made pictures for immediate gratification   COMPLETE SYSTEMS STARTING AT  999  1 YEAR WARRANTY  CATALOG AVAILABLE UPON REQUEST  30    PERIPHERAL TECHNOLOGY i  1710 CUMBERLAND PT  DR  SUITE 8  1615 Aloe Way  MARIETTA  GEORGIA 300
224. pper  motor was  so I said   Steppers  eh      Yeah  They re great  I can get them  from Jerryco for  5 a piece  Can you de   sign me some driver circuits  The ICs for  powering these things would cost  20 a  shot if I could find them     Twenty bucks  For some silly reason  I  still think ICs should cost less than the  socket to plug them into  The next day  John mailed me the excellent Airpax  stepper application manual  So there I  was  a new project     Figure 1   Unipolar Winding Stepper Motor Sequencing     Another Project Starts    I had four design goals   1  low cost    2  directional control   3  some degree of  direct speed control by the computer   and  4  the use of as few lines from the  parallel port as possible    After a little experimentation  I found  I could do the job with cheap  easily  available CMOS ICs  though the design is  a bit more complex than with dedicated  driver chips    But you save a lot  The driver uses  three lines directly from your parallel  port  Lines one and two control the speed       28 MICRO CORNUCOPIA   49  Sept Oct 1989                                               M  INENENENEEEEEERRRERRRRRRRNI    of the stepper  Line three controls the  direction of rotation  The logic runs off  the computer s 5 volt supply  I recom   mend you run the stepper off a separate  supply   Don t torture your computer  any more than you have to     John used 12 volt steppers on his ma   chine  With the transistors specified  he  could have run 5 to 2
225. preting inch  Instead  both  inch   and     72 mul     get pushed onto the stack  for use by the def operator  def pops the  two arguments off the stack and pushes  them onto another stack called the current  dictionary    We ve just created a PostScript proce   dure  The curly brackets delimit the pro   cedure body  The next time the interpre   ter sees something like  5 inch   it  pushes 5 onto the stack  searches through          the current dictionary until it finds     inch     and pushes its definition onto the  stack also  So   5 inch  becomes  5 72  mul   or 360 points  Just right    Variable assignments work the same  way      pi 3 1416 def    assigns a value to pi in the current dic   tionary    The term current dictionary implies  that not so current dictionaries exist   That s the way the scope of variables and    MICRO CORNUCOPIA   49  Sept Oct 1989 17          procedures can be controlled  variables  and procedures exist only within the dic   tionary of their birth     Line Drawing   To draw a line in PostScript  we deal  with paths  The following code draws the  first crop mark in the lower left corner of  the page     newpath   0 01 inch setlinewidth   1 inch 0 9 inch moveto   0 inch  0 5 inch rlineto  0 9 inch 1 inch moveto   0 5 inch 0 inch rlineto  stroke   showpage    The newpath initialization deletes any  path that might be lurking about  set   linewidth overrides the default width for  lines  moveto does just what you d ex   pect  It takes the x coordin
226. r   stand  he pointed out  Compatibility be   comes an issue only at extraction time    To create an archive you can use  either ARC or ZIP  Of course  each ven   dor hopes its package will become the  standard  Each is willing to let third   party developers address compatibility  with extraction utilities that understand  both formats    It turns out that many people use ar   chiving programs for data backup   squeezing large amounts of hard disk  information into a much smaller space  on floppies  That raises a fundamental  question about archiving priorities  size  versus security  In one sense  the best  archive is the smallest archive  and  that   s one major area of competition  among compression programs  File inte   grity  however  depends on data redun   dancy     The point of archiving is to reduce  the number of bits used   said Nissen    Redundancy runs counter to this     Vendors will have to decide whether  to aim at size or security  since users are  clearly interested in both file integrity  and compression  Katz and Henderson  both said that they were not expecting  to replace backup utilities with their  programs  but people are already using  ZIP and ARC for data storage    The two competitors further agreed  that size is a tradeoff against speed and  security  It takes time to figure out the    most efficient compression  PKWare  managed to beat ARC in the early going  by coding the algorithms in assembly  language while SEA used C    The archiving compet
227. r  Interfacing    by Bruce Eckel    Use your PC parallel port  for digital input and output  Build an Adapter Card for  your PC   Control a stepper motor  Design and build  electronic circuits       With wit and superb  technical figures  Bruce  captures the essence of   making electrons out of bits  and vice versa      Jeff Dunteman  Dr  Dobbs    Only  30 ppd   Includes Book  amp  Disk       Capturing Video Images    Voice Capture and Analysis    The Further Exploits of LIMBO    Bits From Our Past  3 D Graphics Programming    PostScript Programming  Part 2       MICRO CORNUCOPIA   49  Sept Oct 1989 95       This introduction should not be words  it  should be a fractal something  I think     heat  I m sitting in the Elk mountains   of Colorado and the face of this  mountainside varies daily   In fact  it  varies much more frequently  but my  perception of the variation is limited by  a matrix of factors     This morning  the ghostly purple  larkspur  Delphinium nelsonii  named  both for its dolphin like shape and a  Wyoming botanist  has suddenly  bloomed  It s surrounded by sky blue  lupines and various green bushes yet to  bloom  And it seems they re taller by  several inches since yesterday    As you read this  the mountainside  has varied many times  until the only  mountainside that exists is the one you  imagine  Perhaps now  in my future   it s in late summer seed    Discussions of time  like this one    are strange and always eventually in   conclusive  Yet time cont
228. r a  voice signal  most of which is less than 10  KHz  your sampling rate would be at  least 20 KHz    High speed A D converters usually  use a    successive approximation    tech   nique  They test the signal to see if it   s  above or below the halfway point of the  full voltage range  which establishes the  most significant bit of the result   If the  input is above the halfway point  the  value of the halfway point is subtracted  and the remainder tested to see if it   s  above or below the quarter way point   which establishes the penultimate bit    This goes on until it establishes all the  bits  at which time the conversion is  complete  l   If the  input signal changes very  slowly  the conversion occurs before    capacitor is empty  the discharge time is  proportional to the input voltage  This  method is also called integrating    Because it integrates  it ignores noise  and doesn t have the problems associated  with the successive approximation con   verters  So you don t need a sample and   hold  and you often don t need a filter   However  a dual slope converter is slow   though you get much greater resolution   number of bits   The Lawson Labs board  is appropriate for taking high accuracy  measurements  but not for capturing  waveforms       Filtering   If you use a successive approximation  converter with a built in sample and   hold  you only need to worry about   1   voltage level adjustments  and  2  filter   ing out noise and frequencies higher than  those
229. r kit                         80  C Windows Toolkit  pop up  pull down  spreadsheet  CGA EGA Hercules            4 4 4 4 4 4 e e 4  eon n  80  JATE Async Terminal Emulator  includes file transfer and menu subsystem                eee  80  Polyglot Lisp to C Translator  includes Lisp interpreter  Prolog  and simple calculus prover             lees  80  MultiDOS Plus  DOS based multitasking  intertask messaging  semaphores              4  4  54 4 eee s  80  Make  macros  all languages  built in rules            4 4  4 4 4 4 e Rose hos eom ooo ooo oe on ns  75  eval    C function to evaluate ASCII infix expression string  17 built in functions          4    een  75  XT BIOS Kit  roll your own BIOS with this complete set of basic input output functions for XTS                  ee e  75  Professional C Windows  lean  amp  mean window and keyboard handler                    leeren  70  Heap pen E  use LIM standard expanded memory as an extension of the heap               ee ee ee  65  Ip  flexible printer driver  most popu printers supported  2     4  44e ee ee n n n n n  65   YSKIT  rommable or TSR debug monitor  easily expanded                 rss  60  Quincy  interactive Cinterpreter            4    4 4 4 4 4 4 4 4 e eee ho oho momo oo a omo nono on  60  Symtab  general purpose symbol table construction and management package          4    eel  60  P Iree  general purpose parse tree construction and management package            e eee eee  60  Coder s Prolog  Version 3 0  infere
230. r years  to simulate the real world  One of the  most popular simulations is Life  an  elementary imitation of a colony of  cells  John Conway of the University of  Cambridge  England  developed the  system in the late 1960s    Cells live  die  and are born accord   ing to a simple set of rules  An empty  cell with exactly three live neighbors  gets born  When a live cell has four or  more live neighbors  it dies from over   crowding  Any live cell with two or  three live neighbors simply survives    From these three rules came a fasci   nating pastime for many people  The  computer is given a beginning pattern  of live cells and then begins processing  it according to these rules  Fluctuating  and oscillating patterns emerge and  have been given names such as     floaters    and    guns         You have even more fun when you  change or add to the rules  People have  become quite creative in enhancing Life   adding different universes  modifying  rules  and mutating cells  It   s fascinating  to watch the patterns as they change   even people who hate computers  are  there such cretins   lt grin gt   will spend  hours watching Life run its course        Making Life More Interesting   Even within its extended forms   however  Life is not truly lifelike  It is a  system for modifying a pattern accord   ing to a set of very simple rules  The  rules don   t change once the pattern is  running    However  real life includes compli   cated interactions between organisms  and their
231. re   one unit high  one unit wide  generates a  shadow square of the same measurements   behind  itself  in space undefined by the  coordinates    It was with such tricks that he had  begun  the orthogons he obtained had first  started him thinking about the generation of  inhabitable   if also somehow imaginary     pasts    Fogg fans will no doubt recognize  these tricks  They   re fractals  which Last  uses to travel into the past and then  back to the future    Sometime later  back in the future    Last discovers an inescapable paradox     that the future he   s returned to isn   t the  future he left  Not the future of his  former past  but the future of the new  past he created by time traveling    Although Last had calculated to the  penny the necessity of disturbing noth   ing of importance during his journey  he  hadn   t  and couldn   t  succeed  All fu   tures  in  GWOT   are determined by  minute variations and choices  Paths  diverting  particles close together  pasts  altered slightly vary little by little but  wind up very far apart    Each choice  each detail that made  up Lasts past is a bifurcation  or  branching  from what might have been     and leads to a future slightly removed   at least  from that of any other past    So Last s one and only journey into  the past opens up a kettle of futures and  pasts and futures ad infinitum  The sto   ries within the story   Great Work Of  Time  are intriguing and subtle  Not the  least is a moralist s viewpoint that
232. reviews  The article was fairly compli   mentary  up until the point when the  author became frustrated that he could  not get his MR  MOX to work  What  happened    He seemed totally convinced that if  he set up the modem the way the modem  has to be set up to work with MR  MOX   the modem would not work with the  computer  He did not try to set it up the  way it has to be set up  He didn t have  to  He knew it wouldn t work    He didn t call  He just gave up   ending his article with   It makes one  wonder how the engineers thought  through the concept and tested it     Arrrgh    To their credit  they published my  rebuttal in their next issue  The author  apologized  in print   for an uninten   tionally misleading review   The editor  apologized on the phone  and they up   graded MR  MOX to a  Good Buy     Darn hard to use the condemning ar   ticle rebuttal apology in your market   ing literature  though     Did this undo the damage of the  original article  Dave Thompson  your  friendly Micro C editor  mentioned that  usually more people read the  letters   columns than the articles  However  if  sales are any indication  it doesn t ap   pear that people read either in LINK   UP    Well  there are always retail sales   right  Not so fast  Big or small  retailers  pointed out that customers had not  been coming into their stores asking for  MR  MOX  Now my point of view was      If only my product were on display  next to XXXX  then people would real   ize how handy it wou
233. ries  graphic interfaces  clone boards  language interfaces  chaos theory  fractals  micro controllers  and  much more  Ninety five percent of our subscribers keep back issues in their libraries  In addition to  subscriptions  Micro C is sold in major newsstands including B  Dalton and Waldenbook     INTRODUCING THE MICRO CORNUCOPIA TECHNICAL REVIEW SERVICE    Having reviewed thousands of products  services  and startup ventures  we ve discovered that most share  common challenges  To assist you in your venture we ve developed our technical review service  Here s how  it works     STEP 1  You ll start by ordering and completing our questionnaire  It has over 75 important questions about  you and your venture  We ask about your product  We ask about your manufacturing  marketing  and  administrative tasks and expenses  You ll also receive a personal evaluation form to help you assess your  own strengths and weaknesses     All together  the questions help you explore your market and explore the expertise you and your team bring  together  Honest answers to these questions should give you a good perspective about your venture and its  chances for success  As an introductory offer  there will be no charge for questionnaires requested prior to  October 31  1989  To receive your free questionnaire write  159 on the reader service card and send it in     STEP 2  If filling out the questionaire leaves more questions than answers  return it and  150 00 to Micro C    Add  50 00 for eac
234. ries of your computer with this single sheet schematic of the  IBM XT s main board  A wealth of information for both True Blue and clone owners     Need to know just how a non maskable interrupt occurs  and how to mask it   Is your  keyboard dead  or do you just want to know how to disable it   A trip through our schematic  will answer your questions     Although clones use slightly altered board layouts and different chip location names  they re  close enough to the original for this schematic to be very useful  As an example     you have  a dead clone  Lil sucker won t even beep  A look at the schematic shows the location of  parallel port A  You know that the power on self test loads a checkpoint number into port A  before each test  So now all you have to do is read port A with a logic probe to see how far  the system went before it puked     We include these checkpoints and other trouble shooting information with the schematic     IBM PC XT Schematic            ccccccccecscsssceseccceccessccsecscnccsaccesaccestsessceesuceeasccsonscsnsesacscasscanecasensaes  15 00    CP M KAYPRO SCHEMATICS    Of course  we still provide a complete schematic of the processor board in your CP M  Kaypro  It   s logically laid out on a single 24   by 36    sheet and comes complete with an  illustrated theory of operation that   s keyed to the schematic  You get detailed information  available nowhere else     For instance  those of you with the 10 and newer 84 systems get a thorough run down 
235. rom high to low  the totem  pole can short momentarily  This can  send a nasty glitch back through the  supply line    There are two ways around this prob   lem  First  try the 7555 CMOS version of  the 555 timer  Intersil makes them  Digi   Key sells them  90    each   Or use a large  bypass capacitor  I added a 220 uF cap  across the power supply pins of the 555   A value that large might be overkill    Note  if you have several 555s on a  board  normally you need only one big  bypass     Watch Your Parts Quality   There are some components that you  just can t goof around with  Timing resis     Figure 4   Reversing Circuit Using CD4070B     LINE 3  Tg    ROTATION    CD48135B    30 MICRO CORNUCOPIA   49  Sept Oct 1989    IN4004  4   19K       tors and capacitors are very important    The leakage of the capacitor deter   mines the upper value of C  Too  large too leaky capacitors just never  seem to charge up  Save yourself some  grief  Use a good quality capacitor for C1  like a Panasonic type NHE or HFS if you  need a value above 0 22 UF  Below 0 22  uF  use high quality mylar or polysty   rene    Be sure to bypass Vcc with good  mylar or disk ceramic capacitors in  several locations  And keep the leads  short  The high current square waves  from the stepper drivers could induce  spikes in the Vcc supply bus     The Phase Shifter   The phase shifter uses a single  CD4013B dual D type flip flop to pro   duce the 90  shift  Note that it divides the  clock frequency by four  
236. rooks fully optimized  compiler You get the same high productiv   ity environment with code generation  and flexibility you can t find in any other  product in the industry     Stony Brook   we design our products  specifically to improve developer perfor   mance  And we know software engineer   ing  Put us to work for you     Call us direct and we ll mail product  information to you within 24 hours     800 624 7487  805 496 583 Sad Incarnational  805 496 7429 Fax    Reader Service Number 152          SOFTWARE       Your Partner  in Software Development    187 East Wilbur Road  Suite 9   Thousand Oaks  CA 91360    MICRO CORNUCOPIA   49  Sept Oct 1989 1    4      A debugging  tool tough enough to    handle the DOS    Nasties     Nasty over write  No sweat     Soft ICE memory range break points help you  track down memory over write problems     whether you are doing the over writing or  another program is over writing you     Hung program  No problem     When the system hangs  you now have hope   With Soft ICE you can break out of hung  programs no matter how bad the system has  been trashed  And with Soft ICE   s back trace  ranges you can re play the instructions that led  up to the crash     Program too large  Not with Soft ICE     Soft ICE runs entirely in extended memory  This means  you can debug even the largest DOS programs  And  since your program runs at the same address whether  Soft ICE is loaded or not you can find those subtle  bugs that change when the starting 
237. routine initializes the sort by passing  key information and sort options  An array of  words contains the key information  The first  word is the number of keys  Each four word  group after that specifies the data type  order   ascending or descending   offset from the  beginning of the record  first byte is 1  not 0    and the length of the key    GenSrtBegin returns a sort id that uniquely  identifies the sort  and a status code  It s the  first routine to call for a sort         GenSrtRelease   The GenSort routines don t receive all the  data at once  A call to GenSrtRelease passes  each record to the sort  It builds the key for  each record according to the key information  stored in srtKeyArr by GenSrtBegin    GetMem allocates storage space for the data  and key because the standard procedure New  allocates a specific number of bytes according  to the variable s type  Our variable type is  largely unknown and the storage requirements  vary between sorts    The key is built a byte at a time  By using  variable type casting to access the address off   set  it increments the pointer to the current  byte location  Use move to transfer the actual  record information from the calling routine s  variable to the space allocated  Then make a  call to GenBinInsert to insert the information  in the correct location in the binary tree   Gen   BinInsert is part of the GenBinTree unit  See  Figure 2      GenSrtDoSrt   Nothing really happens at this stage of the  sort  The sort status
238. rtant  nor does it say what will hap   pen if it isn t used    Figure 2 contains oscilloscope pat   terns  The  A  group is the desired con   dition with I O CS16 pulled low when  selecting the address port  The IOW300   consisting of the decoded address lines  and the IOW pulse  exactly follows the  shape of the IOW pulse  Since the I O  CS16 line connects to the IOW300 line  it  also follows the IOW pulse    If I O CS16 isn t connected  Figure 2B  shows the strange things that happen  A  single OUT DX AX instruction produces  two IOW pulses  IOW300 has a single  pulse aligned with the first IOW pulse   IOWS301  we wired it up specially  has a  single pulse aligned with the second  IOW pulse    Address line AO contains logic zero  during the first IOW pulse and changes  to logic one during the second  The com   puter is changing the address lines  during the IOW cycle  The IOW301 pulse  occurred with the second IOW pulse be   cause the address lines had changed to  address 301 and the IOW pulse was pre   sent  If one used these signals to control  equipment  strange things would hap   pen    We connected fifteen of the data lines   OUTO through OUT14   at the output of  the 74L5574 latch  to a logic analyzer in  order to follow the movement of data  through the interface  We connected the  IOW line to the 16    logic analyzer line  and the logic analyzer clock to the 10  MHz AT clock CLK  bus pin B20    The 10 MHz clock effectively makes  the logic analyzer into a 16 channel
239. ry leader     The Leader in Convenience  Lattice C uses an automated installa   tion procedure that has been praised  by reviewers  The compiler automati   cally configures itself so that you do  not need to specify complicated  options  Yet  a full set of options is  available to the professional who  needs to customize to a particular  environment  Lattice is the conven   ience leader     The Leader in Documentation  Lattice C includes over 1500 pages of  high quality documentation in ring  binders  It contains all the informa   tion that professional programmers  need ina thoroughly indexed format   Lattice is the documentation leader     The Leader in Support   Best of all  Lattice support comes free  with Lattice C  Lattice   s bulletin  board and telephone up arethe  best in the business  Lattice is the  support leader     30 Day Money Back Guarantee  Lattice C 6 0 is available for  250  To  order  send check or money order to   Lattice  Inc   2500 S  Highland Ave   nue  Suite 300  Lombard  IL 60148   Or order by credit card at  800  444   4309  FAX    312  916 1190  TELEX  532253        Send to Lattice for a free complete report on the benchmark analysis     Reader Service Number 153    MICRO CORNUCOPIA   49  Sept Oct 1989 5             Large Video Characters   Regarding large characters for those  with vision impairments  a big monitor  would be ideal  of course  On my  Zenith lap top  and probably most    CGA compatible machines   MODE  BW40    or  MODE CO40    makes
240. s     Information Modes  Wi diss P O  Drawer F  Denton  TX 76202  817 387 3339  Reader Service Number 149  CROSS ASSEMBLERS  PseudoCode releases the PseudoSam professional series  of Cross assemblers  All popular processors  Macros   Conditional Assembly  and Include Files  Virtually  unlimited size  For IBM PC s MS DOS 2 0 or greater with  manual  50 00  Simulators and disassemblers also  available   MI res  4  tax   S amp H USA  5  Canada  10   Foreign  15  Visa MC   KORE Inc    6910 Patterson S E   Caledonia  MI 49316 616 887 1444           30 Day satisfaction guaranteed  or purchase price refunded         Reader Service Number 136    MICRO CORNUCOPIA   49  Sept Oct  1989 91       field of 0 7 gauss and normal magnetic  media  mag strips  tapes  and disks  re   quire 200 to 300 gauss to write data    Airport X ray units use less than 1  mr  millirad   If the X ray unit was built  in the last five years  it  will use 0 3 mr  per scan  In every day living you re ex   posed to 0 3 mr per day  and when fly   ing at normal altitudes  about 35 000  feet for commercial airlines  you get 0 5  to 1 0 mr per hour    The only X ray unit that uses 1 0 mr  or more is the fluoroscope  which has to  have a stationary object to produce an  image on the screen  The longer it s  viewed  the more rads the object ab   sorbs  However  at present fluoroscopes  are not in use at any major U S  airport    Now what does all this mean   There s no need to worry about the  security equipment at the 
241. s  Plant maintenance person   nel and electricians were the main instal   lers and operators of this new tech   nology  It was easy enough to follow the  installaion drawings since they con   tinued to be standard electrical ladder di   agrams  Programming was another  thing  Many of the early machines were  programmed in boolean algebraic equa   tions  hardly the forte of the average  maintenance mechanic    The obvious answer was to use the al   ready familiar ladder diagrams  Ladder  diagram programming  LDP  uses  graphic images of contacts and coils rep   resenting the familiar relay circuits    Within a ladder diagram  an in   dividual line of code is called a rung     LDP Rung            I            0   A B c    The above example shows a normally  open contact  A   a normally closed con   tact  B   and a coil  C   The contacts can  be assigned to real inputs so an ener   gized input  A  and a non energized  input  B  will cause coil  C  to energize    Coil  C  can be assigned to a real out     MICRO CORNUCOPIA   49  Sept Oct 1989 23       put as a motor starter or other electrical  signal        t 1               o     The above rung shows the coil  C   energizing when either Contact A or B  energizes  Using these simple elements   service people can generate complex  logic statements    In an LDP program  power always  flows from left to right  Although these  examples are very simple  LDP programs  can have up to 100 elements in each pro   gramming screen and progra
242. s ERSO or Bison Bios Power distribution center and sine    7 2V RC Pack 12ah             18 00  200 Watt Power Supply 640K RAM   wave UPS  Only 2  high   Hercules Compat  Video Bd  150 Watt Power Supply  Parallel Port Hercules Compat  Video Bd  560 Watt MODEL IPS560 GEL CELLS  2 Serial Ports Active Parallel Port  350  Game Port 2 Serial Ports Active Sinewave  560W complete with   12V 20ah  Clock Calendar Game Port batteries  id see aee  Hard Disk  amp  Floppy Controller Clock Calendar DAN cece eene nnn    20M Hard Drive Hard Disk and 400 Watt MODEL SPR401 D Call 25h  ius seo eter 2 00  1 2M 5     Floppy Drive Floppy Controller i  180  360K 5   4    Floppy Drive 20M 5 4 Hard Drive Supplies may have minor cosmetic ROBOTICS  5061 Keyboard 2 ea  360K 5   Floppy Drive   damage  but are electrically sound  5V DC Gear Motor w Tach 1 x2   Case with Turbo  amp  Reset  AT Style Keyboard Squarewave output  Run on inter  Josstick d switches 1  knob  cos 500  Hard Drive Light and Standard Slide Case nal or external 24VDC battery when   VOYSUICK    SWIiChes     KNOD             Z80 Controller with 8 Bit A D  Brushless 12VDC 3  Fan           7 50  12V Gear Motor 30 RPM            7 50    Cable  DB9M DBO9F 1 ft  length      2 00  High Voltage Power Supply   Input  15 30V DC   Output  100V 400V 16KV         6 50         line goes down  Typical transfer  time   12MS  Battery supplied   For AT  XT  amp  Kaypro          NEW 24V INTERNAL  BATTERY    Keyboard Disable Switch Amber Graphics Monitor 
243. s at the beginning  of the program    To demonstrate how resident pro   grams work  I ve introduced POPUP and  RENEGADE  These programs store the  current screen in resident memory  but  RENEGADE exerts absolute control over  the keyboard interrupt  Once the key   board is in its grasp  RENEGADE does  not relinquish control and excludes all  other resident programs from using this  interrupt     Introducing POPUP   Figure 3 lists the assembly language  source code for POPUP  After its installa   tion in resident memory  activate the pro   gram by hitting both shift keys simul   taneously  The first entry stores the cur     rent screen in resident memory  while  subsequent activations pop up the stored  screen  This program assembles with  MASM    Here s how POPUP works  The first  instruction in the code segment  JMP  INIT  bypasses the MAIN procedure and  skips to the INIT procedure  The INIT  procedure saves the old keyboard vector  and then chains INT 9H to the MAIN  procedure    The last instruction of the INIT proce   dure  INT 27H  makes the ultimate sacri   fice by allowing itself to be erased  It ter   minates the entire operation but protects  code from the start of the PSP to the end  of the MAIN procedure  Note how the  DX register points to the start of INIT   the offset one byte beyond the protected  code     Once installed  the MAIN procedure  becomes our interrupt handler  Every  keystroke gets intercepted by this han   dler and redirected to the old INT 9H in 
244. s of the boards  Ive tested  In the second part  Il  complete the demystification of the  boards  and the electronics  you ll need  to interface them to the real world        past issues  I   ve tried to show you    What You Get  Most of these A D boards begin with   but contain much more than  just an A D  converter  They try to solve everyone s  problems  which can be an obnoxious  trait in some people  but an ideal feature  for a computer  In general  look for  boards which provide       multiple channels of A D input   usually a single multiplexed con   verter      42 MICRO CORNUCOPIA   49  Sept Oct 1989      several channels of digital to   analog  D  A  conversion      anda number of digital I O lines    Often these boards will come with one    or more counter timers  For many situa       tions  you ll only need one of these  boards  your PC  and some simple elec   tronics  described later     The boards I ll talk about represent  what s available in the  300 price range   I ve tested three different products from  four different companies  lll explain  shortly   All three can convert A D  but  beyond that they differ widely    Real Time Devices  a company in  Pennsylvania  builds and markets the  AD1000  along with several other inter   esting  very low cost cards   The AD1000  has 8 channels of 12 bit A D with a 20  microsecond conversion time    Take the inverse to convert that to  speed  A microsecond is 10   so 1  divided by a microsecond is 10    or a  megahertz  
245. se voltage  generated when the relay s field col   lapses  A set of contacts on the relay con   trols the external device     Analog Inputs   The card also converts analog signals  to binary  In this way the CPU can read  an analog input as 16 bits   the same way  it read the 16 inputs above  The LDP pro                       Rack  amp  Desk    PC AT Chass       Integrand   s new Chassis System is not  another IBM mechanical and electrical  clone  An entirely fresh packaging design  approach has been taken using modular  construction  At present  over 40 optional  stock modules allow you to customize our  standard chassis to nearly any requirement   Integrand offers high quality  advanced  design hardware along with applications  and technical support all at prices competi   tive with imports  Why settle for less     Figure 1   PLC Bus Process Signal Interface     i SIGNAL  LL COMMON    nm  Hund  Maa    Figure 2   PLC Output Drives                          nn  nuu    Rack  amp  Desk Models    Accepts PC  XT  AT Motherboards  and Passive Backplanes    Doesn t Look Like IBM   Rugged  Modular Construction  Excellent Air Flow  amp  Cooling  Optional Card Cage Fan  Designed to meet FCC   204 Watt Supply  UL Recognized  145W  amp  85W also available  Reasonably Priced    T   Pe    Backplanes    Figure 3   Analog to Digital Conversion     SYSTEM CLOCK    Call or write for descriptive brochure and prices   8620 Roosevelt Ave  Visalia  CA 93291    209 651 1203    TELEX 5106012830  INT
246. ssue  50 to find out     References   PostScript Language Tutorial and Cook   book  by Adobe Systems  Addison Wes   ley  1985  ISBN 0 201 10179 3   Includes  further references     PostScript Language Reference Manual   by Adobe Systems  Addison Wesley   1985  ISBN 0 201 10174 2    PostScript Language Program Design  by  Adobe Systems  Addison Wesley  1988   ISBN 0 201 14396 8                              By Ron Hicks    819 S  21  St   Sheboygan  WI 53081    Programmable Logic Controllers  Industrial Control Is No Longer A Relay Race        In many ways this feels like  Bits From  Your Past   Just a few months ago I  watched a pressman cussing the relay panel  on his press  Actually I didn t know it was a  relay panel until I looked inside    That box contained a hellish mess of  color coded wires  long ago coated a uni   form black  and relays clacking and spark   ing as they connected and disconnected 220  VAC  The hearts of these ancient machines  aren t the motors or the fancy rollers   they re the relays  the cussed  nasty  grimy   indispensable relays  Read on for informa   tion on new hearts     ou may think this article seems  Y    of place in a micro computer   magazine  but it s not  You see   Programmable Controllers are nothing  more than micro computers interfaced  to  real world  inputs and outputs    In its simplest form  a programmable  controller consists of a central processing  unit  CPU  attached to inputs and out   puts  The CPU has a program that tells 
247. st Suite Version 1 09   Lattice is the compatibility leader     The Leader in Debugging  Lattice C includes CodePRobe     a  new full screen symbolic debugger  for DOS and OS 2  CodePRobe Ras  the familiar look of the CodeView   and can be used witha mouse  Italso  enables you to easily debug family  mode programs  Presentation Man   ager applications  and OS 2 mul   tithread applications  And  for those  humongous programs and system  killer bugs  CodePRobe can be used  remotely froma different PC  Lattice  is the leader in debugging     The Leader in Innovation  Lattice has long supported popular  angua  extensions suchas near  far   and pascal  In our previous version   we introduced align  chip  volatile   interrupt  nopad  and pad to handle  important memory management  problems in DOS  OS 2  and embed   ded systems  Version 6 continues  this evolution with critical and  private  Critical defines a function  that must run as a critical section   and private defines data that must be  replicated for each execution thread   Future versions will continue to  improve the language for use in  cutting edge environments such as  OS 2 and AmigaDOS  Lattice is the  innovation leader            90  80  70    60    in both large and small so    Performance          g  AM ETOR DN OS EF    RO             orkar  wordt  Megieuti       Libraries    ANSI    And the benchmarks  show it     The Leader in OS 2    Lattice C includes bindings and  header files so that you do not need  to buy 
248. standing and the willingness to learn   When they find this kind of person   they ll spare no expense for training                              Iwo great tools     SAYWHAT    The lightning fast          screen generator   l Whether you re a novice  i N programmer longing for    f 4 simplicity  or a seasoned    pro searching for higher  productivity  you owe it  to yourself to check out  Saywhat  You see  with  SS A Saywhat  you can build    se ees beautiful  elaborate  color   coded screens in minutes       A      fa That s right  Truly fantastic    screens for menus  data  entry  data display  and  help panels that can be  displayed with as little as one  line of code in any language                               Here   s what you get   e Design screens  windows  and  moving bar menus       Easy to use  powerful editor lets  you create screens in a jiffy         Pop up your screens and menus  with one line of code in dBASE   all the dBASE compilers  your  favorite BASIC  Pascal  or any  other language         Screen Library Manager       Generates runtime code   e No runtime license or royalty fees         Comes with a 100 page manual   plus dozens of sample programs  and free utilities      49     N    hus  A    pty              ic A    Dealers  SAYWHAT   and TOPAZ are  available from Kenfil Distribution   and in Europe from    ORDER NOW   YOU RISK NOTHING   Thousands of satisfied customers  have already ordered from us  Why  not visit your dealer or call toll free   right 
249. stic  collection of structural material and small  mechanical components  A great source  of gears  shafting  cams  and drive chain     Questions    Q  Can I generate the clock pulses in soft   ware so I could do away with the clock    A  Absolutely  I didn   t  simply to keep  the size of the software down  You can  do it with timing loops to synthesize the  pulses  Or you could use a pro   grammable divider to divide down the  system clock    Q  Can I shut off the current flowing  through the coils when the clock is off to save  power on my super battery operated toy I  just designed    A  Yup   See Figure 5   We OR to   gether lines one and two  If both are low   the CD4066B analog switch removes  drive from the bases of the driver transis   tors  I left this out of the Woodpecker in  order to get some dynamic braking    There are two ways of doing this  One  uses two diodes with a 100K pull down  resistor to OR lines one and two together   A little better way would be to use two    UIS I    C                                   Blazing Graphics Text    of their respective holders         VISA MC AMEX COD PO accepted     d Ep p vm   A  cn MJ    Ada lightning fast graphics to your programs quickly and  easily through the popular PCX file format  Why reinvent the  wheel  Make your programs immediately compatible with  hundreds of packages from Aldus PageMaker to ZSoft s PC  Paintbrush with these linkable graphic libraries      A Professional Class Product   NEW  Version 3 5 of
250. straightforward  When an interrupt is in   voked  the CPU pushes the flag register   the segment register  CS   and the in   struction pointer  IP  onto the stack and  disables interrupts  It then uses the inter   rupt number to fetch the address of the  handler from the vector table and begins  execution at that address    The handler will enable interrupts   save registers  and process the interrupt    You can easily activate a resident pro   gram by modifying an interrupt vector   Two interrupts especially qualified for  this task are the keyboard interrupt  9H   and the user timer interrupt  1CH      Heathkit    Before you attempt to take control of  these interrupts  there are a few things  you should know  The handler can call  DOS  and DOS will perform the function   but the handler cannot be reentered from  DOS  The last instruction of a handler  must be IRET  IP  CS  and flag registers  popped   When an interrupt is invoked   the trap flag is suspended so that you  cannot trace through a handler to locate  errors    Each time you press or release a key   the action reports to the ROM BIOS via  INT 9H  The ROM routine reads port  60H to find out the selected keystroke   The scan code and ASCII value are  stored until you press the next key     Powerful Kit  Laptop and  Desktop  Computers    A leader in quality electronics for the    technically sophisticated customer   When you need kit or assembled    electronic products for work  home or  hobby  you can be sure Heat
251. t 256 bytes     The bottom line  this chip   s stream   lined architecture is fun to work with   Don   t be fooled by the paucity of regis   ters and tiny stack   you can handle seri   ous control projects with the  HC705     The Development Board   The  HC705 does not support external  RAM or ROM  so programming can be a  problem  Fortunately Motorola offers the  M68HC05PGMR development board   Used with a PC based interface program   PROG7   supplied by Motorola with the    PGMR board   you can download soft   ware to the  HC705  program the  EPROM  and test your code  So the  board constitutes a complete  HC705  development system    The  PGMR board contains little more  than RS 232 level shifters  a crystal oscil   lator  LEDs and pullups  and necessary  connectors   See Figure 1   All timing and  control for EPROM programming and  serial I O get done by PROM code in the   HC705     The  PGMR board sets up easily  Con   nect a serial cable to your PC  plug an   HC705 into the processor socket  and  supply  5   12 and  12 volts  Program   ming the processors EPROM requires  adding a switchable  15 5 volts  Vpp     After burning your software into the  MCU   s EPROM  you can reconfigure the     PGMR board as a test bed for debug   ging  All 40 pins of the MCU socket ap   pear at an IDC connector on the card   s  edge  By connecting a ribbon cable to a  40 pin header  you can    plug    the  development board   s MCU into an exter   nal circuit  Since the  PGMR s oscillator 
252. t gives you    Now  about those diodes across the  coils  These are called snubber diodes  or  at least  that s what I   ve always called  them   They clip the reverse voltage spike  generated when the magnetic field col   lapses in the stepper coil  Leave these out  only at your computer s peril     Windings   The color code shown here is for the  Airpax steppers John used  Others may  have different connections  Remember to  look for steppers with six leads  They re  the bipolar ones that are easy to drive  A  few minutes tracing with an ohm meter  will give you the connections  Just re   member that the center tap has half the  resistance of the entire winding  Making  a little drawing with the leads  colors and  resistances will make the job easy     Suppliers   Many of the suppliers that advertise  in Micro Cornucopia have steppers  The  ones I ve listed may be new to you  I   ve  used them all on a regular basis  and the  service has been excellent    Digi Key has an excellent selection of  new components with very fast service   They have the best selection of computer  type components of any mail order firm I  know  They send out an updated catalog  every two months    Jerryco often has steppers and some  of the darnedest oddball stuff you ve  ever seen in your entire life  Don   t laugh  when you check out their catalog  You  never know what weird items you ll  need to build your dream project     Small Parts Unlimited is a robotics  builders dream  They have a fanta
253. t the products from the perspective  of experienced users  Or you can con   tact the manufacturers directly     DECtalk   Digital Equipment Corp   Contact  Bill Metcalf   2525 Augustine Dr    Santa Clara  CA 95054    415  651 5474    Echo PC   Street Electronics Corp   Contact  Mark Pfeffer   6420 Via Real   Carpinteria  CA 93013    805  684 4593    Video Voice   Grassroots Computing  P O  Box 460   Berkeley  CA 94701    415  644 1855    BBS Phone   Correction   In the list of alternative BBSes for  downloading Micro C   s issue listings   published last issue  we embedded an  incorrect phone number for the Genera   tion 5 BBS in Washington  D C  The cor   rect number is       Generation 5 BBS   301  495 2932   This is a subscription board  but you  don t have to be a subscriber to  download Micro C code     Good Magazine  But      Ive really appreciated your ma   gazine for the past few years  You have    Continued on page 75                   Block Edit File Goto Help jE Print Search Undo Window Config    while  TRUE    mae  ASCII Table il match or error     BOS Shell  Jigetseqtkeybuf i   Run DOS Program  Gre lent  ae A  Color Toggle  if  iss Of VGAVEGA Toggle PRR CIT  Execute Macro  z   Check for delinite  Keystroke Macros    TPC MEE TALI Add Macro  Display Macros    7   Check if displayabl  Load fron Disk    if  Crkeybuf  gt     1  om  printf   zc  ekeybuf     scodbufer    kegbuf     codbifJe   00  s   High byte 00 for chars      ecodbuf   KFF   return  TRUE         en IN
254. t2    maximum iterations             it s in the Mandelbrot set     make it black  magenta    0x09     pt2 goes in the low order nybble    cyan    0x03       black    OxO0f          else    not in the set              if  yellow  lt  0x10     get color  from 0 81    get layers  color   amp y temp   amp m temp   amp c temp   amp b temp    yellow    y temp    magenta    m temp    cyan    c temp    black    b temp        pad single digit  hexit   numbers with 0     fprintf  fpl   0                            if  magenta    Ox10    fprintf  fp2   0     if  cyan  lt  0x10    fprintf  fp3   0     if  black    Ox10    fprintf  fp4   0     fprintf  fpl    x   yellow    fprintf  fp2    x   magenta    fprintf  fp3    x   cyan    fprintf  fp4    x   black          draw points       void file header  f   FILE  f        fprintf  f    inch  72 mul  def n          write the values to the 4 files          define  inch     fprintf  f    picstr 375 string def n        bytes per image line    fprintf  f    fractalWMn          fractal procedure    fprintf  f       750 1200 4  750 0 O 1200 0 0  Nn       build image  fprintf  f     currentfile picstr readhexstring pop  n        fprintf  f   imageMn defWMn       fprintf  f   150      if  f    fpl    fprintf  f   90      if  f    fp2    fprintf  f   75      if  f    fp3    fprintf  f   105      if  f    fp4    fprintf  f   45           set 150 line screen       yellow layer   90 degree screen angle       magenta   75 degree screen angle     cyan   1
255. tailer  fp4         PostScript programs  fclose  fp2      close files  fclose  fp4         open yellow layer file     open magenta layer file     open cyan layer file      open black layer file     defs and procedures    void mandel            int column  iterations   int pointl  point2     for  each point in the 750x1200 image                  find iterations  Mandelbrot code provides this   if   column   2     0     this is the first of a pair of points     pointl   iter   else    this is the second of the pair        point2   iter   draw_points  pointl  point2            draw the pair          mandel       void draw points  ptl  pt2     int         ptl  pt2     unsigned char color   unsigned char yellow  magenta  cyan  black   unsigned char y temp  m temp  c temp  b temp     yellow    y temp   m temp   c temp   b temp  if  ptl    maximum iterations               magenta   cyan   black   0     0         it   s in the Mandelbrot set      these color assignments draw the point in a deep black color   magenta   0x90    assignments made to high order nybble for ptl   cyan   0x30    black   Oxf0     else    point not in Mandelbrot set              get color  from 0 81     according to number of iterations  get layers  color   amp y temp   amp m temp   amp c temp   amp b temp     yellow   y temp  lt  lt  4     shift assignments to high order nybble  magenta   m temp  lt  lt  4    cyan   c temp      4    black   b temp  lt  lt  4     y temp   m temp   c temp   b temp   0     if  p
256. tally light  blank   image  The dots of a 100  screen are full  size and give the darkest image  Screens  between these extremes produce shades  of color  To build a new color  we just  specify a percentage for each of the four  press colors     Creating Halftone Images   Typesetters and laser printers print  dots  that s all  On or off  And they print  one size dot only   Not quite true  The  L300 has two modes  single density at  1270 dpi  and double density at 2540 dpi   But within each mode only one size dot  exists   In order to simulate shades of  grey  PostScript uses halftone cells  Each  of these cells contains some number of  output device dots  By varying the num   ber of dots printed within a cell  we can  vary the darkness of the cell    Earlier  I mentioned discrete levels of  color  we could call this part the quan     20 MICRO CORNUCOPIA   49  Sept Oct 1989       Figure 3   Generation of Four color Separation for PostScriptal    void mandel    file header     file tailer        draw points     get layers        FILE  fpl   fp2   fp3   fp4     main           fpl  fp2  fp3  fp4  file header  fp1    file header  fp3    mandel       file tailer  fpl    file tailer  fp3    fclose  fpl    fclose  fp3        main            fopen   fracl ps    w      fopen   frac2 ps    w      fopen   frac3 ps    w      fopen   frac4 ps    w      file header  fp2    file header  fp4       generate hex data defining Mandelbrot image  file tailer  fp2      finish main part of     file 
257. tate Street  OREM  UTAH 84057  Phone 1 800 336 6644   MyFLIN requires PC XT AT Computer and MS  PC   DOS 2 3 xx        Reader Service Number 161    74 MICRO CORNUCOPIA   49  Sept Oct 1989    my return before the damned computer finishes the answer   Kinda keeps things in perspective     Silence   The reason my little Toshiba 1000 has become my favorite  writing computer isn t so much what it has  it   s what it hasn t   It hasn t any  uhm  noise    There s no hard drive to whine  no power supply fan to  buzz  no monitor to whistle  no nothin   The only thing I hear  is the chunk  chunk  whirr of the floppy drive when I m load   ing or saving a file  But then it shuts up so I can work    Someone should come up with standard 150 and 200 watt  PC power supplies with quiet fans  slow turning with special  blades   There s no reason that moving air has to be so noisy    Since we re now moving  more or less successfully  to 3  1 2  drives  it seems like some of those should be both reliable  and quiet  Maybe there is one  though  Maybe I just haven t  heard about it     Silently yours     David Thompson  Editor and          YOU WANT THE SOURCE      WELL NOW YOU CAN HAVE IT  The MASTERFUL   DISASSEMBLER  MD86  will create MASM compatible   Source code from program files  EXE or COM     And the files are labeled and commented so   they become USEABLE  MD86 is an interactive   disassembler with an easy to use   word   processor like interface  this is crucial for   the REAL programs y
258. ted to servo  motor s encoder   The encoder reads the  motor s spindle position   See Figure 5     The LDP program decides where the  motor should be  The CPU sends a signal  to the output section of the controller   which sends the output to the servo  motor  The encoder then verifies the  motor s new position    If the motor s shaft hasn t reached the  correct position  the controller card de   tects the error and sends a correction  via  the output  to the motor  This way  the  CPU doesn t need to check for proper  position     Conclusion   I ve just covered the basics of PLC use  in industry  There are over one hundred  companies making programmable con   trollrs  and every day I get literature  from new companies    Although PLCs have been around for  20 years  it seems 1988 was the year they  came into dominance of industrial con   trol  Perhaps the long promised push   button world is finally here  thanks to  programmable controllers     26 MICRO CORNUCOPIA   49  Sept Oct 1989    Computer Jobs In Industry   Many computer users take their  knowledge for granted  We assume that  everybody knows how to use a com   puter  This is not the case  In most in   dustrial plants  they look upon comput   ers as a necessary evil Many senior  maintenance men  who think nothing of    computer courses you ve taken  If you  haven t taken any courses  still include  computer use in your application  Appli   cations usually have an  other ex   perience  category    For instance  if you c
259. the 74LS139 chip are normally high  Only  the one that fits the address decoder goes  low for the length of time the IOW or  IOR goes low  The eight outputs connect  to an 8 input NAND gate which enables  the tri state 74LS126 gate to pull the I O  C516 line low  indicating to the computer  that a 16 bit transfer is occurring    This circuit uses only two of these out   puts  The others are available for extra  ports or as control pulses    We use a pair of 74LS574 chips to  latch the output from the computer  and    Northern Regional Research Laboratory  USDA Agricultural Research Service  1815 University St    Peoria  Illinois 61604    a pair of 74LS244 tri state bus drivers to  control the input to the computer  In  many designs  transceivers would be  used here and the data lines would be  multiplexed to handle both input and  output on the same lines   Of course  the  data on these lines would probably have  to be demultiplexed with a set of latches  farther down the line     The 74LS574s latch data from the AT  bus when they are clocked by the in   verted IOW300 line  formed by decoding  the IOW and the address lines  The OUT   PUT CONTROL of these chips ties to  ground so that the latched data is always  available  The 74LS244 chips make the  data on their input lines available to the  computer bus when the IOR300 line  pulls enable low    Other octal tri state bus drivers  74LS   240  241  373  374  and 573  also could be  used to latch the data    You can use the cir
260. the beginning    For example  doSomethingElse must  be declared virtual at its earliest and all  subsequent declarations       anObject2   object  anObject1   constructor init   procedure doSomethingElse virtual     end     anObject4   object  anObject3   constructor init   procedure doSomethingElse virtual   end     The virtual method effectively  changes the order in which the compiler  determines which method to use when  methods share names  This is a thorny   but quite powerful  aspect of object   oriented programming  I ll spend the  rest of Tidbits implementing a simple  but useful object   an I O error handler   which combines all three principal  properties of objects     Object  myIOhandler  Let s define an object       myIOhandler   object  IOErr    IOCode  integer     boolean     Message  string   constructor init   procedure report  virtual   procedure IOCheck  virtual     end     This object will check for I O errors  and report the type of errors  if any  it  discovers  It consists of three methods   init  report  and IOCheck  and three  data fields  Notice that report and IO   Check are virtual methods  This means  Im implementing them my way now   so you can use them as a black box    and simultaneously  I   m giving you the  chance to change them later  if you  want or need to     IOCheck calls IOResult  a standard  Turbo Pascal function  to determine if  there s been an error  If so  if IOResult       0   IOCheck calls report to report the  specific error  
261. the special function  of tab and shift tab  If you select a block  of text  tab and shift tab will move all  the selected lines in or out by one level  of indent  rather than moving just the  current line    Unfortunately for programmers in  other languages  smart indenting is only  available for C  and for dBase if you  buy a package called dBrief  sold by  Global Technologies   But Brief does  have    regular    indenting  the kind    found in most other editors   You could  always use the C smart indenting pack   age as an example to write your own in   denting package for another language   Maybe you could even give me a copy   Or sell it  Or both     Column Blocks   This is another nice feature that the  Brief macro language  source code in   cluded  of course  implemented  When    you mark a block of text using a     Column Mark    instead of a regular  mark  the Copy  Cut  and Delete macros  recognize it automatically  Then  instead  of deleting everything between the start  mark and end mark  they go into a loop  that appends the proper portions of  each line into the    scrap buffer     sepa   rated by a special marker    A subsequent Insert command will      recognize that the scrap contains a  columnar block and go through a simi   lar loop that inserts each line fragment  at the column of the cursor  starting at  the current line and continuing down  until using up all the line fragments              I was doing some work with Xenix    mapchan  translates from one
262. the two memory blocks  Save the pro   gram  execute from DOS  and return to  DEBUG to display the two memory con   trol blocks      NEVICT COM    RCX   CX         0036    RBX   BX         0000    W    Q   A gt EVICT   A gt DEBUG    D0 60A0  60EF   0000 60A0 4D OE 06 02 00 O5 C8 00   A3 BD OB A1 02 00 8C 1E   0000 60B0 50 41 54 48 3D 00 43 4F   4D 53 50 45 43 3D 43 3A   0000 60CO0 5C 43 4F 4D 4D 41 4E 44   2E 43 4F 4D 00 00 FF FF   0000 60D0 5A OE 06 F2 79 D3 EB8 8C   DA 03 C2 A3 1C OB B8 00   0000 60E0 CD 20 22 08 00 9A FO FF   OD FO 8C 02 42 05 99 02    Note the identifier byte at 0 60D0H  contains the value 5AH  the designation  that the next memory block is free  If you                      Assembly Code for EVICT COM     SOURCE OFFSET     DEST  OFFSET  INT 9H     DEST  OFFSET  INT 1CH      MOVE 4 BYTES         3 ENABLE INTERRUPTS     1 E9 00 E0    install a new TSR  it will be stored at seg   ment 060EH    EVICT was a very easy program to  create  We know exactly where RENE   GADE is located in resident memory and  which interrupts it controls  For DOS  2 10  EVICT removes the first TSR in   stalled  providing Interrupts 9H and 1CH  were the only ones taken over    The difficult assignment of writing a  general utility is to keep track of where  each TSR is loaded and the interrupt vec   tor table prior to installation    Consider the scenario of installing RE   NEGADE followed by POPUP  and then  executing EVICT to remove RENEGADE     A gt RENEGADE  A gt POPUP  A gt EVIC
263. ther player  or both  How addictive  is it    I called Walter and asked  not at midnight  you under   stand  I d be interrupting his work day  I waited until the fol   lowing noon     He said he d written the game on a PDP 11 while a student  at Cal Tech  When he went to Cal Tech  there were no restric   tions on use of the 11  when he left  games were restricted to  graveyard shift   midnight to six a m     So we renamed    empire    to    link     or something like that     S H  3 00  Outside U S   add  10 00    FLOW CHART AND ANALYZE  YOUR ASSEMBLY LANGUAGE  SOURCE CODE    Flow Charts    Tree Diagrams    Stack Sizing    Register Analysis    CPU Timing Analysis    Procedural X Reference    8088 87 to 80386 387    Context Sensitive Help break current line    Menu Batch Command Pa NR  line Operation E display_warning  restore_screen    editor_warning  insert_blank_line      MASM 5 1 Compatible  Sonor ction  CORPORATION  19855 Stevens Creek Blvd  Suite 154    Cupertino  CA 95014   408  244 6826    adjust_line   join_line  editor_warning  adjust_line  delete_edit_line    editor_line_out  edit_line_out          VISA MC 30  Day Money Back Guarantee    Reader Service Number 139    72 MICRO CORNUCOPIA   49  Sept Oct 1989       That was the only way we could play it during the day       I no longer play it  after thousands of hours  I   m playing  with other things like C    If I started playing it again I d  want to add new things  like making the computer more com   petitive  and 
264. this  Your application program may  create any number of virtual display screens  Physically   a virtual display is simply an array in memory  Virtual    displays may have any number of rows and columns      whatever is appropriate for your application     Once created  your program need only select a particular  window and then write to it using operations similar to  those provided by either the BIOS or MS DOS for console  output  Tele windows are compatible with graphics     Operations on virtual windows are fast  but not visible   To make output visible  rectangles are mapped from your  virtual displays to the physical display  Your application  may define how the mapping is done  or you may do it  from a higher level of software  Windows overlay each  other in the order they are mapped  unless marked to stay  on top  as a diagnostic screen might require      The mappings are processed periodically to make your vir   tual displays visible  Tele updates the screen only as fast  as the eye can perceive  A standard PC clone using Tele  windows is 5 times faster than when using the BIOS and  BIOS doesn t do windows     And there are no software side effects  In a multitasking  environment all Tele windows may be active simulta     neously     Foreground    and  background  only describe  how your windows are overlayed  you control task priority  with the scheduler     Thorough documentation and complete C and assembly  source code is provided  including demonstration pro   gr
265. tor for the 68HC11  a full  floating point package for the  HC11 and  6809  cross assemblers for chips from the  6800 to the 68HC11  even a few fully   developed MCU designs  complete with  source code  If you re interested in the  Motorola chips  be sure to try this BBS    Motorola also carries quite a library of  application notes on the 6805 family   Some sample titles include    A General Purpose Frequency Counter  Using an M6805 HMOS M146805 CMOS    Family Microcomputer  AN885    describes      a five chip frequency counter using four              digit LED display  Gives schematic and  full assembler source code    Telephone Dialing Techniques Using the  MC6805  AN940    shows how to use an  MCU as a telephone dialer  Covers pulse  and DTMF dialing  Includes schematic  and assembler source code    You should be able to order applica   tion notes from your local Motorola dis   tributor  You can also contact     Motorola Literature Center  P O  Box 20912  Phoenix  AZ 85036    Where From Here    I ve become fascinated by the power  available in such a small package  Build   ing instruments such as VOMs and  frequency counters would be a snap  Be   cause the  HC705 directly interfaces to  switch matrices and multi character LCD  displays  you can easily build a large dis   play digital meter that monitors up to 11  voltages  using only two chips    The FREEWARE BBS and application  notes provide more design possibilities  and information than I have time to deal  with right
266. torial  two of those  were subscription cancellations     On the other side  seven people have  been very supportive     Where have you  been all these years     has been the general  comment  I particularly thank those of you  who sent reading material  e g   The Tao of  Pooh  The Mystic Path to Cosmic  Power  and  curiously  Humor Suddenly  Returns     I ve been slowed a bit on the books how   ever  Turbo 5 5 just arrived  Hitachi sent a  whole box full of controller data books  and  I ve got to finish responding to these letters   Isn t life a kick     LIMBO s Distance Sensor   Since he shows us neither mathe   matical proof nor empirical data  I don t  know how Bob Nansel   The LIMBO  Project     Issue  47  came to the astound   ing conclusion that the intensity of re   flected light is inversely proportional to  the fourth power of distance  But he is  clearly in error in this assumption    Mr  Nansel contends that since the  intensity of both the incident wave and  the reflected wave are subject to the in   verse square law  then somehow these  two functions should be multiplied  re   sulting in an inverse fourth power law   I m curious as to what happens if  after  leaving the source  the light is reflected    Continued from page 6       twice instead of just once before it  reaches the detector  Do we then have  an inverse sixth power  or an inverse  eighth power relationship    The power detected is actually pro   portional to        di   da      where di is the sour
267. track format   The controller designers assumed  I sup   posed  there was no other way to guarantee head position   When you re formatting you can t count on reading an already  formatted track to check position  Only track 0  or  1 in the  case of the 225  is independently verifiable     The packages I ve seen  SpinRite  Disk Technician  and Op   tune  are smart enough to spot a cludgy controller  by measur   ing the time it takes to format the first couple tracks   They  speed up the process quite a bit by doing a seek to track 0  before issuing the track reformat command  But the head still  has to move all the way home and all the way back before  formatting each track    What does all this activity have to do with errors  Very  good question  It should make no difference how far the head  traveled  it should settle at exactly the same spot    Hard drives that dedicate one surface to servo  position   data have no problem positioning their heads precisely  these  drives have an odd number of read write heads   you ll find  that full height Seagates and Priams have odd heads     But the little half heights insist on cramming data onto  every platter  so they re not going to dedicate a surface for  position  they just count stepper motor pulses   At least this is    Continued from page 4    the case for the stepper based as   semblies  voice coil positioners with  optical position sensors are prob   ably fine     Anyway  the heads can drift   both with age and with tempera 
268. uest by contacting the  FAA  Federal Aviation Administration    There I spoke to Dr  Lyle Malotky  who  explained that airport metal detectors  use less than 1 gauss of electromagnetic  field strength  The earth has a natural    Micro Ad       DUPLICATOR TOOLKIT PRO    THE DUPLICATOR TOOLKIT PROfessional is a superfast   diskette duplication utility for your PC  It does what  diskcopy can t do  Copies a 360K diskette in 20 seconds   formats and verifies  on the fly   and even produces diskette  labels at the same time  Copies 5 1 4 360K DDDS  12M  high density  5 1 4 360K using a 12M high density drive  3  1 2720k  3 1 2 1 44M and 3 1 2 720K using a 1 44M drive   Stores master in RAM or on the hard drive  Format on  option allows for high speed formatting   Eliminates the     floppy shuffle     129 00   5 00 s h Visa MC Cod  COPY TECHNOLOGIES  14252 Culver Dr  Ste  323  Irvine  CA 92714   714  975 1477       Reader Service Number 163    STOCKS OPTIONS FUTURES      Tum Your PC IntoA  MARKET QUOTATION MONITOR    100 page book covers satellite and radio data  reception of financial news and quotes for your PC    19  includes demo diskette   Free informative  catalog of  j     Data receivers and kits     Quote processing and display software     Descrambling software utilities    303 223 2120  5 Demo Diskette    DATArx    111 E  Drake Rd  Suite 7041  Fort Collins  CO 80525    Reader Service Number 133    Complete C Source Code   No Royalties     Simple Screen Definition x Windows
269. ur program before being passed onto  the ROM  Most programmers select  special keystrokes to activate their resi   dent programs    The special control keys are ideally  suited for this role because they do not  produce characters of their own  but  change the codes generated by other  keys  The keyboard I O interrupt  INT  16H  function 02  returns the status of the  eight keys listed in Figure 2    For example  if you press both shift  keys  the AL register returns the value 3   When you press all eight keys simul   taneously  it returns the value 255  Test   ing for a definite value can activate a  resident program  Otherwise  keystrokes  are treated in the usual manner    The user timer interrupt is taken 182  times per second and is invoked by the  timer interrupt  INT 8H   The vector for  Interrupt 1CH points to address  F000 FF49H in ROM  Use the DEBUG     U    command to look at the first instruc   tion of this handler      UF000 FF49 FF49  FOOO FF49 CF IRET    This is a dummy handler which does  nothing but execute an interrupt return   However  control of this interrupt allows  you to continuously run a procedure in  resident memory    TSR programs typically include an in   itialization procedure  a portion to rede   fine the interrupt vector table  and the  code that remains resident    Normally  a program will want to  leave only part of itself resident  dis   carding the initialization code  Therefore   you should organize a TSR so that the  resident portion come
270. using  it for anything      Why Wait    ButtonWare has issued version 1 1 of  PC File dB  Why    As marketing representative Suzanne  Faith tells it  it was the enthusiastic re   sponse of users to version 1 0 and their  encouraging feedback   Our users im   mediately had several excellent ideas  and suggestions regarding what they  would like to see in the new program   Some of these suggestions were so  good  we decided not to wait until our  next regular update  late in 1989     Now you ll be able choose your own  names for index files  preventing  possible conflicts  Memo fields are  wider  the import function is faster  IF  calculations have been refined  and re   lational lookup support supposedly has  been improved    For more information  contact But   tonWare     PC File dB  version 1 1   ButtonWare  Inc    P O  Box 96058   Bellevue  WA 98009 4469    206  454 0479    800  JBUTTON  orders only            MICRO CORNUCOPIA   49  Sept Oct 1989 67        By Jay C  Bowden  Epoch Data Devices   P O  Box 1093   Cardiff  CA 92007    Ya Gotta Have MOX    What do you do after you ve fought your way  through the development cycle  lined up someone to  handle distribution  sent out releases  finagled re   views  and placed ads  You wait for orders     ticle I sent in to Micro Cornucopia back in   July of  87   Phone Your Own Clone  de   scribed how a person could build the hardware  to turn on his PC when the Carrier Detect  CD   also called RLSD  signal in his external modem  be
271. view of the pieces or an oblique  view  both easy to understand    Does it play a strong game of chess  I don t know  When I  put it into beginner mode  I can beat it  That s all that matters     Chessmaster 2100    49 95   The Software Toolworks  19808 Nordhoff Place  Chatsworth  CA 91311   818  885 9000    Empire    Empire is a wonderful game  Jerry Pournelle rated it the  top game  said he wound up playing it until 2 a m      my  brother commented as I threaded my way among computers     Interesting  Jerry might get off on a silly game  but I have a    MICRO CORNUCOPIA   49  Sept Oct 1989 71          Around the Bend    column to write  Besides  I   ve sworn off trivial pursuits like  war games   I tried a board game called Battleship once     found it about as exciting as cleaning the cat box      Try my copy  you ll like it     I glanced through the manual  inside the back there were  pictures of the authors  Walter Bright  Our Walter  Author of  Zortech C    Speaker at SOG  He wrote a silly game    I borrowed Don   s copy    That very evening  about midnight  as I finished editing  some articles  I remembered the game  Popped in the disk  and     Empire  Wargame Of The Century    Let s see  I start with one city and that city can produce an  army  every 6 turns  or a plane  every 17 turns  or one of a  half dozen ships    Armies capture cities  troop ships haul armies  destroyers  map new territory  cruisers kill destroyers     You play against  the computer  against ano
272. with complete software     PC MASTERCARD   Ok installed     Turbo Editor Toolbox    by Borland International       29 95  Ever wanted to add text editing to your Turbo  Pascal application  or write a word processor that  does things the way that YOU want  Comes with  source for two sample editors  modules for win   dowing  multi tasking  and many other options   Requires PC or compatible and Turbo Pascal 3 0     COPY II PC by    Central Point Software   24 95  Stop worrying about your copy protected disks   COPY II PC lets you back them up  so you can  keep going when your master disk can t     Printer Data Switches   Quality with economy  These boxes switch all  25 lines so they can be used with either RS232   or IBM parallel  DB25  printer cables    Four port data switch   Two port data switch     IBM style Parallel Printer Cable       Three cable set xx Special xx       30 00    MicroPro Manuals  WordStar V3 3 Manual  InfoStar Set    DataStar  amp  ReportStar     Call or write for our complete catalog of software   parts  accessories and complete repair services  for the Kaypro  Xerox 820  and IBM PC AT     Prices subject to change without notice  VISA and  Mastercard accepted  Include  6 00 shipping  and handling   8 50 for COD  UPS Blue or RED  Label additional  Please include your phone  number with all correspondence      503  641 8088     eT  VISA    MasterCard    uM       MICRO CORNUCOPIA   49  Sept Oct 1989 85       By Gary Entsminger  P O  Box 2091  Davis  CA 95617
273. z         899 coon ble  SOCHE  100  20MB Hard Disk Kit       279 Toshiba 321 XL                519 HGC compat mono card   49 RS232 2 port card             35 Locking slide case             59 Pla wi ile kis  140d  30MB Hard Disk Kit       309 NEC P2000              369 Color graphic card            49  4 serial port card               79 200W power supply          65 Sar Ota oe NS s  KL320  40MS                 215 Callforpricesofotherbrands EGA Paradise 480          149   Game l Ocard           15  Enhancedkeyboard     590 AG Power strips              15  8425 Miniscribe               249 VGA Paradise                  279 384k Multifunction card    69   WD FD HDC               129 n  file box       EE  9  8438 30MB Miniscribe  259   MODEMS   Genoa Super VGA         299  FCC app  slide XTcase    29 DTC FDC HDC 1 1        189 yd or serial sa e         8  3650 40MB Miniscribe  349 150W power supply       49 3MB EMS  UK               99 pe Tape Backup  536  3675 60MB Miniscribe  379   300 1200    XT keyboard           42  gaampupappuEREEEES 0 0     ST 157 49MB 3                479 2400 external         Logimouse C7    esu  69 Clock Card              DESKTOP   XT 10MHz 640k   2400 internal          Logimouse H1 Res            99 Floppy Controller 2 Drive System           759       McTek Systems  Inc    1521 San Pablo Avenue   Berkeley  CA 94702   415 525 5129    Reader Service Number 42    MICRO CORNUCOPIA   49  Sept Oct 1989 63          you know  the blare of ferris wheel  music
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Kenroy Home 32037BS Installation Guide  EUROLITE TS-2 User Manual - MGConcept  REFUGIES – FICHES TECHNIQUES  User Manual ()  LMI System Calibration Guide  Manual de Instrucciones Manual de Instruções    Copyright © All rights reserved. 
   Failed to retrieve file