| 174 | kaklik | 1 | GAS LISTING /tmp/cct6zTlg.s 			page 1
 | 
        
           | 151 | kaklik | 2 |   | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 |    1               		.file	"UIMgr.c"
 | 
        
           |  |  | 5 |    2               		.arch atmega8
 | 
        
           |  |  | 6 |    3               	__SREG__ = 0x3f
 | 
        
           |  |  | 7 |    4               	__SP_H__ = 0x3e
 | 
        
           |  |  | 8 |    5               	__SP_L__ = 0x3d
 | 
        
           |  |  | 9 |    6               	__tmp_reg__ = 0
 | 
        
           |  |  | 10 |    7               	__zero_reg__ = 1
 | 
        
           |  |  | 11 |    8               		.global __do_copy_data
 | 
        
           |  |  | 12 |    9               		.global __do_clear_bss
 | 
        
           | 174 | kaklik | 13 |   10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
 | 
        
           | 151 | kaklik | 14 |   11               		.stabs	"UIMgr.c",100,0,2,.Ltext0
 | 
        
           |  |  | 15 |   12               		.text
 | 
        
           |  |  | 16 |   13               	.Ltext0:
 | 
        
           |  |  | 17 |   14               		.stabs	"gcc2_compiled.",60,0,0,0
 | 
        
           |  |  | 18 |   15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
 | 
        
           |  |  | 19 |   16               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
 | 
        
           |  |  | 20 |   17               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
 | 
        
           |  |  | 21 |   18               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
 | 
        
           |  |  | 22 |   19               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
 | 
        
           |  |  | 23 |   20               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
 | 
        
           |  |  | 24 |   21               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
 | 
        
           |  |  | 25 |   22               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
 | 
        
           |  |  | 26 |   23               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
 | 
        
           |  |  | 27 |   24               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
 | 
        
           |  |  | 28 |   25               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
 | 
        
           |  |  | 29 |   26               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
 | 
        
           |  |  | 30 |   27               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
 | 
        
           |  |  | 31 |   28               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
 | 
        
           |  |  | 32 |   29               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
 | 
        
           |  |  | 33 |   30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
 | 
        
           |  |  | 34 |   31               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
 | 
        
           |  |  | 35 |   32               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
 | 
        
           |  |  | 36 |   33               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
 | 
        
           |  |  | 37 |   34               		.stabs	"int8_t:t(4,1)=(0,10)",128,0,116,0
 | 
        
           |  |  | 38 |   35               		.stabs	"uint8_t:t(4,2)=(0,11)",128,0,117,0
 | 
        
           |  |  | 39 |   36               		.stabs	"int16_t:t(4,3)=(0,1)",128,0,118,0
 | 
        
           |  |  | 40 |   37               		.stabs	"uint16_t:t(4,4)=(0,4)",128,0,119,0
 | 
        
           |  |  | 41 |   38               		.stabs	"int32_t:t(4,5)=(0,3)",128,0,120,0
 | 
        
           |  |  | 42 |   39               		.stabs	"uint32_t:t(4,6)=(0,5)",128,0,121,0
 | 
        
           |  |  | 43 |   40               		.stabs	"int64_t:t(4,7)=(0,6)",128,0,122,0
 | 
        
           |  |  | 44 |   41               		.stabs	"uint64_t:t(4,8)=(0,7)",128,0,123,0
 | 
        
           |  |  | 45 |   42               		.stabs	"intptr_t:t(4,9)=(4,3)",128,0,135,0
 | 
        
           |  |  | 46 |   43               		.stabs	"uintptr_t:t(4,10)=(4,4)",128,0,140,0
 | 
        
           |  |  | 47 |   44               		.stabs	"int_least8_t:t(4,11)=(4,1)",128,0,152,0
 | 
        
           |  |  | 48 |   45               		.stabs	"uint_least8_t:t(4,12)=(4,2)",128,0,157,0
 | 
        
           |  |  | 49 |   46               		.stabs	"int_least16_t:t(4,13)=(4,3)",128,0,162,0
 | 
        
           |  |  | 50 |   47               		.stabs	"uint_least16_t:t(4,14)=(4,4)",128,0,167,0
 | 
        
           |  |  | 51 |   48               		.stabs	"int_least32_t:t(4,15)=(4,5)",128,0,172,0
 | 
        
           |  |  | 52 |   49               		.stabs	"uint_least32_t:t(4,16)=(4,6)",128,0,177,0
 | 
        
           |  |  | 53 |   50               		.stabs	"int_least64_t:t(4,17)=(4,7)",128,0,182,0
 | 
        
           |  |  | 54 |   51               		.stabs	"uint_least64_t:t(4,18)=(4,8)",128,0,187,0
 | 
        
           |  |  | 55 |   52               		.stabs	"int_fast8_t:t(4,19)=(4,1)",128,0,200,0
 | 
        
           |  |  | 56 |   53               		.stabs	"uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
 | 
        
           |  |  | 57 |   54               		.stabs	"int_fast16_t:t(4,21)=(4,3)",128,0,210,0
 | 
        
           |  |  | 58 |   55               		.stabs	"uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
 | 
        
           |  |  | 59 |   56               		.stabs	"int_fast32_t:t(4,23)=(4,5)",128,0,220,0
 | 
        
           |  |  | 60 |   57               		.stabs	"uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
 | 
        
           | 174 | kaklik | 61 | GAS LISTING /tmp/cct6zTlg.s 			page 2
 | 
        
           | 151 | kaklik | 62 |   | 
        
           |  |  | 63 |   | 
        
           |  |  | 64 |   58               		.stabs	"int_fast64_t:t(4,25)=(4,7)",128,0,230,0
 | 
        
           |  |  | 65 |   59               		.stabs	"uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
 | 
        
           |  |  | 66 |   60               		.stabs	"intmax_t:t(4,27)=(4,7)",128,0,249,0
 | 
        
           |  |  | 67 |   61               		.stabs	"uintmax_t:t(4,28)=(4,8)",128,0,254,0
 | 
        
           |  |  | 68 |   62               		.stabn	162,0,0,0
 | 
        
           |  |  | 69 |   63               		.stabs	"int_farptr_t:t(3,1)=(4,5)",128,0,76,0
 | 
        
           |  |  | 70 |   64               		.stabs	"uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
 | 
        
           |  |  | 71 |   65               		.stabn	162,0,0,0
 | 
        
           |  |  | 72 |   66               		.stabn	162,0,0,0
 | 
        
           |  |  | 73 |   67               		.stabn	162,0,0,0
 | 
        
           |  |  | 74 |   68               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
 | 
        
           |  |  | 75 |   69               		.stabs	"/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
 | 
        
           |  |  | 76 |   70               		.stabs	"size_t:t(6,1)=(0,4)",128,0,214,0
 | 
        
           |  |  | 77 |   71               		.stabs	"wchar_t:t(6,2)=(0,1)",128,0,326,0
 | 
        
           |  |  | 78 |   72               		.stabn	162,0,0,0
 | 
        
           |  |  | 79 |   73               		.stabs	"div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
 | 
        
           |  |  | 80 |   74               		.stabs	"ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
 | 
        
           |  |  | 81 |   75               		.stabs	"__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
 | 
        
           |  |  | 82 |   76               		.stabn	162,0,0,0
 | 
        
           |  |  | 83 |   77               		.stabs	"CommonDefs.h",130,0,0,0
 | 
        
           |  |  | 84 |   78               		.stabs	"bool_t:t(7,1)=(0,11)",128,0,56,0
 | 
        
           |  |  | 85 |   79               		.stabn	162,0,0,0
 | 
        
           |  |  | 86 |   80               		.stabs	"CamConfig.h",130,0,0,0
 | 
        
           |  |  | 87 |   81               		.stabs	"I2CInterface.h",130,0,0,0
 | 
        
           |  |  | 88 |   82               		.stabs	"i2cCmd_t:t(9,1)=(9,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
 | 
        
           |  |  | 89 |   83               		.stabn	162,0,0,0
 | 
        
           |  |  | 90 |   84               		.stabn	162,0,0,0
 | 
        
           |  |  | 91 |   85               		.stabs	" :T(0,16)=@s8;egetVersionCmd:0,pingCmd:1,setCameraRegsCmd:2,dumpFrameCmd:3,enableTrackingC
 | 
        
           |  |  | 92 |   86               		.stabs	"UIMgr_Cmd_t:t(0,17)=(0,16)",128,0,81,0
 | 
        
           |  |  | 93 |   87               		.stabs	" :T(0,18)=@s8;esetRed:0,setGreen:1,setBlue:2,;",128,0,0,0
 | 
        
           |  |  | 94 |   88               		.stabs	"setColorState_t:t(0,19)=(0,18)",128,0,88,0
 | 
        
           |  |  | 95 |   89               		.stabs	"UIMgr_writeBufferToTxFifo:F(0,15)",36,0,547,UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 96 |   90               		.stabs	"pData:P(0,20)=*(0,11)",64,0,546,26
 | 
        
           |  |  | 97 |   91               		.stabs	"length:P(0,11)",64,0,546,24
 | 
        
           |  |  | 98 |   92               	.global	UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 99 |   93               		.type	UIMgr_writeBufferToTxFifo, @function
 | 
        
           |  |  | 100 |   94               	UIMgr_writeBufferToTxFifo:
 | 
        
           |  |  | 101 |   95               		.stabd	46,0,0
 | 
        
           |  |  | 102 |    1:UIMgr.c       **** /*
 | 
        
           |  |  | 103 |    2:UIMgr.c       ****     Copyright (C) 2004    John Orlando
 | 
        
           |  |  | 104 |    3:UIMgr.c       ****     
 | 
        
           |  |  | 105 |    4:UIMgr.c       ****    AVRcam: a small real-time image processing engine.
 | 
        
           |  |  | 106 |    5:UIMgr.c       **** 
 | 
        
           |  |  | 107 |    6:UIMgr.c       ****     This program is free software; you can redistribute it and/or
 | 
        
           |  |  | 108 |    7:UIMgr.c       ****     modify it under the terms of the GNU General Public
 | 
        
           |  |  | 109 |    8:UIMgr.c       ****     License as published by the Free Software Foundation; either
 | 
        
           |  |  | 110 |    9:UIMgr.c       ****     version 2 of the License, or (at your option) any later version.
 | 
        
           |  |  | 111 |   10:UIMgr.c       **** 
 | 
        
           |  |  | 112 |   11:UIMgr.c       ****     This program is distributed in the hope that it will be useful,
 | 
        
           |  |  | 113 |   12:UIMgr.c       ****     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
        
           |  |  | 114 |   13:UIMgr.c       ****     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
        
           |  |  | 115 |   14:UIMgr.c       ****     General Public License for more details.
 | 
        
           |  |  | 116 |   15:UIMgr.c       **** 
 | 
        
           |  |  | 117 |   16:UIMgr.c       ****     You should have received a copy of the GNU General Public
 | 
        
           |  |  | 118 |   17:UIMgr.c       ****     License along with this program; if not, write to the Free Software
 | 
        
           |  |  | 119 |   18:UIMgr.c       ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
        
           |  |  | 120 |   19:UIMgr.c       **** 
 | 
        
           | 174 | kaklik | 121 | GAS LISTING /tmp/cct6zTlg.s 			page 3
 | 
        
           | 151 | kaklik | 122 |   | 
        
           |  |  | 123 |   | 
        
           |  |  | 124 |   20:UIMgr.c       ****    For more information on the AVRcam, please contact:
 | 
        
           |  |  | 125 |   21:UIMgr.c       **** 
 | 
        
           |  |  | 126 |   22:UIMgr.c       ****    john@jrobot.net
 | 
        
           |  |  | 127 |   23:UIMgr.c       **** 
 | 
        
           |  |  | 128 |   24:UIMgr.c       ****    or go to www.jrobot.net for more details regarding the system.
 | 
        
           |  |  | 129 |   25:UIMgr.c       **** */
 | 
        
           |  |  | 130 |   26:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 131 |   27:UIMgr.c       **** 	Module Name: UIMgr.c
 | 
        
           |  |  | 132 |   28:UIMgr.c       **** 	Module Date: 04/10/2004
 | 
        
           |  |  | 133 |   29:UIMgr.c       **** 	Module Auth: John Orlando
 | 
        
           |  |  | 134 |   30:UIMgr.c       **** 	
 | 
        
           |  |  | 135 |   31:UIMgr.c       **** 	Description: This module is responsible for providing
 | 
        
           |  |  | 136 |   32:UIMgr.c       **** 	the processing to manage the user interface of the
 | 
        
           |  |  | 137 |   33:UIMgr.c       **** 	system.  This user interface is provided via the UART.
 | 
        
           |  |  | 138 |   34:UIMgr.c       **** 	This module handles the incoming serial commands, and
 | 
        
           |  |  | 139 |   35:UIMgr.c       **** 	performs the needed functionality.  It is then
 | 
        
           |  |  | 140 |   36:UIMgr.c       **** 	responsible for generating any needed response to
 | 
        
           |  |  | 141 |   37:UIMgr.c       **** 	the external entity.
 | 
        
           |  |  | 142 |   38:UIMgr.c       ****     
 | 
        
           |  |  | 143 |   39:UIMgr.c       ****     Revision History:
 | 
        
           |  |  | 144 |   40:UIMgr.c       ****     Date        Rel Ver.    Notes
 | 
        
           |  |  | 145 |   41:UIMgr.c       ****     4/10/2004      0.1     Module created
 | 
        
           |  |  | 146 |   42:UIMgr.c       ****     6/30/2004      1.0     Initial release for Circuit Cellar
 | 
        
           |  |  | 147 |   43:UIMgr.c       ****                            contest.
 | 
        
           |  |  | 148 |   44:UIMgr.c       ****     11/15/2004     1.2     Updated version string to 1.2.
 | 
        
           |  |  | 149 |   45:UIMgr.c       ****     1/16/2005      1.4     Added code to write the colorMap
 | 
        
           |  |  | 150 |   46:UIMgr.c       ****                            to EEPROM one byte at a time, 
 | 
        
           |  |  | 151 |   47:UIMgr.c       ****                            ensuring that the EEPROM is only
 | 
        
           |  |  | 152 |   48:UIMgr.c       ****                            written when the data is different
 | 
        
           |  |  | 153 |   49:UIMgr.c       ****                            than the current value (thus saving
 | 
        
           |  |  | 154 |   50:UIMgr.c       ****                            EEPROM writes).  Updated version
 | 
        
           |  |  | 155 |   51:UIMgr.c       ****                            string to 1.4.
 | 
        
           |  |  | 156 |   52:UIMgr.c       **** ***********************************************************/
 | 
        
           |  |  | 157 |   53:UIMgr.c       **** 
 | 
        
           |  |  | 158 |   54:UIMgr.c       **** /*	Includes */
 | 
        
           |  |  | 159 |   55:UIMgr.c       **** #include <avr/io.h>
 | 
        
           |  |  | 160 |   56:UIMgr.c       **** #include <stdlib.h>
 | 
        
           |  |  | 161 |   57:UIMgr.c       **** #include <string.h>
 | 
        
           |  |  | 162 |   58:UIMgr.c       **** #include <avr/eeprom.h>
 | 
        
           |  |  | 163 |   59:UIMgr.c       **** #include "CommonDefs.h"
 | 
        
           |  |  | 164 |   60:UIMgr.c       **** #include "UIMgr.h"
 | 
        
           |  |  | 165 |   61:UIMgr.c       **** #include "UartInterface.h"
 | 
        
           |  |  | 166 |   62:UIMgr.c       **** #include "CamConfig.h"
 | 
        
           |  |  | 167 |   63:UIMgr.c       **** #include "Utility.h"
 | 
        
           |  |  | 168 |   64:UIMgr.c       **** #include "Executive.h"
 | 
        
           |  |  | 169 |   65:UIMgr.c       **** #include "CamInterface.h"
 | 
        
           |  |  | 170 |   66:UIMgr.c       **** 
 | 
        
           |  |  | 171 |   67:UIMgr.c       **** /* 	Local Structures and Typedefs */
 | 
        
           |  |  | 172 |   68:UIMgr.c       **** 
 | 
        
           |  |  | 173 |   69:UIMgr.c       **** typedef enum
 | 
        
           |  |  | 174 |   70:UIMgr.c       **** {
 | 
        
           |  |  | 175 |   71:UIMgr.c       **** 	getVersionCmd,
 | 
        
           |  |  | 176 |   72:UIMgr.c       **** 	pingCmd,
 | 
        
           |  |  | 177 |   73:UIMgr.c       **** 	setCameraRegsCmd,
 | 
        
           |  |  | 178 |   74:UIMgr.c       **** 	dumpFrameCmd,
 | 
        
           |  |  | 179 |   75:UIMgr.c       **** 	enableTrackingCmd,
 | 
        
           |  |  | 180 |   76:UIMgr.c       **** 	disableTrackingCmd,
 | 
        
           | 174 | kaklik | 181 | GAS LISTING /tmp/cct6zTlg.s 			page 4
 | 
        
           | 151 | kaklik | 182 |   | 
        
           |  |  | 183 |   | 
        
           |  |  | 184 |   77:UIMgr.c       **** 	setColorMapCmd,
 | 
        
           |  |  | 185 |   78:UIMgr.c       **** 	resetCameraCmd,
 | 
        
           |  |  | 186 |   79:UIMgr.c       **** 	noCmd,
 | 
        
           |  |  | 187 |   80:UIMgr.c       **** 	invalidCmd
 | 
        
           |  |  | 188 |   81:UIMgr.c       **** } UIMgr_Cmd_t;
 | 
        
           |  |  | 189 |   82:UIMgr.c       **** 
 | 
        
           |  |  | 190 |   83:UIMgr.c       **** typedef enum
 | 
        
           |  |  | 191 |   84:UIMgr.c       **** {
 | 
        
           |  |  | 192 |   85:UIMgr.c       **** 	setRed,
 | 
        
           |  |  | 193 |   86:UIMgr.c       **** 	setGreen,
 | 
        
           |  |  | 194 |   87:UIMgr.c       **** 	setBlue
 | 
        
           |  |  | 195 |   88:UIMgr.c       **** } setColorState_t;
 | 
        
           |  |  | 196 |   89:UIMgr.c       **** 	
 | 
        
           |  |  | 197 |   90:UIMgr.c       **** 
 | 
        
           |  |  | 198 |   91:UIMgr.c       **** /*  Local Variables */
 | 
        
           |  |  | 199 |   92:UIMgr.c       **** static unsigned char charCount = 0; 
 | 
        
           |  |  | 200 |   93:UIMgr.c       **** static unsigned char charIndex = 0;
 | 
        
           |  |  | 201 |   94:UIMgr.c       **** static unsigned char asciiTokenBuffer[MAX_TOKEN_LENGTH+1]; /* +1 to ensure NULL at end */
 | 
        
           |  |  | 202 |   95:UIMgr.c       **** static unsigned char tokenCount = 0;
 | 
        
           |  |  | 203 |   96:UIMgr.c       **** static unsigned char tokenBuffer[MAX_TOKEN_COUNT];
 | 
        
           |  |  | 204 |   97:UIMgr.c       **** static UIMgr_Cmd_t receivedCmd = noCmd;
 | 
        
           |  |  | 205 |   98:UIMgr.c       **** static unsigned char AVRcamVersion[] = "AVRcam v1.4\r";
 | 
        
           |  |  | 206 |   99:UIMgr.c       **** 
 | 
        
           |  |  | 207 |  100:UIMgr.c       **** /*  Local Function Declaration */
 | 
        
           |  |  | 208 |  101:UIMgr.c       **** static unsigned char UIMgr_readRxFifo(void);
 | 
        
           |  |  | 209 |  102:UIMgr.c       **** static unsigned char UIMgr_readTxFifo(void);
 | 
        
           |  |  | 210 |  103:UIMgr.c       **** static unsigned char UIMgr_readRxFifo(void);
 | 
        
           |  |  | 211 |  104:UIMgr.c       **** static void UIMgr_sendNck(void);
 | 
        
           |  |  | 212 |  105:UIMgr.c       **** static void UIMgr_sendAck(void);
 | 
        
           |  |  | 213 |  106:UIMgr.c       **** static void UIMgr_convertTokenToCmd(void);
 | 
        
           |  |  | 214 |  107:UIMgr.c       **** static void UIMgr_convertTokenToValue(void);
 | 
        
           |  |  | 215 |  108:UIMgr.c       **** static void UIMgr_executeCmd(void);
 | 
        
           |  |  | 216 |  109:UIMgr.c       **** 
 | 
        
           |  |  | 217 |  110:UIMgr.c       **** /*  Extern Variables */
 | 
        
           |  |  | 218 |  111:UIMgr.c       **** unsigned char UIMgr_rxFifo[UI_MGR_RX_FIFO_SIZE];
 | 
        
           |  |  | 219 |  112:UIMgr.c       **** unsigned char UIMgr_rxFifoHead=0;
 | 
        
           |  |  | 220 |  113:UIMgr.c       **** unsigned char UIMgr_rxFifoTail=0;
 | 
        
           |  |  | 221 |  114:UIMgr.c       **** 
 | 
        
           |  |  | 222 |  115:UIMgr.c       **** unsigned char UIMgr_txFifo[UI_MGR_TX_FIFO_SIZE];
 | 
        
           |  |  | 223 |  116:UIMgr.c       **** unsigned char UIMgr_txFifoHead=0;
 | 
        
           |  |  | 224 |  117:UIMgr.c       **** unsigned char UIMgr_txFifoTail=0;
 | 
        
           |  |  | 225 |  118:UIMgr.c       **** 
 | 
        
           |  |  | 226 |  119:UIMgr.c       **** /*  Definitions */
 | 
        
           |  |  | 227 |  120:UIMgr.c       **** #define IS_DATA_IN_TX_FIFO() (!(UIMgr_txFifoHead == UIMgr_txFifoTail))
 | 
        
           |  |  | 228 |  121:UIMgr.c       **** #define IS_DATA_IN_RX_FIFO() (!(UIMgr_rxFifoHead == UIMgr_rxFifoTail))
 | 
        
           |  |  | 229 |  122:UIMgr.c       **** 
 | 
        
           |  |  | 230 |  123:UIMgr.c       **** /* MAX_EEPROM_WRITE_ATTEMPTS limits the number of writes that can be
 | 
        
           |  |  | 231 |  124:UIMgr.c       **** done to a particular EEPROM cell, so that it can't possible just 
 | 
        
           |  |  | 232 |  125:UIMgr.c       **** write to the same cell over and over */
 | 
        
           |  |  | 233 |  126:UIMgr.c       **** #define MAX_EEPROM_WRITE_ATTEMPTS 3
 | 
        
           |  |  | 234 |  127:UIMgr.c       **** 
 | 
        
           |  |  | 235 |  128:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 236 |  129:UIMgr.c       **** 	Function Name: UIMgr_init
 | 
        
           |  |  | 237 |  130:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 238 |  131:UIMgr.c       **** 	initializing the UIMgr module.  It sets up the fifo
 | 
        
           |  |  | 239 |  132:UIMgr.c       **** 	used to hold incoming data, etc.
 | 
        
           |  |  | 240 |  133:UIMgr.c       **** 	Inputs:  none 
 | 
        
           | 174 | kaklik | 241 | GAS LISTING /tmp/cct6zTlg.s 			page 5
 | 
        
           | 151 | kaklik | 242 |   | 
        
           |  |  | 243 |   | 
        
           |  |  | 244 |  134:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 245 |  135:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 246 |  136:UIMgr.c       **** void UIMgr_init(void)
 | 
        
           |  |  | 247 |  137:UIMgr.c       **** {
 | 
        
           |  |  | 248 |  138:UIMgr.c       **** 	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH+1);
 | 
        
           |  |  | 249 |  139:UIMgr.c       **** 	memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
 | 
        
           |  |  | 250 |  140:UIMgr.c       **** 	memset(UIMgr_txFifo,0x00,UI_MGR_TX_FIFO_SIZE);
 | 
        
           |  |  | 251 |  141:UIMgr.c       **** 	memset(UIMgr_rxFifo,0x00,UI_MGR_RX_FIFO_SIZE);
 | 
        
           |  |  | 252 |  142:UIMgr.c       **** }
 | 
        
           |  |  | 253 |  143:UIMgr.c       **** 
 | 
        
           |  |  | 254 |  144:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 255 |  145:UIMgr.c       **** 	Function Name: UIMgr_dispatchEvent
 | 
        
           |  |  | 256 |  146:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 257 |  147:UIMgr.c       **** 	processing events that pertain to the UIMgr.
 | 
        
           |  |  | 258 |  148:UIMgr.c       **** 	Inputs:  event - the generated event
 | 
        
           |  |  | 259 |  149:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 260 |  150:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 261 |  151:UIMgr.c       **** void UIMgr_dispatchEvent(unsigned char event)
 | 
        
           |  |  | 262 |  152:UIMgr.c       **** {
 | 
        
           |  |  | 263 |  153:UIMgr.c       **** 	switch(event)
 | 
        
           |  |  | 264 |  154:UIMgr.c       **** 	{
 | 
        
           |  |  | 265 |  155:UIMgr.c       **** 		case EV_ACQUIRE_LINE_COMPLETE:
 | 
        
           |  |  | 266 |  156:UIMgr.c       **** 			UIMgr_transmitPendingData();
 | 
        
           |  |  | 267 |  157:UIMgr.c       **** 			break;
 | 
        
           |  |  | 268 |  158:UIMgr.c       **** 			
 | 
        
           |  |  | 269 |  159:UIMgr.c       **** 		case EV_SERIAL_DATA_RECEIVED:		
 | 
        
           |  |  | 270 |  160:UIMgr.c       **** 			UIMgr_processReceivedData();
 | 
        
           |  |  | 271 |  161:UIMgr.c       **** 			break;
 | 
        
           |  |  | 272 |  162:UIMgr.c       **** 			
 | 
        
           |  |  | 273 |  163:UIMgr.c       **** 		case EV_SERIAL_DATA_PENDING_TX:
 | 
        
           |  |  | 274 |  164:UIMgr.c       **** 			UIMgr_flushTxBuffer();
 | 
        
           |  |  | 275 |  165:UIMgr.c       **** 			break;
 | 
        
           |  |  | 276 |  166:UIMgr.c       **** 	}
 | 
        
           |  |  | 277 |  167:UIMgr.c       **** }
 | 
        
           |  |  | 278 |  168:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 279 |  169:UIMgr.c       **** 	Function Name: UIMgr_transmitPendingData
 | 
        
           |  |  | 280 |  170:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 281 |  171:UIMgr.c       **** 	transmitting a single byte of data if data is waiting
 | 
        
           |  |  | 282 |  172:UIMgr.c       **** 	to be sent.  Otherwise, if nothing is waiting, the
 | 
        
           |  |  | 283 |  173:UIMgr.c       **** 	function just returns.
 | 
        
           |  |  | 284 |  174:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 285 |  175:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 286 |  176:UIMgr.c       **** ***********************************************************/
 | 
        
           |  |  | 287 |  177:UIMgr.c       **** void UIMgr_transmitPendingData(void)
 | 
        
           |  |  | 288 |  178:UIMgr.c       **** {
 | 
        
           |  |  | 289 |  179:UIMgr.c       **** 	if (IS_DATA_IN_TX_FIFO() == TRUE)
 | 
        
           |  |  | 290 |  180:UIMgr.c       **** 	{
 | 
        
           |  |  | 291 |  181:UIMgr.c       **** 		/* data is waiting...send a single byte */
 | 
        
           |  |  | 292 |  182:UIMgr.c       **** 		UartInt_txByte( UIMgr_readTxFifo() );
 | 
        
           |  |  | 293 |  183:UIMgr.c       **** 	}
 | 
        
           |  |  | 294 |  184:UIMgr.c       **** }
 | 
        
           |  |  | 295 |  185:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 296 |  186:UIMgr.c       **** 	Function Name: UIMgr_processReceivedData
 | 
        
           |  |  | 297 |  187:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 298 |  188:UIMgr.c       **** 	parsing any serial data waiting in the rx fifo
 | 
        
           |  |  | 299 |  189:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 300 |  190:UIMgr.c       **** 	Outputs: none
 | 
        
           | 174 | kaklik | 301 | GAS LISTING /tmp/cct6zTlg.s 			page 6
 | 
        
           | 151 | kaklik | 302 |   | 
        
           |  |  | 303 |   | 
        
           |  |  | 304 |  191:UIMgr.c       **** ***********************************************************/
 | 
        
           |  |  | 305 |  192:UIMgr.c       **** void UIMgr_processReceivedData(void)
 | 
        
           |  |  | 306 |  193:UIMgr.c       **** {
 | 
        
           |  |  | 307 |  194:UIMgr.c       **** 	unsigned char tmpData = 0;
 | 
        
           |  |  | 308 |  195:UIMgr.c       **** 
 | 
        
           |  |  | 309 |  196:UIMgr.c       **** 	/* still need to add a mechanism to handle token counts 
 | 
        
           |  |  | 310 |  197:UIMgr.c       **** 	that are excessive!!! FIX ME!!! */
 | 
        
           |  |  | 311 |  198:UIMgr.c       ****     
 | 
        
           |  |  | 312 |  199:UIMgr.c       **** 	while(IS_DATA_IN_RX_FIFO() == TRUE)
 | 
        
           |  |  | 313 |  200:UIMgr.c       **** 	{
 | 
        
           |  |  | 314 |  201:UIMgr.c       **** 		tmpData = UIMgr_readRxFifo();
 | 
        
           |  |  | 315 |  202:UIMgr.c       **** 		if (tmpData == '\r') 
 | 
        
           |  |  | 316 |  203:UIMgr.c       **** 		{
 | 
        
           |  |  | 317 |  204:UIMgr.c       **** 			/* we have reached a token separator */
 | 
        
           |  |  | 318 |  205:UIMgr.c       **** 			if (tokenCount == 0)
 | 
        
           |  |  | 319 |  206:UIMgr.c       **** 			{
 | 
        
           |  |  | 320 |  207:UIMgr.c       **** 				/* convert the command */
 | 
        
           |  |  | 321 |  208:UIMgr.c       **** 				UIMgr_convertTokenToCmd();				
 | 
        
           |  |  | 322 |  209:UIMgr.c       **** 			}
 | 
        
           |  |  | 323 |  210:UIMgr.c       **** 			else
 | 
        
           |  |  | 324 |  211:UIMgr.c       **** 			{
 | 
        
           |  |  | 325 |  212:UIMgr.c       **** 				/* convert a value */
 | 
        
           |  |  | 326 |  213:UIMgr.c       **** 				UIMgr_convertTokenToValue();
 | 
        
           |  |  | 327 |  214:UIMgr.c       **** 				tokenCount++;
 | 
        
           |  |  | 328 |  215:UIMgr.c       **** 			}
 | 
        
           |  |  | 329 |  216:UIMgr.c       **** 			/* either way, it is time to try to process the received
 | 
        
           |  |  | 330 |  217:UIMgr.c       **** 			token list since we have reached the end of the cmd. */
 | 
        
           |  |  | 331 |  218:UIMgr.c       **** 			Utility_delay(100);
 | 
        
           |  |  | 332 |  219:UIMgr.c       **** 			if (receivedCmd == invalidCmd ||
 | 
        
           |  |  | 333 |  220:UIMgr.c       **** 			     receivedCmd == noCmd )
 | 
        
           |  |  | 334 |  221:UIMgr.c       **** 			{
 | 
        
           |  |  | 335 |  222:UIMgr.c       **** 				UIMgr_sendNck();
 | 
        
           |  |  | 336 |  223:UIMgr.c       **** 				PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
 | 
        
           |  |  | 337 |  224:UIMgr.c       **** 			}
 | 
        
           |  |  | 338 |  225:UIMgr.c       **** 			else
 | 
        
           |  |  | 339 |  226:UIMgr.c       **** 			{
 | 
        
           |  |  | 340 |  227:UIMgr.c       **** 				UIMgr_sendAck();
 | 
        
           |  |  | 341 |  228:UIMgr.c       **** 				/* publish the serial data pending event, so it
 | 
        
           |  |  | 342 |  229:UIMgr.c       **** 				will push the ACK out before we execute the cmd */
 | 
        
           |  |  | 343 |  230:UIMgr.c       **** 				PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
 | 
        
           |  |  | 344 |  231:UIMgr.c       **** 				UIMgr_executeCmd();
 | 
        
           |  |  | 345 |  232:UIMgr.c       **** 			}
 | 
        
           |  |  | 346 |  233:UIMgr.c       **** 			
 | 
        
           |  |  | 347 |  234:UIMgr.c       **** 			/* reset any necessary data */
 | 
        
           |  |  | 348 |  235:UIMgr.c       **** 			tokenCount = 0;
 | 
        
           |  |  | 349 |  236:UIMgr.c       **** 			memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
 | 
        
           |  |  | 350 |  237:UIMgr.c       **** 		}
 | 
        
           |  |  | 351 |  238:UIMgr.c       **** 		else if (tmpData == ' ')  /* space char */
 | 
        
           |  |  | 352 |  239:UIMgr.c       **** 		{
 | 
        
           |  |  | 353 |  240:UIMgr.c       **** 			/* the end of a token has been reached */
 | 
        
           |  |  | 354 |  241:UIMgr.c       **** 			if (tokenCount == 0)
 | 
        
           |  |  | 355 |  242:UIMgr.c       **** 			{
 | 
        
           |  |  | 356 |  243:UIMgr.c       **** 				UIMgr_convertTokenToCmd();
 | 
        
           |  |  | 357 |  244:UIMgr.c       **** 				tokenCount++;   /* check this...why is this being incremented here??? This
 | 
        
           |  |  | 358 |  245:UIMgr.c       ****                 means we have received a token, with tokenCount == 0, which means it is a
 | 
        
           |  |  | 359 |  246:UIMgr.c       ****                 command...why is this contributing to tokenCount?
 | 
        
           |  |  | 360 |  247:UIMgr.c       ****                 This might cause the set color map command to include too much data, since
 | 
        
           | 174 | kaklik | 361 | GAS LISTING /tmp/cct6zTlg.s 			page 7
 | 
        
           | 151 | kaklik | 362 |   | 
        
           |  |  | 363 |   | 
        
           |  |  | 364 |  248:UIMgr.c       ****                 it sets the color map based on tokenCount...CHECK*/
 | 
        
           |  |  | 365 |  249:UIMgr.c       **** 			}
 | 
        
           |  |  | 366 |  250:UIMgr.c       **** 			else
 | 
        
           |  |  | 367 |  251:UIMgr.c       **** 			{
 | 
        
           |  |  | 368 |  252:UIMgr.c       **** 				/* check to see if this token is going to push
 | 
        
           |  |  | 369 |  253:UIMgr.c       **** 				us over the limit...if so, abort the transaction */
 | 
        
           |  |  | 370 |  254:UIMgr.c       **** 				if (tokenCount+1 >= MAX_TOKEN_COUNT)
 | 
        
           |  |  | 371 |  255:UIMgr.c       **** 				{
 | 
        
           |  |  | 372 |  256:UIMgr.c       **** 					/* we received too many tokens, and 
 | 
        
           |  |  | 373 |  257:UIMgr.c       **** 					need to NCK this request, since its too
 | 
        
           |  |  | 374 |  258:UIMgr.c       **** 					large...reset everything...*/
 | 
        
           |  |  | 375 |  259:UIMgr.c       **** 					charCount=0;
 | 
        
           |  |  | 376 |  260:UIMgr.c       **** 					charIndex=0;
 | 
        
           |  |  | 377 |  261:UIMgr.c       **** 					tokenCount=0;
 | 
        
           |  |  | 378 |  262:UIMgr.c       **** 					receivedCmd = invalidCmd;
 | 
        
           |  |  | 379 |  263:UIMgr.c       **** 				}
 | 
        
           |  |  | 380 |  264:UIMgr.c       **** 				else
 | 
        
           |  |  | 381 |  265:UIMgr.c       **** 				{
 | 
        
           |  |  | 382 |  266:UIMgr.c       **** 					/* tokenCount is still in range...*/
 | 
        
           |  |  | 383 |  267:UIMgr.c       **** 					UIMgr_convertTokenToValue();
 | 
        
           |  |  | 384 |  268:UIMgr.c       **** 					tokenCount++;
 | 
        
           |  |  | 385 |  269:UIMgr.c       **** 				}
 | 
        
           |  |  | 386 |  270:UIMgr.c       **** 			}
 | 
        
           |  |  | 387 |  271:UIMgr.c       **** 		}
 | 
        
           |  |  | 388 |  272:UIMgr.c       **** 		else if ( (tmpData >= 'A' && tmpData <= 'Z') ||
 | 
        
           |  |  | 389 |  273:UIMgr.c       **** 				   (tmpData >= '0' && tmpData <= '9') )
 | 
        
           |  |  | 390 |  274:UIMgr.c       **** 		{
 | 
        
           |  |  | 391 |  275:UIMgr.c       **** 			/* a valid range of token was received */
 | 
        
           |  |  | 392 |  276:UIMgr.c       **** 			asciiTokenBuffer[charIndex] = tmpData;
 | 
        
           |  |  | 393 |  277:UIMgr.c       **** 			charCount++;
 | 
        
           |  |  | 394 |  278:UIMgr.c       **** 			charIndex++;
 | 
        
           |  |  | 395 |  279:UIMgr.c       **** 			if (charCount > MAX_TOKEN_LENGTH)
 | 
        
           |  |  | 396 |  280:UIMgr.c       **** 			{
 | 
        
           |  |  | 397 |  281:UIMgr.c       **** 				/* we have received a token that cannot be handled...
 | 
        
           |  |  | 398 |  282:UIMgr.c       **** 				set the received cmd to an invalid cmd, and wait
 | 
        
           |  |  | 399 |  283:UIMgr.c       **** 				for the \r to process it */
 | 
        
           |  |  | 400 |  284:UIMgr.c       **** 				receivedCmd = invalidCmd;
 | 
        
           |  |  | 401 |  285:UIMgr.c       **** 				charIndex = 0;  /* ...so we won't overwrite memory */
 | 
        
           |  |  | 402 |  286:UIMgr.c       **** 			}
 | 
        
           |  |  | 403 |  287:UIMgr.c       **** 		}
 | 
        
           |  |  | 404 |  288:UIMgr.c       **** 		else
 | 
        
           |  |  | 405 |  289:UIMgr.c       **** 		{
 | 
        
           |  |  | 406 |  290:UIMgr.c       **** 			/* an invalid character was received */
 | 
        
           |  |  | 407 |  291:UIMgr.c       **** 			receivedCmd = invalidCmd;
 | 
        
           |  |  | 408 |  292:UIMgr.c       **** 		}
 | 
        
           |  |  | 409 |  293:UIMgr.c       **** 	}  /* end while */
 | 
        
           |  |  | 410 |  294:UIMgr.c       **** 	
 | 
        
           |  |  | 411 |  295:UIMgr.c       **** 	asm volatile("clt"::);  /* clear out the T flag in case it wasn't
 | 
        
           |  |  | 412 |  296:UIMgr.c       **** 								 cleared already */
 | 
        
           |  |  | 413 |  297:UIMgr.c       **** }						
 | 
        
           |  |  | 414 |  298:UIMgr.c       **** 
 | 
        
           |  |  | 415 |  299:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 416 |  300:UIMgr.c       **** 	Function Name: UIMgr_executeCmd
 | 
        
           |  |  | 417 |  301:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 418 |  302:UIMgr.c       **** 	executing whatever cmd is stored in the receivedCmd
 | 
        
           |  |  | 419 |  303:UIMgr.c       **** 	object.
 | 
        
           |  |  | 420 |  304:UIMgr.c       **** 	Inputs:  none 
 | 
        
           | 174 | kaklik | 421 | GAS LISTING /tmp/cct6zTlg.s 			page 8
 | 
        
           | 151 | kaklik | 422 |   | 
        
           |  |  | 423 |   | 
        
           |  |  | 424 |  305:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 425 |  306:UIMgr.c       **** ***********************************************************/
 | 
        
           |  |  | 426 |  307:UIMgr.c       **** static void UIMgr_executeCmd(void)
 | 
        
           |  |  | 427 |  308:UIMgr.c       **** {
 | 
        
           |  |  | 428 |  309:UIMgr.c       **** 	unsigned char i,eepromData, num_writes=0;
 | 
        
           |  |  | 429 |  310:UIMgr.c       **** 	unsigned char *pData;
 | 
        
           |  |  | 430 |  311:UIMgr.c       ****     unsigned char eeprom_write_succeeded = FALSE;
 | 
        
           |  |  | 431 |  312:UIMgr.c       **** #if	DEBUG_COLOR_MAP	
 | 
        
           |  |  | 432 |  313:UIMgr.c       **** 	unsigned char asciiBuffer[5];
 | 
        
           |  |  | 433 |  314:UIMgr.c       **** #endif
 | 
        
           |  |  | 434 |  315:UIMgr.c       **** 
 | 
        
           |  |  | 435 |  316:UIMgr.c       **** 	if (receivedCmd == pingCmd) 
 | 
        
           |  |  | 436 |  317:UIMgr.c       **** 	{
 | 
        
           |  |  | 437 |  318:UIMgr.c       **** 	}
 | 
        
           |  |  | 438 |  319:UIMgr.c       **** 	else if (receivedCmd == getVersionCmd)
 | 
        
           |  |  | 439 |  320:UIMgr.c       **** 	{
 | 
        
           |  |  | 440 |  321:UIMgr.c       **** 		pData = AVRcamVersion;
 | 
        
           |  |  | 441 |  322:UIMgr.c       **** 		while(*pData != 0)
 | 
        
           |  |  | 442 |  323:UIMgr.c       **** 		{		
 | 
        
           |  |  | 443 |  324:UIMgr.c       **** 			UIMgr_writeTxFifo(*pData++);
 | 
        
           |  |  | 444 |  325:UIMgr.c       **** 		}
 | 
        
           |  |  | 445 |  326:UIMgr.c       **** 	}		
 | 
        
           |  |  | 446 |  327:UIMgr.c       **** 	else if (receivedCmd == resetCameraCmd)
 | 
        
           |  |  | 447 |  328:UIMgr.c       **** 	{
 | 
        
           |  |  | 448 |  329:UIMgr.c       **** 		CamInt_resetCam();
 | 
        
           |  |  | 449 |  330:UIMgr.c       **** 	}
 | 
        
           |  |  | 450 |  331:UIMgr.c       **** 	else if (receivedCmd == dumpFrameCmd)
 | 
        
           |  |  | 451 |  332:UIMgr.c       **** 	{
 | 
        
           |  |  | 452 |  333:UIMgr.c       **** 		/* publish the event that will indicate that
 | 
        
           |  |  | 453 |  334:UIMgr.c       **** 		a request has come to dump a frame...this will
 | 
        
           |  |  | 454 |  335:UIMgr.c       **** 		be received by the FrameMgr, which will begin
 | 
        
           |  |  | 455 |  336:UIMgr.c       **** 		dumping the frame...a short delay is needed
 | 
        
           |  |  | 456 |  337:UIMgr.c       **** 		here to keep the Java demo app happy (sometimes
 | 
        
           |  |  | 457 |  338:UIMgr.c       **** 		it wouldn't be able to receive the serial data
 | 
        
           |  |  | 458 |  339:UIMgr.c       **** 		as quickly as AVRcam can provide it). */
 | 
        
           |  |  | 459 |  340:UIMgr.c       **** 		Utility_delay(100);
 | 
        
           |  |  | 460 |  341:UIMgr.c       **** 		PUBLISH_EVENT(EV_DUMP_FRAME);
 | 
        
           |  |  | 461 |  342:UIMgr.c       **** 	}
 | 
        
           |  |  | 462 |  343:UIMgr.c       **** 	else if (receivedCmd == setCameraRegsCmd)
 | 
        
           |  |  | 463 |  344:UIMgr.c       **** 	{
 | 
        
           |  |  | 464 |  345:UIMgr.c       **** 		/* we need to gather the tokens and
 | 
        
           |  |  | 465 |  346:UIMgr.c       **** 		build config cmds to be sent to the camera */
 | 
        
           |  |  | 466 |  347:UIMgr.c       **** 		for (i=1; i<tokenCount; i+=2)  /* starts at 1 since first token
 | 
        
           |  |  | 467 |  348:UIMgr.c       **** 											is the CR cmd */
 | 
        
           |  |  | 468 |  349:UIMgr.c       **** 		{
 | 
        
           |  |  | 469 |  350:UIMgr.c       **** 			CamConfig_setCamReg(tokenBuffer[i],tokenBuffer[i+1]);
 | 
        
           |  |  | 470 |  351:UIMgr.c       **** 		}
 | 
        
           |  |  | 471 |  352:UIMgr.c       **** 		CamConfig_sendFifoCmds();
 | 
        
           |  |  | 472 |  353:UIMgr.c       **** 	}
 | 
        
           |  |  | 473 |  354:UIMgr.c       **** 	else if (receivedCmd == enableTrackingCmd)
 | 
        
           |  |  | 474 |  355:UIMgr.c       **** 	{
 | 
        
           |  |  | 475 |  356:UIMgr.c       **** 		/* publish the event...again with a short delay */
 | 
        
           |  |  | 476 |  357:UIMgr.c       **** 		Utility_delay(100);
 | 
        
           |  |  | 477 |  358:UIMgr.c       **** 		PUBLISH_EVENT(EV_ENABLE_TRACKING);
 | 
        
           |  |  | 478 |  359:UIMgr.c       **** 	}
 | 
        
           |  |  | 479 |  360:UIMgr.c       **** 	else if (receivedCmd == disableTrackingCmd)
 | 
        
           |  |  | 480 |  361:UIMgr.c       **** 	{
 | 
        
           | 174 | kaklik | 481 | GAS LISTING /tmp/cct6zTlg.s 			page 9
 | 
        
           | 151 | kaklik | 482 |   | 
        
           |  |  | 483 |   | 
        
           |  |  | 484 |  362:UIMgr.c       **** 		PUBLISH_EVENT(EV_DISABLE_TRACKING);
 | 
        
           |  |  | 485 |  363:UIMgr.c       **** 	}
 | 
        
           |  |  | 486 |  364:UIMgr.c       **** 	else if (receivedCmd == setColorMapCmd)
 | 
        
           |  |  | 487 |  365:UIMgr.c       **** 	{
 | 
        
           |  |  | 488 |  366:UIMgr.c       **** 		/* copy the received tokens into the color map */
 | 
        
           |  |  | 489 |  367:UIMgr.c       **** 		for (i=0; i<tokenCount; i++)
 | 
        
           |  |  | 490 |  368:UIMgr.c       **** 		{
 | 
        
           |  |  | 491 |  369:UIMgr.c       **** 			colorMap[i] = tokenBuffer[i+1];
 | 
        
           |  |  | 492 |  370:UIMgr.c       ****             
 | 
        
           |  |  | 493 |  371:UIMgr.c       ****             /* write each colorMap byte to EEPROM, but only those
 | 
        
           |  |  | 494 |  372:UIMgr.c       ****             that changed...this will help reduce wear on the EEPROM */
 | 
        
           |  |  | 495 |  373:UIMgr.c       ****             eepromData = eeprom_read_byte( (unsigned char*)(i+1));
 | 
        
           |  |  | 496 |  374:UIMgr.c       ****             if (eepromData != colorMap[i])
 | 
        
           |  |  | 497 |  375:UIMgr.c       ****             {
 | 
        
           |  |  | 498 |  376:UIMgr.c       ****                 /* need to actually perform the write because the
 | 
        
           |  |  | 499 |  377:UIMgr.c       ****                 data in eeprom is different than the current colorMap */
 | 
        
           |  |  | 500 |  378:UIMgr.c       ****                 eeprom_write_succeeded = FALSE;
 | 
        
           |  |  | 501 |  379:UIMgr.c       ****                 while(eeprom_write_succeeded == FALSE && num_writes < MAX_EEPROM_WRITE_ATTEMPTS)
 | 
        
           |  |  | 502 |  380:UIMgr.c       ****                 {
 | 
        
           |  |  | 503 |  381:UIMgr.c       ****                     eeprom_write_byte((unsigned char*)(i+1),colorMap[i]);
 | 
        
           |  |  | 504 |  382:UIMgr.c       ****                     num_writes++;
 | 
        
           |  |  | 505 |  383:UIMgr.c       ****                     eepromData = eeprom_read_byte( (unsigned char*)(i+1));
 | 
        
           |  |  | 506 |  384:UIMgr.c       ****                     if (eepromData == colorMap[i])
 | 
        
           |  |  | 507 |  385:UIMgr.c       ****                     {
 | 
        
           |  |  | 508 |  386:UIMgr.c       ****                         eeprom_write_succeeded = TRUE;
 | 
        
           |  |  | 509 |  387:UIMgr.c       ****                     }
 | 
        
           |  |  | 510 |  388:UIMgr.c       ****                 }
 | 
        
           |  |  | 511 |  389:UIMgr.c       ****                 num_writes = 0;
 | 
        
           |  |  | 512 |  390:UIMgr.c       ****             }
 | 
        
           |  |  | 513 |  391:UIMgr.c       **** 		}
 | 
        
           |  |  | 514 |  392:UIMgr.c       **** 
 | 
        
           |  |  | 515 |  393:UIMgr.c       **** #if	DEBUG_COLOR_MAP			
 | 
        
           |  |  | 516 |  394:UIMgr.c       ****             			/* for debugging...send out the entire color map */
 | 
        
           |  |  | 517 |  395:UIMgr.c       ****         UIMgr_txBuffer("\r\n",2);
 | 
        
           |  |  | 518 |  396:UIMgr.c       **** 		for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
 | 
        
           |  |  | 519 |  397:UIMgr.c       **** 		{
 | 
        
           |  |  | 520 |  398:UIMgr.c       **** 			memset(asciiBuffer,0x00,5);
 | 
        
           |  |  | 521 |  399:UIMgr.c       **** 			itoa(colorMap[i],asciiBuffer,10);
 | 
        
           |  |  | 522 |  400:UIMgr.c       **** 			UIMgr_txBuffer(asciiBuffer,3);
 | 
        
           |  |  | 523 |  401:UIMgr.c       **** 			UIMgr_txBuffer(" ",1);
 | 
        
           |  |  | 524 |  402:UIMgr.c       **** 			if (i==15 || i == 31)
 | 
        
           |  |  | 525 |  403:UIMgr.c       **** 			{
 | 
        
           |  |  | 526 |  404:UIMgr.c       **** 				/* break up the output */
 | 
        
           |  |  | 527 |  405:UIMgr.c       **** 				UIMgr_txBuffer("\r\n",2);
 | 
        
           |  |  | 528 |  406:UIMgr.c       **** 			}
 | 
        
           |  |  | 529 |  407:UIMgr.c       **** 		}
 | 
        
           |  |  | 530 |  408:UIMgr.c       **** #endif			
 | 
        
           |  |  | 531 |  409:UIMgr.c       **** 	}
 | 
        
           |  |  | 532 |  410:UIMgr.c       **** }
 | 
        
           |  |  | 533 |  411:UIMgr.c       **** 
 | 
        
           |  |  | 534 |  412:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 535 |  413:UIMgr.c       **** 	Function Name: UIMgr_convertTokenToValue
 | 
        
           |  |  | 536 |  414:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 537 |  415:UIMgr.c       **** 	converting a received token to a hex value It will
 | 
        
           |  |  | 538 |  416:UIMgr.c       **** 	access the asciiTokenBuffer directly, and store the
 | 
        
           |  |  | 539 |  417:UIMgr.c       **** 	result in the appropriate token buffer.
 | 
        
           |  |  | 540 |  418:UIMgr.c       **** 	Inputs:  none 
 | 
        
           | 174 | kaklik | 541 | GAS LISTING /tmp/cct6zTlg.s 			page 10
 | 
        
           | 151 | kaklik | 542 |   | 
        
           |  |  | 543 |   | 
        
           |  |  | 544 |  419:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 545 |  420:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 546 |  421:UIMgr.c       **** static void UIMgr_convertTokenToValue(void)
 | 
        
           |  |  | 547 |  422:UIMgr.c       **** {
 | 
        
           |  |  | 548 |  423:UIMgr.c       **** 	unsigned int newValue;
 | 
        
           |  |  | 549 |  424:UIMgr.c       **** 	
 | 
        
           |  |  | 550 |  425:UIMgr.c       **** 	newValue = atoi(asciiTokenBuffer);
 | 
        
           |  |  | 551 |  426:UIMgr.c       **** 	if (newValue > 255)
 | 
        
           |  |  | 552 |  427:UIMgr.c       **** 	{
 | 
        
           |  |  | 553 |  428:UIMgr.c       **** 		/* the value is too large */
 | 
        
           |  |  | 554 |  429:UIMgr.c       **** 		receivedCmd = invalidCmd;
 | 
        
           |  |  | 555 |  430:UIMgr.c       **** 		tokenBuffer[tokenCount] = 0xFF;  /* to indicate an error */
 | 
        
           |  |  | 556 |  431:UIMgr.c       **** 	}
 | 
        
           |  |  | 557 |  432:UIMgr.c       **** 	else
 | 
        
           |  |  | 558 |  433:UIMgr.c       **** 	{
 | 
        
           |  |  | 559 |  434:UIMgr.c       **** 		/* copy the value into the tokenBuffer */
 | 
        
           |  |  | 560 |  435:UIMgr.c       **** 		tokenBuffer[tokenCount] = newValue;
 | 
        
           |  |  | 561 |  436:UIMgr.c       **** 	}
 | 
        
           |  |  | 562 |  437:UIMgr.c       **** 	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
 | 
        
           |  |  | 563 |  438:UIMgr.c       **** 	charIndex = 0;
 | 
        
           |  |  | 564 |  439:UIMgr.c       **** 	charCount = 0;
 | 
        
           |  |  | 565 |  440:UIMgr.c       **** }
 | 
        
           |  |  | 566 |  441:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 567 |  442:UIMgr.c       **** 	Function Name: UIMgr_convertTokenToCmd
 | 
        
           |  |  | 568 |  443:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 569 |  444:UIMgr.c       **** 	parsing a received 2-character command.  It will
 | 
        
           |  |  | 570 |  445:UIMgr.c       **** 	access the asciiTokenBuffer directly.
 | 
        
           |  |  | 571 |  446:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 572 |  447:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 573 |  448:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 574 |  449:UIMgr.c       **** static void UIMgr_convertTokenToCmd(void)
 | 
        
           |  |  | 575 |  450:UIMgr.c       **** {
 | 
        
           |  |  | 576 |  451:UIMgr.c       **** 	if ( (asciiTokenBuffer[0] == 'P') &&
 | 
        
           |  |  | 577 |  452:UIMgr.c       **** 		 (asciiTokenBuffer[1] == 'G') )
 | 
        
           |  |  | 578 |  453:UIMgr.c       **** 	{
 | 
        
           |  |  | 579 |  454:UIMgr.c       **** 		/* we got a "ping" command...but we still need to see
 | 
        
           |  |  | 580 |  455:UIMgr.c       **** 		if we are going to get the \r */
 | 
        
           |  |  | 581 |  456:UIMgr.c       **** 		receivedCmd = pingCmd;
 | 
        
           |  |  | 582 |  457:UIMgr.c       **** 	}
 | 
        
           |  |  | 583 |  458:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'G') &&
 | 
        
           |  |  | 584 |  459:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'V') )
 | 
        
           |  |  | 585 |  460:UIMgr.c       **** 	{
 | 
        
           |  |  | 586 |  461:UIMgr.c       **** 		/* we got the "get version" command */
 | 
        
           |  |  | 587 |  462:UIMgr.c       **** 		receivedCmd = getVersionCmd;
 | 
        
           |  |  | 588 |  463:UIMgr.c       **** 	}
 | 
        
           |  |  | 589 |  464:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'D') &&
 | 
        
           |  |  | 590 |  465:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'F') )
 | 
        
           |  |  | 591 |  466:UIMgr.c       **** 	{
 | 
        
           |  |  | 592 |  467:UIMgr.c       **** 		/* we should go into frame dump mode */
 | 
        
           |  |  | 593 |  468:UIMgr.c       **** 		receivedCmd = dumpFrameCmd;	
 | 
        
           |  |  | 594 |  469:UIMgr.c       **** 	}
 | 
        
           |  |  | 595 |  470:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'C') &&
 | 
        
           |  |  | 596 |  471:UIMgr.c       **** 	           (asciiTokenBuffer[1] == 'R') )
 | 
        
           |  |  | 597 |  472:UIMgr.c       **** 	{
 | 
        
           |  |  | 598 |  473:UIMgr.c       **** 		/* the user wants to set registers in the OV6620 */
 | 
        
           |  |  | 599 |  474:UIMgr.c       **** 		receivedCmd = setCameraRegsCmd;
 | 
        
           |  |  | 600 |  475:UIMgr.c       **** 	}
 | 
        
           | 174 | kaklik | 601 | GAS LISTING /tmp/cct6zTlg.s 			page 11
 | 
        
           | 151 | kaklik | 602 |   | 
        
           |  |  | 603 |   | 
        
           |  |  | 604 |  476:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'E') &&
 | 
        
           |  |  | 605 |  477:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'T') )
 | 
        
           |  |  | 606 |  478:UIMgr.c       **** 	{
 | 
        
           |  |  | 607 |  479:UIMgr.c       **** 		/* the user wants to enable tracking */
 | 
        
           |  |  | 608 |  480:UIMgr.c       **** 		receivedCmd = enableTrackingCmd;
 | 
        
           |  |  | 609 |  481:UIMgr.c       **** 	}
 | 
        
           |  |  | 610 |  482:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'S') &&
 | 
        
           |  |  | 611 |  483:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'M') )
 | 
        
           |  |  | 612 |  484:UIMgr.c       **** 	{
 | 
        
           |  |  | 613 |  485:UIMgr.c       **** 		/* the user wants to set the color map */
 | 
        
           |  |  | 614 |  486:UIMgr.c       **** 		receivedCmd = setColorMapCmd;
 | 
        
           |  |  | 615 |  487:UIMgr.c       **** 	}
 | 
        
           |  |  | 616 |  488:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'D') &&
 | 
        
           |  |  | 617 |  489:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'T') )
 | 
        
           |  |  | 618 |  490:UIMgr.c       **** 	{
 | 
        
           |  |  | 619 |  491:UIMgr.c       **** 		receivedCmd = disableTrackingCmd;
 | 
        
           |  |  | 620 |  492:UIMgr.c       **** 	}
 | 
        
           |  |  | 621 |  493:UIMgr.c       **** 	else if ( (asciiTokenBuffer[0] == 'R') &&
 | 
        
           |  |  | 622 |  494:UIMgr.c       **** 			   (asciiTokenBuffer[1] == 'S') )
 | 
        
           |  |  | 623 |  495:UIMgr.c       **** 	{
 | 
        
           |  |  | 624 |  496:UIMgr.c       **** 		receivedCmd = resetCameraCmd;
 | 
        
           |  |  | 625 |  497:UIMgr.c       **** 	}
 | 
        
           |  |  | 626 |  498:UIMgr.c       **** 	else
 | 
        
           |  |  | 627 |  499:UIMgr.c       **** 	{
 | 
        
           |  |  | 628 |  500:UIMgr.c       **** 		/* don't recognize the cmd */
 | 
        
           |  |  | 629 |  501:UIMgr.c       **** 		receivedCmd = invalidCmd;
 | 
        
           |  |  | 630 |  502:UIMgr.c       **** 	}
 | 
        
           |  |  | 631 |  503:UIMgr.c       **** 	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
 | 
        
           |  |  | 632 |  504:UIMgr.c       **** 	charIndex = 0;
 | 
        
           |  |  | 633 |  505:UIMgr.c       **** 	charCount = 0;
 | 
        
           |  |  | 634 |  506:UIMgr.c       **** }
 | 
        
           |  |  | 635 |  507:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 636 |  508:UIMgr.c       **** 	Function Name: UIMgr_sendAck
 | 
        
           |  |  | 637 |  509:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 638 |  510:UIMgr.c       **** 	queuing up an ACK to be sent to the user.
 | 
        
           |  |  | 639 |  511:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 640 |  512:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 641 |  513:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 642 |  514:UIMgr.c       **** static void UIMgr_sendAck(void)
 | 
        
           |  |  | 643 |  515:UIMgr.c       **** {
 | 
        
           |  |  | 644 |  516:UIMgr.c       **** 	UIMgr_writeTxFifo('A');
 | 
        
           |  |  | 645 |  517:UIMgr.c       **** 	UIMgr_writeTxFifo('C');
 | 
        
           |  |  | 646 |  518:UIMgr.c       **** 	UIMgr_writeTxFifo('K');
 | 
        
           |  |  | 647 |  519:UIMgr.c       **** 	UIMgr_writeTxFifo('\r');
 | 
        
           |  |  | 648 |  520:UIMgr.c       **** }
 | 
        
           |  |  | 649 |  521:UIMgr.c       **** 
 | 
        
           |  |  | 650 |  522:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 651 |  523:UIMgr.c       **** 	Function Name: UIMgr_sendNck
 | 
        
           |  |  | 652 |  524:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 653 |  525:UIMgr.c       **** 	queueing up an NCK to be sent to the user.
 | 
        
           |  |  | 654 |  526:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 655 |  527:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 656 |  528:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 657 |  529:UIMgr.c       **** static void UIMgr_sendNck(void)
 | 
        
           |  |  | 658 |  530:UIMgr.c       **** {
 | 
        
           |  |  | 659 |  531:UIMgr.c       **** 		UIMgr_writeTxFifo('N');
 | 
        
           |  |  | 660 |  532:UIMgr.c       **** 		UIMgr_writeTxFifo('C');
 | 
        
           | 174 | kaklik | 661 | GAS LISTING /tmp/cct6zTlg.s 			page 12
 | 
        
           | 151 | kaklik | 662 |   | 
        
           |  |  | 663 |   | 
        
           |  |  | 664 |  533:UIMgr.c       **** 		UIMgr_writeTxFifo('K');
 | 
        
           |  |  | 665 |  534:UIMgr.c       **** 		UIMgr_writeTxFifo('\r');
 | 
        
           |  |  | 666 |  535:UIMgr.c       **** }
 | 
        
           |  |  | 667 |  536:UIMgr.c       **** 
 | 
        
           |  |  | 668 |  537:UIMgr.c       **** 
 | 
        
           |  |  | 669 |  538:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 670 |  539:UIMgr.c       **** 	Function Name: UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 671 |  540:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 672 |  541:UIMgr.c       **** 	placing "length" bytes into the tx FIFO.
 | 
        
           |  |  | 673 |  542:UIMgr.c       **** 	Inputs:  pData -  a pointer to the data to send
 | 
        
           |  |  | 674 |  543:UIMgr.c       **** 	         length - the number of bytes to send
 | 
        
           |  |  | 675 |  544:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 676 |  545:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 677 |  546:UIMgr.c       **** void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
 | 
        
           |  |  | 678 |  547:UIMgr.c       **** {
 | 
        
           |  |  | 679 |   96               		.stabn	68,0,547,.LM0-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 680 |   97               	.LM0:
 | 
        
           |  |  | 681 |   98               	/* prologue: frame size=0 */
 | 
        
           |  |  | 682 |   99               	/* prologue end (size=0) */
 | 
        
           |  |  | 683 |  100 0000 DC01      		movw r26,r24
 | 
        
           |  |  | 684 |  101 0002 862F      		mov r24,r22
 | 
        
           |  |  | 685 |  548:UIMgr.c       **** 	unsigned char tmpHead;
 | 
        
           |  |  | 686 |  549:UIMgr.c       **** 	if (length == 0)
 | 
        
           |  |  | 687 |  102               		.stabn	68,0,549,.LM1-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 688 |  103               	.LM1:
 | 
        
           |  |  | 689 |  104 0004 6623      		tst r22
 | 
        
           |  |  | 690 |  105 0006 C9F0      		breq .L7
 | 
        
           |  |  | 691 |  550:UIMgr.c       **** 	{
 | 
        
           |  |  | 692 |  551:UIMgr.c       **** 		return;
 | 
        
           |  |  | 693 |  552:UIMgr.c       **** 	}
 | 
        
           |  |  | 694 |  553:UIMgr.c       **** 	
 | 
        
           |  |  | 695 |  554:UIMgr.c       **** 	DISABLE_INTS();
 | 
        
           |  |  | 696 |  106               		.stabn	68,0,554,.LM2-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 697 |  107               	.LM2:
 | 
        
           |  |  | 698 |  108               	/* #APP */
 | 
        
           |  |  | 699 |  109 0008 F894      		cli
 | 
        
           |  |  | 700 |  555:UIMgr.c       **** 	while(length-- != 0)
 | 
        
           |  |  | 701 |  110               		.stabn	68,0,555,.LM3-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 702 |  111               	.LM3:
 | 
        
           |  |  | 703 |  112               	/* #NOAPP */
 | 
        
           |  |  | 704 |  113 000a 6150      		subi r22,lo8(-(-1))
 | 
        
           |  |  | 705 |  114 000c 6F3F      		cpi r22,lo8(-1)
 | 
        
           |  |  | 706 |  115 000e A1F0      		breq .L4
 | 
        
           |  |  | 707 |  116 0010 262F      		mov r18,r22
 | 
        
           |  |  | 708 |  117 0012 40E0      		ldi r20,lo8(UIMgr_txFifo)
 | 
        
           |  |  | 709 |  118 0014 50E0      		ldi r21,hi8(UIMgr_txFifo)
 | 
        
           |  |  | 710 |  119 0016 861B      		sub r24,r22
 | 
        
           |  |  | 711 |  120 0018 682F      		mov r22,r24
 | 
        
           |  |  | 712 |  121 001a 6250      		subi r22,lo8(-(-2))
 | 
        
           |  |  | 713 |  122               	.L6:
 | 
        
           |  |  | 714 |  556:UIMgr.c       **** 	{
 | 
        
           |  |  | 715 |  557:UIMgr.c       **** 		UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
 | 
        
           |  |  | 716 |  123               		.stabn	68,0,557,.LM4-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 717 |  124               	.LM4:
 | 
        
           |  |  | 718 |  125 001c 8091 0000 		lds r24,UIMgr_txFifoHead
 | 
        
           |  |  | 719 |  126 0020 FA01      		movw r30,r20
 | 
        
           |  |  | 720 |  127 0022 E80F      		add r30,r24
 | 
        
           | 174 | kaklik | 721 | GAS LISTING /tmp/cct6zTlg.s 			page 13
 | 
        
           | 151 | kaklik | 722 |   | 
        
           |  |  | 723 |   | 
        
           |  |  | 724 |  128 0024 F11D      		adc r31,__zero_reg__
 | 
        
           |  |  | 725 |  129 0026 9D91      		ld r25,X+
 | 
        
           |  |  | 726 |  130 0028 9083      		st Z,r25
 | 
        
           |  |  | 727 |  558:UIMgr.c       **** 	
 | 
        
           |  |  | 728 |  559:UIMgr.c       **** 		/* now move the head up */
 | 
        
           |  |  | 729 |  560:UIMgr.c       **** 		tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
 | 
        
           |  |  | 730 |  561:UIMgr.c       **** 		UIMgr_txFifoHead = tmpHead;
 | 
        
           |  |  | 731 |  131               		.stabn	68,0,561,.LM5-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 732 |  132               	.LM5:
 | 
        
           |  |  | 733 |  133 002a 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 734 |  134 002c 8F73      		andi r24,lo8(63)
 | 
        
           |  |  | 735 |  135 002e 8093 0000 		sts UIMgr_txFifoHead,r24
 | 
        
           |  |  | 736 |  136               		.stabn	68,0,555,.LM6-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 737 |  137               	.LM6:
 | 
        
           |  |  | 738 |  138 0032 2150      		subi r18,lo8(-(-1))
 | 
        
           |  |  | 739 |  139 0034 6217      		cp r22,r18
 | 
        
           |  |  | 740 |  140 0036 91F7      		brne .L6
 | 
        
           |  |  | 741 |  141               	.L4:
 | 
        
           |  |  | 742 |  562:UIMgr.c       **** 	}
 | 
        
           |  |  | 743 |  563:UIMgr.c       **** 	ENABLE_INTS();
 | 
        
           |  |  | 744 |  142               		.stabn	68,0,563,.LM7-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 745 |  143               	.LM7:
 | 
        
           |  |  | 746 |  144               	/* #APP */
 | 
        
           |  |  | 747 |  145 0038 7894      		sei
 | 
        
           |  |  | 748 |  146               	/* #NOAPP */
 | 
        
           |  |  | 749 |  147               	.L7:
 | 
        
           |  |  | 750 |  148 003a 0895      		ret
 | 
        
           |  |  | 751 |  149               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 752 |  150               	/* epilogue: noreturn */
 | 
        
           |  |  | 753 |  151               	/* epilogue end (size=0) */
 | 
        
           |  |  | 754 |  152               	/* function UIMgr_writeBufferToTxFifo size 32 (32) */
 | 
        
           |  |  | 755 |  153               		.size	UIMgr_writeBufferToTxFifo, .-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 756 |  154               	.Lscope0:
 | 
        
           |  |  | 757 |  155               		.stabs	"",36,0,0,.Lscope0-UIMgr_writeBufferToTxFifo
 | 
        
           |  |  | 758 |  156               		.stabd	78,0,0
 | 
        
           |  |  | 759 |  157               		.stabs	"UIMgr_readTxFifo:f(0,11)",36,0,630,UIMgr_readTxFifo
 | 
        
           |  |  | 760 |  158               		.type	UIMgr_readTxFifo, @function
 | 
        
           |  |  | 761 |  159               	UIMgr_readTxFifo:
 | 
        
           |  |  | 762 |  160               		.stabd	46,0,0
 | 
        
           |  |  | 763 |  564:UIMgr.c       **** }
 | 
        
           |  |  | 764 |  565:UIMgr.c       **** 
 | 
        
           |  |  | 765 |  566:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 766 |  567:UIMgr.c       **** 	Function Name: UIMgr_txBuffer
 | 
        
           |  |  | 767 |  568:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 768 |  569:UIMgr.c       **** 	sending 'length' bytes out using the UartInterface 
 | 
        
           |  |  | 769 |  570:UIMgr.c       **** 	module.
 | 
        
           |  |  | 770 |  571:UIMgr.c       **** 	Inputs:  pData -  a pointer to the data to send
 | 
        
           |  |  | 771 |  572:UIMgr.c       **** 	         length - the number of bytes to send
 | 
        
           |  |  | 772 |  573:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 773 |  574:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 774 |  575:UIMgr.c       **** void UIMgr_txBuffer(unsigned char *pData, unsigned char length)
 | 
        
           |  |  | 775 |  576:UIMgr.c       **** {
 | 
        
           |  |  | 776 |  577:UIMgr.c       **** 	while(length-- != 0)
 | 
        
           |  |  | 777 |  578:UIMgr.c       **** 	{
 | 
        
           |  |  | 778 |  579:UIMgr.c       **** 		UartInt_txByte(*pData++); 
 | 
        
           |  |  | 779 |  580:UIMgr.c       **** 	}
 | 
        
           |  |  | 780 |  581:UIMgr.c       **** }
 | 
        
           | 174 | kaklik | 781 | GAS LISTING /tmp/cct6zTlg.s 			page 14
 | 
        
           | 151 | kaklik | 782 |   | 
        
           |  |  | 783 |   | 
        
           |  |  | 784 |  582:UIMgr.c       **** 
 | 
        
           |  |  | 785 |  583:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 786 |  584:UIMgr.c       **** 	Function Name: UIMgr_flushTxBuffer
 | 
        
           |  |  | 787 |  585:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 788 |  586:UIMgr.c       **** 	sending all data currently in the serial tx buffer
 | 
        
           |  |  | 789 |  587:UIMgr.c       **** 	to the user.
 | 
        
           |  |  | 790 |  588:UIMgr.c       **** 	Inputs:  none
 | 
        
           |  |  | 791 |  589:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 792 |  590:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 793 |  591:UIMgr.c       **** void UIMgr_flushTxBuffer(void)
 | 
        
           |  |  | 794 |  592:UIMgr.c       **** {
 | 
        
           |  |  | 795 |  593:UIMgr.c       **** 	while(IS_DATA_IN_TX_FIFO() == TRUE)
 | 
        
           |  |  | 796 |  594:UIMgr.c       **** 	{
 | 
        
           |  |  | 797 |  595:UIMgr.c       **** 		UartInt_txByte(UIMgr_readTxFifo() );
 | 
        
           |  |  | 798 |  596:UIMgr.c       **** 	}
 | 
        
           |  |  | 799 |  597:UIMgr.c       **** }
 | 
        
           |  |  | 800 |  598:UIMgr.c       **** 
 | 
        
           |  |  | 801 |  599:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 802 |  600:UIMgr.c       **** 	Function Name: UIMgr_readRxFifo
 | 
        
           |  |  | 803 |  601:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 804 |  602:UIMgr.c       **** 	reading a single byte of data from the rx fifo, and
 | 
        
           |  |  | 805 |  603:UIMgr.c       **** 	updating the appropriate pointers.
 | 
        
           |  |  | 806 |  604:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 807 |  605:UIMgr.c       **** 	Outputs: unsigned char-the data read
 | 
        
           |  |  | 808 |  606:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 809 |  607:UIMgr.c       **** static unsigned char UIMgr_readRxFifo(void)
 | 
        
           |  |  | 810 |  608:UIMgr.c       **** {
 | 
        
           |  |  | 811 |  609:UIMgr.c       **** 	unsigned char dataByte, tmpTail;
 | 
        
           |  |  | 812 |  610:UIMgr.c       **** 	
 | 
        
           |  |  | 813 |  611:UIMgr.c       **** 	/* just return the current tail from the rx fifo */
 | 
        
           |  |  | 814 |  612:UIMgr.c       **** 	DISABLE_INTS();
 | 
        
           |  |  | 815 |  613:UIMgr.c       **** 	dataByte = UIMgr_rxFifo[UIMgr_rxFifoTail];	
 | 
        
           |  |  | 816 |  614:UIMgr.c       **** 	tmpTail = (UIMgr_rxFifoTail+1) & (UI_MGR_RX_FIFO_MASK);
 | 
        
           |  |  | 817 |  615:UIMgr.c       **** 	UIMgr_rxFifoTail = tmpTail;
 | 
        
           |  |  | 818 |  616:UIMgr.c       **** 	ENABLE_INTS();
 | 
        
           |  |  | 819 |  617:UIMgr.c       **** 	
 | 
        
           |  |  | 820 |  618:UIMgr.c       **** 	return(dataByte);
 | 
        
           |  |  | 821 |  619:UIMgr.c       **** }
 | 
        
           |  |  | 822 |  620:UIMgr.c       **** 
 | 
        
           |  |  | 823 |  621:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 824 |  622:UIMgr.c       **** 	Function Name: UIMgr_readTxFifo
 | 
        
           |  |  | 825 |  623:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 826 |  624:UIMgr.c       **** 	reading a single byte of data from the tx fifo, and
 | 
        
           |  |  | 827 |  625:UIMgr.c       **** 	updating the appropriate pointers.
 | 
        
           |  |  | 828 |  626:UIMgr.c       **** 	Inputs:  none 
 | 
        
           |  |  | 829 |  627:UIMgr.c       **** 	Outputs: unsigned char-the data read
 | 
        
           |  |  | 830 |  628:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 831 |  629:UIMgr.c       **** static unsigned char UIMgr_readTxFifo(void)
 | 
        
           |  |  | 832 |  630:UIMgr.c       **** {
 | 
        
           |  |  | 833 |  161               		.stabn	68,0,630,.LM8-UIMgr_readTxFifo
 | 
        
           |  |  | 834 |  162               	.LM8:
 | 
        
           |  |  | 835 |  163               	/* prologue: frame size=0 */
 | 
        
           |  |  | 836 |  164               	/* prologue end (size=0) */
 | 
        
           |  |  | 837 |  631:UIMgr.c       **** 	unsigned char dataByte, tmpTail;
 | 
        
           |  |  | 838 |  632:UIMgr.c       **** 	
 | 
        
           |  |  | 839 |  633:UIMgr.c       **** 	/* just return the current tail from the tx fifo */
 | 
        
           |  |  | 840 |  634:UIMgr.c       **** 	DISABLE_INTS();
 | 
        
           | 174 | kaklik | 841 | GAS LISTING /tmp/cct6zTlg.s 			page 15
 | 
        
           | 151 | kaklik | 842 |   | 
        
           |  |  | 843 |   | 
        
           |  |  | 844 |  165               		.stabn	68,0,634,.LM9-UIMgr_readTxFifo
 | 
        
           |  |  | 845 |  166               	.LM9:
 | 
        
           |  |  | 846 |  167               	/* #APP */
 | 
        
           |  |  | 847 |  168 003c F894      		cli
 | 
        
           |  |  | 848 |  635:UIMgr.c       **** 	dataByte = UIMgr_txFifo[UIMgr_txFifoTail];	
 | 
        
           |  |  | 849 |  169               		.stabn	68,0,635,.LM10-UIMgr_readTxFifo
 | 
        
           |  |  | 850 |  170               	.LM10:
 | 
        
           |  |  | 851 |  171               	/* #NOAPP */
 | 
        
           |  |  | 852 |  172 003e 9091 0000 		lds r25,UIMgr_txFifoTail
 | 
        
           |  |  | 853 |  173 0042 E0E0      		ldi r30,lo8(UIMgr_txFifo)
 | 
        
           |  |  | 854 |  174 0044 F0E0      		ldi r31,hi8(UIMgr_txFifo)
 | 
        
           |  |  | 855 |  175 0046 E90F      		add r30,r25
 | 
        
           |  |  | 856 |  176 0048 F11D      		adc r31,__zero_reg__
 | 
        
           |  |  | 857 |  177 004a 8081      		ld r24,Z
 | 
        
           |  |  | 858 |  636:UIMgr.c       **** 	tmpTail = (UIMgr_txFifoTail+1) & (UI_MGR_TX_FIFO_MASK);
 | 
        
           |  |  | 859 |  637:UIMgr.c       **** 	UIMgr_txFifoTail = tmpTail;
 | 
        
           |  |  | 860 |  178               		.stabn	68,0,637,.LM11-UIMgr_readTxFifo
 | 
        
           |  |  | 861 |  179               	.LM11:
 | 
        
           |  |  | 862 |  180 004c 9F5F      		subi r25,lo8(-(1))
 | 
        
           |  |  | 863 |  181 004e 9F73      		andi r25,lo8(63)
 | 
        
           |  |  | 864 |  182 0050 9093 0000 		sts UIMgr_txFifoTail,r25
 | 
        
           |  |  | 865 |  638:UIMgr.c       **** 	ENABLE_INTS();
 | 
        
           |  |  | 866 |  183               		.stabn	68,0,638,.LM12-UIMgr_readTxFifo
 | 
        
           |  |  | 867 |  184               	.LM12:
 | 
        
           |  |  | 868 |  185               	/* #APP */
 | 
        
           |  |  | 869 |  186 0054 7894      		sei
 | 
        
           |  |  | 870 |  639:UIMgr.c       **** 	
 | 
        
           |  |  | 871 |  640:UIMgr.c       **** 	return(dataByte);
 | 
        
           |  |  | 872 |  641:UIMgr.c       **** }
 | 
        
           |  |  | 873 |  187               		.stabn	68,0,641,.LM13-UIMgr_readTxFifo
 | 
        
           |  |  | 874 |  188               	.LM13:
 | 
        
           |  |  | 875 |  189               	/* #NOAPP */
 | 
        
           |  |  | 876 |  190 0056 9927      		clr r25
 | 
        
           |  |  | 877 |  191               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 878 |  192 0058 0895      		ret
 | 
        
           |  |  | 879 |  193               	/* epilogue end (size=1) */
 | 
        
           |  |  | 880 |  194               	/* function UIMgr_readTxFifo size 17 (16) */
 | 
        
           |  |  | 881 |  195               		.size	UIMgr_readTxFifo, .-UIMgr_readTxFifo
 | 
        
           |  |  | 882 |  196               		.stabs	"dataByte:r(0,11)",64,0,631,24
 | 
        
           |  |  | 883 |  197               		.stabn	192,0,0,UIMgr_readTxFifo-UIMgr_readTxFifo
 | 
        
           |  |  | 884 |  198               		.stabn	224,0,0,.Lscope1-UIMgr_readTxFifo
 | 
        
           |  |  | 885 |  199               	.Lscope1:
 | 
        
           |  |  | 886 |  200               		.stabs	"",36,0,0,.Lscope1-UIMgr_readTxFifo
 | 
        
           |  |  | 887 |  201               		.stabd	78,0,0
 | 
        
           |  |  | 888 |  202               		.stabs	"UIMgr_writeTxFifo:F(0,15)",36,0,652,UIMgr_writeTxFifo
 | 
        
           |  |  | 889 |  203               		.stabs	"data:P(0,11)",64,0,651,24
 | 
        
           |  |  | 890 |  204               	.global	UIMgr_writeTxFifo
 | 
        
           |  |  | 891 |  205               		.type	UIMgr_writeTxFifo, @function
 | 
        
           |  |  | 892 |  206               	UIMgr_writeTxFifo:
 | 
        
           |  |  | 893 |  207               		.stabd	46,0,0
 | 
        
           |  |  | 894 |  642:UIMgr.c       **** 
 | 
        
           |  |  | 895 |  643:UIMgr.c       **** /***********************************************************
 | 
        
           |  |  | 896 |  644:UIMgr.c       **** 	Function Name: UIMgr_writeTxFifo
 | 
        
           |  |  | 897 |  645:UIMgr.c       **** 	Function Description: This function is responsible for
 | 
        
           |  |  | 898 |  646:UIMgr.c       **** 	writing a single byte to the TxFifo and
 | 
        
           |  |  | 899 |  647:UIMgr.c       **** 	updating the appropriate pointers.
 | 
        
           |  |  | 900 |  648:UIMgr.c       **** 	Inputs:  data - the byte to write to the Fifo 
 | 
        
           | 174 | kaklik | 901 | GAS LISTING /tmp/cct6zTlg.s 			page 16
 | 
        
           | 151 | kaklik | 902 |   | 
        
           |  |  | 903 |   | 
        
           |  |  | 904 |  649:UIMgr.c       **** 	Outputs: none
 | 
        
           |  |  | 905 |  650:UIMgr.c       **** ***********************************************************/	
 | 
        
           |  |  | 906 |  651:UIMgr.c       **** void UIMgr_writeTxFifo(unsigned char data)
 | 
        
           |  |  | 907 |  652:UIMgr.c       **** {
 | 
        
           |  |  | 908 |  208               		.stabn	68,0,652,.LM14-UIMgr_writeTxFifo
 | 
        
           |  |  | 909 |  209               	.LM14:
 | 
        
           |  |  | 910 |  210               	/* prologue: frame size=0 */
 | 
        
           |  |  | 911 |  211               	/* prologue end (size=0) */
 | 
        
           |  |  | 912 |  653:UIMgr.c       **** 	unsigned char tmpHead;
 | 
        
           |  |  | 913 |  654:UIMgr.c       **** 
 | 
        
           |  |  | 914 |  655:UIMgr.c       **** 	DISABLE_INTS();
 | 
        
           |  |  | 915 |  212               		.stabn	68,0,655,.LM15-UIMgr_writeTxFifo
 | 
        
           |  |  | 916 |  213               	.LM15:
 | 
        
           |  |  | 917 |  214               	/* #APP */
 | 
        
           |  |  | 918 |  215 005a F894      		cli
 | 
        
           |  |  | 919 |  656:UIMgr.c       **** 	UIMgr_txFifo[UIMgr_txFifoHead] = data;
 | 
        
           |  |  | 920 |  216               		.stabn	68,0,656,.LM16-UIMgr_writeTxFifo
 | 
        
           |  |  | 921 |  217               	.LM16:
 | 
        
           |  |  | 922 |  218               	/* #NOAPP */
 | 
        
           |  |  | 923 |  219 005c 9091 0000 		lds r25,UIMgr_txFifoHead
 | 
        
           |  |  | 924 |  220 0060 E0E0      		ldi r30,lo8(UIMgr_txFifo)
 | 
        
           |  |  | 925 |  221 0062 F0E0      		ldi r31,hi8(UIMgr_txFifo)
 | 
        
           |  |  | 926 |  222 0064 E90F      		add r30,r25
 | 
        
           |  |  | 927 |  223 0066 F11D      		adc r31,__zero_reg__
 | 
        
           |  |  | 928 |  224 0068 8083      		st Z,r24
 | 
        
           |  |  | 929 |  657:UIMgr.c       **** 
 | 
        
           |  |  | 930 |  658:UIMgr.c       ****     /* now move the head up */
 | 
        
           |  |  | 931 |  659:UIMgr.c       ****     tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
 | 
        
           |  |  | 932 |  660:UIMgr.c       ****     UIMgr_txFifoHead = tmpHead;
 | 
        
           |  |  | 933 |  225               		.stabn	68,0,660,.LM17-UIMgr_writeTxFifo
 | 
        
           |  |  | 934 |  226               	.LM17:
 | 
        
           |  |  | 935 |  227 006a 9F5F      		subi r25,lo8(-(1))
 | 
        
           |  |  | 936 |  228 006c 9F73      		andi r25,lo8(63)
 | 
        
           |  |  | 937 |  229 006e 9093 0000 		sts UIMgr_txFifoHead,r25
 | 
        
           |  |  | 938 |  661:UIMgr.c       **** 	ENABLE_INTS();
 | 
        
           |  |  | 939 |  230               		.stabn	68,0,661,.LM18-UIMgr_writeTxFifo
 | 
        
           |  |  | 940 |  231               	.LM18:
 | 
        
           |  |  | 941 |  232               	/* #APP */
 | 
        
           |  |  | 942 |  233 0072 7894      		sei
 | 
        
           |  |  | 943 |  234               	/* #NOAPP */
 | 
        
           |  |  | 944 |  235               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 945 |  236 0074 0895      		ret
 | 
        
           |  |  | 946 |  237               	/* epilogue end (size=1) */
 | 
        
           |  |  | 947 |  238               	/* function UIMgr_writeTxFifo size 16 (15) */
 | 
        
           |  |  | 948 |  239               		.size	UIMgr_writeTxFifo, .-UIMgr_writeTxFifo
 | 
        
           |  |  | 949 |  240               	.Lscope2:
 | 
        
           |  |  | 950 |  241               		.stabs	"",36,0,0,.Lscope2-UIMgr_writeTxFifo
 | 
        
           |  |  | 951 |  242               		.stabd	78,0,0
 | 
        
           |  |  | 952 |  243               		.stabs	"UIMgr_flushTxBuffer:F(0,15)",36,0,592,UIMgr_flushTxBuffer
 | 
        
           |  |  | 953 |  244               	.global	UIMgr_flushTxBuffer
 | 
        
           |  |  | 954 |  245               		.type	UIMgr_flushTxBuffer, @function
 | 
        
           |  |  | 955 |  246               	UIMgr_flushTxBuffer:
 | 
        
           |  |  | 956 |  247               		.stabd	46,0,0
 | 
        
           |  |  | 957 |  248               		.stabn	68,0,592,.LM19-UIMgr_flushTxBuffer
 | 
        
           |  |  | 958 |  249               	.LM19:
 | 
        
           |  |  | 959 |  250               	/* prologue: frame size=0 */
 | 
        
           |  |  | 960 |  251               	/* prologue end (size=0) */
 | 
        
           | 174 | kaklik | 961 | GAS LISTING /tmp/cct6zTlg.s 			page 17
 | 
        
           | 151 | kaklik | 962 |   | 
        
           |  |  | 963 |   | 
        
           |  |  | 964 |  252               		.stabn	68,0,593,.LM20-UIMgr_flushTxBuffer
 | 
        
           |  |  | 965 |  253               	.LM20:
 | 
        
           |  |  | 966 |  254 0076 9091 0000 		lds r25,UIMgr_txFifoHead
 | 
        
           |  |  | 967 |  255 007a 8091 0000 		lds r24,UIMgr_txFifoTail
 | 
        
           |  |  | 968 |  256 007e 9817      		cp r25,r24
 | 
        
           |  |  | 969 |  257 0080 41F0      		breq .L16
 | 
        
           |  |  | 970 |  258               	.L17:
 | 
        
           |  |  | 971 |  259               		.stabn	68,0,595,.LM21-UIMgr_flushTxBuffer
 | 
        
           |  |  | 972 |  260               	.LM21:
 | 
        
           |  |  | 973 |  261 0082 DCDF      		rcall UIMgr_readTxFifo
 | 
        
           |  |  | 974 |  262 0084 00D0      		rcall UartInt_txByte
 | 
        
           |  |  | 975 |  263               		.stabn	68,0,593,.LM22-UIMgr_flushTxBuffer
 | 
        
           |  |  | 976 |  264               	.LM22:
 | 
        
           |  |  | 977 |  265 0086 9091 0000 		lds r25,UIMgr_txFifoHead
 | 
        
           |  |  | 978 |  266 008a 8091 0000 		lds r24,UIMgr_txFifoTail
 | 
        
           |  |  | 979 |  267 008e 9817      		cp r25,r24
 | 
        
           |  |  | 980 |  268 0090 C1F7      		brne .L17
 | 
        
           |  |  | 981 |  269               	.L16:
 | 
        
           |  |  | 982 |  270 0092 0895      		ret
 | 
        
           |  |  | 983 |  271               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 984 |  272               	/* epilogue: noreturn */
 | 
        
           |  |  | 985 |  273               	/* epilogue end (size=0) */
 | 
        
           |  |  | 986 |  274               	/* function UIMgr_flushTxBuffer size 15 (15) */
 | 
        
           |  |  | 987 |  275               		.size	UIMgr_flushTxBuffer, .-UIMgr_flushTxBuffer
 | 
        
           |  |  | 988 |  276               	.Lscope3:
 | 
        
           |  |  | 989 |  277               		.stabs	"",36,0,0,.Lscope3-UIMgr_flushTxBuffer
 | 
        
           |  |  | 990 |  278               		.stabd	78,0,0
 | 
        
           |  |  | 991 |  279               		.stabs	"UIMgr_txBuffer:F(0,15)",36,0,576,UIMgr_txBuffer
 | 
        
           |  |  | 992 |  280               		.stabs	"pData:P(0,20)",64,0,575,28
 | 
        
           |  |  | 993 |  281               		.stabs	"length:P(0,11)",64,0,575,24
 | 
        
           |  |  | 994 |  282               	.global	UIMgr_txBuffer
 | 
        
           |  |  | 995 |  283               		.type	UIMgr_txBuffer, @function
 | 
        
           |  |  | 996 |  284               	UIMgr_txBuffer:
 | 
        
           |  |  | 997 |  285               		.stabd	46,0,0
 | 
        
           |  |  | 998 |  286               		.stabn	68,0,576,.LM23-UIMgr_txBuffer
 | 
        
           |  |  | 999 |  287               	.LM23:
 | 
        
           |  |  | 1000 |  288               	/* prologue: frame size=0 */
 | 
        
           |  |  | 1001 |  289 0094 0F93      		push r16
 | 
        
           |  |  | 1002 |  290 0096 1F93      		push r17
 | 
        
           |  |  | 1003 |  291 0098 CF93      		push r28
 | 
        
           |  |  | 1004 |  292 009a DF93      		push r29
 | 
        
           |  |  | 1005 |  293               	/* prologue end (size=4) */
 | 
        
           |  |  | 1006 |  294 009c EC01      		movw r28,r24
 | 
        
           |  |  | 1007 |  295 009e 862F      		mov r24,r22
 | 
        
           |  |  | 1008 |  296               		.stabn	68,0,577,.LM24-UIMgr_txBuffer
 | 
        
           |  |  | 1009 |  297               	.LM24:
 | 
        
           |  |  | 1010 |  298 00a0 6150      		subi r22,lo8(-(-1))
 | 
        
           |  |  | 1011 |  299 00a2 6F3F      		cpi r22,lo8(-1)
 | 
        
           |  |  | 1012 |  300 00a4 49F0      		breq .L23
 | 
        
           |  |  | 1013 |  301               		.stabn	68,0,577,.LM25-UIMgr_txBuffer
 | 
        
           |  |  | 1014 |  302               	.LM25:
 | 
        
           |  |  | 1015 |  303 00a6 162F      		mov r17,r22
 | 
        
           |  |  | 1016 |  304 00a8 861B      		sub r24,r22
 | 
        
           |  |  | 1017 |  305 00aa 082F      		mov r16,r24
 | 
        
           |  |  | 1018 |  306 00ac 0250      		subi r16,lo8(-(-2))
 | 
        
           |  |  | 1019 |  307               	.L22:
 | 
        
           |  |  | 1020 |  308               		.stabn	68,0,579,.LM26-UIMgr_txBuffer
 | 
        
           | 174 | kaklik | 1021 | GAS LISTING /tmp/cct6zTlg.s 			page 18
 | 
        
           | 151 | kaklik | 1022 |   | 
        
           |  |  | 1023 |   | 
        
           |  |  | 1024 |  309               	.LM26:
 | 
        
           |  |  | 1025 |  310 00ae 8991      		ld r24,Y+
 | 
        
           |  |  | 1026 |  311 00b0 00D0      		rcall UartInt_txByte
 | 
        
           |  |  | 1027 |  312               		.stabn	68,0,577,.LM27-UIMgr_txBuffer
 | 
        
           |  |  | 1028 |  313               	.LM27:
 | 
        
           |  |  | 1029 |  314 00b2 1150      		subi r17,lo8(-(-1))
 | 
        
           |  |  | 1030 |  315 00b4 0117      		cp r16,r17
 | 
        
           |  |  | 1031 |  316 00b6 D9F7      		brne .L22
 | 
        
           |  |  | 1032 |  317               	.L23:
 | 
        
           |  |  | 1033 |  318               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 1034 |  319 00b8 DF91      		pop r29
 | 
        
           |  |  | 1035 |  320 00ba CF91      		pop r28
 | 
        
           |  |  | 1036 |  321 00bc 1F91      		pop r17
 | 
        
           |  |  | 1037 |  322 00be 0F91      		pop r16
 | 
        
           |  |  | 1038 |  323 00c0 0895      		ret
 | 
        
           |  |  | 1039 |  324               	/* epilogue end (size=5) */
 | 
        
           |  |  | 1040 |  325               	/* function UIMgr_txBuffer size 23 (14) */
 | 
        
           |  |  | 1041 |  326               		.size	UIMgr_txBuffer, .-UIMgr_txBuffer
 | 
        
           |  |  | 1042 |  327               	.Lscope4:
 | 
        
           |  |  | 1043 |  328               		.stabs	"",36,0,0,.Lscope4-UIMgr_txBuffer
 | 
        
           |  |  | 1044 |  329               		.stabd	78,0,0
 | 
        
           |  |  | 1045 |  330               		.stabs	"UIMgr_transmitPendingData:F(0,15)",36,0,178,UIMgr_transmitPendingData
 | 
        
           |  |  | 1046 |  331               	.global	UIMgr_transmitPendingData
 | 
        
           |  |  | 1047 |  332               		.type	UIMgr_transmitPendingData, @function
 | 
        
           |  |  | 1048 |  333               	UIMgr_transmitPendingData:
 | 
        
           |  |  | 1049 |  334               		.stabd	46,0,0
 | 
        
           |  |  | 1050 |  335               		.stabn	68,0,178,.LM28-UIMgr_transmitPendingData
 | 
        
           |  |  | 1051 |  336               	.LM28:
 | 
        
           |  |  | 1052 |  337               	/* prologue: frame size=0 */
 | 
        
           |  |  | 1053 |  338               	/* prologue end (size=0) */
 | 
        
           |  |  | 1054 |  339               		.stabn	68,0,179,.LM29-UIMgr_transmitPendingData
 | 
        
           |  |  | 1055 |  340               	.LM29:
 | 
        
           |  |  | 1056 |  341 00c2 9091 0000 		lds r25,UIMgr_txFifoHead
 | 
        
           |  |  | 1057 |  342 00c6 8091 0000 		lds r24,UIMgr_txFifoTail
 | 
        
           |  |  | 1058 |  343 00ca 9817      		cp r25,r24
 | 
        
           |  |  | 1059 |  344 00cc 11F0      		breq .L28
 | 
        
           |  |  | 1060 |  345               		.stabn	68,0,182,.LM30-UIMgr_transmitPendingData
 | 
        
           |  |  | 1061 |  346               	.LM30:
 | 
        
           |  |  | 1062 |  347 00ce B6DF      		rcall UIMgr_readTxFifo
 | 
        
           |  |  | 1063 |  348 00d0 00D0      		rcall UartInt_txByte
 | 
        
           |  |  | 1064 |  349               	.L28:
 | 
        
           |  |  | 1065 |  350 00d2 0895      		ret
 | 
        
           |  |  | 1066 |  351               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 1067 |  352               	/* epilogue: noreturn */
 | 
        
           |  |  | 1068 |  353               	/* epilogue end (size=0) */
 | 
        
           |  |  | 1069 |  354               	/* function UIMgr_transmitPendingData size 9 (9) */
 | 
        
           |  |  | 1070 |  355               		.size	UIMgr_transmitPendingData, .-UIMgr_transmitPendingData
 | 
        
           |  |  | 1071 |  356               	.Lscope5:
 | 
        
           |  |  | 1072 |  357               		.stabs	"",36,0,0,.Lscope5-UIMgr_transmitPendingData
 | 
        
           |  |  | 1073 |  358               		.stabd	78,0,0
 | 
        
           |  |  | 1074 |  359               		.stabs	"UIMgr_convertTokenToCmd:f(0,15)",36,0,450,UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1075 |  360               		.type	UIMgr_convertTokenToCmd, @function
 | 
        
           |  |  | 1076 |  361               	UIMgr_convertTokenToCmd:
 | 
        
           |  |  | 1077 |  362               		.stabd	46,0,0
 | 
        
           |  |  | 1078 |  363               		.stabn	68,0,450,.LM31-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1079 |  364               	.LM31:
 | 
        
           |  |  | 1080 |  365               	/* prologue: frame size=0 */
 | 
        
           | 174 | kaklik | 1081 | GAS LISTING /tmp/cct6zTlg.s 			page 19
 | 
        
           | 151 | kaklik | 1082 |   | 
        
           |  |  | 1083 |   | 
        
           |  |  | 1084 |  366               	/* prologue end (size=0) */
 | 
        
           |  |  | 1085 |  367               		.stabn	68,0,451,.LM32-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1086 |  368               	.LM32:
 | 
        
           |  |  | 1087 |  369 00d4 9091 0000 		lds r25,asciiTokenBuffer
 | 
        
           |  |  | 1088 |  370 00d8 9035      		cpi r25,lo8(80)
 | 
        
           |  |  | 1089 |  371 00da 41F4      		brne .L30
 | 
        
           |  |  | 1090 |  372               		.stabn	68,0,451,.LM33-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1091 |  373               	.LM33:
 | 
        
           |  |  | 1092 |  374 00dc 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1093 |  375 00e0 8734      		cpi r24,lo8(71)
 | 
        
           |  |  | 1094 |  376 00e2 09F5      		brne .L32
 | 
        
           |  |  | 1095 |  377               		.stabn	68,0,456,.LM34-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1096 |  378               	.LM34:
 | 
        
           |  |  | 1097 |  379 00e4 81E0      		ldi r24,lo8(1)
 | 
        
           |  |  | 1098 |  380 00e6 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1099 |  381 00ea 48C0      		rjmp .L34
 | 
        
           |  |  | 1100 |  382               	.L30:
 | 
        
           |  |  | 1101 |  383               		.stabn	68,0,458,.LM35-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1102 |  384               	.LM35:
 | 
        
           |  |  | 1103 |  385 00ec 9734      		cpi r25,lo8(71)
 | 
        
           |  |  | 1104 |  386 00ee 39F4      		brne .L35
 | 
        
           |  |  | 1105 |  387 00f0 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1106 |  388 00f4 8635      		cpi r24,lo8(86)
 | 
        
           |  |  | 1107 |  389 00f6 09F5      		brne .L37
 | 
        
           |  |  | 1108 |  390               		.stabn	68,0,462,.LM36-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1109 |  391               	.LM36:
 | 
        
           |  |  | 1110 |  392 00f8 1092 0000 		sts receivedCmd,__zero_reg__
 | 
        
           |  |  | 1111 |  393 00fc 3FC0      		rjmp .L34
 | 
        
           |  |  | 1112 |  394               	.L35:
 | 
        
           |  |  | 1113 |  395               		.stabn	68,0,464,.LM37-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1114 |  396               	.LM37:
 | 
        
           |  |  | 1115 |  397 00fe 9434      		cpi r25,lo8(68)
 | 
        
           |  |  | 1116 |  398 0100 41F4      		brne .L39
 | 
        
           |  |  | 1117 |  399 0102 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1118 |  400 0106 8634      		cpi r24,lo8(70)
 | 
        
           |  |  | 1119 |  401 0108 11F5      		brne .L41
 | 
        
           |  |  | 1120 |  402               		.stabn	68,0,468,.LM38-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1121 |  403               	.LM38:
 | 
        
           |  |  | 1122 |  404 010a 83E0      		ldi r24,lo8(3)
 | 
        
           |  |  | 1123 |  405 010c 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1124 |  406 0110 35C0      		rjmp .L34
 | 
        
           |  |  | 1125 |  407               	.L39:
 | 
        
           |  |  | 1126 |  408               		.stabn	68,0,470,.LM39-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1127 |  409               	.LM39:
 | 
        
           |  |  | 1128 |  410 0112 9334      		cpi r25,lo8(67)
 | 
        
           |  |  | 1129 |  411 0114 41F4      		brne .L32
 | 
        
           |  |  | 1130 |  412 0116 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1131 |  413 011a 8235      		cpi r24,lo8(82)
 | 
        
           |  |  | 1132 |  414 011c 11F5      		brne .L44
 | 
        
           |  |  | 1133 |  415               		.stabn	68,0,474,.LM40-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1134 |  416               	.LM40:
 | 
        
           |  |  | 1135 |  417 011e 82E0      		ldi r24,lo8(2)
 | 
        
           |  |  | 1136 |  418 0120 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1137 |  419 0124 2BC0      		rjmp .L34
 | 
        
           |  |  | 1138 |  420               	.L32:
 | 
        
           |  |  | 1139 |  421               		.stabn	68,0,476,.LM41-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1140 |  422               	.LM41:
 | 
        
           | 174 | kaklik | 1141 | GAS LISTING /tmp/cct6zTlg.s 			page 20
 | 
        
           | 151 | kaklik | 1142 |   | 
        
           |  |  | 1143 |   | 
        
           |  |  | 1144 |  423 0126 9534      		cpi r25,lo8(69)
 | 
        
           |  |  | 1145 |  424 0128 41F4      		brne .L37
 | 
        
           |  |  | 1146 |  425 012a 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1147 |  426 012e 8435      		cpi r24,lo8(84)
 | 
        
           |  |  | 1148 |  427 0130 11F5      		brne .L47
 | 
        
           |  |  | 1149 |  428               		.stabn	68,0,480,.LM42-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1150 |  429               	.LM42:
 | 
        
           |  |  | 1151 |  430 0132 84E0      		ldi r24,lo8(4)
 | 
        
           |  |  | 1152 |  431 0134 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1153 |  432 0138 21C0      		rjmp .L34
 | 
        
           |  |  | 1154 |  433               	.L37:
 | 
        
           |  |  | 1155 |  434               		.stabn	68,0,482,.LM43-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1156 |  435               	.LM43:
 | 
        
           |  |  | 1157 |  436 013a 9335      		cpi r25,lo8(83)
 | 
        
           |  |  | 1158 |  437 013c 41F4      		brne .L41
 | 
        
           |  |  | 1159 |  438 013e 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1160 |  439 0142 8D34      		cpi r24,lo8(77)
 | 
        
           |  |  | 1161 |  440 0144 C1F4      		brne .L47
 | 
        
           |  |  | 1162 |  441               		.stabn	68,0,486,.LM44-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1163 |  442               	.LM44:
 | 
        
           |  |  | 1164 |  443 0146 86E0      		ldi r24,lo8(6)
 | 
        
           |  |  | 1165 |  444 0148 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1166 |  445 014c 17C0      		rjmp .L34
 | 
        
           |  |  | 1167 |  446               	.L41:
 | 
        
           |  |  | 1168 |  447               		.stabn	68,0,488,.LM45-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1169 |  448               	.LM45:
 | 
        
           |  |  | 1170 |  449 014e 9434      		cpi r25,lo8(68)
 | 
        
           |  |  | 1171 |  450 0150 41F4      		brne .L44
 | 
        
           |  |  | 1172 |  451 0152 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1173 |  452 0156 8435      		cpi r24,lo8(84)
 | 
        
           |  |  | 1174 |  453 0158 71F4      		brne .L47
 | 
        
           |  |  | 1175 |  454               		.stabn	68,0,491,.LM46-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1176 |  455               	.LM46:
 | 
        
           |  |  | 1177 |  456 015a 85E0      		ldi r24,lo8(5)
 | 
        
           |  |  | 1178 |  457 015c 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1179 |  458 0160 0DC0      		rjmp .L34
 | 
        
           |  |  | 1180 |  459               	.L44:
 | 
        
           |  |  | 1181 |  460               		.stabn	68,0,493,.LM47-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1182 |  461               	.LM47:
 | 
        
           |  |  | 1183 |  462 0162 9235      		cpi r25,lo8(82)
 | 
        
           |  |  | 1184 |  463 0164 41F4      		brne .L47
 | 
        
           |  |  | 1185 |  464 0166 8091 0000 		lds r24,asciiTokenBuffer+1
 | 
        
           |  |  | 1186 |  465 016a 8335      		cpi r24,lo8(83)
 | 
        
           |  |  | 1187 |  466 016c 21F4      		brne .L47
 | 
        
           |  |  | 1188 |  467               		.stabn	68,0,496,.LM48-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1189 |  468               	.LM48:
 | 
        
           |  |  | 1190 |  469 016e 87E0      		ldi r24,lo8(7)
 | 
        
           |  |  | 1191 |  470 0170 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1192 |  471 0174 03C0      		rjmp .L34
 | 
        
           |  |  | 1193 |  472               	.L47:
 | 
        
           |  |  | 1194 |  473               		.stabn	68,0,501,.LM49-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1195 |  474               	.LM49:
 | 
        
           |  |  | 1196 |  475 0176 89E0      		ldi r24,lo8(9)
 | 
        
           |  |  | 1197 |  476 0178 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1198 |  477               	.L34:
 | 
        
           |  |  | 1199 |  478               		.stabn	68,0,503,.LM50-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1200 |  479               	.LM50:
 | 
        
           | 174 | kaklik | 1201 | GAS LISTING /tmp/cct6zTlg.s 			page 21
 | 
        
           | 151 | kaklik | 1202 |   | 
        
           |  |  | 1203 |   | 
        
           |  |  | 1204 |  480 017c 83E0      		ldi r24,lo8(3)
 | 
        
           |  |  | 1205 |  481 017e E0E0      		ldi r30,lo8(asciiTokenBuffer)
 | 
        
           |  |  | 1206 |  482 0180 F0E0      		ldi r31,hi8(asciiTokenBuffer)
 | 
        
           |  |  | 1207 |  483 0182 1192      		st Z+,__zero_reg__
 | 
        
           |  |  | 1208 |  484 0184 8A95      	        dec r24
 | 
        
           |  |  | 1209 |  485 0186 E9F7      		brne .-6
 | 
        
           |  |  | 1210 |  486               		.stabn	68,0,504,.LM51-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1211 |  487               	.LM51:
 | 
        
           |  |  | 1212 |  488 0188 1092 0000 		sts charIndex,__zero_reg__
 | 
        
           |  |  | 1213 |  489               		.stabn	68,0,505,.LM52-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1214 |  490               	.LM52:
 | 
        
           |  |  | 1215 |  491 018c 1092 0000 		sts charCount,__zero_reg__
 | 
        
           |  |  | 1216 |  492               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 1217 |  493 0190 0895      		ret
 | 
        
           |  |  | 1218 |  494               	/* epilogue end (size=1) */
 | 
        
           |  |  | 1219 |  495               	/* function UIMgr_convertTokenToCmd size 95 (94) */
 | 
        
           |  |  | 1220 |  496               		.size	UIMgr_convertTokenToCmd, .-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1221 |  497               	.Lscope6:
 | 
        
           |  |  | 1222 |  498               		.stabs	"",36,0,0,.Lscope6-UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1223 |  499               		.stabd	78,0,0
 | 
        
           |  |  | 1224 |  500               		.stabs	"UIMgr_init:F(0,15)",36,0,137,UIMgr_init
 | 
        
           |  |  | 1225 |  501               	.global	UIMgr_init
 | 
        
           |  |  | 1226 |  502               		.type	UIMgr_init, @function
 | 
        
           |  |  | 1227 |  503               	UIMgr_init:
 | 
        
           |  |  | 1228 |  504               		.stabd	46,0,0
 | 
        
           |  |  | 1229 |  505               		.stabn	68,0,137,.LM53-UIMgr_init
 | 
        
           |  |  | 1230 |  506               	.LM53:
 | 
        
           |  |  | 1231 |  507               	/* prologue: frame size=0 */
 | 
        
           |  |  | 1232 |  508               	/* prologue end (size=0) */
 | 
        
           |  |  | 1233 |  509               		.stabn	68,0,138,.LM54-UIMgr_init
 | 
        
           |  |  | 1234 |  510               	.LM54:
 | 
        
           |  |  | 1235 |  511 0192 1092 0000 		sts asciiTokenBuffer,__zero_reg__
 | 
        
           |  |  | 1236 |  512 0196 1092 0000 		sts (asciiTokenBuffer)+1,__zero_reg__
 | 
        
           |  |  | 1237 |  513 019a 1092 0000 		sts (asciiTokenBuffer)+2,__zero_reg__
 | 
        
           |  |  | 1238 |  514 019e 1092 0000 		sts (asciiTokenBuffer)+3,__zero_reg__
 | 
        
           |  |  | 1239 |  515               		.stabn	68,0,139,.LM55-UIMgr_init
 | 
        
           |  |  | 1240 |  516               	.LM55:
 | 
        
           |  |  | 1241 |  517 01a2 80E4      		ldi r24,lo8(64)
 | 
        
           |  |  | 1242 |  518 01a4 E0E0      		ldi r30,lo8(tokenBuffer)
 | 
        
           |  |  | 1243 |  519 01a6 F0E0      		ldi r31,hi8(tokenBuffer)
 | 
        
           |  |  | 1244 |  520 01a8 982F      		mov r25,r24
 | 
        
           |  |  | 1245 |  521 01aa 1192      		st Z+,__zero_reg__
 | 
        
           |  |  | 1246 |  522 01ac 9A95      	        dec r25
 | 
        
           |  |  | 1247 |  523 01ae E9F7      		brne .-6
 | 
        
           |  |  | 1248 |  524               		.stabn	68,0,140,.LM56-UIMgr_init
 | 
        
           |  |  | 1249 |  525               	.LM56:
 | 
        
           |  |  | 1250 |  526 01b0 E0E0      		ldi r30,lo8(UIMgr_txFifo)
 | 
        
           |  |  | 1251 |  527 01b2 F0E0      		ldi r31,hi8(UIMgr_txFifo)
 | 
        
           |  |  | 1252 |  528 01b4 1192      		st Z+,__zero_reg__
 | 
        
           |  |  | 1253 |  529 01b6 8A95      	        dec r24
 | 
        
           |  |  | 1254 |  530 01b8 E9F7      		brne .-6
 | 
        
           |  |  | 1255 |  531               		.stabn	68,0,141,.LM57-UIMgr_init
 | 
        
           |  |  | 1256 |  532               	.LM57:
 | 
        
           |  |  | 1257 |  533 01ba 80E2      		ldi r24,lo8(32)
 | 
        
           |  |  | 1258 |  534 01bc E0E0      		ldi r30,lo8(UIMgr_rxFifo)
 | 
        
           |  |  | 1259 |  535 01be F0E0      		ldi r31,hi8(UIMgr_rxFifo)
 | 
        
           |  |  | 1260 |  536 01c0 1192      		st Z+,__zero_reg__
 | 
        
           | 174 | kaklik | 1261 | GAS LISTING /tmp/cct6zTlg.s 			page 22
 | 
        
           | 151 | kaklik | 1262 |   | 
        
           |  |  | 1263 |   | 
        
           |  |  | 1264 |  537 01c2 8A95      	        dec r24
 | 
        
           |  |  | 1265 |  538 01c4 E9F7      		brne .-6
 | 
        
           |  |  | 1266 |  539               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 1267 |  540 01c6 0895      		ret
 | 
        
           |  |  | 1268 |  541               	/* epilogue end (size=1) */
 | 
        
           |  |  | 1269 |  542               	/* function UIMgr_init size 27 (26) */
 | 
        
           |  |  | 1270 |  543               		.size	UIMgr_init, .-UIMgr_init
 | 
        
           |  |  | 1271 |  544               	.Lscope7:
 | 
        
           |  |  | 1272 |  545               		.stabs	"",36,0,0,.Lscope7-UIMgr_init
 | 
        
           |  |  | 1273 |  546               		.stabd	78,0,0
 | 
        
           |  |  | 1274 |  547               		.stabs	"UIMgr_convertTokenToValue:f(0,15)",36,0,422,UIMgr_convertTokenToValue
 | 
        
           |  |  | 1275 |  548               		.type	UIMgr_convertTokenToValue, @function
 | 
        
           |  |  | 1276 |  549               	UIMgr_convertTokenToValue:
 | 
        
           |  |  | 1277 |  550               		.stabd	46,0,0
 | 
        
           |  |  | 1278 |  551               		.stabn	68,0,422,.LM58-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1279 |  552               	.LM58:
 | 
        
           |  |  | 1280 |  553               	/* prologue: frame size=0 */
 | 
        
           |  |  | 1281 |  554               	/* prologue end (size=0) */
 | 
        
           |  |  | 1282 |  555               		.stabn	68,0,425,.LM59-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1283 |  556               	.LM59:
 | 
        
           |  |  | 1284 |  557 01c8 80E0      		ldi r24,lo8(asciiTokenBuffer)
 | 
        
           |  |  | 1285 |  558 01ca 90E0      		ldi r25,hi8(asciiTokenBuffer)
 | 
        
           |  |  | 1286 |  559 01cc 00D0      		rcall atoi
 | 
        
           |  |  | 1287 |  560 01ce 9C01      		movw r18,r24
 | 
        
           |  |  | 1288 |  561               		.stabn	68,0,426,.LM60-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1289 |  562               	.LM60:
 | 
        
           |  |  | 1290 |  563 01d0 8F3F      		cpi r24,255
 | 
        
           |  |  | 1291 |  564 01d2 9105      		cpc r25,__zero_reg__
 | 
        
           |  |  | 1292 |  565 01d4 69F0      		breq .L59
 | 
        
           |  |  | 1293 |  566 01d6 60F0      		brlo .L59
 | 
        
           |  |  | 1294 |  567               		.stabn	68,0,429,.LM61-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1295 |  568               	.LM61:
 | 
        
           |  |  | 1296 |  569 01d8 89E0      		ldi r24,lo8(9)
 | 
        
           |  |  | 1297 |  570 01da 8093 0000 		sts receivedCmd,r24
 | 
        
           |  |  | 1298 |  571               		.stabn	68,0,430,.LM62-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1299 |  572               	.LM62:
 | 
        
           |  |  | 1300 |  573 01de 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1301 |  574 01e2 E0E0      		ldi r30,lo8(tokenBuffer)
 | 
        
           |  |  | 1302 |  575 01e4 F0E0      		ldi r31,hi8(tokenBuffer)
 | 
        
           |  |  | 1303 |  576 01e6 E80F      		add r30,r24
 | 
        
           |  |  | 1304 |  577 01e8 F11D      		adc r31,__zero_reg__
 | 
        
           |  |  | 1305 |  578 01ea 8FEF      		ldi r24,lo8(-1)
 | 
        
           |  |  | 1306 |  579 01ec 8083      		st Z,r24
 | 
        
           |  |  | 1307 |  580 01ee 07C0      		rjmp .L61
 | 
        
           |  |  | 1308 |  581               	.L59:
 | 
        
           |  |  | 1309 |  582               		.stabn	68,0,435,.LM63-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1310 |  583               	.LM63:
 | 
        
           |  |  | 1311 |  584 01f0 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1312 |  585 01f4 E0E0      		ldi r30,lo8(tokenBuffer)
 | 
        
           |  |  | 1313 |  586 01f6 F0E0      		ldi r31,hi8(tokenBuffer)
 | 
        
           |  |  | 1314 |  587 01f8 E80F      		add r30,r24
 | 
        
           |  |  | 1315 |  588 01fa F11D      		adc r31,__zero_reg__
 | 
        
           |  |  | 1316 |  589 01fc 2083      		st Z,r18
 | 
        
           |  |  | 1317 |  590               	.L61:
 | 
        
           |  |  | 1318 |  591               		.stabn	68,0,437,.LM64-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1319 |  592               	.LM64:
 | 
        
           |  |  | 1320 |  593 01fe 83E0      		ldi r24,lo8(3)
 | 
        
           | 174 | kaklik | 1321 | GAS LISTING /tmp/cct6zTlg.s 			page 23
 | 
        
           | 151 | kaklik | 1322 |   | 
        
           |  |  | 1323 |   | 
        
           |  |  | 1324 |  594 0200 E0E0      		ldi r30,lo8(asciiTokenBuffer)
 | 
        
           |  |  | 1325 |  595 0202 F0E0      		ldi r31,hi8(asciiTokenBuffer)
 | 
        
           |  |  | 1326 |  596 0204 1192      		st Z+,__zero_reg__
 | 
        
           |  |  | 1327 |  597 0206 8A95      	        dec r24
 | 
        
           |  |  | 1328 |  598 0208 E9F7      		brne .-6
 | 
        
           |  |  | 1329 |  599               		.stabn	68,0,438,.LM65-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1330 |  600               	.LM65:
 | 
        
           |  |  | 1331 |  601 020a 1092 0000 		sts charIndex,__zero_reg__
 | 
        
           |  |  | 1332 |  602               		.stabn	68,0,439,.LM66-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1333 |  603               	.LM66:
 | 
        
           |  |  | 1334 |  604 020e 1092 0000 		sts charCount,__zero_reg__
 | 
        
           |  |  | 1335 |  605               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 1336 |  606 0212 0895      		ret
 | 
        
           |  |  | 1337 |  607               	/* epilogue end (size=1) */
 | 
        
           |  |  | 1338 |  608               	/* function UIMgr_convertTokenToValue size 38 (37) */
 | 
        
           |  |  | 1339 |  609               		.size	UIMgr_convertTokenToValue, .-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1340 |  610               		.stabs	"newValue:r(0,4)",64,0,423,18
 | 
        
           |  |  | 1341 |  611               		.stabn	192,0,0,UIMgr_convertTokenToValue-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1342 |  612               		.stabn	224,0,0,.Lscope8-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1343 |  613               	.Lscope8:
 | 
        
           |  |  | 1344 |  614               		.stabs	"",36,0,0,.Lscope8-UIMgr_convertTokenToValue
 | 
        
           |  |  | 1345 |  615               		.stabd	78,0,0
 | 
        
           |  |  | 1346 |  616               		.stabs	"UIMgr_processReceivedData:F(0,15)",36,0,193,UIMgr_processReceivedData
 | 
        
           |  |  | 1347 |  617               	.global	UIMgr_processReceivedData
 | 
        
           |  |  | 1348 |  618               		.type	UIMgr_processReceivedData, @function
 | 
        
           |  |  | 1349 |  619               	UIMgr_processReceivedData:
 | 
        
           |  |  | 1350 |  620               		.stabd	46,0,0
 | 
        
           |  |  | 1351 |  621               		.stabn	68,0,193,.LM67-UIMgr_processReceivedData
 | 
        
           |  |  | 1352 |  622               	.LM67:
 | 
        
           |  |  | 1353 |  623               	/* prologue: frame size=0 */
 | 
        
           |  |  | 1354 |  624 0214 FF92      		push r15
 | 
        
           |  |  | 1355 |  625 0216 0F93      		push r16
 | 
        
           |  |  | 1356 |  626 0218 1F93      		push r17
 | 
        
           |  |  | 1357 |  627 021a CF93      		push r28
 | 
        
           |  |  | 1358 |  628 021c DF93      		push r29
 | 
        
           |  |  | 1359 |  629               	/* prologue end (size=5) */
 | 
        
           |  |  | 1360 |  630 021e 0F2E      		mov __tmp_reg__,r31
 | 
        
           |  |  | 1361 |  631 0220 F9E0      		ldi r31,lo8(9)
 | 
        
           |  |  | 1362 |  632 0222 FF2E      		mov r15,r31
 | 
        
           |  |  | 1363 |  633 0224 F02D      		mov r31,__tmp_reg__
 | 
        
           |  |  | 1364 |  634 0226 FFC0      		rjmp .L119
 | 
        
           |  |  | 1365 |  635               	.L65:
 | 
        
           |  |  | 1366 |  636               	.LBB22:
 | 
        
           |  |  | 1367 |  637               	.LBB23:
 | 
        
           |  |  | 1368 |  638               		.stabn	68,0,612,.LM68-UIMgr_processReceivedData
 | 
        
           |  |  | 1369 |  639               	.LM68:
 | 
        
           |  |  | 1370 |  640               	/* #APP */
 | 
        
           |  |  | 1371 |  641 0228 F894      		cli
 | 
        
           |  |  | 1372 |  642               		.stabn	68,0,613,.LM69-UIMgr_processReceivedData
 | 
        
           |  |  | 1373 |  643               	.LM69:
 | 
        
           |  |  | 1374 |  644               	/* #NOAPP */
 | 
        
           |  |  | 1375 |  645 022a E22F      		mov r30,r18
 | 
        
           |  |  | 1376 |  646 022c FF27      		clr r31
 | 
        
           |  |  | 1377 |  647 022e E050      		subi r30,lo8(-(UIMgr_rxFifo))
 | 
        
           |  |  | 1378 |  648 0230 F040      		sbci r31,hi8(-(UIMgr_rxFifo))
 | 
        
           |  |  | 1379 |  649 0232 9081      		ld r25,Z
 | 
        
           |  |  | 1380 |  650               		.stabn	68,0,615,.LM70-UIMgr_processReceivedData
 | 
        
           | 174 | kaklik | 1381 | GAS LISTING /tmp/cct6zTlg.s 			page 24
 | 
        
           | 151 | kaklik | 1382 |   | 
        
           |  |  | 1383 |   | 
        
           |  |  | 1384 |  651               	.LM70:
 | 
        
           |  |  | 1385 |  652 0234 822F      		mov r24,r18
 | 
        
           |  |  | 1386 |  653 0236 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 1387 |  654 0238 8F71      		andi r24,lo8(31)
 | 
        
           |  |  | 1388 |  655 023a 8093 0000 		sts UIMgr_rxFifoTail,r24
 | 
        
           |  |  | 1389 |  656               		.stabn	68,0,616,.LM71-UIMgr_processReceivedData
 | 
        
           |  |  | 1390 |  657               	.LM71:
 | 
        
           |  |  | 1391 |  658               	/* #APP */
 | 
        
           |  |  | 1392 |  659 023e 7894      		sei
 | 
        
           |  |  | 1393 |  660               	/* #NOAPP */
 | 
        
           |  |  | 1394 |  661               	.LBE23:
 | 
        
           |  |  | 1395 |  662               	.LBE22:
 | 
        
           |  |  | 1396 |  663               		.stabn	68,0,202,.LM72-UIMgr_processReceivedData
 | 
        
           |  |  | 1397 |  664               	.LM72:
 | 
        
           |  |  | 1398 |  665 0240 9D30      		cpi r25,lo8(13)
 | 
        
           |  |  | 1399 |  666 0242 09F0      		breq .+2
 | 
        
           |  |  | 1400 |  667 0244 B1C0      		rjmp .L66
 | 
        
           |  |  | 1401 |  668               		.stabn	68,0,205,.LM73-UIMgr_processReceivedData
 | 
        
           |  |  | 1402 |  669               	.LM73:
 | 
        
           |  |  | 1403 |  670 0246 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1404 |  671 024a 8823      		tst r24
 | 
        
           |  |  | 1405 |  672 024c 11F4      		brne .L68
 | 
        
           |  |  | 1406 |  673               		.stabn	68,0,208,.LM74-UIMgr_processReceivedData
 | 
        
           |  |  | 1407 |  674               	.LM74:
 | 
        
           |  |  | 1408 |  675 024e 42DF      		rcall UIMgr_convertTokenToCmd
 | 
        
           |  |  | 1409 |  676 0250 06C0      		rjmp .L70
 | 
        
           |  |  | 1410 |  677               	.L68:
 | 
        
           |  |  | 1411 |  678               		.stabn	68,0,213,.LM75-UIMgr_processReceivedData
 | 
        
           |  |  | 1412 |  679               	.LM75:
 | 
        
           |  |  | 1413 |  680 0252 BADF      		rcall UIMgr_convertTokenToValue
 | 
        
           |  |  | 1414 |  681               		.stabn	68,0,214,.LM76-UIMgr_processReceivedData
 | 
        
           |  |  | 1415 |  682               	.LM76:
 | 
        
           |  |  | 1416 |  683 0254 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1417 |  684 0258 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 1418 |  685 025a 8093 0000 		sts tokenCount,r24
 | 
        
           |  |  | 1419 |  686               	.L70:
 | 
        
           |  |  | 1420 |  687               		.stabn	68,0,218,.LM77-UIMgr_processReceivedData
 | 
        
           |  |  | 1421 |  688               	.LM77:
 | 
        
           |  |  | 1422 |  689 025e 84E6      		ldi r24,lo8(100)
 | 
        
           |  |  | 1423 |  690 0260 90E0      		ldi r25,hi8(100)
 | 
        
           |  |  | 1424 |  691 0262 00D0      		rcall Utility_delay
 | 
        
           |  |  | 1425 |  692               		.stabn	68,0,219,.LM78-UIMgr_processReceivedData
 | 
        
           |  |  | 1426 |  693               	.LM78:
 | 
        
           |  |  | 1427 |  694 0264 8091 0000 		lds r24,receivedCmd
 | 
        
           |  |  | 1428 |  695 0268 8850      		subi r24,lo8(-(-8))
 | 
        
           |  |  | 1429 |  696 026a 8230      		cpi r24,lo8(2)
 | 
        
           |  |  | 1430 |  697 026c 58F4      		brsh .L71
 | 
        
           |  |  | 1431 |  698               	.LBB24:
 | 
        
           |  |  | 1432 |  699               	.LBB25:
 | 
        
           |  |  | 1433 |  700               		.stabn	68,0,531,.LM79-UIMgr_processReceivedData
 | 
        
           |  |  | 1434 |  701               	.LM79:
 | 
        
           |  |  | 1435 |  702 026e 8EE4      		ldi r24,lo8(78)
 | 
        
           |  |  | 1436 |  703 0270 F4DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1437 |  704               		.stabn	68,0,532,.LM80-UIMgr_processReceivedData
 | 
        
           |  |  | 1438 |  705               	.LM80:
 | 
        
           |  |  | 1439 |  706 0272 83E4      		ldi r24,lo8(67)
 | 
        
           |  |  | 1440 |  707 0274 F2DE      		rcall UIMgr_writeTxFifo
 | 
        
           | 174 | kaklik | 1441 | GAS LISTING /tmp/cct6zTlg.s 			page 25
 | 
        
           | 151 | kaklik | 1442 |   | 
        
           |  |  | 1443 |   | 
        
           |  |  | 1444 |  708               		.stabn	68,0,533,.LM81-UIMgr_processReceivedData
 | 
        
           |  |  | 1445 |  709               	.LM81:
 | 
        
           |  |  | 1446 |  710 0276 8BE4      		ldi r24,lo8(75)
 | 
        
           |  |  | 1447 |  711 0278 F0DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1448 |  712               		.stabn	68,0,534,.LM82-UIMgr_processReceivedData
 | 
        
           |  |  | 1449 |  713               	.LM82:
 | 
        
           |  |  | 1450 |  714 027a 8DE0      		ldi r24,lo8(13)
 | 
        
           |  |  | 1451 |  715 027c EEDE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1452 |  716               	.LBE25:
 | 
        
           |  |  | 1453 |  717               	.LBE24:
 | 
        
           |  |  | 1454 |  718               		.stabn	68,0,223,.LM83-UIMgr_processReceivedData
 | 
        
           |  |  | 1455 |  719               	.LM83:
 | 
        
           |  |  | 1456 |  720 027e 80E9      		ldi r24,lo8(-112)
 | 
        
           |  |  | 1457 |  721 0280 00D0      		rcall Exec_writeEventFifo
 | 
        
           |  |  | 1458 |  722 0282 89C0      		rjmp .L73
 | 
        
           |  |  | 1459 |  723               	.L71:
 | 
        
           |  |  | 1460 |  724               	.LBB26:
 | 
        
           |  |  | 1461 |  725               	.LBB27:
 | 
        
           |  |  | 1462 |  726               		.stabn	68,0,516,.LM84-UIMgr_processReceivedData
 | 
        
           |  |  | 1463 |  727               	.LM84:
 | 
        
           |  |  | 1464 |  728 0284 81E4      		ldi r24,lo8(65)
 | 
        
           |  |  | 1465 |  729 0286 E9DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1466 |  730               		.stabn	68,0,517,.LM85-UIMgr_processReceivedData
 | 
        
           |  |  | 1467 |  731               	.LM85:
 | 
        
           |  |  | 1468 |  732 0288 83E4      		ldi r24,lo8(67)
 | 
        
           |  |  | 1469 |  733 028a E7DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1470 |  734               		.stabn	68,0,518,.LM86-UIMgr_processReceivedData
 | 
        
           |  |  | 1471 |  735               	.LM86:
 | 
        
           |  |  | 1472 |  736 028c 8BE4      		ldi r24,lo8(75)
 | 
        
           |  |  | 1473 |  737 028e E5DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1474 |  738               		.stabn	68,0,519,.LM87-UIMgr_processReceivedData
 | 
        
           |  |  | 1475 |  739               	.LM87:
 | 
        
           |  |  | 1476 |  740 0290 8DE0      		ldi r24,lo8(13)
 | 
        
           |  |  | 1477 |  741 0292 E3DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1478 |  742               	.LBE27:
 | 
        
           |  |  | 1479 |  743               	.LBE26:
 | 
        
           |  |  | 1480 |  744               		.stabn	68,0,230,.LM88-UIMgr_processReceivedData
 | 
        
           |  |  | 1481 |  745               	.LM88:
 | 
        
           |  |  | 1482 |  746 0294 80E9      		ldi r24,lo8(-112)
 | 
        
           |  |  | 1483 |  747 0296 00D0      		rcall Exec_writeEventFifo
 | 
        
           |  |  | 1484 |  748               	.LBB28:
 | 
        
           |  |  | 1485 |  749               	.LBB29:
 | 
        
           |  |  | 1486 |  750               		.stabn	68,0,316,.LM89-UIMgr_processReceivedData
 | 
        
           |  |  | 1487 |  751               	.LM89:
 | 
        
           |  |  | 1488 |  752 0298 8091 0000 		lds r24,receivedCmd
 | 
        
           |  |  | 1489 |  753 029c 8130      		cpi r24,lo8(1)
 | 
        
           |  |  | 1490 |  754 029e 09F4      		brne .+2
 | 
        
           |  |  | 1491 |  755 02a0 7AC0      		rjmp .L73
 | 
        
           |  |  | 1492 |  756               		.stabn	68,0,319,.LM90-UIMgr_processReceivedData
 | 
        
           |  |  | 1493 |  757               	.LM90:
 | 
        
           |  |  | 1494 |  758 02a2 8823      		tst r24
 | 
        
           |  |  | 1495 |  759 02a4 71F4      		brne .L75
 | 
        
           |  |  | 1496 |  760               		.stabn	68,0,322,.LM91-UIMgr_processReceivedData
 | 
        
           |  |  | 1497 |  761               	.LM91:
 | 
        
           |  |  | 1498 |  762 02a6 8091 0000 		lds r24,AVRcamVersion
 | 
        
           |  |  | 1499 |  763 02aa 8823      		tst r24
 | 
        
           |  |  | 1500 |  764 02ac 09F4      		brne .+2
 | 
        
           | 174 | kaklik | 1501 | GAS LISTING /tmp/cct6zTlg.s 			page 26
 | 
        
           | 151 | kaklik | 1502 |   | 
        
           |  |  | 1503 |   | 
        
           |  |  | 1504 |  765 02ae 73C0      		rjmp .L73
 | 
        
           |  |  | 1505 |  766 02b0 C0E0      		ldi r28,lo8(AVRcamVersion)
 | 
        
           |  |  | 1506 |  767 02b2 D0E0      		ldi r29,hi8(AVRcamVersion)
 | 
        
           |  |  | 1507 |  768               	.L78:
 | 
        
           |  |  | 1508 |  769               		.stabn	68,0,324,.LM92-UIMgr_processReceivedData
 | 
        
           |  |  | 1509 |  770               	.LM92:
 | 
        
           |  |  | 1510 |  771 02b4 2196      		adiw r28,1
 | 
        
           |  |  | 1511 |  772 02b6 D1DE      		rcall UIMgr_writeTxFifo
 | 
        
           |  |  | 1512 |  773               		.stabn	68,0,322,.LM93-UIMgr_processReceivedData
 | 
        
           |  |  | 1513 |  774               	.LM93:
 | 
        
           |  |  | 1514 |  775 02b8 8881      		ld r24,Y
 | 
        
           |  |  | 1515 |  776 02ba 8823      		tst r24
 | 
        
           |  |  | 1516 |  777 02bc 09F4      		brne .+2
 | 
        
           |  |  | 1517 |  778 02be 6BC0      		rjmp .L73
 | 
        
           |  |  | 1518 |  779 02c0 F9CF      		rjmp .L78
 | 
        
           |  |  | 1519 |  780               	.L75:
 | 
        
           |  |  | 1520 |  781               		.stabn	68,0,327,.LM94-UIMgr_processReceivedData
 | 
        
           |  |  | 1521 |  782               	.LM94:
 | 
        
           |  |  | 1522 |  783 02c2 8730      		cpi r24,lo8(7)
 | 
        
           |  |  | 1523 |  784 02c4 11F4      		brne .L79
 | 
        
           |  |  | 1524 |  785               		.stabn	68,0,329,.LM95-UIMgr_processReceivedData
 | 
        
           |  |  | 1525 |  786               	.LM95:
 | 
        
           |  |  | 1526 |  787 02c6 00D0      		rcall CamInt_resetCam
 | 
        
           |  |  | 1527 |  788 02c8 66C0      		rjmp .L73
 | 
        
           |  |  | 1528 |  789               	.L79:
 | 
        
           |  |  | 1529 |  790               		.stabn	68,0,331,.LM96-UIMgr_processReceivedData
 | 
        
           |  |  | 1530 |  791               	.LM96:
 | 
        
           |  |  | 1531 |  792 02ca 8330      		cpi r24,lo8(3)
 | 
        
           |  |  | 1532 |  793 02cc 31F4      		brne .L81
 | 
        
           |  |  | 1533 |  794               		.stabn	68,0,340,.LM97-UIMgr_processReceivedData
 | 
        
           |  |  | 1534 |  795               	.LM97:
 | 
        
           |  |  | 1535 |  796 02ce 84E6      		ldi r24,lo8(100)
 | 
        
           |  |  | 1536 |  797 02d0 90E0      		ldi r25,hi8(100)
 | 
        
           |  |  | 1537 |  798 02d2 00D0      		rcall Utility_delay
 | 
        
           |  |  | 1538 |  799               		.stabn	68,0,341,.LM98-UIMgr_processReceivedData
 | 
        
           |  |  | 1539 |  800               	.LM98:
 | 
        
           |  |  | 1540 |  801 02d4 82E0      		ldi r24,lo8(2)
 | 
        
           |  |  | 1541 |  802 02d6 00D0      		rcall Exec_writeEventFifo
 | 
        
           |  |  | 1542 |  803 02d8 5EC0      		rjmp .L73
 | 
        
           |  |  | 1543 |  804               	.L81:
 | 
        
           |  |  | 1544 |  805               		.stabn	68,0,343,.LM99-UIMgr_processReceivedData
 | 
        
           |  |  | 1545 |  806               	.LM99:
 | 
        
           |  |  | 1546 |  807 02da 8230      		cpi r24,lo8(2)
 | 
        
           |  |  | 1547 |  808 02dc 99F4      		brne .L83
 | 
        
           |  |  | 1548 |  809               		.stabn	68,0,347,.LM100-UIMgr_processReceivedData
 | 
        
           |  |  | 1549 |  810               	.LM100:
 | 
        
           |  |  | 1550 |  811 02de 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1551 |  812 02e2 8230      		cpi r24,lo8(2)
 | 
        
           |  |  | 1552 |  813 02e4 68F0      		brlo .L85
 | 
        
           |  |  | 1553 |  814 02e6 11E0      		ldi r17,lo8(1)
 | 
        
           |  |  | 1554 |  815               	.L87:
 | 
        
           |  |  | 1555 |  816               		.stabn	68,0,350,.LM101-UIMgr_processReceivedData
 | 
        
           |  |  | 1556 |  817               	.LM101:
 | 
        
           |  |  | 1557 |  818 02e8 E12F      		mov r30,r17
 | 
        
           |  |  | 1558 |  819 02ea FF27      		clr r31
 | 
        
           |  |  | 1559 |  820 02ec E050      		subi r30,lo8(-(tokenBuffer))
 | 
        
           |  |  | 1560 |  821 02ee F040      		sbci r31,hi8(-(tokenBuffer))
 | 
        
           | 174 | kaklik | 1561 | GAS LISTING /tmp/cct6zTlg.s 			page 27
 | 
        
           | 151 | kaklik | 1562 |   | 
        
           |  |  | 1563 |   | 
        
           |  |  | 1564 |  822 02f0 6181      		ldd r22,Z+1
 | 
        
           |  |  | 1565 |  823 02f2 8081      		ld r24,Z
 | 
        
           |  |  | 1566 |  824 02f4 00D0      		rcall CamConfig_setCamReg
 | 
        
           |  |  | 1567 |  825               		.stabn	68,0,347,.LM102-UIMgr_processReceivedData
 | 
        
           |  |  | 1568 |  826               	.LM102:
 | 
        
           |  |  | 1569 |  827 02f6 1E5F      		subi r17,lo8(-(2))
 | 
        
           |  |  | 1570 |  828 02f8 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1571 |  829 02fc 1817      		cp r17,r24
 | 
        
           |  |  | 1572 |  830 02fe A0F3      		brlo .L87
 | 
        
           |  |  | 1573 |  831               	.L85:
 | 
        
           |  |  | 1574 |  832               		.stabn	68,0,352,.LM103-UIMgr_processReceivedData
 | 
        
           |  |  | 1575 |  833               	.LM103:
 | 
        
           |  |  | 1576 |  834 0300 00D0      		rcall CamConfig_sendFifoCmds
 | 
        
           |  |  | 1577 |  835 0302 49C0      		rjmp .L73
 | 
        
           |  |  | 1578 |  836               	.L83:
 | 
        
           |  |  | 1579 |  837               		.stabn	68,0,354,.LM104-UIMgr_processReceivedData
 | 
        
           |  |  | 1580 |  838               	.LM104:
 | 
        
           |  |  | 1581 |  839 0304 8430      		cpi r24,lo8(4)
 | 
        
           |  |  | 1582 |  840 0306 31F4      		brne .L88
 | 
        
           |  |  | 1583 |  841               		.stabn	68,0,357,.LM105-UIMgr_processReceivedData
 | 
        
           |  |  | 1584 |  842               	.LM105:
 | 
        
           |  |  | 1585 |  843 0308 84E6      		ldi r24,lo8(100)
 | 
        
           |  |  | 1586 |  844 030a 90E0      		ldi r25,hi8(100)
 | 
        
           |  |  | 1587 |  845 030c 00D0      		rcall Utility_delay
 | 
        
           |  |  | 1588 |  846               		.stabn	68,0,358,.LM106-UIMgr_processReceivedData
 | 
        
           |  |  | 1589 |  847               	.LM106:
 | 
        
           |  |  | 1590 |  848 030e 80E8      		ldi r24,lo8(-128)
 | 
        
           |  |  | 1591 |  849 0310 00D0      		rcall Exec_writeEventFifo
 | 
        
           |  |  | 1592 |  850 0312 41C0      		rjmp .L73
 | 
        
           |  |  | 1593 |  851               	.L88:
 | 
        
           |  |  | 1594 |  852               		.stabn	68,0,360,.LM107-UIMgr_processReceivedData
 | 
        
           |  |  | 1595 |  853               	.LM107:
 | 
        
           |  |  | 1596 |  854 0314 8530      		cpi r24,lo8(5)
 | 
        
           |  |  | 1597 |  855 0316 19F4      		brne .L90
 | 
        
           |  |  | 1598 |  856               		.stabn	68,0,362,.LM108-UIMgr_processReceivedData
 | 
        
           |  |  | 1599 |  857               	.LM108:
 | 
        
           |  |  | 1600 |  858 0318 81E8      		ldi r24,lo8(-127)
 | 
        
           |  |  | 1601 |  859 031a 00D0      		rcall Exec_writeEventFifo
 | 
        
           |  |  | 1602 |  860 031c 3CC0      		rjmp .L73
 | 
        
           |  |  | 1603 |  861               	.L90:
 | 
        
           |  |  | 1604 |  862               		.stabn	68,0,364,.LM109-UIMgr_processReceivedData
 | 
        
           |  |  | 1605 |  863               	.LM109:
 | 
        
           |  |  | 1606 |  864 031e 8630      		cpi r24,lo8(6)
 | 
        
           |  |  | 1607 |  865 0320 09F0      		breq .+2
 | 
        
           |  |  | 1608 |  866 0322 39C0      		rjmp .L73
 | 
        
           |  |  | 1609 |  867               		.stabn	68,0,367,.LM110-UIMgr_processReceivedData
 | 
        
           |  |  | 1610 |  868               	.LM110:
 | 
        
           |  |  | 1611 |  869 0324 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 1612 |  870 0328 8823      		tst r24
 | 
        
           |  |  | 1613 |  871 032a 09F4      		brne .+2
 | 
        
           |  |  | 1614 |  872 032c 34C0      		rjmp .L73
 | 
        
           |  |  | 1615 |  873 032e 40E0      		ldi r20,lo8(0)
 | 
        
           |  |  | 1616 |  874 0330 00E0      		ldi r16,lo8(tokenBuffer)
 | 
        
           |  |  | 1617 |  875 0332 10E0      		ldi r17,hi8(tokenBuffer)
 | 
        
           |  |  | 1618 |  876 0334 60E0      		ldi r22,lo8(colorMap)
 | 
        
           |  |  | 1619 |  877 0336 70E0      		ldi r23,hi8(colorMap)
 | 
        
           |  |  | 1620 |  878               	.L94:
 | 
        
           | 174 | kaklik | 1621 | GAS LISTING /tmp/cct6zTlg.s 			page 28
 | 
        
           | 151 | kaklik | 1622 |   | 
        
           |  |  | 1623 |   | 
        
           |  |  | 1624 |  879               		.stabn	68,0,369,.LM111-UIMgr_processReceivedData
 | 
        
           |  |  | 1625 |  880               	.LM111:
 | 
        
           |  |  | 1626 |  881 0338 842F      		mov r24,r20
 | 
        
           |  |  | 1627 |  882 033a 9927      		clr r25
 | 
        
           |  |  | 1628 |  883 033c 9C01      		movw r18,r24
 | 
        
           |  |  | 1629 |  884 033e 2F5F      		subi r18,lo8(-(1))
 | 
        
           |  |  | 1630 |  885 0340 3F4F      		sbci r19,hi8(-(1))
 | 
        
           |  |  | 1631 |  886 0342 F901      		movw r30,r18
 | 
        
           |  |  | 1632 |  887 0344 E00F      		add r30,r16
 | 
        
           |  |  | 1633 |  888 0346 F11F      		adc r31,r17
 | 
        
           |  |  | 1634 |  889 0348 E081      		ld r30,Z
 | 
        
           |  |  | 1635 |  890 034a EC01      		movw r28,r24
 | 
        
           |  |  | 1636 |  891 034c C60F      		add r28,r22
 | 
        
           |  |  | 1637 |  892 034e D71F      		adc r29,r23
 | 
        
           |  |  | 1638 |  893 0350 E883      		st Y,r30
 | 
        
           |  |  | 1639 |  894               	.LBB30:
 | 
        
           |  |  | 1640 |  895               	.LBB31:
 | 
        
           |  |  | 1641 |  896               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
 | 
        
           |  |  | 1642 |  897               	.Ltext1:
 | 
        
           |  |  | 1643 |    1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
 | 
        
           |  |  | 1644 |    2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Copyright (c) 2005, 2006 Bjoern Haase
 | 
        
           |  |  | 1645 |    3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    All rights reserved.
 | 
        
           |  |  | 1646 |    4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1647 |    5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Redistribution and use in source and binary forms, with or without
 | 
        
           |  |  | 1648 |    6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    modification, are permitted provided that the following conditions are met:
 | 
        
           |  |  | 1649 |    7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1650 |    8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions of source code must retain the above copyright
 | 
        
           |  |  | 1651 |    9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer.
 | 
        
           |  |  | 1652 |   10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1653 |   11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Redistributions in binary form must reproduce the above copyright
 | 
        
           |  |  | 1654 |   12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer in
 | 
        
           |  |  | 1655 |   13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the documentation and/or other materials provided with the
 | 
        
           |  |  | 1656 |   14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      distribution.
 | 
        
           |  |  | 1657 |   15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1658 |   16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    * Neither the name of the copyright holders nor the names of
 | 
        
           |  |  | 1659 |   17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      contributors may be used to endorse or promote products derived
 | 
        
           |  |  | 1660 |   18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      from this software without specific prior written permission.
 | 
        
           |  |  | 1661 |   19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1662 |   20:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
        
           |  |  | 1663 |   21:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
        
           |  |  | 1664 |   22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
        
           |  |  | 1665 |   23:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 | 
        
           |  |  | 1666 |   24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 | 
        
           |  |  | 1667 |   25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
        
           |  |  | 1668 |   26:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | 
        
           |  |  | 1669 |   27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | 
        
           |  |  | 1670 |   28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
        
           |  |  | 1671 |   29:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
        
           |  |  | 1672 |   30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   POSSIBILITY OF SUCH DAMAGE. */
 | 
        
           |  |  | 1673 |   31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1674 |   32:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.1 2006/02/26 21:51:04 aesok Exp $ */
 | 
        
           |  |  | 1675 |   33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1676 |   34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
 | 
        
           |  |  | 1677 |   35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    eeprom.h
 | 
        
           |  |  | 1678 |   36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1679 |   37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    Contributors:
 | 
        
           |  |  | 1680 |   38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Created by Marek Michalkiewicz <marekm@linux.org.pl>
 | 
        
           | 174 | kaklik | 1681 | GAS LISTING /tmp/cct6zTlg.s 			page 29
 | 
        
           | 151 | kaklik | 1682 |   | 
        
           |  |  | 1683 |   | 
        
           |  |  | 1684 |   39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      eeprom_write_word and eeprom_write_block added by Artur Lipowski 
 | 
        
           |  |  | 1685 |   40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <LAL@pro.onet.pl>
 | 
        
           |  |  | 1686 |   41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Complete rewrite using the original interface by Bjoern Haase 
 | 
        
           |  |  | 1687 |   42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      <bjoern.haase@de.bosch.com>. 
 | 
        
           |  |  | 1688 |   43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****  */
 | 
        
           |  |  | 1689 |   44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1690 |   45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
 | 
        
           |  |  | 1691 |   46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
 | 
        
           |  |  | 1692 |   47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1693 |   48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
 | 
        
           |  |  | 1694 |   49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
 | 
        
           |  |  | 1695 |   50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
 | 
        
           |  |  | 1696 |   51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1697 |   52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1698 |   53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
 | 
        
           |  |  | 1699 |   54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
 | 
        
           |  |  | 1700 |   55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
 | 
        
           |  |  | 1701 |   56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
 | 
        
           |  |  | 1702 |   57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
 | 
        
           |  |  | 1703 |   58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1704 |   59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
 | 
        
           |  |  | 1705 |   60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
 | 
        
           |  |  | 1706 |   61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
 | 
        
           |  |  | 1707 |   62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 | 
        
           |  |  | 1708 |   63:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      In order to be able to work without a requiring a multilib 
 | 
        
           |  |  | 1709 |   64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      approach for dealing with controllers having the EEPROM registers
 | 
        
           |  |  | 1710 |   65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      at different positions in memory space, the eeprom functions evaluate
 | 
        
           |  |  | 1711 |   66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
 | 
        
           |  |  | 1712 |   67:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      the device io header and contains 6 uppercase hex digits encoding the 
 | 
        
           |  |  | 1713 |   68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      addresses of EECR,EEDR and EEAR. 
 | 
        
           |  |  | 1714 |   69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      First two letters:  EECR address.
 | 
        
           |  |  | 1715 |   70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Second two letters: EEDR address.
 | 
        
           |  |  | 1716 |   71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      Last two letters:   EEAR address.
 | 
        
           |  |  | 1717 |   72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      The default 1C1D1E corresponds to the
 | 
        
           |  |  | 1718 |   73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      register location that is valid for most controllers. The value
 | 
        
           |  |  | 1719 |   74:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      of this define symbol is used for appending it to the base name of the
 | 
        
           |  |  | 1720 |   75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler functions.  */
 | 
        
           |  |  | 1721 |   76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
 | 
        
           |  |  | 1722 |   77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
 | 
        
           |  |  | 1723 |   78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
 | 
        
           |  |  | 1724 |   79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
 | 
        
           |  |  | 1725 |   80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
 | 
        
           |  |  | 1726 |   81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1727 |   82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
 | 
        
           |  |  | 1728 |   83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
 | 
        
           |  |  | 1729 |   84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
 | 
        
           |  |  | 1730 |   85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1731 |   86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1732 |   87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
 | 
        
           |  |  | 1733 |   88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \code #include <avr/eeprom.h> \endcode
 | 
        
           |  |  | 1734 |   89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1735 |   90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     This header file declares the interface to some simple library
 | 
        
           |  |  | 1736 |   91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     routines suitable for handling the data EEPROM contained in the
 | 
        
           |  |  | 1737 |   92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     AVR microcontrollers.  The implementation uses a simple polled
 | 
        
           |  |  | 1738 |   93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     mode interface.  Applications that require interrupt-controlled
 | 
        
           |  |  | 1739 |   94:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     EEPROM access to ensure that no time will be wasted in spinloops
 | 
        
           |  |  | 1740 |   95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     will have to deploy their own implementation.
 | 
        
           | 174 | kaklik | 1741 | GAS LISTING /tmp/cct6zTlg.s 			page 30
 | 
        
           | 151 | kaklik | 1742 |   | 
        
           |  |  | 1743 |   | 
        
           |  |  | 1744 |   96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1745 |   97:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note All of the read/write functions first make sure the EEPROM
 | 
        
           |  |  | 1746 |   98:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      is ready to be accessed.  Since this may cause long delays if a
 | 
        
           |  |  | 1747 |   99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      write operation is still pending, time-critical applications
 | 
        
           |  |  | 1748 |  100:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      should first poll the EEPROM e. g. using eeprom_is_ready() before
 | 
        
           |  |  | 1749 |  101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      attempting any actual I/O.
 | 
        
           |  |  | 1750 |  102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1751 |  103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note This header file declares inline functions that call the
 | 
        
           |  |  | 1752 |  104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      assembler subroutines directly. This prevents that the compiler
 | 
        
           |  |  | 1753 |  105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      generates push/pops for the call-clobbered registers. This way
 | 
        
           |  |  | 1754 |  106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      also a specific calling convention could be used for the eeprom
 | 
        
           |  |  | 1755 |  107:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      routines e.g. by passing values in __tmp_reg__, eeprom addresses in
 | 
        
           |  |  | 1756 |  108:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      X and memory addresses in Z registers. Method is optimized for code 
 | 
        
           |  |  | 1757 |  109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      size.
 | 
        
           |  |  | 1758 |  110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1759 |  111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note Presently supported are two locations of the EEPROM register
 | 
        
           |  |  | 1760 |  112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E 
 | 
        
           |  |  | 1761 |  113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      (see ::__EEPROM_REG_LOCATIONS__).
 | 
        
           |  |  | 1762 |  114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1763 |  115:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \note As these functions modify IO registers, they are known to be
 | 
        
           |  |  | 1764 |  116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      non-reentrant.  If any of these functions are used from both,
 | 
        
           |  |  | 1765 |  117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      standard and interrupt context, the applications must ensure
 | 
        
           |  |  | 1766 |  118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      proper protection (e.g. by disabling interrupts before accessing
 | 
        
           |  |  | 1767 |  119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      them).
 | 
        
           |  |  | 1768 |  120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1769 |  121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
 | 
        
           |  |  | 1770 |  122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1771 |  123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1772 |  124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
 | 
        
           |  |  | 1773 |  125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****    not get confused by the attribute expression.  */
 | 
        
           |  |  | 1774 |  126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1775 |  127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
 | 
        
           |  |  | 1776 |  128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
 | 
        
           |  |  | 1777 |  129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1778 |  130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline)) 
 | 
        
           |  |  | 1779 |  131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
 | 
        
           |  |  | 1780 |  132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1781 |  133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 | 
        
           |  |  | 1782 |  134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
 | 
        
           |  |  | 1783 |  135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
 | 
        
           |  |  | 1784 |  136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t size);
 | 
        
           |  |  | 1785 |  137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1786 |  138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 | 
        
           |  |  | 1787 |  139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
 | 
        
           |  |  | 1788 |  140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1789 |  141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 | 
        
           |  |  | 1790 |  142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
 | 
        
           |  |  | 1791 |  143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1792 |  144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
 | 
        
           |  |  | 1793 |  145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
 | 
        
           |  |  | 1794 |  146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     void *pointer_eeprom,
 | 
        
           |  |  | 1795 |  147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                     size_t size);
 | 
        
           |  |  | 1796 |  148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1797 |  149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
 | 
        
           |  |  | 1798 |  150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1799 |  151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
 | 
        
           |  |  | 1800 |  152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           | 174 | kaklik | 1801 | GAS LISTING /tmp/cct6zTlg.s 			page 31
 | 
        
           | 151 | kaklik | 1802 |   | 
        
           |  |  | 1803 |   | 
        
           |  |  | 1804 |  153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
 | 
        
           |  |  | 1805 |  154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 | 
        
           |  |  | 1806 |  155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Attribute expression causing a variable to be allocated within the .eeprom
 | 
        
           |  |  | 1807 |  156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****      section.  */
 | 
        
           |  |  | 1808 |  157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
 | 
        
           |  |  | 1809 |  158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1810 |  159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
 | 
        
           |  |  | 1811 |  160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 | 
        
           |  |  | 1812 |  161:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
 | 
        
           |  |  | 1813 |  162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1814 |  163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
 | 
        
           |  |  | 1815 |  164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
 | 
        
           |  |  | 1816 |  165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
 | 
        
           |  |  | 1817 |  166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
 | 
        
           |  |  | 1818 |  167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
 | 
        
           |  |  | 1819 |  168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
 | 
        
           |  |  | 1820 |  169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
 | 
        
           |  |  | 1821 |  170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
 | 
        
           |  |  | 1822 |  171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
 | 
        
           |  |  | 1823 |  172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
 | 
        
           |  |  | 1824 |  173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
 | 
        
           |  |  | 1825 |  174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1826 |  175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
 | 
        
           |  |  | 1827 |  176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 | 
        
           |  |  | 1828 |  177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1829 |  178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Loops until the eeprom is no longer busy.
 | 
        
           |  |  | 1830 |  179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1831 |  180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \returns Nothing. */
 | 
        
           |  |  | 1832 |  181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1833 |  182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
 | 
        
           |  |  | 1834 |  183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1835 |  184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1836 |  185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 | 
        
           |  |  | 1837 |  186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one byte from EEPROM address \c addr. */
 | 
        
           |  |  | 1838 |  187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1839 |  188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t 
 | 
        
           |  |  | 1840 |  189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr) 
 | 
        
           |  |  | 1841 |  190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
 | 
        
           |  |  | 1842 |  191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint8_t result;
 | 
        
           |  |  | 1843 |  192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm volatile
 | 
        
           |  |  | 1844 |  898               		.stabn	68,0,192,.LM112-UIMgr_processReceivedData
 | 
        
           |  |  | 1845 |  899               	.LM112:
 | 
        
           |  |  | 1846 |  900 0352 D901      		movw r26,r18
 | 
        
           |  |  | 1847 |  901               	/* #APP */
 | 
        
           |  |  | 1848 |  902 0354 00D0      		rcall __eeprom_read_byte_1C1D1E
 | 
        
           |  |  | 1849 |  903 0356 802D      		mov r24,__tmp_reg__
 | 
        
           |  |  | 1850 |  904               	/* #NOAPP */
 | 
        
           |  |  | 1851 |  905               	.LBE31:
 | 
        
           |  |  | 1852 |  906               	.LBE30:
 | 
        
           |  |  | 1853 |  907               		.stabs	"UIMgr.c",132,0,0,.Ltext2
 | 
        
           |  |  | 1854 |  908               	.Ltext2:
 | 
        
           |  |  | 1855 |  909               		.stabn	68,0,374,.LM113-UIMgr_processReceivedData
 | 
        
           |  |  | 1856 |  910               	.LM113:
 | 
        
           |  |  | 1857 |  911 0358 E817      		cp r30,r24
 | 
        
           |  |  | 1858 |  912 035a C1F0      		breq .L95
 | 
        
           |  |  | 1859 |  913               	.LBB32:
 | 
        
           |  |  | 1860 |  914               	.LBB33:
 | 
        
           | 174 | kaklik | 1861 | GAS LISTING /tmp/cct6zTlg.s 			page 32
 | 
        
           | 151 | kaklik | 1862 |   | 
        
           |  |  | 1863 |   | 
        
           |  |  | 1864 |  915               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext3
 | 
        
           |  |  | 1865 |  916               	.Ltext3:
 | 
        
           |  |  | 1866 |  193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 | 
        
           |  |  | 1867 |  194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         "mov %1,__tmp_reg__"
 | 
        
           |  |  | 1868 |  195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
 | 
        
           |  |  | 1869 |  196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=r" (result)
 | 
        
           |  |  | 1870 |  197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
 | 
        
           |  |  | 1871 |  198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
 | 
        
           |  |  | 1872 |  199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
 | 
        
           |  |  | 1873 |  200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1874 |  201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 | 
        
           |  |  | 1875 |  202:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read one 16-bit word (little endian) from EEPROM address \c addr. */
 | 
        
           |  |  | 1876 |  203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
 | 
        
           |  |  | 1877 |  204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
 | 
        
           |  |  | 1878 |  205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
 | 
        
           |  |  | 1879 |  206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   uint16_t result;
 | 
        
           |  |  | 1880 |  207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1881 |  208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm ( 
 | 
        
           |  |  | 1882 |  209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
 | 
        
           |  |  | 1883 |  210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : "+x" (addr),
 | 
        
           |  |  | 1884 |  211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****          "=z" (result)
 | 
        
           |  |  | 1885 |  212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****        : );
 | 
        
           |  |  | 1886 |  213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   return result;
 | 
        
           |  |  | 1887 |  214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
 | 
        
           |  |  | 1888 |  215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1889 |  216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 | 
        
           |  |  | 1890 |  217:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
 | 
        
           |  |  | 1891 |  218:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     \c pointer_ram.  For constant n <= 256 bytes a library function is used.
 | 
        
           |  |  | 1892 |  219:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     For block sizes unknown at compile time or block sizes > 256 an inline
 | 
        
           |  |  | 1893 |  220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     loop is expanded. */
 | 
        
           |  |  | 1894 |  221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1895 |  222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void 
 | 
        
           |  |  | 1896 |  223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
 | 
        
           |  |  | 1897 |  224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
 | 
        
           |  |  | 1898 |  225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    size_t n)
 | 
        
           |  |  | 1899 |  226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
 | 
        
           |  |  | 1900 |  227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   if (!__builtin_constant_p (n)
 | 
        
           |  |  | 1901 |  228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       || n > 256)
 | 
        
           |  |  | 1902 |  229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
 | 
        
           |  |  | 1903 |  230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       /* make sure size is a 16 bit variable.  */
 | 
        
           |  |  | 1904 |  231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       uint16_t size = n; 
 | 
        
           |  |  | 1905 |  232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1906 |  233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       asm volatile ( 
 | 
        
           |  |  | 1907 |  234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_start:" CR_TAB
 | 
        
           |  |  | 1908 |  235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "sbiw %2,1" CR_TAB
 | 
        
           |  |  | 1909 |  236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "brlt .%=_finished" CR_TAB
 | 
        
           |  |  | 1910 |  237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 | 
        
           |  |  | 1911 |  238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "st z+,__tmp_reg__" CR_TAB
 | 
        
           |  |  | 1912 |  239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "rjmp .%=_start" CR_TAB
 | 
        
           |  |  | 1913 |  240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             ".%=_finished:" 
 | 
        
           |  |  | 1914 |  241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           : "=x" (pointer_eeprom),
 | 
        
           |  |  | 1915 |  242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "=z" (pointer_ram),
 | 
        
           |  |  | 1916 |  243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             "+w" (size)
 | 
        
           |  |  | 1917 |  244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "x" (pointer_eeprom), 
 | 
        
           |  |  | 1918 |  245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****              "z" (pointer_ram)
 | 
        
           |  |  | 1919 |  246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****            : "memory");
 | 
        
           |  |  | 1920 |  247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     }
 | 
        
           | 174 | kaklik | 1921 | GAS LISTING /tmp/cct6zTlg.s 			page 33
 | 
        
           | 151 | kaklik | 1922 |   | 
        
           |  |  | 1923 |   | 
        
           |  |  | 1924 |  248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   else
 | 
        
           |  |  | 1925 |  249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     {
 | 
        
           |  |  | 1926 |  250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****       if (n != 0)
 | 
        
           |  |  | 1927 |  251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         {
 | 
        
           |  |  | 1928 |  252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           if (n == 256)
 | 
        
           |  |  | 1929 |  253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
 | 
        
           |  |  | 1930 |  254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
 | 
        
           |  |  | 1931 |  255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 | 
        
           |  |  | 1932 |  256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 | 
        
           |  |  | 1933 |  257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 | 
        
           |  |  | 1934 |  258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "z"  (pointer_ram)
 | 
        
           |  |  | 1935 |  259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "memory");
 | 
        
           |  |  | 1936 |  260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             }
 | 
        
           |  |  | 1937 |  261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****           else
 | 
        
           |  |  | 1938 |  262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             {
 | 
        
           |  |  | 1939 |  263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               /* Needed in order to truncate to 8 bit.  */
 | 
        
           |  |  | 1940 |  264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               uint8_t len;
 | 
        
           |  |  | 1941 |  265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               len = (uint8_t) n; 
 | 
        
           |  |  | 1942 |  266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1943 |  267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****               asm volatile (
 | 
        
           |  |  | 1944 |  268:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "mov __zero_reg__,%2"      CR_TAB
 | 
        
           |  |  | 1945 |  269:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                    XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 | 
        
           |  |  | 1946 |  270:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 | 
        
           |  |  | 1947 |  271:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 | 
        
           |  |  | 1948 |  272:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "r"  (len),
 | 
        
           |  |  | 1949 |  273:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                   "z"  (pointer_ram)
 | 
        
           |  |  | 1950 |  274:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****                 : "memory");
 | 
        
           |  |  | 1951 |  275:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****             }
 | 
        
           |  |  | 1952 |  276:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****         }
 | 
        
           |  |  | 1953 |  277:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     }
 | 
        
           |  |  | 1954 |  278:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
 | 
        
           |  |  | 1955 |  279:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1956 |  280:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 | 
        
           |  |  | 1957 |  281:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****     Write a byte \c value to EEPROM address \c addr. */
 | 
        
           |  |  | 1958 |  282:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** 
 | 
        
           |  |  | 1959 |  283:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void 
 | 
        
           |  |  | 1960 |  284:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
 | 
        
           |  |  | 1961 |  285:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
 | 
        
           |  |  | 1962 |  286:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****   asm volatile (
 | 
        
           |  |  | 1963 |  917               		.stabn	68,0,286,.LM114-UIMgr_processReceivedData
 | 
        
           |  |  | 1964 |  918               	.LM114:
 | 
        
           |  |  | 1965 |  919 035c D901      		movw r26,r18
 | 
        
           |  |  | 1966 |  920               	/* #APP */
 | 
        
           |  |  | 1967 |  921 035e 0E2E      		mov __tmp_reg__,r30
 | 
        
           |  |  | 1968 |  922 0360 00D0      		rcall __eeprom_write_byte_1C1D1E
 | 
        
           |  |  | 1969 |  923               	/* #NOAPP */
 | 
        
           |  |  | 1970 |  924               	.LBE33:
 | 
        
           |  |  | 1971 |  925               	.LBE32:
 | 
        
           |  |  | 1972 |  926               	.LBB34:
 | 
        
           |  |  | 1973 |  927               	.LBB35:
 | 
        
           |  |  | 1974 |  928               		.stabn	68,0,192,.LM115-UIMgr_processReceivedData
 | 
        
           |  |  | 1975 |  929               	.LM115:
 | 
        
           |  |  | 1976 |  930 0362 D901      		movw r26,r18
 | 
        
           |  |  | 1977 |  931               	/* #APP */
 | 
        
           |  |  | 1978 |  932 0364 00D0      		rcall __eeprom_read_byte_1C1D1E
 | 
        
           |  |  | 1979 |  933 0366 802D      		mov r24,__tmp_reg__
 | 
        
           |  |  | 1980 |  934               	/* #NOAPP */
 | 
        
           | 174 | kaklik | 1981 | GAS LISTING /tmp/cct6zTlg.s 			page 34
 | 
        
           | 151 | kaklik | 1982 |   | 
        
           |  |  | 1983 |   | 
        
           |  |  | 1984 |  935               	.LBE35:
 | 
        
           |  |  | 1985 |  936               	.LBE34:
 | 
        
           |  |  | 1986 |  937               		.stabs	"UIMgr.c",132,0,0,.Ltext4
 | 
        
           |  |  | 1987 |  938               	.Ltext4:
 | 
        
           |  |  | 1988 |  939               		.stabn	68,0,384,.LM116-UIMgr_processReceivedData
 | 
        
           |  |  | 1989 |  940               	.LM116:
 | 
        
           |  |  | 1990 |  941 0368 9881      		ld r25,Y
 | 
        
           |  |  | 1991 |  942 036a 9817      		cp r25,r24
 | 
        
           |  |  | 1992 |  943 036c 79F0      		breq .L95
 | 
        
           |  |  | 1993 |  944               	.LBB36:
 | 
        
           |  |  | 1994 |  945               	.LBB37:
 | 
        
           |  |  | 1995 |  946               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext5
 | 
        
           |  |  | 1996 |  947               	.Ltext5:
 | 
        
           |  |  | 1997 |  948               		.stabn	68,0,286,.LM117-UIMgr_processReceivedData
 | 
        
           |  |  | 1998 |  949               	.LM117:
 | 
        
           |  |  | 1999 |  950 036e D901      		movw r26,r18
 | 
        
           |  |  | 2000 |  951               	/* #APP */
 | 
        
           |  |  | 2001 |  952 0370 092E      		mov __tmp_reg__,r25
 | 
        
           |  |  | 2002 |  953 0372 00D0      		rcall __eeprom_write_byte_1C1D1E
 | 
        
           |  |  | 2003 |  954               	/* #NOAPP */
 | 
        
           |  |  | 2004 |  955               	.LBE37:
 | 
        
           |  |  | 2005 |  956               	.LBE36:
 | 
        
           |  |  | 2006 |  957               	.LBB38:
 | 
        
           |  |  | 2007 |  958               	.LBB39:
 | 
        
           |  |  | 2008 |  959               		.stabn	68,0,192,.LM118-UIMgr_processReceivedData
 | 
        
           |  |  | 2009 |  960               	.LM118:
 | 
        
           |  |  | 2010 |  961 0374 D901      		movw r26,r18
 | 
        
           |  |  | 2011 |  962               	/* #APP */
 | 
        
           |  |  | 2012 |  963 0376 00D0      		rcall __eeprom_read_byte_1C1D1E
 | 
        
           |  |  | 2013 |  964 0378 802D      		mov r24,__tmp_reg__
 | 
        
           |  |  | 2014 |  965               	/* #NOAPP */
 | 
        
           |  |  | 2015 |  966               	.LBE39:
 | 
        
           |  |  | 2016 |  967               	.LBE38:
 | 
        
           |  |  | 2017 |  968               		.stabs	"UIMgr.c",132,0,0,.Ltext6
 | 
        
           |  |  | 2018 |  969               	.Ltext6:
 | 
        
           |  |  | 2019 |  970               		.stabn	68,0,384,.LM119-UIMgr_processReceivedData
 | 
        
           |  |  | 2020 |  971               	.LM119:
 | 
        
           |  |  | 2021 |  972 037a 9881      		ld r25,Y
 | 
        
           |  |  | 2022 |  973 037c 9817      		cp r25,r24
 | 
        
           |  |  | 2023 |  974 037e 31F0      		breq .L95
 | 
        
           |  |  | 2024 |  975               	.LBB40:
 | 
        
           |  |  | 2025 |  976               	.LBB41:
 | 
        
           |  |  | 2026 |  977               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext7
 | 
        
           |  |  | 2027 |  978               	.Ltext7:
 | 
        
           |  |  | 2028 |  979               		.stabn	68,0,286,.LM120-UIMgr_processReceivedData
 | 
        
           |  |  | 2029 |  980               	.LM120:
 | 
        
           |  |  | 2030 |  981 0380 D901      		movw r26,r18
 | 
        
           |  |  | 2031 |  982               	/* #APP */
 | 
        
           |  |  | 2032 |  983 0382 092E      		mov __tmp_reg__,r25
 | 
        
           |  |  | 2033 |  984 0384 00D0      		rcall __eeprom_write_byte_1C1D1E
 | 
        
           |  |  | 2034 |  985               	/* #NOAPP */
 | 
        
           |  |  | 2035 |  986               	.LBE41:
 | 
        
           |  |  | 2036 |  987               	.LBE40:
 | 
        
           |  |  | 2037 |  988               	.LBB42:
 | 
        
           |  |  | 2038 |  989               	.LBB43:
 | 
        
           |  |  | 2039 |  990               		.stabn	68,0,192,.LM121-UIMgr_processReceivedData
 | 
        
           |  |  | 2040 |  991               	.LM121:
 | 
        
           | 174 | kaklik | 2041 | GAS LISTING /tmp/cct6zTlg.s 			page 35
 | 
        
           | 151 | kaklik | 2042 |   | 
        
           |  |  | 2043 |   | 
        
           |  |  | 2044 |  992 0386 D901      		movw r26,r18
 | 
        
           |  |  | 2045 |  993               	/* #APP */
 | 
        
           |  |  | 2046 |  994 0388 00D0      		rcall __eeprom_read_byte_1C1D1E
 | 
        
           |  |  | 2047 |  995 038a 802D      		mov r24,__tmp_reg__
 | 
        
           |  |  | 2048 |  996               	/* #NOAPP */
 | 
        
           |  |  | 2049 |  997               	.L95:
 | 
        
           |  |  | 2050 |  998               	.LBE43:
 | 
        
           |  |  | 2051 |  999               	.LBE42:
 | 
        
           |  |  | 2052 |  1000               		.stabs	"UIMgr.c",132,0,0,.Ltext8
 | 
        
           |  |  | 2053 |  1001               	.Ltext8:
 | 
        
           |  |  | 2054 |  1002               		.stabn	68,0,367,.LM122-UIMgr_processReceivedData
 | 
        
           |  |  | 2055 |  1003               	.LM122:
 | 
        
           |  |  | 2056 |  1004 038c 4F5F      		subi r20,lo8(-(1))
 | 
        
           |  |  | 2057 |  1005 038e 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 2058 |  1006 0392 4817      		cp r20,r24
 | 
        
           |  |  | 2059 |  1007 0394 88F2      		brlo .L94
 | 
        
           |  |  | 2060 |  1008               	.L73:
 | 
        
           |  |  | 2061 |  1009               	.LBE29:
 | 
        
           |  |  | 2062 |  1010               	.LBE28:
 | 
        
           |  |  | 2063 |  1011               		.stabn	68,0,235,.LM123-UIMgr_processReceivedData
 | 
        
           |  |  | 2064 |  1012               	.LM123:
 | 
        
           |  |  | 2065 |  1013 0396 1092 0000 		sts tokenCount,__zero_reg__
 | 
        
           |  |  | 2066 |  1014               		.stabn	68,0,236,.LM124-UIMgr_processReceivedData
 | 
        
           |  |  | 2067 |  1015               	.LM124:
 | 
        
           |  |  | 2068 |  1016 039a 80E4      		ldi r24,lo8(64)
 | 
        
           |  |  | 2069 |  1017 039c E0E0      		ldi r30,lo8(tokenBuffer)
 | 
        
           |  |  | 2070 |  1018 039e F0E0      		ldi r31,hi8(tokenBuffer)
 | 
        
           |  |  | 2071 |  1019 03a0 1192      		st Z+,__zero_reg__
 | 
        
           |  |  | 2072 |  1020 03a2 8A95      	        dec r24
 | 
        
           |  |  | 2073 |  1021 03a4 E9F7      		brne .-6
 | 
        
           |  |  | 2074 |  1022 03a6 3FC0      		rjmp .L119
 | 
        
           |  |  | 2075 |  1023               	.L66:
 | 
        
           |  |  | 2076 |  1024               		.stabn	68,0,238,.LM125-UIMgr_processReceivedData
 | 
        
           |  |  | 2077 |  1025               	.LM125:
 | 
        
           |  |  | 2078 |  1026 03a8 9032      		cpi r25,lo8(32)
 | 
        
           |  |  | 2079 |  1027 03aa F1F4      		brne .L99
 | 
        
           |  |  | 2080 |  1028               		.stabn	68,0,241,.LM126-UIMgr_processReceivedData
 | 
        
           |  |  | 2081 |  1029               	.LM126:
 | 
        
           |  |  | 2082 |  1030 03ac 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 2083 |  1031 03b0 8823      		tst r24
 | 
        
           |  |  | 2084 |  1032 03b2 39F4      		brne .L101
 | 
        
           |  |  | 2085 |  1033               		.stabn	68,0,243,.LM127-UIMgr_processReceivedData
 | 
        
           |  |  | 2086 |  1034               	.LM127:
 | 
        
           |  |  | 2087 |  1035 03b4 8FDE      		rcall UIMgr_convertTokenToCmd
 | 
        
           |  |  | 2088 |  1036               		.stabn	68,0,244,.LM128-UIMgr_processReceivedData
 | 
        
           |  |  | 2089 |  1037               	.LM128:
 | 
        
           |  |  | 2090 |  1038 03b6 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 2091 |  1039 03ba 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 2092 |  1040 03bc 8093 0000 		sts tokenCount,r24
 | 
        
           |  |  | 2093 |  1041 03c0 32C0      		rjmp .L119
 | 
        
           |  |  | 2094 |  1042               	.L101:
 | 
        
           |  |  | 2095 |  1043               		.stabn	68,0,254,.LM129-UIMgr_processReceivedData
 | 
        
           |  |  | 2096 |  1044               	.LM129:
 | 
        
           |  |  | 2097 |  1045 03c2 9927      		clr r25
 | 
        
           |  |  | 2098 |  1046 03c4 CF97      		sbiw r24,63
 | 
        
           |  |  | 2099 |  1047 03c6 4CF0      		brlt .L103
 | 
        
           |  |  | 2100 |  1048               		.stabn	68,0,259,.LM130-UIMgr_processReceivedData
 | 
        
           | 174 | kaklik | 2101 | GAS LISTING /tmp/cct6zTlg.s 			page 36
 | 
        
           | 151 | kaklik | 2102 |   | 
        
           |  |  | 2103 |   | 
        
           |  |  | 2104 |  1049               	.LM130:
 | 
        
           |  |  | 2105 |  1050 03c8 1092 0000 		sts charCount,__zero_reg__
 | 
        
           |  |  | 2106 |  1051               		.stabn	68,0,260,.LM131-UIMgr_processReceivedData
 | 
        
           |  |  | 2107 |  1052               	.LM131:
 | 
        
           |  |  | 2108 |  1053 03cc 1092 0000 		sts charIndex,__zero_reg__
 | 
        
           |  |  | 2109 |  1054               		.stabn	68,0,261,.LM132-UIMgr_processReceivedData
 | 
        
           |  |  | 2110 |  1055               	.LM132:
 | 
        
           |  |  | 2111 |  1056 03d0 1092 0000 		sts tokenCount,__zero_reg__
 | 
        
           |  |  | 2112 |  1057               		.stabn	68,0,262,.LM133-UIMgr_processReceivedData
 | 
        
           |  |  | 2113 |  1058               	.LM133:
 | 
        
           |  |  | 2114 |  1059 03d4 F092 0000 		sts receivedCmd,r15
 | 
        
           |  |  | 2115 |  1060 03d8 26C0      		rjmp .L119
 | 
        
           |  |  | 2116 |  1061               	.L103:
 | 
        
           |  |  | 2117 |  1062               		.stabn	68,0,267,.LM134-UIMgr_processReceivedData
 | 
        
           |  |  | 2118 |  1063               	.LM134:
 | 
        
           |  |  | 2119 |  1064 03da F6DE      		rcall UIMgr_convertTokenToValue
 | 
        
           |  |  | 2120 |  1065               		.stabn	68,0,268,.LM135-UIMgr_processReceivedData
 | 
        
           |  |  | 2121 |  1066               	.LM135:
 | 
        
           |  |  | 2122 |  1067 03dc 8091 0000 		lds r24,tokenCount
 | 
        
           |  |  | 2123 |  1068 03e0 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 2124 |  1069 03e2 8093 0000 		sts tokenCount,r24
 | 
        
           |  |  | 2125 |  1070 03e6 1FC0      		rjmp .L119
 | 
        
           |  |  | 2126 |  1071               	.L99:
 | 
        
           |  |  | 2127 |  1072               		.stabn	68,0,272,.LM136-UIMgr_processReceivedData
 | 
        
           |  |  | 2128 |  1073               	.LM136:
 | 
        
           |  |  | 2129 |  1074 03e8 892F      		mov r24,r25
 | 
        
           |  |  | 2130 |  1075 03ea 8154      		subi r24,lo8(-(-65))
 | 
        
           |  |  | 2131 |  1076 03ec 8A31      		cpi r24,lo8(26)
 | 
        
           |  |  | 2132 |  1077 03ee 18F0      		brlo .L105
 | 
        
           |  |  | 2133 |  1078 03f0 8F5E      		subi r24,lo8(-(17))
 | 
        
           |  |  | 2134 |  1079 03f2 8A30      		cpi r24,lo8(10)
 | 
        
           |  |  | 2135 |  1080 03f4 B0F4      		brsh .L107
 | 
        
           |  |  | 2136 |  1081               	.L105:
 | 
        
           |  |  | 2137 |  1082               		.stabn	68,0,276,.LM137-UIMgr_processReceivedData
 | 
        
           |  |  | 2138 |  1083               	.LM137:
 | 
        
           |  |  | 2139 |  1084 03f6 8091 0000 		lds r24,charIndex
 | 
        
           |  |  | 2140 |  1085 03fa E82F      		mov r30,r24
 | 
        
           |  |  | 2141 |  1086 03fc FF27      		clr r31
 | 
        
           |  |  | 2142 |  1087 03fe E050      		subi r30,lo8(-(asciiTokenBuffer))
 | 
        
           |  |  | 2143 |  1088 0400 F040      		sbci r31,hi8(-(asciiTokenBuffer))
 | 
        
           |  |  | 2144 |  1089 0402 9083      		st Z,r25
 | 
        
           |  |  | 2145 |  1090               		.stabn	68,0,277,.LM138-UIMgr_processReceivedData
 | 
        
           |  |  | 2146 |  1091               	.LM138:
 | 
        
           |  |  | 2147 |  1092 0404 9091 0000 		lds r25,charCount
 | 
        
           |  |  | 2148 |  1093 0408 9F5F      		subi r25,lo8(-(1))
 | 
        
           |  |  | 2149 |  1094 040a 9093 0000 		sts charCount,r25
 | 
        
           |  |  | 2150 |  1095               		.stabn	68,0,278,.LM139-UIMgr_processReceivedData
 | 
        
           |  |  | 2151 |  1096               	.LM139:
 | 
        
           |  |  | 2152 |  1097 040e 8F5F      		subi r24,lo8(-(1))
 | 
        
           |  |  | 2153 |  1098 0410 8093 0000 		sts charIndex,r24
 | 
        
           |  |  | 2154 |  1099               		.stabn	68,0,279,.LM140-UIMgr_processReceivedData
 | 
        
           |  |  | 2155 |  1100               	.LM140:
 | 
        
           |  |  | 2156 |  1101 0414 9430      		cpi r25,lo8(4)
 | 
        
           |  |  | 2157 |  1102 0416 38F0      		brlo .L119
 | 
        
           |  |  | 2158 |  1103               		.stabn	68,0,284,.LM141-UIMgr_processReceivedData
 | 
        
           |  |  | 2159 |  1104               	.LM141:
 | 
        
           |  |  | 2160 |  1105 0418 F092 0000 		sts receivedCmd,r15
 | 
        
           | 174 | kaklik | 2161 | GAS LISTING /tmp/cct6zTlg.s 			page 37
 | 
        
           | 151 | kaklik | 2162 |   | 
        
           |  |  | 2163 |   | 
        
           |  |  | 2164 |  1106               		.stabn	68,0,285,.LM142-UIMgr_processReceivedData
 | 
        
           |  |  | 2165 |  1107               	.LM142:
 | 
        
           |  |  | 2166 |  1108 041c 1092 0000 		sts charIndex,__zero_reg__
 | 
        
           |  |  | 2167 |  1109 0420 02C0      		rjmp .L119
 | 
        
           |  |  | 2168 |  1110               	.L107:
 | 
        
           |  |  | 2169 |  1111               		.stabn	68,0,291,.LM143-UIMgr_processReceivedData
 | 
        
           |  |  | 2170 |  1112               	.LM143:
 | 
        
           |  |  | 2171 |  1113 0422 F092 0000 		sts receivedCmd,r15
 | 
        
           |  |  | 2172 |  1114               	.L119:
 | 
        
           |  |  | 2173 |  1115               		.stabn	68,0,199,.LM144-UIMgr_processReceivedData
 | 
        
           |  |  | 2174 |  1116               	.LM144:
 | 
        
           |  |  | 2175 |  1117 0426 2091 0000 		lds r18,UIMgr_rxFifoTail
 | 
        
           |  |  | 2176 |  1118 042a 8091 0000 		lds r24,UIMgr_rxFifoHead
 | 
        
           |  |  | 2177 |  1119 042e 8217      		cp r24,r18
 | 
        
           |  |  | 2178 |  1120 0430 09F0      		breq .+2
 | 
        
           |  |  | 2179 |  1121 0432 FACE      		rjmp .L65
 | 
        
           |  |  | 2180 |  1122               		.stabn	68,0,295,.LM145-UIMgr_processReceivedData
 | 
        
           |  |  | 2181 |  1123               	.LM145:
 | 
        
           |  |  | 2182 |  1124               	/* #APP */
 | 
        
           |  |  | 2183 |  1125 0434 E894      		clt
 | 
        
           |  |  | 2184 |  1126               	/* #NOAPP */
 | 
        
           |  |  | 2185 |  1127               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 2186 |  1128 0436 DF91      		pop r29
 | 
        
           |  |  | 2187 |  1129 0438 CF91      		pop r28
 | 
        
           |  |  | 2188 |  1130 043a 1F91      		pop r17
 | 
        
           |  |  | 2189 |  1131 043c 0F91      		pop r16
 | 
        
           |  |  | 2190 |  1132 043e FF90      		pop r15
 | 
        
           |  |  | 2191 |  1133 0440 0895      		ret
 | 
        
           |  |  | 2192 |  1134               	/* epilogue end (size=6) */
 | 
        
           |  |  | 2193 |  1135               	/* function UIMgr_processReceivedData size 297 (286) */
 | 
        
           |  |  | 2194 |  1136               		.size	UIMgr_processReceivedData, .-UIMgr_processReceivedData
 | 
        
           |  |  | 2195 |  1137               		.stabs	"tmpData:r(0,11)",64,0,194,25
 | 
        
           |  |  | 2196 |  1138               		.stabn	192,0,0,UIMgr_processReceivedData-UIMgr_processReceivedData
 | 
        
           |  |  | 2197 |  1139               		.stabs	"dataByte:r(0,11)",64,0,609,25
 | 
        
           |  |  | 2198 |  1140               		.stabn	192,0,0,.LBB23-UIMgr_processReceivedData
 | 
        
           |  |  | 2199 |  1141               		.stabn	224,0,0,.LBE23-UIMgr_processReceivedData
 | 
        
           |  |  | 2200 |  1142               		.stabn	224,0,0,.Lscope9-UIMgr_processReceivedData
 | 
        
           |  |  | 2201 |  1143               	.Lscope9:
 | 
        
           |  |  | 2202 |  1144               		.stabs	"",36,0,0,.Lscope9-UIMgr_processReceivedData
 | 
        
           |  |  | 2203 |  1145               		.stabd	78,0,0
 | 
        
           |  |  | 2204 |  1146               		.stabs	"UIMgr_dispatchEvent:F(0,15)",36,0,152,UIMgr_dispatchEvent
 | 
        
           |  |  | 2205 |  1147               		.stabs	"event:P(0,11)",64,0,151,24
 | 
        
           |  |  | 2206 |  1148               	.global	UIMgr_dispatchEvent
 | 
        
           |  |  | 2207 |  1149               		.type	UIMgr_dispatchEvent, @function
 | 
        
           |  |  | 2208 |  1150               	UIMgr_dispatchEvent:
 | 
        
           |  |  | 2209 |  1151               		.stabd	46,0,0
 | 
        
           |  |  | 2210 |  1152               		.stabn	68,0,152,.LM146-UIMgr_dispatchEvent
 | 
        
           |  |  | 2211 |  1153               	.LM146:
 | 
        
           |  |  | 2212 |  1154               	/* prologue: frame size=0 */
 | 
        
           |  |  | 2213 |  1155               	/* prologue end (size=0) */
 | 
        
           |  |  | 2214 |  1156               		.stabn	68,0,153,.LM147-UIMgr_dispatchEvent
 | 
        
           |  |  | 2215 |  1157               	.LM147:
 | 
        
           |  |  | 2216 |  1158 0442 8031      		cpi r24,lo8(16)
 | 
        
           |  |  | 2217 |  1159 0444 29F0      		breq .L123
 | 
        
           |  |  | 2218 |  1160               		.stabn	68,0,153,.LM148-UIMgr_dispatchEvent
 | 
        
           |  |  | 2219 |  1161               	.LM148:
 | 
        
           |  |  | 2220 |  1162 0446 8039      		cpi r24,lo8(-112)
 | 
        
           | 174 | kaklik | 2221 | GAS LISTING /tmp/cct6zTlg.s 			page 38
 | 
        
           | 151 | kaklik | 2222 |   | 
        
           |  |  | 2223 |   | 
        
           |  |  | 2224 |  1163 0448 39F0      		breq .L124
 | 
        
           |  |  | 2225 |  1164 044a 8130      		cpi r24,lo8(1)
 | 
        
           |  |  | 2226 |  1165 044c 31F4      		brne .L125
 | 
        
           |  |  | 2227 |  1166 044e 02C0      		rjmp .L122
 | 
        
           |  |  | 2228 |  1167               	.L123:
 | 
        
           |  |  | 2229 |  1168               		.stabn	68,0,156,.LM149-UIMgr_dispatchEvent
 | 
        
           |  |  | 2230 |  1169               	.LM149:
 | 
        
           |  |  | 2231 |  1170 0450 38DE      		rcall UIMgr_transmitPendingData
 | 
        
           |  |  | 2232 |  1171 0452 0895      		ret
 | 
        
           |  |  | 2233 |  1172               	.L122:
 | 
        
           |  |  | 2234 |  1173               		.stabn	68,0,160,.LM150-UIMgr_dispatchEvent
 | 
        
           |  |  | 2235 |  1174               	.LM150:
 | 
        
           |  |  | 2236 |  1175 0454 DFDE      		rcall UIMgr_processReceivedData
 | 
        
           |  |  | 2237 |  1176 0456 0895      		ret
 | 
        
           |  |  | 2238 |  1177               	.L124:
 | 
        
           |  |  | 2239 |  1178               		.stabn	68,0,164,.LM151-UIMgr_dispatchEvent
 | 
        
           |  |  | 2240 |  1179               	.LM151:
 | 
        
           |  |  | 2241 |  1180 0458 0EDE      		rcall UIMgr_flushTxBuffer
 | 
        
           |  |  | 2242 |  1181               	.L125:
 | 
        
           |  |  | 2243 |  1182 045a 0895      		ret
 | 
        
           |  |  | 2244 |  1183               	/* epilogue: frame size=0 */
 | 
        
           |  |  | 2245 |  1184               	/* epilogue: noreturn */
 | 
        
           |  |  | 2246 |  1185               	/* epilogue end (size=0) */
 | 
        
           |  |  | 2247 |  1186               	/* function UIMgr_dispatchEvent size 13 (13) */
 | 
        
           |  |  | 2248 |  1187               		.size	UIMgr_dispatchEvent, .-UIMgr_dispatchEvent
 | 
        
           |  |  | 2249 |  1188               	.Lscope10:
 | 
        
           |  |  | 2250 |  1189               		.stabs	"",36,0,0,.Lscope10-UIMgr_dispatchEvent
 | 
        
           |  |  | 2251 |  1190               		.stabd	78,0,0
 | 
        
           |  |  | 2252 |  1191               	.global	UIMgr_rxFifoHead
 | 
        
           |  |  | 2253 |  1192               	.global	UIMgr_rxFifoHead
 | 
        
           |  |  | 2254 |  1193               		.section .bss
 | 
        
           |  |  | 2255 |  1194               		.type	UIMgr_rxFifoHead, @object
 | 
        
           |  |  | 2256 |  1195               		.size	UIMgr_rxFifoHead, 1
 | 
        
           |  |  | 2257 |  1196               	UIMgr_rxFifoHead:
 | 
        
           |  |  | 2258 |  1197 0000 00        		.skip 1,0
 | 
        
           |  |  | 2259 |  1198               	.global	UIMgr_rxFifoTail
 | 
        
           |  |  | 2260 |  1199               	.global	UIMgr_rxFifoTail
 | 
        
           |  |  | 2261 |  1200               		.type	UIMgr_rxFifoTail, @object
 | 
        
           |  |  | 2262 |  1201               		.size	UIMgr_rxFifoTail, 1
 | 
        
           |  |  | 2263 |  1202               	UIMgr_rxFifoTail:
 | 
        
           |  |  | 2264 |  1203 0001 00        		.skip 1,0
 | 
        
           |  |  | 2265 |  1204               	.global	UIMgr_txFifoHead
 | 
        
           |  |  | 2266 |  1205               	.global	UIMgr_txFifoHead
 | 
        
           |  |  | 2267 |  1206               		.type	UIMgr_txFifoHead, @object
 | 
        
           |  |  | 2268 |  1207               		.size	UIMgr_txFifoHead, 1
 | 
        
           |  |  | 2269 |  1208               	UIMgr_txFifoHead:
 | 
        
           |  |  | 2270 |  1209 0002 00        		.skip 1,0
 | 
        
           |  |  | 2271 |  1210               	.global	UIMgr_txFifoTail
 | 
        
           |  |  | 2272 |  1211               	.global	UIMgr_txFifoTail
 | 
        
           |  |  | 2273 |  1212               		.type	UIMgr_txFifoTail, @object
 | 
        
           |  |  | 2274 |  1213               		.size	UIMgr_txFifoTail, 1
 | 
        
           |  |  | 2275 |  1214               	UIMgr_txFifoTail:
 | 
        
           |  |  | 2276 |  1215 0003 00        		.skip 1,0
 | 
        
           |  |  | 2277 |  1216               		.lcomm tokenCount,1
 | 
        
           |  |  | 2278 |  1217               		.data
 | 
        
           |  |  | 2279 |  1218               		.type	receivedCmd, @object
 | 
        
           |  |  | 2280 |  1219               		.size	receivedCmd, 1
 | 
        
           | 174 | kaklik | 2281 | GAS LISTING /tmp/cct6zTlg.s 			page 39
 | 
        
           | 151 | kaklik | 2282 |   | 
        
           |  |  | 2283 |   | 
        
           |  |  | 2284 |  1220               	receivedCmd:
 | 
        
           |  |  | 2285 |  1221 0000 08        		.byte	8
 | 
        
           |  |  | 2286 |  1222               		.lcomm charCount,1
 | 
        
           |  |  | 2287 |  1223               		.lcomm charIndex,1
 | 
        
           |  |  | 2288 |  1224               		.type	AVRcamVersion, @object
 | 
        
           |  |  | 2289 |  1225               		.size	AVRcamVersion, 13
 | 
        
           |  |  | 2290 |  1226               	AVRcamVersion:
 | 
        
           |  |  | 2291 |  1227 0001 4156 5263 		.string	"AVRcam v1.4\r"
 | 
        
           |  |  | 2292 |  1227      616D 2076 
 | 
        
           |  |  | 2293 |  1227      312E 340D 
 | 
        
           |  |  | 2294 |  1227      00
 | 
        
           |  |  | 2295 |  1228               		.lcomm asciiTokenBuffer,4
 | 
        
           |  |  | 2296 |  1229               		.lcomm tokenBuffer,64
 | 
        
           |  |  | 2297 |  1230               		.comm UIMgr_rxFifo,32,1
 | 
        
           |  |  | 2298 |  1231               		.comm UIMgr_txFifo,64,1
 | 
        
           |  |  | 2299 |  1232               		.stabs	"charCount:S(0,11)",38,0,92,charCount
 | 
        
           |  |  | 2300 |  1233               		.stabs	"charIndex:S(0,11)",38,0,93,charIndex
 | 
        
           |  |  | 2301 |  1234               		.stabs	"asciiTokenBuffer:S(0,21)=ar(0,22)=r(0,22);0;0177777;;0;3;(0,11)",40,0,94,asciiTokenBuffer
 | 
        
           |  |  | 2302 |  1235               		.stabs	"tokenCount:S(0,11)",38,0,95,tokenCount
 | 
        
           |  |  | 2303 |  1236               		.stabs	"tokenBuffer:S(0,23)=ar(0,22);0;63;(0,11)",40,0,96,tokenBuffer
 | 
        
           |  |  | 2304 |  1237               		.stabs	"receivedCmd:S(0,17)",38,0,97,receivedCmd
 | 
        
           |  |  | 2305 |  1238               		.stabs	"AVRcamVersion:S(0,24)=ar(0,22);0;12;(0,11)",38,0,98,AVRcamVersion
 | 
        
           |  |  | 2306 |  1239               		.stabs	"UIMgr_rxFifo:G(0,25)=ar(0,22);0;31;(0,11)",32,0,111,0
 | 
        
           |  |  | 2307 |  1240               		.stabs	"UIMgr_rxFifoHead:G(0,11)",32,0,112,0
 | 
        
           |  |  | 2308 |  1241               		.stabs	"UIMgr_rxFifoTail:G(0,11)",32,0,113,0
 | 
        
           |  |  | 2309 |  1242               		.stabs	"UIMgr_txFifo:G(0,23)",32,0,115,0
 | 
        
           |  |  | 2310 |  1243               		.stabs	"UIMgr_txFifoHead:G(0,11)",32,0,116,0
 | 
        
           |  |  | 2311 |  1244               		.stabs	"UIMgr_txFifoTail:G(0,11)",32,0,117,0
 | 
        
           |  |  | 2312 |  1245               		.text
 | 
        
           |  |  | 2313 |  1246               		.stabs	"",100,0,0,.Letext0
 | 
        
           |  |  | 2314 |  1247               	.Letext0:
 | 
        
           |  |  | 2315 |  1248               	/* File "UIMgr.c": code  582 = 0x0246 ( 557), prologues   9, epilogues  16 */
 | 
        
           | 174 | kaklik | 2316 | GAS LISTING /tmp/cct6zTlg.s 			page 40
 | 
        
           | 151 | kaklik | 2317 |   | 
        
           |  |  | 2318 |   | 
        
           |  |  | 2319 | DEFINED SYMBOLS
 | 
        
           |  |  | 2320 |                             *ABS*:00000000 UIMgr.c
 | 
        
           | 174 | kaklik | 2321 |      /tmp/cct6zTlg.s:3      *ABS*:0000003f __SREG__
 | 
        
           |  |  | 2322 |      /tmp/cct6zTlg.s:4      *ABS*:0000003e __SP_H__
 | 
        
           |  |  | 2323 |      /tmp/cct6zTlg.s:5      *ABS*:0000003d __SP_L__
 | 
        
           |  |  | 2324 |      /tmp/cct6zTlg.s:6      *ABS*:00000000 __tmp_reg__
 | 
        
           |  |  | 2325 |      /tmp/cct6zTlg.s:7      *ABS*:00000001 __zero_reg__
 | 
        
           |  |  | 2326 |      /tmp/cct6zTlg.s:94     .text:00000000 UIMgr_writeBufferToTxFifo
 | 
        
           | 151 | kaklik | 2327 |                             *COM*:00000040 UIMgr_txFifo
 | 
        
           | 174 | kaklik | 2328 |      /tmp/cct6zTlg.s:1208   .bss:00000002 UIMgr_txFifoHead
 | 
        
           |  |  | 2329 |      /tmp/cct6zTlg.s:159    .text:0000003c UIMgr_readTxFifo
 | 
        
           |  |  | 2330 |      /tmp/cct6zTlg.s:1214   .bss:00000003 UIMgr_txFifoTail
 | 
        
           |  |  | 2331 |      /tmp/cct6zTlg.s:206    .text:0000005a UIMgr_writeTxFifo
 | 
        
           |  |  | 2332 |      /tmp/cct6zTlg.s:246    .text:00000076 UIMgr_flushTxBuffer
 | 
        
           |  |  | 2333 |      /tmp/cct6zTlg.s:284    .text:00000094 UIMgr_txBuffer
 | 
        
           |  |  | 2334 |      /tmp/cct6zTlg.s:333    .text:000000c2 UIMgr_transmitPendingData
 | 
        
           |  |  | 2335 |      /tmp/cct6zTlg.s:361    .text:000000d4 UIMgr_convertTokenToCmd
 | 
        
           |  |  | 2336 |      /tmp/cct6zTlg.s:1223   .bss:00000007 asciiTokenBuffer
 | 
        
           |  |  | 2337 |      /tmp/cct6zTlg.s:1220   .data:00000000 receivedCmd
 | 
        
           |  |  | 2338 |      /tmp/cct6zTlg.s:1222   .bss:00000006 charIndex
 | 
        
           |  |  | 2339 |      /tmp/cct6zTlg.s:1216   .bss:00000005 charCount
 | 
        
           |  |  | 2340 |      /tmp/cct6zTlg.s:503    .text:00000192 UIMgr_init
 | 
        
           |  |  | 2341 |      /tmp/cct6zTlg.s:1228   .bss:0000000b tokenBuffer
 | 
        
           | 151 | kaklik | 2342 |                             *COM*:00000020 UIMgr_rxFifo
 | 
        
           | 174 | kaklik | 2343 |      /tmp/cct6zTlg.s:549    .text:000001c8 UIMgr_convertTokenToValue
 | 
        
           | 151 | kaklik | 2344 |                              .bss:00000004 tokenCount
 | 
        
           | 174 | kaklik | 2345 |      /tmp/cct6zTlg.s:619    .text:00000214 UIMgr_processReceivedData
 | 
        
           |  |  | 2346 |      /tmp/cct6zTlg.s:1202   .bss:00000001 UIMgr_rxFifoTail
 | 
        
           |  |  | 2347 |      /tmp/cct6zTlg.s:1226   .data:00000001 AVRcamVersion
 | 
        
           |  |  | 2348 |      /tmp/cct6zTlg.s:1196   .bss:00000000 UIMgr_rxFifoHead
 | 
        
           |  |  | 2349 |      /tmp/cct6zTlg.s:1150   .text:00000442 UIMgr_dispatchEvent
 | 
        
           | 151 | kaklik | 2350 |   | 
        
           |  |  | 2351 | UNDEFINED SYMBOLS
 | 
        
           |  |  | 2352 | __do_copy_data
 | 
        
           |  |  | 2353 | __do_clear_bss
 | 
        
           |  |  | 2354 | UartInt_txByte
 | 
        
           |  |  | 2355 | atoi
 | 
        
           |  |  | 2356 | Utility_delay
 | 
        
           |  |  | 2357 | Exec_writeEventFifo
 | 
        
           |  |  | 2358 | CamInt_resetCam
 | 
        
           |  |  | 2359 | CamConfig_setCamReg
 | 
        
           |  |  | 2360 | CamConfig_sendFifoCmds
 | 
        
           |  |  | 2361 | colorMap
 | 
        
           |  |  | 2362 | __eeprom_read_byte_1C1D1E
 | 
        
           |  |  | 2363 | __eeprom_write_byte_1C1D1E
 |