;/*****************************************************
;This program was produced by the
;CodeWizardAVR V2.05.0 Professional
;Automatic Program Generator
;© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
;http://www.hpinfotech.com
;
;Project :
;Version :
;Date    : 2012-10-26
;Author  :
;Company :
;Comments:
;
;
;Chip type               : ATmega2560
;Program type            : Application
;AVR Core Clock frequency: 16.000000 MHz
;Memory model            : Small
;External RAM size       : 0
;Data Stack size         : 2048
;*****************************************************/
;
;#include <mega2560.h>
;PCODE: $00000000 VOL: 0
	#ifndef __SLEEP_DEFINED__
;PCODE: $00000001 VOL: 0
	#define __SLEEP_DEFINED__
;PCODE: $00000002 VOL: 0
	.EQU __se_bit=0x01
;PCODE: $00000003 VOL: 0
	.EQU __sm_mask=0x0E
;PCODE: $00000004 VOL: 0
	.EQU __sm_powerdown=0x04
;PCODE: $00000005 VOL: 0
	.EQU __sm_powersave=0x06
;PCODE: $00000006 VOL: 0
	.EQU __sm_standby=0x0C
;PCODE: $00000007 VOL: 0
	.EQU __sm_ext_standby=0x0E
;PCODE: $00000008 VOL: 0
	.EQU __sm_adc_noise_red=0x02
;PCODE: $00000009 VOL: 0
	.SET power_ctrl_reg=smcr
;PCODE: $0000000A VOL: 0
	#endif
;PCODE: $0000000B VOL: 0
;PCODE: $0000000C VOL: 0
;#include <delay.h>
;
;#ifndef RXB8
;#define RXB8 1
;#endif
;
;#ifndef TXB8
;#define TXB8 0
;#endif
;
;#ifndef UPE
;#define UPE 2
;#endif
;
;#ifndef DOR
;#define DOR 3
;#endif
;
;#ifndef FE
;#define FE 4
;#endif
;
;#ifndef UDRE
;#define UDRE 5
;#endif
;
;#ifndef RXC
;#define RXC 7
;#endif
;
;#define FRAMING_ERROR (1<<FE)
;#define PARITY_ERROR (1<<UPE)
;#define DATA_OVERRUN (1<<DOR)
;#define DATA_REGISTER_EMPTY (1<<UDRE)
;#define RX_COMPLETE (1<<RXC)
;
;// USART0 Receiver buffer
;#define RX_BUFFER_SIZE0 8
;char rx_buffer0[RX_BUFFER_SIZE0];
;
;
;unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;
;
;// This flag is set on USART0 Receiver buffer overflow
;bit rx_buffer_overflow0;
;
;// USART0 Receiver interrupt service routine
;interrupt [USART0_RXC] void usart0_rx_isr(void)
; 0000 0049 {

	.CSEG
;PCODE: $0000000D VOL: 0
;PCODE: $0000000E VOL: 0
; 0000 004A char status,data;
; 0000 004B status=UCSR0A;
;PCODE: $0000000F VOL: 0
;PCODE: $00000010 VOL: 0
;	status -> R17
;	data -> R16
;PCODE: $00000011 VOL: 0
;PCODE: $00000012 VOL: 0
; 0000 004C data=UDR0;
;PCODE: $00000013 VOL: 0
;PCODE: $00000014 VOL: 0
; 0000 004D if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
;PCODE: $00000015 VOL: 0
;PCODE: $00000016 VOL: 0
;PCODE: $00000017 VOL: 0
; 0000 004E    {
; 0000 004F    rx_buffer0[rx_wr_index0++]=data;
;PCODE: $00000018 VOL: 0
;PCODE: $00000019 VOL: 0
;PCODE: $0000001A VOL: 0
;PCODE: $0000001B VOL: 0
;PCODE: $0000001C VOL: 0
;PCODE: $0000001D VOL: 0
; 0000 0050 
; 0000 0051    if (rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;
;PCODE: $0000001E VOL: 0
;PCODE: $0000001F VOL: 0
;PCODE: $00000020 VOL: 0
;PCODE: $00000021 VOL: 0
; 0000 0052    if (++rx_counter0 == RX_BUFFER_SIZE0)
;PCODE: $00000022 VOL: 0
;PCODE: $00000023 VOL: 0
;PCODE: $00000024 VOL: 0
;PCODE: $00000025 VOL: 0
;PCODE: $00000026 VOL: 0
;PCODE: $00000027 VOL: 0
; 0000 0053       {
; 0000 0054       rx_counter0=0;
;PCODE: $00000028 VOL: 0
; 0000 0055       rx_buffer_overflow0=1;
;PCODE: $00000029 VOL: 0
;PCODE: $0000002A VOL: 0
; 0000 0056       }
; 0000 0057    }
;PCODE: $0000002B VOL: 0
; 0000 0058 }
;PCODE: $0000002C VOL: 0
;PCODE: $0000002D VOL: 0
;PCODE: $0000002E VOL: 0
;PCODE: $0000002F VOL: 0
;PCODE: $00000030 VOL: 0
;
;// Standard Input/Output functions
;#include <stdio.h>
;
;// Declare your global variables here
;
;void main(void)
; 0000 0060 {
;PCODE: $00000031 VOL: 0
; 0000 0061 #pragma optsize-
; 0000 0062 CLKPR=0x80;
;PCODE: $00000032 VOL: 0
;PCODE: $00000033 VOL: 0
; 0000 0063 CLKPR=0x00;
;PCODE: $00000034 VOL: 0
;PCODE: $00000035 VOL: 0
; 0000 0064 #ifdef _OPTIMIZE_SIZE_
; 0000 0065 #pragma optsize+
; 0000 0066 #endif
; 0000 0067 // USART0 initialization
; 0000 0068 // Communication Parameters: 8 Data, 1 Stop, No Parity
; 0000 0069 // USART0 Receiver: On
; 0000 006A // USART0 Transmitter: On
; 0000 006B // USART0 Mode: Asynchronous
; 0000 006C // USART0 Baud Rate: 9600
; 0000 006D UCSR0A=0x00;
;PCODE: $00000036 VOL: 0
;PCODE: $00000037 VOL: 0
; 0000 006E UCSR0B=0x98;
;PCODE: $00000038 VOL: 0
;PCODE: $00000039 VOL: 0
; 0000 006F UCSR0C=0x06;
;PCODE: $0000003A VOL: 0
;PCODE: $0000003B VOL: 0
; 0000 0070 UBRR0H=0x00;
;PCODE: $0000003C VOL: 0
;PCODE: $0000003D VOL: 0
; 0000 0071 UBRR0L=0x67;
;PCODE: $0000003E VOL: 0
;PCODE: $0000003F VOL: 0
; 0000 0072 
; 0000 0073 
; 0000 0074 // Global enable interrupts
; 0000 0075 #asm("sei")
;PCODE: $00000040 VOL: 0
	sei
;PCODE: $00000041 VOL: 0
; 0000 0076 
; 0000 0077 while (1)
;PCODE: $00000042 VOL: 0
; 0000 0078       {
; 0000 0079        int i=0;
; 0000 007A        if(rx_buffer_overflow0)
;PCODE: $00000043 VOL: 0
;PCODE: $00000044 VOL: 0
;PCODE: $00000045 VOL: 0
;PCODE: $00000046 VOL: 0
;PCODE: $00000047 VOL: 0
;	i -> Y+0
;PCODE: $00000048 VOL: 0
;PCODE: $00000049 VOL: 0
;PCODE: $0000004A VOL: 0
; 0000 007B        {
; 0000 007C             for(i=0;i<8;i++)
;PCODE: $0000004B VOL: 0
;PCODE: $0000004C VOL: 0
;PCODE: $0000004D VOL: 0
;PCODE: $0000004E VOL: 0
;PCODE: $0000004F VOL: 0
;PCODE: $00000050 VOL: 0
;PCODE: $00000051 VOL: 0
;PCODE: $00000052 VOL: 0
;PCODE: $00000053 VOL: 0
;PCODE: $00000054 VOL: 0
; 0000 007D             {
; 0000 007E              while(!(UCSR0A&(1<<UDRE)));
;PCODE: $00000055 VOL: 0
;PCODE: $00000056 VOL: 0
;PCODE: $00000057 VOL: 0
;PCODE: $00000058 VOL: 0
;PCODE: $00000059 VOL: 0
;PCODE: $0000005A VOL: 0
; 0000 007F              UDR0=rx_buffer0[i];
;PCODE: $0000005B VOL: 0
;PCODE: $0000005C VOL: 0
;PCODE: $0000005D VOL: 0
;PCODE: $0000005E VOL: 0
; 0000 0080              delay_ms(1);
;PCODE: $0000005F VOL: 0
;PCODE: $00000060 VOL: 0
;PCODE: $00000061 VOL: 0
; 0000 0081             }
;PCODE: $00000062 VOL: 0
;PCODE: $00000063 VOL: 0
;PCODE: $00000064 VOL: 0
;PCODE: $00000065 VOL: 0
;PCODE: $00000066 VOL: 0
;PCODE: $00000067 VOL: 0
; 0000 0082             rx_buffer_overflow0=0;
;PCODE: $00000068 VOL: 0
;PCODE: $00000069 VOL: 0
; 0000 0083         }
; 0000 0084 
; 0000 0085       }
;PCODE: $0000006A VOL: 0
;PCODE: $0000006B VOL: 0
;PCODE: $0000006C VOL: 0
;PCODE: $0000006D VOL: 0
; 0000 0086 }
;PCODE: $0000006E VOL: 0
;PCODE: $0000006F VOL: 0
;PCODE: $00000070 VOL: 0
