Newsgroups: comp.robotics
Path: brunix!cat.cis.Brown.EDU!agate!howland.reston.ans.net!xlink.net!nntp.gmd.de!dearn!barilvm!aristo.tau.ac.il!sibit
From: sibit@datasrv.co.il (Sibit)
Subject: 8051 microcontroller FAQ
Message-ID: <1994Jun23.154717.19874@aristo.tau.ac.il>
Sender: usenet@aristo.tau.ac.il (USENET)
Organization: DataServe LTD. (An Internet Access Provider), Israel.
X-Newsreader: TIN version 1.2 PL2
Date: Thu, 23 Jun 1994 15:47:17 GMT
Lines: 1450


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)  Can 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 representatives and approximate prices
    2.3)  Advantages realized in implementing control applications
          with this family of microcontrollers

      3)  8051 PRODUCTS
    3.1)  FTP sites
    3.2)  BBSs
    3.3)  Free languages and development tools
    3.4)  Free C compilers
    3.5)  Commercially available products

      4)  8051 DOCUMENTATION
    4.1)  Periodicals
    4.2)  Books
    4.3)  Miscellaneous documenation

      5)  What's next.


0)  Rantings and ravings

    A new company (at least for me) popped up in some postings to the
    sci.electronics newsgroup.  Rave reviews for microcontroller boards
    from:  Blue Earth Research
           165 W. Lind Ct.
           Mankato, MN  56001-0400
           (507)387-4001
           Fax:  (507)387-4008
           BBS:  (507)387-4007

    Thanks to all of you who've been in touch with information for the
    FAQ - "I get by with a little help from my friends."

    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 pouring 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."

    New contributors:
            Chris Burian for posting the Hi-Tech C demo
            Doug Girling
            Ken Anderson of ChipTools, Inc.

    Special thanks to:
            Cecil A. Moore of Intel
            Carl Wall (hope your wife has luck with her pea patch, Carl)
            Christophe (Xtof) Huygens
            Simon Yates and Addison-Wesley
            Rigel Systems

    I certainly hope that those of you who know of interesting items for
    the 8051 will share with everyone by contributing to this list.  For
    such a popular chip, I have to believe that there is a lot more out
    there than there appears to be.

    If you are a manufacturer and have an anonymous ftp site available
    that supports the 8051, please let me know by E-Mail so that I can
    add it to this FAQ.


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 users.
          comp.lang.misc
          alt.comp.hardware.homebuilt


1.4)  Can 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.  If anyone has any comments on the format itself,
    I'm open for suggestions.

    Tom Kellett has started a FAQ on the PIC microcontroller line and
    I've just started a FAQ on the 68hc11.  Both FAQs use the same
    format.  Hopefully this will lead towards a much needed collection of
    microcontroller FAQs.


    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
      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
      Maintainer:  Filip Gieszczykiewicz
                   Email:  filip@smi.med.pitt.edu

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


    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
    <rnelson@wsuaix.csc.wsu.edu>.


2)  ABOUT THE 8051


2.1)  The 8051 microcontroller

    The 8051 is a microcontroller originally developed by Intel.  There
    are many manufacturers providing many different variants.

    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 representatives and approximate prices (in USD $)

    There are many, many varieties of 8051 out there.  This is only a
    small sampling of the Intel chips.  Intel has many other varieties
    and other manufacturers produce a mind boggling array of 8051 parts.

    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.3)  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


3)  8051 SOFTWARE

    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.


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   <mirror of ftp.pppl.gov>
        other subdirectories in /pub/microprocs include:
          1802, 6805, 6811, 8048, 8096 and many other microprocessors

    ftp.mcc.ac.uk
        - this is a new 8051 ftp site
    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

    ftp.intel.com
        - not as good as one would hope or think, in fact not any good at
          all for the 8051
        - according to insiders at Intel, this is slated to be improved
        - the last time I checked (Jun 23, 1994) there were a number of
          new directories: mcs51, mcs96, and others - ALL EMPTY.

    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

    130.123.96.9
        giovanni/51forth.zip

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

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

    soon to come (really!)... Philips Semiconductor ftp site


3.2)  BBSs

    The following BBSs have 8051 information:

    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
        - 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
        - (613)256-5820
        - 24 hours a day with touch tone

    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

    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)

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

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

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


3.3)  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:  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
                 ftp.funet.fi : /pub/microprocs/MCS-51/csd4-archive

      Program:  RISM and ECM51.EXE compatible host system
      Description:  RISM is a reduced instruction set monitor and
                    ECM51.EXE is its compatible host system for a PC
      Contributor:  Cecil A. Moore
      Location:  contact Cecil_A_Moore@ccm.hf.intel.com

      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


3.4)  Free C compilers

    The following two compilers are useful only for evaluation and
    tinkering.  Both compilers only output assembler code, and they do
    not include libraries.

        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.

        A freeware version of the Hi-Tech C compiler is available from:
              Circuit Cellar BBS - file name Z8051H83.EXE
              ftp.pppl.gov : /pub/incoming/Z8051H83.EXE
              design.fen.qut.edu.au : /hitech
        Thanks to Chris Burian for posting the information on this and
        for uploading it to ftp.pppl.gov.

    Mark Hopkins (of CAS assembler and 8051.ZIP fame) says he is working
    on a C compiler.  No word yet on when it might be available - but,
    hope is on the horizon.

    I have heard many good things about the Dunfield C compiler and
    development system.  Although not freeware, the low price ($150 for
    the development system, $100 for the compiler by itself) and the good
    reviews make this a package worth looking at.

    I still haven't heard anything to substantiate the rumors of a
    Small-C or GNU port for the 8051.  Anyone have the poop on this?


3.5)  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 do have some
    experience with the Dallas DS5000 (very convenient and easy to use).
    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
        - 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
        - Dunfield Development Systems (low cost)
        - 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.)
        - 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
        - Micro Computer Control (low cost)
        - Nohau Corporation (sells and supports Franklin C)
        - Okapi Systems
        - Signum Systems

    Basic compilers
        - Binary Technology, Inc.
        - Systronix Inc.

    Pascal
        - Scientific Engineering Labs

    PL/M
        - Boston Systems Office
        - Intel Corporation

    8051 and variants
        - Advanced Micro Devices
        - Dallas Semiconductor
        - Intel Corporation
        - Matra Harris Semiconductor
        - Philips Semiconductors
        - Siemens
        - Signetics Corporation

    Board level products
        - Advanced Educational Systems (AES)
             complete learning system (board, LCD, keypad, A/D, D/A, etc)
        - Binary Technology, Inc.
        - Blue Earth Research
        - Circuit Cellar Inc.
        - DataCraft International
        - Dunfield Development Systems
        - EE Systems
        - Forth, Inc.
        - HiTech Equipment Corp.
        - L.S. Electronic Systems Design
        - Parallax, Inc.
        - Prologic Designs
        - Rigel Corporation
        - Software Science
        - Suncoast Technologies
        - URDA, Inc.

    Assemblers
        - 2500 A.D.
        - Archimedes Software
        - Boston Systems Office
        - Cybernetics Microsystems
        - Dunfield Development Systems
        - Intel Corporation
        - Keil Electronics
        - Lear Com Company
        - Metalink
        - Micro Computer Control
        - Microtek Research
        - Nohau Corporation
        - Okapi Systems
        - Parallax, Inc.
        - PseudoCorp
        - Raven Computer Systems
        - Signum Systems
        - Sysoft SA

    Forth
        - AM Research (features a 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 product for the 8051 family
             which includes a board and extensive documentation.
        - 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

    Simulators
        - 2500 A.D.
        - Avocet Systems
        - ChipTools (on a 33 MHz 486 their simulator matches the speed of
          a 12 MHz 8051)
        - Cybernetic Micro Systems
        - Dunfield Development Systems
        - HiTech Equipment Corp.
        - Keil Electronics
        - Lear Com Company
        - Microtek Research
        - PseudoCorp

    Emulators
        - American Automation
        - Applied Microsystems
        - ChipTools (front end for Nohau's emulator)
        - Hewlett-Packard
        - HiTech Equipment Corp.
        - Huntsville Microsystems
        - Kontron Electronics
        - MetaLink Corporation
        - Nohau Corporation
        - Orion Instruments
        - Philips (pseudo-ICE)
        - 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.
        - JMI Software Systems, Inc.
             small, prioritized, preemptive real-time kernel
        - U S Software
             multitasking executive

    Miscellaneous
        - Dallas Semiconductor
             evaluation/development kit for their DS5000 (very nice)
        - Electronic Product Design, Inc.
             development system (integrated package with assembler,
             project manager, text editor, programmer)
        - Parallax, Inc.
             programmers

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

    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

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

    AM Research,
    Loomis, CA.
    (916) 652-7472 or (800)949-8051

    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

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

    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

    Boston Systems Office
    128 Technology Center
    Waltham, MA  02254-9164
    (617)894-7800

    BSO/Tasking
    (800)458-8276 or (617)320-9400

    Business Data Computers
    PO 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
    Voice:905-274-6244
    Fax:905-891-2715
    IP: chiptool@hookup.net

    Circuit Cellar Inc.
    4 Park St.
    Vernon, CT  06066
    (203)875-2751
    Fax: (203)872-2204

    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-0470

    DataCraft International
    2828 Ione Dr.
    San Jose, CA  95132
    (800)873-3709
    (408)259-4866

    Dunfield Development Systems
    PO Box 31044
    Nepean, Ontario  K2B 8S8
    Canada
    (613)256-5820
    Fax: (613)256-5821
    Email:  ddunfield@bix.com
        also
    Micro Amps Ltd
    66 Smithbrook Kilns
    Cranleigh, Surrey  UK
    GU6 BJJ
    Tel: 0483 268999
    Fax: 0483 268397

    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

    Forth, Inc.
    1-800-55FORTH

    Forth Systeme
    P.O. Box 1103
    Breisach, Germany
    7767-551

    Franklin Software
    (408)296-8051

    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

    Huntsville Microsystems
    4040 S. Memorial Parkway
    PO Box 12415
    Huntsville, AL  35802

    Intel Corporation
    3065 Bowers Ave.
    Santa Clara, CA  95051
    Technical Help:  800-628-8686 (USA/Canada only)
                     5 am to 5 pm PST
                     Internet: 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
          Auto config: 1200 thru 14.4K Baud
          (24 Hr. BBS)  Settings: 9600,N,8,1
            (NO parity, 8 data, 1 stop)

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

    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

    L.S. Electronic Systems Design
    2280 Camilla Rd.
    Mississauga, Ontario
    Canada  L5A 2J8
    (905)277-4893
    Fax:  (905)277-0047

    Matra Harris Semiconductor
    2840-100 San Tomas Expressway
    Santa Clara, CA  95051
    (408)986-9000

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

    Micro Computer Control
    PO Box 275
    Hopewell, JN  08525
    (609)466-4116

    MicroMint
    4 Park St.
    Vernon, CT  06066
    (203)875-2751
    Fax: (203)872-2204

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

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

    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

    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

    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

    Raven Computer Systems
    PO Box 12116
    St. Paul, MN  55112
    (612)636-0365

    Rigel Corporation
    PO 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

    Signetics Corporation
    811 E. Arques Ave.
    PO Box 3409
    Sunnyvale, CA  94088-3409

    Signum Systems
    Mountain View, CA
    (415)903-2220
        also
    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

    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

    U S Software
    (503)641-8446
    Fax:  (503)644-2413

    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


4)  8051 DOCUMENTATION


4.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
        - 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

    Microcomputer Journal (formerly Computer Craft)
        - programming and constructions 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


4.2)  Books on the 8051


4.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.

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

    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

    8051 Product Directory
        - MW Media
        - Fairmont Plaza, 50 W. San Fernando, #675, San Jose, CA  95113
        - (408)286-4200

    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

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

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

    Embedded Controller Forth for the 8051 Family
        - Academic Press (I think)
        - William H. Payne
        - uses a Forth development system available on Internet
          (see above in the Forth software section)

    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


4.2.1)  Book reviews

    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.


4.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


5)  What's next

    I'm still working on making this FAQ *.answers compliant.  When this
    is done, it will also be posted to news.answers, comp.answers,
    sci.answers, and will also be archived.


__________________________________________________________

Copyright (c) 1994 by Russell Hersch, all rights reserved.

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


