;/*****************************************************
;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    : 2011-09-17
;Author  : NeVaDa
;Company :
;Comments:
;
;
;Chip type               : ATmega128
;Program type            : Application
;AVR Core Clock frequency: 16.000000 MHz
;Memory model            : Small
;External RAM size       : 0
;Data Stack size         : 1024
;*****************************************************/
;
;#include <mega128.h>
;PCODE: $00000000 VOL: 0
	#ifndef __SLEEP_DEFINED__
;PCODE: $00000001 VOL: 0
	#define __SLEEP_DEFINED__
;PCODE: $00000002 VOL: 0
	.EQU __se_bit=0x20
;PCODE: $00000003 VOL: 0
	.EQU __sm_mask=0x1C
;PCODE: $00000004 VOL: 0
	.EQU __sm_powerdown=0x10
;PCODE: $00000005 VOL: 0
	.EQU __sm_powersave=0x18
;PCODE: $00000006 VOL: 0
	.EQU __sm_standby=0x14
;PCODE: $00000007 VOL: 0
	.EQU __sm_ext_standby=0x1C
;PCODE: $00000008 VOL: 0
	.EQU __sm_adc_noise_red=0x08
;PCODE: $00000009 VOL: 0
	.SET power_ctrl_reg=mcucr
;PCODE: $0000000A VOL: 0
	#endif
;PCODE: $0000000B VOL: 0
;PCODE: $0000000C VOL: 0
;
;#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];
;
;#if RX_BUFFER_SIZE0 <= 256
;unsigned char rx_wr_index0,rx_rd_index0,rx_counter0;
;#else
;unsigned int rx_wr_index0,rx_rd_index0,rx_counter0;
;#endif
;
;// 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 004B {

	.CSEG
;PCODE: $0000000D VOL: 0
;PCODE: $0000000E VOL: 0
; 0000 004C char status,data;
; 0000 004D status=UCSR0A;
;PCODE: $0000000F VOL: 0
;PCODE: $00000010 VOL: 0
;	status -> R17
;	data -> R16
;PCODE: $00000011 VOL: 0
;PCODE: $00000012 VOL: 0
; 0000 004E data=UDR0;
;PCODE: $00000013 VOL: 0
;PCODE: $00000014 VOL: 0
; 0000 004F 
; 0000 0050 while(UCSR0A.5==0);
;PCODE: $00000015 VOL: 0
;PCODE: $00000016 VOL: 0
;PCODE: $00000017 VOL: 0
;PCODE: $00000018 VOL: 0
;PCODE: $00000019 VOL: 0
;PCODE: $0000001A VOL: 0
; 0000 0051 UDR0=data;
;PCODE: $0000001B VOL: 0
;PCODE: $0000001C VOL: 0
; 0000 0052 if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
;PCODE: $0000001D VOL: 0
;PCODE: $0000001E VOL: 0
;PCODE: $0000001F VOL: 0
; 0000 0053    {
; 0000 0054    rx_buffer0[rx_wr_index0++]=data;
;PCODE: $00000020 VOL: 0
;PCODE: $00000021 VOL: 0
;PCODE: $00000022 VOL: 0
;PCODE: $00000023 VOL: 0
;PCODE: $00000024 VOL: 0
; 0000 0055 #if RX_BUFFER_SIZE0 == 256
; 0000 0056    // special case for receiver buffer size=256
; 0000 0057    if (++rx_counter0 == 0)
; 0000 0058       {
; 0000 0059 #else
; 0000 005A    if (rx_wr_index0 == RX_BUFFER_SIZE0) rx_wr_index0=0;
;PCODE: $00000025 VOL: 0
;PCODE: $00000026 VOL: 0
;PCODE: $00000027 VOL: 0
;PCODE: $00000028 VOL: 0
; 0000 005B    if (++rx_counter0 == RX_BUFFER_SIZE0)
;PCODE: $00000029 VOL: 0
;PCODE: $0000002A VOL: 0
;PCODE: $0000002B VOL: 0
;PCODE: $0000002C VOL: 0
;PCODE: $0000002D VOL: 0
; 0000 005C       {
; 0000 005D       rx_counter0=0;
;PCODE: $0000002E VOL: 0
; 0000 005E #endif
; 0000 005F       rx_buffer_overflow0=1;
;PCODE: $0000002F VOL: 0
;PCODE: $00000030 VOL: 0
;PCODE: $00000031 VOL: 0
; 0000 0060       }
; 0000 0061    }
;PCODE: $00000032 VOL: 0
; 0000 0062 }
;PCODE: $00000033 VOL: 0
;PCODE: $00000034 VOL: 0
;PCODE: $00000035 VOL: 0
;PCODE: $00000036 VOL: 0
;PCODE: $00000037 VOL: 0
;
;#ifndef _DEBUG_TERMINAL_IO_
;// Get a character from the USART0 Receiver buffer
;#define _ALTERNATE_GETCHAR_
;#pragma used+
;char getchar(void)
; 0000 0069 {
;PCODE: $00000038 VOL: 0
;PCODE: $00000039 VOL: 0
; 0000 006A char data;
; 0000 006B while (rx_counter0==0);
;PCODE: $0000003A VOL: 0
;	data -> R17
;PCODE: $0000003B VOL: 0
;PCODE: $0000003C VOL: 0
;PCODE: $0000003D VOL: 0
;PCODE: $0000003E VOL: 0
;PCODE: $0000003F VOL: 0
; 0000 006C data=rx_buffer0[rx_rd_index0++];
;PCODE: $00000040 VOL: 0
;PCODE: $00000041 VOL: 0
;PCODE: $00000042 VOL: 0
;PCODE: $00000043 VOL: 0
;PCODE: $00000044 VOL: 0
; 0000 006D #if RX_BUFFER_SIZE0 != 256
; 0000 006E if (rx_rd_index0 == RX_BUFFER_SIZE0) rx_rd_index0=0;
;PCODE: $00000045 VOL: 0
;PCODE: $00000046 VOL: 0
;PCODE: $00000047 VOL: 0
;PCODE: $00000048 VOL: 0
; 0000 006F #endif
; 0000 0070 #asm("cli")
;PCODE: $00000049 VOL: 0
;PCODE: $0000004A VOL: 0
	cli
;PCODE: $0000004B VOL: 0
; 0000 0071 --rx_counter0;
;PCODE: $0000004C VOL: 0
; 0000 0072 #asm("sei")
;PCODE: $0000004D VOL: 0
	sei
;PCODE: $0000004E VOL: 0
; 0000 0073 return data;
;PCODE: $0000004F VOL: 0
;PCODE: $00000050 VOL: 0
;PCODE: $00000051 VOL: 0
; 0000 0074 }
;PCODE: $00000052 VOL: 0
;#pragma used-
;#endif
;
;// Standard Input/Output functions
;#include <stdio.h>
;
;// Declare your global variables here
;
;void main(void)
; 0000 007E {
;PCODE: $00000053 VOL: 0
; 0000 007F // Declare your local variables here
; 0000 0080 
; 0000 0081 // Input/Output Ports initialization
; 0000 0082 // Port A initialization
; 0000 0083 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 0084 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 0085 PORTA=0x00;
;PCODE: $00000054 VOL: 0
;PCODE: $00000055 VOL: 0
; 0000 0086 DDRA=0x00;
;PCODE: $00000056 VOL: 0
;PCODE: $00000057 VOL: 0
; 0000 0087 
; 0000 0088 // Port B initialization
; 0000 0089 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 008A // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 008B PORTB=0x00;
;PCODE: $00000058 VOL: 0
;PCODE: $00000059 VOL: 0
; 0000 008C DDRB=0x00;
;PCODE: $0000005A VOL: 0
;PCODE: $0000005B VOL: 0
; 0000 008D 
; 0000 008E // Port C initialization
; 0000 008F // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 0090 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 0091 PORTC=0x00;
;PCODE: $0000005C VOL: 0
;PCODE: $0000005D VOL: 0
; 0000 0092 DDRC=0x00;
;PCODE: $0000005E VOL: 0
;PCODE: $0000005F VOL: 0
; 0000 0093 
; 0000 0094 // Port D initialization
; 0000 0095 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 0096 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 0097 PORTD=0x00;
;PCODE: $00000060 VOL: 0
;PCODE: $00000061 VOL: 0
; 0000 0098 DDRD=0x00;
;PCODE: $00000062 VOL: 0
;PCODE: $00000063 VOL: 0
; 0000 0099 
; 0000 009A // Port E initialization
; 0000 009B // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 009C // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 009D PORTE=0x00;
;PCODE: $00000064 VOL: 0
;PCODE: $00000065 VOL: 0
; 0000 009E DDRE=0x00;
;PCODE: $00000066 VOL: 0
;PCODE: $00000067 VOL: 0
; 0000 009F 
; 0000 00A0 // Port F initialization
; 0000 00A1 // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 00A2 // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
; 0000 00A3 PORTF=0x00;
;PCODE: $00000068 VOL: 0
;PCODE: $00000069 VOL: 0
; 0000 00A4 DDRF=0x00;
;PCODE: $0000006A VOL: 0
;PCODE: $0000006B VOL: 0
; 0000 00A5 
; 0000 00A6 // Port G initialization
; 0000 00A7 // Func4=In Func3=In Func2=In Func1=In Func0=In
; 0000 00A8 // State4=T State3=T State2=T State1=T State0=T
; 0000 00A9 PORTG=0x00;
;PCODE: $0000006C VOL: 0
;PCODE: $0000006D VOL: 0
; 0000 00AA DDRG=0x00;
;PCODE: $0000006E VOL: 0
;PCODE: $0000006F VOL: 0
; 0000 00AB 
; 0000 00AC // Timer/Counter 0 initialization
; 0000 00AD // Clock source: System Clock
; 0000 00AE // Clock value: Timer 0 Stopped
; 0000 00AF // Mode: Normal top=0xFF
; 0000 00B0 // OC0 output: Disconnected
; 0000 00B1 ASSR=0x00;
;PCODE: $00000070 VOL: 0
;PCODE: $00000071 VOL: 0
; 0000 00B2 TCCR0=0x00;
;PCODE: $00000072 VOL: 0
;PCODE: $00000073 VOL: 0
; 0000 00B3 TCNT0=0x00;
;PCODE: $00000074 VOL: 0
;PCODE: $00000075 VOL: 0
; 0000 00B4 OCR0=0x00;
;PCODE: $00000076 VOL: 0
;PCODE: $00000077 VOL: 0
; 0000 00B5 
; 0000 00B6 // Timer/Counter 1 initialization
; 0000 00B7 // Clock source: System Clock
; 0000 00B8 // Clock value: Timer1 Stopped
; 0000 00B9 // Mode: Normal top=0xFFFF
; 0000 00BA // OC1A output: Discon.
; 0000 00BB // OC1B output: Discon.
; 0000 00BC // OC1C output: Discon.
; 0000 00BD // Noise Canceler: Off
; 0000 00BE // Input Capture on Falling Edge
; 0000 00BF // Timer1 Overflow Interrupt: Off
; 0000 00C0 // Input Capture Interrupt: Off
; 0000 00C1 // Compare A Match Interrupt: Off
; 0000 00C2 // Compare B Match Interrupt: Off
; 0000 00C3 // Compare C Match Interrupt: Off
; 0000 00C4 TCCR1A=0x00;
;PCODE: $00000078 VOL: 0
;PCODE: $00000079 VOL: 0
; 0000 00C5 TCCR1B=0x00;
;PCODE: $0000007A VOL: 0
;PCODE: $0000007B VOL: 0
; 0000 00C6 TCNT1H=0x00;
;PCODE: $0000007C VOL: 0
;PCODE: $0000007D VOL: 0
; 0000 00C7 TCNT1L=0x00;
;PCODE: $0000007E VOL: 0
;PCODE: $0000007F VOL: 0
; 0000 00C8 ICR1H=0x00;
;PCODE: $00000080 VOL: 0
;PCODE: $00000081 VOL: 0
; 0000 00C9 ICR1L=0x00;
;PCODE: $00000082 VOL: 0
;PCODE: $00000083 VOL: 0
; 0000 00CA OCR1AH=0x00;
;PCODE: $00000084 VOL: 0
;PCODE: $00000085 VOL: 0
; 0000 00CB OCR1AL=0x00;
;PCODE: $00000086 VOL: 0
;PCODE: $00000087 VOL: 0
; 0000 00CC OCR1BH=0x00;
;PCODE: $00000088 VOL: 0
;PCODE: $00000089 VOL: 0
; 0000 00CD OCR1BL=0x00;
;PCODE: $0000008A VOL: 0
;PCODE: $0000008B VOL: 0
; 0000 00CE OCR1CH=0x00;
;PCODE: $0000008C VOL: 0
;PCODE: $0000008D VOL: 0
; 0000 00CF OCR1CL=0x00;
;PCODE: $0000008E VOL: 0
;PCODE: $0000008F VOL: 0
; 0000 00D0 
; 0000 00D1 // Timer/Counter 2 initialization
; 0000 00D2 // Clock source: System Clock
; 0000 00D3 // Clock value: Timer2 Stopped
; 0000 00D4 // Mode: Normal top=0xFF
; 0000 00D5 // OC2 output: Disconnected
; 0000 00D6 TCCR2=0x00;
;PCODE: $00000090 VOL: 0
;PCODE: $00000091 VOL: 0
; 0000 00D7 TCNT2=0x00;
;PCODE: $00000092 VOL: 0
;PCODE: $00000093 VOL: 0
; 0000 00D8 OCR2=0x00;
;PCODE: $00000094 VOL: 0
;PCODE: $00000095 VOL: 0
; 0000 00D9 
; 0000 00DA // Timer/Counter 3 initialization
; 0000 00DB // Clock source: System Clock
; 0000 00DC // Clock value: Timer3 Stopped
; 0000 00DD // Mode: Normal top=0xFFFF
; 0000 00DE // OC3A output: Discon.
; 0000 00DF // OC3B output: Discon.
; 0000 00E0 // OC3C output: Discon.
; 0000 00E1 // Noise Canceler: Off
; 0000 00E2 // Input Capture on Falling Edge
; 0000 00E3 // Timer3 Overflow Interrupt: Off
; 0000 00E4 // Input Capture Interrupt: Off
; 0000 00E5 // Compare A Match Interrupt: Off
; 0000 00E6 // Compare B Match Interrupt: Off
; 0000 00E7 // Compare C Match Interrupt: Off
; 0000 00E8 TCCR3A=0x00;
;PCODE: $00000096 VOL: 0
;PCODE: $00000097 VOL: 0
; 0000 00E9 TCCR3B=0x00;
;PCODE: $00000098 VOL: 0
;PCODE: $00000099 VOL: 0
; 0000 00EA TCNT3H=0x00;
;PCODE: $0000009A VOL: 0
;PCODE: $0000009B VOL: 0
; 0000 00EB TCNT3L=0x00;
;PCODE: $0000009C VOL: 0
;PCODE: $0000009D VOL: 0
; 0000 00EC ICR3H=0x00;
;PCODE: $0000009E VOL: 0
;PCODE: $0000009F VOL: 0
; 0000 00ED ICR3L=0x00;
;PCODE: $000000A0 VOL: 0
;PCODE: $000000A1 VOL: 0
; 0000 00EE OCR3AH=0x00;
;PCODE: $000000A2 VOL: 0
;PCODE: $000000A3 VOL: 0
; 0000 00EF OCR3AL=0x00;
;PCODE: $000000A4 VOL: 0
;PCODE: $000000A5 VOL: 0
; 0000 00F0 OCR3BH=0x00;
;PCODE: $000000A6 VOL: 0
;PCODE: $000000A7 VOL: 0
; 0000 00F1 OCR3BL=0x00;
;PCODE: $000000A8 VOL: 0
;PCODE: $000000A9 VOL: 0
; 0000 00F2 OCR3CH=0x00;
;PCODE: $000000AA VOL: 0
;PCODE: $000000AB VOL: 0
; 0000 00F3 OCR3CL=0x00;
;PCODE: $000000AC VOL: 0
;PCODE: $000000AD VOL: 0
; 0000 00F4 
; 0000 00F5 // External Interrupt(s) initialization
; 0000 00F6 // INT0: Off
; 0000 00F7 // INT1: Off
; 0000 00F8 // INT2: Off
; 0000 00F9 // INT3: Off
; 0000 00FA // INT4: Off
; 0000 00FB // INT5: Off
; 0000 00FC // INT6: Off
; 0000 00FD // INT7: Off
; 0000 00FE EICRA=0x00;
;PCODE: $000000AE VOL: 0
;PCODE: $000000AF VOL: 0
; 0000 00FF EICRB=0x00;
;PCODE: $000000B0 VOL: 0
;PCODE: $000000B1 VOL: 0
; 0000 0100 EIMSK=0x00;
;PCODE: $000000B2 VOL: 0
;PCODE: $000000B3 VOL: 0
; 0000 0101 
; 0000 0102 // Timer(s)/Counter(s) Interrupt(s) initialization
; 0000 0103 TIMSK=0x00;
;PCODE: $000000B4 VOL: 0
;PCODE: $000000B5 VOL: 0
; 0000 0104 
; 0000 0105 ETIMSK=0x00;
;PCODE: $000000B6 VOL: 0
;PCODE: $000000B7 VOL: 0
; 0000 0106 
; 0000 0107 // USART0 initialization
; 0000 0108 // Communication Parameters: 8 Data, 1 Stop, No Parity
; 0000 0109 // USART0 Receiver: On
; 0000 010A // USART0 Transmitter: On
; 0000 010B // USART0 Mode: Asynchronous
; 0000 010C // USART0 Baud Rate: 9600
; 0000 010D UCSR0A=0x00;
;PCODE: $000000B8 VOL: 0
;PCODE: $000000B9 VOL: 0
; 0000 010E UCSR0B=0x98;
;PCODE: $000000BA VOL: 0
;PCODE: $000000BB VOL: 0
; 0000 010F UCSR0C=0x06;
;PCODE: $000000BC VOL: 0
;PCODE: $000000BD VOL: 0
; 0000 0110 UBRR0H=0x00;
;PCODE: $000000BE VOL: 0
;PCODE: $000000BF VOL: 0
; 0000 0111 UBRR0L=0x67;
;PCODE: $000000C0 VOL: 0
;PCODE: $000000C1 VOL: 0
; 0000 0112 
; 0000 0113 // USART1 initialization
; 0000 0114 // USART1 disabled
; 0000 0115 UCSR1B=0x00;
;PCODE: $000000C2 VOL: 0
;PCODE: $000000C3 VOL: 0
; 0000 0116 
; 0000 0117 // Analog Comparator initialization
; 0000 0118 // Analog Comparator: Off
; 0000 0119 // Analog Comparator Input Capture by Timer/Counter 1: Off
; 0000 011A ACSR=0x80;
;PCODE: $000000C4 VOL: 0
;PCODE: $000000C5 VOL: 0
; 0000 011B SFIOR=0x00;
;PCODE: $000000C6 VOL: 0
;PCODE: $000000C7 VOL: 0
; 0000 011C 
; 0000 011D // ADC initialization
; 0000 011E // ADC disabled
; 0000 011F ADCSRA=0x00;
;PCODE: $000000C8 VOL: 0
;PCODE: $000000C9 VOL: 0
; 0000 0120 
; 0000 0121 // SPI initialization
; 0000 0122 // SPI disabled
; 0000 0123 SPCR=0x00;
;PCODE: $000000CA VOL: 0
;PCODE: $000000CB VOL: 0
; 0000 0124 
; 0000 0125 // TWI initialization
; 0000 0126 // TWI disabled
; 0000 0127 TWCR=0x00;
;PCODE: $000000CC VOL: 0
;PCODE: $000000CD VOL: 0
; 0000 0128 
; 0000 0129 // Global enable interrupts
; 0000 012A #asm("sei")
;PCODE: $000000CE VOL: 0
	sei
;PCODE: $000000CF VOL: 0
; 0000 012B 
; 0000 012C while (1)
;PCODE: $000000D0 VOL: 0
; 0000 012D       {
; 0000 012E 
; 0000 012F        printf("test\r\n");
;PCODE: $000000D1 VOL: 0
;PCODE: $000000D2 VOL: 0
;PCODE: $000000D3 VOL: 0
;PCODE: $000000D4 VOL: 0
;PCODE: $000000D5 VOL: 0
;PCODE: $000000D6 VOL: 0
;PCODE: $000000D7 VOL: 0
; 0000 0130       }
;PCODE: $000000D8 VOL: 0
;PCODE: $000000D9 VOL: 0
; 0000 0131 }
;PCODE: $000000DA VOL: 0
;PCODE: $000000DB VOL: 0
;PCODE: $000000DC VOL: 0
