
AMD Software End User License Agreement

PLEASE  READ  THIS  LICENSE  CAREFULLY  BEFORE  USING   THE   SOFTWARE.   BY
DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE, YOU ARE AGREEING  TO
BE BOUND BY THE TERMS OF THIS LICENSE.  IF YOU ARE  ACCESSING  THE  SOFTWARE
ELECTRONICALLY,  SIGNIFY  YOUR  AGREEMENT  BY  CLICKING  THE  "AGREE/ACCEPT"
BUTTON.  IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE,  PROMPTLY  RETURN
THE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT  AND  (IF  APPLICABLE)  YOUR
MONEY WILL BE REFUNDED OR IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY  CLICK
"DISAGREE/DECLINE".

1. License.  Advanced  Micro   Devices,  Inc.,  on  behalf  of  itself,  its  
subsidiaries  and  licensors (referred  collectively as "AMD") grants to you  
the  following  non-exclusive,  right  to  use  the  software   accompanying   
this   License  (hereinafter  "Software") subject to the following terms and 
limitations:


(a)   Regardless of the media upon which it is distributed, the Software  is
licensed to you for use solely in conjunction with AMD hardware products  to
which the Software relates ("AMD Hardware").

(b)   You own the medium on which the Software is recorded, but AMD and,  if
applicable,  its  licensors  retain  title  to  the  Software  and   related
documentation.

(c)   You may:

  i) use the Software solely in  connection  with  the  AMD  Hardware  on  a
   single computer;

  ii) make one copy of the Software  in  machine-readable  form  for  backup
   purposes only. You must reproduce on such copy AMD's copyright notice and
   any other proprietary legends that were  on  the  original  copy  of  the
   Software;

  iii) transfer all your license rights in the Software  provided  you  must
   also transfer a copy of this License, the backup copy  of  the  Software,
   the AMD Hardware and the related documentation  and  provided  the  other
   party reads and agrees  to  accept  the  terms  and  conditions  of  this
   License.  Upon such transfer your license rights are then terminated.

(d)   In addition to the license terms above, with respect  to  portions  of
the Software in source code or binary  form  designed  exclusively  for  use
with the Linux operating system ("AMD Linux Code"), you  may  use,  display,
modify, copy, distribute, allow others to  re-distribute,  package  and  re-
package such AMD Linux Code  for  commercial  and  non-commercial  purposes,
provided that:

   i) all binary components of the AMD Linux Code are not  modified  in  any
   way;

   ii) the AMD Linux Code is only used  as  part  of  the  Software  and  in
   connection with AMD Hardware;

   iii) all copyright notices of AMD are reproduced and you refer  to  these
   license terms;

   iv) you  may  not  offer  or  impose any terms on the use  of  AMD  Linux
   Code that alter or restrict this License; and

   v) if you have modified the AMD Linux Code, such  modifications  will  be
   made publicly available and are licensed under the  same  terms  provided
   herein to AMD or any  other  third  party  without  further  restriction,
   royalty or any other license requirement;

   vi) to  the  extent  there  is  any AMD sample or  control  panel  source
   code included in the AMD Linux Code, no rights are granted to modify such
   code except for portions thereof that  may  be  subject  to  third  party
   license terms that grant such rights; 
   
   vii) no rights are granted to distribute the binary form of the AMD Linux
   Kernel Module made by linking the AMD Proprietary  Kernel Library and the 
   AMD  Kernel  Compatibility  Layer  binary  compiled  using  Linux  kernel 
   headers;

   viii) AMD is not  obligated  to  provide  any  maintenance  or  technical 
   support for any code resulting from AMD Linux Code.

2.  Restrictions.  The Software contains copyrighted and patented  material,
trade secrets and other proprietary material.  In  order  to  protect  them,
and except as permitted by this license or applicable legislation,  you  may
not:

  a) decompile,  reverse  engineer,  disassemble  or  otherwise  reduce  the
   Software to a human-perceivable form;

  b) modify, network, rent, lend,  loan,  distribute  or  create  derivative
   works based upon the Software in whole or in part; or

  c) electronically transmit the Software from one computer  to  another  or
   over a network or otherwise transfer the Software except as permitted  by
   this License.

3.  Termination.  This License  is  effective  until  terminated.   You  may
terminate this License at any  time  by  destroying  the  Software,  related
documentation  and  all  copies  thereof.   This  License   will   terminate
immediately without  notice  from  AMD  if  you  fail  to  comply  with  any
provision of this License.  Upon termination you must destroy the  Software,
related documentation and all copies thereof.

4.  Government End Users. If you are acquiring the  Software  on  behalf  of
any  unit  or  agency  of  the  United  States  Government,  the   following
provisions apply.  The Government  agrees  the  Software  and  documentation
were  developed  at  private  expense  and  are  provided  with  "RESTRICTED
RIGHTS".  Use, duplication, or disclosure by the Government  is  subject  to
restrictions as set forth in DFARS 227.7202-1(a) and  227.7202-3(a)  (1995),
DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR  12.212(a)(1995),  FAR  52.227-
19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended  from  time
to time.  In the event that this License, or any  part  thereof,  is  deemed
inconsistent with the minimum rights identified  in  the  Restricted  Rights
provisions, the minimum rights shall prevail.

5.  No Other License.  No rights or licenses are granted by AMD  under  this
License, expressly or  by  implication,  with  respect  to  any  proprietary
information  or  patent,  copyright,  trade  secret  or  other  intellectual
property right owned or controlled by AMD, except as expressly  provided  in
this License.

6.  Additional Licenses.  DISTRIBUTION  OR  USE  OF  THE  SOFTWARE  WITH  AN
OPERATING SYSTEM MAY REQUIRE ADDITIONAL LICENSES FROM THE  OPERATING  SYSTEM
VENDOR.

7.  Disclaimer of Warranty  on  Software.   You  expressly  acknowledge  and
agree that use of the Software is at  your  sole  risk.   The  Software  and
related documentation are provided "AS IS" and without warranty of any  kind
and AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED,  INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF  MERCHANTABILITY  AND  FITNESS
FORA PARTICULAR  PURPOSE,  OF  QUALITY,  OF  QUIET  ENJOYMENT  AND  OF  NON-
INFRINGEMENT  OF  THIRD  PARTY  RIGHTS.   AMD  DOES  NOT  WARRANT  THAT  THE
FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET  YOUR  REQUIREMENTS,  OR  THAT
THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE,  OR  THAT
DEFECTS IN THE SOFTWARE WILL BE  CORRECTED.   THE  ENTIRE  RISK  AS  TO  THE
RESULTS AND PERFORMANCE OF THE SOFTWARE IS  ASSUMED  BY  YOU.   FURTHERMORE,
AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS  REGARDING  THE  USE  ORTHE
RESULTS OF THE USE OF THE SOFTWARE OR  RELATED  DOCUMENTATION  IN  TERMS  OF
THEIR CORRECTNESS, ACCURACY,  RELIABILITY,  CURRENTNESS,  OR  OTHERWISE.  NO
ORAL OR WRITTEN INFORMATION OR ADVICE  GIVEN  BY  AMD  OR  AMD'S  AUTHORIZED
REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE  SCOPE  OF
THIS WARRANTY.  SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU  (AND  NOT  AMD  OR
AMD'S AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE  COST  OF  ALL  NECESSARY
SERVICING, REPAIR OR CORRECTION.  THE SOFTWARE IS NOT INTENDED  FOR  USE  IN
MEDICAL, LIFE SAVING OR LIFE SUSTAINING  APPLICATIONS.   SOME  JURISDICTIONS
DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES,  SO  THE  ABOVE  EXCLUSION
MAY NOT APPLY TO YOU.

8.  Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY  LAW,  UNDER
NO  CIRCUMSTANCES  INCLUDING  NEGLIGENCE,  SHALL  AMD,  OR  ITS   DIRECTORS,
OFFICERS, EMPLOYEES  OR  AGENTS,  BE  LIABLE  TO  YOU  FOR  ANY  INCIDENTAL,
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES  FOR  LOSS  OF
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS  OF  BUSINESS INFORMATION, AND
THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO  USE  THE  SOFTWARE
OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING  THOSE  ARISING  FROM
INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT  OR
OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD OR  AMD'S  AUTHORIZED
REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF  SUCH  DAMAGES.   SOME
JURISDICTIONS DO NOT ALLOW THE LIMITATION  OR  EXCLUSION  OF  LIABILITY  FOR
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE  LIMITATION  OR  EXCLUSION
MAY NOT APPLY TO YOU.  AMD will not be liable for 1) loss of, or damage  to,
your records or data or 2) any damages claimed by you  based  on  any  third
party claim.   In no event shall  AMD's  total  liability  to  you  for  all
damages, losses, and causes of action (whether in contract, tort  (including
negligence) or otherwise) exceed the amount paid by you  for  the  Software.
The foregoing limitations will apply even if  the  above  stated  limitation
fails of its essential purpose.

9.  Controlling Law and Severability.  This License  shall  be  governed  by
and construed under the laws of the  Province  of  Ontario,  Canada  without
reference to its conflict of law principles.   Any  dispute  related  hereto
will be brought only in the courts in  Toronto,  Ontario,  Canada  and  such
courts are agreed  to  be  the  convenient  forum.   In  the  event  of  any
conflicts between foreign law, rules, and  regulations,  and  Canadian  law,
rules, and regulations, Canadian law, rules and  regulations  shall  prevail
and  govern.   The  United  Nations  Convention   on   Contracts   for   the
International Sale of Goods shall not apply to this  License.   If  for  any
reason a court  of  competent  jurisdiction  finds  any  provision  of  this
License or portion thereof, to  be  unenforceable,  that  provision  of  the
License shall be enforced to the maximum extent permissible so as to  effect
the intent of the parties, and the remainder of this License shall  continue
in full force and effect.

10.  Complete Agreement.  This  License  constitutes  the  entire  agreement
between the parties with respect to the use of the Software and the  related
documentation, and supersedes all prior  or  contemporaneous  understandings
or  agreements,  written  or  oral,  regarding  such  subject  matter.    No
amendment to or modification of this  License  will  be  binding  unless  in
writing and signed by a duly authorized representative of AMD.
