So I Got a Butterfly – Now What?

Total Page:16

File Type:pdf, Size:1020Kb

So I Got a Butterfly – Now What? So I Got a Butterfly – Now What? Chuck Baird avrfreaks.net, user name zbaird © 2009 by Chuck Baird Table of contents: Introduction..............................................................................................1 Features....................................................................................................2 The bootloader.........................................................................................3 The demo application program................................................................3 Getting your Butterfly to do something...................................................4 But wait, there’s more..............................................................................4 Adding some goodies to your Butterfly...................................................5 Programming (uploading to) the Butterfly ..............................................6 An AVR Studio – Butterfly bootloader session ......................................7 Other programming methods...................................................................9 The AVR core........................................................................................10 Assembly, and C, and other languages, Oh My! ...................................10 Something to play with..........................................................................11 Butterfly (and other) resources ..............................................................12 Summary................................................................................................14 Introduction This guide was written to help the novice user understand and appreciate the potential of the AVR Butterfly, Atmel’s “demonstration and evaluation kit” for their line of LCD capable 8 bit processors. The term “AVR” allegedly means nothing more than a marketing term for the product line, although it coincidentally happens to be the initials of the inventors. At the time of this writing the Butterfly retails for about $20 in the United States. We will take a look at the Butterfly board and its complement of peripherals, the microcontroller that provides its “smarts,” how to upload new programs into it, and some of the documentation and support resources that are available for it. We will only be able to touch the high points to get you started; there is much more that we will omit but which you can discover with a little searching and digging. Always remember, Google is your friend. If this is your first foray into the world of embedded computing, enjoy the trip. These small, general purpose computers are ubiquitous, assisting you hundreds of times a day in ways you never dream of. The Butterfly will give you a glimpse into their array of capabilities. Butterfly Tutorial C. Baird Page 1 of 14 Features Photo 1 shows the front view of an older model Butterfly when they were shipped with a light sensor (an LDR, or photo resistor, shown in the upper left hand corner). Because of RoHS restrictions against cadmium the sensor is no longer mounted, although you are certainly free to add one yourself since all the support circuitry is still included. The small holes around the left and bottom edges of the board are for connecting various external circuits to the Butterfly. They use 0.1” spacing, so standard headers may be soldered in, or wires can be soldered directly to the board. However, nothing external has to be connected to the board for it to function right out of the box. Photo 1: The mighty Butterfly (early model with LDR) The Butterfly’s 6 character, 100 segment LCD is driven directly by the microcontroller – there is no separate LCD controller on the board. Other features of the Butterfly include a 5 position joystick (shown on the right hand side of Photo 1), a piezo element for making noise (or music, depending on your tastes), a 4 megabit nonvolatile dataflash memory, a temperature sensor, and RS-232 level converters for serial communications. It can read voltages (0 – 5v) and has a 32 KHz crystal for real time clock applications. And, as mentioned, it can read a variable resistance where the light sensor was designed to be mounted. The Butterfly’s processor is an Atmel ATMega169 8 bit RISC MCU (reduced instruction set microcontroller unit) powered by a 3 volt coin battery (CR2450). The MCU includes 16K bytes of flash memory (for program storage), 1K bytes of static RAM (for variable storage), and 512 bytes of EEPROM (for nonvolatile variable storage). It has 3 timer/counters, an 8 channel 10 bit A/D converter, an analog comparator, watchdog timer, sleep modes, and more. The ATMega169 datasheet (see the Resources section) details all the features. As shipped, the Butterfly is preloaded with a bootloader and an application demo program that shows off some of its tricks. The battery is included, but has a cardboard Butterfly Tutorial C. Baird Page 2 of 14 spacer which prevents battery drain prior to it reaching the end user. Removing the cardboard spacer should bring your Butterfly to life, although it may not appear to do anything until you press the joystick up and wake it from its nap. See the section below, Getting your Butterfly to do something . The bootloader A bootloader is a small program that can accept input, usually a ready-to-run program, from some source and write it into the memory of the computer the bootloader is running on. Typically a bootloader will either automatically or in response to some command jump to (execute) the new program after it writes it to memory. The name comes from the phrase “to lift yourself up by the bootstraps,” an idiom of unknown origin describing an impossibility but meaning to improve your situation by your own efforts. It was borrowed by the early computer geeks to mean getting a tiny program started which progressively brings in a larger program, and is the origin of the phrase “to boot a computer.” The Butterfly comes with a preloaded serial bootloader program. It also comes with a preloaded demo application, a separate program. The two programs reside in different parts of the ATMega169’s flash memory. The Butterfly’s bootloader is called a “serial” bootloader because it receives its commands and code to write to memory from the serial, or RS-232, communications line on the Butterfly. This is a standard method of computer communications initially used by almost all personal computers, although USB has pretty much replaced it in recent years. If your PC does not have a serial port (a place to plug in an RS-232 connection), you will need to buy a USB to serial converter to use the Butterfly’s serial bootloader. Or find a PC that does have a serial port. There are other ways to program a Butterfly, and we will briefly mention them later. For now we will just concentrate on the preloaded serial bootloader. The demo application program On the Butterfly’s box is a flowchart of the demo program. It is also reproduced in the Butterfly document (see Resources ). Each white rectangle represents an activity or choice presented as a menu item on the LCD. Until you get used to poking the joystick correctly you may find yourself jumping around to places in the flowchart other than where you expect. As you see from the diagram, you can set or read the time-of-day clock, play some music, enter text (via the joystick or the serial line) for display on the LCD, read the temperature, light sensor (if present), or an external voltage (0 – 5v), and set various options. When the joystick is inactive for a certain length of time, the demo program puts the MCU to sleep to conserve the battery. The demo program is a large and sophisticated piece of software, and its C source code has been published by Atmel. The program was converted (“ported”) to WinAVR C Butterfly Tutorial C. Baird Page 3 of 14 (more on that later) and that version is also available on the internet. Reading through the code, if you are interested in such things, will teach you a lot about how to program the Butterfly and AVRs in general. Atmel has also made the Intel hex file of the demo program available on its website. You may reload it into your Butterfly to restore it to its pristine state. Getting your Butterfly to do something When you apply power to your Butterfly it resets the MCU. This is a design feature of the AVR line and most other embedded processors. It is also possible to reset an AVR without removing and restoring power, and later we will see how to add a reset button to your Butterfly. Thus pulling the battery out and reinserting it causes a reset, as does that initial removing of the cardboard spacer isolating the battery on a new Butterfly. On a reset, the ATMega169 starts executing code in one of two places: at the start of the application section of memory, or at the start of the bootloader section of memory. The application section of memory starts at a fixed address (0x0000), and the bootloader section can start at one of four different addresses depending on how we have set things up. How do we tell it which we want? There are some indicators (“fuses”) in nonvolatile memory which hold our choices. If a certain fuse called BOOTRST is programmed one way, a reset jumps to the application section. If it is programmed the other way, a reset jumps to the bootloader section. It is our responsibility to have previous loaded code at the proper address for the way we have set the fuse(s). Perhaps needless to say, the Butterfly’s serial bootloader has been preloaded into the bootloader section of memory, and the demo application has been preloaded into the application section. The BOOTRST fuse has been programmed to make a reset jump to and execute the bootloader, or at least it should be . The bootloader needs to know whether you are wanting to upload a new application or run the existing application. On the Butterfly the one source of easy user input is the joystick, so the bootloader waits for you to press the joystick up (jump to the application) or in (start uploading a new application using the serial communications line). If it doesn’t see either joystick press within a certain amount of time, it goes to sleep. That is, it stops executing instructions and enters a low power mode.
Recommended publications
  • AVRDUDE a Program for Download/Uploading AVR Microcontroller flash and Eeprom
    AVRDUDE A program for download/uploading AVR microcontroller flash and eeprom. For AVRDUDE, Version 6.0rc1, 16 May 2013. by Brian S. Dean Send comments on AVRDUDE to [email protected]. Use http://savannah.nongnu.org/bugs/?group=avrdude to report bugs. Copyright c 2003,2005 Brian S. Dean Copyright c 2006 - 2008 J¨orgWunsch Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents 1 Introduction............................... 1 1.1 History and Credits ......................................... 2 2 Command Line Options .................... 4 2.1 Option Descriptions ......................................... 4 2.2 Programmers accepting extended parameters ................. 15 2.3 Example Command Line Invocations ........................ 18 3 Terminal Mode Operation ................. 22 3.1 Terminal Mode Commands.................................. 22 3.2 Terminal Mode Examples ................................... 23 4 Configuration
    [Show full text]
  • Atmel Evaluation Board Tutorial
    Atmel Evaluation Board Tutorial Bruised and bearlike Andri guidings while differentiated Steve reinfuses her censors concretely and traduces uniquely. Manish is uncappingunsupposable: very sherevoltingly. elutriating feloniously and deep-drawn her witan. Self-loading Wesley retails her spirituousness so straitly that Bartie Usb protocol stack, lcds and evaluation board so Thank you Chris that means a legal to me but hear. This is the most common way we develop of an AVR. Tutorial How to Design Your enterprise Custom STM32. After this better done by board was all required certificates are at place. Fi chips which are widely used in mobile devices and the Internet of Things applications. Let see if anyone else but get you actually more specific info. Used in atmel sample programs are included to build the board designs offered by an urgent requirement so much, as we just let us write the cheapest ones. Usb port like a board, but not have the atmel has worked with? We have selected this board mainly because of substitute low cost. By default the royal Wizard launches at startup. Thanks for friend article. But it will use the board and how you. Your schematic comparison errors, and connected to understand polarized components like to upload process from avr processor, download atmel studio comes preloaded with custom microcontroller. The really brief design and manufacturing files and user's guide. To run on board, superimposed pins as vias. The Xplained Pro extension series evaluation kits offers additional peripherals to wool the features of the dire and idle the development of. MCU and acting as secure element to your devices.
    [Show full text]
  • 8-Bit Microcontrollers 32-Bit Microcontrollers and Application
    8-bit Microcontrollers 32-bit Microcontrollers and Application Processors QUICK REFE R ENCE GUIDE February 2009 Everywhere You Are® AVR Introduction Atmel® offers both 8-bit and 32-bit AVR®s. AVR microcontrollers and application processors deliver unmatched flexibility. AVR combines the most code-efficient architecture for C and assembly programming with the ability to tune system parameters throughout the entire life cycle of your key products. Not only do you get to market faster, but once there, you can easily and cost-effectively refine and improve your product offering. The AVR XMEGA gives you 16-bit performance and leading low-power features at 8-bit price. It’s simple: AVR works across the entire range of applications you’re working on... or want to work on. & Introduction QUICK REFERENCE GUIDE AVR Key Benefits AVR32 Key Benefits High performance High CPU performance picoPower™ technology Low power consumption High code density High data throughput High integration and scalability Low system cost Complete tool offering High reliability Atmel’s AVR is addressing the 8-bit and 16-bit market Easy to use Environment Friendly Packages For AVR and AVR32 microcontrollers and application processors, all the lead free packages are RoHS compliant, lead free, halide free and fully green. All parts are offered in fully green packaging only. Product Range Atmel microcontrollers - success through innovation Atmel offers both 8-bit and 32-bit AVR’s, and since day one the AVR philosophy has always been clear: Highest performance with no power penalty. tinyAVR 1-16 KBytes Flash, 8-32 pin packages megaAVR 4-256 KBytes Flash, 28-100 pin packages AVR XMEGA 16-384 KBytes Flash, 44-100 pin packages AVR32 UC3 16-512 KBytes Flash, 48-144 pin packages AVR32 AP7 Up to 32 KBytes On-chip SRAM, 196-256 pin packages & QUICK REFERENCE GUIDE Product Range Product Product Range Range Product Families tinyAVR® General purpose microcontrollers with up to 16K Bytes Flash program memory, 512 Bytes SRAM and EEPROM.
    [Show full text]
  • Adaptive Elevator Dispatcher (Using an 8-Bit AVR Microcontroller)
    the Technology Interface/Spring 2007 Cloutier and Moslehpour Adaptive Elevator Dispatcher (Using an 8-bit AVR Microcontroller) by Greg Cloutier Saeid Moslehpour [email protected] [email protected] Dep. of Electrical & Computer Engineering Dep. of Electrical & Computer Engineering University of Hartford University of Hartford Abstract: An elevator usually operates in a first come, first served mode. Any individual passenger only selects to go up or down from their current location. It is not until the passenger has entered the elevator that their actual desired location is known. The elevator will run up and stop at floors in ascending order where either a desired location is known or a new pickup request has been made. The elevator then repeats this process in the down direction and continues to cycle in this fashion until it has reacted to all the requests. Also note that the elevator has no idea what the passenger count is per request. A group of 10 passengers only needs to request a destination one time. This project will focus on a simulated office building that has 10 floors and four elevators. There are at least three different time periods where it would be nice to optimize the dispatch of the elevators with the intent to increase passenger throughput. These times are in the morning when workers first arrive, lunch time when some workers go to a cafeteria on a particular floor (or leave the building), and in the afternoon when workers leave the building. Initially, this project will focus on the Monday morning rush with the intent to increase passenger throughput over a fixed period of time.
    [Show full text]
  • AVR Butterfly Evaluation Kit
    AVR Butterfly Evaluation Kit .............................................................................................. User Guide Table of Contents Section 1 Introduction ........................................................................................... 1-5 1.1 Resources Available on the AVR Butterfly Kit ..........................................1-6 Section 2 How to Operate the Pre-programmed Application................................ 1-7 2.1 Included Firmware ....................................................................................1-7 2.2 Joystick Input ............................................................................................1-8 2.3 Menu System ............................................................................................1-9 2.4 Bootloader...............................................................................................1-11 Section 3 Using the AVR Butterfly ...................................................................... 1-15 3.1 Connectors..............................................................................................1-15 3.2 Programming the AVR Butterfly..............................................................1-15 3.3 JTAG.......................................................................................................1-19 3.4 LCD Display ............................................................................................1-20 3.5 Joystick ...................................................................................................1-20
    [Show full text]
  • Avrdude Userguide
    AVRDUDE A program for download/uploading AVR microcontroller flash and eeprom. For AVRDUDE, Version 5.1, 13 January 2006. by Brian S. Dean Send comments on AVRDUDE to [email protected]. Use http://savannah.nongnu.org/bugs/?group=avrdude to report bugs. Copyright c 2003,2005 Brian S. Dean Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. i Table of Contents 1 Introduction............................... 1 1.1 History and Credits ......................................... 1 2 Command Line Options .................... 3 2.1 Option Descriptions ......................................... 3 2.2 Example Command Line Invocations ........................ 10 3 Terminal Mode Operation ................. 14 3.1 Terminal Mode Commands.................................. 14 3.2 Terminal Mode Examples ................................... 15 4 Configuration File ........................ 18 4.1 AVRDUDE Defaults........................................ 18
    [Show full text]
  • Getting Started
    C Programming for Microcontrollers Featuring ATMEL’s AVR Butterfly and the Free WinAVR Compiler Joe Pardue SmileyMicros.com Copyright © 2005 by Joe Pardue, All rights reserved. Published by Smiley Micros Smiley Micros 5601 Timbercrest Trail Knoxville, TN 37909 Email: [email protected] Web: http://www.SmileyMicros.com ISBN 0-9766822-0-6 Products and services named in this book are trademarks or registered trademarks of their respective companies. In all instances where Smiley Micros is aware of a trademark claim, the product name appears in initial capital letters, in all capital letters, or in accordance with the vendor’s capitalization preferences. Readers should contact the appropriate companies for complete information on trademarks and trademark registrations. All trademarks and registered trademarks in this book are the property of their respective holders. No part of this book, except the programs and program listings, may be reproduced in any form, or stored in a database of retrieval system, or transmitted or distributed in any form, by any means, electronic, mechanical photocopying, recording, or otherwise, without the prior written permission of Smiley Micros or the author. The programs and program listings, or any portion of these, may be stored and executed in a computer system and may be incorporated into computer programs developed by the reader. NONE OF THE HARDWARE USED OR MENTIONED IN THIS BOOK IS GUARANTEED OR WARRENTED IN ANY WAY BY THE AUTHOR. THE MANUFACTURERS OR THE VENDORS THAT SHIPPED TO YOU MAY PROVIDE SOME COVERAGE, BUT THAT IS BETWEEN YOU AND THEM. NEITHER THE AUTHOR NOR SMILEY MICROS CAN PROVIDE ANY ASSISTANCE OR COMPENSATION RESULTING FROM PROBLEMS WITH THE HARDWARE.
    [Show full text]
  • AVR Development Board
    www.ijemr.net ISSN (ONLINE): 2250-0758, ISSN (PRINT): 2394-6962 Volume-7, Issue-2, March-April 2017 International Journal of Engineering and Management Research Page Number: 585-588 AVR Development Board Ankush Tandon1, Aayush Dubey2, Akash Singhal3, Ayush Goyal4, Gulshan Kumar Goyal5, Heena Aggarwal6 1,2,3,4,5,6Department of Electrical Engineering, Swami Keshvanand Institute of Technology Management & Gramothan, Ramnagaria, Jagatpura, Jaipur (RAJ.), INDIA ABSTRACT AMD chips) that provides the intelligence, RAM and Microcontroller is a compressed micro computer EEPROM memories and interfaces to rest of system, like manufactured to control the functions of embedded systems serial ports, disk drives and display interfaces. A in office machines, robots, home appliances, motor vehicles, microcontroller has all or most of these features built-in and a number of other gadgets. A micro controller to a single chip, so it doesn’t need a motherboard and development board is a printed circuit board containing a many components. AVRs are available with 8-pins to micro controller and the minimal support logic needed for an engineer to become acquainted with the microcontroller 100-pins, although anything 64-pin or over is surface on the board and to learn to program it. mount only. Most people start with a DIL (Dual In Line) Microcontroller has a CPU, in addition with a 28-pin chip like the ATmega328 or the 40-pin fixed amount of RAM, ROM and other peripherals all ATmega16 or ATmega32. PC microprocessors are embedded on a single chip. At times it is also termed as a always at least 32-bit and commonly now 64-bit.
    [Show full text]
  • Nuts and Volts
    Archivo Descargado desde las WEBS http://www.enigmaelectronica.tk Http://www.enigma.phpnet.us By enigmaelectronica > 01 $7.00 CANADA $5.50 74470 89295 03 U.S. Cover.qxd 12/11/2008 1:25 PM Page 1 Vol. 30 No. 1 NUTS & VOLTS PROTO BUDDY • SPICE SIMULATION • MOSFETS • How To - SMT SOLDERING January 2009 Jan 09.qxd 12/10/2008 6:02 PM Page 6 January 2009 www.nutsvolts.com C o n t e n t s Features 50 Power MOSFETs ■ By Gerard Fonte Part 1 will cover the theory behind these useful devices that have a lot of overlooked features. 54 A Touch of Spice ■ By Peter Stonard This month, make discoveries about IC circuits that are well-known and learn more about the concepts of sub-circuits and macromodels. 60 How To: Surface Mount Soldering ■ By Robert Doerr Get over your fear of working with these tiny components. Page 44 Page 40 Projects Columns 34 Instrumentation for Model Rocketry Incorporate additional instrumentation to a flight recorder 12 TechKnowledgey 2009 to measure a rocket’s rate of roll, relative altitude, and Events, Advances, and News booster-stage separation detection. ■ By Michael Bessant Topics covered include reconnecting brain ●●●● Advanced Level cells, a new unified storage appliance, don’t mix headphones and pacemakers, plus more. 40 16x16 Tri-Colored LED Matrix — 15 Personal Robotics Real Time Clock for the Parallax SX52 Understanding, Designing & Constructing This project allows the user to create their own scrolling Robots display to show the time (or other messages) in multiple Robo resolutions for 2009. colors.
    [Show full text]
  • Smiley's AVR Butterfly Introduction
    C Programming for Microcontrollers Quick Start Guide: The Next Generation Joe Pardue SmileyMicros.com Copyright © 2008 by Joe Pardue, All rights reserved. Published by Smiley Micros - October 2008 Smiley Micros 5601 Timbercrest Trail Knoxville, TN 37909 Email: [email protected] Web: http://www.SmileyMicros.com Products and services named in this book are trademarks or registered trademarks of their respective companies. In all instances where Smiley Micros is aware of a trademark claim, the product name appears in initial capital letters, in all capital letters, or in accordance with the vendor’s capitalization preferences. Readers should contact the appropriate companies for complete information on trademarks and trademark registrations. All trademarks and registered trademarks in this book are the property of their respective holders. No part of this book, except the programs and program listings, may be reproduced in any form, or stored in a database of retrieval system, or transmitted or distributed in any form, by any means, electronic, mechanical photocopying, recording, or otherwise, without the prior written permission of Smiley Micros or the author. The programs and program listings, or any portion of these, may be stored and executed in a computer system and may be incorporated into computer programs developed by the reader. NONE OF THE HARDWARE USED OR MENTIONED IN THIS BOOK IS GUARANTEED OR WARRANTED IN ANY WAY BY THE AUTHOR. THE MANUFACTURERS OR THE VENDORS THAT SHIPPED TO YOU MAY PROVIDE SOME COVERAGE, BUT THAT IS BETWEEN YOU AND THEM. NEITHER THE AUTHOR NOR SMILEY MICROS CAN PROVIDE ANY ASSISTANCE OR COMPENSATION RESULTING FROM PROBLEMS WITH THE HARDWARE.
    [Show full text]
  • NUTS and VOLTS Message Code: We Can Use the Same Sendchar Function to Arbitrarily Set the Cursor Position
    WWW.GiURUMELE.Hi2.RO WWW.RADiOSCAMATORUL.Hi2.RO > 11 $7.00 CANADA $5.50 74470 89295 03 U.S. Cover.qxd 10/8/2008 7:10 PM Page 1 Vol. 29 No. 11 NUTS & VOLTS PICMAS TREE • HOLIDAY LIGHTS • ZLOG ALTIMETER • CRUSTCRAWLER ARM November 2008 Full Page.qxd 12/4/2007 4:26 PM Page 2 WWW.GiURUMELE.Hi2.RO WWW.RADiOSCAMATORUL.Hi2.RO Full Page.qxd 6/2/2008 11:31 AM Page 3 WWW.GiURUMELE.Hi2.RO WWW.RADiOSCAMATORUL.Hi2.RO Free Book with Kit Full Page.qxd 10/7/2008 9:23 AM Page 4 WWW.GiURUMELE.Hi2.RO WWW.RADiOSCAMATORUL.Hi2.RO Let your geek shine. Meet Pete Lewis, lead vocalist for the band Storytyme. Pete recently created the RS1000, a new personal monitor system for performing musicians. It was SparkFun’s tutorials, products and PCB service that enabled him to take his idea to market in less than a year. The tools are out there. Find the resources you need to let your geek shine too. Sharing Ingenuity WWW.SPARKFUN.COM ©2008 SparkFun Electronics, Inc. All rights reserved. Hear music from Storytyme at www.storytymeband.com, or check out Pete’s RS1000 at www.rockonaudio.com. Full Page.qxd 10/7/2008 9:30 AM Page 5 You’ve done it the hard way. You’ve earned the right. Introducing Logic, the new Logic Analyzer with SPI, Serial, and I2C. Now shipping for $149. WWW.GiURUMELE.Hi2.RO WWW.RADiOSCAMATORUL.Hi2.RO Divide the oscillator frequency by 10 million, and measure the timing with an LED and a stopwatch.
    [Show full text]
  • Joe Pardue Smileymicros.Com
    Quick Start Guide for Using the WinAVR Compiler with ATMEL’s AVR Butterfly Joe Pardue SmileyMicros.com The Butterfly Quick Start was extracted from C Programming for Microcontrollers – Featuring ATMEL’s Butterfly and the free WinAVR compiler (available from SmileyMicros.com) Copyright © 2005 by Joe Pardue, All rights reserved. Published by Smiley Micros Smiley Micros 5601 Timbercrest Trail Knoxville, TN 37909 Email: [email protected] Web: http://www.SmileyMicros.com ISBN 0-9766822-0-6 Products and services named in this book are trademarks or registered trademarks of their respective companies. In all instances where Smiley Micros is aware of a trademark claim, the product name appears in initial capital letters, in all capital letters, or in accordance with the vendor’s capitalization preferences. Readers should contact the appropriate companies for complete information on trademarks and trademark registrations. All trademarks and registered trademarks in this book are the property of their respective holders. No part of this book, except the programs and program listings, may be reproduced in any form, or stored in a database of retrieval system, or transmitted or distributed in any form, by any means, electronic, mechanical photocopying, recording, or otherwise, without the prior written permission of Smiley Micros or the author. The programs and program listings, or any portion of these, may be stored and executed in a computer system and may be incorporated into computer programs developed by the reader. NONE OF THE HARDWARE USED OR MENTIONED IN THIS BOOK IS GUARANTEED OR WARRENTED IN ANY WAY BY THE AUTHOR. THE MANUFACTURERS OR THE VENDORS THAT SHIPPED TO YOU MAY PROVIDE SOME COVERAGE, BUT THAT IS BETWEEN YOU AND THEM.
    [Show full text]