
;CodeVisionAVR C Compiler V2.05.3 Standard
;(C) Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
;http://www.hpinfotech.com

;Chip type                : ATmega8
;Program type             : Application
;Clock frequency          : 2,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     : No
;Enhanced function parameter passing: Yes
;Enhanced core instructions         : On
;Smart register allocation          : On
;Automatic register allocation      : On

	#pragma AVRPART ADMIN PART_NAME ATmega8
	#pragma AVRPART MEMORY PROG_FLASH 8192
	#pragma AVRPART MEMORY EEPROM 512
	#pragma AVRPART MEMORY INT_SRAM SIZE 1119
	#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x60

	.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))
	RCALL __EEPROMWRB
	.ENDM

	.MACRO __PUTW1EN
	LDI  R26,LOW(@0+(@1))
	LDI  R27,HIGH(@0+(@1))
	RCALL __EEPROMWRW
	.ENDM

	.MACRO __PUTD1EN
	LDI  R26,LOW(@0+(@1))
	LDI  R27,HIGH(@0+(@1))
	RCALL __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))
	RCALL __GETW1PF
	ICALL
	.ENDM

	.MACRO __CALL2EN
	LDI  R26,LOW(@0+(@1))
	LDI  R27,HIGH(@0+(@1))
	RCALL __EEPROMRDW
	ICALL
	.ENDM

	.MACRO __GETW1STACK
	IN   R26,SPL
	IN   R27,SPH
	ADIW R26,@0+1
	LD   R30,X+
	LD   R31,X
	.ENDM

	.MACRO __GETD1STACK
	IN   R26,SPL
	IN   R27,SPH
	ADIW R26,@0+1
	LD   R30,X+
	LD   R31,X+
	LD   R22,X
	.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)
	RCALL __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
	RCALL __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)
	RCALL __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
	RCALL __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)
	RCALL __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
	RCALL __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)
	RCALL __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
	RCALL __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

	.CSEG
	.ORG 0x00

;START OF CODE MARKER
__START_OF_CODE:

;INTERRUPT VECTORS
	RJMP __RESET
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00
	RJMP 0x00

__RESET:
	CLI
	CLR  R30
	OUT  EECR,R30

;INTERRUPT VECTORS ARE PLACED
;AT THE START OF FLASH
	LDI  R31,1
	OUT  GICR,R31
	OUT  GICR,R30
	OUT  MCUCR,R30

;DISABLE WATCHDOG
	LDI  R31,0x18
	OUT  WDTCR,R31
	OUT  WDTCR,R30

;CLEAR R2-R14
	LDI  R24,(14-2)+1
	LDI  R26,2
	CLR  R27
__CLEAR_REG:
	ST   X+,R30
	DEC  R24
	BRNE __CLEAR_REG

;CLEAR SRAM
	LDI  R24,LOW(__CLEAR_SRAM_SIZE)
	LDI  R25,HIGH(__CLEAR_SRAM_SIZE)
	LDI  R26,__SRAM_START
__CLEAR_SRAM:
	ST   X+,R30
	SBIW R24,1
	BRNE __CLEAR_SRAM

;HARDWARE STACK POINTER INITIALIZATION
	LDI  R30,LOW(__SRAM_END-__HEAP_SIZE)
	OUT  SPL,R30
	LDI  R30,HIGH(__SRAM_END-__HEAP_SIZE)
	OUT  SPH,R30

;DATA STACK POINTER INITIALIZATION
	LDI  R28,LOW(__SRAM_START+__DSTACK_SIZE)
	LDI  R29,HIGH(__SRAM_START+__DSTACK_SIZE)

	RJMP _main

	.ESEG
	.ORG 0

	.DSEG
	.ORG 0x160

	.CSEG
;#include <mega8.h>
	#ifndef __SLEEP_DEFINED__
	#define __SLEEP_DEFINED__
	.EQU __se_bit=0x80
	.EQU __sm_mask=0x70
	.EQU __sm_powerdown=0x20
	.EQU __sm_powersave=0x30
	.EQU __sm_standby=0x60
	.EQU __sm_ext_standby=0x70
	.EQU __sm_adc_noise_red=0x10
	.SET power_ctrl_reg=mcucr
	#endif
;#include <delay.h>
;
;// Declare your global variables here
;
;void main(void)
; 0000 0007 {

	.CSEG
_main:
; 0000 0008 
; 0000 0009 PORTB=0x00;
	LDI  R30,LOW(0)
	OUT  0x18,R30
; 0000 000A DDRB=0xFF;
	LDI  R30,LOW(255)
	OUT  0x17,R30
; 0000 000B 
; 0000 000C PORTC=0x00;
	LDI  R30,LOW(0)
	OUT  0x15,R30
; 0000 000D DDRC=0xFF;
	LDI  R30,LOW(255)
	OUT  0x14,R30
; 0000 000E 
; 0000 000F 
; 0000 0010 PORTD=0x00;
	LDI  R30,LOW(0)
	OUT  0x12,R30
; 0000 0011 DDRD=0xFF;
	LDI  R30,LOW(255)
	OUT  0x11,R30
; 0000 0012 
; 0000 0013 
; 0000 0014 
; 0000 0015 
; 0000 0016 while (1)
_0x3:
; 0000 0017       {
; 0000 0018       delay_ms(350);
	RCALL SUBOPT_0x0
; 0000 0019         PORTB.6=1;
; 0000 001A         PORTB.7=0;
	CBI  0x18,7
; 0000 001B         PORTD.5=0;
	RCALL SUBOPT_0x1
; 0000 001C         PORTD.6=0;
; 0000 001D         PORTD.7=0;
; 0000 001E         PORTB.0=0;
; 0000 001F         PORTB.1=0;
; 0000 0020         PORTB.2=0;
; 0000 0021         PORTB.3=0;
; 0000 0022         PORTB.4=0;
; 0000 0023         PORTC.0=0;
; 0000 0024         PORTC.1=0;
; 0000 0025         PORTC.2=0;
; 0000 0026         PORTC.3=0;
; 0000 0027         PORTC.4=0;
; 0000 0028         PORTC.5=0;
; 0000 0029         PORTD.0=0;
; 0000 002A         PORTD.1=0;
; 0000 002B         PORTD.2=0;
; 0000 002C         PORTD.3=0;
; 0000 002D         delay_ms(350);
; 0000 002E         PORTB.6=1;
; 0000 002F         PORTB.7=1;
	SBI  0x18,7
; 0000 0030         PORTD.5=0;
	RCALL SUBOPT_0x1
; 0000 0031         PORTD.6=0;
; 0000 0032         PORTD.7=0;
; 0000 0033         PORTB.0=0;
; 0000 0034         PORTB.1=0;
; 0000 0035         PORTB.2=0;
; 0000 0036         PORTB.3=0;
; 0000 0037         PORTB.4=0;
; 0000 0038         PORTC.0=0;
; 0000 0039         PORTC.1=0;
; 0000 003A         PORTC.2=0;
; 0000 003B         PORTC.3=0;
; 0000 003C         PORTC.4=0;
; 0000 003D         PORTC.5=0;
; 0000 003E         PORTD.0=0;
; 0000 003F         PORTD.1=0;
; 0000 0040         PORTD.2=0;
; 0000 0041         PORTD.3=0;
; 0000 0042         delay_ms(350);
; 0000 0043         PORTB.6=1;
; 0000 0044         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0045         PORTD.5=1;
; 0000 0046         PORTD.6=0;
	CBI  0x12,6
; 0000 0047         PORTD.7=0;
	RCALL SUBOPT_0x3
; 0000 0048         PORTB.0=0;
; 0000 0049         PORTB.1=0;
; 0000 004A         PORTB.2=0;
; 0000 004B         PORTB.3=0;
; 0000 004C         PORTB.4=0;
; 0000 004D         PORTC.0=0;
; 0000 004E         PORTC.1=0;
; 0000 004F         PORTC.2=0;
; 0000 0050         PORTC.3=0;
; 0000 0051         PORTC.4=0;
; 0000 0052         PORTC.5=0;
; 0000 0053         PORTD.0=0;
; 0000 0054         PORTD.1=0;
; 0000 0055         PORTD.2=0;
; 0000 0056         PORTD.3=0;
; 0000 0057         delay_ms(350);
; 0000 0058         PORTB.6=1;
; 0000 0059         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 005A         PORTD.5=1;
; 0000 005B         PORTD.6=1;
	SBI  0x12,6
; 0000 005C         PORTD.7=0;
	RCALL SUBOPT_0x3
; 0000 005D         PORTB.0=0;
; 0000 005E         PORTB.1=0;
; 0000 005F         PORTB.2=0;
; 0000 0060         PORTB.3=0;
; 0000 0061         PORTB.4=0;
; 0000 0062         PORTC.0=0;
; 0000 0063         PORTC.1=0;
; 0000 0064         PORTC.2=0;
; 0000 0065         PORTC.3=0;
; 0000 0066         PORTC.4=0;
; 0000 0067         PORTC.5=0;
; 0000 0068         PORTD.0=0;
; 0000 0069         PORTD.1=0;
; 0000 006A         PORTD.2=0;
; 0000 006B         PORTD.3=0;
; 0000 006C         delay_ms(350);
; 0000 006D         PORTB.6=1;
; 0000 006E         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 006F         PORTD.5=1;
; 0000 0070         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0071         PORTD.7=1;
; 0000 0072         PORTB.0=0;
	CBI  0x18,0
; 0000 0073         PORTB.1=0;
	RCALL SUBOPT_0x5
; 0000 0074         PORTB.2=0;
; 0000 0075         PORTB.3=0;
; 0000 0076         PORTB.4=0;
; 0000 0077         PORTC.0=0;
; 0000 0078         PORTC.1=0;
; 0000 0079         PORTC.2=0;
; 0000 007A         PORTC.3=0;
; 0000 007B         PORTC.4=0;
; 0000 007C         PORTC.5=0;
; 0000 007D         PORTD.0=0;
; 0000 007E         PORTD.1=0;
; 0000 007F         PORTD.2=0;
; 0000 0080         PORTD.3=0;
; 0000 0081         delay_ms(350);
; 0000 0082         PORTB.6=1;
; 0000 0083         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0084         PORTD.5=1;
; 0000 0085         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0086         PORTD.7=1;
; 0000 0087         PORTB.0=1;
	SBI  0x18,0
; 0000 0088         PORTB.1=0;
	RCALL SUBOPT_0x5
; 0000 0089         PORTB.2=0;
; 0000 008A         PORTB.3=0;
; 0000 008B         PORTB.4=0;
; 0000 008C         PORTC.0=0;
; 0000 008D         PORTC.1=0;
; 0000 008E         PORTC.2=0;
; 0000 008F         PORTC.3=0;
; 0000 0090         PORTC.4=0;
; 0000 0091         PORTC.5=0;
; 0000 0092         PORTD.0=0;
; 0000 0093         PORTD.1=0;
; 0000 0094         PORTD.2=0;
; 0000 0095         PORTD.3=0;
; 0000 0096         delay_ms(350);
; 0000 0097         PORTB.6=1;
; 0000 0098         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0099         PORTD.5=1;
; 0000 009A         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 009B         PORTD.7=1;
; 0000 009C         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 009D         PORTB.1=1;
; 0000 009E         PORTB.2=0;
	CBI  0x18,2
; 0000 009F         PORTB.3=0;
	RCALL SUBOPT_0x7
; 0000 00A0         PORTB.4=0;
; 0000 00A1         PORTC.0=0;
; 0000 00A2         PORTC.1=0;
; 0000 00A3         PORTC.2=0;
; 0000 00A4         PORTC.3=0;
; 0000 00A5         PORTC.4=0;
; 0000 00A6         PORTC.5=0;
; 0000 00A7         PORTD.0=0;
; 0000 00A8         PORTD.1=0;
; 0000 00A9         PORTD.2=0;
; 0000 00AA         PORTD.3=0;
; 0000 00AB         delay_ms(350);
; 0000 00AC         PORTB.6=1;
; 0000 00AD         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 00AE         PORTD.5=1;
; 0000 00AF         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 00B0         PORTD.7=1;
; 0000 00B1         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 00B2         PORTB.1=1;
; 0000 00B3         PORTB.2=1;
	SBI  0x18,2
; 0000 00B4         PORTB.3=0;
	RCALL SUBOPT_0x7
; 0000 00B5         PORTB.4=0;
; 0000 00B6         PORTC.0=0;
; 0000 00B7         PORTC.1=0;
; 0000 00B8         PORTC.2=0;
; 0000 00B9         PORTC.3=0;
; 0000 00BA         PORTC.4=0;
; 0000 00BB         PORTC.5=0;
; 0000 00BC         PORTD.0=0;
; 0000 00BD         PORTD.1=0;
; 0000 00BE         PORTD.2=0;
; 0000 00BF         PORTD.3=0;
; 0000 00C0         delay_ms(350);
; 0000 00C1         PORTB.6=1;
; 0000 00C2         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 00C3         PORTD.5=1;
; 0000 00C4         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 00C5         PORTD.7=1;
; 0000 00C6         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 00C7         PORTB.1=1;
; 0000 00C8         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 00C9         PORTB.3=1;
; 0000 00CA         PORTB.4=0;
	CBI  0x18,4
; 0000 00CB         PORTC.0=0;
	RCALL SUBOPT_0x9
; 0000 00CC         PORTC.1=0;
; 0000 00CD         PORTC.2=0;
; 0000 00CE         PORTC.3=0;
; 0000 00CF         PORTC.4=0;
; 0000 00D0         PORTC.5=0;
; 0000 00D1         PORTD.0=0;
; 0000 00D2         PORTD.1=0;
; 0000 00D3         PORTD.2=0;
; 0000 00D4         PORTD.3=0;
; 0000 00D5         delay_ms(350);
; 0000 00D6            PORTB.6=1;
; 0000 00D7         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 00D8         PORTD.5=1;
; 0000 00D9         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 00DA         PORTD.7=1;
; 0000 00DB         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 00DC         PORTB.1=1;
; 0000 00DD         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 00DE         PORTB.3=1;
; 0000 00DF         PORTB.4=1;
	SBI  0x18,4
; 0000 00E0         PORTC.0=0;
	RCALL SUBOPT_0x9
; 0000 00E1         PORTC.1=0;
; 0000 00E2         PORTC.2=0;
; 0000 00E3         PORTC.3=0;
; 0000 00E4         PORTC.4=0;
; 0000 00E5         PORTC.5=0;
; 0000 00E6         PORTD.0=0;
; 0000 00E7         PORTD.1=0;
; 0000 00E8         PORTD.2=0;
; 0000 00E9         PORTD.3=0;
; 0000 00EA         delay_ms(350);
; 0000 00EB             PORTB.6=1;
; 0000 00EC         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 00ED         PORTD.5=1;
; 0000 00EE         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 00EF         PORTD.7=1;
; 0000 00F0         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 00F1         PORTB.1=1;
; 0000 00F2         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 00F3         PORTB.3=1;
; 0000 00F4         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 00F5         PORTC.0=1;
; 0000 00F6         PORTC.1=0;
	CBI  0x15,1
; 0000 00F7         PORTC.2=0;
	RCALL SUBOPT_0xB
; 0000 00F8         PORTC.3=0;
; 0000 00F9         PORTC.4=0;
; 0000 00FA         PORTC.5=0;
; 0000 00FB         PORTD.0=0;
; 0000 00FC         PORTD.1=0;
; 0000 00FD         PORTD.2=0;
; 0000 00FE         PORTD.3=0;
; 0000 00FF         delay_ms(350);
; 0000 0100           PORTB.6=1;
; 0000 0101         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0102         PORTD.5=1;
; 0000 0103         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0104         PORTD.7=1;
; 0000 0105         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 0106         PORTB.1=1;
; 0000 0107         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 0108         PORTB.3=1;
; 0000 0109         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 010A         PORTC.0=1;
; 0000 010B         PORTC.1=1;
	SBI  0x15,1
; 0000 010C         PORTC.2=0;
	RCALL SUBOPT_0xB
; 0000 010D         PORTC.3=0;
; 0000 010E         PORTC.4=0;
; 0000 010F         PORTC.5=0;
; 0000 0110         PORTD.0=0;
; 0000 0111         PORTD.1=0;
; 0000 0112         PORTD.2=0;
; 0000 0113         PORTD.3=0;
; 0000 0114         delay_ms(350);
; 0000 0115          PORTB.6=1;
; 0000 0116         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0117         PORTD.5=1;
; 0000 0118         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0119         PORTD.7=1;
; 0000 011A         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 011B         PORTB.1=1;
; 0000 011C         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 011D         PORTB.3=1;
; 0000 011E         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 011F         PORTC.0=1;
; 0000 0120         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 0121         PORTC.2=1;
; 0000 0122         PORTC.3=0;
	CBI  0x15,3
; 0000 0123         PORTC.4=0;
	RCALL SUBOPT_0xD
; 0000 0124         PORTC.5=0;
; 0000 0125         PORTD.0=0;
; 0000 0126         PORTD.1=0;
; 0000 0127         PORTD.2=0;
; 0000 0128         PORTD.3=0;
; 0000 0129         delay_ms(350);
; 0000 012A         PORTB.6=1;
; 0000 012B         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 012C         PORTD.5=1;
; 0000 012D         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 012E         PORTD.7=1;
; 0000 012F         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 0130         PORTB.1=1;
; 0000 0131         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 0132         PORTB.3=1;
; 0000 0133         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 0134         PORTC.0=1;
; 0000 0135         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 0136         PORTC.2=1;
; 0000 0137         PORTC.3=1;
	SBI  0x15,3
; 0000 0138         PORTC.4=0;
	RCALL SUBOPT_0xD
; 0000 0139         PORTC.5=0;
; 0000 013A         PORTD.0=0;
; 0000 013B         PORTD.1=0;
; 0000 013C         PORTD.2=0;
; 0000 013D         PORTD.3=0;
; 0000 013E         delay_ms(350);
; 0000 013F            PORTB.6=1;
; 0000 0140         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0141         PORTD.5=1;
; 0000 0142         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0143         PORTD.7=1;
; 0000 0144         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 0145         PORTB.1=1;
; 0000 0146         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 0147         PORTB.3=1;
; 0000 0148         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 0149         PORTC.0=1;
; 0000 014A         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 014B         PORTC.2=1;
; 0000 014C         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 014D         PORTC.4=1;
; 0000 014E         PORTC.5=0;
	CBI  0x15,5
; 0000 014F         PORTD.0=0;
	RCALL SUBOPT_0xF
; 0000 0150         PORTD.1=0;
; 0000 0151         PORTD.2=0;
; 0000 0152         PORTD.3=0;
; 0000 0153         delay_ms(350);
; 0000 0154              PORTB.6=1;
; 0000 0155         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0156         PORTD.5=1;
; 0000 0157         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0158         PORTD.7=1;
; 0000 0159         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 015A         PORTB.1=1;
; 0000 015B         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 015C         PORTB.3=1;
; 0000 015D         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 015E         PORTC.0=1;
; 0000 015F         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 0160         PORTC.2=1;
; 0000 0161         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 0162         PORTC.4=1;
; 0000 0163         PORTC.5=1;
	SBI  0x15,5
; 0000 0164         PORTD.0=0;
	RCALL SUBOPT_0xF
; 0000 0165         PORTD.1=0;
; 0000 0166         PORTD.2=0;
; 0000 0167         PORTD.3=0;
; 0000 0168         delay_ms(350);
; 0000 0169 
; 0000 016A            PORTB.6=1;
; 0000 016B         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 016C         PORTD.5=1;
; 0000 016D         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 016E         PORTD.7=1;
; 0000 016F         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 0170         PORTB.1=1;
; 0000 0171         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 0172         PORTB.3=1;
; 0000 0173         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 0174         PORTC.0=1;
; 0000 0175         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 0176         PORTC.2=1;
; 0000 0177         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 0178         PORTC.4=1;
; 0000 0179         PORTC.5=1;
	RCALL SUBOPT_0x10
; 0000 017A         PORTD.0=1;
; 0000 017B         PORTD.1=0;
	CBI  0x12,1
; 0000 017C         PORTD.2=0;
	CBI  0x12,2
; 0000 017D         PORTD.3=0;
	CBI  0x12,3
; 0000 017E         delay_ms(350);
	RCALL SUBOPT_0x0
; 0000 017F              PORTB.6=1;
; 0000 0180         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0181         PORTD.5=1;
; 0000 0182         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0183         PORTD.7=1;
; 0000 0184         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 0185         PORTB.1=1;
; 0000 0186         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 0187         PORTB.3=1;
; 0000 0188         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 0189         PORTC.0=1;
; 0000 018A         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 018B         PORTC.2=1;
; 0000 018C         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 018D         PORTC.4=1;
; 0000 018E         PORTC.5=1;
	RCALL SUBOPT_0x10
; 0000 018F         PORTD.0=1;
; 0000 0190         PORTD.1=1;
	SBI  0x12,1
; 0000 0191         PORTD.2=0;
	CBI  0x12,2
; 0000 0192         PORTD.3=0;
	CBI  0x12,3
; 0000 0193         delay_ms(350);
	RCALL SUBOPT_0x0
; 0000 0194          PORTB.6=1;
; 0000 0195         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 0196         PORTD.5=1;
; 0000 0197         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 0198         PORTD.7=1;
; 0000 0199         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 019A         PORTB.1=1;
; 0000 019B         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 019C         PORTB.3=1;
; 0000 019D         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 019E         PORTC.0=1;
; 0000 019F         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 01A0         PORTC.2=1;
; 0000 01A1         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 01A2         PORTC.4=1;
; 0000 01A3         PORTC.5=1;
	RCALL SUBOPT_0x10
; 0000 01A4         PORTD.0=1;
; 0000 01A5         PORTD.1=1;
	SBI  0x12,1
; 0000 01A6         PORTD.2=1;
	SBI  0x12,2
; 0000 01A7         PORTD.3=0;
	CBI  0x12,3
; 0000 01A8         delay_ms(350);
	RCALL SUBOPT_0x0
; 0000 01A9           PORTB.6=1;
; 0000 01AA         PORTB.7=1;
	RCALL SUBOPT_0x2
; 0000 01AB         PORTD.5=1;
; 0000 01AC         PORTD.6=1;
	RCALL SUBOPT_0x4
; 0000 01AD         PORTD.7=1;
; 0000 01AE         PORTB.0=1;
	RCALL SUBOPT_0x6
; 0000 01AF         PORTB.1=1;
; 0000 01B0         PORTB.2=1;
	RCALL SUBOPT_0x8
; 0000 01B1         PORTB.3=1;
; 0000 01B2         PORTB.4=1;
	RCALL SUBOPT_0xA
; 0000 01B3         PORTC.0=1;
; 0000 01B4         PORTC.1=1;
	RCALL SUBOPT_0xC
; 0000 01B5         PORTC.2=1;
; 0000 01B6         PORTC.3=1;
	RCALL SUBOPT_0xE
; 0000 01B7         PORTC.4=1;
; 0000 01B8         PORTC.5=1;
	RCALL SUBOPT_0x10
; 0000 01B9         PORTD.0=1;
; 0000 01BA         PORTD.1=1;
	SBI  0x12,1
; 0000 01BB         PORTD.2=1;
	SBI  0x12,2
; 0000 01BC         PORTD.3=1;
	SBI  0x12,3
; 0000 01BD         delay_ms(350);
	LDI  R26,LOW(350)
	LDI  R27,HIGH(350)
	RCALL _delay_ms
; 0000 01BE       }
	RJMP _0x3
; 0000 01BF delay_ms(250);}
_0x326:
	RJMP _0x326

	.CSEG
;OPTIMIZER ADDED SUBROUTINE, CALLED 20 TIMES, CODE SIZE REDUCTION:55 WORDS
SUBOPT_0x0:
	LDI  R26,LOW(350)
	LDI  R27,HIGH(350)
	RCALL _delay_ms
	SBI  0x18,6
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:16 WORDS
SUBOPT_0x1:
	CBI  0x12,5
	CBI  0x12,6
	CBI  0x12,7
	CBI  0x18,0
	CBI  0x18,1
	CBI  0x18,2
	CBI  0x18,3
	CBI  0x18,4
	CBI  0x15,0
	CBI  0x15,1
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 18 TIMES, CODE SIZE REDUCTION:15 WORDS
SUBOPT_0x2:
	SBI  0x18,7
	SBI  0x12,5
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:14 WORDS
SUBOPT_0x3:
	CBI  0x12,7
	CBI  0x18,0
	CBI  0x18,1
	CBI  0x18,2
	CBI  0x18,3
	CBI  0x18,4
	CBI  0x15,0
	CBI  0x15,1
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 16 TIMES, CODE SIZE REDUCTION:13 WORDS
SUBOPT_0x4:
	SBI  0x12,6
	SBI  0x12,7
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:12 WORDS
SUBOPT_0x5:
	CBI  0x18,1
	CBI  0x18,2
	CBI  0x18,3
	CBI  0x18,4
	CBI  0x15,0
	CBI  0x15,1
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 14 TIMES, CODE SIZE REDUCTION:11 WORDS
SUBOPT_0x6:
	SBI  0x18,0
	SBI  0x18,1
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:10 WORDS
SUBOPT_0x7:
	CBI  0x18,3
	CBI  0x18,4
	CBI  0x15,0
	CBI  0x15,1
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 12 TIMES, CODE SIZE REDUCTION:9 WORDS
SUBOPT_0x8:
	SBI  0x18,2
	SBI  0x18,3
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:8 WORDS
SUBOPT_0x9:
	CBI  0x15,0
	CBI  0x15,1
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 10 TIMES, CODE SIZE REDUCTION:7 WORDS
SUBOPT_0xA:
	SBI  0x18,4
	SBI  0x15,0
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:6 WORDS
SUBOPT_0xB:
	CBI  0x15,2
	CBI  0x15,3
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 8 TIMES, CODE SIZE REDUCTION:5 WORDS
SUBOPT_0xC:
	SBI  0x15,1
	SBI  0x15,2
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:4 WORDS
SUBOPT_0xD:
	CBI  0x15,4
	CBI  0x15,5
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 6 TIMES, CODE SIZE REDUCTION:3 WORDS
SUBOPT_0xE:
	SBI  0x15,3
	SBI  0x15,4
	RET

;OPTIMIZER ADDED SUBROUTINE, CALLED 2 TIMES, CODE SIZE REDUCTION:2 WORDS
SUBOPT_0xF:
	CBI  0x12,0
	CBI  0x12,1
	CBI  0x12,2
	CBI  0x12,3
	RJMP SUBOPT_0x0

;OPTIMIZER ADDED SUBROUTINE, CALLED 4 TIMES, CODE SIZE REDUCTION:1 WORDS
SUBOPT_0x10:
	SBI  0x15,5
	SBI  0x12,0
	RET


	.CSEG
_delay_ms:
	adiw r26,0
	breq __delay_ms1
__delay_ms0:
	__DELAY_USW 0x1F4
	wdr
	sbiw r26,1
	brne __delay_ms0
__delay_ms1:
	ret

;END OF CODE MARKER
__END_OF_CODE:
