
AVRASM ver. 2.1.30  C:\Users\MrCrazy\Desktop\UART-Echo\Debug\List\echo.asm Sun Mar 28 17:17:30 2021

C:\Users\MrCrazy\Desktop\UART-Echo\Debug\List\echo.asm(1088): warning: Register r5 already defined by the .DEF directive
C:\Users\MrCrazy\Desktop\UART-Echo\Debug\List\echo.asm(1089): warning: Register r4 already defined by the .DEF directive
C:\Users\MrCrazy\Desktop\UART-Echo\Debug\List\echo.asm(1090): warning: Register r7 already defined by the .DEF directive
                 
                 
                 ;CodeVisionAVR C Compiler V3.12 Advanced
                 ;(C) Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
                 ;http://www.hpinfotech.com
                 
                 ;Build configuration    : Debug
                 ;Chip type              : ATmega16
                 ;Program type           : Application
                 ;Clock frequency        : 8.000000 MHz
                 ;Memory model           : Small
                 ;Optimize for           : Size
                 ;(s)printf features     : int, width
                 ;(s)scanf features      : int, width
                 ;External RAM size      : 0
                 ;Data Stack size        : 256 byte(s)
                 ;Heap size              : 0 byte(s)
                 ;Promote 'char' to 'int': Yes
                 ;'char' is unsigned     : Yes
                 ;8 bit enums            : Yes
                 ;Global 'const' stored in FLASH: Yes
                 ;Enhanced function parameter passing: Yes
                 ;Enhanced core instructions: On
                 ;Automatic register allocation for global variables: On
                 ;Smart register allocation: On
                 
                 	#define _MODEL_SMALL_
                 
                 	#pragma AVRPART ADMIN PART_NAME ATmega16
                 	#pragma AVRPART MEMORY PROG_FLASH 16384
                 	#pragma AVRPART MEMORY EEPROM 512
                 	#pragma AVRPART MEMORY INT_SRAM SIZE 1024
                 	#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60
                 
                 	#define CALL_SUPPORTED 1
                 
                 	.LISTMAC
                 	.EQU UDRE=0x5
                 	.EQU RXC=0x7
                 	.EQU USR=0xB
                 	.EQU UDR=0xC
                 	.EQU SPSR=0xE
                 	.EQU SPDR=0xF
                 	.EQU EERE=0x0
                 	.EQU EEWE=0x1
                 	.EQU EEMWE=0x2
                 	.EQU EECR=0x1C
                 	.EQU EEDR=0x1D
                 	.EQU EEARL=0x1E
                 	.EQU EEARH=0x1F
                 	.EQU WDTCR=0x21
                 	.EQU MCUCR=0x35
                 	.EQU GICR=0x3B
                 	.EQU SPL=0x3D
                 	.EQU SPH=0x3E
                 	.EQU SREG=0x3F
                 
                 	.DEF R0X0=R0
                 	.DEF R0X1=R1
                 	.DEF R0X2=R2
                 	.DEF R0X3=R3
                 	.DEF R0X4=R4
                 	.DEF R0X5=R5
                 	.DEF R0X6=R6
                 	.DEF R0X7=R7
                 	.DEF R0X8=R8
                 	.DEF R0X9=R9
                 	.DEF R0XA=R10
                 	.DEF R0XB=R11
                 	.DEF R0XC=R12
                 	.DEF R0XD=R13
                 	.DEF R0XE=R14
                 	.DEF R0XF=R15
                 	.DEF R0X10=R16
                 	.DEF R0X11=R17
                 	.DEF R0X12=R18
                 	.DEF R0X13=R19
                 	.DEF R0X14=R20
                 	.DEF R0X15=R21
                 	.DEF R0X16=R22
                 	.DEF R0X17=R23
                 	.DEF R0X18=R24
                 	.DEF R0X19=R25
                 	.DEF R0X1A=R26
                 	.DEF R0X1B=R27
                 	.DEF R0X1C=R28
                 	.DEF R0X1D=R29
                 	.DEF R0X1E=R30
                 	.DEF R0X1F=R31
                 
                 	.EQU __SRAM_START=0x0060
                 	.EQU __SRAM_END=0x045F
                 	.EQU __DSTACK_SIZE=0x0100
                 	.EQU __HEAP_SIZE=0x0000
                 	.EQU __CLEAR_SRAM_SIZE=__SRAM_END-__SRAM_START+1
                 
                 	.MACRO __CPD1N
                 	CPI  R30,LOW(@0)
                 	LDI  R26,HIGH(@0)
                 	CPC  R31,R26
                 	LDI  R26,BYTE3(@0)
                 	CPC  R22,R26
                 	LDI  R26,BYTE4(@0)
                 	CPC  R23,R26
                 	.ENDM
                 
                 	.MACRO __CPD2N
                 	CPI  R26,LOW(@0)
                 	LDI  R30,HIGH(@0)
                 	CPC  R27,R30
                 	LDI  R30,BYTE3(@0)
                 	CPC  R24,R30
                 	LDI  R30,BYTE4(@0)
                 	CPC  R25,R30
                 	.ENDM
                 
                 	.MACRO __CPWRR
                 	CP   R@0,R@2
                 	CPC  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __CPWRN
                 	CPI  R@0,LOW(@2)
                 	LDI  R30,HIGH(@2)
                 	CPC  R@1,R30
                 	.ENDM
                 
                 	.MACRO __ADDB1MN
                 	SUBI R30,LOW(-@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDB2MN
                 	SUBI R26,LOW(-@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDW1MN
                 	SUBI R30,LOW(-@0-(@1))
                 	SBCI R31,HIGH(-@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDW2MN
                 	SUBI R26,LOW(-@0-(@1))
                 	SBCI R27,HIGH(-@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDW1FN
                 	SUBI R30,LOW(-2*@0-(@1))
                 	SBCI R31,HIGH(-2*@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDD1FN
                 	SUBI R30,LOW(-2*@0-(@1))
                 	SBCI R31,HIGH(-2*@0-(@1))
                 	SBCI R22,BYTE3(-2*@0-(@1))
                 	.ENDM
                 
                 	.MACRO __ADDD1N
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	SBCI R22,BYTE3(-@0)
                 	SBCI R23,BYTE4(-@0)
                 	.ENDM
                 
                 	.MACRO __ADDD2N
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	SBCI R24,BYTE3(-@0)
                 	SBCI R25,BYTE4(-@0)
                 	.ENDM
                 
                 	.MACRO __SUBD1N
                 	SUBI R30,LOW(@0)
                 	SBCI R31,HIGH(@0)
                 	SBCI R22,BYTE3(@0)
                 	SBCI R23,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __SUBD2N
                 	SUBI R26,LOW(@0)
                 	SBCI R27,HIGH(@0)
                 	SBCI R24,BYTE3(@0)
                 	SBCI R25,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __ANDBMNN
                 	LDS  R30,@0+(@1)
                 	ANDI R30,LOW(@2)
                 	STS  @0+(@1),R30
                 	.ENDM
                 
                 	.MACRO __ANDWMNN
                 	LDS  R30,@0+(@1)
                 	ANDI R30,LOW(@2)
                 	STS  @0+(@1),R30
                 	LDS  R30,@0+(@1)+1
                 	ANDI R30,HIGH(@2)
                 	STS  @0+(@1)+1,R30
                 	.ENDM
                 
                 	.MACRO __ANDD1N
                 	ANDI R30,LOW(@0)
                 	ANDI R31,HIGH(@0)
                 	ANDI R22,BYTE3(@0)
                 	ANDI R23,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __ANDD2N
                 	ANDI R26,LOW(@0)
                 	ANDI R27,HIGH(@0)
                 	ANDI R24,BYTE3(@0)
                 	ANDI R25,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __ORBMNN
                 	LDS  R30,@0+(@1)
                 	ORI  R30,LOW(@2)
                 	STS  @0+(@1),R30
                 	.ENDM
                 
                 	.MACRO __ORWMNN
                 	LDS  R30,@0+(@1)
                 	ORI  R30,LOW(@2)
                 	STS  @0+(@1),R30
                 	LDS  R30,@0+(@1)+1
                 	ORI  R30,HIGH(@2)
                 	STS  @0+(@1)+1,R30
                 	.ENDM
                 
                 	.MACRO __ORD1N
                 	ORI  R30,LOW(@0)
                 	ORI  R31,HIGH(@0)
                 	ORI  R22,BYTE3(@0)
                 	ORI  R23,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __ORD2N
                 	ORI  R26,LOW(@0)
                 	ORI  R27,HIGH(@0)
                 	ORI  R24,BYTE3(@0)
                 	ORI  R25,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __DELAY_USB
                 	LDI  R24,LOW(@0)
                 __DELAY_USB_LOOP:
                 	DEC  R24
                 	BRNE __DELAY_USB_LOOP
                 	.ENDM
                 
                 	.MACRO __DELAY_USW
                 	LDI  R24,LOW(@0)
                 	LDI  R25,HIGH(@0)
                 __DELAY_USW_LOOP:
                 	SBIW R24,1
                 	BRNE __DELAY_USW_LOOP
                 	.ENDM
                 
                 	.MACRO __GETD1S
                 	LDD  R30,Y+@0
                 	LDD  R31,Y+@0+1
                 	LDD  R22,Y+@0+2
                 	LDD  R23,Y+@0+3
                 	.ENDM
                 
                 	.MACRO __GETD2S
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	LDD  R24,Y+@0+2
                 	LDD  R25,Y+@0+3
                 	.ENDM
                 
                 	.MACRO __PUTD1S
                 	STD  Y+@0,R30
                 	STD  Y+@0+1,R31
                 	STD  Y+@0+2,R22
                 	STD  Y+@0+3,R23
                 	.ENDM
                 
                 	.MACRO __PUTD2S
                 	STD  Y+@0,R26
                 	STD  Y+@0+1,R27
                 	STD  Y+@0+2,R24
                 	STD  Y+@0+3,R25
                 	.ENDM
                 
                 	.MACRO __PUTDZ2
                 	STD  Z+@0,R26
                 	STD  Z+@0+1,R27
                 	STD  Z+@0+2,R24
                 	STD  Z+@0+3,R25
                 	.ENDM
                 
                 	.MACRO __CLRD1S
                 	STD  Y+@0,R30
                 	STD  Y+@0+1,R30
                 	STD  Y+@0+2,R30
                 	STD  Y+@0+3,R30
                 	.ENDM
                 
                 	.MACRO __POINTB1MN
                 	LDI  R30,LOW(@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTW1MN
                 	LDI  R30,LOW(@0+(@1))
                 	LDI  R31,HIGH(@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTD1M
                 	LDI  R30,LOW(@0)
                 	LDI  R31,HIGH(@0)
                 	LDI  R22,BYTE3(@0)
                 	LDI  R23,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __POINTW1FN
                 	LDI  R30,LOW(2*@0+(@1))
                 	LDI  R31,HIGH(2*@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTD1FN
                 	LDI  R30,LOW(2*@0+(@1))
                 	LDI  R31,HIGH(2*@0+(@1))
                 	LDI  R22,BYTE3(2*@0+(@1))
                 	LDI  R23,BYTE4(2*@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTB2MN
                 	LDI  R26,LOW(@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTW2MN
                 	LDI  R26,LOW(@0+(@1))
                 	LDI  R27,HIGH(@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTW2FN
                 	LDI  R26,LOW(2*@0+(@1))
                 	LDI  R27,HIGH(2*@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTD2FN
                 	LDI  R26,LOW(2*@0+(@1))
                 	LDI  R27,HIGH(2*@0+(@1))
                 	LDI  R24,BYTE3(2*@0+(@1))
                 	LDI  R25,BYTE4(2*@0+(@1))
                 	.ENDM
                 
                 	.MACRO __POINTBRM
                 	LDI  R@0,LOW(@1)
                 	.ENDM
                 
                 	.MACRO __POINTWRM
                 	LDI  R@0,LOW(@2)
                 	LDI  R@1,HIGH(@2)
                 	.ENDM
                 
                 	.MACRO __POINTBRMN
                 	LDI  R@0,LOW(@1+(@2))
                 	.ENDM
                 
                 	.MACRO __POINTWRMN
                 	LDI  R@0,LOW(@2+(@3))
                 	LDI  R@1,HIGH(@2+(@3))
                 	.ENDM
                 
                 	.MACRO __POINTWRFN
                 	LDI  R@0,LOW(@2*2+(@3))
                 	LDI  R@1,HIGH(@2*2+(@3))
                 	.ENDM
                 
                 	.MACRO __GETD1N
                 	LDI  R30,LOW(@0)
                 	LDI  R31,HIGH(@0)
                 	LDI  R22,BYTE3(@0)
                 	LDI  R23,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __GETD2N
                 	LDI  R26,LOW(@0)
                 	LDI  R27,HIGH(@0)
                 	LDI  R24,BYTE3(@0)
                 	LDI  R25,BYTE4(@0)
                 	.ENDM
                 
                 	.MACRO __GETB1MN
                 	LDS  R30,@0+(@1)
                 	.ENDM
                 
                 	.MACRO __GETB1HMN
                 	LDS  R31,@0+(@1)
                 	.ENDM
                 
                 	.MACRO __GETW1MN
                 	LDS  R30,@0+(@1)
                 	LDS  R31,@0+(@1)+1
                 	.ENDM
                 
                 	.MACRO __GETD1MN
                 	LDS  R30,@0+(@1)
                 	LDS  R31,@0+(@1)+1
                 	LDS  R22,@0+(@1)+2
                 	LDS  R23,@0+(@1)+3
                 	.ENDM
                 
                 	.MACRO __GETBRMN
                 	LDS  R@0,@1+(@2)
                 	.ENDM
                 
                 	.MACRO __GETWRMN
                 	LDS  R@0,@2+(@3)
                 	LDS  R@1,@2+(@3)+1
                 	.ENDM
                 
                 	.MACRO __GETWRZ
                 	LDD  R@0,Z+@2
                 	LDD  R@1,Z+@2+1
                 	.ENDM
                 
                 	.MACRO __GETD2Z
                 	LDD  R26,Z+@0
                 	LDD  R27,Z+@0+1
                 	LDD  R24,Z+@0+2
                 	LDD  R25,Z+@0+3
                 	.ENDM
                 
                 	.MACRO __GETB2MN
                 	LDS  R26,@0+(@1)
                 	.ENDM
                 
                 	.MACRO __GETW2MN
                 	LDS  R26,@0+(@1)
                 	LDS  R27,@0+(@1)+1
                 	.ENDM
                 
                 	.MACRO __GETD2MN
                 	LDS  R26,@0+(@1)
                 	LDS  R27,@0+(@1)+1
                 	LDS  R24,@0+(@1)+2
                 	LDS  R25,@0+(@1)+3
                 	.ENDM
                 
                 	.MACRO __PUTB1MN
                 	STS  @0+(@1),R30
                 	.ENDM
                 
                 	.MACRO __PUTW1MN
                 	STS  @0+(@1),R30
                 	STS  @0+(@1)+1,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1MN
                 	STS  @0+(@1),R30
                 	STS  @0+(@1)+1,R31
                 	STS  @0+(@1)+2,R22
                 	STS  @0+(@1)+3,R23
                 	.ENDM
                 
                 	.MACRO __PUTB1EN
                 	LDI  R26,LOW(@0+(@1))
                 	LDI  R27,HIGH(@0+(@1))
                 	CALL __EEPROMWRB
                 	.ENDM
                 
                 	.MACRO __PUTW1EN
                 	LDI  R26,LOW(@0+(@1))
                 	LDI  R27,HIGH(@0+(@1))
                 	CALL __EEPROMWRW
                 	.ENDM
                 
                 	.MACRO __PUTD1EN
                 	LDI  R26,LOW(@0+(@1))
                 	LDI  R27,HIGH(@0+(@1))
                 	CALL __EEPROMWRD
                 	.ENDM
                 
                 	.MACRO __PUTBR0MN
                 	STS  @0+(@1),R0
                 	.ENDM
                 
                 	.MACRO __PUTBMRN
                 	STS  @0+(@1),R@2
                 	.ENDM
                 
                 	.MACRO __PUTWMRN
                 	STS  @0+(@1),R@2
                 	STS  @0+(@1)+1,R@3
                 	.ENDM
                 
                 	.MACRO __PUTBZR
                 	STD  Z+@1,R@0
                 	.ENDM
                 
                 	.MACRO __PUTWZR
                 	STD  Z+@2,R@0
                 	STD  Z+@2+1,R@1
                 	.ENDM
                 
                 	.MACRO __GETW1R
                 	MOV  R30,R@0
                 	MOV  R31,R@1
                 	.ENDM
                 
                 	.MACRO __GETW2R
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	.ENDM
                 
                 	.MACRO __GETWRN
                 	LDI  R@0,LOW(@2)
                 	LDI  R@1,HIGH(@2)
                 	.ENDM
                 
                 	.MACRO __PUTW1R
                 	MOV  R@0,R30
                 	MOV  R@1,R31
                 	.ENDM
                 
                 	.MACRO __PUTW2R
                 	MOV  R@0,R26
                 	MOV  R@1,R27
                 	.ENDM
                 
                 	.MACRO __ADDWRN
                 	SUBI R@0,LOW(-@2)
                 	SBCI R@1,HIGH(-@2)
                 	.ENDM
                 
                 	.MACRO __ADDWRR
                 	ADD  R@0,R@2
                 	ADC  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __SUBWRN
                 	SUBI R@0,LOW(@2)
                 	SBCI R@1,HIGH(@2)
                 	.ENDM
                 
                 	.MACRO __SUBWRR
                 	SUB  R@0,R@2
                 	SBC  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __ANDWRN
                 	ANDI R@0,LOW(@2)
                 	ANDI R@1,HIGH(@2)
                 	.ENDM
                 
                 	.MACRO __ANDWRR
                 	AND  R@0,R@2
                 	AND  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __ORWRN
                 	ORI  R@0,LOW(@2)
                 	ORI  R@1,HIGH(@2)
                 	.ENDM
                 
                 	.MACRO __ORWRR
                 	OR   R@0,R@2
                 	OR   R@1,R@3
                 	.ENDM
                 
                 	.MACRO __EORWRR
                 	EOR  R@0,R@2
                 	EOR  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __GETWRS
                 	LDD  R@0,Y+@2
                 	LDD  R@1,Y+@2+1
                 	.ENDM
                 
                 	.MACRO __PUTBSR
                 	STD  Y+@1,R@0
                 	.ENDM
                 
                 	.MACRO __PUTWSR
                 	STD  Y+@2,R@0
                 	STD  Y+@2+1,R@1
                 	.ENDM
                 
                 	.MACRO __MOVEWRR
                 	MOV  R@0,R@2
                 	MOV  R@1,R@3
                 	.ENDM
                 
                 	.MACRO __INWR
                 	IN   R@0,@2
                 	IN   R@1,@2+1
                 	.ENDM
                 
                 	.MACRO __OUTWR
                 	OUT  @2+1,R@1
                 	OUT  @2,R@0
                 	.ENDM
                 
                 	.MACRO __CALL1MN
                 	LDS  R30,@0+(@1)
                 	LDS  R31,@0+(@1)+1
                 	ICALL
                 	.ENDM
                 
                 	.MACRO __CALL1FN
                 	LDI  R30,LOW(2*@0+(@1))
                 	LDI  R31,HIGH(2*@0+(@1))
                 	CALL __GETW1PF
                 	ICALL
                 	.ENDM
                 
                 	.MACRO __CALL2EN
                 	PUSH R26
                 	PUSH R27
                 	LDI  R26,LOW(@0+(@1))
                 	LDI  R27,HIGH(@0+(@1))
                 	CALL __EEPROMRDW
                 	POP  R27
                 	POP  R26
                 	ICALL
                 	.ENDM
                 
                 	.MACRO __CALL2EX
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	CALL __EEPROMRDD
                 	ICALL
                 	.ENDM
                 
                 	.MACRO __GETW1STACK
                 	IN   R30,SPL
                 	IN   R31,SPH
                 	ADIW R30,@0+1
                 	LD   R0,Z+
                 	LD   R31,Z
                 	MOV  R30,R0
                 	.ENDM
                 
                 	.MACRO __GETD1STACK
                 	IN   R30,SPL
                 	IN   R31,SPH
                 	ADIW R30,@0+1
                 	LD   R0,Z+
                 	LD   R1,Z+
                 	LD   R22,Z
                 	MOVW R30,R0
                 	.ENDM
                 
                 	.MACRO __NBST
                 	BST  R@0,@1
                 	IN   R30,SREG
                 	LDI  R31,0x40
                 	EOR  R30,R31
                 	OUT  SREG,R30
                 	.ENDM
                 
                 
                 	.MACRO __PUTB1SN
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1SN
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1SN
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1SNS
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	ADIW R26,@1
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1SNS
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	ADIW R26,@1
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1SNS
                 	LDD  R26,Y+@0
                 	LDD  R27,Y+@0+1
                 	ADIW R26,@1
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1PMN
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1PMN
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1PMN
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1PMNS
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	ADIW R26,@1
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1PMNS
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	ADIW R26,@1
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1PMNS
                 	LDS  R26,@0
                 	LDS  R27,@0+1
                 	ADIW R26,@1
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1RN
                 	MOVW R26,R@0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1RN
                 	MOVW R26,R@0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1RN
                 	MOVW R26,R@0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1RNS
                 	MOVW R26,R@0
                 	ADIW R26,@1
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1RNS
                 	MOVW R26,R@0
                 	ADIW R26,@1
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1RNS
                 	MOVW R26,R@0
                 	ADIW R26,@1
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1RON
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	SUBI R26,LOW(-@2)
                 	SBCI R27,HIGH(-@2)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1RON
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	SUBI R26,LOW(-@2)
                 	SBCI R27,HIGH(-@2)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1RON
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	SUBI R26,LOW(-@2)
                 	SBCI R27,HIGH(-@2)
                 	CALL __PUTDP1
                 	.ENDM
                 
                 	.MACRO __PUTB1RONS
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	ADIW R26,@2
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1RONS
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	ADIW R26,@2
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1RONS
                 	MOV  R26,R@0
                 	MOV  R27,R@1
                 	ADIW R26,@2
                 	CALL __PUTDP1
                 	.ENDM
                 
                 
                 	.MACRO __GETB1SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	LD   R30,Z
                 	.ENDM
                 
                 	.MACRO __GETB1HSX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	LD   R31,Z
                 	.ENDM
                 
                 	.MACRO __GETW1SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	LD   R0,Z+
                 	LD   R31,Z
                 	MOV  R30,R0
                 	.ENDM
                 
                 	.MACRO __GETD1SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	LD   R0,Z+
                 	LD   R1,Z+
                 	LD   R22,Z+
                 	LD   R23,Z
                 	MOVW R30,R0
                 	.ENDM
                 
                 	.MACRO __GETB2SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R26,X
                 	.ENDM
                 
                 	.MACRO __GETW2SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R0,X+
                 	LD   R27,X
                 	MOV  R26,R0
                 	.ENDM
                 
                 	.MACRO __GETD2SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R0,X+
                 	LD   R1,X+
                 	LD   R24,X+
                 	LD   R25,X
                 	MOVW R26,R0
                 	.ENDM
                 
                 	.MACRO __GETBRSX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@1)
                 	SBCI R31,HIGH(-@1)
                 	LD   R@0,Z
                 	.ENDM
                 
                 	.MACRO __GETWRSX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@2)
                 	SBCI R31,HIGH(-@2)
                 	LD   R@0,Z+
                 	LD   R@1,Z
                 	.ENDM
                 
                 	.MACRO __GETBRSX2
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	LD   R@0,X
                 	.ENDM
                 
                 	.MACRO __GETWRSX2
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@2)
                 	SBCI R27,HIGH(-@2)
                 	LD   R@0,X+
                 	LD   R@1,X
                 	.ENDM
                 
                 	.MACRO __LSLW8SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	LD   R31,Z
                 	CLR  R30
                 	.ENDM
                 
                 	.MACRO __PUTB1SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	ST   X+,R30
                 	ST   X+,R31
                 	ST   X+,R22
                 	ST   X,R23
                 	.ENDM
                 
                 	.MACRO __CLRW1SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	ST   X+,R30
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __CLRD1SX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	ST   X+,R30
                 	ST   X+,R30
                 	ST   X+,R30
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTB2SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	ST   Z,R26
                 	.ENDM
                 
                 	.MACRO __PUTW2SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	ST   Z+,R26
                 	ST   Z,R27
                 	.ENDM
                 
                 	.MACRO __PUTD2SX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@0)
                 	SBCI R31,HIGH(-@0)
                 	ST   Z+,R26
                 	ST   Z+,R27
                 	ST   Z+,R24
                 	ST   Z,R25
                 	.ENDM
                 
                 	.MACRO __PUTBSRX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@1)
                 	SBCI R31,HIGH(-@1)
                 	ST   Z,R@0
                 	.ENDM
                 
                 	.MACRO __PUTWSRX
                 	MOVW R30,R28
                 	SUBI R30,LOW(-@2)
                 	SBCI R31,HIGH(-@2)
                 	ST   Z+,R@0
                 	ST   Z,R@1
                 	.ENDM
                 
                 	.MACRO __PUTB1SNX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R0,X+
                 	LD   R27,X
                 	MOV  R26,R0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X,R30
                 	.ENDM
                 
                 	.MACRO __PUTW1SNX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R0,X+
                 	LD   R27,X
                 	MOV  R26,R0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X+,R30
                 	ST   X,R31
                 	.ENDM
                 
                 	.MACRO __PUTD1SNX
                 	MOVW R26,R28
                 	SUBI R26,LOW(-@0)
                 	SBCI R27,HIGH(-@0)
                 	LD   R0,X+
                 	LD   R27,X
                 	MOV  R26,R0
                 	SUBI R26,LOW(-@1)
                 	SBCI R27,HIGH(-@1)
                 	ST   X+,R30
                 	ST   X+,R31
                 	ST   X+,R22
                 	ST   X,R23
                 	.ENDM
                 
                 	.MACRO __MULBRR
                 	MULS R@0,R@1
                 	MOVW R30,R0
                 	.ENDM
                 
                 	.MACRO __MULBRRU
                 	MUL  R@0,R@1
                 	MOVW R30,R0
                 	.ENDM
                 
                 	.MACRO __MULBRR0
                 	MULS R@0,R@1
                 	.ENDM
                 
                 	.MACRO __MULBRRU0
                 	MUL  R@0,R@1
                 	.ENDM
                 
                 	.MACRO __MULBNWRU
                 	LDI  R26,@2
                 	MUL  R26,R@0
                 	MOVW R30,R0
                 	MUL  R26,R@1
                 	ADD  R31,R0
                 	.ENDM
                 
                 ;NAME DEFINITIONS FOR GLOBAL VARIABLES ALLOCATED TO REGISTERS
                 	.DEF __lcd_x=R5
                 	.DEF __lcd_y=R4
                 	.DEF __lcd_maxx=R7
                 
                 	.CSEG
                 	.ORG 0x00
                 
                 ;START OF CODE MARKER
                 __START_OF_CODE:
                 
                 ;INTERRUPT VECTORS
000000 940c 002f 	JMP  __RESET
000002 940c 0000 	JMP  0x00
000004 940c 0000 	JMP  0x00
000006 940c 0000 	JMP  0x00
000008 940c 0000 	JMP  0x00
00000a 940c 0000 	JMP  0x00
00000c 940c 0000 	JMP  0x00
00000e 940c 0000 	JMP  0x00
000010 940c 0000 	JMP  0x00
000012 940c 0000 	JMP  0x00
000014 940c 0000 	JMP  0x00
000016 940c 0000 	JMP  0x00
000018 940c 0000 	JMP  0x00
00001a 940c 0000 	JMP  0x00
00001c 940c 0000 	JMP  0x00
00001e 940c 0000 	JMP  0x00
000020 940c 0000 	JMP  0x00
000022 940c 0000 	JMP  0x00
000024 940c 0000 	JMP  0x00
000026 940c 0000 	JMP  0x00
000028 940c 0000 	JMP  0x00
                 
                 _0x2000003:
00002a c080      	.DB  0x80,0xC0
                 
                 __GLOBAL_INI_TBL:
00002b 0002      	.DW  0x02
00002c 0160      	.DW  __base_y_G100
00002d 0054      	.DW  _0x2000003*2
                 
                 _0xFFFFFFFF:
00002e 0000      	.DW  0
                 
                 #define __GLOBAL_INI_TBL_PRESENT 1
                 
                 __RESET:
00002f 94f8      	CLI
000030 27ee      	CLR  R30
000031 bbec      	OUT  EECR,R30
                 
                 ;INTERRUPT VECTORS ARE PLACED
                 ;AT THE START OF FLASH
000032 e0f1      	LDI  R31,1
000033 bffb      	OUT  GICR,R31
000034 bfeb      	OUT  GICR,R30
000035 bfe5      	OUT  MCUCR,R30
                 
                 ;CLEAR R2-R14
000036 e08d      	LDI  R24,(14-2)+1
000037 e0a2      	LDI  R26,2
000038 27bb      	CLR  R27
                 __CLEAR_REG:
000039 93ed      	ST   X+,R30
00003a 958a      	DEC  R24
00003b f7e9      	BRNE __CLEAR_REG
                 
                 ;CLEAR SRAM
00003c e080      	LDI  R24,LOW(__CLEAR_SRAM_SIZE)
00003d e094      	LDI  R25,HIGH(__CLEAR_SRAM_SIZE)
00003e e6a0      	LDI  R26,__SRAM_START
                 __CLEAR_SRAM:
00003f 93ed      	ST   X+,R30
000040 9701      	SBIW R24,1
000041 f7e9      	BRNE __CLEAR_SRAM
                 
                 ;GLOBAL VARIABLES INITIALIZATION
000042 e5e6      	LDI  R30,LOW(__GLOBAL_INI_TBL*2)
000043 e0f0      	LDI  R31,HIGH(__GLOBAL_INI_TBL*2)
                 __GLOBAL_INI_NEXT:
000044 9185      	LPM  R24,Z+
000045 9195      	LPM  R25,Z+
000046 9700      	SBIW R24,0
000047 f061      	BREQ __GLOBAL_INI_END
000048 91a5      	LPM  R26,Z+
000049 91b5      	LPM  R27,Z+
00004a 9005      	LPM  R0,Z+
00004b 9015      	LPM  R1,Z+
00004c 01bf      	MOVW R22,R30
00004d 01f0      	MOVW R30,R0
                 __GLOBAL_INI_LOOP:
00004e 9005      	LPM  R0,Z+
00004f 920d      	ST   X+,R0
000050 9701      	SBIW R24,1
000051 f7e1      	BRNE __GLOBAL_INI_LOOP
000052 01fb      	MOVW R30,R22
000053 cff0      	RJMP __GLOBAL_INI_NEXT
                 __GLOBAL_INI_END:
                 
                 ;HARDWARE STACK POINTER INITIALIZATION
000054 e5ef      	LDI  R30,LOW(__SRAM_END-__HEAP_SIZE)
000055 bfed      	OUT  SPL,R30
000056 e0e4      	LDI  R30,HIGH(__SRAM_END-__HEAP_SIZE)
000057 bfee      	OUT  SPH,R30
                 
                 ;DATA STACK POINTER INITIALIZATION
000058 e6c0      	LDI  R28,LOW(__SRAM_START+__DSTACK_SIZE)
000059 e0d1      	LDI  R29,HIGH(__SRAM_START+__DSTACK_SIZE)
                 
00005a 940c 005c 	JMP  _main
                 
                 	.ESEG
                 	.ORG 0
                 
                 	.DSEG
                 	.ORG 0x160
                 
                 	.CSEG
                 ;#include <io.h>
                 	#ifndef __SLEEP_DEFINED__
                 	#define __SLEEP_DEFINED__
                 	.EQU __se_bit=0x40
                 	.EQU __sm_mask=0xB0
                 	.EQU __sm_powerdown=0x20
                 	.EQU __sm_powersave=0x30
                 	.EQU __sm_standby=0xA0
                 	.EQU __sm_ext_standby=0xB0
                 	.EQU __sm_adc_noise_red=0x10
                 	.SET power_ctrl_reg=mcucr
                 	#endif
                 ;#include <alcd.h>
                 ;
                 ;
                 ;char UART_readChar(void);
                 ;void UART_sendChar(char c);
                 ;
                 ;
                 ;void main(void)
                 ; 0000 000A {
                 
                 	.CSEG
                 _main:
                 ; .FSTART _main
                 ; 0000 000B // Declare your local variables here
                 ; 0000 000C char temp;
                 ; 0000 000D // Input/Output Ports initialization
                 ; 0000 000E // Port A initialization
                 ; 0000 000F // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                 ; 0000 0010 DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
                 ;	temp -> R17
00005c e0e0      	LDI  R30,LOW(0)
00005d bbea      	OUT  0x1A,R30
                 ; 0000 0011 // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                 ; 0000 0012 PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
00005e bbeb      	OUT  0x1B,R30
                 ; 0000 0013 
                 ; 0000 0014 // Port B initialization
                 ; 0000 0015 // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                 ; 0000 0016 DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
00005f bbe7      	OUT  0x17,R30
                 ; 0000 0017 // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                 ; 0000 0018 PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
000060 bbe8      	OUT  0x18,R30
                 ; 0000 0019 
                 ; 0000 001A // Port C initialization
                 ; 0000 001B // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                 ; 0000 001C DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
000061 bbe4      	OUT  0x14,R30
                 ; 0000 001D // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                 ; 0000 001E PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
000062 bbe5      	OUT  0x15,R30
                 ; 0000 001F 
                 ; 0000 0020 // Port D initialization
                 ; 0000 0021 // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                 ; 0000 0022 DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
000063 bbe1      	OUT  0x11,R30
                 ; 0000 0023 // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                 ; 0000 0024 PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
000064 bbe2      	OUT  0x12,R30
                 ; 0000 0025 
                 ; 0000 0026 // USART initialization
                 ; 0000 0027 // Communication Parameters: 8 Data, 1 Stop, No Parity
                 ; 0000 0028 // USART Receiver: On
                 ; 0000 0029 // USART Transmitter: On
                 ; 0000 002A // USART Mode: Asynchronous
                 ; 0000 002B // USART Baud Rate: 9600
                 ; 0000 002C UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
000065 b9eb      	OUT  0xB,R30
                 ; 0000 002D UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
000066 e1e8      	LDI  R30,LOW(24)
000067 b9ea      	OUT  0xA,R30
                 ; 0000 002E UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
000068 e8e6      	LDI  R30,LOW(134)
000069 bde0      	OUT  0x20,R30
                 ; 0000 002F UBRRH=0x00;
00006a e0e0      	LDI  R30,LOW(0)
00006b bde0      	OUT  0x20,R30
                 ; 0000 0030 UBRRL=0x33;
00006c e3e3      	LDI  R30,LOW(51)
00006d b9e9      	OUT  0x9,R30
                 ; 0000 0031 
                 ; 0000 0032 // Alphanumeric LCD initialization
                 ; 0000 0033 // Connections are specified in the
                 ; 0000 0034 // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                 ; 0000 0035 // RS - PORTA Bit 0
                 ; 0000 0036 // RD - PORTA Bit 1
                 ; 0000 0037 // EN - PORTA Bit 2
                 ; 0000 0038 // D4 - PORTA Bit 4
                 ; 0000 0039 // D5 - PORTA Bit 5
                 ; 0000 003A // D6 - PORTA Bit 6
                 ; 0000 003B // D7 - PORTA Bit 7
                 ; 0000 003C // Characters/line: 16
                 ; 0000 003D lcd_init(16);
00006e e1a0      	LDI  R26,LOW(16)
00006f d061      	RCALL _lcd_init
                 ; 0000 003E 
                 ; 0000 003F while (1)
                 _0x3:
                 ; 0000 0040       {
                 ; 0000 0041         // putchar(getchar());
                 ; 0000 0042         temp = UART_readChar();
000070 d00b      	RCALL _UART_readChar
000071 2f1e      	MOV  R17,R30
                 ; 0000 0043         lcd_gotoxy(0, 0);
000072 e0e0      	LDI  R30,LOW(0)
000073 93ea      	ST   -Y,R30
000074 e0a0      	LDI  R26,LOW(0)
000075 d030      	RCALL _lcd_gotoxy
                 ; 0000 0044         lcd_putchar(temp);
000076 2fa1      	MOV  R26,R17
000077 d045      	RCALL _lcd_putchar
                 ; 0000 0045         UART_sendChar(temp);
000078 2fa1      	MOV  R26,R17
000079 d006      	RCALL _UART_sendChar
                 ; 0000 0046       }
00007a cff5      	RJMP _0x3
                 ; 0000 0047 }
                 _0x6:
00007b cfff      	RJMP _0x6
                 ; .FEND
                 ;
                 ;char UART_readChar(void) {
                 ; 0000 0049 char UART_readChar(void) {
                 _UART_readChar:
                 ; .FSTART _UART_readChar
                 ; 0000 004A   while ((UCSRA & (1 << RXC)) == 0){}
                 _0x7:
00007c 9b5f      	SBIS 0xB,7
00007d cffe      	RJMP _0x7
                 ; 0000 004B   return UDR;
00007e b1ec      	IN   R30,0xC
00007f 9508      	RET
                 ; 0000 004C }
                 ; .FEND
                 ;void UART_sendChar(char c) {
                 ; 0000 004D void UART_sendChar(char c) {
                 _UART_sendChar:
                 ; .FSTART _UART_sendChar
                 ; 0000 004E   while ((UCSRA & (1 << UDRE)) == 0){}
000080 93aa      	ST   -Y,R26
                 ;	c -> Y+0
                 _0xA:
000081 9b5d      	SBIS 0xB,5
000082 cffe      	RJMP _0xA
                 ; 0000 004F   UDR = c;
000083 81e8      	LD   R30,Y
000084 b9ec      	OUT  0xC,R30
                 ; 0000 0050 }
000085 c074      	RJMP _0x2020001
                 ; .FEND
                 	#ifndef __SLEEP_DEFINED__
                 	#endif
                 
                 	.DSEG
                 
                 	.CSEG
                 __lcd_write_nibble_G100:
                 ; .FSTART __lcd_write_nibble_G100
000086 93aa      	ST   -Y,R26
000087 b3eb      	IN   R30,0x1B
000088 70ef      	ANDI R30,LOW(0xF)
000089 2fae      	MOV  R26,R30
00008a 81e8      	LD   R30,Y
00008b 7fe0      	ANDI R30,LOW(0xF0)
00008c 2bea      	OR   R30,R26
00008d bbeb      	OUT  0x1B,R30
                +
00008e e08d     +LDI R24 , LOW ( 13 )
                +__DELAY_USB_LOOP :
00008f 958a     +DEC R24
000090 f7f1     +BRNE __DELAY_USB_LOOP
                 	__DELAY_USB 13
000091 9ada      	SBI  0x1B,2
                +
000092 e08d     +LDI R24 , LOW ( 13 )
                +__DELAY_USB_LOOP :
000093 958a     +DEC R24
000094 f7f1     +BRNE __DELAY_USB_LOOP
                 	__DELAY_USB 13
000095 98da      	CBI  0x1B,2
                +
000096 e08d     +LDI R24 , LOW ( 13 )
                +__DELAY_USB_LOOP :
000097 958a     +DEC R24
000098 f7f1     +BRNE __DELAY_USB_LOOP
                 	__DELAY_USB 13
000099 c060      	RJMP _0x2020001
                 ; .FEND
                 __lcd_write_data:
                 ; .FSTART __lcd_write_data
00009a 93aa      	ST   -Y,R26
00009b 81a8      	LD   R26,Y
00009c dfe9      	RCALL __lcd_write_nibble_G100
00009d 81e8          ld    r30,y
00009e 95e2          swap  r30
00009f 83e8          st    y,r30
0000a0 81a8      	LD   R26,Y
0000a1 dfe4      	RCALL __lcd_write_nibble_G100
                +
0000a2 e885     +LDI R24 , LOW ( 133 )
                +__DELAY_USB_LOOP :
0000a3 958a     +DEC R24
0000a4 f7f1     +BRNE __DELAY_USB_LOOP
                 	__DELAY_USB 133
0000a5 c054      	RJMP _0x2020001
                 ; .FEND
                 _lcd_gotoxy:
                 ; .FSTART _lcd_gotoxy
0000a6 93aa      	ST   -Y,R26
0000a7 81e8      	LD   R30,Y
0000a8 e0f0      	LDI  R31,0
0000a9 5ae0      	SUBI R30,LOW(-__base_y_G100)
0000aa 4ffe      	SBCI R31,HIGH(-__base_y_G100)
0000ab 81e0      	LD   R30,Z
0000ac 81a9      	LDD  R26,Y+1
0000ad 0fae      	ADD  R26,R30
0000ae dfeb      	RCALL __lcd_write_data
0000af 8059      	LDD  R5,Y+1
0000b0 8048      	LDD  R4,Y+0
0000b1 9622      	ADIW R28,2
0000b2 9508      	RET
                 ; .FEND
                 _lcd_clear:
                 ; .FSTART _lcd_clear
0000b3 e0a2      	LDI  R26,LOW(2)
0000b4 d047      	RCALL SUBOPT_0x0
0000b5 e0ac      	LDI  R26,LOW(12)
0000b6 dfe3      	RCALL __lcd_write_data
0000b7 e0a1      	LDI  R26,LOW(1)
0000b8 d043      	RCALL SUBOPT_0x0
0000b9 e0e0      	LDI  R30,LOW(0)
0000ba 2e4e      	MOV  R4,R30
0000bb 2e5e      	MOV  R5,R30
0000bc 9508      	RET
                 ; .FEND
                 _lcd_putchar:
                 ; .FSTART _lcd_putchar
0000bd 93aa      	ST   -Y,R26
0000be 81a8      	LD   R26,Y
0000bf 30aa      	CPI  R26,LOW(0xA)
0000c0 f011      	BREQ _0x2000005
0000c1 1457      	CP   R5,R7
0000c2 f040      	BRLO _0x2000004
                 _0x2000005:
0000c3 e0e0      	LDI  R30,LOW(0)
0000c4 93ea      	ST   -Y,R30
0000c5 9443      	INC  R4
0000c6 2da4      	MOV  R26,R4
0000c7 dfde      	RCALL _lcd_gotoxy
0000c8 81a8      	LD   R26,Y
0000c9 30aa      	CPI  R26,LOW(0xA)
0000ca f179      	BREQ _0x2020001
                 _0x2000004:
0000cb 9453      	INC  R5
0000cc 9ad8      	SBI  0x1B,0
0000cd 81a8      	LD   R26,Y
0000ce dfcb      	RCALL __lcd_write_data
0000cf 98d8      	CBI  0x1B,0
0000d0 c029      	RJMP _0x2020001
                 ; .FEND
                 _lcd_init:
                 ; .FSTART _lcd_init
0000d1 93aa      	ST   -Y,R26
0000d2 b3ea      	IN   R30,0x1A
0000d3 6fe0      	ORI  R30,LOW(0xF0)
0000d4 bbea      	OUT  0x1A,R30
0000d5 9ad2      	SBI  0x1A,2
0000d6 9ad0      	SBI  0x1A,0
0000d7 9ad1      	SBI  0x1A,1
0000d8 98da      	CBI  0x1B,2
0000d9 98d8      	CBI  0x1B,0
0000da 98d9      	CBI  0x1B,1
0000db 8078      	LDD  R7,Y+0
0000dc 81e8      	LD   R30,Y
0000dd 58e0      	SUBI R30,-LOW(128)
                +
0000de 93e0 0162+STS __base_y_G100 + ( 2 ) , R30
                 	__PUTB1MN __base_y_G100,2
0000e0 81e8      	LD   R30,Y
0000e1 54e0      	SUBI R30,-LOW(192)
                +
0000e2 93e0 0163+STS __base_y_G100 + ( 3 ) , R30
                 	__PUTB1MN __base_y_G100,3
0000e4 e1a4      	LDI  R26,LOW(20)
0000e5 e0b0      	LDI  R27,0
0000e6 940e 0108 	CALL _delay_ms
0000e8 d018      	RCALL SUBOPT_0x1
0000e9 d017      	RCALL SUBOPT_0x1
0000ea d016      	RCALL SUBOPT_0x1
0000eb e2a0      	LDI  R26,LOW(32)
0000ec df99      	RCALL __lcd_write_nibble_G100
                +
0000ed ec88     +LDI R24 , LOW ( 200 )
0000ee e090     +LDI R25 , HIGH ( 200 )
                +__DELAY_USW_LOOP :
0000ef 9701     +SBIW R24 , 1
0000f0 f7f1     +BRNE __DELAY_USW_LOOP
                 	__DELAY_USW 200
0000f1 e2a8      	LDI  R26,LOW(40)
0000f2 dfa7      	RCALL __lcd_write_data
0000f3 e0a4      	LDI  R26,LOW(4)
0000f4 dfa5      	RCALL __lcd_write_data
0000f5 e8a5      	LDI  R26,LOW(133)
0000f6 dfa3      	RCALL __lcd_write_data
0000f7 e0a6      	LDI  R26,LOW(6)
0000f8 dfa1      	RCALL __lcd_write_data
0000f9 dfb9      	RCALL _lcd_clear
                 _0x2020001:
0000fa 9621      	ADIW R28,1
0000fb 9508      	RET
                 ; .FEND
                 
                 	.DSEG
                 __base_y_G100:
000160           	.BYTE 0x4
                 
                 	.CSEG
                 ;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:1 WORDS
                 SUBOPT_0x0:
0000fc df9d      	RCALL __lcd_write_data
0000fd e0a3      	LDI  R26,LOW(3)
0000fe e0b0      	LDI  R27,0
0000ff 940c 0108 	JMP  _delay_ms
                 
                 ;OPTIMIZER ADDED SUBROUTINE, CALLED 3 TIMES, CODE SIZE REDUCTION:7 WORDS
                 SUBOPT_0x1:
000101 e3a0      	LDI  R26,LOW(48)
000102 df83      	RCALL __lcd_write_nibble_G100
                +
000103 ec88     +LDI R24 , LOW ( 200 )
000104 e090     +LDI R25 , HIGH ( 200 )
                +__DELAY_USW_LOOP :
000105 9701     +SBIW R24 , 1
000106 f7f1     +BRNE __DELAY_USW_LOOP
                 	__DELAY_USW 200
000107 9508      	RET
                 
                 
                 	.CSEG
                 _delay_ms:
000108 9610      	adiw r26,0
000109 f039      	breq __delay_ms1
                 __delay_ms0:
                +
00010a ed80     +LDI R24 , LOW ( 0x7D0 )
00010b e097     +LDI R25 , HIGH ( 0x7D0 )
                +__DELAY_USW_LOOP :
00010c 9701     +SBIW R24 , 1
00010d f7f1     +BRNE __DELAY_USW_LOOP
                 	__DELAY_USW 0x7D0
00010e 95a8      	wdr
00010f 9711      	sbiw r26,1
000110 f7c9      	brne __delay_ms0
                 __delay_ms1:
000111 9508      	ret
                 
                 ;END OF CODE MARKER
                 __END_OF_CODE:


RESOURCE USE INFORMATION
------------------------

Notice:
The register and instruction counts are symbol table hit counts,
and hence implicitly used resources are not counted, eg, the
'lpm' instruction without operands implicitly uses r0 and z,
none of which are counted.

x,y,z are separate entities in the symbol table and are
counted separately from r26..r31 here.

.dseg memory usage only counts static data declared with .byte

ATmega16 register use summary:
r0 :   4 r1 :   1 r2 :   0 r3 :   0 r4 :   4 r5 :   4 r6 :   0 r7 :   2 
r8 :   0 r9 :   0 r10:   0 r11:   0 r12:   0 r13:   0 r14:   0 r15:   0 
r16:   0 r17:   3 r18:   0 r19:   0 r20:   0 r21:   0 r22:   2 r23:   0 
r24:  21 r25:   5 r26:  38 r27:   4 r28:   3 r29:   1 r30:  66 r31:   5 
x  :   3 y  :  24 z  :   8 
Registers used: 18 out of 35 (51.4%)

ATmega16 instruction use summary:
.lds  :   0 .lds.l:   0 .sts  :   0 .sts.l:   0 adc   :   0 add   :   1 
adiw  :   3 and   :   0 andi  :   2 asr   :   0 bclr  :   0 bld   :   0 
brbc  :   0 brbs  :   0 brcc  :   0 brcs  :   0 break :   0 breq  :   4 
brge  :   0 brhc  :   0 brhs  :   0 brid  :   0 brie  :   0 brlo  :   1 
brlt  :   0 brmi  :   0 brne  :  11 brpl  :   0 brsh  :   0 brtc  :   0 
brts  :   0 brvc  :   0 brvs  :   0 bset  :   0 bst   :   0 call  :   1 
cbi   :   5 cbr   :   0 clc   :   0 clh   :   0 cli   :   1 cln   :   0 
clr   :   2 cls   :   0 clt   :   0 clv   :   0 clz   :   0 com   :   0 
cp    :   1 cpc   :   0 cpi   :   2 cpse  :   0 dec   :   5 des   :   0 
eor   :   0 fmul  :   0 fmuls :   0 fmulsu:   0 icall :   0 ijmp  :   0 
in    :   3 inc   :   2 jmp   :  23 ld    :  12 ldd   :   4 ldi   :  46 
lds   :   0 lpm   :   7 lsl   :   0 lsr   :   0 mov   :   7 movw  :   3 
mul   :   0 muls  :   0 mulsu :   0 neg   :   0 nop   :   0 or    :   1 
ori   :   1 out   :  22 pop   :   0 push  :   0 rcall :  24 ret   :   6 
reti  :   0 rjmp  :   9 rol   :   0 ror   :   0 sbc   :   0 sbci  :   1 
sbi   :   5 sbic  :   0 sbis  :   2 sbiw  :   7 sbr   :   0 sbrc  :   0 
sbrs  :   0 sec   :   0 seh   :   0 sei   :   0 sen   :   0 ser   :   0 
ses   :   0 set   :   0 sev   :   0 sez   :   0 sleep :   0 spm   :   0 
st    :  12 std   :   0 sts   :   2 sub   :   0 subi  :   3 swap  :   1 
tst   :   0 wdr   :   1 
Instructions used: 37 out of 116 (31.9%)

ATmega16 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000224    538     10    548   16384   3.3%
[.dseg] 0x000060 0x000164      0      4      4    1024   0.4%
[.eseg] 0x000000 0x000000      0      0      0     512   0.0%

Assembly complete, 0 errors, 3 warnings
