*********************  Microcontroller FAQ  ****************************

This microcontroller FAQ is actually 3 different FAQs in one large
file.  You need to look through the entire file to see all three FAQ
files.  The FAQ files contained here are:
1) primer  
2) 68hc11
3) 8051

The originals for all three faqs can be obtained from:
  rtfm.mit.edu   /put/usenet/comp.answers/microcontroller-faq


********************************** PRIMER FAQ ***************************

Archive-name: microcontroller-faq/primer
Posting-Frequency: monthly
Last-modified: Mar. 30, 1995

This article is a primer and general FAQ about microcontrollers.
Included is a collection of information sources on various
microcontrollers.

The following topics are addressed:

       0)  Rantings and ravings (to make the FAQ zero-based)

       1)  ABOUT THIS FAQ
     1.1)  Who put this FAQ together?
     1.2)  How can I contribute to this FAQ?
     1.3)  What newsgroups will this FAQ be posted to?
     1.4)  May I distribute this FAQ or post it somewhere else?

       2)  MICROCONTROLLERS
     2.1)  What is a Microcontroller?
     2.2)  Applications
     2.3)  Flavors

       3)  THE MICROCONTROLLER MARKET
     3.1)  Shipments
     3.2)  Industrial applications
     3.3)  Deciding whose microcontroller to use
     3.4)  The players

       4)  MICROCONTROLLER FEATURES
     4.1)  Fabrication techniques
     4.2)  Architectural features
     4.3)  Advanced Memory options
     4.4)  Power Management and Low Voltage
     4.5)  I/O
     4.6)  Interrupts
     4.7)  Special microcontroller features

       5)  SOME POPULAR MICROCONTROLLERS

       6)  GETTING STARTED WITH MICROCONTROLLERS
     6.1)  Evaluation Kits/Boards
     6.2)  Easy chips to use
     6.3)  Software (cheap and easy)

       7)  MICROCONTROLLER PROGRAMMING LANGUAGES
     7.1)  Machine/Assembly language
     7.2)  Interpreters
     7.3)  Compilers
     7.4)  Fuzzy Logic and Neural Networks

       8)  DEVELOPMENT TOOLS
     8.1)  Simulators
     8.2)  Resident Debuggers
     8.3)  Emulators
     8.4)  Good Stereo System

       9)  FINDING OUT MORE ABOUT MICROCONTROLLERS
     9.1)  Books
     9.2)  Data and Reference Books
     9.3)  Periodicals
     9.4)  Internet newsgroups
     9.5)  Internet sources of information on specific microcontrollers

      10)  MICROCONTROLLER FREE SOFTWARE SOURCES
    10.1)  FTP sites
    10.2)  WEB pages
    10.2)  BBSs
    10.3)  Mailing lists


0)  Rantings and ravings

    Disclaimer:  Just so it is understood, the "rantings and ravings" are
    my rantings and ravings.  My readers are refined and sophisticated
    and would never rant or rave.  I, on the other hand, sit in front of
    the TV in torn underwear and drink beer out of the bottle.


    My sincerest apologies to anyone that wrote to me, and didn't get a
    reply.  I was inundated this time, and I'm afraid that I wasn't too
    careful in keeping track of my email.  Also, some of those I did
    respond to didn't hear from me because their email addresses were
    invalid (or, at least my system thinks so).  So, if you feel
    neglected, or you submitted some information that didn't make it into
    this month's update, please drop me a note and let me know.  A
    thousand pardons!


    Well, the verdict is in.  No, I'm not talking about OJ - I'm talking
    about one-part FAQs versus multi-part.  The response has been nearly
    unanimous to keep the FAQs in one piece.  So, one piece it is.


    Lots of good stuff this time...

    Thanks to Olaf 'Olu' Pfeiffer of Hitex who has made this FAQ
    available on a web page:
    http://www.ba-karlsruhe.de/automation/ctrl/FAQ/microFAQ/microFAQ.html

    Thanks to Ted MacDonald for the following hint:  "If you contact
    Motorola at 800-521-6274 and order literature #M68HC11RM/AD, they
    will send, free of charge, a reference manual for the 6811.  Thought
    this might be useful for others."


    National Semiconductor / MetaLink COP8780 Evaluation/Programming Unit

       Robin Getz of National Semiconductor supplied me with a
       pre-release version of the EPU.  I haven't really had much of an
       opportunity to put it through its paces yet, but it's an
       interesting looking new product.  This kit offers designers a
       low-cost tool for an introduction to National's COP8 Basic Family
       of 8-bit microcontrollers.

       This development tool gives you an inexpensive way to benchmark
       and evaluate microcontroller code in real-time.  With its built in
       MIRCOWIRE/PLUS interface, it can interface to numerous
       MICROWIRE/PLUS devices such as EPROMS, EEPROMS, D/As, A/Ds, DASs,
       and others, to give a full featured system.  The system includes
       the EPU board, 2 8780Cx parts (early kits have OTPs, later kits
       will have windowed parts), assembler, debugger, sample code, a
       very limited C compiler, a wall power supply, and a really great
       box :-).

       The EPU is an in-circuit simulator.  It plugs into your target
       system in place of an COP880C microcontroller and it executes code
       using a COP8780CJ [emulator] microcontroller on the EPU board.
       Like a software simulator, it does not run real time.  Hardware
       and software control the microcontroller cycle-by-cycle, and break
       handling and tracing are done completely through software.

       Documentation includes a COP8 Series Microcontroller User's Manual
       (this is missing in the first run, you'll have to ask for one), a
       comprehensive assembler manual, and various product line
       literature.  The documentation on the kit itself is scant, but
       gives enough information to get the job done.

       This is a nice way to get started with microcontrollers, and the
       COP800 is an interesting chip with a powerful and efficient
       instruction set.  For only $125, this is worth checking out.
       Mention this FAQ, and I'm sure they'll be glad to double the
       price.


    Philips Semiconductor / CEIBO DS750 Devolopment Tools

       A good way to learn about 8051 programming, this kit is based on
       the 8xc7xx series which are very low-end, inexpensive micros.
       They are offered with less memory (1k, 2k, etc.) and fewer
       features.  In fact the 83c750 sells for only $1 in very high OEM
       volumes.

       The kit includes a DS750 board, source level debugger, and
       utilities.  Both DOS and Windows versions of the software are
       included on the diskette, and installation is a snap.  I don't
       understand why, but no assembler is included!  A number of
       assemblers and C compilers are compatible with (or adaptable to)
       the source level debugger, including:  Keil/Franklin, IAR, and
       Micro Computer Control.  If you're on a budget, the Micro Computer
       Control package is only $100 - the prices of the other packages
       are a bit more creative :-).  Philips also has the MetaLink
       assembler available for free on their BBS.

       The DS750 has 3 operating modes:  real-time, simulator, and
       simulator plus.  It plugs into your target system in place of an
       87c750 (24 pin) and it executes code using an 87c752 [emulator] on
       the DS750 board.

       Besides being a very nice platform for testing your code
       real-time, the enclosed manual makes this package really
       worthwhile.  In addition to the obligatory startup and operation
       information, the book includes schematics and theory of the
       board's operation.  Five experiments guide the user on
       understanding the workings and capabilities of the 8051 family.

       Priced at only $100, a truckload of these have already been sold,
       and for good reason.  If you're interested in learning how to use
       an 8051, you can't go wrong by buying this kit.


    Minds-Online engineering ftp site and mailing lists:

       A new ftp site (ftp.std.com:/customers2/nonprofits/minds-online)
       should by now be up and running.  It will have over 100 Mbytes of
       engineering material.  Chock full of compilers, assemblers, code,
       articles, fuzzy logic, and much more.  This is definitely worth
       checking out!

       A mailing list for announcing significant postings on this ftp
       site is being gathered.

       Another mailing list, this one MODERATED, will carry messages from
       real engineers who are working on designs slated for volume
       production.  "No tire-kickers, no students, no academics, no
       sleazy something-for-nothing ripoff artists, no hobbyists, and no
       totally lost people will be able to post e-mail."  (Uh, it looks
       like that sort of leaves out yours truly, I certainly belong in
       several, if not most, of those categories).

       If you would like to be on one or both of these lists, send your
       email address to: csmall@tiac.net.  Put a good word in for me
       while you're at it, my mind's usually off-line :-).


    New book out!

       A great book just landed on my desk.  Not exactly about
       microcontrollers, but it isn't another silly book by or about
       Madonna either.  The book is Posix.4: Programming for the Real
       World by Bill O. Gallmeister and published by O'Reilly and
       Associates.  Written with a Unix perspective, the book is about
       programming in the real world.  Yeah, here's our connection with
       microcontrollers.  You know - microwave ovens, car braking
       systems, mother-in-law detectors :-).  Part I of the book
       describes the Posix standard (what it is, what it isn't, and what
       it's for), and explains the principles of real time programming
       (tasking, messages, scheduling, I/O, and performance) and why Unix
       isn't fit for real-time programming.  Part II is a reference on
       the Posix functions and header files.  Part III contains much of
       the code for the exercises in the book.

       I'm enjoying this book - highly recommended!


    Take care of yourselves,

              Uncle Russ


1)  ABOUT THIS FAQ

1.1)  Who put this FAQ together?

    From time to time, general questions about microcontrollers (from
    beginners to experienced designers) pop up in the newsgroups.  It
    seemed that a general primer/FAQ on microcontrollers might be useful.

    Much of this document could be considered as a sort of a primer on
    microcontrollers.  For those of you with previous experience,
    sections 9 and 10 might be of special interest (especially for those
    of you looking for that elusive "free COBOL compiler for the 1802").


1.2)  How can I contribute to this list?

    I please ask that if you have any suggestions or additions, or you
    would like to correct any of the information contained herein, please
    send me a note.
         My Email address is:  sibit@datasrv.co.il
         My Smail address is:
               Russ Hersch
               HaVradim 11
               Ginot Shomron
               ISRAEL

    Thanks to recent contributors to this document:
            Dave Dunfield (Dunfield Development Systems)
            Cecil Moore (Intel)
            Ed Thompson (Micro Computer Control Corporation)
            Kevin Gardner (Philips Semiconductor)
            Victor Weiman (CEIBO)
            Matt Albright (Motorola)
            Tom Mornini (Parallax, Inc.)
            Ken Tindell (Uppsala University, Sweden)
            Paul K. Johnson (Hewlett Packard)
            Reuven Melaver (Eastronics - National Semiconductor
                Representative in Israel)
            Olaf 'Olu' Pfeiffer (Hitex)
            Ted MacDonald
            John Piccirillo
            Paul Hills
            Jack Coats
            Ed Sarkesian (who uses his old dirty socks to keep his
                mother-in-law away
            Mike Cepek (for pointing out so many errors :-)


    Very special thanks to Robin L. Getz (National Semiconductor) who
    probably could be considered an honorary co-author of this FAQ. :-)

    Also, thanks to those who have posted questions and to those who have
    posted answers.  Thanks to "my new friends" who send suggestions and
    encouragement, as well as the occasional question.  Special thanks to
    my mother-in-law, who thankfully will probably never read this
    document ;-).


1.3)  What newsgroups will this FAQ be posted to?

    This FAQ will be posted to the following newsgroups:
          comp.robotics
          comp.sys.intel
          comp.sys.m68k
          comp.sys.6809
          sci.electronics
          alt.comp.hardware.homebuilt

    I will post once a month - on or about the 26th of each month.


1.4)  May I distribute this FAQ or post it somewhere else?

    I am putting no restrictions on the use of this FAQ except - It must
    be distributed in its entirety with the copyright notice, and no
    financial gain may be realized from it.  After all, I have spent, and
    continue to spend, a lot of time on this.

    For this reason I have appended a copyright statement to the end of
    this FAQ.  I feel pretty silly doing this, but I just want to protect
    myself.  The copyright does not limit the use of this list for
    noncommercial purposes.  I hereby give my permission to one and all
    to pass this list around and post it wherever you want - as long as
    it is not for financial gain.

        Thank you.


2)  MICROCONTROLLERS


2.1)  What is a Microcontroller?

    A controller is used to control (makes sense!) some process or aspect
    of the environment.  A typical microcontroller application is the
    monitoring of my house.  As the temperature rises, the controller
    causes the windows to open.  If the temperature goes above a certain
    threshold, the air conditioner is activated.  If the system detects
    my mother-in-law approaching, the doors are locked and the windows
    barred.  In addition, upon detecting that my computer is turned on,
    the stereo turns on at a deafening volume (for more on this, see the
    section on development tools).

    At one time, controllers were built exclusively from logic
    components, and were usually large, heavy boxes (before this, they
    were even bigger, more complex analog monstrosities).  Later on,
    microprocessors were used and the entire controller could fit on a
    small circuit board.  This is still common - you can find many [good]
    controllers powered by one of the many common microprocessors
    (including Zilog Z80, Intel 8088, Motorola 6809, and others).

    As the process of miniaturization continued, all of the components
    needed for a controller were built right onto one chip.  A one chip
    computer, or microcontroller was born.  A microcontroller is a highly
    integrated chip which includes, on one chip, all or most of the parts
    needed for a controller.  The microcontroller could be called a
    "one-chip solution".  It typically includes:
          CPU (central processing unit)
          RAM (Random Access Memory)
          EPROM/PROM/ROM (Erasable Programmable Read Only Memory)
          I/O (input/output) - serial and parallel
          timers
          interrupt controller

    By only including the features specific to the task (control), cost
    is relatively low.  A typical microcontroller has bit manipulation
    instructions, easy and direct access to I/O (input/output), and quick
    and efficient interrupt processing.  Microcontrollers are a "one-chip
    solution" which drastically reduces parts count and design costs.


2.2)  Applications

    In addition to control applications such as the above home monitoring
    system, microcontrollers are frequently found in embedded
    applications.  Among the many uses that you can find one or more
    microcontrollers:  appliances (microwave oven, refrigerators,
    television and VCRs, stereos),  automobiles (engine control,
    diagnostics, climate control), environmental control (greenhouse,
    factory, home), instrumentation, aerospace, and thousands of other
    uses.

    Microcontrollers are used extensively in robotics.  In this
    application, many specific tasks might be distributed among a large
    number of microcontrollers in one system.  Communications between
    each microcontroller and a central, more powerful microcontroller (or
    microcomputer, or even large computer) would enable information to be
    processed by the central computer, or to be passed around to other
    microcontrollers in the system.

    A special application that microcontrollers are well suited for is
    data logging.  Stick one of these chips out in the middle of a corn
    field or up in a ballon, and monitor and record environmental
    parameters (temperature, humidity, rain, etc).  Small size, low power
    consumption, and flexibility make these devices ideal for unattended
    data monitoring and recording.


2.3)  Flavors

    Microcontrollers come in many flavors and varieties.  Depending on
    the power and features that are needed, you might choose a 4 bit, 8
    bit, 16 bit, or 32 bit microcontroller.  In addition, some
    specialized versions are available which include features specific
    for communications, keyboard handling, signal processing, video
    processing, and other tasks.


3)  THE MICROCONTROLLER MARKET

    Thanks to Robin Getz of National Semiconductor for supplying much of
    the material in this section.


3.1)  Shipments

            WorldWide Microcontroller Shipments (in millions of dollars)

            '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
     4-bit 1,393 1,597 1,596 1,698 1,761 1,826 1,849 1,881 1,856 1,816 1,757
     8-bit 2,077 2,615 2,862 3,703 4,689 5,634 6,553 7,529 8,423 9,219 9,715
    16-bit   192   303   340   484   810 1,170 1,628 2,191 2,969 3,678 4,405


                 WorldWide Microcontroller Shipments (in Millions)

             '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
     4-bit   778   906   979  1036  1063  1110  1100  1096  1064  1025   970
     8-bit   588   753   843  1073  1449  1803  2123  2374  2556  2681  2700
    16-bit    22    38    45    59   106   157   227   313   419   501   585


                                                   Source: WSTS & ICE - 1994

    If you were wondering why you should bother learning about
    microcontrollers - well, the tables above should fairly scream the
    answer at you.  Microcontrollers will be *BIG* business - we're
    talking piles of cash - billions!

    Notice that even the lowly 4-bit device is holding its own - what use
    is a 16-bit part in a toaster oven?  Also notice that the 8-bit
    market just keeps growing, and will probably continue to grow.  8-bit
    devices account for over half of the market, and will eventually grab
    even more.  Now do you understand why every silicon manufacturer is
    really pushing their 8-bit microcontrollers?


3.2)  Industrial applications

    Average Semiconductor Content per Passenger Automobile (in Dollars)

        '90   '91   '92   '93   '94   '95   '96   '97   '98   '99   '00
     $  595   634   712   905 1,068 1,237 1,339 1,410 1,574 1,852 2,126

                                                     Source: ICE - 1994

    The automotive market is the most important single driving force in
    the microcontroller market, especially at it's high end.  Several
    microcontroller families were developed specifically for automotive
    applications and were subsequently modified to serve other embedded
    applications.

    The automotive market is demanding.  Electronics must operate under
    extreme temperatures and be able to withstand vibration, shock, and
    EMI.  The electronics must be reliable, because a failure that causes
    an accident can (and does) result in multi-million dollar lawsuits.
    Reliability standards are high - but because these electronics also
    compete in the consumer market - they have a low price tag.

    Automotive is not the only market that is growing.  DataQuest says
    that in the average North American's home there are 35
    microcontrollers.  By the year 2000 - that number will grow to 240.
    Consumer electronics is a booming business.


3.3)  Deciding whose microcontroller to use

    When deciding which devices to implement in a design, there are lots
    of things to consider besides who else is using these devices (and
    how many are they using).
      - Can I expect help when I am having problems?
      - What development tools are available and how much do they cost?
      - What sort of documentation is available (reference manuals,
        application notes, books)?
      - Can I work a deal by purchasing more devices at one manufacturer?
        That is, purchasing not only the microcontroller, but also
        peripherals (A/D, memory, voltage regulator, etc.) from one
        company).
      - Do they support OTPs, windowed devices, mask parts?


3.4)  The players

    Here is a list of the big guys.  Keep in mind that units does not
    equal dollars.  Since some companies deal primarily in higher end
    devices, they need to sell fewer units to achieve a higher dollar
    total.

          Company              Units (k) 1993
    -----------------------------------------------
          Motorola               358,894
          Mitsubishi              71,674
          NEC                     70,180
          Hitachi                 67,873
          Philips                 56,680
          Intel                   46,876
          SGS-Thomson             37,350
          Microchip               35,477
          Matsushitta             34,200
          Toshiba                 32,205
          National Semiconductor  31,634
          Zilog                   31,000
          Texas Instruments       29,725
          Siemens                 20,874
          Sharp                   17,505

                                         SOURCE: DataQuest June 1994


    The above numbers are just somebody's best guess - believe them if
    you want to.  Since they get paid to come up with these numbers, one
    would hope that they would be fairly reliable.  However, one of these
    numbers is wrong for certain (and Robin Getz won't say whether it
    should be higher or lower ;-).


4)  MICROCONTROLLER FEATURES

    Thanks to Robin Getz of National Semiconductor who supplied some of
    the material in this section.


4.1)  Fabrication techniques

    CMOS - Complementary Metal Oxide Semiconductor

       This is the name of a common technique used to fabricate most (if
       not all) of the newer microcontrollers.  CMOS requires much less
       power than older fabrication techniques, which permits battery
       operation.  CMOS chips also can be fully or near fully static,
       which means that the clock can be slowed up (or even stopped)
       putting the chip in sleep mode.  CMOS has a much higher immunity
       to noise (power fluctuations or spikes) than the older fabrication
       techniques.


    PMP - Post Metal Programming (National Semiconductor)

       PMP is a high-energy implantation process that allows
       microcontroller ROM to be programmed AFTER final metalization.
       Usually ROM is implemented in the second layer die, with nine or
       ten other layers then added on top.  That means the ROM pattern
       must be specified early in the production process, and completed
       prototypes devices won't be available typically for six to eight
       weeks.  With PMP, however, dies can be fully manufactured through
       metalization and electrical tests (only the passivation layers
       need to be added), and held in inventory.  This means that ROM can
       be programmed late in production cycle, making prototypes
       available in only two weeks.


4.2)  Architectural features

    Von-Neuman Architecure

       Microcontrollers based on the Von-Neuman architecture have a
       single "data" bus that is used to fetch both instructions and
       data.  Program instructions and data are stored in a common main
       memory.  When such a controller addresses main memory, it first
       fetches an instruction, and then it fetches the data to support
       the instruction.  The two separate fetches slows up the
       controller's operation.


    Harvard Architecture

       Microcontrollers based on the Harvard Architecture have separate
       data bus and an instruction bus.  This allows execution to occur
       in parallel.  As an instruction is being "pre-fetched", the
       current instruction is executing on the data bus.  Once the
       current instruction is complete, the next instruction is ready to
       go.  This pre-fetch theoretically allows for much faster execution
       than a Von-Neuman architecture, but there is some added silicon
       complexity.


    CISC

       Almost all of today's microcontrollers are based on the CISC
       (Complex Instruction Set Computer) concept.  The typical CISC
       microcontroller has well over 80 instructions, many of them very
       powerful and very specialized for specific control tasks.  It is
       quite common for the instructions to all behave quite differently.
       Some might only operate on certain address spaces or registers,
       and others might only recognize certain addressing modes.

       The advantages of the CISC architecture is that many of the
       instructions are macro-like, allowing the programmer to use one
       instruction in place of many simpler instructions.


    RISC

       The industry trend for microprocessor design is for Reduced
       Instruction Set Computers (RISC) designs.  This is beginning to
       spill over into the microntroller market.  By implementing fewer
       instructions, the chip designed is able to dedicate some of the
       precious silicon real-estate for performance enhancing features.
       The benefits of RISC design simplicity are a smaller chip, smaller
       pin count, and very low power consumption.

       Among some of the typical features of a RISC processor:
          - Harvard architecture (separate buses for instructions and
            data) allows simultaneous access of program and data, and
            overlapping of some operations for increased processing
            performance
          - Instruction pipelining increases execution speed
          - Orthogonal (symmetrical) instruction set for programming
            simplicity; allows each instruction to operate on any
            register or use any addressing mode; instructions have no
            special combinations, exceptions, restrictions, or side
            effects


    SISC

       Actually, a microcontroller is by definition a Reduced Instruction
       Set Computer (at least in my opinion).  It could really be called
       a Specific Instruction Set Computer (SISC).  The [original] idea
       behind the microcontroller was to limit the capabilities of the
       CPU itself, allowing a complete computer (memory, I/O, interrupts,
       etc) to fit on the available real estate.  At the expense of the
       more general purpose instructions that make the standard
       microprocessors (8088, 68000, 32032) so easy to use, the
       instruction set was designed for the specific purpose of control
       (powerful bit manipulation, easy and efficient I/O, and so on).

       Microcontrollers now come with a mind boggling array of features
       that aid the control engineer - watchdog timers, sleep/wakeup
       modes, power management, powerful I/O channels, and so on.  By
       keeping the instruction set specific (and reduced), and thus
       saving valuable real estate, more and more of these features can
       be added, while maintaining the economy of the microcontroller.


4.3)  Advanced Memory options

    EEPROM - Electrically Erasable Programmable Read Only Memory

       Many microcontrollers have limited amounts of EEPROM on the chip.
       EEPROM seems more suited (becuase of its economics) for small
       amounts of memory that hold a limited number of parameters that
       may have to be changed from time to time.  This type of memory is
       relatively slow, and the number of erase/write cycles allowed in
       its lifetime is limited.


    FLASH (EPROM)

       Flash provides a good better solution than regular EEPROM when
       there is a requirement for large amounts of non-volatile program
       memory.  It is both faster and permits more erase/write cycles
       than EEPROM.


    Battery backed-up static RAM

       Battery backed-up static RAM is useful when a large non-volatile
       program and DATA space is required.  A major advantage of static
       RAM is that it is much faster than other types of non-volatile
       memory so it is well suited for high performance application.
       There also are no limits as to the number of times that it may be
       written to so it is perfect for applications that keep and
       manipulate large amounts of data locally.


    Field programming/reprogramming

       Using nonvolatile memory as a place to store program memory allows
       the device to be reprogrammed in the field without removing the
       microcontroller from the system that it controls.  One such
       application is in automotive engine controllers.  Reprogrammable
       non-volatile program memory on the engine's microcontroller allows
       the engine controller program to be modified during routine
       service to incorporate the latest features or to compensate for
       such factors as engine aging and changing emissions control laws
       (or even to fix bugs!!).  Reprogramming of the microcontroller
       could become a standard part the routine engine tune-up.

       Almost every application could benefit from this type of program
       memory - If a modem's hardware supported it, you could remotely
       upgrade your modem from Vfast to V.34, or incorporate new features
       such as voice control or a digital answering machine.


    OTP - One Time Programmable

       An OTP is a PROM (Programmable Read-Only-Memory) device.  Once
       your program is written into the device with a standard EPROM
       programmer, it can not be erased or modified.  This is usually
       used for limited production runs before a ROM mask is done in
       order to test code.

       A OTP (One Time Programmable) part uses standard EPROM, but the
       package has no window for erasing.  Once your program is written
       into the device with a standard EPROM programmer, it cannot be
       erased or modified.  (Well, sort of - any bit that is a one can be
       changed to a zero - but a bit that is a zero cannot be changed
       into a one).

       As product design cycles get shorter, it is more important for
       micro manufacturers to offer OTPs as an option.  This was commonly
       used for limited production runs before a ROM mask in order to
       test code.  However, one problem with Mask ROM is that
       programming, setup, and engineering charges make it economical
       only when the systems manufacturer purchases large quantities of
       identically programmed micros.  Then when you discover THAT bug
       (and find it and fix your code), you have quantities of *old
       buggy* micros around that you have to throw away.  Not to mention
       that lead time (the time when you submit your code to the micro
       manufacture, to the time you receive your micro with your code on
       it) can be at least 8 weeks, and as bad as 44 weeks.


    Software protection

       Either by encryption or fuse protection, the programmed software
       is protected against unauthorized snooping (reverse engineering,
       modifications, piracy, etc.).

       This is only an option on OTPs and Windowed devices.  On Masked
       ROM devices, security is not needed - the only way to read your
       code would be to rip the microcontroller apart with a scanning
       electron microscope - and how many people really have one of
       those?

       Although - and this is a manufacturer's little know fact - when a
       silicon manufacturer makes your ROMed microcontroller - they have
       to test it in order to make sure that it is programmed properly.
       (You should see what a spec of dust does on a mask :-)  In order
       to test this, they must be able to read out the ROM and compare it
       to the code you submitted.  This mode is known as test mode.  IN
       TEST MODE YOU CAN READ OUT THE ROM OF ANY DEVICE.  Anybody who
       tells you different, does not know what they are talking about -
       or is lying.  This is usually not a big deal because test mode is
       ***VERY*** confidential, and (usually) only known by that
       manufacturer (i.e. you cannot put a device into test mode by
       accident).  Test mode is ONLY applicable with ROMed devices.


4.4)  Power Management and Low Voltage

    Low voltage parts

       Since automotive applications have been the driving force behind
       most microcontrollers, and 5 Volts is very easy to do in a car,
       most microcontrollers have only supported 4.5 - 5.5 V operation.
       In the recent past, as consumer goods are beginning to drive major
       segments of the microcontroller market, and as consumer goods
       become portable and lightweight, the requirement for 3 volt (and
       lower) microcontrollers has become urgent (3 volts = 2 battery
       solution / lower voltage = longer battery life).  Most low voltage
       parts in the market today are simply 5 volt parts that were
       modified to operate at 3 volts (usually at a performance loss).
       Some micros being released now are designed from the ground up to
       operate properly at 3.0 (and lower) voltages, which offer
       comparable performance of the 5 volt devices.


       Now, why are voltages REALLY going down on ICs?  Paul K. Johnson
       (of Hewlett-Packard) explains:

       There are a few interesting rules of thumb regarding transistors:
       1)  The amount of power they dissipate is proportional to their
           size.  If you make a transistor half as big, it dissipates
           half as much power.
       2)  Their propagation delay is proportional to their size.  If you
           make a transistor half as big, it's twice as fast.
       3)  Their cost is proportional to the square of their size.  If
           you make them half as big, they cost one quarter as much.

       If you make a transistor smaller, you improve the power, speed,
       and cost.  The only drawback is that they are harder to make.
       (Well, how hard can it be for HP, IBM, Motorola, National, etc?)
       Everybody in the world wants to make transistors smaller and
       smaller, the advantages are enormous.

       For years people have been using 5 Volts to power IC's.  Because
       the transistors were large, there was little danger damaging the
       transistor putting this voltage across it.  However, now that the
       transistors are getting so small, 5 Volts will actually fry them.
       The only way around this is to start lowering the voltage.  This
       is why people are now using 3 (actually 3.3) Volt logic, and lower
       in the next few years.  It isn't just because of batteries.


    Brownout Protection

       Brownout protection is usually an on-board protection circuit that
       resets the device when the operating voltage (Vcc) is lower than
       the brownout voltage.  The device is held in reset and will remain
       in reset when Vcc stays below the Brownout voltage.  The device
       will resume execution (from reset) after Vcc has risen above the
       brownout Voltage.


    Idle/Halt/Wakeup

       The device can be placed into IDLE/HALT mode by software control.
       In both Halt and Idle conditions the state of the microcontroller
       remains.  RAM is not cleared and any outputs are not changed.  The
       terms idle and halt often have different definitions, depending on
       the manufacturer.  What some call idle, others may call halt, and
       vice versa.  It can be confusing, so check the data sheet for the
       device in question to be sure.

       In IDLE mode, all activities are stopped except:
         - associated on-board oscillator circuitry
         - watchdog logic (if any)
         - the clock monitor
         - the idle timer (a free running timer)
       Power supply requirements on the microcontroller in this mode are
       typically around 30% of normal power requirements of the
       microprocessor.  Idle mode is exited by a reset, or some other
       stimulus (such as timer interrupt, serial port, etc.).  A special
       timer/counter (the idle timer) causes the chip to wake up at a
       regular interval to check if things are OK.  The chip then goes
       back to sleep.

       IDLE mode is extremely useful for remote, unattended data logging
       - the microprocessor wakes up at regular intervals, takes its
       measurements, logs the data, and then goes back to sleep.

       In Halt mode, all activities are stopped (including timers and
       counters).  The only way to wake up is by a reset or device
       interrupt (such as an I/O port).  The power requirements of the
       device are minimal and the applied voltage (Vcc) can sometimes be
       decreased below operating voltage without altering the state
       (RAM/Outputs) of the device.  Current consumption is typically
       less than 1 uA.

       A common application of HALT mode is in laptop keyboards.  In
       order to have maximum power saving, the controller is in halt
       until it detects a keystroke (via a device interrupt).  It then
       wakes up, decodes and sends the keystroke to the host, and then
       goes back into halt mode, waiting either for another keystroke, or
       information from the host.


    Multi-Input Wakeup (National Semiconductor)

       The Multi-Input WakeUp (MIWU) feature is used to return (wakeup)
       the microcontroller from either HALT or IDLE modes.  Alternately
       MIWU may also be used to generate up to 8 edge selectible external
       interrupts.  The user can select whether the trigger condition on
       the pins is going to be either a positive edge (low to high) or a
       negative edge (high to low).


4.5)  I/O

    UART

       A UART (Universal Asynchronous Receiver Transmitter) is a serial
       port adapter for asynchronous serial communications.


    USART

       A USART (Universal Synchronous/Asynchronous Receiver Transmitter)
       is a serial port adapter for either asynchronous or synchronous
       serial communications.  Communications using a USART are typically
       much faster (as much as 16 times) than with a UART.


    Synchronous serial port

       A synchronous serial port doesn't require start/stop bits and can
       operate at much higher clock rates than an asynchronous serial
       port.  Used to communicate with high speed devices such as memory
       servers, display drivers, additional A/D ports, etc.  Can also be
       used to implement a simple microcontroller network.


    SPI (Motorola)

       An SPI (serial peripheral interface) is a synchronous serial port.


    SCI

       An SCI (serial communications interface) is an enhanced UART
       (asynchronous serial port).


    I2C bus - Inter-Integrated Circuit bus (Philips)

       The I2C bus is a simple 2 wire serial interface developed by
       Philips.  It was developed for 8 bit applications and is widely
       used in consumer electronics, automotive and industrial
       applications.  In addition to microcontrollers, several
       peripherals also exist that support the I2C bus.

       The I2C bus is a two line, multi-master, multi-slave network
       interface with collision detection.  Up to 128 devices can exist
       on the network and they can be spread out over 10 meters.  Each
       node (microcontroller or peripheral) may initiate a message, and
       then transmit or receive data.  The two lines of the network
       consist of the serial data line and the serial clock line.  Each
       node on the network has a unique address which accompanies any
       message passed between nodes.  Since only 2 wires are needed, it
       is easy to interconnect a number of devices.


    MICROWIRE/PLUS (National Semiconductor)

       MICROWIRE/PLUS is a serial synchronous bi-directional
       communications interface.  This is used on National Semiconductor
       Corporation's devices (microcontrollers, A/D converters, display
       drivers, EEPROMS, etc.).


    CAN & J1850

       CAN (Controller Area Network) is a mutiplexed wiring scheme that
       was developed jointly by Bosh and Intel for wiring in automobiles.
       J1850 is the SAE (Society of Automotive Engineers) multiplexed
       automotive wiring standard that is currently in use in North
       America.

       Both of these groups have the "NOT INVENTED HERE" syndrome and
       refuse to work with each other's standard. The standards are quite
       different and are not compatible at all.

       The CAN specification seems to be the one that is being used in
       industrial control both in North American and Europe.  With lower
       cost microcontrollers that support CAN, CAN has a good potential
       to take off.


    Analog to Digital Conversion (A/D)

       Converts an external analog signal (typically relative to voltage)
       and converts it to a digital representation.  Microcontrollers
       that have this feature can be used for instrumention,
       environmental data logging, or any application that lives in an
       analog world.

       The various types of A/D converters that can be found:

       Succesive Approximation A/D converters -- This the most common
       type of A/D and is used in the majority of microcontrollers.  In
       this technique, the converter figures out each bit at a time (most
       significant first) and finds if the next step is higher or lower.
       This way has some benefits - it takes exactly the same amount of
       time for any conversion - it is very common - (and therefore very
       cheap).  However it also has some disadvantages - it is slow - for
       every bit it takes at least one clock cycle - the best an 8-bit
       A/D can do is at least 8 clock cycles (and a couple for
       housekeeping).  Because it takes so long - it is a power hog as
       compared to the other types of A/Ds.

       Single Slope A/D converters -- This is the type of converter that
       you can build yourself (if the microcontroller has a couple of
       analog blocks on it).  Your single slope A/D converter would
       include Analog Mux / comparator / timer (8-bit timer = 8 bit A/D -
       16-bit timer = 16 bit A/D) with input capture and a constant
       current source.  The only microcontroller (that I know of) that
       has all of this on it is National's COP888EK.

       First Step is to clear the timer to 0000 and then start it.  It is
       a simple matter to hang an external capacitor, and charge it with
       the constant current source (linearly because of the current
       source) when the voltage on the cap exceeds the sampling voltage,
       the comparitor toggles, stops the timer - and voila - you have the
       voltage in uSecs - with 16-bit accuracy.  The only drawback is you
       can't really expect 16 bits (14 yes) - the conversion time varies
       quite a bit, and it is SLOW.

       Delta-Sigma A/Ds converters -- This type of A/D converter is found
       on higher-end DSPs.  These are the hardest to understand of the
       A/Ds because it just makes a best guess (a little National
       Semiconductor humor here :-).  Delta sigma A/Ds can be broken down
       into two main parts.

       The modulator which does the A/D conversion and the filter, which
       turns the output of the modulator into a format suitible for the
       microcontroller (or DSP).

       The modulator is very simple - it just compares the input voltage
       to the average of the last 100 (or so) modulator outputs and
       decides if the input is higher or lower than the average. This
       happens millions of times a second, resulting in a high speed
       single-bit datastream of 1s and 0s who's *average* is equal to the
       input voltage. Becuse the ouput is only a one or a zero, there are
       very few sources of errors. This is the main reason that
       delta-sigma A/Ds are **very** accurate.

       The filter comes after the modulator ... and this filter is
       essentially a big DSP block.  It must take the very high speed
       stream of ones and zeros and turn it into a slower speed stream of
       16-bit (or greater) words to be used by the microcontroller.  This
       process is called decimation and the filter is often called a
       "comb filter".  Another digital filter follows this stage and
       rejects unwanted frequencies.  This filter performs a similar
       function to the anti-aliasing filter required in many traditional
       A/D appliactions, but it does it at an unprecedented level of
       performance and at low cost.  This is the other major benefit of
       delta-sigma A/Ds.

       Flash A/D -- This is the basic architecure for the fastest
       category of A/Ds.  The flash converter involves looking at each
       level that is possible and instantaneously saying what level the
       voltage is at.  This is done by setting up comparators as
       threshold detectors with each detector being set up for a voltage
       exaclty 1 LSB higher than the detector below it.  The benefit of
       this architecture is that with a single clock cycle, you can tell
       exactly what the input voltage is - that is why it is so fast.
       The disadvantage is that to achieve 8-bit accuracy you need 256
       comparators and to achieve 10-bit accuracy you need 1024
       comparators. To make these comparators operate at higher speeds,
       they have to draw LOTS of current, and beyond 10 bits, the number
       of comparators required becomes totally unmanageable.


    D/A (Digital to Analog) Converters

       This feature takes a Digital number and converts it to a analog
       output. The number 50 would be changed to the analog output of
       (50/256 * 5Volts) = .9765625V on a 8-bit / 5 Volt system.


    Pulse width modulator

       Often used as a digital-to-analog conversion technique.  A pulse
       train is generated and regulated with a low-pass filter to
       generate a voltage proportional to the duty cycle.


    Pulse accumulator

       A pulse accumulator is an event counter.  Each pulse increments
       the pulse accumulator register, recording the number of times this
       event has occurred.


    Input Capture

       Input Capture can measure external frequencies or time intervals
       by copying the value from a free running timer into a register
       when an external event occurs.


    Comparator

       One or more standard comparators can sometimes be placed on a
       microcontroller die.  These comparators operate much like standard
       comparators however the input and output signals are available on
       the microcontroller bus.


    Mixed (Analog-Digital) Signal

       We live in an analog world where the information we see, hear,
       process, and exchange with each other, and with our mechanical and
       electronic systems, is always an analog quantity - pressure,
       temperature, voltage, current, air and water flow are always
       analog entities.  They can be digitized for more efficient
       sorting, storage and transmittal, but the interface - the input
       and output - is almost always analog.  Thus the essence of analog
       electronics lies in sensing continuously varying information,
       shaping and converting it for the efficiency of digital processing
       and transmission, and reshaping the digital data to an analog
       signal at the other end.

       Mixed analog-digital devices are being used increasingly to
       integrate the complex functions of high-speed telecommunications,
       or the real-time data processing demanded by industrial control
       systems and automotive systems.  Start looking for
       microcontrollers that have analog comparators, analog
       multiplexers, current sources, voltage doublers, PLL (Phase Lock
       Loops) and all sorts of peripherals that you thought were analog
       only.


4.6)  Interrupts


    Polling

       Polling is not really a "feature" - it's what you have to do if
       your microcontroller of choice does not have interrupts.
       Polling is a software technique whereby the controller continually
       asks a peripheral if it needs servicing.  The peripheral sets a
       flag when it has data ready for transferring to the controller,
       which the controller notices on its next poll.  Several such
       peripherals can be polled in succession, with the controller
       jumping to different software routines, depending on which flags
       have been set.


    Interrupts

       Rather than have the microcontroller continually polling - that
       is, asking peripherals (timers / UARTS / A/Ds / external
       components) whether they have any data available (and finding most
       of the time they do not), a more efficient method is to have the
       peripherals tell the controller when they have data ready.  The
       controller can be carrying out its normal function, only
       responding to peripherals when there is data to respond to.  On
       receipt of an interrupt, the controller suspends its current
       operation, identifies the interrupting peripheral, then jumps
       (vectors) to the appropriate interrupt service routine.

       The advantage of interrupts, compared with polling, is the speed
       of response to external events and reduced software overhead (of
       continually asking peripherals if they have any data ready).

       Most microcontrollers have at least one external interrupt, which
       can be edge selectible (rising or falling) or level triggered.
       Both systems (edge/level) have advantages.  Edge - is not time
       sensitive, but it is susceptible to gitches.  Level - must be held
       high (or low) for a specific duration (which can be a pain - but
       is not susceptible to glitches).

       Interrupts are critical when you are controlling anything (this is
       what microcontrollers do).  If you misunderstand any of the terms,
       and design your systems with the way you *think* it works - not
       the way it *really* works - it will effect system performance.  It
       may also work for a very long time with no problems, and then all
       of a sudden fail.  Check your datasheets - these descriptions are
       the correct ones (or are at least supposed to be), but that does
       not mean that they are agreed to by the silicon manufacturers, (or
       by the marketing guys that they employ, and who write parts of the
       data sheets.)

       4 bit microcontrollers usually have either a polling or
       non-vectored type of interrupt scheme.  8 and 16 bit
       microcontrollers usually have some type of vectored arbitration
       type of interrupt scheme.  32 bit microcontrollers usually will
       have some type of vectored priority type of interrupt scheme.
       Again, check your data sheet to make sure - or ask a
       manufacturer's rep if you aren't sure.


    Maskable Interrupts

       A maskable interrupt is one that you can disable or enable
       (masking it out means disabling the interrupt), whereas
       non-maskable interrupts you can't disable.  The benefit of
       maskable interrupts is that you can turn off a particular
       interrupts (for example a UART) during some time critical task.
       Then, those particular interrupts will be ignored thus allowing
       the microcontroller to deal with the task at hand.  Most
       microcontrollers (as well as most microprocessors) have some type
       of Global Interrupt Enable (GIE) which allows you to turn off (or
       on) all of the maskable interrupts with one bit.  NOTE:  GIE
       usually does not effect any NMI (Non-Maskable Interrupts)


    Vectored Interrupts

       Simple (non-vectored) interrupts is one of the simplest interrupt
       schemes there is (Simple = less silicon = more software = slower).
       Whenever there is an interrupt, the program counter (PC) branches
       to one specific address.  At this address, the system designer
       needs to check the interrupts (one at a time) to see which
       peripheral has caused the interrupt to occur.  Code for this may
       look like (on a COP8):

         IFBIT  UART,PSW      ; If the UART bit has been set
         JP     UART_Recieve  ;  Jump to the UART receive service routine

         IFBIT  T1,PSW        ; If the timer has underflowed
         JP     Underflow     ;  Jump to the underflow service routine

         ...   and so on

       This can be *very* slow - and the time between the interrupt
       happening and the time the service routine is entered, depends on
       how the system designer sets up their ranking.  The peripheral
       that is checked last takes the longest to process.  Most
       microcontrollers that have fewer than 3 - 5 interrupts use this
       method.  The benefit of this is that the system designer can set
       the priority - The most important peripheral gets checked first -
       and you get to decide which peripheral that is.

       Vectored interrupts are a little easier to set up, but the system
       designer has less control of the system (i.e. is dependent on the
       silicon manufacture to make the proper decisions during design of
       the chip).  When an interrupt occurs, the hardware interrupt
       handler automatically branches to a specific address depending on
       what interrupt occurred.  This is much faster than the
       non-vectored approach described above, however the system designer
       does not get to decide what peripheral gets checked first.
       Example (on a National Semiconductor COP888CG):

          Rank         Source          Description        Vector Address
       ------------------------------------------------------------------
            1 (highest) Software       INTR Instruction    01FE - 01FF
            2           External       Pin G0 Edge         01FA - 01FB
            3           Timer T0       Underflow           01F8 - 01F9
            4           Timer T1       T1A / Underflow     01F6 - 01F7
            5           Timer T1       T1B                 01F4 - 01F5
            6           MICROWIRE/PLUS BUSY Goes Low       01F2 - 01F3
            7           UART           Receive             01EE - 01EF
            8           UART           Transmit            01EC - 01ED
            9           Timer T2       T2A / Underflow     01EA - 01EB
           10           Timer T2       T2B                 01E8 - 01E9
           11           Timer T3       T3A / Underflow     01E6 - 01E7
           12           Timer T3       T3B                 01E4 - 01E5
           13           Port L / MIWU  Port L Edge         01E2 - 01E3
           14 (lowest)  Default        VIS Interaction     01E0 - 01E1

       In ROM location 01F8 - 01F9 (2bytes x 8 bits = 16bit address) the
       system designer enters the ROM location of where they want the
       service routine (of the Timer T0 underflow) to be. And so on for
       the rest of the addresses.


    Interrupt arbitration and priority

       Interrupt arbitration and priority - These are two of the most
       misused words when it comes to microcontrollers (microprocessors
       too for that matter) and it's generally because no one knows the
       difference between them.  Priority is not Arbitration.
       Arbitration is not Priority.  Lets see if we can sort out the
       differences.

       Arbitration - If you look at the above chart of the COP888CG, you
       may think the interrupts are prioritized because they have some
       ranking.  They do have rank, but they are not prioritized.  What
       happens is that (in an arbitration scheme) when an interrupt
       occurs, the GIE (Global Interrupt Enable) is cleared.  This
       effectively means that all future interrupts will be delayed until
       the GIE is set.  The GIE becomes set only if the system designer
       sets it in a service routines, or on a RETI (Return from
       Interrupt).

       Quick Example 1 - Timer 1 underflows - the hardware clears the
       GIE, looks at ROM locations 01F6 and 01F7 and jumps to the ROM
       location pointed to by those addresses.  The program does a couple
       things, and then sets the GIE (because the user wants to recognize
       an external interrupt during this service routine).  However while
       in the service routine, Timer 3 underflows.  Although a timer 3
       underflow is lower in rank than a timer 1 underflow, the interrupt
       handler does not care - it simply looks at the GIE, and because it
       is set - handles the interrupt (now we have nested interrupts).
       The Timer 1 underflow service routine will not be completed until
       the Timer 3 underflow is complete.

       Quick Example 2 - Timer 3 underflows at the same time as an
       External interrupt occur.  The one to be handled first is the
       External Interrupt.  If the user sets the GIE, the interrupt
       handler will jump down to the Timer 3 underflow handler.  If the
       user does not set the GIE, the microcontroller handles the
       External interrupt, does a RETI, and the Timer 3 underflow can now
       be handled.


       Priority - In a priority scheme, things are prioritized (well,
       what'd you expect?).  If Timer T0 underflows, the only thing that
       can interrupt that is an external or software interrupt.  If a
       external or software interrupt occurs, the interrupt handler will
       branch to these service routines.  When they are complete, it will
       return to the Timer T0 underflow.

       Quick Example - In the below timing diagram, the following
       happens:
         1) Timer T0 underflows
         2) Timer T2 underflows
         3) An External Interrupt occurs.


       In a priority scheme, the following would happen:

        External Interrupt             |---------|
                                       |         |
        Timer T0 Underflow     |-------|         |------|
                               |                        |
        Timer T2 Underflow     |                        |------|
                               |                               |
        Normal Execution    ---|                               |-------

                               ^   ^   ^         ^      ^       ^
                               |   |   |         |      |       |
        Time ->                |   |   |         |      |       \-T2 Done
                               |   |   |         |      \-------- T0 Done
                               |   |   |         \-------------- Ext Done
                               |   |   \------------------------ Ext Edge
                               |   \----------------------- T2 Underflows
                               \--------------------------- T0 Underflows

       This is what RTOS (Real Timer Operating Systems) do - prioritize
       and handle interrupts.


4.7)  Special microcontroller features


    Watchdog timer

       A watchdog timer provides a means of graceful recovery from a
       system problem.  This could be a program that goes into an endless
       loop, or a hardware problem that prevents the program from
       operating correctly.  If the program fails to reset the watchdog
       at some predetermined interval, a hardware reset will be
       initiated.  The bug may still exist, but at least the system has a
       way to recover.  This is especially useful for unattended systems.


    Digital Signal Processors (DSP)

       Microcontrollers react to and control events - DSPs execute
       repetitive math-intensive algorithms.  Today many embedded
       applications require both types of processors, and semiconductor
       manufacturers have responded by introducing microcontrollers with
       on-chip DSP capability and DSPs with on-chip microcontrollers.

       The most basic thing a DSP will do is a MACC (Multiply and
       ACCumulate).  The number of data bits a DSP can Multiply and
       ACCumulate will determine the dynamic range (and therefore the
       application).

        Bits Fixed/Floating  Dynamic Range   Typical Application

          8     Fixed           48 dB         Telephone-quality voice
         16     Fixed           96 dB         Compact disk (marginal)
         24     Fixed          144 dB         Compact disk
                                                  (room for error)


    Clock Monitor

       A clock monitor can shut the microcontroller down (by holding the
       microcontroller in reset) if the input clock is too slow.  This
       can usually be turned on or off under software control.


    Resident program loader

       Loads a program by Initializing program/data memory from either a
       serial or parallel port.  Convenient for prototyping or trying out
       new features, eliminates the erase/burn/program cycle typical with
       EPROMs, and allows convenient updating of a system even from an
       offsite location.


    Monitor

       A monitor is a program installed in the microcontroller which
       provides basic development and debug capabilities.  Typical
       capabilities of a microcontroller monitor include:  loading object
       files into system RAM, executing programs, examining and modifying
       memory and registers, code disassembly, setting breakpoints, and
       single-stepping through code.  Some simple monitors only allow
       basic functions such as memory inspection, and the more
       sophisticated monitors are capable of a full range of debug
       functions.

       Monitors can either communicate with a dumb terminal or with a
       host computer such as a PC.  Much of the work of the monitor (such
       as user interface) can be offloaded to the host PC running a
       program designed to work with the monitor.  This makes it possible
       to reduce the size and complexity of the code that must be
       installed in the target system.


    MIL transducer

       An MIL transducer is a sophisticated and expensive device that
       detects the presence of your mother-in-law.  Sensitivity settings
       are possible for a full range of stimuli such as:  snarling,
       stomping, nasty faces, and others.  Techno-Wimp (address withheld
       upon request), the sole manufacturer of the MIL transducer, has
       recently announced a major new version which is sensitive enough
       to detect less-tangible stimuli.  This breakthrough product is
       dubbed the MIL-WOMF ("Whoa, outta my face!") transducer.  Both the
       original MIL and the new MIL-WOMF transducers are programmable and
       easy to interface to most microcontrollers.


5)  Some popular microcontrollers

    Some common microcontrollers are described below.  A common question
    is "what microcontroller should I use for...?"  Well, that's a tough
    one.  The best advice would be to choose a chip that has a full set
    of development tools at the price you can afford, and good
    documentation.  For the hobbyist, the Intel 8051, Motorola 68hc11, or
    Microchip PIC would all make suitable choices.


    8048 (Intel)

       The grandaddy of 'em all, the first microcontroller, it all
       started here!  Although a bit long in the tooth and a bit kludgey
       in design (at least by today's standards), it is still very
       popular due to its very low cost, availability, and wide range of
       development tools.

       Modified Harvard architecture with program ROM on chip with an
       additional 64 to 256 bytes of RAM also on chip.  I/O is mapped in
       its own space.


    8051 (Intel and others)

       The 8051, Intel's second generation of microcontrollers, rules the
       microcontroller market at the present time.  Although featuring a
       somewhat bizarre design, it is a very powerful and easy to program
       chip (once you get used to it).

       Modified Harvard architecture with separate address spaces for
       program memory and data memory.  The program memory can be up to
       64K.  The lower portion (4K or 8K depending on type) may reside on
       chip.  The 8051 can address up to 64K of external data memory, and
       is accessed only by indirect addressing.  The 8051 has 128 bytes
       (256 bytes for the 8052) of on-chip RAM, plus a number of special
       function registers (SFRs).  I/O is mapped in its own space.

       The 8051 features the so-called "boolean processor".  This refers
       to the way instructions can single out bits just about anywhere
       (RAM, accumulators, I/O registers, etc.), perform complex bit
       tests and comparisons, and then execute relative jumps based on
       the results.

       Piles of software, both commercial and free, are available for the
       8051 line.  Many manufacturers supply what must be a hundred
       different variants of this chip for any requirement.  Often
       featured in construction projects in the popular hobbyist
       magazines.


    80c196 (MCS-96)

       The third generation of Intel microprocessors, the 80c196 is a 16
       bit processor.  Originally fabricated in NMOS (8096), it is now
       mainly available in CMOS.  Intel Corp. has recently introduced a
       clock-doubled (50MHz) version of the 80c196.

       Among the many features it includes are: hardware multiply and
       divide, 6 addressing modes, high speed I/O, A/D, serial
       communications channel, up to 40 I/O ports, 8 source priority
       interrupt controller, PWM generator, and watchdog timer.


    80186,80188 (Intel)

       These chips are, in essence, microcontroller versions of the 8086
       and 8088 (of IBM/PC fame).  Included on the chip are: 2 channels
       of DMA, 2 counter/timers, programmable interrupt controller, and
       dynamic RAM refresh.  There are several variations including:  low
       power versions, variations with serial ports, and so on.

       One major advantage you gain by using one of these parts is that
       you can use standard PC development tools (compilers, assemblers,
       etc) for developing you applications.  If you are already familiar
       with PC software development, the learning curve will be short,
       since these chips have the same basic architecture as the original
       8088 (as used in the IBM/PC).

       Other advantages include high speed processing, a full megabyte
       addressing space, and powerful interrupt processing.


    80386 EX (Intel)

       The 80386 EX is of course a 386 in microcontroller clothing.
       Included on the chip are: serial I/O, power management, DMA,
       counter/timers, programmable interrupt controller, and dynamic RAM
       refresh.  And of course, all of the power of the 386
       microprocessor.

       One major advantage you gain by using one of these parts is that
       you can use standard PC development tools (compilers, assemblers,
       etc) for developing your applications.  If you are already
       familiar with PC software development, the learning curve will be
       short, since these chips have the same basic architecture as the
       original 8088 (as used in the IBM/PC).

       We're talking power here gang.  Now let's all wait for Microsoft
       to release a version of Windows for embedded and real-time
       applications (Windows ET?  Windows RT?  Windows 2000? :-).


    6805 (Motorola)

       The 6805 is based loosely on the manufacturer's earlier 6800, with
       some similarities to the 6502.  It has a Von-Neuman architecture
       in which instructions, data, I/O, and timers all share the same
       space.  Stack pointer is 5 bits wide which limits the stack to 32
       bytes deep.  Some members of this family include on chip A/D, PLL
       frequency synthesizer, serial I/O, and software security.


    68hc11 (Motorola and others)

       The popular 68hc11 is a powerful 8-bit data, 16-bit address
       microcontroller from Motorola (the sole supplier) with an
       instruction set that is similar to the older 68xx parts (6801,
       6805, 6809).  The 68hc11 has a common memory architecture in which
       instructions, data, I/O, and timers all share the same memory
       space.

       Depending on the variety, the 68hc11 has built-in EEPROM/OTPROM,
       RAM, digital I/O, timers, A/D converter, PWM generator, pulse
       accumulator, and synchronous and ansynchronous communications
       channels.  Typical current draw is less than 20ma.


    683xx (Motorola)

       The MC68EC300 series incorporates various peripherals into various
       68k family core processors.  These can be called "integrated
       processors".  They are really super-microcontrollers, very high
       performance, capable of high processing speeds, and able to
       address large amounts of memory.  A typical example from this line
       would be the 68331.  It is based on a 68020-like core and has
       about the same processing power as an Intel 80386.


    PIC (MicroChip)

       While watching my 8 year old daughter play with her Barbie Dolls
       (she has about 7 or so, including two that used to belong to Roz,
       my wife, when she was a girl) I noticed an interesting difference
       between the old dolls and the new dolls.  The old Barbies could
       only move their heads sideways, while the new Barbies not only can
       move their heads sideways, but also up and down.  AMAZING - the
       old Barbies were good girls - they could only say no.  The new
       Barbies however can also say yes.  Progress - isn't it wonderful!
       (Not to mention the gymnast Barbie that Dave Perry's daughter got
       for Christmas - "wait'll you see what *she* can do ;-)"

       Which leads me to an amazing fact.  Most everyone thinks of the
       PIC microcontroller line as being a recent introduction.  However,
       they've been popular for over 20 years.  What's the difference?
       Microchip (which was originally [owned by] General Instruments),
       seems to have recreated this microcontroller into a product
       universally regarded as a powerful and cost effective solution.
       The new chips are fabricated in CMOS, some features have been
       added, and new family lines have been introduced.

       The PIC microcontrollers were the first RISC microcontrollers.
       RISC generally implies that simplicity of design allows more
       features to be added at lower cost, and the PIC line is no
       exception.  Although having few instructions (eg. 33 instructions
       for the 16C5X line versus over 90 for the Intel 8048), the PIC
       line has a wealth of features included as part of the chip.
       Separate buses for instructions and data (Harvard architecture)
       allows simultaneous access of program and data, and overlapping of
       some operations for increased processing performance.  The
       benefits of design simplicity are a very small chip, small pin
       count, and very low power consumption.

       PIC microcontrollers are rapidly gaining in popularity.  They are
       being featured more and more often in construction projects in
       popular hobbyist magazines, and are chalking up a good number of
       design wins.  Due to their low cost, small size, and low power
       consumption, these microcontrollers can now be used in areas that
       previously wouldn't have been appropriate (such as logic
       circuits).  They are currently available in three lines:  the
       PIC16C5x, PIC16Cxx, and PIC17Cxx families.

       PSST!  Hey kid!  Want a naked Barbie Doll?!


    COP400 Family (National Semiconductor)

       The COP400 Family is a P2CMOS 4-bit microcontroller which offers
       512 bytes to 2K ROM and 32x4 to 160x4 RAM.  Packages are varied
       from  20 to 28 pin (DIP/SO/PLCC).  Functions include Microwire,
       timers counters, 2.3 to 6.0 Volt operation, ROMless modes, and OTP
       support.

       Far from being "old" technology - 4-bit microcontrollers are
       meeting significant market needs in more applications than ever
       before.  The reason for the continuing strength of the COP400
       family is its versatility.  Over 60 different, compatible devices
       are available for a wide range of requirements.  The first under
       $.50 microcontroller set a new standard of value for
       cost/performance.


    COP800 Family (National Semiconductor)

       The COP800 Basic Family is a fully static 8-bit microcontroller,
       fabricated using double metal silicon gate microCMOS technology.
       This low cost microcontroller contains all system timing,
       interrupt logic, ROM, RAM, and I/O necessary to implement
       dedicated control functions in a variety of applications.

       Depending on the device, features include:  8-bit memory mapped
       architect, MICROWIRE serial I/O, UART, memory mapped I/O, many 16
       bit timer/counters with capture registers, a multi-sourced
       vectored interrupt, comparator, WATCHDOG Timer and Clock monitor,
       Modulator/Timer (high speed PWM timer for IR transmission),
       8-channel A/D converter with prescaler and both differential and
       single-ended modes, brownout protection, halt mode, idle mode,
       high current I/O pins with 15mA sink capability, Schmitt trigger
       inputs and Multi-Input-Wake-Up.  Most devices operate over a
       voltage range from 2.5V to 6V.

       High throughput is achieved with an efficient, powerful
       instruction set operating at a 1uS per instruction rate (most
       instructions are single byte/single cycle) including true bit
       manipulation and BCD arithmetic instructions.  Most devices have
       military versions for -55C to +125C.


    HPC Family (National Semiconductor)

       The HPC Family of High Performance microControllers is a 16-bit
       controller fabricated using National's advanced microCMOS
       technology.  This process combined with an advanced architecture
       provides fast, flexible I/O control, efficient data manipulation,
       and high speed computation.

       With its 16x16 bit multiply and 32x16 bit divide, the HPC is
       appropriate for compute-intensive environments that used to be the
       sole domain of the microprocessor.  The architecture is a
       Von-Neuman architecture where the program and data memory share
       the same address space.

       Depending on the family member, features include: 16-bit
       memory-mapped architecture with software configurable external
       address/data bus, Microwire/Plus serial I/O, UART, 16-bit
       timer/counters with input capture capability, High-Level Data Link
       Control (HDLC) for ISO-standard data communications, 8-channel A/D
       converter with prescaler and both differential and single-ended
       modes, power-saving modes, Multiply/Accumulate Unit with built-in
       circular buffer management for low to medium DSP applications,
       software configurable chip-select outputs, 64KB address space
       directly addressable, low-voltage (3.3V) operation.

       High throughput is achieved with an efficient, powerful
       instruction set operating at a 50ns per instruction cycle (most
       instructions are single byte/single cycle) including true bit
       manipulation.  Key applications currently using the HPC family
       include: Anti-lock Braking Systems, Hard Disk drives for mass
       storage, telecommunications, security systems, laser printers, and
       some military applications.


    Project Piranha (National Semiconductor)

       Project Piranha is an internal code name for National
       Semiconductor's embedded RISC processor technology. The Piranha
       technology represents the first RISC processor specifically
       designed for the needs of embedded applications.  This was
       accomplished through examination of the needs of typical embedded
       applications, resulting in a technology which maintains the
       benefits of CISC while providing the performance of RISC.

       Specifically, some of these benefits are:
         compact code density     -->  smaller memory usage/
                                          lower system cost
         small core size          -->  more room for add-on system design
         scalable architecture    -->  a range of performance solutions
       from 8 to 64 bits             with a common architecture
         common instruction set   -->  you only face the learning curve
            and development tools         once
         modular design           -->  designed for easy integration of
                                          specialized functions into
                                          single chip

       This technology is initially being implemented in application
       specific products from National Semiconductor, with the first
       product being available in Q1, 1995.  For further information on
       this technology, please contact Mark Throndson at
       tmetsc@esd.nsc.com, or (408) 721-4957.


    Z8 (Zilog)

       A "loose" derivative of the Zilog Z80, the Z8 is actually a
       composite of several different achitectures.  Not really
       compatible with the Z80 peripherals.  Has a unique architecture
       with three memory spaces:  program memory, data memory, and a CPU
       register file.  On-chip features include UART, timers, DMA, up to
       40 I/O lines.  Some versions include a synchronous/asynchronous
       serial channel.  Features fast interrupt response with 37
       interrupt sources.  The Z8671 has Tiny Basic in ROM.  The Super-8
       is just that, a super version of the Z8 with more of everything.


    HD64180 (Hitachi)

       A powerful microcontroller with full Z80 functionality plus:
       extended memory management, two DMA channels, synchronous and
       asynchronous communications channels, timers, and interrupt
       controller.  Some versions of this chip also include EPROM, RAM,
       and PIO (programmable input/output).  It runs Z80 code in fewer
       clock cycles than the Z80 and adds in hardware multiply and a few
       other instructions.  Available in versions that run up to 18MHz.


    TMS370 (Texas Instruments)

       It is similar to the 8051 in having 256 registers,  A and B
       accumulators, stack in the register page, etc.  It also has a
       host of onboard support devices, some members have all of them
       while others have a subset, the peripherals include:  RAM, ROM
       (mask, OTP, or EEPROM), 2 timers (configurable as timers/
       counters/comparators/PWM output), watchdog timer, SCI (syncronous
       serial port), SPI (asynchronous serial port), A/D (8 bit, 8
       channel), interrupts.

       Instruction set is mostly 8 bit with some 16 bit support.  Has
       several addressing modes, 8x8 multiply, 16/8 divide.  Clock speeds
       are up to 20MHz which gives 5MHz for buss access and instruction
       cycles.  Pins mostly TTL compatible (except clock and reset).

       Packages include:
             28,40 DIP
             28 CLCC
             28,44,68 PLCC
             40,64 SDIP

       A developers/proto board is available.  It is a multi layer PCB
       about 12"x7" with RS-232 serial I/O, and monitor as well as access
       to all processor pins on a patch and proto area.  Support software
       includes IBM-PC monitor & loader, cross assembler (absolute only).
       A pure serial TTY monitor is also supported.  Sole power
       requirement is +5v.  Priced is about $500 or so.

       A relocating assembler and linker, and a C compiler are also
       available.


    1802 (RCA)

       This is a real old-timer.  The 1802 is the successor to the 1801
       (2 chip set) which was the first microprocessor implemented in
       CMOS.  Both products were called microprocessors by RCA, not
       microcontrollers.  However, since the 1801 was implemented in CMOS
       and therefore had low power requirements, it was often used in
       microcontroller applications.  The 1802, with its higher level of
       integration and ease of use, could actually be considered a true
       microcontroller.  The 1802 is radiation hard and used in a lot of
       deep space and satellite applications.

       The 1802 has a fairly clean instruction set, a bunch of
       general-purpose registers (more like a Z80 than an 8051 in that
       regard), and separate data and I/O address spaces.


    MuP21 (Forth chip)

       The MuP21 was designed by Chuck Moore, the inventor of Forth.
       With the MuP21, Forth can compile into machine code and still be
       Forth, because the machine code IS Forth.  The MuP21 freaks out at
       100 MIPS while consuming only 50 milliwatts.  Not only that, the
       chip includes a video generator, has only about 7000 transistors
       (that's right, 7000 and not 7,000,000), and costs about $20.

       The assembler on this chip is a sort of dialect of Forth, as the
       CPU is modeled after the Forth virtual machine.  MuP21 is a
       MINIMAL Forth engine.  In fact MuP21 was designed to run OKAD
       (Chuck Moore's VLSI CAD softare), and OKAD was designed to run on
       MuP21.  OKAD was run on a 486 to design MuP21, and MuP21 was
       designed to have just enough hardware to run OKAD about ten times
       as fast as a 486 on a very cheap chip (the MuP21).  That's the
       reason for the MuP21's on-chip video generator coprocessor.  The
       CPU programs the video generator and then just manipulates the
       video buffer.  It is composite video out, so it only needs one
       pin.  MuP21 is only a 40 pin chip.

       MuP21 chips, boards, software, manuals, and spec sheets are
       available from:
          Offete Enterprises
          1306 South B Street, San Mateo CA 94402
          (415) 574-8250
          Email: Chen_Ting@umacmail.apldbio.com


    F21 (Next generation Forth chip)

       F21 will be bigger (10k vs 7k transistors for the MuP21!) but
       since it is going to implemented with a smaller geometry (.8
       micron vs 1.2) it will still be extremely small and low power, and
       low cost.  Although the specs on this chip aren't final yet,
       expected performance is in the range of 250 MIPS!!.  It will have
       multiple analog processors and a very high speed serial network
       coprocessor on chip.  F21 will also support a wider range of
       memory chips and have more I/O processors.

       Designed for cheap consumer multimedia and parallel processing,
       the F21 is planned for release some time in 1995.

       For more information on this project, contact: Jeff Fox
       .


6)  GETTING STARTED WITH MICROCONTROLLERS

    In order to get started with microcontrollers, several factors need
    to be considered.
          - cost
          - convenience
          - availability of development tools
          - intended use

    The hardware described in this section is readily available,
    affordable, and is easy to find software for.

    


6.1)  Evaluation Kits/Boards

    Many manufacturers offer assembled evaluation kits or boards which
    usually allow you to use a PC as a host development system.  Among
    some of the more popular evaluations kits/boards are:

    Parallax Basic Stamp
       This is a small single-board controller that runs BASIC, and costs
       only $39.  A SIP version for only $29 is also available.  THE 256
       byte EEPROM can hold a program of up to about 100 instructions.
       The BASIC Stamp Programming Package is a complete development
       package for only $99.
          Parallax, Inc., 3805 Atherton Rd. 102, Rocklin, CA  95765
          (916)624-8333    Fax: (916)624-8003   BBS: (916)624-7101
          email: info@parallaxinc.com

    Motorola EVBU, EVB, EVM, EVS
       A series of very popular evaluation/development systems.  Comes
       complete with the BUFFALO monitor and varying types of development
       software.  Commonly used for university courses.

    Dallas Semiconductor DS5000TK
       The DS5000TK allows evaluation of any DS5000 series device in any
       existing application without circuit changes.  The included
       DS5000T plugs into the supplied serial interface pod which
       provides a connection to a host PC.  A target cable connects the
       pod to the target system.  Programs can be downloaded directly to
       the chip (no EPROM programming!) using the built-in serial loader.
       (With Dunfield's Development System, you end up with a cheap
       "pseudo-ice".  Dunfield also has a circuit if you want to build a
       similar device.)

    Philips DS750
       For $100, you get a "pseudo-ice" for testing your code in-circuit.
       Based on the low-end Philips 87c75x parts.  Allows source-code
       debugging in assembler (included), C, and PL/M.  Very popular with
       students and consultants to experiment with 80c51 code for their
       application.  Includes a VERY NICE book which describes the theory
       of operation of the board itself, and includes a good number of
       experiments that you can try for yourself.  Philips sold nearly
       10,000 of these boards in the USA (and 5000 in Europe without even
       advertising).

    National Semiconductor's EPU
       The COP8780 Evaluation / Programming Unit (EPU) offers designers a
       low-cost ($125) tool for an introduction to National's COP8 Basic
       Family of 8-bit microcontrollers.  This development tool gives you
       an inexpensive way to benchmark and evaluate microcontroller code
       in realtime.  With its built in MIRCOWIRE/PLUS interface, it can
       interface to numerous MICROWIRE/PLUS devices such as EPROMS,
       EEPROMS, D/As, A/Ds, DASs, and others, to give a full featured
       system.  The system includes the EPU board, assembler and debugger
       software, sample code, very limited C compiler, wall power supply,
       documentation, and a really great box :-).


6.2)  Easy chips to use

    In addition, several chips provide a similar capability if you are
    willing to spend a bit of time wiring up a simple circuit.  A few
    chips worth looking at are:

    Motorola MC68HC11A8P1
       Contains Motorola's BUFFALO monitor which has the same
       functionality as the one on Motorola's evaluation boards.  A
       working system can be built with this chip and a Maxim MAX-232.
       You can talk to it with a PC or Mac over a 3-wire RS232
       connection.  It is easy to load and run anything you want in the
       on-board RAM and EEPROM.  You can even use subprograms in the
       BUFFALO monitor after getting a listing from Motorola's BBS or ftp
       site.  This BBS/ftp site also has freeware assemblers to make a
       complete development environment cheaply and quickly.

    Intel 8052AH-BASIC
       This popular chip with hobbyists is another easy way to get
       started.  You can download high level code from your host.  The
       disadvantages are that you can't get away from a multi-chip
       solution, the code is noticeably slow, you have to buy an MCS
       BASIC manual, you are detached from the inner workings, there
       aren't many on-chip goodies like A/D, and you can forget about
       running off of a battery.

    Dallas Semiconductor DS5000/DS2250
       These are well suited even for electronics ignoramuses (ignorami?)
       such as myself.  All you need to add is a crystal and two
       capacitors to end up with a working system.  These chips come
       complete with non-volatile RAM in the form of static RAM (at least
       8K) backed up with a lithium battery.  Everything is saved -
       program, data, and bugs ;-).

    MicroChip PIC '5x series
       With only 33 instructions, this chip is definitely easy to use!
       Using Parallax's assembler, the instruction set is ** MUCH ** less
       intimidating than MicroChip's opcodes!  These chips simply need
       power, ground, and 1 of 4 different timing circuits. Doesn't get
       much easier than that!  With I/O pins that are beefy (25mA per pin
       sink, 20mA per pin source) and drive both high and low,
       interfacing is super easy.  It's great to hook LEDs and such
       directly to output pins with only a resister in-line!


6.3)  Software (Cheap and easy)

    You can search for free software for development, but you often get
    what you pay for.  What is sorely lacking in freeware is technical
    support.  Several packages are available that provide complete
    development environments for some of the more popular
    microcontrollers.  If you want to be productive right away, think
    about investing $100 or so - it'll be well worth the price!


    I've been playing with the Dunfield Development System lately (on the
    8051), and it's really quite nice.  I've also heard many good things
    about it from others.  It includes a near ANSI-C compiler, run-time
    library with source, assembler, ROM debugger, integrated development
    environment, monitor with source, utilities, and other extras.
    Although not freeware, the low price ($100), the features, all of the
    extra goodies, and the good reviews make this a package worth looking
    at.  Also, if you're interested in working on more than one family of
    microcontroller, Dunfield supports a wide range.  This means only
    needing to learn one system, instead of many.  The following chips
    are supported:  6805, 6809, 68hc11, 68hc16, 8051/52, 8080/85, 8086,
    and 8096.  A package including a simulator and a resident monitor
    debugger are also available for the 8051 for $50.
          Dunfield Development Systems
          P.O. Box 31044, Nepean, Ontario  K2B 8S8   Canada
          (613)256-5820   Fax: (613)256-5821
          Email:  ddunfield@bix.com


    A decent C compiler for the 68hc11 comes from ImageCraft.  This
    package, which runs under DOS and OS/2, includes a near ANSI C
    compiler, assembler, linker, librarian, ANSI C functions and headers,
    and 90 page manual.  The current release is version 1.02 of their
    compiler.  The price is just $40.  Initial feedback on this compiler
    seems promising.  The pre-release versions are already in use by many
    of you, and will still be available as freeware.
          ImageCraft
          P.O. Box 64226, Sunnyvale, CA 94086-9991
          (Richard Man) imagecft@netcom.com


    Another low priced ($100) C compiler comes from Micro Computer
    Control.  Cross compilers running under DOS are available for the
    8051 and the Z8 (including Super-8).  This package includes a C
    compiler, assembler, linker, librarian, and extensive printed
    documentation.  A simulator/source code debugger is available for an
    additional $79.95.
          Micro Computer Control Corporation
          PO Box 275, 17 Model Ave., Hopewell, NJ  08525
          (609)466-1751   Fax: (609)466-4116   BBS: (609)466-4117
          Email: 73062.3336@compuserve.com


    C isn't the only development system available (yeah, I know that's
    hard to believe) - good solid Basic and Forth development systems are
    also available.  Refer to the appropriate FAQ for the microcontroller
    that you are using for more information on free and commercial
    development systems.


    If the Microchip PIC is your game, then check out the Parallax tools
    (available on their ftp and web sites).  All Parallax software is
    available free of charge to all takers!  This includes PSIM (a PIC
    simulator), PASM (an assembler for '5x parts), and PASMX (an
    assembler for 'xx parts).  These are the full commercial versions,
    not hobbled in any way!


7)  MICROCONTROLLER PROGRAMMING LANGUAGES

    Just a bit of an introduction for the beginner.


7.1)  Machine/Assembly language

    Machine language is the program representation as the microcontroller
    understands it.  It is not easy for humans to read and is a common
    cause of migraine headaches.  Assembly language is a human-readable
    form of machine language which makes it much easier for us flesh and
    bone types to deal with.  Each assembly language statement
    corresponds to one machine language statement (not counting macros).

    An assembly/machine language program is fast and small.  This is
    because you are in complete charge of what goes into the program.  Of
    course, if you write a slow, large, stupid program, then it will run
    slowly, be too big, and be stupid.  Assembly language (assembler)
    can't correct stupidity - although sometimes I wish it could ;-).

    If you are starting out learning about microcontrollers, it would be
    worth your while first learning assembler.  By programming in
    assembler, you master the underlying architecture of the chip, which
    is important if you intend to do anything significant with your
    microcontroller.


7.2)  Interpreters

    An interpreter is a high level language translator that is closer to
    natural language.  The interpreter itself is a program that sits
    resident in the microcontroller.  It executes a program by reading
    each language statement one at a time and then doing what the
    statement says to do.  The two most popular interpreters for
    microcontrollers are BASIC and FORTH.

    BASIC's popularity is due to its simplicity, readability, and of
    course just about everyone has at least played with BASIC at one time
    or another.  One common compaint about [interpreted] BASIC is that it
    is slow.  Often this can be solved by using a different technique for
    performing the desired task.  Other times it is just the price paid
    for using an interpreter.

    FORTH has a very loyal following due to its speed (approaching that
    of assembler language) and its incremental approach to building a
    system from reusable parts.  Many FORTH systems come with a host
    system which turns your desktop computer into a development system.
    FORTH can be quite difficult to write in (if you have no experience
    with it) and is probably even harder to read.  However, it is a very
    useful and productive language for control systems and robotics, and
    can be mastered in time.

    The nicest thing about developing a system with an interpreter is
    that you can build your program interactively.  You first write a
    small piece of code and then you can try it out immediately to see
    how it works.  When the results are satisfactory, you can then add
    additional components until the final product is achieved.


7.3)  Compilers

    A compiler is a high level language translator that combines the
    programming ease of an interpreter with greater speed.  This is
    accomplished by translating the program (on a host machine such as a
    desktop PC) directly into machine language.  The machine language
    program is then burned onto an EPROM or downloaded directly to the
    microcontroller.
    The microcontroller then executes the translated program directly,
    without having to interpret first.

    The most popular microcontroller compilers are C and BASIC.  PL/M,
    from Intel, also has some popular support due to that company's
    extensive use of that language.

    Due to both its popularity and its slow speed, it was only logical
    that BASIC would appear as a compiled language.  A few companies
    supply a BASIC compiler for several of the more popular
    microcontrollers.  Execution speed is drastically increased over
    interpreted BASIC since the microcontroller is freed from the task of
    interpreting the statements as the program runs.

    While interpreted Forth approaches (and sometimes surpasses) the
    speed of many compilers, compiled Forth screams along.  Today there
    are many high performance optimizing native code Forth compilers, and
    there are also lots of very cheap or free public domain Forths.  Some
    of them like Tom Almy's ForthCMP produces optimized native code with
    less overhead and better performance than just about anything else
    out there.  Of course it still has compactness and more elegant
    factoring of functionality than in most languages.

    C is now the language of choice for the entire universe.  C is used
    on computers from the tiny microcontroller up to the largest Cray
    supercomputer.  Although a C program can be a bit tedious at times to
    read (due to the terse programming style followed by many C
    programmers), it is a powerful and flexible development tool.
    Although a high level language, it also gives the developer access to
    the underlying machine.  There are several very good and cheap C
    compilers available for the more popular microcontrollers.  It is
    widely used, available, supported, and produces fairly efficient code
    (fast and compact).


7.4)  Fuzzy Logic and Neural Networks

    Fuzzy Logic and neural networks are two design methods that are
    coming into favor in embedded systems.  The two methods are very
    different from each other, from conception to implementation.
    However, the advantages and disadvantages of the two can complement
    each other.

    The advantage of neural networks is that it is possible to design
    them without completely understanding the underlying logical rules by
    which they operate.  The neural network designer applies a set of
    inputs to the network and "trains" it to produce the required output.
    The inputs must represent the behavior of the system that is being
    programmed, and the outputs should match the desired result within
    some margin of error.  If the network's output does not agree with
    the desired result, the structure of the neural network is altered
    until it does.  After training it is assumed that the network will
    also produce the desired output, or something close to it, when it is
    presented with new and unknown data.

    In contrast, a fuzzy-logic system can be precisely described.  Before
    a fuzzy control system is designed, its desired logical operation
    must be analyzed and translated into fuzzy-logic rules.  This is the
    step where neural networks technology can be helpful to the
    fuzzy-logic designer.  The designer can first train a software neural
    network to produce the desired output from a given set of inputs and
    outputs and then use a software tool to extract the underlying rules
    from the neural network.  The extracted rules are translated into
    fuzzy-logic rules.

    Fuzzy logic is not a complete design solution.  It supplements rather
    than replaces traditional event control and PID (proportional,
    integral, and derivate) control techniques.  Fuzzy logic relies on
    grade of membership and artifical intelligence techniques.  It works
    best when it is applied to non-linear systems with many inputs that
    cannot be easily expressed in either mathematical equations used for
    PID control or IF-THEN statements used for event control.

    In an effort to change fuzzy logic from a "buzzword" (as it is in
    most parts of the world) to a well established design method (as it
    is in Japan), most manufacturers of microcontrollers have introduced
    fuzzy logic software.  Most software generates code for specific
    microcontrollers, while other generates C code which can be compiled
    for any microcontroller.


8)  DEVELOPMENT TOOLS

    Having a programming language is usually not enough to develop a
    program for a microcontroller.  Some way of debugging your program is
    needed.  I am only too painfully aware of this fact.


8.1)  Simulators

    A simulator runs your microcontroller program on a host machine (such
    as your PC).  You can step through the code to see exactly what is
    happening as the program runs.  Contents of registers or variables
    can be altered to change the way the program runs.  Eliminates (or at
    least delays) the erase/burn/program EPROM cycle common in
    microcontroller program development.  You can work out ideas or learn
    about microcontrollers by experimenting with small code fragments and
    watching on the screen what happens.  A simulator can't support real
    interrupts or devices, and usually runs much slower than the real
    device the program is intended for.

    Some manufacturers have a cross between a software simulator and the
    hardware emulator - a hardware simulator.  This is a piece of
    equipment that plugs into your target, and the pins will toggle and
    react like they should - just MUCH slower.  Cost of a device like
    this is only about $100.  Two such boards by National Semiconductor
    and Philips are detailed in section 6.2.


8.2)  Resident Debuggers

    A resident debugger runs your program on the microcontroller itself,
    while showing the progress on your host machine (such as a PC).  Has
    many of the same advantages as simulator above, with the additional
    benefit of seeing how the program runs on the real target machine.  A
    resident debugger needs to "steal" some resources from the target
    machine, including: a communications port to communicate with the
    host, an interrupt to handle single stepping, and a certain amount of
    memory for the resident part (on the target) of the debugger.


8.3)  Emulators

    If you've got the money, this is the equipment you want to develop
    your system with (yeah, that's right, a preposition at the end of a
    sentence!).  A [usually] expensive piece of hardware that even for
    the cheaper versions will run you at least $700.  An emulator is a
    sophisticated device that pretends that it is the microprocessor
    itself, while at the same time capturing information.  It provides
    full and total control over your target, while at the same time not
    requiring any resources from the target.  The emulator can either be
    a stand alone device with its own display, or it can be interface to
    a PC.


8.4)  Good Stereo System

    This is the most important tool for the microcontroller developer, or
    for any computer system developer for that matter.  Don't expect to
    get anywhere unless you have the proper music playing in the
    background(?) at the proper volume.  I find that I do my best work
    with the Rolling Stones (especially Goats Head Soup) or Clapton
    (especially early stuff like Cream - Disraeli Gears is a killer
    album!).  The volume must be set to cause excrutiating pain to be
    most effective.  Trust me on this ;-).

    Tom Mornini of Parallax reports:  "Johnny Cash also has a certain
    effectiveness, as well as the Beatles, Aerosmith, and Rush!  60's
    rock and British invasion bands in particular seem to have a
    particularly productive effect."

    This would be an interesting topic for an in-depth study.
    Particularly intriguing, is if certain types of music work better
    with specific [families of] processors.  Another question in need of
    study would be if it's really true that the smaller the chip (in
    bits), the louder the music needs to be.


9)  FINDING OUT MORE ABOUT MICROCONTROLLERS

    If you are interested in learning more about microcontrollers, there
    are many fine sources of information.  You have your choice of
    printed media (books, periodicals, informative graffiti) or
    interactive (right here on the Internet, or BBSs).


9.1)  Books

    8-bit Microcontroller Instruction Set Performance
        - Digitial Systems Consulting / June 1994
        - compares Motorola's M68HC05, Intel's 80x51,
            Microchip's PIC16C5x, and National's COP8
        - lit number 630008
        - (800)272-9959 call this number for copies

    The 16 bit 8096:  Programming, Interfacing, Applications
        - Ron Katz and Howard Boyet
        - Microprocessor Training Inc
          14 East 8th Street, New York, NY  10003
          212-473-4947
        - Library of Congress Catalog card number:  85-61954
        - According to William Chernoff:  "The book is pretty good -
          mostly software examples.  The one hardware thing I looked
          closely at was wrong - a schematic error.  Oh well."

    The 68hc11 Microcontroller
        - Joseph D. Greenfield (at R.I.T.)
        - Saunders College Publishing, (Harcourt Brace Jovanovich)
        - 1992
        - ISBN 0-03-051588-2
        - A number of the sections make use of the Buffalo monitor.
          This could be useful if you are using the Motorola Trainer EVB.

    The 8051 Family of Microcontrollers
        -Richard H. Barnett
        -Prentice-Hall, 1995 (yeah, that's right, 1995!)
        -ISBN 0-02-306281-9

    8051 Interfacing and Applications
        - Applied Logic Engineering
          13008 93rd Place North, Maple Grove, MN  55369
        - (612)494-3704

    The 8051 Microcontroller
        - I. Scott MacKenzie
        - Macmillan Publishing Company, 1992
        - includes schematics for a single-board computer,
          assembly-language source code for a monitor program, and
          interfaces to a keypad, LEDs, and loudspeaker.

    The 8051 Microcontroller
        - James W. Stewart
        - Regents/Prentice-Hall, 1993
        - $27.50, 273 pages
        - includes many interfacing examples (switches, solenoids,
          relays, shaft encoders, displays, motors, and A/D converters)
          and a chapter on top-down design method

    The 8051 Microcontroller: Architecture, Programming and Applications
        - Kenneth J. Ayala
        - 241 pages, soft cover
        - 5.25" diskette with assembler and simulator
        - ISBN 0-314-77278-2, Dewey 004.165-dc20
        - West Publishing Company
          P.O. Box 64526, St. Paul, MN  55164
          (800)328-9352
        - see review in next section

    The Art of Programming Embedded Systems
        - Jack G. Ganssle
        - 1992, 279pp, $55.00
        - ISBN: 0-12-274880-0
        - CONTENTS: Introduction, Initial Considerations.  Elegant
          Structures.  Designs for Debugging.  Design for Test.  Memory
          Management.  Approximations. Interrupt Mamangement.  Real-Time
          Operating Systems.  Signal Sampling and Smoothing.  A Final
          Perspective.  Appendixes: Magazines, File Format.  Serial
          Communications.  Bibliography.  Index.

    Assembly Language Programming (for the MCS-51 family)
        - F. A. Lyn
        - L. S. Electronic Systems Design

    Basic-52 Programmer's Guide
        - Systronix, Inc. (they also sell a Basic compiler)
        - address above

    Beginner's Guide
        - Suncoast Technologies

    A Beginners Guide to the Microchip PIC
        - Nigel Gardner
        - Character Press, Ltd. (UK)
        - ISBN 1 899013 00 8
        - software (on floppy) and hardware guide, debugging techniques
        - suitably titled, for those with no previous microcontroller
          experience
        - 19.95 UK Pounds

    The PIC Source Book:
        - assembly language source code on diskette
        - $39
        - Scott Edwards Electronics
          964 Cactus Wren Lane, Sierra Vista, AZ  85635
          (602)459-4802    Fax: (602)459-0623
          72037.2612@compuserve.com

    C and the 8051
        - Thomas W. Schultz
        - Prentice Hall
        - ISBN 0-13-753815-4

    Data Acquisition and Process Control with the M68HC11 Microcontroller
        - Frederick Driscoll, Robert Coughlin, Robert Villanucci of
          Wentworth Institute of Technology.
        - Macmillan Publishing Company
        - 1994
        - ISBN 0-02-33055-X
        - Several Chapters on the 68HC11, instructions, and EVB;
          chapters on interfacing Analog and Digital signals to the
          68HC11;  example applications of interfaces to temperature,
          load cell, pressure and thermocouple sensors.
        - a good companion to Motorola's "pink" books

    Data book / Handbook / Users' Guide
        - Advanced Micro Devices
        - Dallas (User's guide for the DS5000)
        - Intel
        - Siemens

    Design with Microcontrollers
        - John B. Peatman
        - ISBN 0-07-049238-7
        - This book is on a more advanced level.  Uses both the 68hc11
          and Intel 8096 as example systems.
        - Used for a very popular course on microcontroller design at
          Georgia Tech.

    Embedded Controller Forth for the 8051 Family
        - Academic Press
        - William H. Payne
        - uses a Forth development system available on the Internet

    Embedded Controllers Databook 1992 Edition
        - National Semiconductor Corporation
        - literature number: 400049
        - (800)272-9959 call this number for for copies

    Embedded Systems Programming in C and Assembler
        - John Forrest Brown
        - Van Nostrand Reinhold, 1994
        - 304 pages, $49.95
        - ISBN 0-442-01817-7
        - covers Motorola and Intel processors
        - includes diskette with code from the book
        - book review in Dr. Dobb's Journal, November 1994, page 121

    Experimenter's guide
        - Rigel Corporation

    Introduction to Microcontroller Design, Based on the 8051 family of
    Processors
        - Business Data Computers
          P.O. Box 1549, Chester, CA  96020

    M68hc11 Reference Manual
        - Motorola - literature reference M68HC11RM/AD
        - This document is the "bible" of the 6811 and is a must-have
          for any serious 6811 programmer.

    MC68hc811E2 Programming Reference Guide
        - Motorola - literature reference M68HC811E2RG
        - A pocket-sized guide to the version of the 6811 used on the
          Mini Board

    The Microcontroller Idea Book
        - Jan Axelson (of Microcomputer Journal fame)
        - features the 8052-BASIC microcontroller
        - hands-on guide with complete plans (schematics, design theory,
          program listings, construction details, etc)
        - explains how to use sensors, relays, displays, clock/calendars,
          keypads, wireless links, and more
        - 1994, 273 pages, $31.95 + shipping
        - Lakeview Research, 2209 Winnebago St., Madison, WI  53704
          (608)241-5824  Internet: 71163.3555@compuserve.com
        - contact the author at janaxel@aol.com

    Microcomputer Engineering
        - Gene H. Miller
        - Prentice Hall, Englewood Cliffs, NJ  07632
        - 1993
        - ISBN 0-13-584475-4
        - Explains the basics.  Many clear and concise assembly language
          example programs.
        - Written to be used with the Motorola Trainer (EVB).

    Microcontroller Technology, The 68hc11
        - Peter Spasov
        - Prentice Hall
        - ISBN 0-13-583568-2

    Microcontrollers: Architecture, Implementation, and Programming
        - Kenneth Hintz and Daniel Tabak
        - McGraw-Hill Inc.  1992
        - ISBN 0-07-028977-8

    PIC 16Cxx Development Tools instructions manuals
        - Parallax, Inc.
        - Instruction manual for the Parallax PIC assemblers
        - Instruction manual for the Parallax Software Simulator
        - Instruction manual for the Parallax PIC programmer hardware
        - Details the Parallax PIC instruction set

    PIC 16Cxx Applications Handbook
        - Parallax, Inc.
        - Contains condensed data sheets for '5x, '64, '71, and '84
          controllers
        - Contains 14 application notes showing circuits and code for
          common projects using the PIC series of microcontrollers.

    Posix.4:  Programming for the Real World
        - Bill O. Gallmeister
        - O'Reilly and Associates, 1995
        - ISBN 1-56592-074-0
        - Part I of the book describes the Posix standard (what it is,
          what it isn't, and what it's for), and explains the principles
          of real time programming (tasking, messages, scheduling, I/O,
          and performance) and why Unix isn't fit for real-time
          programming.  Part II is a reference on the Posix functions and
          header files.  Part III contains much of the code for the
          exercises in the book.

    Programmer's Guide to the 1802
        - Tom Swan
        - Hayden Book Company, Inc., 1981
        - ISBN 0-8104-5183-2
        - good introduction to assembly language progamming and an
          thorough tutorial on the 1802

    Programming Microcontrollers in C
        - Ted Van Sickle
        - HighText Publications, 1994
        - 394 pages, $29.95
        - ISBN 1-878707-14-0
        - thorough tutorial on C programming, covers aspects of C
          programming specific to embedded systems
        - covers the Motorola line of microcontrollers (small to large)
        - book review in Dr. Dobb's Journal, November 1994, page 121

    The Real-Time Kernel
        - Jean Labrosse
        - R&D Publications, Inc.
          Suite 200 1601 W 23rd St., Lawrence, KS  66046
        - (913)841-1631   Fax: (913)841-2624
        - Based on the article "A Portable Real Time Kernel in C"
          in Embedded Systems Programming (Part 1: vol 5 no 5
          May 1992, Part 2: vol 5 no 6 June 1992)
        - originally written for the Intel 186 but ported to HC11
          source code for UCOS11

    Single- and Multiple-Chip Microcomputer Interfacing
        - G.J. Lipovski
        - Copyright 1988
        - 478 pages
        - ISBN 0-13-810557-X (Prentice-Hall Edition)
          ISBN 0-13-810573-1 (Motorola Edition)
        - Based around the 68HC11 it covers both hardware and
          software at undergraduate level, but the emphasis is on
          interfacing.
        - Chapter titles:
               1  Microcomputer Architecture
               2  Programming Microprocessors
               3  Bus Hardware and Signals
               4  Parallel and Serial I/O
               5  Interrupts and Alternatives
               6  Analog Interfacing
               7  Counters and Timers
               8  Communications Systems
               9  Storage and Display Systems

    Single- and Multiple- Chip Microcomputer Interfacing (Lab Manual)
        - Peter Song and G. Jack Lipovski
        - Prentice-Hall, 1988
        - ISBN 0-13-811605-9
        - Support for the above book.  Examples based around the Motorola
          EVB and the BUFFALO monitor or the EVBU (or 3-chip micro) and
          PC-Bug11.

    User Manual for the CDP1802 COSMAC Microprocessor
        - RCA, 1977
        - contains useful hardware and software techniques


9.2)  Data and Reference Books

    Motorola
        - M68hc11 Reference Manual, ref # M68HC11RM/AD
             this document is the "bible" of the 6811 and is a must-have
               for any serious 6811 programmer
             contact Motorola at 800-521-6274 (in the U.S.) to get a free
               copy of this manual
        - MC68hc811E2 Programming Reference Guide, ref # M68HC811E2RG
             a pocket-sized guide to the version of the 6811 used on the
             Mini Board, "ownership of this handy reference is proof of
             being a true 6811 nerd" - by Fred Martin

    National Semiconductor - (800)272-9959 for copies
        - COP8 Databook, ref # 400007
        - COP8 Selection Guide, ref # 630006
        - COP8 Designers Information Kit, ref # 6300007-005
             contains: - COP8 Databook (1994 Edition)
                       - COP8 Selection Guide (1994 Edition)
                       - Independent 8-bit Instruction Set Analysis
                       - Independently prepared software analysis of
                         National's COP8, Motorola's M68Hc05, Intel's
                         80X51, and Microchip's PIC16C5X
                       - Utility and Overview Disks
                       - Self-lead overview on COP8, includes electronic
                         selection guide and sample application code
        - COP8 Utility Disk, Mac ref # 6300000, Windows ref # 630001
             typical microcontroller applications and sample code
             available by ftp nscmicro.nsc.com in/pub/COP8
        - COP8 Overview Disk, Mac ref # 630004, Windows ref # 630005
             self-lead COP8 overview, shows product features/benifits
                and includes a electronic selection guide (2 disks)
             available by ftp nscmicro.nsc.com in /pub/COP8


9.3)  Periodicals

    Various magazines and journals (journals seems to be THE popular name
    for magazines these days) provide articles from time to time on
    microcontrollers.  If you are just starting out learning, pick those
    magazines that feature construction articles.

    The Computer Applications Journal (Circuit Cellar Ink)
        - programming and construction articles
        - POB 7694, Riverton, NJ  08077-8784
        - Fax: (203)872-2204
        - Voice orders: (609) 786-0409
        - On-line orders (BBS): (203) 871-1988
        - Email orders: ken.davidson@circellar.com
        - $21.95, $31.95 surface Canada and Mexico,
          $49.95 air all other countries

    Computer Design
        - industry announcements and trends
        - One Technology Park Drive, P.O. Box 990, Westford, MA  01886
        - (508)692-0700

    The Computer Journal
        - programming and construction articles
        - PO Box 535, Lincoln  96648

    Dr. Dobbs Journal
        - programming articles, concepts, and designs
        - 411 Borel Ave., San Mateo, CA  94402
        - (415)358-9500

    Electronic Engineering Times
        - industry announcements and trends
        - 500-B Bi-County Boulevard, Farmingdale, NY  11735
        - (516)293-3000

    Electronics Now
        - construction articles
        - Box 55115, Boulder, CO  80321-5115
        - $19.97 one year

    Elektor Electronics
        - programming and construction articles
        - World Wide Subscription Service Ltd
          Unit 4, Gibbs Reed Farm, Pashley Road
          Ticehurst TN5 7HE, England
        - 27 UK pounds
     or
        - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
        - Tel. (603) 924-6371, 924-6526
        - Fax: (603) 924-9467
        - $57 USA and Canada per year

    Embedded Systems Programming
        - programming and systems design articles
        - Miller Freeman Publications
        - 500 Howard St., San Francisco, CA  94105
        - (415) 397-1881

    Inquisitor Magazine
        - If you're the type that watched Gilligan's Island for its
          socio-political insights, then you'll love a new 'zine that
          just crossed my desk - Inquisitor Magazine.  It's general
          philosophy seems to be ... well, it seems to be ... uh, yeah!
          Technical in nature, bizarre, tongue in cheek, eclectic,
          electric, did I mention bizarre(?), and lots of fun.  Worth
          looking at if you like the out of the ordinary.  The moving
          force behind this magazine is Daniel Drennan, who seems to have
          suffered from an overdose of radiation from his computer
          monitor ;-).
        - Planetarium Station, P.O.Box 132
          New York, NY  10024-0132
        - (212)595-8370
        - Email: inquisitor@echonyc.com
        - $16 per year (4 issues)

    Microcomputer Journal (formerly Computer Craft)
        - programming and construction articles
        - 76 N. Broadway, Hicksville, NY  11801
        - $18.95 one year, foreign $23.00, foreign air mail $76.00

    Midnight Engineering
        - 1700 Washington Ave., Rocky Road, CO  81067
        - (719)254-4553

    MW Media - Product Directories
        - Motorola Microcontroller Tools Directory
          ('94 edition out in 3 weeks)
        - Motorola 68K Source ('94 edition available now)
        - Intel Development Tools Handbook ('95 edition just beginning)
          (survey of commercial development tools for the 8051, 8096,
          and 80186 lines of Intel microprocessors)
        - Embedded Intel 386 Directory (released in Aug '94)
        - Intel 486/Pentium directory (forthcoming in '95)
        - 8051 Product Directory ('94 edition out in 4 weeks)
          (survey of various 8051 products)
        - Hitachi Microcontroller Development Tools Directory
          (out in '95)
        - AMD FusionE86 Directory (out in '95)
          (186,386,486)
        - AMD 29K Directory (pending in '95)
        - Low Power Product Directory (out in '95)
          (3.3. volts and lower)
        - DSP Directory (released in May '94)
        - Multimedia CD (hopefully out in '95)
        - These documents could very well be a "must" if you're into
          serious development using any of these chips.  If you are
          "just" a hobbyist, see how the "other half" lives.
        - FREE to qualified developers
        - MW Media
        - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
        - (408)288-4721   (408)286-4200   FAX: (408)288-4728

    Nuts & Volts Magazine
        - A National Publication for the Buying and Selling of
          Electronic Equipment
        - 430 Princeland Court, Corona, CA  91719
        - Mailed third class, USA only:  $17.00 one year
                                         $31.00 two years
        - Mailed first class, one year only:  $34.00-USA
                                              $35.00-Canada/Mexico
        - Foreign/Air Mail - $70.00;  Foreign/Surface - $39.00
        - (800)783-4624
        - Email:  74262.3664@Compuserve.com


9.4)  Internet newsgroups

    Various newsgroups frequently have discussions or information on
    various microcontrollers.  Among some of the more useful (especially
    the first 3 newsgroups):

    comp.robotics
       Microcontrollers figure heavily in robotics projects.  You will
       find a lot of information about the subject in this newsgroup.
       Even if you aren't building a robot, check this newsgroup out.
       Lots of 68hc11 activity, too.

    sci.electronics
    alt.comp.hardware.homebuilt
       Two good places to find [mostly technical] discussions on
       microcontroller use and implementation.  Most of the participants
       are crazy about "rolling their own", and are eager to share their
       knowledge.

    comp.realtime
       Occasional discussions about real-time use of microcontollers.

    comp.sys.m68k
       The full line of Motorola 68000 microprocessors is discussed in
       this newsgroup, including the very powerful and advanced
       microcontrollers based on this family.

    comp.sys.6809
       This newsgroup covers an old-time favorite, the 6809
       microprocessor, which is commonly used for control applications.
       Motorola 8 bit microprocessors and microcontrollers (6805, 6811,
       etc.) are also discussed in this newsgroup.

    comp.sys.intel
       Mostly trends and development are discussed in this newsgroup.
       From time to time you will find a discussion on some obtuse
       technical problem or feature.  Lately, the participants seem to
       spend all of their time whining about the Pentium bug.

    comp.lang.misc
       Sometimes questions or discussions on different microcontroller
       topics pop up here.  I guess it's the ".misc" that attracts these
       questions.

    comp.ai.fuzzy
       Fuzzy logic is rapidly becoming an increasingly important aspect
       of [microcontroller based] control systems.  This group might very
       well become an important forum for those involved in developing
       control systems.

    comp.dsp
       Discussions on Digital Signal Processsing

    comp.sys.ti
       Texas Instruments products discussed here

    sci.engr.control
       This forum is for the discussion of control and embedded systems.

    sci.engr.semiconductors


9.5)  Internet sources of information on specific microcontrollers

    If you are interested in finding sources of information on a specific
    microcontroller, check out the really fine FAQs ;-) that have been
    compiled for the more popular microcontrollers.

      Subject:  PIC microcontrollers
      Newsgroups:  comp.realtime
                   comp.robotics
                   sci.electronics
                   sci.electronics.repair
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/PIC
                /pub/usenet/sci.answers/microcontroller-faq/PIC
                /pub/usenet/news.answers/microcontroller-faq/PIC
      Maintainer:  Tom Kellett
                   Email: Tom@takdsign.demon.co.uk

      Subject:  8051 microcontrollers
      Newsgroups:  comp.sys.intel
                   comp.realtime
                   comp.robotics
                   comp.lang.forth
                   sci.electronics
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/8051
                /pub/usenet/sci.answers/microcontroller-faq/8051
                /pub/usenet/news.answers/microcontroller-faq/8051
      Maintainer:  Russ Hersch
                   Email: sibit@datasrv.co.il

      Subject:  68hc11 microcontrollers
      Newsgroups:  comp.realtime
                   comp.robotics
                   sci.electronics
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/68hc11
                /pub/usenet/sci.answers/microcontroller-faq/68hc11
                /pub/usenet/news.answers/microcontroller-faq/68hc11
      Maintainer:  Russ Hersch
                   Email: sibit@datasrv.co.il

      Subject:  Motorola 68K microprocessor line
      Newsgroups:  comp.sys.m68k
      Archive:  bode.ee.ualberta.ca : pub/motorola/general
                ftp.luth.se : /pub/misc/motorola/faq
                file name of archive is m68kfaq?.zip (? is version)
      Comments:  also includes information on the 683xxx and 68hc16
      Maintainer:  Robert Boys - Ontario, Canada
                   Email: r.boys@genie.geis.com
                                 or
                          fboys@uoguelph.ca


    Several other FAQs have been compiled that address various aspects of
    microcontroller design and implementation.

      Subject:  Robotics
      Newsgroups:  comp.robotics
      Maintainer:  Kevin Dowling
                   (412)268-8830
                   Email: nivek@ri.cmu.edu
                   Smail: Carnegie Mellon University
                          The Robotics Institute
                          Pittsburgh, PA 15213

      Subject:  Electronics
      Newsgroups:  sci.electronics
      Comments:  There are a number of FAQs available in this newsgroup
                 on various subjects.  Among some of the subjects covered
                 are:  LCDs, stepper motors, suppliers, etc.

      Subject:  Real-time
      Newsgroups:  comp.realtime, comp.answers, news.answers
      Archive:  rtfm.mit.edu : pub/usenet/comp.realtime
      Maintainer:  Mark Linimon
                       Lonesome Dove Computing Services
                       Roanoke, Virginia
                   Email: linimon@nominil.lonesome.com.

      Subject:  Neural Networks
      Newsgroups:  comp.ai.neural-nets,comp.answers,news.answers
      Archive:  rtfm.mit.edu : pub/usenet/neural-net-faq
      Maintainer:  Lutz Prechelt
                   Email: prechelt@ira.uka.de

      Subject:  Fuzzy Logic
      Newsgroups:  comp.ai.fuzzy,comp.answers,news.answers
      Archive:  rtfm.mit.edu : pub/usenet/fuzzy-logic/
      Maintainer:  Mark Kantrowitz
                   Email: mkant+@cs.cmu.edu

      Subject:  Embedded Systems FAQ Roadmap
      Comments:  Lists various sources of information on embedded systems
                 found on the Internet
      Archive:  email cera@netcom.com
                send EMBFAQ in SUBJECT line
      Maintainer:  CERA Research


10)  MICROCONTROLLER FREE SOFTWARE SOURCES

    This section includes descriptions and references to free
    microcontroller software.  FTP sites and BBSs contain many quality
    packages and code samples for free.  For heavy duty use, you might
    prefer the many commercial packages that are available.  With the
    public domain (or free) stuff, you're usually on your own.  The
    commercial packages usually provide extensive documentation and
    support.

    If you are looking for commercial software for the 8051, 68hc11, or
    PIC, then check out the FAQs on these microcontrollers for details on
    what is available.


10.1)  FTP sites

    The following is a list of the anonymous ftp sites that have source
    code and programming languages for various microcontrollers.  There
    are many others that  are not listed here that contains bits and
    pieces.  Usually you can find them using Archie and searching for
    variations on the name of the microntroller you are looking for.

    ftp.pppl.gov (formerly lyman.pppl.gov)
        - this is a great source of 8051 stuff
        /pub/8051
        /pub/incoming - check this out for new untested/unsorted items

    ftp.mcc.ac.uk
        - this is a new 8051 ftp site

    ftp.intel.com
        - good source of stuff the MCS-51 and MCS-96 families
        /pub/mcs51 - various development tools and sample code for the
                     MCS-51 family
        /pub/mcs96 - various development tools and sample code for the
                     MCS-96 family

    nctuccca.edu.tw
        - mirror of ftp.intel.com
        /vendors/Intel

    freeware.aus.sps.mot.com (Motorola)
        - the ftp site version of the freeware BBS
        - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
          683xx, and PowerPC
        - also see the Web pages in the next section

    nscmicro.nsc.com
        - the authoratative source for COP8 infomation
        /pub/COP8 - various develepment tools and sample code for the
                    COP8 family including most application notes


    ftp.ee.ualberta.ca (preferred address)
    bode.ee.ualberta.ca
    wattson.ee.ualberta.ca
        - HUGE archive of all sorts of stuff on the 68hc11 (lots of other
          good stuff too!)
        - you'll have fun mucking around this ftp site, there's piles of
          stuff here
        /pub/cookbook
        /pub/motorola
        /pub/motorola/68hc11
        /pub/motorola/mcu11

    cherupakha.media.mit.edu (cher.media.mit.edu)
        - HUMONGOUS archive of all sorts of stuff on the 68hc11 including
          the 6.270 robotics project, Mini Board, F1 board, and more
          (lots of other good stuff too!)
        - you'll lose yourself rooting around this ftp site, there's
          piles of stuff here (assemblers, tools, C compilers, plans and
          schematics, and many other items)
        /pub/6270 - tools, docs, schematics, etc. for the MIT 6.270
          robotics project using a 68hc11-based development system
        /pub/6811 - software, schematics, etc. for the 68hc11-based F1
          board
        /pub/incoming - various unsorted or new items
        /pub/miniboard - software, docs, schematics, etc. for the 3"x2",
          68hc11-based Mini Board controller

    ftp.funet.fi (nic.funet.fi)
        - this is a good source for various microcontrollers
        /pub/microprocs/ (subdirectories include: 1802, 6805, 8048,
           8051, 8096, PIC and many other microprocessors)

    ftp.sics.se
        - many assemblers, utilities, and application notes for the PIC
        - Microchip BBS mirror
        - ftp site of Memec Scandinavia, Microchip's Swedish agent.
        /pub/mchipsoft

    ernie.uvic.ca
        - files provided by local Motorola representative
        /pub (subdirectories include: ibm, dsp96k, dsp56100, dsp56k,
          dsptools, develop, mac, mcu302, mcu332, mcu11, pgmr, mcu16,
          mcu, market, qa, general, m68k, evm, dsp)

    wpi.wpi.edu
        - basic stamp information
        - PIC "C" compiler
        /stamp

    ftp.std.com
        /vendors/microchip/

    ftp.luth.se
        /pub/misc/microchip - PIC information
        /pub/misc/microchip/stamp/mirror - mirror of wpi.wpi.edu
        /pub/languages/assembler - various freeware assemblers

    ti.com
        read the 00readme file first or you'll be lost

    hpcsos.col.hp.com
        /misc/ns32k/beowulf

    ftp.netcom.com
        /pub/imagecft - prerelease version of ImageCraft C for 68hc11

    info@circellar.com - Email (not ftp)
        - send Email to get information file on services available
        - all Circuit Cellar INK and BYTE related files available

    asterix.inescn.pt - FORTH archive
        /pub/forth

    ftp.ultranet.com
        /biz/mchip - PIC information
        - also see the Web page: http://www.ultranet.com/biz/mchip

    ftp.mrc-bbc.ox.ac.uk
        /pub/microchip

    ftp.oak.oakland.edu
        - has information and software for a wide range of
          microprocessors and microcontrollers

    ftp.uni-erlangen.de
        - information on PIC
        /mounts/epix/public/pub/Multimedia/VideoCrypt/
            microcontroller/microchip.bbs

    ftp.armory.com (Steve Walz)
        - /pub/user/rstevew/8051
        - /pub/user/rstevew/TB8051
        - /pub/user/rstevew/incoming

    ftp.cygnus.com (Jeff Fox)
        - source of information and software on the MuP21 Forth
          microcontroller
        /pub/forth - MUP21FTP.ZIP includes a software simulator for
            the MuP21 and and the upcoming F21.
        also see the Web page: http://www.dnai.com/~jfox

    ftp.best.com
        /pub/cera
    ftp.netcom.com
        /pub/ce/cera
        - embedded systems FTP archive

    ftp.parallaxinc.com
        /pub
        - ftp site of Parallax
          "Cool PIC development tools & the BASIC Stamp"

    ftp.std.com - Minds-Online ftp site
        /customers2/nonprofits/minds-online
        - Chock full of compilers, assemblers, code, articles, fuzzy
          logic, and much more.


10.2)  Web pages

    http://motserv.indirect.com (Motorola)
        - Motorola's semiconductor WWW page
        - on-line searchable Master Selection Guide and OEM Price Book
        - 'MFax' service to request all kinds of data sheets
        - a bunch of other cool stuff

    http://freeware.aus.sps.mot.com/index.html (Motorola)
        - Motorola's microcontroller WWW page
        - the WWW version of the freeware BBS
        - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
          683xx, and
            PowerPC

    http://www.ultranet.com/biz/mchip
        - source of information on the Microchip PIC

    http://www.dnai.com/~jfox
        - source of information and software on the MuP21 Forth
          microcontroller

    http://www.cera.com
        - embedded systems information

    http://www.parallaxinc.com
        - Parallax Inc. web page
          "Cool PIC development tools & the BASIC Stamp"

    http://www.ba-karlsruhe.de/automation/home.html
        - automation and process control


10.3)  BBSs

    The following BBSs have 8051 information:

    Circuit Cellar, Inc.
        - contains code from their magazine articles and from the
          original Circuit Cellar articles in Byte magazine, also
          contains many other interesting items
        - The BBS is mentioned in the masthead of each issue (on the
          table of contents page).  Excerpts from the BBS appear in Ken
          Davidson's ConnecTime column in every issue with a description
          of how to access the system at the end of every column.
        - (203)871-1988
        - Voice: (203)875-2751
        - Fax: (203)872-2204

    Dunfield Development Systems
        - support for their Micro-C C compiler and development tools
        - includes a lot of nice goodies - CHECK THIS OUT!
        - (613) 256-6289

    Electronics Now
        - contains code from their magazine articles
        - (516)293-2283
        - 1200/2400, 8N1

    Intel American Marketing Applications Support Bulletin Board System
        - 16 lines, hi-speed modems (14.4K)
        - Lots of useful info and files (including design examples)
        - Full ANSI-BBS with color is recommended, but support for just
          about all terminal types is provided
        - 916-356-3600 (24 hours)
          Auto config: 1200 thru 14.4K Baud
          8 data bits, no parity, 1 stop

    Iota Systems, Inc.
        - Support for their line of hardware and software products
        - (702)831-4732

    Don Lekei BBS
        - support for the PIC line of microcontrollers
        - (604)597-3479 (Canada)

    Microchip BBS
        - support for the PIC line of microcontrollers
        - Contact by dialing the same number you would use to get to
          Compuserve at 19200,n,8,1, except that you press + at the
          (garbage) prompt, followed by MCHIPBBS as the host (instead of
          CIS).

    ED Teck. Pubs BBS
        - run by Fred Eady who writes for hobbyist magazines
        - good source of information on the PIC
        - (407)454-3198

    National Semiconductor COP8 BBS
        - (800)672-6427
        - worldwide telnet to nscmicro.nsc.com

    Protel (Microchip PIC software support)
        - (408)243-0125

    Parallax Inc.
        - (916)624-7101

    Motorola (Austin Texas) BBS
        - terrific, has piles of stuff, only some of which is on
          bode.ee.ualberta.ca
        - (512) 891-3733 (Austin, Texas)
        - V.32 9600 Baud modems w/ MNP-5
        - 8 Data Bits, No Parity, 1 Stop Bit.

    Other Motorola BBSs:
        - Munich, Germany:  49-89-92103-111  (2400 baud)
        - Stuttgart, Germany:  49-7031-275496  (19200 baud)
        - San Diego, California:  (619) 279-3907
        - Toronto, Ontario, Canada:  (416) 497-8989

    Philips Semiconductor (parent company of Signetics)
        - support for: standard logic, programmable logic,
          in-car electronics (planned), 8 and 16 bit microcontrollers,
          I2C software, third party software, discrete semiconductors,
          cross assemblers (general), RF (planned)
        - PHIBBS is located in the Netherlands: +31-40-721102
        - maximum 14400 baud / V42bis
        - 24 hours a day available
        - Help desk: +31-40-722749  (9.00 AM - 16.00 PM CET)

    Philips Semiconductors (Signetics)
        - support for their 8051 variants
        - contains many good source code items
        - partially mirrored on ftp.pppl.gov and nic.funet.fi
        - (800)451-6644 or (408)991-2406


10.4)  Mailing Lists

    listserv@oberon.com
        - mailing list for the Mini Board and 6.270 board
        - send a message containing the word "help" for directions
        - mailing list address:  robot-board@oberon.com
        - maintainer:  gkulosa@oberon.com

    listserv@hipp.etsu.edu
        For information, send empty message.
        To subscribe, send message with the body:
           subscribe mc68hc11 your_real_name

    listserv@netcom.com - mailing list for Imagecraft C
        to join the mailing list, send the message "subscribe icc11-list"

    listserv@mitvma.mit.edu
        to join, send the message "SUB PIC"
        list address is: PIC@mitvma.mit.edu
        to receive the mailing list as a digest, send the message
           SET PIC DIGEST

    majordomo@first.gmd.de
        to join, send the message "subscribe crossgcc "
           in the message body
        Cross GCC mailing list - for building a cross gcc compiler for
           your embedded system.

    Philips-News@InetBSystems.us.com
        - send Email with "subscribe" in the subject field to be put
          on list for newsletter
    Philips-archive@InetBSystems.us.com
        - send Email message with the word "help" in the subject line to
          learn how to access the archive
    Philips-forum-request@InetBSystems.us.com
        - send an Email message with the word "subscribe" in the subject
          line to participate in the forum, and receive usage
          instructions and guidelines
    Philips-Info@InetBSystems.us.com
        - send Email message to get information on all of Philips Email
          services

    MISC@pisa.rockefeller.edu
    MISC-d@pisa.rockefeller.edu (digested list)
        - a message with "subscribe" on the subject line to one of these
          addesses you will get you signed up
        - a message with "help" on the subject line you will get info on
          how the mail list works

    Minds-Online mailing lists
        - One mailing list is for announcing significant postings on the
          Minds-Online ftp site.
        - Another MODERATED mailing list will carry messages from real
          engineers who are working on designs slated for volume
          production.  "No tire-kickers, no students, no academics, no
          sleazy something-for-nothing ripoff artists, no hobbyists, and
          no totally lost people will be able to post e-mail."  (Uh, it
          looks like that sort of leaves out yours truly, I certainly
          belong in several, if not most, of those categories).
        - send an email request to csmall@tiac.net to be added to these
          lists

    Parallel Performance Group (PPG) mailing lists
        - PPG is a provider of high-tech Unix- and PC-based scientific,
          engineering, and graphics software.  PPG publishes a free
          monthly electronic-mail newsletters covering a number of
          disciplines of interest to the microcontroller designer.
        - For more information, send email to: info@ppginc.com


__________________________________________________________

I disclaim everything.  The contents of this article might be totally
inaccurate, inappropriate, misguided, or otherwise perverse - except for
my name (hopefully I got that right).

Copyright (c) 1995 by Russell Hersch, all rights reserved.
This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  as long as it is posted in its entirety and includes this copyright
  statement.
This FAQ may not be distributed for financial gain.
This FAQ may not be included in commercial collections or compilations
   without express permission from the author.

-----------------------------------
Russ Hersch - sibit@datasrv.co.il


********************************** 68hc11 FAQ ***************************

Archive-name: microcontroller-faq/68hc11
Posting-Frequency: monthly
Last-modified: Mar. 30, 1995

This article is a collection of information sources on the line of
Motorola 68hc11 microcontrollers.

The following topics are addressed:

      0)  Rantings and ravings (to make the FAQ zero-based)

      1)  ABOUT THIS FAQ
    1.1)  Who put this FAQ together?
    1.2)  How can I contribute to this FAQ?
    1.3)  What newsgroups will this FAQ be posted to?
    1.4)  May I distribute this FAQ or post it somewhere else?
    1.5)  How about FAQs on other microcontrollers?

      2)  ABOUT THE 68hc11
    2.1)  The 68hc11 microcontroller
    2.2)  68hc11 flavors
    2.3)  Sources and prices
    2.4)  Advantages realized in implementing control applications
          with this family of microcontrollers

      3)  SOURCES OF INFORMATION ON THE 68hc11
    3.1)  FTP sites
    3.2)  Mailing Lists
    3.3)  BBSs

      4)  68hc11 PRODUCTS
    4.1)  Free languages and development systems
    4.2)  Free C compilers
    4.3)  Plans for 68hc11-based boards
    4.4)  Commercially available software

      5)  68hc11 DOCUMENTATION
    5.1)  Periodicals
    5.2)  Books


0)  Rantings and ravings

    Disclaimer:  Just so it is understood, the "rantings and ravings" are
    MY rantings and ravings.  My readers are refined and sophisticated
    and would never rant or rave.  I, on the other hand, sit in front of
    the TV in torn underwear and drink beer out of the bottle.


    My sincerest apologies to anyone that wrote to me, and didn't get a
    reply.  I was inundated this time, and I'm afraid that I wasn't too
    careful in keeping track of my email.  Also, some of those I did
    respond to didn't hear from me because their email addresses were
    invalid (or, at least my system thinks so).  So, if you feel
    neglected, or you submitted some information that didn't make it into
    this month's update, please drop me a note and let me know.  A
    thousand pardons!

    Well, the verdict is in.  No, I'm not talking about OJ.  The response
    has been nearly unanimous to keep my FAQs in one piece.  So, one
    piece it is.


    Thanks to Ted MacDonald for the following hint:  "If you contact
    Motorola at 800-521-6274 and order literature #M68HC11RM/AD, they
    will send, free of charge, a reference manual for the 6811.  Thought
    this might be useful for others."


    A new feature in 8051 FAQ is a list of individuals who have expressed
    interest in helping others with hardware and software problems for
    8051 systems.  Anyone out there who's willing to offer assistance to
    the hc11 crowd?  If you feel you are qualified, and you're willing to
    do a good turn, let me know what your areas of specialization are and
    I'll put together a list for this FAQ.  Thanks!


    Take care,

              Uncle Russ


1)  ABOUT THIS FAQ

1.1)  Who put this FAQ together?

    I started by putting together a FAQ on the 8051 microcontroller in
    response to my own frustration in finding information.  The FAQ has
    now been out for some time and has been very well received.  One of
    the questions that I'm frequently asked is if I know of a FAQ on the
    68hc11.  Not only that, but how many times have you seen the
    following questions posted on the newsgroups:  "anyone know of a C
    compiler for the 68hc11?", "anyone know of an assembler for the
    68hc11?", and so on.

    Therefore, I decided to jump in and try my hand again.  I figured
    that this would be a good learning experience.  From what I've seen
    so far, the 68hc11 is a good chip, and well worth learning and
    developing with.  I really don't have any experience with the 68hc11
    (yet), so I'm going to need everyone's help on this.  Just as with
    the 8051 FAQ, with everyone's help this FAQ should turn out to be a
    pretty useful document.


1.2)  How can I contribute to this list?

    I please ask that if you have any suggestions or additions, or you
    would like to correct any of the information contained herein, please
    send me a note.
         My Email address is:  sibit@datasrv.co.il
         My Smail address is:
               Russ Hersch
               HaVradim 11
               Ginot Shomron
               ISRAEL

    The list of individuals who have sent suggestions and encouragement
    has overflowed.  I hope it suffices to say "Thank you to all who have
    contributed to this FAQ - we all appreciate it."

    Special thanks to:
          David Dunfield (Dunfield Development Systems)
          Kevin Johnson (VSI, New Zealand) for the excellent
             product summaries
          Bob Boys (maintainer of the superb Mot. 68K FAQ)
          Matt Albright (Motorola)

    Very special thanks to Ping Huang and Thomas Koenig of the
    news.answers moderators team for all of their help.

    I certainly hope that those of you who know of interesting items for
    the 68hc11 will share with everyone by contributing to this list.

    If you are a manufacturer and have an anonymous ftp site available
    that supports the 68hc11, please let me know by Email so that I can
    add it to this FAQ.  Also please feel free to keep me updated on your
    products.


1.3)  What newsgroups will this FAQ be posted to?

    This FAQ will be posted to the following newsgroups:
          comp.realtime
          comp.robotics
          sci.electronics
          comp.answers
          sci.answers
          news.answers
    The first three newsgroups often contain discussions, announcements,
    or information on the 68hc11.  Check them out from time to time.  By
    posting to the *.answers newsgroups, the FAQ will automatically be
    archived.  The archive name of this FAQ (also included in the header)
    is: microcontroller-faq/68hc11.

    The schedule for posting will be once a month.  I can't promise that
    it will be on time, but I hope to post it on the 26th of each month.

    You might also want to check out the following newsgroups, since they
    occasionally have items of interest for you 68hc11 users.
          comp.sys.m6809
          comp.sys.m68k
          comp.lang.misc
          alt.comp.hardware.homebuilt

    A bit farther afield, but still of possible interest:
          comp.ai.fuzzy
          comp.dsp
          sci.engr.control
          sci.engr.semiconductors


1.4)  May I post this FAQ to my local BBS?

    I am putting no restrictions on the use of this FAQ except - It must
    be distributed in its entirety with the copyright notice, and no
    financial gain may be realized from it.  After all, I have spent, and
    continue to spend, a lot of time on this, and the only thing that I
    intend to gain from it is more information on the 68hc11, and getting
    to know my fellow 68hc11 groupies better.

    For this reason I have appended a copyright statement to the end of
    this FAQ.  I feel pretty silly doing this, but I just want to protect
    myself.  The copyright does not limit the use of this list for
    noncommercial purposes.  I hereby give my permission to one and all
    to pass this list around and post it wherever you want - as long as
    it is not for financial gain.

        Thank you.


1.5)  How about FAQs on other microcontrollers?

    If anyone wishes to start a FAQ on another microcontroller, please
    feel free to copy the format of this FAQ - I don't intend on
    copyrighting the look and feel ;-).  With a common format, we will
    all benefit when trying to find information on a particular
    microcontroller.

    If anyone has any comments on the format itself, I'm open for
    suggestions.


    Other Microcontroller FAQs

      Subject:  PIC microcontrollers
      Newsgroups:  comp.realtime
                   comp.robotics
                   sci.electronics
                   sci.electronics.repair
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/PIC
                /pub/usenet/sci.answers/microcontroller-faq/PIC
                /pub/usenet/news.answers/microcontroller-faq/PIC
      Maintainer:  Tom Kellett
                   Email: Tom@takdsign.demon.co.uk

      Subject:  8051 microcontrollers
      Newsgroups:  comp.sys.intel
                   comp.realtime
                   comp.robotics
                   comp.lang.forth
                   sci.electronics
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/8051
                /pub/usenet/sci.answers/microcontroller-faq/8051
                /pub/usenet/news.answers/microcontroller-faq/8051
      Maintainer:  Russ Hersch
                   Email:  sibit@datasrv.co.il

      Subject:  Microcontroller primer and FAQ
      Newsgroups:  comp.sys.intel
                   comp.realtime
                   comp.robotics
                   sci.electronics
                   alt.comp.hardware.homebuilt
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/primer
                /pub/usenet/sci.answers/microcontroller-faq/primer
                /pub/usenet/news.answers/microcontroller-faq/primer
      Maintainer:  Russ Hersch
                   Email:  sibit@datasrv.co.il

    Additional FAQs of interest

      Subject:  Robotics
      Newsgroups:  comp.robotics
      Maintainer:  Kevin Dowling
                   (412)268-8830
                   Email:  nivek@ri.cmu.edu
                   Smail:  Carnegie Mellon University
                           The Robotics Institute
                           Pittsburgh, PA  15213

      Subject:  Electronics
      Newsgroups:  sci.electronics
      Comments:  There are a number of FAQs available in this newsgroup
                 on various subjects.  Among some of the subjects covered
                 are:  LCDs, stepper motors, etc.

      Subject:  Real-time
      Newsgroups:  comp.realtime, comp.answers, news.answers
      Archive:  rtfm.mit.edu : pub/usenet/comp.realtime
      Maintainer:  Mark Linimon
                       Lonesome Dove Computing Services
                       Roanoke, Virginia
                   Email:  linimon@nominil.lonesome.com.

      Subject:  Motorola 68K microprocessor line
      Newsgroups:  comp.sys.m68k
      Archive:  bode.ee.ualberta.ca : pub/motorola/general
                ftp.luth.se : /pub/misc/motorola/faq
                file name of archive is m68kfaq?.zip (? is version)
      Maintainer:  Robert Boys - Ontario, Canada
                   Email: r.boys@genie.geis.com
                                 or
                          fboys@uoguelph.ca


    Two useful articles are also available.  One article provides a
    tabular cross reference of features and pin counts.  The second
    article provides pinout diagrams of many of the Motorola line of 8
    bit microcontrollers.  Both lists were compiled and are being
    maintained by Roger Nelson .

    For more information on various microcontrollers and their features,
    refer to the Microcontroller primer and FAQ listed above.


2)  ABOUT THE 68hc11


2.1)  The 68hc11 microcontroller

    General

    The 68hc11 is a powerful 8-bit data, 16-bit address microcontroller
    from Motorola with an instruction set that is similar to the older
    68xx (6801, 6805, 6809) parts.  Depending on the variety, the 68hc11
    has built-in EEPROM/OTPROM, RAM, digital I/O, timers, A/D converter,
    PWM generator, and synchronous and ansynchronous communications
    channels (RS232 and SPI).  Typical current draw is less than 10ma.


    Architecture

    CPU has two 8 bit accumulators (A & B) that can be concatenated to
    provide a 16 bit double accumulator (D).  Two 16 bit index registers
    are present (X,Y) to provide indexing to anywhere in the memory map.
    Having the two index registers means the 68hc11 is very good for
    processing data.  Although an eight bit processor, the 68hc11 has
    some 16 bit instructions (add, subtract, 16 * 16 divide, 8 * 8
    mulitply, shift, and rotates).  A 16 bit stack pointer is also
    present, and instructions are provided for stack manipulation.
    Typically multiplexed address and data bus.


    Onboard subsystems

    Timer -  Main timer system comprises of a single 16 bit counter
    clocked at the E clock (2,3,or 4 Mhz - there is a programmable
    prescaler to slow it down if required). From this single counter run
    a number of input capture and output compare registers (3-4  IC, 5 -
    4 OC). The IC and OC functions are very versatile, and pulses as
    short as 1 E clock can be generated.

    A-D Convertor - Typically 8 channel 8 bit A/D, although the G5 has a
    10 bit A/D.

    Serial Communications Interface (SCI) - Asynchronous serial
    communications; Data format - 1 Start, 8 or 9 data, and one stop bit.
    Data rate - 150 - 312500 Baud (312500 is using 4 mhz E clock)

    Serial Peripheral Interface (SPI) - Synchronous serial
    communications, comprises CLK, DATA IN, DATA OUT and optionally chip
    selects.  As well as using specific SPI devices, it is very easy to
    expand IO using the SPI and standard logic devices (e.g. 74HC595 and
    74HC165).


2.2)  68hc11 flavors

    The following are Motorola flavors:

    HC11 A Series
       8K ROM (A8), ROMless (A0,A1), 256 RAM, 256 EEPROM (A1,A8), SPI,
       SCI, 3 IC 5 OC, 8 channel 8 bit A/D

    HC11 C0
       Nice new device.  ROMless, on board bank switching to support
       memory maps of up to 256K.  Totally glueless interface - Chip
       selects on board, Read Enable and Write Enable signals now
       generated on chip.  256 RAM, 8 channel 8 bit A/D - Good pricing

    HC11 D Series
       Smallest and lowest cost member of the hc11 Family.  ROMless (D0),
       4K ROM (D3), 4K EPROM (711D3) - No A-D or EEPROM.  Still has
       standard timers and serial ports

    HC11 E Series
       Same as A series execpt 512 bytes RAM and EEPROM.  Pin compatible,
       only difference is one timer pin (PA4) can now be used for IC or
       OC instect of just OC.  Also have EPROM devices and larger
       memory - hc711e9 (12K OTP), hc711e20 (20K OTP)

    HC11 F series
       ROMless, non multiplexed address/data bus with 4 chip selects
       built in.  1K RAM, 512 bytes EEPROM - otherwise same peripherals
       as E series

    HC11 G Series
       16K ROM/EPROM, Non mulitplexed address/data bus, 512 RAM, 4
       channel PWM, 10 Bit A/D convertor, 2 separate 16 bit timers

    HC11 K4
       24K ROM/EPROM, 1Mb addressing using on chip memory mapping.  Non
       multiplexed address and data  bus. 4 programmable chip selects, 8
       channel 8 bit A/D.  4 channel PWM, 768 bytes RAM

    Toshiba second-sources the 68hc11, and they list the following
    variants: A0/A1/A8 and E0/E1/E9.

    For a nice breakdown of the 68hc11 line, check out the file
    taxonomy.txt at cherupakha.media.mit.edu : /pub/miniboard/hobby-tips.
    The file contains a table detailing all of the possible combinations
    that the 68hc11 is supplied in.


2.3)  Sources and prices

    Sources??  Prices??  Hell - you can't even find the suckers!  For
    those of you who remember the old Chicken Man series on radio, "He's
    everywhere! He's everywhere!" - the 68hc11 is not Chicken Man.  The
    68hc11 - "It's nowhere, it's nowhere!"  I remember one episode in
    which our hero was fighting against an evil plot to steal all of the
    refrigerator light bulbs in the world.  Well, maybe the same thing
    happened with the 68hc11 - they just can't be found.

    Maybe it's just a clever scam.  The 68hc11 really doesn't exist.
    Instead, Motorola cobbled together a microprocessor using an Intel
    8051 running an emulation of the 68hc11 instruction set (Intel
    Inside?).

    Ruud Schramp found some in the Netherlands (sounds like an
    appropriate place to find them).  The breakdown is as follows
    (1 US dollar =+- Dfl 1.70):
       Main Importer of Holland   Dfl 15.-- (quantity >100)
       Main Importer of Holland   Dfl 19.-- (if you buy 1 and if they
                                             want to sell 1)
       Distributor                Dfl 25.-- (also no single sales)
       Shop (Display Electronica) Dfl 35.-- (quantity 1)

    Also, the 68hc11 can be found at the following places:

    Active Electronics
       1-800-677-8899

       Some prices from catalog #914:

          68HC11A1FN      13.90
          68HC11A0FN      13.40
          68HC11A1P       18.75
          68HC11A0P       16.40
          68HC11E1FN      17.90
          68HC11F1FN      29.85
          68HC24          18.00 port replacement
          68HCP11A1FN     14.90
          68HCP11A0P      17.90
          68HCP11A1P      20.90
          68HC711D3S      26.90 (OTP)
          68HC711E9FNX    37.50 (OTP)
          68HC711E9FS     44.90 (OTP)
          68HC811E2FN     28.40

          They also sell evaluation boards

    JDR Microdevices
       1850 South 10th Street
       San Jose, CA 95112-4108 USA
       Sales: (800) 538-5000 or (408) 494-1400
       Fax Orders: (800) 538-5005
       Tech Support: (800) 538-5002
       BBS: 408-494-1430

       They list the 68HC11A1P (48 pin DIP version) at $11.95 in their
       1994 electronic component catalog (#37).  They have lots of other
       good stuff in the catalog.  No minimum order.

    Newark Electronics
       Branches throughout the USA, several in Canada, one in U.K.
       One branch at:
       20700 Hubbell Avenue
       Oak Park, MI 48237-0630
       Sales: (313) 967-0600
       Fax: (313) 967-0957

       Catalog number 112 indicates that the carry Motorola micros
       (including the HC11 family.  These guys are big distributors, so
       they can probably get any part in the HC11 family, but they
       probably won't be cheap.

       Prices shown in their 1992 catalog are:

       MC68HC11E0FN (PLCC version) lists at $21.26
       MC68HC11E1FN (PLCC version) lists at $22.36

    B.G. Micro
       P.O.B. 280298
       Dallas, TX  75228
       (214)271-5546

       They usually have a couple varieties at good prices.


2.4)  Advantages realized in implementing control applications on this
      family of microcontrollers

    Traditional architecture - a more traditional architecture than other
    competing products (such as the 8051 and PIC) makes it easier to
    learn and develop on (especially well-suited for teaching
    microcontrollers)

    More features - a 68hc11 is typically a "one-chip" solution since it
    often includes such items as A/D, PWM, and many I/O lines

    Popular - widely used since it is very inexpensive and has a wide
    range of development tools available (both freeware and commercial)


3)  SOURCES OF INFORMATION ON THE 68hc11

3.1)  FTP sites

    The following is a list of the various anonymous ftp sites that have
    68hc11 source code and programming languages.  There are many others
    that  are not listed here that contains bits and pieces.  Usually you
    can find them using Archie and searching for "68hc11", "6811", or
    "hc11".

    http://motserv.indirect.com (WWW page)
        - Semiconductor WWW page
        - on-line searchable Master Selection Guide and OEM Price Book
        - 'MFax' service to request all kinds of data sheets
        - a bunch of other cool stuff

    http://freeware.aus.sps.mot.com/index.html (WWW page)
        - Motorola's microcontroller WWW page
        - the WWW version of the freeware BBS
        - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
          683xx, and
            PowerPC

    freeware.aus.sps.mot.com (Motorola)
        - the ftp site version of the freeware BBS
        - lots of free software for the HC05, HC08, HC11, HC16, 680x0,
          683xx, and
            PowerPC

    ftp.ee.ualberta.ca (preferred address)
    bode.ee.ualberta.ca
    wattson.ee.ualberta.ca
        - HUGE archive of all sorts of stuff on the 68hc11 (lots of other
          good stuff too!)
        - you'll have fun mucking around this ftp site, there's piles of
          stuff here
        /pub/motorola
        /pub/motorola/68hc11
        /pub/motorola/mcu11

    cherupakha.media.mit.edu (cher.media.mit.edu)
        - HUMUNGOUS archive of all sorts of stuff on the 68hc11 including
          the 6.270 robotics project, Mini Board, F1 board, and more
          (lots of other good stuff too!)
        - you'll lose yourself rooting around this ftp site, there's
          heaps of stuff here (assemblers, tools, C compilers, plans and
          schematics, and many other items)
        /pub/6270 - tools, docs, schematics, etc. for the MIT 6.270
          robotics project using a 68hc11-based development system
        /pub/6811 - software, schematics, etc. for the 68hc11-based F1
          board
        /pub/incoming - various unsorted or new items
        /pub/miniboard - software, docs, schematics, etc. for the 3"x2",
          68hc11-based Mini Board controller

    ftp.funet.fi (nic.funet.fi)
        - this is a good one, too
        /pub/microprocs/6811
        other subdirectories in /pub/microprocs include:
          1802, 6805, 8048, 8051, 8096 and many other microprocessors

    ernie.uvic.ca
        - files provided by local Motorola representative
        /mcu11
        other subdirectories include: ibm, dsp96k, dsp56100, dsp56k,
        dsptools, develop, mac, mcu302, mcu332, mcu11, pgmr, mcu16, mcu,
        market, qa, general, m68k, evm, dsp (a little bit of something
        for everyone)

    hipp.etsu.edu
        /pub/hc11
        /pub/hc11/Mcintosh.Evb.Disk - Macintosh software for EVB
        /pub/hc11/beacon - navigation project for mc68hc811e2-based
           robots

    hpcsos.col.hp.com
        /misc/ns32k/beowulf

    ftp.netcom.com
        /pub/imagecft - version 0.50 (prerelease) of ImageCraft C

    info@circellar.com - Email (not ftp)
        - send Email to get information file on services available
        - all Circuit Cellar INK and BYTE related files available

    ftp.luth.se
        /pub/languages/assembler
        /pub/misc/motorola - lots of stuff

    crl.nmsu.edu
        /pub/non-lexical/6811 - AS11 assembler and other misc files

    ftp.stack.urc.tue.nl
        /pub2/scrumpel/
        - ftp site for the 68HC11 workgroup
        - Scrumpel monitor (SCRUMPEL.ZIP), a nice monitor with
          simple breakpoint features, lots of memory accessing
          features
        - Buggy101.ARJ, a program for their robot project
        - soon to come Disk Operating System
        - documentation on the Scrumpel 6g microcrontroller system

    asterix.inescn.pt - FORTH archive
        /pub/forth/68hc11


3.2)  Mailing Lists

    listserv@oberon.com
        - mailing list for the Mini Board and 6.270 board
        - send a message containing the word "help" for directions
        - mailing list address:  robot-board@oberon.com
        - maintainer:  gkulosa@oberon.com

    listserv@hipp.etsu.edu
        For information, send empty message.
        To subscribe, send message with the body:
            subscribe mc68hc11 your_real_name

    listserv@netcom.com - mailing list for Imagecraft C
        to join the mailing list, send the message "subscribe icc11-list"


3.3)  BBSs

    The following BBSs have 68hc11 information:

    Austin Texas Motorola BBS
        - terrific, has piles of stuff, only some of which is on
          bode.ee.ualberta.ca
        - (512) 891-3733 (Austin, Texas)
        - V.32 9600 Baud modems w/ MNP-5
        - 8 Data Bits, No Parity, 1 Stop Bit.

    Other Motorola BBSs:
        - Munich, Germany:  49-89-92103-111. (2400 baud)
        - Stuttgart, Germany:  49-7031-275496   (19200 baud)
        - San Diego, California:  (619) 279-3907
        - Toronto, Ontario, Canada:  (416) 497-8989

    Circuit Cellar, Inc.
        - contains code from their magazine articles and from the
          original Circuit Cellar articles in Byte magazine, also
          contains many other interesting items
        - The BBS is mentioned in the masthead of each issue (on the
          table of contents page).  Excerpts from the BBS appear in Ken
          Davidson's ConnecTime column in every issue with a description
          of how to access the system at the end of every column.
        - (203)871-1988
        - Voice: (203)875-2751
        - Fax: (203)872-2204

    Dunfield Development Systems
        - support for their Micro-C and development tools
        - lots of goodies with some items contributed from BBS users
        - (613)256-6289 (new phone number)
        - v32/v42/HST

    Electronics Now
        - contains code from their magazine articles
        - (516)293-2283
        - 1200/2400
        - 8 Data Bits, No parity, 1 Stop bit

    Elektronik Laden Mikrocomputer GmbH
        - product descriptions and sample code
        - +49-05232/85112, 14.4k 8n1

    Maus BBS
        - contains most of the files of Motorola's Munich Mailbox but
          much faster baud rate
        - Boeblingen, Germany (near Stuttgart)
        - 49-7031-275496.

    New Micros
        - support for their line of development systems
        - (214)339-2321

    PseudoCorp
        - support for their line of simulators and assemblers
        - (804)873-4838

    Scrumpel BBS
        - Forth and 68hc11 software
        - also new implementations of eForth and FIG Forth, as well as a
          new Forth implementation
        - +31-40-527266 (after Oct. 1, 1995  +31-50-2527266)


4)  68hc11 PRODUCTS

    This section includes descriptions and references to free and
    commercial software for the 68hc11.  FTP sites and BBSs contain many
    quality packages and code samples for free.  For heavy duty use, you
    might prefer the many commercial packages that are available.  Some
    very high quality, low-priced packages are available which are
    suitable for both the hobbyist and professional on a limited budget.
    With the public domain (or free) stuff, you're usually on your own.
    The commercial packages usually provide extensive documentation and
    support.


4.1)  Free languages and development tools

    The following is a list of the languages and development tools that I
    could find on the net.  Nearly all of them include source code,
    however not all are public domain.

    Assembler

      Program: A11.ZIP
      Description: PseudoSam 68hc11 Cross Assembler
      Location:  ftp.funet.fi : /pub/microprocs/6811

      Program: CUG292WK.ZIP
      Description:  C source for a cross assembler, includes 68hc11
      Author:  Alan R. Baldwin
      Location:  oak.oakland.edu : /pub/msdos/crossasm
                 pc.usl.edu : /pub/msdos/systools
                 many other locations (use Archie to find)

      Program: Frankenstein
      Description:  C source for a cross assembler, includes 68hc11
      Author:  Mark Zenier
      Location:  ftp.njit.edu : /pub/msdos/frankasm/FRANKASM.ZOO
                 lth.se : /pub/netnews/alt.sources/volume90/dec
                 ftp.uni-kl.de : /pub1/unix/languages/frankenstein.tar.Z
                 many other locations (use Archie to find)

      Program:  as11
      Description:  Portable cross assembler (source in C), other
                    processors available
      Author:  William C. Colley, III
      Location:  hpcsos.col.hp.com : /misc/ns32k/beowulf/a2-6811

      Program:  MOTOASM
      Description:  68HC11/68HC05 assembler for Acorn RiscPC or 300x/400x
                    Includes:  C-like preprocessor, editor throwback,
                    drag & drop multitasking assembly, command-line
                    assembly option
      Author:  based on the Motorola freeware assemblers
               ported and improved by Maurizio Ferrari
      Location:  mic2.hensa.ac.uk : micros/arch/riscos/b/b044

      Program:  DASM
      Description:  Dasm is a rich macro assembler for the 6502, 68705,
                    6803/HD6303 and the 68HC11.
      Author:  Written by Matt Dillon for the Amiga
               Ported to MSDOS and Linux by Jay Carlson
                   nop@io.com
                   nop@ccs.neu.edu
      Comments:  Author says that for now this software should be
                 considered beta.  Although he also says that he's been
                 using it to great success for 3 years, including using
                 it to rebuild two major commercial products without
                 error.
      Location:  sunsite.unc.edu : /pub/Linux/apps/dasm.tar.z 
                 Author has lost the DOS port, but claims it was fairly
                 trivial.  Mostly changing "r" to "rb" in fopen()s.


    Basic

      Program:  Basic11 and Bas11
      Description:  Basic interpreter for the 68hc11
      Location:  bode.ee.ualberta.ca : /pub/motorola/mcu11


    Forth

      Program:  forth11.arc
      Description:  FIG-Forth for the 68hc11
      Author:  based on the original 6800 FIG-Forth
               ported by Brian McClellan
      Location:  bode.ee.ualberta.ca : /pub/motorola/

      Program:  Tiny4th
      Description:  MS-DOS 6811 FORTH system
      Author:  Karl Lunt
      Location:  cherupakha.media.mit.edu : /pub/6811/tiny4th


    Miscellaneous
      Program:  c2mcx10.zip
      Description:  C to MCX11 interface library that allows C programs
                    compiled with Image Craft's v0.43 C compiler, ICC11,
                    to make MCX11 service calls.  Without this, MCX11
                    applications would have to be written in 68hc11
                    assembly language.  The SCI driver extension provides
                    buffered, interrupt driven, serial I/O on the
                    68hc11's SCI serial port.  It runs in conjunction
                    with MCX11.
      Author:  Brian Dombrowski
      Location:  hipp.etsu.edu
                 cher.media.mit.edu


    Development systems

      Program:  SIM68.EXE
      Description:  A simulator for MS-DOS machines for the 6811 family
                       of microcontrollers (MS-DOS)
                    Includes:  breakpoints, watchpoints, source tracing,
                       register viewing and modification, data viewing
                       and modification, supports all 6811 interrupts.
                    Registered copy costs $25US
      Author: Perry J Fisch, 71174.1756@compuserve.com
      Location:  A shareware version (v2.21j) is available on many BBSs
                 as well as on many of the FTP sites.  It is also
                 available on the Motorola BBSs in Austin and Toronto.

      Program:  68hc11 simulator
      Description:  An opcode simulator for the 68HC11 processor.
                    Ported to Unix and MS-DOS.
      Author:  Ted Dunning 
      Location:  crl.nmsu.edu : /pub/non-lexical/6811/sim6811.shar

      Program:  MCX11
      Description:  Real-time kernel for the 68hc11
      Author:  Tom Barrett (Embedded System Products)
      Location:  bode.ee.ualberta.ca : /pub/mcu11/mcx11v15.arc

      Product:  ADev11
      Description:  Development system for Amiga computers.
                    Includes:  C compiler, assembler, linker, downloader,
                    disassembler, simulator, and other tools
      Author: Stan Burton 
                          
                          
      Location:  ftp.wustl.edu:/pub/aminet/dev/cross/ADev11_2.1.lha
                 any ftp site on the Amiga archive net


4.2)  Free C compilers

    One of the big advantages of choosing the 68hc11 for your next
    project (especially you hobbyists on a low budget) is the
    availability of freeware and low cost C compilers.

      Program: smallc11
      Description:  Small-C ported to the 68hc11
                    (includes source code for Turbo C)
      Author:  James E. Hendrix
               Ported to 68hc11 by John Dumas
               Improved and Converted to Turbo C by Hellmuth Michaelis
      Comments:  may be buggy depending on the version
      Location:  bode.ee.ualberta.ca : /pub/motorola/68hc11/smallc11.zip

      Program: ImageCraft C Compiler (icc11)
      Description:  version 0.50 (prerelease, but complete) of a C
                    compiler for the 68hc11
      Author:  ImageCraft
      Comments:  this seems like a pretty nice package, a commercial
                 version (v 1.0) has just been released for $40
      Location:  bode.ee.ualberta.ca : /pub/motorola/icc11.zip
                 cherupakha.media.mit.edu : /pub/6811
                 ftp.netcom.com : /pub/imagecft (version 0.50)

      Program: interactive-c
      Description:  C compiler for use with the 6.270 robotics project
      Author:  Randy Sargent - rsargent@media.mit.edu
      Location:  cherupakha.media.mit.edu : /pub/6270/interactive-c

      Product:  ADev11
      Description:  Development system for Amiga computers.
                    Includes:  C compiler, assembler, linker, downloader,
                    disassembler, simulator, and other tools
      Author: Stan Burton 
                          
                          
      Location:  ftp.wustl.edu:/pub/aminet/dev/cross/ADev11_2.1.lha

      Program: gcc11
      Description:  beta version of the GNU C compiler for the 68hc11
      Author:  Free Software Foundation
               Ported to 68hc11 by Coactive Aesthetics, Inc.
      Location:  bode.ee.ualberta.ca : /pub/motorola/68hc11/gcc
                 cherupakha.media.mit.edu : /pub/miniboard/gcc

    A freeware version of the Hi-Tech C compiler is available for
    evaluation and tinkering.  This compiler produces crippled assembler
    output only and does not include libraries.  A method was developed
    and uploaded to make the compiler output usable.
      Program: Hi-Tech C
      Description:  demonstration version of the Hi-Tech C compiler
      Author:  Hi-Tech Software
               fixup stuff has no identification
      Location:  design.fen.qut.edu.au : /hitech - the compiler itself
                 cherupakha.media.mit.edu :
                    /pub/miniboard/incoming/CheapSkateC - fixup stuff


    I've been playing with the Dunfield Development System lately (on the
    8051), and it's really quite nice.  I've also heard many good things
    about it from others.  It includes a near ANSI-C compiler, run-time
    library with source, assembler, ROM debugger, integrated development
    environment, monitor with source, utilities, and other extras.
    Although not freeware, the low price ($100), the features, all of the
    extra goodies, and the good reviews make this a package worth looking
    at.  Also, if you're interested in working on more than one family of
    microcontroller, Dunfield supports a wide range.  This means only
    needing to learn one system, instead of many.

    Another decent C compiler comes from ImageCraft.  This package, which
    runs under DOS and OS/2, includes a near ANSI C compiler, assembler,
    linker, librarian, ANSI C functions and headers, and 90 page manual.
    Floating point support should be available in about a month (with no
    price increase).  The current release is version 1.02 of their
    compiler.  The price is just $45.  Initial feedback on this compiler
    seems promising.  The pre-release versions are already in use by many
    of you, and will still be available as freeware.


4.3)  Plans for 68hc11-based boards

      Board: F1 controller system
      Description:  68hc11f1-based microcontroller
      Designer:  Peter Dunster 
      Location:  cherupakha.media.mit.edu : /pub/6811/F1-board

      Board: MIT 6.270 robotics board
      Description:  68hc11-based robotics microcontroller
      Designer:  Fred Martin and Randy Sargent of MIT
      Location:  cherupakha.media.mit.edu : /pub/6270

      Board: Mini Board
      Description:  small inexpensive 68hc11-based microcontroller system
                    for robotic applications
      Designer:  Offshoot of the MIT 6.270 project
      Location:  cherupakha.media.mit.edu : /pub/miniboard
      Suppliers:  Gregory Ratcliff (gratclif@magnus.acs.ohio-state.edu)
                    1763 Hess Boulevard, Columbus, Ohio  43212
                    (614) 487-0694 (late evenings EST)
                  Mark Reeves (mdreeves@wart.nando.net)
                    1117 Braemar Court, Cary, NC  27511
                    FAX/voice (919)481-3170
                  MIT Epistemology and Learning
                    Epistemology and Learning Publications
                    MIT Media Laboratory
                    20 Ames Street E15-301
                    Cambridge MA  02139


4.4)  Commercially available products

    Many firms (large and small) offer a variety of 68hc11 programming
    languages, support packages, and development systems.  No endorsement
    is implied by inclusion in this list.  I have made an attempt to
    include as many companies as possible.  I apologize to those I left
    out;  It's only because I didn't know about you.  If you want to be
    included in this list, just drop me a line - please.  Any corrections
    appreciated.

    C compilers
        - Archimedes Software
        - Avocet Systems (repackaging of the Hi-Tech Software C compiler)
        - Dunfield Development Systems
             C cross compiler for MS-DOS, near ANSI C
             includes: assembler, library source code, ROM debugger,
                integrated development system, utilities, lots of
                other goodies
             extensive documentation
             low price:  $100
             good reputation and good support
        - Hi-Tech Software
             $500 USD, $350 for students
             high compliance to ANSI C
             available for MS-DOS and soon for SUN
        - IAR Systems
             IAR tool kit comes with a C-Cross compiler, assembler,
                Xlink linker, Xlib librarian, C-SPY simulator, editor,
                make utility and a real-time kernel
             formerly licensed for distribution in the US and Canada
                under the Archimedes brand name
        - ImageCraft
             C cross compiler for MS-DOS and OS/2, near ANSI C
             low price:  $39.95
             includes: assembler, linker, and librarian
             standard C header files and library functions
             90 page manual
             both 16 bit and 32 bit executables
             MIT Interactive C compatible multitasking kernel library
             Miniboard library
        - Intermetrics Microsystems Software, Inc.
             Whitesmith's compiler
             comes with assembler and C source level debugger
        - Introl Corporation

    Board level products
        - Ackerman Computer Sciences (ACS)
        - AM Research
             complete FORTH based system with PC based host system
        - Beall & Glenn Enterprises (68HC11 Quick Setup Board)
             about 4x5 inches with a 68hc11E1, 32K byte external EEPROM,
                BUFFALO monitor in the EEPROM, RS232 driver, and SIP
                headers for running the address and data lines to your
                custom proto board
             easy to set up for debug or downloading to the 32K EEPROM
             comes with two diskettes with tons of cross development
                software that runs on an IBM PC
             minimal documentation, no schematic, 512 byte RAM limit
             $45 for an assembled and tested board
        - Black Feather Electronics (U-HC11 Board)
             a very versatile board, was designed to be the starting
                block for many creative projects from hobbyist to
                commercial applications (the "U" stands for "Universal")
             the heart of the U-HC11 board is the 68HC11A1
             features: a socket for a 64 or 256 bit E/EPROM, RS-232
                converter chip, 555 timer for reset, a HCT574 output
                latch, HCT245 for extra I/O beyond that of the
                hc11, and a large (about 3 square inches) prototyping
                area is included
             the expansion board has sockets to hold a EPROM, RAM and
                EEPROM, it also has a custom chip that allows the bank
                switching of these chips, the expansion board also has a
                small prototyping area
             both boards are 2.5" X 4" and have mounting holes for
                4-40 screws at each corner
        - CGN
             a "module" which is the 68HC11 CPU, address latch, and
                 RS-232 interface on a board that has wirewrap pins
                 coming out of the bottom of it (you take the board,
                 plug it through a piece of perf board, and wirewrap
                 memory, I/O, etc)
        - Coactive Aesthetics, Inc.
             Powerful networked microcontroller based on the 68hc11f1
             Includes port of GNU C, monitor/debugger, libraries, etc
        - Elektronik Laden Mikrocomputer GmbH
             MOPS 11 Development kit which includes a board with
             32k EPROM/RAM, 32k RAM, 68hc24, RTC, MAX232, serial LCD,
             expansion connector, assembler, Basic, Pascal and a
             monitor with a tracing option.  For a PC or Atari ST host.
        - J & M Microtek, Inc.
             about 4.5x5.25 inche, 68hc11a1 based board with 32K ROM
                and 32K RAM, SPI, 8255A, 2 26 pin headers for expansion
             Software package available with assembler, monitor,
                disassembler
        - LDG Electronics
        - Midwest Micro-Tek
        - Mosaic Industries
             QED Board - surface mount board based on the MC68hc11 F1 and
                F1CFN (16 MHz)
             Features a built-in Forth true multi-tasking PROM, 8 Mbyte
                address space, 60 I/O lines, interface for LCD and
                keypad, built in math functions for FFT, matrix
                manipulation, and floating point.  2 RS-232 UARTS, one
                can perform RS-485.  Built-in debugger, and many other
                features built in.
             Supplements the 68hc11 analog with an 8 channel 12 bit A/D
                and an 8 channel 8 bit DAC all on board (3.2" X 4")
        - Motorola
             M68HC11EVBU - Basic Evaluation board comprising HC711E9
                programmed with a monitor program, running in single chip
                mode.  Can run programs of up to 1/2 K in internal RAM.
                Serial interface to PC. Patch area on PCB for adding
                other hardware.  Comes with AS11 freeware assembler.
                HC11E Series
             M68HC11EVB - Provides a single chip emulation capability.
                Monitor program runs in top 8K of memory map, 8 or 16K
                RAM is available for user program / data. Comes with AS11
                freeware assembler. HC11A or E series devices
             M68HC11EVM - Full incircuit emulation for both single chip
                and expanded modes. Supports HC11 A, E and D series
                devices.  Comes with P&E's front end software which
                provides symbolic debug in assembler (EVM11) and
                integrated assembler / editor ( IASM11)  Note :-
                assembler is not linkable
             M68HC11EVS - System comprises of a platform board and a
                target board. Target boards are available for C0, F1, G5,
                K4, L6 devices.  Functionally the same as the EVM and
                comes with the same software tools.
        - New Micros, Inc.
             F68hc11 based microcontroller board with built-in Max-Forth,
                1 async serial port and 1 sync serial port, 8 channel 8
                bit A/D, 512 EEPROM, 8K RAM
        - Technological Arts
             plugs vertically into solderless breadboard
        - Wheatstone MicroSystems, Inc.
        - Zorin (BOTBoards & Components)
             Full kit comes complete with PC software, BUFFALO monitor
             and full documentation, RS-232 interface, and servo motor.
             All I/O pins come out on pin headers. Includes 1"x2" proto
             area.  Other kits available.

    Assemblers
        - 2500 A.D.
        - Archimedes Software
        - Dunfield Development Systems
        - Micro Dialects, Inc.
             Integrated development environment including assembler,
             editor, and terminal emulator for the Macintosh (supports
             many, many different chips)
        - Nohau Corporation
        - PseudoCorp
        - The Engineers Collaborative, Inc. (TECI)

    Forth
        - Forth, Inc.

    Simulators
        - 2500 A.D.
        - Avocet Systems
        - J & M Microtek
             Univeral simulator/debugger simulates a wide range of
                microprocessors on IBM PC compatibles, with support for
                on-board debugger
        - PseudoCorp

    Emulators
        - American Automation
        - MetaLink
        - MicroTek International, Inc.
        - Motorola
             MMDS11 - Motorola's new modular development system.  Full
                incircuit emulation, historical trace buffer, hardware
                triggers.  16 general purpose logic clips.  A full system
                comprises MMDS11 station module, target module (same
                boards as used by EVS) and a target cable.
        - Nohau Corporation
        - Orion Instruments
        - The Engineers Collaborative, Inc. (TECI)

    Real-time
        - Accelerated Technology, Inc.
             small, scalable, preemptive real-time kernel;  networking
             and file system add-ons available;  modular, using a
             nanokernel
        - Byte-BOS Integrated Systems
             small, prioritized, preemptive real-time kernel
        - Embedded System Products (formerly A.T. Barrett and Associates)
             ROMable embedded-system kernel: source provided.  Provides
             programming interface identical on all target platforms.
             Basic, advanced, and extended library packages available.
        - ImageCraft
             REXIS (Real-time EXecutive for Intelligent Systems) is a
             multitasking executive with support for subsumption style
             programming.  It is sold as a library (binaries only) for
             ICC11 (their C compiler) for $40.  It is being used by the
             Canadian Forestry to program their forest tending robots.
        - Intelligent Systems International Inc.
             prioritized, preemptive, real-time kernel;  highly
             distributed design;  offered by several DSP board vendors
             for their products
        - JMI Software Systems, Inc.
             small, prioritized, preemptive real-time kernel
        - U S Software
             SuperTask! -  RTOS

    Miscellaneous
        - Quantasm Corp.
             ASMFLOW - produces flowchart and tree diagrams from source
                code, register usage analysis, Xref, timing info
        - U S Software
             USNET   - TCP/IP Networking Suite
             USFiles - File System
             GOFAST  - Floating Point Library


    2500 A.D.       109 Brookdale Ave., Box 480, Buena Vista, CO  81211
                    (719)395-8683

    Accelerated Technology, Inc.
                    P.O. Box 850245,  Mobile, Alabama  36685
                    (205)661-5770   (800)468-6853   Fax: (205)661-5788

    Ackerman Computer Sciences (ACS)
                    4276 Lago Way, Sarasota, FL  34241
                    (813)377-5775   Fax: (813)378-4226

    AM Research     4600 Hidden Oaks Lane, Loomis, CA  95650
                    (800)949-8051   (916)652-7472   Fax: (916)6642
                    BBS: (916)652-7117
                    Email: sofia@netcom.com

    American Automation
                    2651 Dow Avenue, Tustin, CA  92680
                    (714)731-1661

    Archimedes Software
                    2159 Union St., San Francisco, CA  94123
                    (415)567-4010

    Avocet Systems  120 Union St., Rockport, ME  04856
                    (800)448-8500   (207)236-9055

    Beall and Glenn Enterprises
                    Route 1, Box 243, Lacey's Spring, AL  35754
                    (800)874-4797

    Black Feather Electronics
                    645 Temple 7B, Long Beach, California  90814
                    Info & Orders: (800) 526-3717
                    Tech Support: (310) 434-5641
                    Fax: (310)434-9142
                    Email: BFE 

    Byte-BOS Integrated Systems
                    P.O. Box 3067, Del Mar, CA 92014
                    (800)788-7288   (619)755-8836

    CGN (see-gen)
                    Sunnyvale,  CA
                    (408)720-1814

    Coactive Aesthetics, Inc.
                    P.O.Box 425967, San Francisco, CA  94142
                    (415)626-5152   Fax: (415)626-6320
                    Email: coactive@coactive.com

    Dunfield Development Systems
    North America   Head Office
                    P.O. Box 31044   Nepean, Ontario Canada   K2B 8S8
                    613-256-5820       Fax: 613-256-5821
                    BBS: 613-256-6289
                    Email:  ddunfield@bix.com

    EE Systems      50935 Hill Dr., Elkhart, IN  46514
                    (219)296-1754   Fax: (219)522-4271

    Elektronik Laden Mikrocomputer GmbH
                    W. Mellies Str. 88, D-32758 Detmold
                    +49-05323/8171   Fax: 05232/86197
                    BBS: 05232/85112, 14.4k 8n1

    Embedded System Products (formerly A.T. Barrett and Associates)
                    11501 Chimney Rock, Houston, TX  77035-2900
                    (800)525-4302   (713)728-9688   Fax: (713)728-1049

    Enertec, Inc.   (215)362-0966

    The Engineers Collaborative, Inc. (TECI)
                    RR #3, Box 8C, Barton, VT  05822
                    (800)336-8321   (802)525-3458   Fax: (802)525-3451

    Forth, Inc.     (800)55FORTH

    Hi-Tech Software
                    PO Box 103, Alderly QLD 4051, Australia
                    (+61-7) 300 5011   Fax: (+61-7) 300 5246

    IAR Systems Software
    North America   One Maritime Plaza, Suite 1770
                    San Fransisco, CA 94111  USA
                    (415)765-5500       Fax: (415)765-5503
    Sweden          IAR Systems AB
                    Box 23051, S-750 23 Uppsala, Sweden
                    +46 18 16 7800      Fax: +46 18 16 7838
    Germany         IAR Systems GmbH
                    Brucknerstrasse 27, D-81677 Munchen, Germany
                    +49 89 470 6022     Fax: +49 89 470 9565
    United Kingdom  IAR Systems Ltd
                    9 Spice Court, Plantation Wharf, York Rd
                    London SWII 3UE, England
                    +44 71 924 3334     Fax: +44 71 924 5341

    ImageCraft      P.O.Box 64226, Sunnyvale, CA 94088-4226
                    (408) 749-0702
                    Email: imagecft@netcom.com

    Intelligent Systems International Inc.
                    Lindestraat 9, B-3210 Linden, Begium
                    +32 16 62 15 85   Fax: +32 16 62 15 84

    Intermetrics Microsystems Software, Inc.
                    733 Concord Ave., Cambridge, MA  02138
                    (617)661-0072   Fax: (617)868-2843

    Introl Corporation
                    (414)327-7171   Fax:  (414)327-7734
                    Email: info@introl.com

    J & M Microtek, Inc.
                    83 Seaman Rd., W. Orange, NJ  07052
                    (201)325-1892   Fax: (201)736-4567

    JMI Software Systems, Inc.
                    P.O. Box 481, 904 Sheble Lane, Spring House, PA 19477
                    (215)628-0840   Fax: (215)628-0353

    LDG Electronics
                    1445 Parran Road, St. Leonard, MD  20658
                    (410)586-2177

    Lear Com Company
                    2440 Kipling St. Suite 206, Lakewood, CO  80215
                    (303)232-2226   Fax: (303)232-8721

    Logisoft        (408)773-8465

    MetaLink Corporation
    North America   325 E. Elliot Road
                    Chandler, AZ  85255
                    (800)638-2423  or  (602)926-0797
                    Fax:  (602)926-1198
    Europe          MetaLink Europe GmbH
                    Westring 2, 8011<85614>
                    Kirchseeon-Eglharting
                    (08091)2046         Fax:  (08091)2386

    Micro Dialects, Inc.
                    P.O. Box 190, Loveland, OH 45140
                    (513)271-9100    FAX: (513)271-4922
                    MCI Mail: 'MICRODIALECTS'
                    AppleLink: 'MDI'

    Microtek International, Inc.
    North America   3300 N.W. 211th Terrace
                    Hillsboro, OR  97124
                    (503)645-7333   Fax:  (503)629-8460
    Europe          Microtek Electronics Europe GmbH
                    Starnberger Strasse 22, 82131 Gauting bei Munchen
                    +49(89)893139-30       Fax:  +49(89)893139-50

    Midwest Micro-Tek
                    2308 East Sixth St., Brooking, SD  57006
                    (605)697-8521   Fax: (605)697-8109

    Mosaic Industries
                    5437 Central Avenue Suite 1, Newark, California
                    (510)790-8222

    Motorola Literature Distribution
    North America   P.O. Box 20912, Phoenix, Arizona  85036
                    (800)441-2447
    Europe          Motorola Ltd.
                    European Literature Center
                    88 Tanners Drive, Blakelands,  Milton Keynes
                    MK14 5BP,  England
    Hong Kong       Motorola Semiconductors H.K. Ltd.
                    Silicon Harbour Center
                    No. 2 Dai King Street, Tai Po Industrial Estate
                    Tai Po, N.T., Hong Kong
    Nippon Motorola Ltd.
                    4-32-1 Nishi-Gotanda, Shinagawa-ku, Tokyo 141, Japan
    MFAX (Design-NET MFAX document faxing system)
                    RMFAX0@email.sps.mot.com
                    Questions about service:  (602)244-6591

    MPE: MicroProcessor Engineering Ltd.
                    133 Hill Lane, Shirley, Southampton SO1 5AF U.K.
                    (+44) 703-631441 fax: (+44) 703-339691
                    Email: 
                    U.S. dealer: AMICS Enterprises
                       (716)461-9187
                    Canadian dealer: Universal Cross-Assemblers
                       (506)847-0681.

    New Micros, Inc.
                    1601 Chalk Hill Road, Dallas, Texas  75212
                    (212)339-2204

    Nohau Corporation
                    51 E. Campbell Ave., Campbell, CA  95008
                    (408)866-1820
                    (408)378-2912 (24 hr. information center)
                    Fax: (408)378-7869

    Orion Instruments
                    180 Independence Drive, Menlo Park, CA  94025
                    (800)729-7700   Fax: (415)327-9881

    P&E Microcomputer Systems, Inc.
                    (617)944-7585

    PseudoCorp      716 Thimble Shoals Blvd., Newport News, VA  23606
                    (804)873-1947   Fax: (804)873-2154
                    BBS: (804)873-4838

    Quantasm Corporation
                    19672 Stevens Creek Blvd.
                    Cupertino, CA  95014
                    (800)765-8086   (408)244-6826   Fax: (408)244-7268

    Technological Arts
    USA             309 Aragona Bv., #102-418, Virginia Beach, VA  23462
    Canada          1644 Bayview Ave., #1704, Toronto, Canada  M4G 3C2
                    (416)482-0677

    US Software     14215 N.W. Science Park Drive, Portland, OR  97229
                    (800)356-7097   (503)641-8446   Fax: (503)644-2413
                    Email: ussw@netcom.com
                    Product information available by ftp -
                       ftp.netcom.com : pub/ussw

    Wheatstone MicroSystems, Inc.
                    105-14 Elm St., Suite 418, Old Saybrook, CT  06475
                    (203)669-0401

    Zorin           PO Box 30547, Seattle, WA 98103-0547
                    (206) 282-5179   Email: zchris@eskimo.com


5)  68hc11 DOCUMENTATION


5.1) Periodicals

    Various magazines and journals (journals seems to be THE popular name
    for magazines these days) provide articles from time to time on the
    68hc11 line of microcontrollers:

    The Computer Applications Journal (Circuit Cellar Ink)
        - programming and construction articles
        - POB 7694, Riverton, NJ  08077-8784
        - Fax: (203)872-2204
        - Voice orders: (609) 786-0409
        - On-line orders (BBS): (203) 871-1988
        - Email orders: ken.davidson@circellar.com
        - $21.95, $31.95 surface Canada and Mexico,
          $49.95 air all other countries

    Computer Design
        - industry announcements and trends
        - One Technology Park Drive, P.O. Box 990, Westford, MA  01886
        - (508)692-0700

    The Computer Journal
        - programming and construction articles
        - PO Box 535, Lincoln  96648

    Dr. Dobbs Journal
        - programming articles, concepts, and designs
        - 411 Borel Ave., San Mateo, CA  94402
        - (415)358-9500

    Electronic Engineering Times
        - industry announcements and trends
        - FREE to qualified engineers and managers involved in
          engineering decisions
        - Fulfillment Dept., PO Box 9055, Jericho, NY  11753-8955
        - FAX: (516)733-6960

    Electronics Now
        - construction articles
        - Box 55115, Boulder, CO  80321-5115
        - $19.97 one year

    Elektor Electronics
        - programming and construction articles
        - World Wide Subscription Service Ltd
          Unit 4, Gibbs Reed Farm, Pashley Road
          Ticehurst TN5 7HE, England
        - 27 UK pounds
     or
        - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
        - Tel. (603) 924-6371, 924-6526
        - Fax: (603) 924-9467
        - $57 USA and Canada per year

    Embedded Systems Programming
        - programming and systems design articles
        - Miller Freeman Publications
        - 500 Howard St., San Francisco, CA  94105
        - (415) 397-1881

    Inquisitor Magazine
        - If you're the type that watched Gilligan's Island for its
          socio-political insights, then you'll love a new 'zine that
          just crossed my desk - Inquisitor Magazine.  It's general
          philosophy seems to be ... well, it seems to be ... uh, yeah!
          Technical in nature, bizarre, tongue in cheek, eclectic,
          electric, did I mention bizarre(?), and lots of fun.  Worth
          looking at if you like the out of the ordinary.  The moving
          force behind this magazine is Daniel Drennan, who seems to have
          suffered from an overdose of radiation from his computer
          monitor ;-).
        - Planetarium Station, P.O.Box 132
          New York, NY  10024-0132
        - (212)595-8370
        - Email: inquisitor@echonyc.com
        - $16 per year (4 issues)

    Microcomputer Journal (formerly Computer Craft)
        - programming and construction articles
        - 76 N. Broadway, Hicksville, NY  11801
        - $29.70 one year

    Midnight Engineering
        - 1700 Washington Ave., Rocky Road, CO  81067
        - (719)254-4553

    MW Media - Product Directories
        - Motorola Microcontroller Tools Directory
          ('94 edition out in 3 weeks)
        - Motorola 68K Source ('94 edition available now)
        - Intel Development Tools Handbook ('95 edition just beginning)
          (survey of commercial development tools for the 8051, 8096,
          and 80186 lines of Intel microprocessors)
        - These documents could very well be a "must" if you're into
          serious development using any of these chips.  If you are
          "just" a hobbyist, see how the "other half" lives.
        - other guides on Intel development tools, Embedded Intel 386,
          Intel 486/Pentium, 8051 products, Hitachi microcontroller
          development tools, AMD FusionE86, AMD 29K; low power products,
          DSP, multimedia CD
        - FREE to qualified developers
        - MW Media
        - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
        - (408)288-4721   (408)286-4200   FAX: (408)288-4728

    Nuts & Volts Magazine
        - A National Publication for the Buying and Selling of
          Electronic Equipment
        - 430 Princeland Court, Corona, CA  91719
        - Mailed third class, USA only:  $17.00 one year
                                         $31.00 two years
        - Mailed first class, one year only:  $34.00-USA
                                              $35.00-Canada/Mexico
        - Foreign/Air Mail - $70.00;  Foreign/Surface - $39.00
        - (800)783-4624
        - Email:  74262.3664@Compuserve.com


5.2)  Books

    If you know of any books that cover the 68hc11, or if you can provide
    any details on the books listed here, please send me a note.  Thanks.


    The 68hc11 Microcontroller
        - Joseph D. Greenfield (at R.I.T.)
        - Saunders College Publishing, (Harcourt Brace Jovanovich)
        - 1992
        - ISBN 0-03-051588-2
        - A number of the sections make use of the Buffalo monitor.
          This could be useful if you are using the EVB.

    Data Acquisition and Process Control with the M68HC11 Microcontroller
        - Frederick Driscoll, Robert Coughlin, Robert Villanucci of
          Wentworth Institute of Technology.
        - Macmillan Publishing Company
        - 1994
        - ISBN 0-02-33055-X
        - Several Chapters on the 68HC11, instructions, and EVB;
          chapters on interfacing Analog and Digital signals to the
          68HC11;  example applications of interfaces to temperature,
          load cell, pressure and thermocouple sensors.
        - a good companion to Motorola's "pink" books

    Design with Microcontrollers
        - John B. Peatman (professor at Georgia Tech)
        - ISBN 0-07-049238-7
        - This book is on a more advanced level.  Uses both the 68hc11
          and Intel 8096 as example systems.
        - This textbook is used to teach the author's very popular EE
          class "Design with Microcontrollers"
        - Professor Peatman has been elected Teacher of the Year (by the
          students) and advises the EE seminar.

    Embedded Systems Programming in C and Assembler
        - John Forrest Brown
        - Van Nostrand Reinhold, 1994
        - 304 pages, $49.95
        - ISBN 0-442-01817-7
        - covers Motorola and Intel processors
        - includes diskette with code from the book
        - book review in Dr. Dobb's Journal, November 1994, page 121

    M68hc11 Reference Manual
        - Motorola - literature reference M68HC11RM/AD
        - This document is the "bible" of the 6811 and is a must-have
          for any serious 6811 programmer.  
        - contact Motorola at 800-521-6274 (in the U.S.) to get a
          free copy of this manual

    MC68hc811E2 Programming Reference Guide
        - Motorola - literature reference M68HC811E2RG
        - a pocket-sized guide to the version of the 6811 used on the
          Mini Board, "ownership of this handy reference is proof of
          being a true 6811 nerd" - by Fred Martin

    Microcomputer Engineering
        - Gene H. Miller
        - Prentice Hall, Englewood Cliffs, NJ  07632
        - 1993
        - ISBN 0-13-584475-4
        - Explains the basics.  Many clear and concise assembly language
          example programs.
        - Written to be used with the Motorola Trainer (EVB).

    Microcontroller Technology, The 68hc11
        - Peter Spasov
        - Prentice Hall
        - ISBN 0-13-583568-2

    Microcontrollers: Architecture, Implementation, & Programming
        - Kenneth Hintz and Daniel Tabak
        - McGraw-Hill Inc.  1992
        - ISBN 0-07-028977-8

    Mobile Robots: Inspiration to Implementation
        - Joseph L. Jones and Anita M. Flynn
        - Very hands-on book. Lots of pictures about stuff the author
          actually built (rather than diagrams of stuff an author just
          theorized about).
        - Focuses on every little detail involved in the design and
          construction of the "Rug Warrior", based on the MC68HC11A1FN,
          using the Interactive C compiler developed by Randy Sargent
          and Fred Martin.

    Programming Microcontrollers in C
        - Ted Van Sickle
        - HighText Publications, 1994
        - 394 pages, $29.95
        - ISBN 1-878707-14-0
        - thorough tutorial on C programming, covers aspects of C
          programming specific to embedded systems
        - covers the Motorola line of microcontrollers (small to large)
        - book review in Dr. Dobb's Journal, November 1994, page 121

    The Real-Time Kernel
        - Jean Labrosse
        - R&D Publications, Inc.
          Suite 200 1601 W 23rd St., Lawrence, KS  66046
        - (913)841-1631   Fax: (913)841-2624
        - Based on the article "A Portable Real Time Kernel in C"
          in Embedded Systems Programming (Part 1: vol 5 no 5
          May 1992, Part 2: vol 5 no 6 June 1992)
        - original written for Intel's  '186 cpu but ported to HC11
          source code for UCOS11

    Single- and Multiple-Chip Microcomputer Interfacing
        - G.J. Lipovski
        - Copyright 1988
        - 478 pages
        - ISBN 0-13-810557-X (Prentice-Hall Edition)
          ISBN 0-13-810573-1 (Motorola Edition)
        - Based around the 68HC11 it covers both hardware and
          software at undergraduate level, but the emphasis is on
          interfacing.
        - Chapter titles:
               1  Microcomputer Architecture
               2  Programming Microprocessors
               3  Bus Hardware and Signals
               4  Parallel and Serial I/O
               5  Interrupts and Alternatives
               6  Analog Interfacing
               7  Counters and Timers
               8  Communications Systems
               9  Storage and Display Systems

    Single- and Multiple- Chip Microcomputer Interfacing (Lab Manual)
        - Peter Song and G. Jack Lipovski
        - Prentice-Hall, 1988
        - ISBN 0-13-811605-9
        - Support for the above book.  Examples based around the Motorola
          EVB and the BUFFALO monitor or the EVBU (or 3-chip micro) and
          PC-Bug11.

__________________________________________________________

I disclaim everything.  The contents of this article might be totally
inaccurate, inappropriate, misguided, or otherwise perverse - except for
my name (hopefully I got that right).

Copyright (c) 1995 by Russell Hersch, all rights reserved.
This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  as long as it is posted in its entirety and includes this copyright
  statement.
This FAQ may not be distributed for financial gain.
This FAQ may not be included in commercial collections or compilations
   without express permission from the author.

-----------------------------------
Russ Hersch - sibit@datasrv.co.il




********************************** 68hc11 FAQ ***************************


Archive-name: microcontroller-faq/8051
Posting-Frequency: monthly
Last-modified: Mar. 30, 1995

This article is a collection of information sources on the Intel 8051
family of microcontrollers (and variants).

The following topics are addressed:

      0)  Rantings and ravings (to make the FAQ zero-based)

      1)  ABOUT THIS FAQ
    1.1)  Who put this FAQ together?
    1.2)  How can I contribute to this FAQ?
    1.3)  What newsgroups will this FAQ be posted to?
    1.4)  May I distribute this FAQ or post it somewhere else?
    1.5)  How about FAQs on other microcontrollers?

      2)  ABOUT THE 8051
    2.1)  The 8051 microcontroller
    2.2)  8051 Flavors
    2.3)  8051 representatives and approximate prices
    2.4)  Advantages realized in implementing control applications on
          this family of microcontrollers

      3)  SOURCES OF INFORMATION ON THE 8051
    3.1)  FTP sites
    3.2)  BBSs
    3.3)  Help available!

      4)  8051 PRODUCTS
    4.1)  Free languages and development tools
    4.2)  Free C compilers
    4.3)  Commercially available products

      5)  8051 DOCUMENTATION
    5.1)  Periodicals
    5.2)  Books
    5.3)  Miscellaneous documentation


0)  Rantings and ravings

    Disclaimer:  Just so it is understood, the "rantings and ravings" are
    my rantings and raving.  My readers are refined and sophisticated and
    would never rant or rave.  I, on the other hand, sit in front of the
    TV in torn underwear and drink beer out of the bottle.


    This is the one year anniversary edition of this FAQ.  I just happen
    to run across my original file in a forgotten corner of my hard disk
    and I noticed it had a March date on it.  Hard to believe, but it was
    only 5K!

    My sincerest apologies to anyone that wrote to me, and didn't get a
    reply.  I was inundated this time, and I'm afraid that I wasn't too
    careful in keeping track of my email.  Also, some of those I did
    respond to didn't hear from me because their email addresses were
    invalid (or, at least my system thinks so).  So, if you feel
    neglected, or you submitted some information that didn't make it into
    this month's update, please drop me a note and let me know.  A
    thousand pardons!

    Well, the verdict is in.  No, I'm not talking about OJ - I'm talking
    about one-part FAQs versus multi-part.  The response has been nearly
    unanimous to keep the FAQs in one piece.  So, one piece it is.

    Thanks to Hans Schou  who is adding his name to
    the "help available" list.  Although not an expert, he has experience
    with the Standard Microsystems Corp COM20051 integrated
    microcontroller and network interface.


    Philips Semiconductor / CEIBO DS750 Devolopment Tools

       A good way to learn about 8051 programming, this kit is based on
       the 8xc7xx series which are very low-end, inexpensive micros.
       They are offered with less memory (1k, 2k, etc.) and fewer
       features.  In fact the 83c750 sells for only $1 in very high OEM
       volumes.

       The kit includes a DS750 board, source level debugger, and
       utilities.  Both DOS and Windows versions of the software are
       included on the diskette, and installation is a snap.  I don't
       understand why, but no assembler is included!  A number of
       assemblers and C compilers are compatible with (or adaptable to)
       the source level debugger, including:  Keil/Franklin, IAR, and
       Micro Computer Control.  If you're on a budget, the Micro Computer
       Control package is only $100 - the prices of the other packages
       are a bit more creative :-).  Philips also has the MetaLink
       assembler available for free on their BBS.

       Besides being a very nice platform for testing your code
       real-time, the enclosed manual makes this package really
       worthwhile.  In addition to the obligatory startup and operation
       information, the book includes schematics and theory of the
       board's operation.  Five experiments guide the user on
       understanding the workings and capabilities of the 8051 family.

       Priced at only $100, a truckload of these have already been sold,
       and for good reason.  If you're interested in learning how to use
       an 8051, you can't go wrong by buying this kit.


    Thanks to Carl Giles for the following information.  He fills us in
    on a chip that can make almost any 8051 variant do what the Dallas
    DS5000 does:

       Xicor has some interesting chips that wire up directly to an 8051
       (they have similar chips for the 68HC11 flavor.)  They need no
       glue logic, and they contain:
               8K x 8 EEPROM in individual 4K segments
               2 8-BIT I/O ports
               16 8-BIT RAM registers
               Integrated Interrupt Controller Module
               Internal programmable address decoding

       Code loaded at the factory that will allow users to download
       programs into EEPROM (one 4K segment can be written to while the
       processor executes out of the other 4K segment), and test the
       program, rewrite, and retest until development is finished.

                                    2
       These are referred to as SLIC E  Microperipherals.  If you program
       the SLIC for a different address, multiple SLICs may be gluelessly
       wired to a single 8031, 32, 51, 52.  One of the ports can be
       programmed to latch out the lower address bits so that standard
       byte-wide peripherals may be used without further decoding!  These
       are neat chips!  Xicor sells a Development Support package that
       includes a DATA BOOK, a SAMPLE of
       the CHIP (PDIP or PLCC, your choice) and PC compatible software
       for downloading and testing your programs.  The development
       package is $15 from Xicor in Milpitas CA.  The development system
       is a lot more, $180 for the populated board.

       I got in touch with some distributors, to get small QTY. pricing,
       and there wasn't any.  If you ordered at least 40 parts, they
       could get them for around $12.50.  I think I would just get extra
       kits ($15 @ QTY. 1) and bypass the distributors at that price.

       The SLIC with the ports comes in a 48 pin PDIP or a 44 pin PLCC.
       Xicor also offers a memory only solution (which should be cheaper)
       in a 24 pin PDIP, but the SLIC EEPROM Development Support package
       doesn't come with the portless 24 pin chip.


    Take care,

              Uncle Russ


1)  ABOUT THIS FAQ

1.1)  Who put this FAQ together?

    I was prompted to put this FAQ together in response to my own
    frustration in searching for information, and to the constant
    occurrence of requests for information on this subject in various
    newsgroups.  Hopefully others won't need to go through what I did.

    Normally, I spend all day programming in assembler on an IBM PC.
    With my hobbyist hat on I decided to try my hand at a little
    microcontroller project design.  When it came time to start, I had no
    idea what to do.  I had nothing to start with - no assembler, no
    programming language, no simulator.  I cobbled together a simulator
    to help me learn about the workings of the chip.  It's not being made
    available to the public since I'm afraid the simulator isn't very
    good.  It was for my own use, so the user interface (there is none)
    really sucks eggs.

    I decided to search the net for information on the 8051.  This list
    was compiled the hard way, logging onto every anonymous ftp site I
    could find and looking around.  I also used Archie, other FAQs and
    lists, and every reference to the 8051 that appeared in the various
    news groups.  It took a long time till stuff finally started popping
    up.  I saved all of my notes and the result was the first version of
    this FAQ.  Responses have been poured in, and the result is a much
    more complete and thorough FAQ.


1.2)  How can I contribute to this list?

    I please ask that if you have any suggestions or additions, or you
    would like to correct any of the information contained herein, please
    send me a note.
         My Email address is:  sibit@datasrv.co.il
         My Snail-Mail address is:
               Russ Hersch
               HaVradim 11
               Ginot Shomron
               ISRAEL

    The list of individuals who have sent suggestions and encouragement
    has finally overflowed.  I hope it suffices to say "Thank you to all
    who have contributed to this FAQ - we all appreciate it."

    Special thanks to:
            Carl Wall
            Dave Dunfield (Dunfield Development Systems)
            Olaf Pfeiffer (Hitex)
            Dave Heller
            Kevin Gardner (Philips Semiconductor)
            Victor Weiman (CEIBO)
            Clyde Smith-Stubbs (Hi-Tech Software)
            Bo Frederiksen
            Hans Schou
            Ahmad Ibrahim
            Carl Giles
            Ken Tindall (IAR)


    I hope that those of you who know of interesting items for the 8051
    will share with everyone by contributing to this list.  A good amount
    of stuff is turning up thanks to everyone's help.

    If you are a manufacturer and have an anonymous ftp site or BBS
    available that supports the 8051, please let me know by EMail so that
    I can add it to this FAQ.  Also, please feel free to update me on new
    products.


1.3)  What newsgroups will this FAQ be posted to?

    This FAQ will be posted to the following newsgroups:
          comp.sys.intel
          comp.realtime
          comp.robotics
          comp.lang.forth
          sci.electronics
    These newsgroups often contain discussions, announcements, or
    information on the 8051.  Check them out from time to time.

    The schedule for posting will be once a month.  I can't promise that
    it will be on time, but I hope to post it on the 26th of each month.

    You might also want to check out the following newsgroups, since they
    occasionally have items of interest for you 8051 fans.
          comp.lang.misc
          alt.comp.hardware.homebuilt

    A bit farther afield, but still of possible interest:
          comp.ai.fuzzy
          comp.dsp
          sci.engr.control
          sci.engr.semiconductors


1.4)  May I post this FAQ to my local BBS?

    I am putting no restrictions on the use of this FAQ except - It must
    be distributed in its entirety with the copyright notice, and no
    financial gain may be realized from it.  After all, I have spent, and
    continue to spend, a lot of time on this.  The only thing that I
    intend to gain from it is more information on the 8051, and getting
    to know my fellow 8051 groupies better.

    For this reason I have appended a copyright statement to the end of
    this FAQ.  I feel pretty silly doing this, but I just want to protect
    myself.  The copyright does not limit the use of this list for
    noncommercial purposes.  I hereby give my permission to one and all
    to pass this list around and post it wherever you want - as long as
    it is not for financial gain.

        Thank you.


1.5)  How about FAQs on other microcontrollers?

    If anyone wishes to start a FAQ on another microcontroller, please
    feel free to copy the format of this FAQ - I don't intend on
    copyrighting the look and feel ;-).  With a common format, we will
    all benefit when trying to find information on a particular
    microcontroller.


    Other Microcontroller FAQs

      Subject:  PIC microcontrollers
      Newsgroups:  comp.realtime
                   comp.robotics
                   sci.electronics
      Maintainer:  Tom Kellett
                   Tom@takdsign.demon.co.uk

      Subject:  68hc11 microcontrollers
      Newsgroups:  comp.realtime
                   comp.robotics
                   sci.electronics
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/68hc11
                /pub/usenet/sci.answers/microcontroller-faq/68hc11
                /pub/usenet/news.answers/microcontroller-faq/68hc11
      Maintainer:  Russ Hersch
                   Email:  sibit@datasrv.co.il

      Subject:  Microcontroller primer and FAQ
      Newsgroups:  comp.sys.intel
                   comp.realtime
                   comp.robotics
                   sci.electronics
                   alt.comp.hardware.homebuilt
      Archive:  rtfm.mit.edu :  
                /pub/usenet/comp.answers/microcontroller-faq/primer
                /pub/usenet/sci.answers/microcontroller-faq/primer
                /pub/usenet/news.answers/microcontroller-faq/primer
      Maintainer:  Russ Hersch
                   Email:  sibit@datasrv.co.il


    Additional FAQs of interest

      Subject:  Robotics
      Newsgroups:  comp.robotics
      Maintainer:  Kevin Dowling
                   (412)268-8830
                   Email:  nivek@ri.cmu.edu
                   Smail:  Carnegie Mellon University
                           The Robotics Institute
                           Pittsburgh, PA 15213

      Subject:  Electronics
      Newsgroups:  sci.electronics
      Comments:  There are a number of FAQs available in this newsgroup
                 on various subjects.  Among some of the subjects covered
                 are:  LCDs, stepper motors, etc.

      FAQ subject:  Real-time
      Newsgroups:  comp.realtime, comp.answers, news.answers
      Archive:  rtfm.mit.edu : pub/usenet/comp.realtime
      Maintainer:  Mark Linimon
                       Lonesome Dove Computing Services
                       Roanoke, Virginia
                   Email:  linimon@nominil.lonesome.com.

      Subject:  Motorola 68K microprocessor line
      Newsgroups:  comp.sys.m68k
      Archive:  bode.ee.ualberta.ca : pub/motorola/general
                ftp.luth.se : /pub/misc/motorola/faq
                file name of archive is m68kfaq?.zip (? is version)
      Maintainer:  Robert Boys - Ontario, Canada
                   Email: r.boys@genie.geis.com
                                 or
                          fboys@uoguelph.ca


    For more detailed information on various 8051 microcontroller parts,
    see the article posted to comp.robotics and sci.electronics which
    provides a tabular cross reference of features and pin counts on a
    wide range of microcontrollers (including the 8051 family).  This
    list was compiled and is being maintained by Roger Nelson
    .

    For more information on various microcontrollers and their features,
    refer to the Microcontroller primer and FAQ listed above.


2)  ABOUT THE 8051


2.1)  The 8051 microcontroller

    The 8051 is an 8 bit microcontroller originally developed by Intel in
    1980.  It is the world's most popular microcontroller core, made by
    many independent manufacturers (truly multi-sourced).  There were 126
    million 8051s (and variants) shipped in 1993!!

    A typical 8051 contains:
       - CPU with boolean processor
       - 5 or 6 interrupts: 2 are external
                            2 priority levels
       - 2 or 3 16-bit timer/counters
       - programmable full-duplex serial port
         (baud rate provided by one of the timers)
       - 32 I/O lines (four 8-bit ports)
       - RAM
       - ROM/EPROM in some models

    The 8051 architecture is a tad bizarre, but then so are the
    architectures of most microcontrollers due to their specialization
    (check out the PIC for creativity).  One vexing problem with the 8051
    is its very non-orthogonal instruction set - especially the
    restrictions on accessing the different address spaces.  However,
    after some time programming the chip, you can get used to it - maybe
    even appreciate it.

    One strong point of the 8051 is the way it handles interrupts.
    Vectoring to fixed 8-byte areas is convenient and efficient.  Most
    interrupt routines are very short (or at least they should be), and
    generally can fit into the 8-byte area.  Of course if your interrupt
    routine is longer, you can still jump to the appropriate routine from
    within the 8 byte interrupt region.

    The 8051 instruction set is optimized for the one-bit operations so
    often desired in real-world, real-time control applications.  The
    boolean processor provides direct support for bit manipulation.  This
    leads to more efficient programs that need to deal with binary input
    and output conditions inherent in digital-control problems.  Bit
    addressing can be used for test pin monitoring or program control
    flags.


2.2)  8051 Flavors

    The 8051 has the widest range of variants of any embedded controller
    on the market.  The smallest device is the Atmel 89c1051, a 20 Pin
    FLASH variant with 2 timers, UART, 20mA.  The fastest parts are from
    Dallas, with performance close to 10 MIPS!  The most powerful chip is
    the Siemens 80C517A, with 32 Bit ALU, 2 UARTS, 2K RAM, PLCC84
    package, 8 x 16 Bit PWMs, and other features.

    Among the major manufacturers are:
        AMD      Enhanced 8051 parts
        Atmel    FLASH and semi-custom parts
        Dallas   Battery backed, program download, and fastest variants
        Intel    8051 through 80c51gb / 80c51sl
        Matra    80c154, low voltage static variants
        OKI      80c154, mask parts
        Philips  87c748 thru 89c588 - more variants than anyone else
        Siemens  80c501 through 80c517a, and SIECO cores
        SSI      80x52, 2 x HDLC variant for MODEM use


    Advanced Micro Devices (AMD)

       AMD has a number of enhanced variants including such features as:
       dual data pointers, slave interface with arbitration unit, dual
       port RAM, FIFO buffers, and others.


    Atmel

       The smallest current device is the ATMEL 89c1051, a 20 Pin FLASH
       variant with 2 timers, UART, 20mA.  ATMEL was the first with
       standard pinout FLASH, and with more program cycles than other
       custom pinout FLASH.  These parts compete with OTP and MASK
       product on price, but eliminate inventory problems and the hidden
       costs of OTP development.  This will put real pressure on
       "vanilla" micros like PIC and ST6.


    Dallas Soft Microcontrollers - DS5000(T), DS5001(T), DS2250(T)

       The Dallas Soft Microcontrollers have standard 8051 cores with
       on-chip non-volatile RAM instead of ROM.  This gives the user the
       ability to easily alter the system and is perfect for data
       logging.  These processors are available in both chip and module
       solutions.  Among the features included in this family of
       products:
          - on-chip non-volatile RAM
          - loader in ROM for downloading programs (eliminates the hassle
            of EPROM erase/program/install cycle)
          - built in real time clock option
          - watchdog timer
          - software security (program and data encryption)

       The DS500x is a standard 40 pin DIP package (well, mostly
       standard, it is really a BOX which is about double the height of a
       normal chip).  The DS225x is a SIP version which is functionally
       identical to the DS5000 but usually a bit less expensive.

       The nice thing about having the RAM on-chip, is that the I/O ports
       are unaffected.  When the RAM is configured as CODE memory, the
       DS5000 behaves exactly as a single-chip 8051.  The NV-RAM is
       static with a built-in lithium battery, and has no limitations on
       the number of writes.  You can download your code as many times as
       you like without damaging the device.  The DS5000 also includes a
       loader in ROM, which permits you to bootstrap code into the RAM to
       get underway.  The loader and on-chip RAM have an encryption
       feature with which you can protect your code from being read back
       from the device if you wish.


    Dallas High-Speed Micros - DS80c320, DS87c520, DS87c530

       Real barn-burners - performance up to 10 MIPS!  Dallas was the
       first to speed up the core.  Wasted clock and memory cycles have
       been removed using a redesigned processor core.  As a result,
       every 8051 instruction is executed up to 3 times faster than the
       original for the same crystal speed.  Clock speeds from DC to
       33MHz!

       High performance doesn't just mean speed.  High integration gives
       the user 2 full-duplex hardware serial ports, 13 total interrupt
       sources (6 external), watchdog timer, power management, power-fail
       reset, and other features.


    Intel MCS-51

       Introduced in 1980, it has become the industry standard for
       embedded control.  Intel offers a wide variety of 8051 versions
       with different configurations of on-board EPROM/ROM.  Also low
       power, high integration, and specialized parts are also offered.


    OKI

       OKI makes an 85c154 piggyback - an 8751 but with an EPROM socket
       on top!  Great with an EPROM emulator.


    Philips

       Philips has more 8051 variants than anyone else.  Among the
       derivatives that they have:  40MHz, 24 pin skinny DIP, low
       voltage, quad flat pack (QFP) versions for saving board space,
       OTP, I2C bus, and so on.

       The c5xx line features high integration, with many built-in
       features including built-in EMI/RFI suppression.

       The c7xx series are very low-end, inexpensive micros.  They are
       offered with less memory (1k, 2k, etc.) and fewer features.  In
       fact the 83c750 sells for only $1 in very high OEM volumes.



    Siemens sab80c517a

       The 80c517a is one of the most powerful 8051 variants available.
       It features high clock speed (40 MHz), and high integration with
       32 Bit ALU, 2 UARTS, 2K RAM, PLCC84 package, 8x16 bit PWMs, and
       more.


    Standard Microsystems Corporation SMC COM20051
       The COM20051 is an integrated microcontroller and network
       interface.

       Features:
         -  high performance and low cost
         -  based on popular 8051 architecture
         -  drop-in replacement for 80C32 PLCC
         -  network supports up to 255 nodes
         -  powerful network diagnostics
         -  maximum 512 byte packets
         -  duplicate node ID detection
         -  self-configuring network protocol
         -  retains all 8051 peripherals including Serial I/O and
            2 Timers
         -  utilizes ARCNET(R) Token Bus Network Engine
         -  requires no special emulators
         -  5 Mbps to 156 Kbps data rate
         -  network interface supports RS-485, twisted pair,
            coaxial, and fiber optic interfaces
         -  receive all mode allows any packet to be received


2.2)  16-bit 8051 parts


    A joint project between Intel and Philips Semiconductors has resulted
    in two new excting products - 16 bit 8051s!  Due to a disagreement
    between the parties, they each went their separate ways.  Intel
    developed the MCS-251, which was originally called the ZX (this name
    can still be found on one of the Intel slide shows).  Philips came
    out with the eXtended Architecture (XA) line.

    The Intel MCS-251 is a drop-in replacement for the 8051, and is also
    binary compatible.  The XA is more of a 16 bit micro which also
    happens to be source code compatible.  One can argue the merits of
    which approach is better.

    Pin compatible parts allow instant performance upgrades for existing
    designs, and the binary compatibility truly preserves users
    investment in code and tools.  By staying firmly in the 80x51 camp,
    Intel allows users transparent access to an enormous horsepower
    range.  To further improve throughput in numerically intensive areas,
    users can use INTEGER, LONGINT, and FLOAT libraries written for the
    MCS-251.  The Philips XA is not a drop-in replacement for the 8051.


    Binary code compatibility is nice, you can move right up to a more
    powerful engine without having to bust a gut (We all know the Intel
    binary compatible success story with their 80x86 microprocessors).
    But if you're working on a new design, how necessary is binary
    compatibility?  If you're just looking for a souped up '51, Dallas
    already has the 320.  If you need the advanced features, you'll need
    to recompile or rewrite your software anyhow.  You'll also have to
    drag along some compatibility baggage with you in order to use the 16
    bit operations - these are preceded by an escape code (A5H), the only
    instruction not used in the 8051 instruction set.

    With source code compatibility, you have to recompile your code (with
    a new set of development tools), since the instruction set has been
    recrafted to allow the biggest bang for the buck.  This process isn't
    100% transparent, but then again, binary compatibility isn't either.

    If you're upgrading an existing design, the 251 is probably your only
    reasonable choice (although you might also want to consider the
    Dallas 320).  On new designs, you'll have a tough decision to make.
    Whichever path you choose to take, the 8051 will never be the same
    again.


    Intel MCS-251

       The Intel MCS-251 is 100% binary and pin compatible with the 8051,
       but with a 5-15 times boost in horsepower.  This is achieved by a
       six fold gain in bus cycles, and further hardware improvements to
       avoid wasted bus cycles.

       Further performance gains are possible by recoding critical
       sections to take advantage of the new features:  powerful 8/16/32
       bit instructions, flexible 8/16/32 registers, 16MB linear address
       space, 16-bit stack pointer, enhanced BIT manipulations, and
       improved control instructions.  In addition to extra 16/32 bit
       instructions, the 251 includes 40 registers with Accumulator and
       Index functions overlayed as 16x8, 16x16, 10x32.


    Philips 8051XA

       By tossing compatibility out the window, Philips was able to
       develop a true 16 microcontroller while at the same time
       preserving the basic 8051 instruction set (source).  The benefits
       of this break with tradition result in a chip that has dual 16MB
       address spaces (data and code), multitasking support with task
       protected memory segments, a separate SFR bus, fast context
       switching, and optimized code efficiency.  Other features include:
       hardware divide and multiply (over 100 times faster than an 8051),
       32 vectored interrupts, 16 hardware exceptions, and 16 trap
       instructions.


2.3)  8051 representatives and approximate prices (in USD $)

    There are many, many varieties of 8051 out there.  This is only a
    small sampling of typical prices on Intel chips.

        8031 (128 bytes RAM)...................................3.59
        80C31 (CMOS version of previous).......................6.95
        8051AH (256 bytes RAM).................................6.95
        8051AHBASIC (w/Basic interpreter built in)............29.95
        8751 (4K EPROM, 128 bytes RAM)........................26.95
        87C51 (CMOS version of previous)......................39.95


2.4)  Advantages realized in implementing control applications on this
      family of microcontrollers

    Popular - readily available and widely supported, a full range of
    free and commercial support products is available

    Fast and effective - the architecture correlates closely with the
    problem being solved (control systems), specialized instructions mean
    that fewer bytes of code need to be fetched and fewer conditional
    jumps are processed

    Low cost - high level of system integration within one component,
    only a handful of components needed to create a working system

    Wide range -  ONE set of tools covers the greatest horsepower range
    of any microcontroller family, other suppliers handle a number of
    DIFFERENT and INCOMPATIBLE (and often single-sourced) cores to cover
    the same power range as the 80x51, the 8051 provides a real cost
    savings in tools, training, and software support

    Compatibility - opcodes and binaries are the SAME for all 80x51
    variants (unlike most other microcontroller families)

    Multi-sourced - over 12 manufacturers, hundreds of varieties,
    something for everyone with the security of ready availability

    Constant improvements - improvements in silicon/design increase speed
    and power annually, 16 Bit models coming from several manufacturers,
    low cost skinny DIP models now available


3)  SOURCES OF INFORMATION ON THE 8051


3.1)  FTP sites

    The following is a list of the various anonymous ftp sites that have
    8051 source code and programming languages.  There are many others
    that  are not listed here that contains bits and pieces.  Usually you
    can find them using Archie and searching for "8051", "AS31", "ASM51",
    "MCS-51", "MCS51", and stuff like that.

    ftp.pppl.gov (formerly lyman.pppl.gov)
        - this is a great source of 8051 stuff
        /pub/8051
        /pub/incoming - check this out for new untested/unsorted items

    ftp.funet.fi (nic.funet.fi)
        - this is a great one, too
        /pub/compilers/8051
        /pub/microprocs/MCS-51   
        other subdirectories in /pub/microprocs include:
          1802, 6805, 6811, 8048, 8096 and many other microprocessors

    ftp.intel.com
        - this ftp site is pretty good now, and getting better all the
          time!
        - send comments to:  ftp-admin@intel.com
        /pub/mcs51
        /pub/mcs51/tools - contains various development tools

    nctuccca.edu.tw
        - mirror of ftp.intel.com
        - /vendors/Intel

    Philips-News@InetBSystems.us.com - Email (not ftp)
        - send Email with "subscribe" in the subject field to be put
          on list for newsletter
    Philips-archive@InetBSystems.us.com - Email (not ftp)
        - send Email message with the word "help" in the subject line to
          learn how to access the archive
    Philips-forum-request@InetBSystems.us.com  - Email (not ftp)
        - send an Email message with the word "subscribe" in the subject
          line to participate in the forum, and receive usage
          instructions and guidelines
    Philips-Info@InetBSystems.us.com - Email (not ftp)
        - send Email message to get information on all of Philips Email
          services

    ftp.mcc.ac.uk
        - this is a new 8051 ftp site
        - soon to be improved

    info@circellar.com - Email (not ftp)
        - send Email to get information file on services available
        - all Circuit Cellar INK and BYTE related files available

    ftp.ee.ualberta.ca
        /pub/cookbook/digital
        - circuits of all types
        - prog51.zip is a programmer for the ATMEL 89C51 flash part
          by Werner Terreblanche

    ftp.luth.se
        /pub/languages/assembler

    asterix.inescn.pt - FORTH archive
        /pub/forth/8051

    hpcsos.col.hp.com
        /mirrors/.hpib0/forth/8051
        /misc/ns32k/beowulf/a-8051
        /mirrors/.hpib0/forth/eForth

    ftp.armory.com (Steve Walz)
        /pub/user/rstevew/8051
        /pub/user/rstevew/TB8051
        /pub/user/rstevew/incoming

    ftp.oak.oakland.edu
        - has information and software for a wide range of
          microprocessors and microcontrollers, you may have to look
          around a bit

    130.123.96.9
        giovanni/51forth.zip

    ftp.kulnet.kuleuven.ac.be
        /pub/MCS-51/keil-demo

    ai.uga.edu
        /pub/hardware
        - stuff on the Philips 87C750/1/2 microcontrollers
        - assembler, an update for the software in the DS-750 kit,
          notebook of some early experiences and code
        - responses welcome, Michael A. Covington (mcovingt@ai.uga.edu)

    csd4.csd.uwm.edu - no longer supports 8051, don't even try

    awaiting final corporate approval... Philips Semiconductor ftp site


3.2)  Web pages

    S. Joel Katz's web page
        - address is http://www.panix.com/stimpson/micro.html
        - information about 8051 and related microcontrollers
        - not much information yet, but it is increasing rapidly

    Automation and Process Control (Olaf Pfeiffer)
        - http://www.ba-karlsruhe.de/automation/home.html
        - http://www.ba-karlsruhe.de/automation/ctrl/FAQ/microFAQ/microFAQ.html


3.3)  BBSs

    The following BBSs have 8051 information:

    AM Research
        - (916)652-7117

    Blue Earth Research
        - support for their line of microcontroller boards
        - (507)387-4007

    Circuit Cellar, Inc.
        - contains code from their magazine articles and from the
          original Circuit Cellar articles in Byte magazine, also
          contains many other interesting items
        - GOOD STUFF HERE!
        - The BBS is mentioned in the masthead of each issue (on the
          table of contents page).  Excerpts from the BBS appear in Ken
          Davidson's ConnecTime column in every issue with a description
          of how to access the system at the end of every column.
        - (203)871-1988
        - Voice: (203)875-2751
        - Fax: (203)872-2204

    Crossware Products
        - +44 763 261716

    Dallas Semiconductor
        - Support for their line of innovative products

    Dunfield Development Systems
        - support for their Micro-C compiler and development tools
        - includes a lot of nice goodies - CHECK THIS OUT!
        - (613) 256-6289

    Electronics Now
        - contains code from their magazine articles
        - (516)293-2283
        - 1200/2400, 8N1

    Intel American Marketing Applications Support Bulletin Board System
        - 16 lines, hi-speed modems (14.4K)
        - Lots of useful info and files (including design examples)!
        - Full ANSI-BBS with color is recommended, but support for just
          about all terminal types is provided
        - (916)356-3600 (24 hours)
          Auto config: 1200 thru 14.4K Baud
          8 data bits, no parity, 1 stop

    Iota Systems, Inc.
        - Support for their line of hardware and software products
        - 15 application notes which show how to hook up such things as
          clocks, A/D, D/A, and special chips to the 8051
        - (702)831-4732

    Micro Computer Control Corporation
        - (609)466-4117

    Philips Semiconductor - Europe
        - support for: standard logic, programmable logic,
          in-car electronics (now open), 8 and 16 bit microcontrollers,
          I2C software, third party software, discrete semiconductors,
          cross assemblers (general), RF (planned)
        - PHIBBS is located in the Netherlands: +31-40-721102
        - maximum 21600 baud / V42bis / HST/Vterbo
        - 24 hours a day available
        - Help desk: +31-40-722749  (9.00 AM - 16.00 PM CET)

    Philips Semiconductor - North America
        - support for their 8051 variants
        - contains many good source code items
        - partially mirrored on ftp.pppl.gov and nic.funet.fi
        - (800)451-6644 or (408)991-2406


    PseudoCorp
        - support for their line of simulators and assemblers
        - (804)873-4838

    Realtime Control & Forth Board (RCFB)
        - Forth and assembly for the 8051
        - 300 through 14.4 baud
        - (303)278-0364 (24 hours)

    Systronix Inc.
        - support for their line of development tools
        - (801)487-2778


3.4)  Help available!

    This is a new feature in the FAQ.  Listed here are individuals who
    have expressed interest in helping others with hardware and software
    problems for 8051 systems.

    Does any one else out there think that they can help?  Just let me
    know what your areas of specialization are and I'll add your name to
    the list.  Thanks!

    Dick Barnett 
       Specializes in 8051 (core processors), 80C552, and 87C751
       applications.

    Daniel Drennan  or 
       He claims his electronics knowledge is very rudimentary and
       self-taught (what a modest guy!).  He'll probably be able to point
       you in the right direction.

    Mark Hopkins 
       Mark is the author of the CAS assembler and of the 8051.ZIP
       programs.  He's now working on JOLT, a code generator with a
       C-like syntax.  His areas of specialization include:
       multitasking, interrupts, basic stuff (like addressing, memory
       spaces), the 8052 BASIC chip, interfacing the chip with external
       inputs and outputs

    Hans Schou 
       Hans is offering his assistance to users of the Standard
       Microsystems Corp. COM20051.  He's not an expert, but he has some
       experience with it.


4)  8051 PRODUCTS

    This section includes descriptions and references to free and
    commercial software for the 8051.  FTP sites and BBSs contain many
    quality packages and code samples for free.  For heavy duty use, you
    might prefer the many commercial packages that are available.  With
    the public domain (or free) stuff, you're usually on your own.  The
    commercial packages usually provide extensive documentation and
    support.


4.1)  Free languages and development tools

    The following is a list of the languages and development tools that I
    could find on the net.  Nearly all of them include source code,
    however not all are public domain.

    Assembler

      Program: ML-ASM51.ZIP
      Description: MetaLink's 8051 family macro assembler
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program: A51.ZIP
      Description: PseudoSam 8051 Cross Assembler
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program: AS31.ZIP
      Description:  C source for an 8051 assembler, and a simple monitor
      Author:  Ken Stauffer
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs
                 ftp.uu.net
                 oak.oakland.edu : /pub/msdos/crossasm/as31.zip
                 many other locations (use Archie to find)

      Program: CUG292WK.ZIP
      Description:  C source for a cross assembler, includes 8051
      Author:  Alan R. Baldwin
      Location:  oak.oakland.edu : /pub/msdos/crossasm
                 pc.usl.edu : /pub/msdos/systools
                 many other locations (use Archie to find)

      Program: Frankenstein
      Description:  C source for a cross assembler, includes 8051
      Author:  Mark Zenier
      Location:  ftp.njit.edu : /pub/msdos/frankasm/FRANKASM.ZOO
                 lth.se : /pub/netnews/alt.sources/volume90/dec
                 ftp.uni-kl.de : /pub1/unix/languages/frankenstein.tar.Z
                 many other locations (use Archie to find)

      Program:  CAS 8051 assembler
      Description:  Experimental one-pass assembler for the 8051
                    with C-like syntax.  Includes assembler, linker
                    and disassembler.
      Author:  Mark Hopkins
      Location:  ftp.pppl.gov : /pub/8051/assem
                 ftp.funet.fi : /pub/microprocs/MCS-51/csd4-archive/assem

      Program:  a51
      Description:  Portable cross assembler (source in C), other
                    processors available
      Author:  William C. Colley, III
      Location:  hpcsos.col.hp.com : /misc/ns32k/beowulf/a-8051


    Basic

      Program:  BASIC52.ZIP
      Description:  Source files for original BASIC 52 interpreter
      Author:  Intel Corporation, Embedded Controller Operations
      Location:  ftp.intel.com : /pub/mcs51

      Program:  BAS051.ZIP
      Description:  Converts IBM BASIC to 8051 assembly (compiler)
      Author:  Winefred Washington
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/8051/signetics-bbs

      Program:  BASIC-52.ZIP
      Description:  Source files for BASIC-52 interpreter
      Author:  Intel Corporation, Embedded Controller Operations
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program:  BASIC31.ZIP
      Description:  BASIC-52 interpreter for 8031/8051 in external EPROM
      Author:  Intel w/ changes by Dan Karmann
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program:  TB-51.ZIP
      Description:  TinyBASIC for 8031
      Author:  JHW (from Intel InSite library) w/ fixes by Tom Schotland
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program:  TB51ML23.ZIP
      Description:  MetaLink ASM compatible tiny BASIC
      Author:  adapted for MetaLink assembler by Jim Lum
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs


    Forth

      Program:  EFORTH51.ZIP
      Description:  eFORTH environment for the 8051
      Author:  C. H. Ting
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs
                 asterix.inescn.pt : /pub/forth/8051
                 hpcsos.col.hp.com : /mirrors/.hpib0/forth/eForth

      Program:  FORTH51.ZIP (FORTH86.ZIP used as host)
      Description:  FORTH development system for 8051 with PC host
      Author:  William H. Payne, the author of "Embedded Controller
               Forth for the 8051 Family"
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs
                 asterix.inescn.pt : /pub/forth/8051
                 hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051

      Program:  XD8051.ZIP
      Description:  Development environment for use with F-PC Forth
      Author:  Paulo A.D. Ferreira
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/signetics-bbs

      Program:  51FORTH.ZIP
      Description:  Subroutine threaded Forth
      Author:  Scott Gehmlich
      Location:  hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051
                 130.123.96.9 : /giovanni/51forth.zip

      Program:  FORTH552.ZIP
      Description:  A Non-Standard Forth System for the Signetics 80C552
      Author:  Alberto Pasquale
      Location:  hpcsos.col.hp.com : /mirrors/.hpib0/forth/8051


    Development systems

      Program:  8051.zip
      Description:  Many development tools including: debugger, monitor,
                    LCD and stepper moter driver, communications, host
                    client, and much more.  This is a great collection of
                    tools.
      Author:  Mark Hopkins
      Location:  ftp.pppl.gov : /pub/8051/signetics-bbs
                 ftp.funet.fi : /pub/microprocs/MCS-51/csd4-archive

      Program:  RISM and IECM51.EXE compatible host system
      Description:  RISM is a reduced instruction set monitor and
                    IECM51.EXE is its compatible host system for a PC
      Comments:  These two programs together constitute a bare-bones
                 method of developing 80C51 system code without an
                 emulator.  RISM51X is installed in the target system
                 and connected to a host PC system through a serial port.
                 The host PC runs the debugger IECM51.EXE.  Once the
                 system has been debugged, RISM can be removed and the
                 target can be run in stand-alone mode.
      Author:  Intel
      Location:  ftp.intel.com : /pub/mcs51/tools

      Program:  ApBUILDER 2.0
      Description:  Development system for the Intel MCS-51(R) family
                    (also for the MCS-96(R) family, 80x186, and 80x386
                    embedded microcontrollers).
      Comments:  Requires Windows 3.1
                 APBUILDR.TXT - description in ASCII
                 APBDISK1.EXE - binary self-extracting file for disk 1
                 APBDISK2.EXE - binary self-extracting file for disk 2
      Author:  Intel
      Location:  ftp.intel.com : /pub/mcs51 and /pub/mcs96

      Program:  FXDSMAN.EXE
      Description:  8xC51Fx data sheets and manual in Windows 3.1
                    hypertext style
      Comments:  binary self-extracting file for one diskette
      Author:  Intel
      Location:  ftp.intel.com : /pub/mcs51/80c51

      Program: sim51d
      Description:  Shareware Simulator in German
                    DM 50 to register for full version
      Author:  Werner Hennig-Roleff
      Location:  ftp.pppl.gov : /pub/8051/hannover

      Program: sim552vq.zip
      Description:  80C552 simulator (Freeware)
      Comments:  Program is capable of reading .HEX and .S19 records, or
                 saving memory to a file.  It supports both code and
                 data.  Written in Turbo Pascal for XT and upwards.
      Author:  Brian Brown
      Location:  cscnt.cit.ac.nz : /pub/msdos/sim552v1.zip


4.2)  Free C compilers

    Several commercial C compilers have evaluation versions available.
    These are not too useful (even for hobbyist projects) since they
    usually don't include libraries.  However, they do afford the user
    the chance to inspect the quality of the code generated.  Among those
    currently available:

        An evaluation version of COMPASS is available from Production
        Language Systems.  This package includes a C compiler, assembler,
        debugger, simulator, etc. and runs under Windows 3.1.  This
        package can be downloaded from the IntelC Compuserve forum or
        from their BBS:
              (817)599-8363
              Enter YY8051 as password for first-time login
              (In case of difficulty, contact manvillec@aol.com)

        The Keil C compiler evaluation package is available as a freeware
        C compiler.  It can be downloaded from:
                 ftp.kulnet.kuleuven.ac.be : /pub/MCS-51/keil-demo
        Thanks to Christofe Huygens for setting this up.

        You can now get the freeware version of the Hi-Tech C compiler
        from their own (rather modest) ftp site: ftp.hitech.com.au.
        They are also working on a Web setup too, but it's not ready yet.
        It will be the expected www.hitech.com.au when it's up.


    Mark Hopkins has changed the goal of his compiler project.  Instead
    of implementing a C compiler, he is working on an implementation of
    JOLT for the '51.  Its main characteristic is the complete and
    seamless integration of functional and imperative programming into
    one language.  The language envisioned essentially has a C syntax and
    could probably be mistaken as being a dialect of C.  More on this as
    it develops.

    However, the good news is that Ahmad Ibrahim informs me that he's
    well on his way to putting together a C compiler which will be
    released as freeware.  The initial offering will generate code only
    for the 8051.  By making the compiler table driven, it will be
    adaptable for other processors.  Other features are in the works
    including a simulator/debugger.


    In most cases, it makes more sense to invest a bit, and get something
    serious.  Also, by buying a commercial package, you have the
    advantage of having the documentation, and being able to get
    technical support.  There are two low-cost C compilers currently
    available for 8051 development.

    I've been using the Dunfield Development System, and its really quite
    nice.  I've also heard many good things about it from others.  For
    $100 you get a near ANSI-C compiler, run-time library with source,
    assembler, ROM debugger, integrated development environment, monitor
    with source, utilities, and other extras.  A high quality simulator
    for only $50 is also available separately.  The simulator has an
    option allowing you to interface to your target by using an on-chip
    monitor.  Although not freeware, the low price, the features, all of
    the extra goodies, and the good reviews make this a package worth
    looking at.  Also, if you're interested in working on more than one
    family of microcontroller, Dunfield supports a wide range.  This
    means only needing to learn one system, instead of many.

    Another low priced ($100) C compiler comes from Micro Computer
    Control.  Cross compilers running under DOS are available for the
    8051 and the Z8 (including Super-8).  This package includes a C
    compiler, assembler, linker, librarian, and extensive printed
    documentation.  A simulator/source code debugger is available for an
    additional $79.95.  The simulator is completely configurable, so much
    so that you don't even need the target hardware to test with.  You
    can configure all I/O and other features of your target chip or
    environment.
          Micro Computer Control Corporation
          PO Box 275, 17 Model Ave., Hopewell, NJ  08525
          (609)466-1751   Fax: (609)466-4116   BBS: (609)466-4117
          Email: 73062.3336@compuserve.com


4.3)  Commercially available products

    Many firms (large and small) offer a variety of 8051 microcontroller
    variants, programming languages, support packages, and development
    systems.

    No endorsement is implied by inclusion in this list.  I apologize to
    anyone I left out;  It's only because I didn't know about you.  If
    you want to be included in this list, just drop me a line - please.
    Any corrections and additions appreciated.

    C compilers ($$$ - high, $$ - medium, $ - low priced)
        - 2500 A.D.
        - Archimedes Software  $$$
             compiler, assembler, debugger, real-time kernel, ROM
             monitor, libraries for special 8051's to set SFR, embedded
             I/O devices, A/D, etc.
        - Avocet Systems  $$
             repackaging of the Hi-Tech Software C compiler
        - BSO/Tasking  $$
        - Crossware Products
        - Dunfield Development Systems  $
             Complete C compiler development system for MS-DOS
             includes: compiler, run-time library with source, assembler,
                ROM debugger, integrated development environment, monitor
                with source, utilities, and other extras
             low price:  $100
             good reputation and good support
             works well with the Dallas DS5000/DS2250
        - Franklin Software  $$$
             same as Keil Electronics C
             compiler, assembler, debugger, real-time kernel, ROM
                monitor, libraries for special 8051's to set SFR,
                embedded I/O devices, A/D, etc.
        - IAR Systems
             IAR tool kit comes with a C-Cross compiler, assembler,
                Xlink linker, Xlib librarian, C-SPY simulator, editor,
                make utility and a real-time kernel
             formerly licensed for distribution in the US and Canada
                under the Archimedes brand name
        - Hi-Tech Software  $$
             high compliance to ANSI C
             available for DOS and soon for SUN
        - Intermetrics Microsystems Software, Inc.
             Whitesmith's compiler, assembler, and C source level
             debugger
        - Keil Electronics
        - Mandeno Granville Electronics, Ltd
             SYS51C - ANSI C Cross Compiler
        - Micro Computer Control  $
             Developer's kit includes "C"-like compiler, assembler,
                linker, librarian, extensive printed documentation
             low cost ($99.95)
        - Nohau Corporation
             sells and supports Franklin C
        - Okapi Systems
        - Production Languages Corporation
             DOS- and Windows- based compilers
             Integrated development environment includes ANSI C compiler,
                assembler, linker, librarian, debugger
        - Signum Systems

    Basic interpreters/compilers
        - Binary Technology, Inc.
        - Iota Systems, Inc.
             Basic-752 interpreter (simulator also available)
             Basic-52 Plus interpreter
        - Micro Future
             Basic-52 development system
        - Systronix Inc. (Basic compiler)

    Pascal
        - Mandeno Granville Electronics, Ltd
             PASCAL51 - Advanced Turbo PASCAL compliant cross compiler
        - Scientific Engineering Labs

    Modula-2
        - Mandeno Granville Electronics, Ltd
             Mod51 - optimizing Modula-2 Compiler, smallest program is 14
             bytes, ideal for both very tight/fast projects and very
             large ones with multiple modules, produces smaller/tighter
             code than C, has extensive libraries and working examples
        - Vail Silicon Tools, Inc.

    PL/M
        - BSO/Tasking

    Board level products
        - Ackerman Computers Sciences (ACS)
        - AM Research
             complete FORTH based system with PC based host system
        - Binary Technology, Inc.
        - Blue Earth Research
        - Blue Ridge Micros (8031 and 8052-BASIC based boards)
        - Circuit Cellar Inc.
        - DataCraft International
        - Dunfield Development Systems
        - EE Systems
        - Forth, Inc.
        - HiTech Equipment Corp.
        - Iota Systems, Inc. (line of development packages, boards,
             peripherals, and components)
        - J & M Microtek, Inc.
        - L.S. Electronic Systems Design
        - Mandeno Granville Electronics, Ltd
        - Parallax, Inc.
        - Prologic Designs
        - Rigel Corporation
        - Software Science
        - Suncoast Technologies
        - URDA, Inc.

    Assemblers
        - 2500 A.D.
        - Archimedes Software
        - BSO/Tasking
        - Crossware Products
        - Custom Computer Consultants
        - Cybernetics Microsystems
        - Dunfield Development Systems
             Supports both Intel and Motorola style syntax
        - Intel Corporation
        - Keil Electronics
        - Lear Com Company
        - Metalink
        - Micro Computer Control
        - Microtek Research
        - Nohau Corporation
        - Okapi Systems
        - Onset Computer Corporation (8051 Assember for MAC)
        - Parallax, Inc.
        - PseudoCorp
        - Raven Computer Systems
        - Signum Systems
        - Speech Technology Inc.
        - Sysoft SA
        - Universal Cross Assemblers
             CROSS32 supports 40-50 different processors

    Forth
        - AM Research
             Development system, features kernel of less than 700 bytes
        - Forth, Inc.
             A cross-development product for the 8051 family
                which includes a board and extensive documentation.
        - Forth Systeme
        - MPE: MicroProcessor Engineering Ltd.
             A cross-development system for the 8051 family
                extensive documentation
             interactive single chip development, multitasking,
                bank switching for more than 64k code
        - Offete Enterprises
             8051 eForth (C. H. Ting -- $25.00).  "A small ROM based
                Forth system ... Source code is in MASM IBM 5.25 disk
                with 8051 eForth Implementation Note."

    ROM Monitor-based Debuggers
        - ChipTools (ChipView-51 looks like turbo debugger)
        - Dunfield Development Systems
             Can be used with DS5000 for single-chip in-circuit
                emulation

    Simulators
        - 2500 A.D.
        - Avocet Systems
        - ChipTools
             on a 33 MHz 486 matches the speed of a 12 MHz 8051
        - Cybernetic Micro Systems
        - Dunfield Development Systems
             Low cost $50.00
             500,000+ instructions/second on 486/33
             Can interface to target system for physical I/O
             Includes PC hosted "on chip" debugger with identical user
                interface
        - HiTech Equipment Corp.
        - Iota Systems, Inc.
        - J & M Microtek, Inc.
        - Keil Electronics
        - Lear Com Company
        - Mandeno Granville Electronics, Ltd
        - Micro Computer Control Corporation
             Simulator/source code debugger ($79.95)
        - Microtek Research
        - Production Languages Corp.
        - PseudoCorp

    Emulators ($$$ - high, $$ - medium, $ - low priced)
        - Advanced Micro Solutions  $$
        - Advanced Microcomputer Systems, Inc.  $
        - American Automation  $$$  $$
        - Applied Microsystems  $$
        - ChipTools (front end for Nohau's emulator)
        - Cybernetic Micro Systems  $
        - Dunfield Development Systems $
             plans for pseudo-ice using Dallas DS5000/DS2250
             used together with their resident monitor and host debugger
        - HBI Limited  $
        - Hewlett-Packard  $$$
        - HiTech Equipment Corp.
        - Huntsville Microsystems  $$
        - Intel Corporation  $$$
        - Kontron Electronics  $$$
        - Mandeno Granville Electronics, Ltd
             full line covering everything from the Atmel flash to the
                Siemens powerhouse 80c517a
        - MetaLink Corporation  $$  $
        - Nohau Corporation  $$
        - Orion Instruments  $$$
        - Philips $
             DS-750 pseudo-ICE developed by Philips and CEIBO
             real-time emulation and simulator debug mode
             source-level debugging for C, PL/M, and assembler
             programs 8xC75x parts
             low cost - only $100
             DOS and Windows versions available
        - Signum Systems  $$
        - Sophia Systems  $$$
        - Zax Corporation
        - Zitek Corporation  $$$

    Real-time
        - Byte-BOS Integrated Systems
             small, prioritized, preemptive real-time kernel
        - Embedded System Products (formerly A.T. Barrett and Associates)
             ROMable embedded-system kernel: source provided.  Provides
             programming interface identical on all target platforms.
             Basic, advanced, and extended library packages available.
        - Intellimap Engineering
             DCE51 real time operating system
        - JMI Software Systems, Inc.
             small, prioritized, preemptive real-time kernel
        - U S Software
             SuperTask! - multitasking executive

    Trainers
        - Advanced Educational Systems (AES)
             complete learning system (board, LCD, keypad, A/D, D/A, etc)
        - Sun Equipment Corp.
             trainers

    Miscellaneous
        - Creative Applications Engineering, Inc
             CheepTools (integrated environment)
        - Dallas Semiconductor
             evaluation/development kit for their DS5000 (very nice)
        - Data Sync Engineering (disassembler)
        - Educational Laboratories
             development courses:
               8051 Microcontroller Based Computer Design
               Programming 8051 Based Computers
             each course $19.95, both $29.95
        - Electronic Product Design, Inc.
             development system (integrated package with assembler,
             project manager, text editor, programmer)
        - Exor Inc. (ladder logic compiler)
        - Iota Systems, Inc.
             integrated environment system
        - Mandeno Granville Electronics, Ltd
             PIC to 8051 conversion program
        - Parallax, Inc.
             programmers
        - Quantasm Corp.
             ASMFLOW - produces flowchart and tree diagrams from source
                code, register usage analysis, Xref, timing info
        - U S Software
             USNET - TCP/IP networking suite
             USFiles - file system
             GOFAST - floating point library


    2500 A.D.       109 Brookdale Ave., Box 480, Buena Vista, CO  81211
                    (719)395-8683

    Ackerman Computer Sciences (ACS)
                    4276 Lago Way, Sarasota, FL  34241
                    (813)377-5775   Fax: (813)378-4226

    Advanced Educational Systems (AES)
                    1407 North Batavia Street, Orange, CA  92677
                    (800)730-3232   (714)744-0981   Fax: (714)744-2693

    Advanced Micro Devices
                    901 Thompson Place, PO Box 3453
                    Sunnyvale, CA  94088-3000
                    (408)732-2400

    Advanced Microcomputer Systems, Inc.
                    1321 NW 65th Place, Fort Lauderdale, FL 33309
                    (305)975-9515  Fax: (305)975-9698

    Advanced Micro Solutions
                    1033 S Imperial Dr., Hartland, WI 53029
                    (414)367-3577

    American Automation
                    2651 Dow Avenue, Tustin, CA  92680
                    (714)731-1661

    AM Research     4600 Hidden Oaks Lane, Loomis, CA  95650
                    (800)949-8051   (916)652-7472   Fax: (916)6642
                    BBS: (916)652-7117
                    Email: sofia@netcom.com

    Applied Microsystems
                    5020 148th Ave. N.E., PO Box 97002
                    Redmond, WA  98073-9702

    Archimedes Software
                    2159 Union St., San Francisco, CA  94123
                    (415)567-4010

    Ashling Microsystems Ltd
    Ireland         Plessey Technological Park
                    Limerick, Ireland
                    +353 61 334466   Fax:  +353 61 334477
    United Kingdom  Butler House
                    19-23 Market Street
                    Maidenhead, Berkshire,  UK
                    +0628 773070   Fax: 0628 773009

    Atmel           

    Avocet Systems  120 Union St., Rockport, ME  04856
                    (800)448-8500  (207)236-9055   Fax: (207)236-6713

    Binary Technology, Inc.
                    PO Box 541, Carlisle, MA  01741
                    (508)369-9556   Fax: (508)369-9549

    Blue Earth Research
                    165 W. Lind Ct., Mankato, MN  56001-0400
                    (507)387-4001   Fax: (507)387-4008
                    BBS: (507)387-4007

    Blue Ridge Micros
                    2505 Plymouth Rd., Johnson City, TN  37601
                    (615)335-6696   Fax: (615)929-3164

    BSO/Tasking
    International   333 Elm Street, Dedham, MA  02026-4530
                    (800)458-8276  (617)320-9400  Fax: (617)320-9212
    Europe          Tasking Software BV
                    P O Box 899, 3800 AW Amersfoort, Netherlands
                    +31 33 558584   Fax: +31 33 550033

    Business Data Computers
                    P.O. Box 1549, Chester, CA  96020

    Byte-BOS Integrated Systems
                    P.O. Box 3067, Del Mar, CA 92014
                    (800)788-7288   (619)755-8836

    ChipTools Inc   (905)274-6244   Fax: (905)891-2715
                    Email: chiptool@hookup.net

    Circuit Cellar Inc.
                    4 Park St., Vernon, CT  06066
                    (203)875-2751   Fax: (203)872-2204

    Creative Applications Engineering, Inc
                    Ed Carryer
                    (415)494-2363   BBS: (415)494-8463

    Crossware Products
                    2 The Lawns, Melbourn, Royston, Herts  SG8 6BA, UK
                    +44 763 261539   Fax: +44 763 262983
                    BBS: +44 763 261716
                    Email: sales@crossware.com

    Custom Computer Consultants
                    1807 Huron River Drive, Ypsilanti, MI 48197

    Cybernetic Micro Systems
                    Box 3000, San Gregorio, CA  94074
                    (415)726-3000

    Dallas Semiconductor
                    4401 S. Beltwood Parkway, Dallas, TX  75244-3292
                    (214)450-0448   Fax: (214)450-3715
                    International:  (214)450-5351
                    Orders:  (800)336-6933
                    Email:  self@dalsemi.com (Kevin Self, appl. engineer)
                            (great email address! right?)

    DataCraft International
                    2828 Ione Dr., San Jose, CA  95132
                    (800)873-3709   (408)259-4866

    Data Sync Engineering
                    POB 146, E. Stroudsburg, PA  18301
                    (717)421-1977

    Dunfield Development Systems
                    P.O. Box 31044, Nepean, Ontario Canada   K2B 8S8
                    (613)256-5820   Fax: (613)256-5821
                    BBS: (613)256-6289
                    Email:  ddunfield@bix.com

    EE Systems      50935 Hill Dr., Elkhart, IN  46514
                    (219)296-1754   Fax: (219)522-4271

    Electronic Product Design, Inc.
                    6963 Bluebelle Way, Springfield, OR  97478
                    (503)741-0778

    Embedded System Products (formerly A.T. Barrett and Associates)
                    11501 Chimney Rock, Houston, TX  77035-2900
                    (800)525-4302   (713)728-9688   Fax: (713)728-1049

    Exor Inc.
                    4740T Interstate Dr., Cincinnati, OH 45246
                    (513)874-4665   Fax: (513)874-3684

    Forth, Inc.     1-800-55FORTH

    Forth Systeme   P.O. Box 1103, Breisach, Germany
                    7767-551

    Franklin Software
                    (408)296-8051

    HBI Limited
                    6F, 1 Fleming Road, Hong Kong
                    852-891-3673  Fax: 852-834-9748

    Hewlett-Packard 1501 Page Mill Rd., Palo Alto, CA  94304

    HiTech Equipment Corp.
                    9400 Activity Rd., San Diego, CA  92126
                    (619)566-1892   Fax: (619)530-1458

    Hi-Tech Software
                    PO Box 103, Alderly QLD 4051, Australia
                    (+61-7) 300 5011   Fax: (+61-7) 300 5246
                    Email: hitech@hitech.com.au

    Hitex (UK) Ltd  Sir William Lyons Road, Science Park
                    Coventry CV4 7EX
                    +0203 692066   Fax: +0203 692131

    Huntsville Microsystems
                    4040 S. Memorial Parkway, PO Box 12415
                    Huntsville, AL  35802

    IAR Systems Software
    North America   One Maritime Plaza, Suite 1770
                    San Fransisco, CA 94111  USA
                    (415)765-5500   Fax: (415)765-5503
    Sweden          IAR Systems AB
                    Box 23051
                    S-750 23 Uppsala, Sweden
                    +46 18 16 7800   Fax: +46 18 16 7838
    Germany         IAR Systems GmbH
                    Brucknerstrasse 27
                    D-81677 Munchen, Germany
                    +49 89 470 6022   Fax: +49 89 470 9565
    United Kingdom  IAR Systems Ltd
                    9 Spice Court
                    Plantation Wharf, York Rd
                    London SWII 3UE, England
                    +44 71 924 3334   Fax: +44 71 924 5341

    Intel Corporation
                    3065 Bowers Ave., Santa Clara, CA  95051
                    Technical Help: (800)628-8686 (USA/Canada only)
                       5 am to 5 pm PST
                    Email: james_sampson@ccm.hf.intel.com
                    Faxback support: (800)628-2283 (USA/Canada)
                       touch tone phones only
                       Will only FAX to USA/Canada locations
                       English or Japanese support is available
                    BBS: (916)356-3600  24 Hr.
                       Auto config: 1200 thru 14.4K Baud

    Intellimap Engineering
                    1140 Morrison Dr., Suite 222
                    Ottawa Ontario Canada K2H 8S9
                    (613)829-3196   Fax: (613)820-1773

    Intermetrics Microsystems Software, Inc.
                    733 Concord Ave., Cambridge, MA  02138
                    (617)661-0072   Fax: (617)868-2843

    Iota Systems, Inc.
                    924 Incline Way, Suite N / POB 8987
                    Incline Village, NV  89452-8987
                    (702)831-6302   Fax: (702)831-4629

    J & M Microtek, Inc.
                    83 Seaman Rd., W Orange, NJ  07052
                    (201)325-1892   Fax: (201)736-4567

    JMI Software Systems, Inc.
                    P.O. Box 481, 904 Sheble Lane, Spring House, PA 19477
                    (215)628-0840   Fax: (215)628-0353

    Keil Elektronik GmbH
                    Bretonischer Ring 15
                    D-85630 Grasbrunn b. Muenchen, Germany
                    089-465057   Fax: 089-468162

    Kontron Electronics
                    D-8057 Eching/Munich
                    Oskar von Miller Str. 1, Germany
                    (0 81 65) 77-0

    Lear Com Company
                    2440 Kipling St. Suite 206, Lakewood, CO  80215
                    (303)232-2226   Fax: (303)232-8721

    Logical Systems Corporation (Disassembler, Simulator)
    Micro Dialects, Inc.
                    POB 30014, Cincinnati, OH  45230
                    (513)271-9100

    Logisoft        Box 61929, Sunnyvale CA  94086
                    (408)773-8465  Fax: (408)773-8466

    L.S. Electronic Systems Design
                    2280 Camilla Rd., Mississauga, Ontario
                    Canada  L5A 2J8
                    (905)277-4893   Fax: (905)277-0047

    Mandeno Granville Electronics, Ltd
                    128 Grange Rd., Auckland 3, Australia
                    +64 9 6300 558   Fax: +64 9 6301 720

    Matra Semiconductor
                    2840-100 San Tomas Expressway, Santa Clara, CA  95051
                    (408)986-9000

    MetaLink Corporation
    North America   325 E. Elliot Road, Chandler, AZ  85255
                    (800)638-2423   (602)926-0797
                    Fax:  (602)926-1198
    Europe          MetaLink Europe GmbH
                    Westring 2, 8011<85614>
                    Kirchseeon-Eglharting, Germany
                    (08091)2046   Fax: (08091)2386

    Micro Computer Control Corporation
                    PO Box 275, 17 Model Ave., Hopewell, NJ  08525
                    (609)466-1751   Fax: (609)466-4116
                    BBS: (609)466-4117
                    Email: 73062.3336@compuserve.com

    Micro Future    40944 Cascado Place, Fremont, CA  94539
                    (510)657-0264   Fax: (510)657-5441
                    BBS: (510)657-5442

    MicroMint       4 Park St., Vernon, CT  06066
                    (203)875-2751   Fax: (203)872-2204

    Microtek International, Inc.
    North America   Microtek International, Inc.
                    3300 N.W. 211th Terrace, Hillsboro, OR  97124
                    (503)645-7333   Fax: (503)629-8460
    Europe          Microtek Electronics Europe GmbH
                    Starnberger Strasse 22, 82131 Gauting bei Munchen
                    Germany
                    +49(89)893139-30    Fax: +49(89)893139-50

    MPE: MicroProcessor Engineering Ltd.
                    133 Hill Lane, Shirley, Southampton SO1 5AF U.K.
                    +44 1703 631441   Fax: +44 1703 339691
                    Email: mpe@mpeltd.demon.co.uk
                           sales@mpeltd.demon.co.uk
                           70730.3576@compuserve.com

    Nohau Corporation
                    51 E. Campbell Ave., Campbell, CA  95008
                    (408)866-1820
                    (408)378-2912 (24 hr. information center)
                    Fax: (408)378-7869

    Offete Enterprises, Inc.
                    1306 South B Street, San Mateo, CA  94402
                    (415) 574-8250

    Okapi Systems   (206)258-1163

    Onset Computer Corporation
                    199 Main St.,  P.O. Bos 1030
                    North Falmouth, MA 02556-1030
                    (508)563-9000   Fax: (508)563-9477

    Orion Instruments
                    180 Independence Drive, Menlo Park, CA  94025
                    (800)729-7700   Fax: (415)327-9881

    Parallax, Inc.  6200 Desimone Lane, #69A, Citrus Heights, CA  95621
                    (916)721-8217

    Philips Microcontroller Product Group
                    811 East Arques Ave. / POB 3409
                    Sunnvale, CA  94088-3409
                    Technical documentation:
                        Sunnyvale, CA - (800)447-1500  Fax: (408)991-3773
                        Eindhoven, Netherlands - Fax: 31-40-724825
                    Technical questions:
                        Sunnyvale, CA - (408)991-3518

    Production Languages Corporation
                    P.O. Box 109, Weatherford, TX  76086
                    (800)525-6289   (817)599-8365   Fax: (817)599-5098

    Prologic Designs
                    PO Box 19026, Baltimore, MD  21204
                    (410)661-5950   Fax: (410)661-5950

    PseudoCorp      716 Thimble Shoals Blvd., Newport News, VA  23606
                    (804)873-1947   Fax: (804)873-2154
                    BBS: (804)873-4838

    Quantasm Corporation
                    19672 Stevens Creek Blvd.
                    Cupertino, CA  95014
                    (800)765-8086   (408)244-6826   Fax: (408)244-7268

    Raven Computer Systems
                    PO Box 12116, St. Paul, MN  55112
                    (612)636-0365

    Rigel Corporation
                    P.O. Box 90040, Gainesville, FL  32607

    Scientific Engineering Labs
                    255 Beacon St., Suite 3D, Somerville, MA  02143
                    (617)625-0288

    Siemens Components, Inc.
                    Integrated Circuit Division, 10950 N. Tantau Ave.
                    Cupertino, CA  95014
                    (800)777-4363  Fax: (708)296-4805

    Signetics Corporation (see Philips Microcontroller Product Group)

    Signum Systems  Mountain View, CA     (415)903-2220
                    Thousand Oaks, CA     (805)371-4608

    Software Science
                    3570 Roundbottom Rd., Cincinnati, OH  45244

    Sophia Systems  NS Bldg. 2-4-1, Nishishinjuku, Shinuku-ku
                    Tokyo 160, Japan
                    03-348-7000

    Speech Technology Inc., Software Division
                    837 Front Street South, Issaquah, WA  98027
                    (206)392-8150

    Standard Microsystems Corporation
                    80 Arkay Dr.,  Hauppage, NY  11788
                    (516)435-6000    Fax: (516)231-6004

    Sun Equipment Corporation
    Lodestar Electronics Corp.
                    616 Hawick Rd., Raleigh, NC  27615
                    (800)870-1955   (919)881-2141   Fax: (919)870-5720

    Suncoast Technologies
                    PO Box 5835, Spring Hill, FL  34606
                    (904)596-7599

    Sysoft SA       6926 Montagnola, Switzerland
                    (091)543195

    Systronix Inc.  555 S. 300 E., Salt Lake City, UT  84111
                    (801)534-1017  Fax: (801)534-1019
                    BBS: (801)487-2778

    URDA, Inc.      (800)338-0517   (412)683-8732

    US Software     14215 N.W. Science Park Drive, Portland, OR  97229
                    (800)356-7097   (503)641-8446   Fax: (503)644-2413
                    Product information available by ftp -
                       ftp.netcom.com : pub/ussw

    Universal Cross Assemblers
                    Canada
                    (506)849-8952   Fax: (506)847-0681

    Vail Silicon Tools, Inc.
                    Box 165, Pompano Beach FL  33069
                    (305)491-7443   Fax: (305)974-8531

    Zax Corporation
                    2572 White Road, Irving, CA 92714
                    (800)421-0982   (714)474-1170

    Zitek Corporation
                    1651 East Edinger Ave., Santa Ana, Ca  92705
                    (714)541-2931


5)  8051 DOCUMENTATION


5.1) Periodicals that cover the 8051

    Various magazines and journals (journals seems to be THE popular name
    for magazines these days) provide articles from time to time on the
    8051 family of microcontrollers:

    The Computer Applications Journal (Circuit Cellar Ink)
        - programming and construction articles
        - POB 7694, Riverton, NJ  08077-8784
        - FAX: (203)872-2204
        - Voice orders: (609)786-0409
        - On-line orders (BBS): (203)871-1988
        - Email orders: ken.davidson@circellar.com
        - $21.95, $31.95 surface Canada and Mexico,
          $49.95 air all other countries

    Computer Design
        - industry announcements and trends
        - One Technology Park Drive, P.O. Box 990, Westford, MA  01886
        - (508)692-0700

    The Computer Journal
        - programming and construction articles
        - PO Box 535, Lincoln  96648

    Dr. Dobbs Journal
        - programming articles, concepts, and designs
        - 411 Borel Ave., San Mateo, CA  94402
        - (415)358-9500

    Electronic Engineering Times
        - industry announcements and trends
        - FREE to qualified engineers and managers involved in
          engineering decisions
        - Fulfillment Dept., PO Box 9055, Jericho, NY  11753-8955
        - FAX:  (516)733-6960

    Electronics Now
        - construction articles
        - Box 55115, Boulder, CO  80321-5115
        - $19.97 one year

    Elektor Electronics
        - programming and construction articles
        - World Wide Subscription Service Ltd
          Unit 4, Gibbs Reed Farm, Pashley Road
          Ticehurst TN5 7HE, England
        - 27 UK pounds
     or
        - Old Colony Sound Lab, P.O. Box 243, Peterborough, NH 03458
        - Tel. (603)924-6371, 924-6526
        - Fax: (603)924-9467
        - $57 USA and Canada per year

    Embedded Systems Programming
        - programming and systems design articles
        - Miller Freeman Publications
        - 500 Howard St., San Francisco, CA  94105
        - (415) 397-1881

    Inquisitor Magazine
        - If you're the type that watched Gilligan's Island for its
          socio-political insights, then you'll love a new 'zine that
          just crossed my desk - Inquisitor Magazine.  It's general
          philosophy seems to be ... well, it seems to be ... uh, yeah!
          Technical in nature, bizarre, tongue in cheek, eclectic,
          electric, did I mention bizarre(?), and lots of fun.  Worth
          looking at if you like the out of the ordinary.  The moving
          force behind this magazine is Daniel Drennan, who seems to have
          suffered from an overdose of radiation from his computer
          monitor ;-).
        - Planetarium Station, P.O.Box 132, New York, NY  10024-0132
        - (212)595-8370
        - Email: inquisitor@echonyc.com
        - $16 per year (4 issues)

    Microcomputer Journal (formerly Computer Craft)
        - programming and construction articles
        - 76 N. Broadway, Hicksville, NY  11801
        - $29.70 one year

    Midnight Engineering
        - 1700 Washington Ave., Rocky Road, CO  81067
        - (719)254-4553

    MW Media - Product Directories
        - 8051 Product Directory
          (survey of various 8051 products)
        - Intel Development Tools Handbook
          (survey of commercial development tools for the 8051, 8096,
          and 80186 lines of Intel microprocessors)
        - This documents could very well be a "must" if you're into
          serious development using one of these chips.  If you are
          "just" a hobbyist, see how the "other half" lives.
        - other guides on Intel development tools, Embedded Intel 386,
          Intel 486/Pentium, 8051 products, Hitachi microcontroller
          development tools, AMD FusionE86, AMD 29K; low power products,
          DSP, multimedia CD
        - FREE to qualified developers
        - MW Media
        - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
        - (408)288-4721 and (408)286-4200
        - FAX: (408)288-4728

    Nuts & Volts Magazine
        - A National Publication for the Buying and Selling of
          Electronic Equipment
        - 430 Princeland Court, Corona, CA  91719
        - Mailed third class, USA only:  $17.00 one year
                                         $31.00 two years
        - Mailed first class, one year only:  $34.00-USA
                                              $35.00-Canada/Mexico
        - Foreign/Air Mail - $70.00;  Foreign/Surface - $39.00
        - (800)783-4624
        - Email:  74262.3664@compuserve.com


5.2)  Books on the 8051

5.2.1)  List of books

    I don't have information on all of these, only that they exist.  I
    would greatly appreciate it if someone could provide a short synopsis
    and the complete book name if you are familiar with any of these
    titles.

    The 8051 Family of Microcontrollers
        -Richard H. Barnett
        -Prentice-Hall, 1995
        -ISBN 0-02-306281-9

    8051 Interfacing and Applications
        - Applied Logic Engineering
        - 13008 93rd Place North, Maple Grove, MN  55369
        - (612)494-3704

    The 8051 Microcontroller
        - I. Scott MacKenzie
        - Macmillan Publishing Company, 1992
        - includes schematics for a single-board computer,
          assembly-language source code for a monitor program, and
          interfaces to a keypad, LEDs, and loudspeaker.

    The 8051 Microcontroller
        - James W. Stewart
        - Regents/Prentice-Hall, 1993
        - $27.50, 273 pages
        - includes many interfacing examples (switches, solenoids,
          relays, shaft encoders, displays, motors, and A/D converters)
          and a chapter on top-down design method

    The 8051 Microcontroller: Architecture, Programming and Applications
        - Kenneth J. Ayala
        - 241 pages, soft cover
        - 5.25" diskette with assembler and simulator
        - ISBN 0-314-77278-2, Dewey 004.165-dc20
        - West Publishing Company
        - P.O. Box 64526, St. Paul, MN  55164
        - (800)328-9352
        - see review in next section

    Assembly Language Programming (for the MCS-51 family)
        - F. A. Lyn
        - L. S. Electronic Systems Design

    Basic-52 Programmer's Guide
        - Systronix, Inc. (they also sell a Basic compiler)

    Beginner's Guide
        - Suncoast Technologies

    C and the 8051
        - Thomas W. Schultz
        - Prentice Hall
        - ISBN 0-13-753815-4

    Data book / Handbook / Users' Guide
        - Advanced Micro Devices
        - Dallas (User's guide for the DS5000)
        - Intel
        - Philips
        - Siemens

    Embedded Controller Forth for the 8051 Family
        - Academic Press (I think)
        - William H. Payne
        - uses a Forth development system available on the Internet
          (see above in the Forth software section)

    Embedded Systems Programming in C and Assembler
        - John Forrest Brown
        - Van Nostrand Reinhold, 1994
        - 304 pages, $49.95
        - ISBN 0-442-01817-7
        - covers Motorola and Intel processors
        - includes diskette with code from the book
        - book review in Dr. Dobb's Journal, November 1994, page 121

    Experimenter's guide
        - Rigel Corporation

    Introduction to Microcontroller Design, Based on the 8051 family of
    Processors
        - Business Data Computers
        - P.O. Box 1549, Chester, CA  96020

    The Microcontroller Idea Book
        - Jan Axelson (of Microcomputer Journal fame)
        - features the 8052-BASIC microcontroller
        - hands-on guide with complete plans (schematics, design theory,
          program listings, construction details, etc)
        - explains how to use sensors, relays, displays, clock/calendars,
          keypads, wireless links, and more
        - 1994, 273 pages, $31.95 + shipping
        - Lakeview Research, 2209 Winnebago St., Madison, WI  53704
          (608)241-5824  Internet: 71163.3555@compuserve.com
        - contact the author at janaxel@aol.com


5.2.2)  Book reviews

    Jan Axelson's review of her book:
    The Microcontroller Idea Book


       This is a hands-on guide that presents designs for use in data
       loggers, controllers, and other small-computer projects.  It
       includes complete circuit schematics and parts lists, design
       theory, example program listings, construction and debugging tips,
       and vendor listings.  Example circuits and programs are based on
       the 8052-BASIC microcontroller.  The book is loosely based on a
       series of articles I wrote for ComputerCraft magazine (now The
       Microcomputer Journal).

       Chapter titles:  microcontroller basics, inside the 8052-
       BASIC, powering up, saving programs, programming, inputs and
       outputs, switches and keypads, displays, using sensors to
       detect and measure, clocks and calendars, control circuits,
       wireless links, calling assembly-language routines, running
       BASIC-52 from external memory, related products


    Richard H. Barnett's summary of his book:
    The 8051 Family of Microcontrollers

       The book covers basic micros through complete projects using the
       8051 family as examples.  It is designed as a "lots of meat, very
       little filler" type of text, but is very well-suited for use as a
       handbook of project development using 8051 family parts.  The book
       stresses examples, both hardware and software.  The hardware
       examples are real working items including 3 complete projects in
       the last chapter.  Software examples are presented in both C and
       assembly code.  All of the program listings and other software
       examples were imported electronically to the text eliminating
       errors.

       For more info contact the author - barnettr@mace.cc.purdue.edu


    Richard Kendrick's review of the book:
    8051 Interfacing and Applications
    from Applied Logic Engineering

       IN BRIEF

       An excellent collection of interfacing circuits and well commented
       source code in assembly.  This is not a book for beginners as it
       assumes the user is very familiar with the architecture of the
       8051 and its registers.  A disk of assembly source code listings
       is included.

       CHAPTERS

             1    - 8051 Interfacing and Applications
             1.1  - Introduction
             1.2  - Main System Core
             1.3  - Simple Methods of User Input
             1.4  - Interfacing a 16 digit keypad to the 8031
             1.5  - Centronics Parallel Input Port
             1.6  - Centronics Parallel Output Port
             1.7  - Interfacing to the built-in Serial Port
             1.8  - Interfacing to a Dual Channel UART
             1.9  - Interfacing to an LCD
             1.10 - Bank Selection of Memory
                  - Appendix A: List of Vendors
                  - Appendix B: Connection to an External Computer
                     0.1 RS-232 Serial Connection
                     0.2 Centronics Interface Cabling

       COMMENTS

       This spiral bound book is thin (74 pages) but manages to cover a
       lot of information.  All of the sub-chapters have excellent code
       listings with full comments, partial schematic diagrams, and an
       occasional timing diagram.  The chapter on using the serial port
       is based on the MAX232 chip becoming so popular.  A table of timer
       reload values is provided to get standard baud rates but the book
       only mentions the required clock frequency of 11.0592 mHz in the
       first chapter.  It also doesn't explain why a seemingly
       non-standard crystal frequency was chosen.  The dual UART channel
       features the 2681 chip.  The LCD chapter gives a small but
       adequate explaination of the Hitachi controller chip usage on LCD
       displays and a tiny fragment of data on display characteristics of
       LCDs.  The bank selection of memory is useful showing code and
       schematic using five 62256 chips for 160K bytes of read/write
       memory.



    Richard Kendrick's review of the book:
    Microprocessor/Controller Design
    by Wayne P. Lichti of Business Data Computers

       A lame little book better bypassed.  As an introductory text,
       Kenneth Ayala's book is the winner hands down.  This book is a
       poor rehash of the same information in Intel's or AMD's data book.
       There is one code listing in the book and does little more than
       tell the reader that the 8051 family of processors exist.

       This book is 134 pages of wasted time.  The schematics were
       printed on a dot matrix printer and poorly reproduced.  Many of
       the sections are just a table or a paragraph with two or three
       sentences.  Use Ayala's book, you'll learn a lot more useful
       information.


    John Little's review of the book:
    The 8051 Microcontroller: Architecture, Programming and Applications
    by Kenneth J. Ayala

       IN BRIEF

       A good book for those who are already moderately familiar with
       assembly language programming and wish to learn more about 8051
       specifics.  Has many example listings, all of which are very well
       documented in terms of comments and explanations in the text. NOT
       a book for absolute beginners OR hardware hackers looking for
       circuits and applications.


       CHAPTERS

          1 - Microprocessors and Microcontrollers.
          2 - The 8051 Architecture.
          3 - Moving Data.
          4 - Logical Operations.
          5 - Arithmetic Operations.
          6 - Jump and Call Opcodes.
          7 - An 8051 Microcontroller Design.
          8 - Applications.
          9 - Serial Data Communication.
          A - 8051 Operational Code Mnemonics.
          B - How to Use the Assembler.
          C - how to Use the Simulator.
          D - The 8255 Programmable I/O Port.
          E - Control Registers.


       COMMENTS

       In his preface to the book, Mr Ayala states that that it is
       intended for "... a diverse audience. It is meant for use
       primarily by those who work in the area of electronic design and
       assembly language programming of small, dedicated computers".
       Later, he goes on to refer the reader to the manufacturer's data
       books for more information on hardware issues. This sets the tone
       for the whole book, which is very much software orientated.

       Anyone buying the book expecting to find reams of circuit diagrams
       and details on how to build their own 8051 driven, automated car
       assembly plant will be disappointed. In fact, most of the circuits
       and applications shown are very much conceptual, with generic,
       black-box outlines for most of the components. The single
       exception to this is a fairly complete system (8031, EPROM & RAM,
       jumper selectable memory sizes) in the chapter on microcontroller
       design.  Even then, there's no I/O shown (the txd/rxd are
       unconnected).

       Having said that, Mr Ayala does do a fairly thorough job of
       working through the peculiarities of the 8051, with detailed
       coverage of memory organisation, bit/byte level operations,
       timers, interrupts and, at the end of the book, a complete chapter
       on 8051 communication modes. Each area has relevant assembly
       language listings, along with a detailed explanation of the
       workings of the code.

       Each section also has highlighted "comment" passages which point
       out common pitfalls and reinforce critical points. Each chapter
       ends with a summary of the important points covered and a series
       of ten to twenty pertinent problems for the reader to solve. For
       the most part, the answers to the problems can be found in the
       text.  In later chapters though, the reader is asked to elaborate
       on various programming themes and to write assembly language
       programs of their own to perform various tasks. The problems range
       from the bland "Name twenty items which have a built in
       microcontroller" (Chapter 1), to the more esoteric "Compose a
       40-value lookup table that will generate a sawtooth wave using a
       D/A converter" (Chapter 8).

       It should be noted that the book is not aimed at the complete
       novice. For instance, although assembly language listings are used
       throughout, it is not until Appendix B that the reader finds out
       what the assembler actually does and how the listings relate to
       machine code. Even then, the complete neophyte will be left with a
       rather empty feeling, as there are pages and pages of code, the
       schematic for a (more or less) complete system and instructions on
       how to use the assembler, but no information at all on how the
       object code should be utilised (other than with the included
       simulator - see below). If you don't already know how to blow an
       EPROM, you're in trouble.

       The diskette which accompanies the book contains the PseudoSam
       assembler (which is used throughout) and an 8051 simulator. Both
       being intended for use on a PC (it's a measure of how fast the
       computer industry is evolving that a 5.25 inch diskette seems a
       little archaic just three years after the publication date of the
       book).  The PseudoSam assembler ran fine on my system and I was
       able to assemble several of the examples from the book and
       successfully run them on a small, home-brew 8031 system. I was
       totally unable to get the simulator to run. However, as it failed
       on several different systems I'm prepared to believe that my
       particular copy of the diskette was at fault.


       SUMMARY

       All in all, a recommended book for those who have previous
       assembly language experience and wish to get to know details
       relating to the 8051 microcontroller. While the internal
       architecture of the chip is covered in detail, external hardware
       and peripheral interfacing is not.  Only the basic 8051/31 is
       covered, with little mention of the other variants available.
       There are extensive listings in the text, covering routines for
       handling keyboards and displays, as well as timing loops and
       communications. A large, clear typeface ensures that all of the
       listings are completely legible. The layout and presentation of
       the book is excellent, with a consistent, unambiguous style used
       throughout.


    Tim McDonough's review of the book:
    C and the 8051: Programming for Multitasking
    by Thomas W. Schultz

       Schultz's book provides a brief overview of the 8051 architecture
       but is primarily a discussion of multi-tasking software in an 8051
       environment.  He presents quite a few code examples.  The examples
       and the accompanying text show comparisons of how to accomplish
       things in assembler, PLM, and C.  The C examples presented are
       based on Version 3 of the Franklin compiler but should be easily
       understandable by anyone already familiar with C.

       Later chapters in the book deal with more advanced topics.
       Chapters are devoted to Real-Time Ideas, Timing and Scheduling,
       Communications and Synchronization, Interrupts, Priority, and
       Context, and Distributed Systems.  The Real-Time Ideas chapter
       briefly discusses six Real Time Operating System (RTOS) kernels
       offered by several vendors.  Later in the book some examples are
       given to simple applications with and without using a RTOS.

       All in all, a useful addition to my technical library.  It is one
       of the few 8051 books that goes beyond the basics and would be
       particularly of interest to those contemplating their first
       non-trivial 8051 design.


5.3)  Miscellaneous documentation on the 8051

    Advanced Micro Devices
        - application notes

    Intel Corporation
        - application notes

    L.S. Electronic Systems Design
        - application notes (source code on diskette and schematics)

    Philips Semiconductors (Signetics)
        - application notes

    Software Science
        - application notes


__________________________________________________________

I disclaim everything.  The contents of this article might be totally
inaccurate, inappropriate, misguided, or otherwise perverse - except for
my name (hopefully I got that right).

Copyright (c) 1995 by Russell Hersch, all rights reserved.
This FAQ may be posted to any USENET newsgroup, on-line service, or BBS
  as long as it is posted in its entirety and includes this copyright
  statement.
This FAQ may not be distributed for financial gain.
This FAQ may not be included in commercial collections or compilations
   without express permission from the author.

-----------------------------------
Russ Hersch - sibit@datasrv.co.il