Dick Cappels' project pages http://www.projects.cappels.org

Return to HOME (More projects)
AttoBasic Home
This page, its contents and referenced files are copyright 2002, 2003, and 2004 by Richard Cappels.

Byte-Wide AttoBasic for

ATMEGA8515/AT90S8515 and ATMEGA163

This interpreter uses on-chip RAM and EEPROM. Supports power-on EEPROM Execution.

Inspired by Nascom Tiny Basic, this byte-wide basic was written to facilitate experimenting with small control systems.

Want something that fits into an AT90S2313? click here.         


EVALUATION: =,:=, <>, >, <,


MEMORY, I/O: PEEK, POKE, plus dedicated I/O instructions for 8 and 10 bit pulse width modulation, 8 bit A-to-D, byte I/O and single bit manipulation and testing on Ports A thorgh D, and rudimentary DS Interface instructions DSCOMMAND, DSDATA, and DSREAD.

Programs are stored in internal RAM. Some RAM is available for use as an array via PEEK and POKE commands. 26 Variables (A..Z) are supported. All arithmetic and variables are byte-wide. Strings are not directly supported. Keep statements to one simple exression per line. Line editor supports destructive backspace (delete key), line replacement , line deletion, and line insertion. Valid line numbers range is 0..255. Lines entered with a numeral in the first column will be stored, others will be interpreted immediately. SAVE and LOAD commands save and load the program from the on-chip EEPROM. If RXD pin is held low during power-up, EEPROM code will be automatically loaded and executed. The interpreter is not case-sensitive. PEEK and Poke provide access to all on-chip peripherals. Special I/O commands support bit I/O. GOSUB-RETURN and FOR-NEXT loops have one return level.

The differences between the ATMega8515/AT90S8515 and ATmega163 versions is the amount of RAM available for program space and that the ATmega163 has support for the on-chip A-to-D converter while the '8515's do not..

AT90S8515/ATMEGA8515 hex files
298 Byte program space, no A-to-D converter
Note: When using the ATMEGA8515 make sure you slect the AT90S8515 Compatibility Fuse setting. Look here to see the ATMEGA8515 fuse setup.

Download the AVR Studio hex file for AttoBasic8 version 8515-021109B 3.69 MHz.hex for the STK-500 (file name 8515B3.hex, 13k bytes).

Download the AVR Studio hex file for AttoBasic version 8515-021109B 4Mhz.hex for 4 MHz version (file name 85154.HEX, 13k bytes).

Download the AVR Studio hex file for AttoBasic version 8515-021109B 8Mhz.hex for 8 MHz version (file name 8515B8.hex, 13k bytes).

Download the AVR Studio hex file for AttoBasic version 8515-021109B 16Mhz.hex for 16MHz (ATMEGA8515/L ONLY!) version (file name 8515B16.hex, 13k bytes).

AVRStudio assembler source for AT90S8515/ATMEGA8515 version, 8515-021115C.asm.

ATMEGA163 hex files -version 163-021115C
499 Bytes program space with A/D converter

Click to download the AVR Studio hex file for AttoBasic 163-021109B 3.69 MHz.hex for the STK-500 (file name:163B3hex, 13k bytes).

Click to download the AVR Studio hex file for AttoBasic version 163-021109B 4Mhz.hex for 4MHz version (file name 163B4.hex, 13k bytes).

Click to download the AVR Studio hex file for AttoBasic version 163-021109B 8Mhz.hex for 8 MHz version (file name 163B8.hex, 13k bytes).

AVRStudio assembler source for ATMEGA163 version,163-021115C.asm

When programming the chips, remember to select the crystal oscillator option.

Communications is to a terminal at 9600 baud one stop bit, no parity.


Click here for the Online HTLM user guide (file name 163bbu.htm. 42k bytes).

Click here for stuffed HTML user guide (file name 163bbu.htm.sit 12k bytes).


Short form command set (file name sumc.pdf, 4k bytes)

Hardware Considerations

This firmware is intended to run on Atmel ATmega163 (499 bytes for program memory) or AT90S8515 (298 Bytes for program memory). Communications with the terminal is via RS-232 at 9600 baud. Use 8 data bits, 1 stop bit, and no parity. The RXD pin and TXD pin should be connected to an inverting RS-232 interface. The Maxim MAX-232 and the discreet interface shown in the schematic which is described in Atmel Application note AVR-910, are examples of such interfaces. If the RXD pin is grounded when the chip comes out of reset, either from application of power or after an external reset, the contents of the EEPROM will be loaded and executed by the interpreter. If the contents of the EEPROM is loaded when the EEPROM is in an erased state some of the internal pointers will be set inappropriately, so it is advisable to type "NEW" and "SAVE" to initialize the EEPROM. A weak internal pull-up is applied to the RXD pin. Weak internal pullups are also applied to PD3 and PD4 for the DS Interface. Applications with particularly low parasitic capacitance on the DS Interface lines can omit the external pullup resistors on these two pins.

Use of information presented on this page is for personal, nonprofit educational
and noncommercial use only. This material (including object files) is copyrighted
by Richard Cappels and may not be republished or used directly for commercial
purposes without explicit permission For commercial license,
click HERE.

AttoBasic Home

Please see the liability disclaimer on the HOME page.

Contents ©2002-2004 Richard Cappels All Rights Reserved. http://www.projects.cappels.org/