
AVRcam.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .noinit       00000030  00800300  00800300  00001182  2**0
                  ALLOC
  1 .bss          00000274  00800070  00800070  00001182  2**0
                  ALLOC
  2 .data         00000010  00800060  000010be  00001172  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  3 .text         000010be  00000000  00000000  000000b4  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 .eeprom       00000000  00810000  00810000  00001182  2**0
                  CONTENTS
  5 .stab         00003ed0  00000000  00000000  00001184  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      000017c9  00000000  00000000  00005054  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
       0:	63 c0       	rjmp	.+198    	; 0xc8 <__init>
       2:	05 c8       	rjmp	.-4086   	; 0xfffff00e <__eeprom_end+0xff7ef00e>
       4:	05 c8       	rjmp	.-4086   	; 0xfffff010 <__eeprom_end+0xff7ef010>
       6:	7a c0       	rjmp	.+244    	; 0xfc <__bad_interrupt>
       8:	79 c0       	rjmp	.+242    	; 0xfc <__bad_interrupt>
       a:	78 c0       	rjmp	.+240    	; 0xfc <__bad_interrupt>
       c:	77 c0       	rjmp	.+238    	; 0xfc <__bad_interrupt>
       e:	76 c0       	rjmp	.+236    	; 0xfc <__bad_interrupt>
      10:	00 c8       	rjmp	.-4096   	; 0xfffff012 <__eeprom_end+0xff7ef012>
      12:	74 c0       	rjmp	.+232    	; 0xfc <__bad_interrupt>
      14:	73 c0       	rjmp	.+230    	; 0xfc <__bad_interrupt>
      16:	aa c5       	rjmp	.+2900   	; 0xb6c <__vector_11>
      18:	71 c0       	rjmp	.+226    	; 0xfc <__bad_interrupt>
      1a:	70 c0       	rjmp	.+224    	; 0xfc <__bad_interrupt>
      1c:	6f c0       	rjmp	.+222    	; 0xfc <__bad_interrupt>
      1e:	6e c0       	rjmp	.+220    	; 0xfc <__bad_interrupt>
      20:	6d c0       	rjmp	.+218    	; 0xfc <__bad_interrupt>
      22:	0f c6       	rjmp	.+3102   	; 0xc42 <__vector_17>
      24:	6b c0       	rjmp	.+214    	; 0xfc <__bad_interrupt>

00000026 <__ctors_end>:
      26:	29 c6       	rjmp	.+3154   	; 0xc7a <__vector_17+0x38>
      28:	bf c6       	rjmp	.+3454   	; 0xda8 <__vector_17+0x166>
      2a:	be c6       	rjmp	.+3452   	; 0xda8 <__vector_17+0x166>
      2c:	bd c6       	rjmp	.+3450   	; 0xda8 <__vector_17+0x166>
      2e:	bc c6       	rjmp	.+3448   	; 0xda8 <__vector_17+0x166>
      30:	bb c6       	rjmp	.+3446   	; 0xda8 <__vector_17+0x166>
      32:	ba c6       	rjmp	.+3444   	; 0xda8 <__vector_17+0x166>
      34:	b9 c6       	rjmp	.+3442   	; 0xda8 <__vector_17+0x166>
      36:	21 c6       	rjmp	.+3138   	; 0xc7a <__vector_17+0x38>
      38:	b7 c6       	rjmp	.+3438   	; 0xda8 <__vector_17+0x166>
      3a:	b6 c6       	rjmp	.+3436   	; 0xda8 <__vector_17+0x166>
      3c:	b5 c6       	rjmp	.+3434   	; 0xda8 <__vector_17+0x166>
      3e:	b4 c6       	rjmp	.+3432   	; 0xda8 <__vector_17+0x166>
      40:	b3 c6       	rjmp	.+3430   	; 0xda8 <__vector_17+0x166>
      42:	b2 c6       	rjmp	.+3428   	; 0xda8 <__vector_17+0x166>
      44:	b1 c6       	rjmp	.+3426   	; 0xda8 <__vector_17+0x166>
      46:	31 c6       	rjmp	.+3170   	; 0xcaa <__vector_17+0x68>
      48:	af c6       	rjmp	.+3422   	; 0xda8 <__vector_17+0x166>
      4a:	ae c6       	rjmp	.+3420   	; 0xda8 <__vector_17+0x166>
      4c:	ad c6       	rjmp	.+3418   	; 0xda8 <__vector_17+0x166>
      4e:	ac c6       	rjmp	.+3416   	; 0xda8 <__vector_17+0x166>
      50:	ab c6       	rjmp	.+3414   	; 0xda8 <__vector_17+0x166>
      52:	aa c6       	rjmp	.+3412   	; 0xda8 <__vector_17+0x166>
      54:	a9 c6       	rjmp	.+3410   	; 0xda8 <__vector_17+0x166>
      56:	3a c6       	rjmp	.+3188   	; 0xccc <__vector_17+0x8a>
      58:	a7 c6       	rjmp	.+3406   	; 0xda8 <__vector_17+0x166>
      5a:	a6 c6       	rjmp	.+3404   	; 0xda8 <__vector_17+0x166>
      5c:	a5 c6       	rjmp	.+3402   	; 0xda8 <__vector_17+0x166>
      5e:	a4 c6       	rjmp	.+3400   	; 0xda8 <__vector_17+0x166>
      60:	a3 c6       	rjmp	.+3398   	; 0xda8 <__vector_17+0x166>
      62:	a2 c6       	rjmp	.+3396   	; 0xda8 <__vector_17+0x166>
      64:	a1 c6       	rjmp	.+3394   	; 0xda8 <__vector_17+0x166>
      66:	3b c6       	rjmp	.+3190   	; 0xcde <__vector_17+0x9c>
      68:	9f c6       	rjmp	.+3390   	; 0xda8 <__vector_17+0x166>
      6a:	9e c6       	rjmp	.+3388   	; 0xda8 <__vector_17+0x166>
      6c:	9d c6       	rjmp	.+3386   	; 0xda8 <__vector_17+0x166>
      6e:	9c c6       	rjmp	.+3384   	; 0xda8 <__vector_17+0x166>
      70:	9b c6       	rjmp	.+3382   	; 0xda8 <__vector_17+0x166>
      72:	9a c6       	rjmp	.+3380   	; 0xda8 <__vector_17+0x166>
      74:	99 c6       	rjmp	.+3378   	; 0xda8 <__vector_17+0x166>
      76:	54 c6       	rjmp	.+3240   	; 0xd20 <__vector_17+0xde>
      78:	97 c6       	rjmp	.+3374   	; 0xda8 <__vector_17+0x166>
      7a:	96 c6       	rjmp	.+3372   	; 0xda8 <__vector_17+0x166>
      7c:	95 c6       	rjmp	.+3370   	; 0xda8 <__vector_17+0x166>
      7e:	94 c6       	rjmp	.+3368   	; 0xda8 <__vector_17+0x166>
      80:	93 c6       	rjmp	.+3366   	; 0xda8 <__vector_17+0x166>
      82:	92 c6       	rjmp	.+3364   	; 0xda8 <__vector_17+0x166>
      84:	91 c6       	rjmp	.+3362   	; 0xda8 <__vector_17+0x166>
      86:	90 c6       	rjmp	.+3360   	; 0xda8 <__vector_17+0x166>
      88:	8f c6       	rjmp	.+3358   	; 0xda8 <__vector_17+0x166>
      8a:	8e c6       	rjmp	.+3356   	; 0xda8 <__vector_17+0x166>
      8c:	8d c6       	rjmp	.+3354   	; 0xda8 <__vector_17+0x166>
      8e:	8c c6       	rjmp	.+3352   	; 0xda8 <__vector_17+0x166>
      90:	8b c6       	rjmp	.+3350   	; 0xda8 <__vector_17+0x166>
      92:	8a c6       	rjmp	.+3348   	; 0xda8 <__vector_17+0x166>
      94:	89 c6       	rjmp	.+3346   	; 0xda8 <__vector_17+0x166>
      96:	4d c6       	rjmp	.+3226   	; 0xd32 <__vector_17+0xf0>
      98:	87 c6       	rjmp	.+3342   	; 0xda8 <__vector_17+0x166>
      9a:	86 c6       	rjmp	.+3340   	; 0xda8 <__vector_17+0x166>
      9c:	85 c6       	rjmp	.+3338   	; 0xda8 <__vector_17+0x166>
      9e:	84 c6       	rjmp	.+3336   	; 0xda8 <__vector_17+0x166>
      a0:	83 c6       	rjmp	.+3334   	; 0xda8 <__vector_17+0x166>
      a2:	82 c6       	rjmp	.+3332   	; 0xda8 <__vector_17+0x166>
      a4:	81 c6       	rjmp	.+3330   	; 0xda8 <__vector_17+0x166>
      a6:	12 c6       	rjmp	.+3108   	; 0xccc <__vector_17+0x8a>
      a8:	7f c6       	rjmp	.+3326   	; 0xda8 <__vector_17+0x166>
      aa:	7e c6       	rjmp	.+3324   	; 0xda8 <__vector_17+0x166>
      ac:	7d c6       	rjmp	.+3322   	; 0xda8 <__vector_17+0x166>
      ae:	7c c6       	rjmp	.+3320   	; 0xda8 <__vector_17+0x166>
      b0:	7b c6       	rjmp	.+3318   	; 0xda8 <__vector_17+0x166>
      b2:	7a c6       	rjmp	.+3316   	; 0xda8 <__vector_17+0x166>
      b4:	79 c6       	rjmp	.+3314   	; 0xda8 <__vector_17+0x166>
      b6:	4e c6       	rjmp	.+3228   	; 0xd54 <__vector_17+0x112>
      b8:	77 c6       	rjmp	.+3310   	; 0xda8 <__vector_17+0x166>
      ba:	76 c6       	rjmp	.+3308   	; 0xda8 <__vector_17+0x166>
      bc:	75 c6       	rjmp	.+3306   	; 0xda8 <__vector_17+0x166>
      be:	74 c6       	rjmp	.+3304   	; 0xda8 <__vector_17+0x166>
      c0:	73 c6       	rjmp	.+3302   	; 0xda8 <__vector_17+0x166>
      c2:	72 c6       	rjmp	.+3300   	; 0xda8 <__vector_17+0x166>
      c4:	71 c6       	rjmp	.+3298   	; 0xda8 <__vector_17+0x166>
      c6:	62 c6       	rjmp	.+3268   	; 0xd8c <__vector_17+0x14a>

000000c8 <__init>:
      c8:	11 24       	eor	r1, r1
      ca:	1f be       	out	0x3f, r1	; 63
      cc:	cf e5       	ldi	r28, 0x5F	; 95
      ce:	d4 e0       	ldi	r29, 0x04	; 4
      d0:	de bf       	out	0x3e, r29	; 62
      d2:	cd bf       	out	0x3d, r28	; 61

000000d4 <__do_copy_data>:
      d4:	10 e0       	ldi	r17, 0x00	; 0
      d6:	a0 e6       	ldi	r26, 0x60	; 96
      d8:	b0 e0       	ldi	r27, 0x00	; 0
      da:	ee eb       	ldi	r30, 0xBE	; 190
      dc:	f0 e1       	ldi	r31, 0x10	; 16
      de:	02 c0       	rjmp	.+4      	; 0xe4 <.do_copy_data_start>

000000e0 <.do_copy_data_loop>:
      e0:	05 90       	lpm	r0, Z+
      e2:	0d 92       	st	X+, r0

000000e4 <.do_copy_data_start>:
      e4:	a0 37       	cpi	r26, 0x70	; 112
      e6:	b1 07       	cpc	r27, r17
      e8:	d9 f7       	brne	.-10     	; 0xe0 <.do_copy_data_loop>

000000ea <__do_clear_bss>:
      ea:	12 e0       	ldi	r17, 0x02	; 2
      ec:	a0 e7       	ldi	r26, 0x70	; 112
      ee:	b0 e0       	ldi	r27, 0x00	; 0
      f0:	01 c0       	rjmp	.+2      	; 0xf4 <.do_clear_bss_start>

000000f2 <.do_clear_bss_loop>:
      f2:	1d 92       	st	X+, r1

000000f4 <.do_clear_bss_start>:
      f4:	a4 3e       	cpi	r26, 0xE4	; 228
      f6:	b1 07       	cpc	r27, r17
      f8:	e1 f7       	brne	.-8      	; 0xf2 <.do_clear_bss_loop>
      fa:	30 c0       	rjmp	.+96     	; 0x15c <main>

000000fc <__bad_interrupt>:
      fc:	91 c7       	rjmp	.+3874   	; 0x1020 <__vector_default>

000000fe <CamInt_resetCam>:
    output the clock signal.  Thus, if we reset the cam, the
    AVR has no clock, and thus doesn't run...
***********************************************************/	
void CamInt_resetCam(void)
{
      fe:	08 95       	ret

00000100 <CamInt_init>:
     100:	8f 9a       	sbi	0x11, 7	; 17
     102:	8f 9a       	sbi	0x11, 7	; 17
     104:	8a 98       	cbi	0x11, 2	; 17
     106:	97 98       	cbi	0x12, 7	; 18
     108:	87 b3       	in	r24, 0x17	; 23
     10a:	80 7f       	andi	r24, 0xF0	; 240
     10c:	87 bb       	out	0x17, r24	; 23
     10e:	87 b3       	in	r24, 0x17	; 23
     110:	80 6f       	ori	r24, 0xF0	; 240
     112:	87 bb       	out	0x17, r24	; 23
     114:	84 b3       	in	r24, 0x14	; 20
     116:	80 7f       	andi	r24, 0xF0	; 240
     118:	84 bb       	out	0x14, r24	; 20
     11a:	8e b5       	in	r24, 0x2e	; 46
     11c:	88 7f       	andi	r24, 0xF8	; 248
     11e:	8e bd       	out	0x2e, r24	; 46
     120:	85 b7       	in	r24, 0x35	; 53
     122:	8c 60       	ori	r24, 0x0C	; 12
     124:	85 bf       	out	0x35, r24	; 53
     126:	85 b7       	in	r24, 0x35	; 53
     128:	83 60       	ori	r24, 0x03	; 3
     12a:	85 bf       	out	0x35, r24	; 53
     12c:	8b b7       	in	r24, 0x3b	; 59
     12e:	80 64       	ori	r24, 0x40	; 64
     130:	8b bf       	out	0x3b, r24	; 59
     132:	86 e0       	ldi	r24, 0x06	; 6
     134:	83 bf       	out	0x33, r24	; 51
     136:	85 b7       	in	r24, 0x35	; 53
     138:	8f 78       	andi	r24, 0x8F	; 143
     13a:	85 bf       	out	0x35, r24	; 53
     13c:	85 b7       	in	r24, 0x35	; 53
     13e:	80 68       	ori	r24, 0x80	; 128
     140:	85 bf       	out	0x35, r24	; 53
     142:	e0 e0       	ldi	r30, 0x00	; 0
     144:	f3 e0       	ldi	r31, 0x03	; 3
     146:	80 e3       	ldi	r24, 0x30	; 48
     148:	df 01       	movw	r26, r30
     14a:	98 2f       	mov	r25, r24
     14c:	1d 92       	st	X+, r1
     14e:	9a 95       	dec	r25
     150:	e9 f7       	brne	.-6      	; 0x14c <CamInt_init+0x4c>
              /* Needed in order to truncate to 8 bit.  */
              uint8_t len;
              len = (uint8_t) n; 

              asm volatile (
     152:	a1 e0       	ldi	r26, 0x01	; 1
     154:	b0 e0       	ldi	r27, 0x00	; 0
     156:	18 2e       	mov	r1, r24
     158:	a0 d7       	rcall	.+3904   	; 0x109a <__eeprom_read_block_1C1D1E>
     15a:	08 95       	ret

0000015c <main>:
	Inputs:  none
	Outputs: int
***********************************************************/	
int main(void)
{
     15c:	cf e5       	ldi	r28, 0x5F	; 95
     15e:	d4 e0       	ldi	r29, 0x04	; 4
     160:	de bf       	out	0x3e, r29	; 62
     162:	cd bf       	out	0x3d, r28	; 61
	/* initialize all of the interface modules */
	DebugInt_init();
     164:	cf d6       	rcall	.+3486   	; 0xf04 <DebugInt_init>
	UartInt_init();
     166:	f4 d4       	rcall	.+2536   	; 0xb50 <UartInt_init>
	I2CInt_init();
     168:	2b d5       	rcall	.+2646   	; 0xbc0 <I2CInt_init>
	CamInt_init();
     16a:	ca df       	rcall	.-108    	; 0x100 <CamInt_init>
	
	/* initialize the remaining modules that will process
	data...interrupts need to be on for these */
	ENABLE_INTS();
     16c:	78 94       	sei
	CamConfig_init(); 
     16e:	7e d6       	rcall	.+3324   	; 0xe6c <CamConfig_init>
	UIMgr_init();
     170:	8a d3       	rcall	.+1812   	; 0x886 <UIMgr_init>
	FrameMgr_init();
     172:	37 d2       	rcall	.+1134   	; 0x5e2 <FrameMgr_init>
    
	/* provide a short delay for the camera to stabilize before
	we let the executive start up */
	Utility_delay(1000);
     174:	88 ee       	ldi	r24, 0xE8	; 232
     176:	93 e0       	ldi	r25, 0x03	; 3
     178:	8a d6       	rcall	.+3348   	; 0xe8e <Utility_delay>
	
	/* the rest of the application will be under the
	control of the Executive.  */
	Exec_run();	
     17a:	11 d0       	rcall	.+34     	; 0x19e <Exec_run>
	
	/* this should never be reached */
	return(0);
}
     17c:	80 e0       	ldi	r24, 0x00	; 0
     17e:	90 e0       	ldi	r25, 0x00	; 0
     180:	9d c7       	rjmp	.+3898   	; 0x10bc <_exit>

00000182 <Exec_writeEventFifo>:

     182:	f8 94       	cli
     184:	90 91 70 00 	lds	r25, 0x0070
     188:	ec e6       	ldi	r30, 0x6C	; 108
     18a:	f2 e0       	ldi	r31, 0x02	; 2
     18c:	e9 0f       	add	r30, r25
     18e:	f1 1d       	adc	r31, r1
     190:	80 83       	st	Z, r24
     192:	9f 5f       	subi	r25, 0xFF	; 255
     194:	97 70       	andi	r25, 0x07	; 7
     196:	90 93 70 00 	sts	0x0070, r25
     19a:	78 94       	sei
     19c:	08 95       	ret

0000019e <Exec_run>:
     19e:	80 91 72 00 	lds	r24, 0x0072
     1a2:	88 23       	and	r24, r24
     1a4:	99 f0       	breq	.+38     	; 0x1cc <Exec_run+0x2e>
     1a6:	80 ff       	sbrs	r24, 0
     1a8:	07 c0       	rjmp	.+14     	; 0x1b8 <Exec_run+0x1a>
     1aa:	f8 94       	cli
     1ac:	8e 7f       	andi	r24, 0xFE	; 254
     1ae:	80 93 72 00 	sts	0x0072, r24
     1b2:	78 94       	sei
     1b4:	b6 d0       	rcall	.+364    	; 0x322 <FrameMgr_processLine>
     1b6:	ff d2       	rcall	.+1534   	; 0x7b6 <UIMgr_transmitPendingData>
     1b8:	80 91 72 00 	lds	r24, 0x0072
     1bc:	81 ff       	sbrs	r24, 1
     1be:	06 c0       	rjmp	.+12     	; 0x1cc <Exec_run+0x2e>
     1c0:	f8 94       	cli
     1c2:	8d 7f       	andi	r24, 0xFD	; 253
     1c4:	80 93 72 00 	sts	0x0072, r24
     1c8:	78 94       	sei
     1ca:	12 d2       	rcall	.+1060   	; 0x5f0 <FrameMgr_acquireLine>
     1cc:	20 91 71 00 	lds	r18, 0x0071
     1d0:	80 91 70 00 	lds	r24, 0x0070
     1d4:	82 17       	cp	r24, r18
     1d6:	19 f3       	breq	.-58     	; 0x19e <Exec_run>
     1d8:	f8 94       	cli
     1da:	e2 2f       	mov	r30, r18
     1dc:	ff 27       	eor	r31, r31
     1de:	e4 59       	subi	r30, 0x94	; 148
     1e0:	fd 4f       	sbci	r31, 0xFD	; 253
     1e2:	90 81       	ld	r25, Z
     1e4:	82 2f       	mov	r24, r18
     1e6:	8f 5f       	subi	r24, 0xFF	; 255
     1e8:	87 70       	andi	r24, 0x07	; 7
     1ea:	80 93 71 00 	sts	0x0071, r24
     1ee:	78 94       	sei
     1f0:	89 2f       	mov	r24, r25
     1f2:	99 27       	eor	r25, r25
     1f4:	80 31       	cpi	r24, 0x10	; 16
     1f6:	31 f1       	breq	.+76     	; 0x244 <Exec_run+0xa6>
     1f8:	81 31       	cpi	r24, 0x11	; 17
     1fa:	68 f4       	brcc	.+26     	; 0x216 <Exec_run+0x78>
     1fc:	82 30       	cpi	r24, 0x02	; 2
     1fe:	c9 f0       	breq	.+50     	; 0x232 <Exec_run+0x94>
     200:	83 30       	cpi	r24, 0x03	; 3
     202:	18 f4       	brcc	.+6      	; 0x20a <Exec_run+0x6c>
     204:	81 30       	cpi	r24, 0x01	; 1
     206:	59 f6       	brne	.-106    	; 0x19e <Exec_run>
     208:	2b c0       	rjmp	.+86     	; 0x260 <Exec_run+0xc2>
     20a:	84 30       	cpi	r24, 0x04	; 4
     20c:	31 f1       	breq	.+76     	; 0x25a <Exec_run+0xbc>
     20e:	88 30       	cpi	r24, 0x08	; 8
     210:	09 f0       	breq	.+2      	; 0x214 <Exec_run+0x76>
     212:	c5 cf       	rjmp	.-118    	; 0x19e <Exec_run>
     214:	1f c0       	rjmp	.+62     	; 0x254 <Exec_run+0xb6>
     216:	80 38       	cpi	r24, 0x80	; 128
     218:	79 f0       	breq	.+30     	; 0x238 <Exec_run+0x9a>
     21a:	81 38       	cpi	r24, 0x81	; 129
     21c:	20 f4       	brcc	.+8      	; 0x226 <Exec_run+0x88>
     21e:	80 32       	cpi	r24, 0x20	; 32
     220:	09 f0       	breq	.+2      	; 0x224 <Exec_run+0x86>
     222:	bd cf       	rjmp	.-134    	; 0x19e <Exec_run>
     224:	14 c0       	rjmp	.+40     	; 0x24e <Exec_run+0xb0>
     226:	81 38       	cpi	r24, 0x81	; 129
     228:	51 f0       	breq	.+20     	; 0x23e <Exec_run+0xa0>
     22a:	80 39       	cpi	r24, 0x90	; 144
     22c:	09 f0       	breq	.+2      	; 0x230 <Exec_run+0x92>
     22e:	b7 cf       	rjmp	.-146    	; 0x19e <Exec_run>
     230:	1c c0       	rjmp	.+56     	; 0x26a <Exec_run+0xcc>
     232:	82 e0       	ldi	r24, 0x02	; 2
     234:	2e d2       	rcall	.+1116   	; 0x692 <FrameMgr_dispatchEvent>
     236:	b3 cf       	rjmp	.-154    	; 0x19e <Exec_run>
     238:	80 e8       	ldi	r24, 0x80	; 128
     23a:	2b d2       	rcall	.+1110   	; 0x692 <FrameMgr_dispatchEvent>
     23c:	b0 cf       	rjmp	.-160    	; 0x19e <Exec_run>
     23e:	81 e8       	ldi	r24, 0x81	; 129
     240:	28 d2       	rcall	.+1104   	; 0x692 <FrameMgr_dispatchEvent>
     242:	ad cf       	rjmp	.-166    	; 0x19e <Exec_run>
     244:	80 e1       	ldi	r24, 0x10	; 16
     246:	25 d2       	rcall	.+1098   	; 0x692 <FrameMgr_dispatchEvent>
     248:	80 e1       	ldi	r24, 0x10	; 16
     24a:	75 d4       	rcall	.+2282   	; 0xb36 <UIMgr_dispatchEvent>
     24c:	a8 cf       	rjmp	.-176    	; 0x19e <Exec_run>
     24e:	80 e2       	ldi	r24, 0x20	; 32
     250:	20 d2       	rcall	.+1088   	; 0x692 <FrameMgr_dispatchEvent>
     252:	a5 cf       	rjmp	.-182    	; 0x19e <Exec_run>
     254:	88 e0       	ldi	r24, 0x08	; 8
     256:	1d d2       	rcall	.+1082   	; 0x692 <FrameMgr_dispatchEvent>
     258:	a2 cf       	rjmp	.-188    	; 0x19e <Exec_run>
     25a:	84 e0       	ldi	r24, 0x04	; 4
     25c:	1a d2       	rcall	.+1076   	; 0x692 <FrameMgr_dispatchEvent>
     25e:	9f cf       	rjmp	.-194    	; 0x19e <Exec_run>
     260:	81 e0       	ldi	r24, 0x01	; 1
     262:	69 d4       	rcall	.+2258   	; 0xb36 <UIMgr_dispatchEvent>
     264:	81 e0       	ldi	r24, 0x01	; 1
     266:	15 d2       	rcall	.+1066   	; 0x692 <FrameMgr_dispatchEvent>
     268:	9a cf       	rjmp	.-204    	; 0x19e <Exec_run>
     26a:	80 e9       	ldi	r24, 0x90	; 144
     26c:	64 d4       	rcall	.+2248   	; 0xb36 <UIMgr_dispatchEvent>
     26e:	97 cf       	rjmp	.-210    	; 0x19e <Exec_run>

00000270 <FrameMgr_processFrame>:
     270:	df 92       	push	r13
     272:	ef 92       	push	r14
     274:	ff 92       	push	r15
     276:	0f 93       	push	r16
     278:	1f 93       	push	r17
     27a:	cf 93       	push	r28
     27c:	df 93       	push	r29
     27e:	20 91 60 00 	lds	r18, 0x0060
     282:	30 91 61 00 	lds	r19, 0x0061
     286:	80 91 73 00 	lds	r24, 0x0073
     28a:	88 23       	and	r24, r24
     28c:	09 f4       	brne	.+2      	; 0x290 <FrameMgr_processFrame+0x20>
     28e:	3f c0       	rjmp	.+126    	; 0x30e <FrameMgr_processFrame+0x9e>
     290:	e9 01       	movw	r28, r18
     292:	8a e0       	ldi	r24, 0x0A	; 10
     294:	5c d2       	rcall	.+1208   	; 0x74e <UIMgr_writeTxFifo>
     296:	80 91 73 00 	lds	r24, 0x0073
     29a:	59 d2       	rcall	.+1202   	; 0x74e <UIMgr_writeTxFifo>
     29c:	dd 24       	eor	r13, r13
     29e:	8f 81       	ldd	r24, Y+7	; 0x07
     2a0:	81 30       	cpi	r24, 0x01	; 1
     2a2:	69 f5       	brne	.+90     	; 0x2fe <FrameMgr_processFrame+0x8e>
     2a4:	88 81       	ld	r24, Y
     2a6:	80 38       	cpi	r24, 0x80	; 128
     2a8:	e1 f0       	breq	.+56     	; 0x2e2 <FrameMgr_processFrame+0x72>
     2aa:	80 34       	cpi	r24, 0x40	; 64
     2ac:	11 f4       	brne	.+4      	; 0x2b2 <FrameMgr_processFrame+0x42>
     2ae:	81 e0       	ldi	r24, 0x01	; 1
     2b0:	19 c0       	rjmp	.+50     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2b2:	80 32       	cpi	r24, 0x20	; 32
     2b4:	11 f4       	brne	.+4      	; 0x2ba <FrameMgr_processFrame+0x4a>
     2b6:	82 e0       	ldi	r24, 0x02	; 2
     2b8:	15 c0       	rjmp	.+42     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2ba:	80 31       	cpi	r24, 0x10	; 16
     2bc:	11 f4       	brne	.+4      	; 0x2c2 <FrameMgr_processFrame+0x52>
     2be:	83 e0       	ldi	r24, 0x03	; 3
     2c0:	11 c0       	rjmp	.+34     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2c2:	88 30       	cpi	r24, 0x08	; 8
     2c4:	11 f4       	brne	.+4      	; 0x2ca <FrameMgr_processFrame+0x5a>
     2c6:	84 e0       	ldi	r24, 0x04	; 4
     2c8:	0d c0       	rjmp	.+26     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2ca:	84 30       	cpi	r24, 0x04	; 4
     2cc:	11 f4       	brne	.+4      	; 0x2d2 <FrameMgr_processFrame+0x62>
     2ce:	85 e0       	ldi	r24, 0x05	; 5
     2d0:	09 c0       	rjmp	.+18     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2d2:	82 30       	cpi	r24, 0x02	; 2
     2d4:	11 f4       	brne	.+4      	; 0x2da <FrameMgr_processFrame+0x6a>
     2d6:	86 e0       	ldi	r24, 0x06	; 6
     2d8:	05 c0       	rjmp	.+10     	; 0x2e4 <FrameMgr_processFrame+0x74>
     2da:	81 30       	cpi	r24, 0x01	; 1
     2dc:	11 f4       	brne	.+4      	; 0x2e2 <FrameMgr_processFrame+0x72>
     2de:	87 e0       	ldi	r24, 0x07	; 7
     2e0:	01 c0       	rjmp	.+2      	; 0x2e4 <FrameMgr_processFrame+0x74>
     2e2:	80 e0       	ldi	r24, 0x00	; 0
     2e4:	1b 81       	ldd	r17, Y+3	; 0x03
     2e6:	0c 81       	ldd	r16, Y+4	; 0x04
     2e8:	fd 80       	ldd	r15, Y+5	; 0x05
     2ea:	ee 80       	ldd	r14, Y+6	; 0x06
     2ec:	30 d2       	rcall	.+1120   	; 0x74e <UIMgr_writeTxFifo>
     2ee:	81 2f       	mov	r24, r17
     2f0:	2e d2       	rcall	.+1116   	; 0x74e <UIMgr_writeTxFifo>
     2f2:	80 2f       	mov	r24, r16
     2f4:	2c d2       	rcall	.+1112   	; 0x74e <UIMgr_writeTxFifo>
     2f6:	8f 2d       	mov	r24, r15
     2f8:	2a d2       	rcall	.+1108   	; 0x74e <UIMgr_writeTxFifo>
     2fa:	8e 2d       	mov	r24, r14
     2fc:	28 d2       	rcall	.+1104   	; 0x74e <UIMgr_writeTxFifo>
     2fe:	d3 94       	inc	r13
     300:	88 e0       	ldi	r24, 0x08	; 8
     302:	d8 16       	cp	r13, r24
     304:	11 f0       	breq	.+4      	; 0x30a <FrameMgr_processFrame+0x9a>
     306:	28 96       	adiw	r28, 0x08	; 8
     308:	ca cf       	rjmp	.-108    	; 0x29e <FrameMgr_processFrame+0x2e>
     30a:	8f ef       	ldi	r24, 0xFF	; 255
     30c:	20 d2       	rcall	.+1088   	; 0x74e <UIMgr_writeTxFifo>
     30e:	84 e0       	ldi	r24, 0x04	; 4
     310:	38 df       	rcall	.-400    	; 0x182 <Exec_writeEventFifo>
     312:	df 91       	pop	r29
     314:	cf 91       	pop	r28
     316:	1f 91       	pop	r17
     318:	0f 91       	pop	r16
     31a:	ff 90       	pop	r15
     31c:	ef 90       	pop	r14
     31e:	df 90       	pop	r13
     320:	08 95       	ret

00000322 <FrameMgr_processLine>:
     322:	2f 92       	push	r2
     324:	3f 92       	push	r3
     326:	4f 92       	push	r4
     328:	5f 92       	push	r5
     32a:	6f 92       	push	r6
     32c:	7f 92       	push	r7
     32e:	8f 92       	push	r8
     330:	9f 92       	push	r9
     332:	af 92       	push	r10
     334:	bf 92       	push	r11
     336:	cf 92       	push	r12
     338:	df 92       	push	r13
     33a:	ef 92       	push	r14
     33c:	ff 92       	push	r15
     33e:	0f 93       	push	r16
     340:	1f 93       	push	r17
     342:	cf 93       	push	r28
     344:	df 93       	push	r29
     346:	cd b7       	in	r28, 0x3d	; 61
     348:	de b7       	in	r29, 0x3e	; 62
     34a:	21 97       	sbiw	r28, 0x01	; 1
     34c:	0f b6       	in	r0, 0x3f	; 63
     34e:	f8 94       	cli
     350:	de bf       	out	0x3e, r29	; 62
     352:	0f be       	out	0x3f, r0	; 63
     354:	cd bf       	out	0x3d, r28	; 61
     356:	00 91 60 00 	lds	r16, 0x0060
     35a:	10 91 61 00 	lds	r17, 0x0061
     35e:	80 91 74 00 	lds	r24, 0x0074
     362:	82 30       	cpi	r24, 0x02	; 2
     364:	09 f0       	breq	.+2      	; 0x368 <FrameMgr_processLine+0x46>
     366:	6a c0       	rjmp	.+212    	; 0x43c <FrameMgr_processLine+0x11a>
     368:	8b e0       	ldi	r24, 0x0B	; 11
     36a:	fc d3       	rcall	.+2040   	; 0xb64 <UartInt_txByte>
     36c:	80 91 75 00 	lds	r24, 0x0075
     370:	f9 d3       	rcall	.+2034   	; 0xb64 <UartInt_txByte>
     372:	0f 2e       	mov	r0, r31
     374:	fc eb       	ldi	r31, 0xBC	; 188
     376:	cf 2e       	mov	r12, r31
     378:	f1 e0       	ldi	r31, 0x01	; 1
     37a:	df 2e       	mov	r13, r31
     37c:	f0 2d       	mov	r31, r0
     37e:	00 e0       	ldi	r16, 0x00	; 0
     380:	10 e0       	ldi	r17, 0x00	; 0
     382:	0f 2e       	mov	r0, r31
     384:	fc e0       	ldi	r31, 0x0C	; 12
     386:	ef 2e       	mov	r14, r31
     388:	f1 e0       	ldi	r31, 0x01	; 1
     38a:	ff 2e       	mov	r15, r31
     38c:	f0 2d       	mov	r31, r0
     38e:	f6 01       	movw	r30, r12
     390:	80 81       	ld	r24, Z
     392:	89 83       	std	Y+1, r24	; 0x01
     394:	89 81       	ldd	r24, Y+1	; 0x01
     396:	8f 70       	andi	r24, 0x0F	; 15
     398:	89 83       	std	Y+1, r24	; 0x01
     39a:	89 81       	ldd	r24, Y+1	; 0x01
     39c:	82 95       	swap	r24
     39e:	80 7f       	andi	r24, 0xF0	; 240
     3a0:	89 83       	std	Y+1, r24	; 0x01
     3a2:	99 81       	ldd	r25, Y+1	; 0x01
     3a4:	f7 01       	movw	r30, r14
     3a6:	80 81       	ld	r24, Z
     3a8:	8f 70       	andi	r24, 0x0F	; 15
     3aa:	89 2b       	or	r24, r25
     3ac:	89 83       	std	Y+1, r24	; 0x01
     3ae:	89 81       	ldd	r24, Y+1	; 0x01
     3b0:	d9 d3       	rcall	.+1970   	; 0xb64 <UartInt_txByte>
     3b2:	d8 01       	movw	r26, r16
     3b4:	11 96       	adiw	r26, 0x01	; 1
     3b6:	fd 01       	movw	r30, r26
     3b8:	e4 5f       	subi	r30, 0xF4	; 244
     3ba:	fe 4f       	sbci	r31, 0xFE	; 254
     3bc:	80 81       	ld	r24, Z
     3be:	89 83       	std	Y+1, r24	; 0x01
     3c0:	89 81       	ldd	r24, Y+1	; 0x01
     3c2:	8f 70       	andi	r24, 0x0F	; 15
     3c4:	89 83       	std	Y+1, r24	; 0x01
     3c6:	89 81       	ldd	r24, Y+1	; 0x01
     3c8:	82 95       	swap	r24
     3ca:	80 7f       	andi	r24, 0xF0	; 240
     3cc:	89 83       	std	Y+1, r24	; 0x01
     3ce:	99 81       	ldd	r25, Y+1	; 0x01
     3d0:	a4 54       	subi	r26, 0x44	; 68
     3d2:	be 4f       	sbci	r27, 0xFE	; 254
     3d4:	8c 91       	ld	r24, X
     3d6:	8f 70       	andi	r24, 0x0F	; 15
     3d8:	89 2b       	or	r24, r25
     3da:	89 83       	std	Y+1, r24	; 0x01
     3dc:	89 81       	ldd	r24, Y+1	; 0x01
     3de:	c2 d3       	rcall	.+1924   	; 0xb64 <UartInt_txByte>
     3e0:	82 e0       	ldi	r24, 0x02	; 2
     3e2:	90 e0       	ldi	r25, 0x00	; 0
     3e4:	c8 0e       	add	r12, r24
     3e6:	d9 1e       	adc	r13, r25
     3e8:	0e 5f       	subi	r16, 0xFE	; 254
     3ea:	1f 4f       	sbci	r17, 0xFF	; 255
     3ec:	e8 0e       	add	r14, r24
     3ee:	f9 1e       	adc	r15, r25
     3f0:	00 3b       	cpi	r16, 0xB0	; 176
     3f2:	11 05       	cpc	r17, r1
     3f4:	61 f6       	brne	.-104    	; 0x38e <FrameMgr_processLine+0x6c>
     3f6:	8f e0       	ldi	r24, 0x0F	; 15
     3f8:	b5 d3       	rcall	.+1898   	; 0xb64 <UartInt_txByte>
     3fa:	80 91 75 00 	lds	r24, 0x0075
     3fe:	8f 5f       	subi	r24, 0xFF	; 255
     400:	80 93 75 00 	sts	0x0075, r24
     404:	88 34       	cpi	r24, 0x48	; 72
     406:	60 f0       	brcs	.+24     	; 0x420 <FrameMgr_processLine+0xfe>
     408:	10 92 75 00 	sts	0x0075, r1
     40c:	10 92 74 00 	sts	0x0074, r1
     410:	89 b7       	in	r24, 0x39	; 57
     412:	8b 7f       	andi	r24, 0xFB	; 251
     414:	89 bf       	out	0x39, r24	; 57
     416:	60 e0       	ldi	r22, 0x00	; 0
     418:	81 e1       	ldi	r24, 0x11	; 17
     41a:	e9 d4       	rcall	.+2514   	; 0xdee <CamConfig_setCamReg>
     41c:	ed d4       	rcall	.+2522   	; 0xdf8 <CamConfig_sendFifoCmds>
     41e:	c8 c0       	rjmp	.+400    	; 0x5b0 <__stack+0x151>
     420:	80 91 72 00 	lds	r24, 0x0072
     424:	82 60       	ori	r24, 0x02	; 2
     426:	80 93 72 00 	sts	0x0072, r24
     42a:	c2 c0       	rjmp	.+388    	; 0x5b0 <__stack+0x151>
     42c:	80 e2       	ldi	r24, 0x20	; 32
     42e:	a9 de       	rcall	.-686    	; 0x182 <Exec_writeEventFifo>
     430:	89 b7       	in	r24, 0x39	; 57
     432:	8b 7f       	andi	r24, 0xFB	; 251
     434:	89 bf       	out	0x39, r24	; 57
     436:	10 92 76 00 	sts	0x0076, r1
     43a:	ba c0       	rjmp	.+372    	; 0x5b0 <__stack+0x151>
     43c:	81 30       	cpi	r24, 0x01	; 1
     43e:	09 f0       	breq	.+2      	; 0x442 <FrameMgr_processLine+0x120>
     440:	b7 c0       	rjmp	.+366    	; 0x5b0 <__stack+0x151>
     442:	f0 90 76 00 	lds	r15, 0x0076
     446:	cf 2c       	mov	r12, r15
     448:	dd 24       	eor	r13, r13
     44a:	36 01       	movw	r6, r12
     44c:	08 94       	sec
     44e:	61 08       	sbc	r6, r1
     450:	71 08       	sbc	r7, r1
     452:	70 91 73 00 	lds	r23, 0x0073
     456:	0f 2e       	mov	r0, r31
     458:	fc eb       	ldi	r31, 0xBC	; 188
     45a:	2f 2e       	mov	r2, r31
     45c:	f1 e0       	ldi	r31, 0x01	; 1
     45e:	3f 2e       	mov	r3, r31
     460:	f0 2d       	mov	r31, r0
     462:	50 e0       	ldi	r21, 0x00	; 0
     464:	40 e0       	ldi	r20, 0x00	; 0
     466:	61 e0       	ldi	r22, 0x01	; 1
     468:	ef 2c       	mov	r14, r15
     46a:	e3 94       	inc	r14
     46c:	f1 01       	movw	r30, r2
     46e:	30 81       	ld	r19, Z
     470:	56 0f       	add	r21, r22
     472:	61 81       	ldd	r22, Z+1	; 0x01
     474:	82 e0       	ldi	r24, 0x02	; 2
     476:	90 e0       	ldi	r25, 0x00	; 0
     478:	28 0e       	add	r2, r24
     47a:	39 1e       	adc	r3, r25
     47c:	46 0f       	add	r20, r22
     47e:	33 23       	and	r19, r19
     480:	09 f4       	brne	.+2      	; 0x484 <__stack+0x25>
     482:	5c c0       	rjmp	.+184    	; 0x53c <__stack+0xdd>
     484:	64 30       	cpi	r22, 0x04	; 4
     486:	08 f4       	brcc	.+2      	; 0x48a <__stack+0x2b>
     488:	59 c0       	rjmp	.+178    	; 0x53c <__stack+0xdd>
     48a:	d8 01       	movw	r26, r16
     48c:	20 e0       	ldi	r18, 0x00	; 0
     48e:	8c 91       	ld	r24, X
     490:	38 17       	cp	r19, r24
     492:	c9 f5       	brne	.+114    	; 0x506 <__stack+0xa7>
     494:	fd 01       	movw	r30, r26
     496:	87 81       	ldd	r24, Z+7	; 0x07
     498:	81 30       	cpi	r24, 0x01	; 1
     49a:	a9 f5       	brne	.+106    	; 0x506 <__stack+0xa7>
     49c:	0f 2e       	mov	r0, r31
     49e:	f6 e0       	ldi	r31, 0x06	; 6
     4a0:	af 2e       	mov	r10, r31
     4a2:	bb 24       	eor	r11, r11
     4a4:	f0 2d       	mov	r31, r0
     4a6:	aa 0e       	add	r10, r26
     4a8:	bb 1e       	adc	r11, r27
     4aa:	86 81       	ldd	r24, Z+6	; 0x06
     4ac:	99 27       	eor	r25, r25
     4ae:	86 15       	cp	r24, r6
     4b0:	97 05       	cpc	r25, r7
     4b2:	49 f5       	brne	.+82     	; 0x506 <__stack+0xa7>
     4b4:	2d 01       	movw	r4, r26
     4b6:	08 94       	sec
     4b8:	41 1c       	adc	r4, r1
     4ba:	51 1c       	adc	r5, r1
     4bc:	81 81       	ldd	r24, Z+1	; 0x01
     4be:	88 24       	eor	r8, r8
     4c0:	99 24       	eor	r9, r9
     4c2:	68 94       	set
     4c4:	81 f8       	bld	r8, 1
     4c6:	8a 0e       	add	r8, r26
     4c8:	9b 1e       	adc	r9, r27
     4ca:	92 81       	ldd	r25, Z+2	; 0x02
     4cc:	58 17       	cp	r21, r24
     4ce:	10 f0       	brcs	.+4      	; 0x4d4 <__stack+0x75>
     4d0:	95 17       	cp	r25, r21
     4d2:	40 f4       	brcc	.+16     	; 0x4e4 <__stack+0x85>
     4d4:	48 17       	cp	r20, r24
     4d6:	10 f0       	brcs	.+4      	; 0x4dc <__stack+0x7d>
     4d8:	94 17       	cp	r25, r20
     4da:	20 f4       	brcc	.+8      	; 0x4e4 <__stack+0x85>
     4dc:	85 17       	cp	r24, r21
     4de:	98 f0       	brcs	.+38     	; 0x506 <__stack+0xa7>
     4e0:	49 17       	cp	r20, r25
     4e2:	88 f0       	brcs	.+34     	; 0x506 <__stack+0xa7>
     4e4:	f2 01       	movw	r30, r4
     4e6:	50 83       	st	Z, r21
     4e8:	f4 01       	movw	r30, r8
     4ea:	40 83       	st	Z, r20
     4ec:	fd 01       	movw	r30, r26
     4ee:	83 81       	ldd	r24, Z+3	; 0x03
     4f0:	58 17       	cp	r21, r24
     4f2:	08 f4       	brcc	.+2      	; 0x4f6 <__stack+0x97>
     4f4:	53 83       	std	Z+3, r21	; 0x03
     4f6:	fd 01       	movw	r30, r26
     4f8:	85 81       	ldd	r24, Z+5	; 0x05
     4fa:	84 17       	cp	r24, r20
     4fc:	08 f4       	brcc	.+2      	; 0x500 <__stack+0xa1>
     4fe:	45 83       	std	Z+5, r20	; 0x05
     500:	f5 01       	movw	r30, r10
     502:	f0 82       	st	Z, r15
     504:	1b c0       	rjmp	.+54     	; 0x53c <__stack+0xdd>
     506:	2f 5f       	subi	r18, 0xFF	; 255
     508:	28 30       	cpi	r18, 0x08	; 8
     50a:	09 f4       	brne	.+2      	; 0x50e <__stack+0xaf>
     50c:	4d c0       	rjmp	.+154    	; 0x5a8 <__stack+0x149>
     50e:	18 96       	adiw	r26, 0x08	; 8
     510:	be cf       	rjmp	.-132    	; 0x48e <__stack+0x2f>
     512:	d8 01       	movw	r26, r16
     514:	90 e0       	ldi	r25, 0x00	; 0
     516:	fd 01       	movw	r30, r26
     518:	87 81       	ldd	r24, Z+7	; 0x07
     51a:	88 23       	and	r24, r24
     51c:	21 f0       	breq	.+8      	; 0x526 <__stack+0xc7>
     51e:	18 96       	adiw	r26, 0x08	; 8
     520:	9f 5f       	subi	r25, 0xFF	; 255
     522:	98 30       	cpi	r25, 0x08	; 8
     524:	c1 f7       	brne	.-16     	; 0x516 <__stack+0xb7>
     526:	3c 93       	st	X, r19
     528:	fd 01       	movw	r30, r26
     52a:	51 83       	std	Z+1, r21	; 0x01
     52c:	42 83       	std	Z+2, r20	; 0x02
     52e:	53 83       	std	Z+3, r21	; 0x03
     530:	f4 82       	std	Z+4, r15	; 0x04
     532:	45 83       	std	Z+5, r20	; 0x05
     534:	f6 82       	std	Z+6, r15	; 0x06
     536:	81 e0       	ldi	r24, 0x01	; 1
     538:	87 83       	std	Z+7, r24	; 0x07
     53a:	7f 5f       	subi	r23, 0xFF	; 255
     53c:	40 3b       	cpi	r20, 0xB0	; 176
     53e:	08 f4       	brcc	.+2      	; 0x542 <__stack+0xe3>
     540:	95 cf       	rjmp	.-214    	; 0x46c <__stack+0xd>
     542:	70 93 73 00 	sts	0x0073, r23
     546:	c6 01       	movw	r24, r12
     548:	87 70       	andi	r24, 0x07	; 7
     54a:	90 70       	andi	r25, 0x00	; 0
     54c:	07 97       	sbiw	r24, 0x07	; 7
     54e:	01 f5       	brne	.+64     	; 0x590 <__stack+0x131>
     550:	d8 01       	movw	r26, r16
     552:	17 96       	adiw	r26, 0x07	; 7
     554:	40 e0       	ldi	r20, 0x00	; 0
     556:	8c 91       	ld	r24, X
     558:	81 30       	cpi	r24, 0x01	; 1
     55a:	a1 f4       	brne	.+40     	; 0x584 <__stack+0x125>
     55c:	fd 01       	movw	r30, r26
     55e:	31 97       	sbiw	r30, 0x01	; 1
     560:	90 81       	ld	r25, Z
     562:	fd 01       	movw	r30, r26
     564:	33 97       	sbiw	r30, 0x03	; 3
     566:	80 81       	ld	r24, Z
     568:	29 2f       	mov	r18, r25
     56a:	33 27       	eor	r19, r19
     56c:	f9 01       	movw	r30, r18
     56e:	e8 1b       	sub	r30, r24
     570:	f1 09       	sbc	r31, r1
     572:	33 97       	sbiw	r30, 0x03	; 3
     574:	3c f4       	brge	.+14     	; 0x584 <__stack+0x125>
     576:	c6 01       	movw	r24, r12
     578:	82 1b       	sub	r24, r18
     57a:	93 0b       	sbc	r25, r19
     57c:	03 97       	sbiw	r24, 0x03	; 3
     57e:	14 f0       	brlt	.+4      	; 0x584 <__stack+0x125>
     580:	1c 92       	st	X, r1
     582:	71 50       	subi	r23, 0x01	; 1
     584:	4f 5f       	subi	r20, 0xFF	; 255
     586:	18 96       	adiw	r26, 0x08	; 8
     588:	48 30       	cpi	r20, 0x08	; 8
     58a:	29 f7       	brne	.-54     	; 0x556 <__stack+0xf7>
     58c:	70 93 73 00 	sts	0x0073, r23
     590:	e0 92 76 00 	sts	0x0076, r14
     594:	f0 e9       	ldi	r31, 0x90	; 144
     596:	ef 16       	cp	r14, r31
     598:	09 f4       	brne	.+2      	; 0x59c <__stack+0x13d>
     59a:	48 cf       	rjmp	.-368    	; 0x42c <FrameMgr_processLine+0x10a>
     59c:	80 91 72 00 	lds	r24, 0x0072
     5a0:	82 60       	ori	r24, 0x02	; 2
     5a2:	80 93 72 00 	sts	0x0072, r24
     5a6:	04 c0       	rjmp	.+8      	; 0x5b0 <__stack+0x151>
     5a8:	78 30       	cpi	r23, 0x08	; 8
     5aa:	08 f4       	brcc	.+2      	; 0x5ae <__stack+0x14f>
     5ac:	b2 cf       	rjmp	.-156    	; 0x512 <__stack+0xb3>
     5ae:	c6 cf       	rjmp	.-116    	; 0x53c <__stack+0xdd>
     5b0:	21 96       	adiw	r28, 0x01	; 1
     5b2:	0f b6       	in	r0, 0x3f	; 63
     5b4:	f8 94       	cli
     5b6:	de bf       	out	0x3e, r29	; 62
     5b8:	0f be       	out	0x3f, r0	; 63
     5ba:	cd bf       	out	0x3d, r28	; 61
     5bc:	df 91       	pop	r29
     5be:	cf 91       	pop	r28
     5c0:	1f 91       	pop	r17
     5c2:	0f 91       	pop	r16
     5c4:	ff 90       	pop	r15
     5c6:	ef 90       	pop	r14
     5c8:	df 90       	pop	r13
     5ca:	cf 90       	pop	r12
     5cc:	bf 90       	pop	r11
     5ce:	af 90       	pop	r10
     5d0:	9f 90       	pop	r9
     5d2:	8f 90       	pop	r8
     5d4:	7f 90       	pop	r7
     5d6:	6f 90       	pop	r6
     5d8:	5f 90       	pop	r5
     5da:	4f 90       	pop	r4
     5dc:	3f 90       	pop	r3
     5de:	2f 90       	pop	r2
     5e0:	08 95       	ret

000005e2 <FrameMgr_init>:
     5e2:	80 e4       	ldi	r24, 0x40	; 64
     5e4:	e8 e7       	ldi	r30, 0x78	; 120
     5e6:	f0 e0       	ldi	r31, 0x00	; 0
     5e8:	11 92       	st	Z+, r1
     5ea:	8a 95       	dec	r24
     5ec:	e9 f7       	brne	.-6      	; 0x5e8 <FrameMgr_init+0x6>
     5ee:	08 95       	ret

000005f0 <FrameMgr_acquireLine>:
     5f0:	80 91 74 00 	lds	r24, 0x0074
     5f4:	82 30       	cpi	r24, 0x02	; 2
     5f6:	49 f5       	brne	.+82     	; 0x64a <FrameMgr_acquireLine+0x5a>
     5f8:	80 91 75 00 	lds	r24, 0x0075
     5fc:	28 2f       	mov	r18, r24
     5fe:	22 0f       	add	r18, r18
     600:	80 eb       	ldi	r24, 0xB0	; 176
     602:	ec eb       	ldi	r30, 0xBC	; 188
     604:	f1 e0       	ldi	r31, 0x01	; 1
     606:	98 2f       	mov	r25, r24
     608:	11 92       	st	Z+, r1
     60a:	9a 95       	dec	r25
     60c:	e9 f7       	brne	.-6      	; 0x608 <FrameMgr_acquireLine+0x18>
     60e:	ec e0       	ldi	r30, 0x0C	; 12
     610:	f1 e0       	ldi	r31, 0x01	; 1
     612:	11 92       	st	Z+, r1
     614:	8a 95       	dec	r24
     616:	e9 f7       	brne	.-6      	; 0x612 <FrameMgr_acquireLine+0x22>
     618:	82 9b       	sbis	0x10, 2	; 16
     61a:	fe cf       	rjmp	.-4      	; 0x618 <FrameMgr_acquireLine+0x28>
     61c:	82 9b       	sbis	0x10, 2	; 16
     61e:	07 c0       	rjmp	.+14     	; 0x62e <FrameMgr_acquireLine+0x3e>
     620:	fd cf       	rjmp	.-6      	; 0x61c <FrameMgr_acquireLine+0x2c>
     622:	90 e0       	ldi	r25, 0x00	; 0
     624:	84 9b       	sbis	0x10, 4	; 16
     626:	fe cf       	rjmp	.-4      	; 0x624 <FrameMgr_acquireLine+0x34>
     628:	84 9b       	sbis	0x10, 4	; 16
     62a:	04 c0       	rjmp	.+8      	; 0x634 <FrameMgr_acquireLine+0x44>
     62c:	fd cf       	rjmp	.-6      	; 0x628 <FrameMgr_acquireLine+0x38>
     62e:	22 23       	and	r18, r18
     630:	c1 f7       	brne	.-16     	; 0x622 <FrameMgr_acquireLine+0x32>
     632:	05 c0       	rjmp	.+10     	; 0x63e <FrameMgr_acquireLine+0x4e>
     634:	91 50       	subi	r25, 0x01	; 1
     636:	82 2f       	mov	r24, r18
     638:	81 95       	neg	r24
     63a:	98 17       	cp	r25, r24
     63c:	99 f7       	brne	.-26     	; 0x624 <FrameMgr_acquireLine+0x34>
     63e:	6c e0       	ldi	r22, 0x0C	; 12
     640:	71 e0       	ldi	r23, 0x01	; 1
     642:	8c eb       	ldi	r24, 0xBC	; 188
     644:	91 e0       	ldi	r25, 0x01	; 1
     646:	c3 d4       	rcall	.+2438   	; 0xfce <CamIntAsm_acquireDumpLine>
     648:	08 95       	ret
     64a:	81 30       	cpi	r24, 0x01	; 1
     64c:	39 f4       	brne	.+14     	; 0x65c <FrameMgr_acquireLine+0x6c>
     64e:	84 99       	sbic	0x10, 4	; 16
     650:	fe cf       	rjmp	.-4      	; 0x64e <FrameMgr_acquireLine+0x5e>
     652:	60 e0       	ldi	r22, 0x00	; 0
     654:	73 e0       	ldi	r23, 0x03	; 3
     656:	8c eb       	ldi	r24, 0xBC	; 188
     658:	91 e0       	ldi	r25, 0x01	; 1
     65a:	72 d4       	rcall	.+2276   	; 0xf40 <CamIntAsm_acquireTrackingLine>
     65c:	08 95       	ret

0000065e <FrameMgr_acquireFrame>:
     65e:	80 91 74 00 	lds	r24, 0x0074
     662:	81 30       	cpi	r24, 0x01	; 1
     664:	a9 f4       	brne	.+42     	; 0x690 <FrameMgr_acquireFrame+0x32>
     666:	10 92 76 00 	sts	0x0076, r1
     66a:	80 91 73 00 	lds	r24, 0x0073
     66e:	80 93 77 00 	sts	0x0077, r24
     672:	10 92 73 00 	sts	0x0073, r1
     676:	80 e4       	ldi	r24, 0x40	; 64
     678:	e8 e7       	ldi	r30, 0x78	; 120
     67a:	f0 e0       	ldi	r31, 0x00	; 0
     67c:	11 92       	st	Z+, r1
     67e:	8a 95       	dec	r24
     680:	e9 f7       	brne	.-6      	; 0x67c <FrameMgr_acquireFrame+0x1e>
     682:	82 9b       	sbis	0x10, 2	; 16
     684:	fe cf       	rjmp	.-4      	; 0x682 <FrameMgr_acquireFrame+0x24>
     686:	60 e0       	ldi	r22, 0x00	; 0
     688:	73 e0       	ldi	r23, 0x03	; 3
     68a:	8c eb       	ldi	r24, 0xBC	; 188
     68c:	91 e0       	ldi	r25, 0x01	; 1
     68e:	58 d4       	rcall	.+2224   	; 0xf40 <CamIntAsm_acquireTrackingLine>
     690:	08 95       	ret

00000692 <FrameMgr_dispatchEvent>:
     692:	84 30       	cpi	r24, 0x04	; 4
     694:	19 f1       	breq	.+70     	; 0x6dc <FrameMgr_dispatchEvent+0x4a>
     696:	85 30       	cpi	r24, 0x05	; 5
     698:	28 f4       	brcc	.+10     	; 0x6a4 <FrameMgr_dispatchEvent+0x12>
     69a:	81 30       	cpi	r24, 0x01	; 1
     69c:	09 f1       	breq	.+66     	; 0x6e0 <FrameMgr_dispatchEvent+0x4e>
     69e:	82 30       	cpi	r24, 0x02	; 2
     6a0:	41 f5       	brne	.+80     	; 0x6f2 <FrameMgr_dispatchEvent+0x60>
     6a2:	07 c0       	rjmp	.+14     	; 0x6b2 <FrameMgr_dispatchEvent+0x20>
     6a4:	80 38       	cpi	r24, 0x80	; 128
     6a6:	99 f0       	breq	.+38     	; 0x6ce <FrameMgr_dispatchEvent+0x3c>
     6a8:	81 38       	cpi	r24, 0x81	; 129
     6aa:	09 f1       	breq	.+66     	; 0x6ee <FrameMgr_dispatchEvent+0x5c>
     6ac:	80 32       	cpi	r24, 0x20	; 32
     6ae:	09 f5       	brne	.+66     	; 0x6f2 <FrameMgr_dispatchEvent+0x60>
     6b0:	13 c0       	rjmp	.+38     	; 0x6d8 <FrameMgr_dispatchEvent+0x46>
     6b2:	61 e0       	ldi	r22, 0x01	; 1
     6b4:	81 e1       	ldi	r24, 0x11	; 17
     6b6:	9b d3       	rcall	.+1846   	; 0xdee <CamConfig_setCamReg>
     6b8:	9f d3       	rcall	.+1854   	; 0xdf8 <CamConfig_sendFifoCmds>
     6ba:	88 ee       	ldi	r24, 0xE8	; 232
     6bc:	93 e0       	ldi	r25, 0x03	; 3
     6be:	e7 d3       	rcall	.+1998   	; 0xe8e <Utility_delay>
     6c0:	10 92 75 00 	sts	0x0075, r1
     6c4:	82 e0       	ldi	r24, 0x02	; 2
     6c6:	80 93 74 00 	sts	0x0074, r24
     6ca:	92 df       	rcall	.-220    	; 0x5f0 <FrameMgr_acquireLine>
     6cc:	08 95       	ret
     6ce:	81 e0       	ldi	r24, 0x01	; 1
     6d0:	80 93 74 00 	sts	0x0074, r24
     6d4:	c4 df       	rcall	.-120    	; 0x65e <FrameMgr_acquireFrame>
     6d6:	08 95       	ret
     6d8:	cb dd       	rcall	.-1130   	; 0x270 <FrameMgr_processFrame>
     6da:	08 95       	ret
     6dc:	c0 df       	rcall	.-128    	; 0x65e <FrameMgr_acquireFrame>
     6de:	08 95       	ret
     6e0:	80 91 74 00 	lds	r24, 0x0074
     6e4:	88 23       	and	r24, r24
     6e6:	29 f0       	breq	.+10     	; 0x6f2 <FrameMgr_dispatchEvent+0x60>
     6e8:	84 e0       	ldi	r24, 0x04	; 4
     6ea:	4b dd       	rcall	.-1386   	; 0x182 <Exec_writeEventFifo>
     6ec:	08 95       	ret
     6ee:	10 92 74 00 	sts	0x0074, r1
     6f2:	08 95       	ret

000006f4 <UIMgr_writeBufferToTxFifo>:
     6f4:	dc 01       	movw	r26, r24
     6f6:	86 2f       	mov	r24, r22
     6f8:	66 23       	and	r22, r22
     6fa:	c9 f0       	breq	.+50     	; 0x72e <UIMgr_writeBufferToTxFifo+0x3a>
     6fc:	f8 94       	cli
     6fe:	61 50       	subi	r22, 0x01	; 1
     700:	6f 3f       	cpi	r22, 0xFF	; 255
     702:	a1 f0       	breq	.+40     	; 0x72c <UIMgr_writeBufferToTxFifo+0x38>
     704:	26 2f       	mov	r18, r22
     706:	44 e9       	ldi	r20, 0x94	; 148
     708:	52 e0       	ldi	r21, 0x02	; 2
     70a:	86 1b       	sub	r24, r22
     70c:	68 2f       	mov	r22, r24
     70e:	62 50       	subi	r22, 0x02	; 2
     710:	80 91 ba 00 	lds	r24, 0x00BA
     714:	fa 01       	movw	r30, r20
     716:	e8 0f       	add	r30, r24
     718:	f1 1d       	adc	r31, r1
     71a:	9d 91       	ld	r25, X+
     71c:	90 83       	st	Z, r25
     71e:	8f 5f       	subi	r24, 0xFF	; 255
     720:	8f 73       	andi	r24, 0x3F	; 63
     722:	80 93 ba 00 	sts	0x00BA, r24
     726:	21 50       	subi	r18, 0x01	; 1
     728:	62 17       	cp	r22, r18
     72a:	91 f7       	brne	.-28     	; 0x710 <UIMgr_writeBufferToTxFifo+0x1c>
     72c:	78 94       	sei
     72e:	08 95       	ret

00000730 <UIMgr_readTxFifo>:
     730:	f8 94       	cli
     732:	90 91 bb 00 	lds	r25, 0x00BB
     736:	e4 e9       	ldi	r30, 0x94	; 148
     738:	f2 e0       	ldi	r31, 0x02	; 2
     73a:	e9 0f       	add	r30, r25
     73c:	f1 1d       	adc	r31, r1
     73e:	80 81       	ld	r24, Z
     740:	9f 5f       	subi	r25, 0xFF	; 255
     742:	9f 73       	andi	r25, 0x3F	; 63
     744:	90 93 bb 00 	sts	0x00BB, r25
     748:	78 94       	sei
     74a:	99 27       	eor	r25, r25
     74c:	08 95       	ret

0000074e <UIMgr_writeTxFifo>:
     74e:	f8 94       	cli
     750:	90 91 ba 00 	lds	r25, 0x00BA
     754:	e4 e9       	ldi	r30, 0x94	; 148
     756:	f2 e0       	ldi	r31, 0x02	; 2
     758:	e9 0f       	add	r30, r25
     75a:	f1 1d       	adc	r31, r1
     75c:	80 83       	st	Z, r24
     75e:	9f 5f       	subi	r25, 0xFF	; 255
     760:	9f 73       	andi	r25, 0x3F	; 63
     762:	90 93 ba 00 	sts	0x00BA, r25
     766:	78 94       	sei
     768:	08 95       	ret

0000076a <UIMgr_flushTxBuffer>:
     76a:	90 91 ba 00 	lds	r25, 0x00BA
     76e:	80 91 bb 00 	lds	r24, 0x00BB
     772:	98 17       	cp	r25, r24
     774:	41 f0       	breq	.+16     	; 0x786 <UIMgr_flushTxBuffer+0x1c>
     776:	dc df       	rcall	.-72     	; 0x730 <UIMgr_readTxFifo>
     778:	f5 d1       	rcall	.+1002   	; 0xb64 <UartInt_txByte>
     77a:	90 91 ba 00 	lds	r25, 0x00BA
     77e:	80 91 bb 00 	lds	r24, 0x00BB
     782:	98 17       	cp	r25, r24
     784:	c1 f7       	brne	.-16     	; 0x776 <UIMgr_flushTxBuffer+0xc>
     786:	08 95       	ret

00000788 <UIMgr_txBuffer>:
     788:	0f 93       	push	r16
     78a:	1f 93       	push	r17
     78c:	cf 93       	push	r28
     78e:	df 93       	push	r29
     790:	ec 01       	movw	r28, r24
     792:	86 2f       	mov	r24, r22
     794:	61 50       	subi	r22, 0x01	; 1
     796:	6f 3f       	cpi	r22, 0xFF	; 255
     798:	49 f0       	breq	.+18     	; 0x7ac <UIMgr_txBuffer+0x24>
     79a:	16 2f       	mov	r17, r22
     79c:	86 1b       	sub	r24, r22
     79e:	08 2f       	mov	r16, r24
     7a0:	02 50       	subi	r16, 0x02	; 2
     7a2:	89 91       	ld	r24, Y+
     7a4:	df d1       	rcall	.+958    	; 0xb64 <UartInt_txByte>
     7a6:	11 50       	subi	r17, 0x01	; 1
     7a8:	01 17       	cp	r16, r17
     7aa:	d9 f7       	brne	.-10     	; 0x7a2 <UIMgr_txBuffer+0x1a>
     7ac:	df 91       	pop	r29
     7ae:	cf 91       	pop	r28
     7b0:	1f 91       	pop	r17
     7b2:	0f 91       	pop	r16
     7b4:	08 95       	ret

000007b6 <UIMgr_transmitPendingData>:
     7b6:	90 91 ba 00 	lds	r25, 0x00BA
     7ba:	80 91 bb 00 	lds	r24, 0x00BB
     7be:	98 17       	cp	r25, r24
     7c0:	11 f0       	breq	.+4      	; 0x7c6 <UIMgr_transmitPendingData+0x10>
     7c2:	b6 df       	rcall	.-148    	; 0x730 <UIMgr_readTxFifo>
     7c4:	cf d1       	rcall	.+926    	; 0xb64 <UartInt_txByte>
     7c6:	08 95       	ret

000007c8 <UIMgr_convertTokenToCmd>:
     7c8:	90 91 bf 00 	lds	r25, 0x00BF
     7cc:	90 35       	cpi	r25, 0x50	; 80
     7ce:	41 f4       	brne	.+16     	; 0x7e0 <UIMgr_convertTokenToCmd+0x18>
     7d0:	80 91 c0 00 	lds	r24, 0x00C0
     7d4:	87 34       	cpi	r24, 0x47	; 71
     7d6:	09 f5       	brne	.+66     	; 0x81a <UIMgr_convertTokenToCmd+0x52>
     7d8:	81 e0       	ldi	r24, 0x01	; 1
     7da:	80 93 62 00 	sts	0x0062, r24
     7de:	48 c0       	rjmp	.+144    	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     7e0:	97 34       	cpi	r25, 0x47	; 71
     7e2:	39 f4       	brne	.+14     	; 0x7f2 <UIMgr_convertTokenToCmd+0x2a>
     7e4:	80 91 c0 00 	lds	r24, 0x00C0
     7e8:	86 35       	cpi	r24, 0x56	; 86
     7ea:	09 f5       	brne	.+66     	; 0x82e <UIMgr_convertTokenToCmd+0x66>
     7ec:	10 92 62 00 	sts	0x0062, r1
     7f0:	3f c0       	rjmp	.+126    	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     7f2:	94 34       	cpi	r25, 0x44	; 68
     7f4:	41 f4       	brne	.+16     	; 0x806 <UIMgr_convertTokenToCmd+0x3e>
     7f6:	80 91 c0 00 	lds	r24, 0x00C0
     7fa:	86 34       	cpi	r24, 0x46	; 70
     7fc:	11 f5       	brne	.+68     	; 0x842 <UIMgr_convertTokenToCmd+0x7a>
     7fe:	83 e0       	ldi	r24, 0x03	; 3
     800:	80 93 62 00 	sts	0x0062, r24
     804:	35 c0       	rjmp	.+106    	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     806:	93 34       	cpi	r25, 0x43	; 67
     808:	41 f4       	brne	.+16     	; 0x81a <UIMgr_convertTokenToCmd+0x52>
     80a:	80 91 c0 00 	lds	r24, 0x00C0
     80e:	82 35       	cpi	r24, 0x52	; 82
     810:	11 f5       	brne	.+68     	; 0x856 <UIMgr_convertTokenToCmd+0x8e>
     812:	82 e0       	ldi	r24, 0x02	; 2
     814:	80 93 62 00 	sts	0x0062, r24
     818:	2b c0       	rjmp	.+86     	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     81a:	95 34       	cpi	r25, 0x45	; 69
     81c:	41 f4       	brne	.+16     	; 0x82e <UIMgr_convertTokenToCmd+0x66>
     81e:	80 91 c0 00 	lds	r24, 0x00C0
     822:	84 35       	cpi	r24, 0x54	; 84
     824:	11 f5       	brne	.+68     	; 0x86a <UIMgr_convertTokenToCmd+0xa2>
     826:	84 e0       	ldi	r24, 0x04	; 4
     828:	80 93 62 00 	sts	0x0062, r24
     82c:	21 c0       	rjmp	.+66     	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     82e:	93 35       	cpi	r25, 0x53	; 83
     830:	41 f4       	brne	.+16     	; 0x842 <UIMgr_convertTokenToCmd+0x7a>
     832:	80 91 c0 00 	lds	r24, 0x00C0
     836:	8d 34       	cpi	r24, 0x4D	; 77
     838:	c1 f4       	brne	.+48     	; 0x86a <UIMgr_convertTokenToCmd+0xa2>
     83a:	86 e0       	ldi	r24, 0x06	; 6
     83c:	80 93 62 00 	sts	0x0062, r24
     840:	17 c0       	rjmp	.+46     	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     842:	94 34       	cpi	r25, 0x44	; 68
     844:	41 f4       	brne	.+16     	; 0x856 <UIMgr_convertTokenToCmd+0x8e>
     846:	80 91 c0 00 	lds	r24, 0x00C0
     84a:	84 35       	cpi	r24, 0x54	; 84
     84c:	71 f4       	brne	.+28     	; 0x86a <UIMgr_convertTokenToCmd+0xa2>
     84e:	85 e0       	ldi	r24, 0x05	; 5
     850:	80 93 62 00 	sts	0x0062, r24
     854:	0d c0       	rjmp	.+26     	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     856:	92 35       	cpi	r25, 0x52	; 82
     858:	41 f4       	brne	.+16     	; 0x86a <UIMgr_convertTokenToCmd+0xa2>
     85a:	80 91 c0 00 	lds	r24, 0x00C0
     85e:	83 35       	cpi	r24, 0x53	; 83
     860:	21 f4       	brne	.+8      	; 0x86a <UIMgr_convertTokenToCmd+0xa2>
     862:	87 e0       	ldi	r24, 0x07	; 7
     864:	80 93 62 00 	sts	0x0062, r24
     868:	03 c0       	rjmp	.+6      	; 0x870 <UIMgr_convertTokenToCmd+0xa8>
     86a:	89 e0       	ldi	r24, 0x09	; 9
     86c:	80 93 62 00 	sts	0x0062, r24
     870:	83 e0       	ldi	r24, 0x03	; 3
     872:	ef eb       	ldi	r30, 0xBF	; 191
     874:	f0 e0       	ldi	r31, 0x00	; 0
     876:	11 92       	st	Z+, r1
     878:	8a 95       	dec	r24
     87a:	e9 f7       	brne	.-6      	; 0x876 <UIMgr_convertTokenToCmd+0xae>
     87c:	10 92 be 00 	sts	0x00BE, r1
     880:	10 92 bd 00 	sts	0x00BD, r1
     884:	08 95       	ret

00000886 <UIMgr_init>:
     886:	10 92 bf 00 	sts	0x00BF, r1
     88a:	10 92 c0 00 	sts	0x00C0, r1
     88e:	10 92 c1 00 	sts	0x00C1, r1
     892:	10 92 c2 00 	sts	0x00C2, r1
     896:	80 e4       	ldi	r24, 0x40	; 64
     898:	e3 ec       	ldi	r30, 0xC3	; 195
     89a:	f0 e0       	ldi	r31, 0x00	; 0
     89c:	98 2f       	mov	r25, r24
     89e:	11 92       	st	Z+, r1
     8a0:	9a 95       	dec	r25
     8a2:	e9 f7       	brne	.-6      	; 0x89e <UIMgr_init+0x18>
     8a4:	e4 e9       	ldi	r30, 0x94	; 148
     8a6:	f2 e0       	ldi	r31, 0x02	; 2
     8a8:	11 92       	st	Z+, r1
     8aa:	8a 95       	dec	r24
     8ac:	e9 f7       	brne	.-6      	; 0x8a8 <UIMgr_init+0x22>
     8ae:	80 e2       	ldi	r24, 0x20	; 32
     8b0:	e4 e7       	ldi	r30, 0x74	; 116
     8b2:	f2 e0       	ldi	r31, 0x02	; 2
     8b4:	11 92       	st	Z+, r1
     8b6:	8a 95       	dec	r24
     8b8:	e9 f7       	brne	.-6      	; 0x8b4 <UIMgr_init+0x2e>
     8ba:	08 95       	ret

000008bc <UIMgr_convertTokenToValue>:
     8bc:	8f eb       	ldi	r24, 0xBF	; 191
     8be:	90 e0       	ldi	r25, 0x00	; 0
     8c0:	b0 d3       	rcall	.+1888   	; 0x1022 <atoi>
     8c2:	9c 01       	movw	r18, r24
     8c4:	8f 3f       	cpi	r24, 0xFF	; 255
     8c6:	91 05       	cpc	r25, r1
     8c8:	69 f0       	breq	.+26     	; 0x8e4 <UIMgr_convertTokenToValue+0x28>
     8ca:	60 f0       	brcs	.+24     	; 0x8e4 <UIMgr_convertTokenToValue+0x28>
     8cc:	89 e0       	ldi	r24, 0x09	; 9
     8ce:	80 93 62 00 	sts	0x0062, r24
     8d2:	80 91 bc 00 	lds	r24, 0x00BC
     8d6:	e3 ec       	ldi	r30, 0xC3	; 195
     8d8:	f0 e0       	ldi	r31, 0x00	; 0
     8da:	e8 0f       	add	r30, r24
     8dc:	f1 1d       	adc	r31, r1
     8de:	8f ef       	ldi	r24, 0xFF	; 255
     8e0:	80 83       	st	Z, r24
     8e2:	07 c0       	rjmp	.+14     	; 0x8f2 <UIMgr_convertTokenToValue+0x36>
     8e4:	80 91 bc 00 	lds	r24, 0x00BC
     8e8:	e3 ec       	ldi	r30, 0xC3	; 195
     8ea:	f0 e0       	ldi	r31, 0x00	; 0
     8ec:	e8 0f       	add	r30, r24
     8ee:	f1 1d       	adc	r31, r1
     8f0:	20 83       	st	Z, r18
     8f2:	83 e0       	ldi	r24, 0x03	; 3
     8f4:	ef eb       	ldi	r30, 0xBF	; 191
     8f6:	f0 e0       	ldi	r31, 0x00	; 0
     8f8:	11 92       	st	Z+, r1
     8fa:	8a 95       	dec	r24
     8fc:	e9 f7       	brne	.-6      	; 0x8f8 <UIMgr_convertTokenToValue+0x3c>
     8fe:	10 92 be 00 	sts	0x00BE, r1
     902:	10 92 bd 00 	sts	0x00BD, r1
     906:	08 95       	ret

00000908 <UIMgr_processReceivedData>:
     908:	ff 92       	push	r15
     90a:	0f 93       	push	r16
     90c:	1f 93       	push	r17
     90e:	cf 93       	push	r28
     910:	df 93       	push	r29
     912:	0f 2e       	mov	r0, r31
     914:	f9 e0       	ldi	r31, 0x09	; 9
     916:	ff 2e       	mov	r15, r31
     918:	f0 2d       	mov	r31, r0
     91a:	ff c0       	rjmp	.+510    	; 0xb1a <UIMgr_processReceivedData+0x212>
     91c:	f8 94       	cli
     91e:	e2 2f       	mov	r30, r18
     920:	ff 27       	eor	r31, r31
     922:	ec 58       	subi	r30, 0x8C	; 140
     924:	fd 4f       	sbci	r31, 0xFD	; 253
     926:	90 81       	ld	r25, Z
     928:	82 2f       	mov	r24, r18
     92a:	8f 5f       	subi	r24, 0xFF	; 255
     92c:	8f 71       	andi	r24, 0x1F	; 31
     92e:	80 93 b9 00 	sts	0x00B9, r24
     932:	78 94       	sei
     934:	9d 30       	cpi	r25, 0x0D	; 13
     936:	09 f0       	breq	.+2      	; 0x93a <UIMgr_processReceivedData+0x32>
     938:	b1 c0       	rjmp	.+354    	; 0xa9c <UIMgr_processReceivedData+0x194>
     93a:	80 91 bc 00 	lds	r24, 0x00BC
     93e:	88 23       	and	r24, r24
     940:	11 f4       	brne	.+4      	; 0x946 <UIMgr_processReceivedData+0x3e>
     942:	42 df       	rcall	.-380    	; 0x7c8 <UIMgr_convertTokenToCmd>
     944:	06 c0       	rjmp	.+12     	; 0x952 <UIMgr_processReceivedData+0x4a>
     946:	ba df       	rcall	.-140    	; 0x8bc <UIMgr_convertTokenToValue>
     948:	80 91 bc 00 	lds	r24, 0x00BC
     94c:	8f 5f       	subi	r24, 0xFF	; 255
     94e:	80 93 bc 00 	sts	0x00BC, r24
     952:	84 e6       	ldi	r24, 0x64	; 100
     954:	90 e0       	ldi	r25, 0x00	; 0
     956:	9b d2       	rcall	.+1334   	; 0xe8e <Utility_delay>
     958:	80 91 62 00 	lds	r24, 0x0062
     95c:	88 50       	subi	r24, 0x08	; 8
     95e:	82 30       	cpi	r24, 0x02	; 2
     960:	58 f4       	brcc	.+22     	; 0x978 <UIMgr_processReceivedData+0x70>
     962:	8e e4       	ldi	r24, 0x4E	; 78
     964:	f4 de       	rcall	.-536    	; 0x74e <UIMgr_writeTxFifo>
     966:	83 e4       	ldi	r24, 0x43	; 67
     968:	f2 de       	rcall	.-540    	; 0x74e <UIMgr_writeTxFifo>
     96a:	8b e4       	ldi	r24, 0x4B	; 75
     96c:	f0 de       	rcall	.-544    	; 0x74e <UIMgr_writeTxFifo>
     96e:	8d e0       	ldi	r24, 0x0D	; 13
     970:	ee de       	rcall	.-548    	; 0x74e <UIMgr_writeTxFifo>
     972:	80 e9       	ldi	r24, 0x90	; 144
     974:	06 dc       	rcall	.-2036   	; 0x182 <Exec_writeEventFifo>
     976:	89 c0       	rjmp	.+274    	; 0xa8a <UIMgr_processReceivedData+0x182>
     978:	81 e4       	ldi	r24, 0x41	; 65
     97a:	e9 de       	rcall	.-558    	; 0x74e <UIMgr_writeTxFifo>
     97c:	83 e4       	ldi	r24, 0x43	; 67
     97e:	e7 de       	rcall	.-562    	; 0x74e <UIMgr_writeTxFifo>
     980:	8b e4       	ldi	r24, 0x4B	; 75
     982:	e5 de       	rcall	.-566    	; 0x74e <UIMgr_writeTxFifo>
     984:	8d e0       	ldi	r24, 0x0D	; 13
     986:	e3 de       	rcall	.-570    	; 0x74e <UIMgr_writeTxFifo>
     988:	80 e9       	ldi	r24, 0x90	; 144
     98a:	fb db       	rcall	.-2058   	; 0x182 <Exec_writeEventFifo>
     98c:	80 91 62 00 	lds	r24, 0x0062
     990:	81 30       	cpi	r24, 0x01	; 1
     992:	09 f4       	brne	.+2      	; 0x996 <UIMgr_processReceivedData+0x8e>
     994:	7a c0       	rjmp	.+244    	; 0xa8a <UIMgr_processReceivedData+0x182>
     996:	88 23       	and	r24, r24
     998:	71 f4       	brne	.+28     	; 0x9b6 <UIMgr_processReceivedData+0xae>
     99a:	80 91 63 00 	lds	r24, 0x0063
     99e:	88 23       	and	r24, r24
     9a0:	09 f4       	brne	.+2      	; 0x9a4 <UIMgr_processReceivedData+0x9c>
     9a2:	73 c0       	rjmp	.+230    	; 0xa8a <UIMgr_processReceivedData+0x182>
     9a4:	c3 e6       	ldi	r28, 0x63	; 99
     9a6:	d0 e0       	ldi	r29, 0x00	; 0
     9a8:	21 96       	adiw	r28, 0x01	; 1
     9aa:	d1 de       	rcall	.-606    	; 0x74e <UIMgr_writeTxFifo>
     9ac:	88 81       	ld	r24, Y
     9ae:	88 23       	and	r24, r24
     9b0:	09 f4       	brne	.+2      	; 0x9b4 <UIMgr_processReceivedData+0xac>
     9b2:	6b c0       	rjmp	.+214    	; 0xa8a <UIMgr_processReceivedData+0x182>
     9b4:	f9 cf       	rjmp	.-14     	; 0x9a8 <UIMgr_processReceivedData+0xa0>
     9b6:	87 30       	cpi	r24, 0x07	; 7
     9b8:	11 f4       	brne	.+4      	; 0x9be <UIMgr_processReceivedData+0xb6>
     9ba:	a1 db       	rcall	.-2238   	; 0xfe <CamInt_resetCam>
     9bc:	66 c0       	rjmp	.+204    	; 0xa8a <UIMgr_processReceivedData+0x182>
     9be:	83 30       	cpi	r24, 0x03	; 3
     9c0:	31 f4       	brne	.+12     	; 0x9ce <UIMgr_processReceivedData+0xc6>
     9c2:	84 e6       	ldi	r24, 0x64	; 100
     9c4:	90 e0       	ldi	r25, 0x00	; 0
     9c6:	63 d2       	rcall	.+1222   	; 0xe8e <Utility_delay>
     9c8:	82 e0       	ldi	r24, 0x02	; 2
     9ca:	db db       	rcall	.-2122   	; 0x182 <Exec_writeEventFifo>
     9cc:	5e c0       	rjmp	.+188    	; 0xa8a <UIMgr_processReceivedData+0x182>
     9ce:	82 30       	cpi	r24, 0x02	; 2
     9d0:	99 f4       	brne	.+38     	; 0x9f8 <UIMgr_processReceivedData+0xf0>
     9d2:	80 91 bc 00 	lds	r24, 0x00BC
     9d6:	82 30       	cpi	r24, 0x02	; 2
     9d8:	68 f0       	brcs	.+26     	; 0x9f4 <UIMgr_processReceivedData+0xec>
     9da:	11 e0       	ldi	r17, 0x01	; 1
     9dc:	e1 2f       	mov	r30, r17
     9de:	ff 27       	eor	r31, r31
     9e0:	ed 53       	subi	r30, 0x3D	; 61
     9e2:	ff 4f       	sbci	r31, 0xFF	; 255
     9e4:	61 81       	ldd	r22, Z+1	; 0x01
     9e6:	80 81       	ld	r24, Z
     9e8:	02 d2       	rcall	.+1028   	; 0xdee <CamConfig_setCamReg>
     9ea:	1e 5f       	subi	r17, 0xFE	; 254
     9ec:	80 91 bc 00 	lds	r24, 0x00BC
     9f0:	18 17       	cp	r17, r24
     9f2:	a0 f3       	brcs	.-24     	; 0x9dc <UIMgr_processReceivedData+0xd4>
     9f4:	01 d2       	rcall	.+1026   	; 0xdf8 <CamConfig_sendFifoCmds>
     9f6:	49 c0       	rjmp	.+146    	; 0xa8a <UIMgr_processReceivedData+0x182>
     9f8:	84 30       	cpi	r24, 0x04	; 4
     9fa:	31 f4       	brne	.+12     	; 0xa08 <UIMgr_processReceivedData+0x100>
     9fc:	84 e6       	ldi	r24, 0x64	; 100
     9fe:	90 e0       	ldi	r25, 0x00	; 0
     a00:	46 d2       	rcall	.+1164   	; 0xe8e <Utility_delay>
     a02:	80 e8       	ldi	r24, 0x80	; 128
     a04:	be db       	rcall	.-2180   	; 0x182 <Exec_writeEventFifo>
     a06:	41 c0       	rjmp	.+130    	; 0xa8a <UIMgr_processReceivedData+0x182>
     a08:	85 30       	cpi	r24, 0x05	; 5
     a0a:	19 f4       	brne	.+6      	; 0xa12 <UIMgr_processReceivedData+0x10a>
     a0c:	81 e8       	ldi	r24, 0x81	; 129
     a0e:	b9 db       	rcall	.-2190   	; 0x182 <Exec_writeEventFifo>
     a10:	3c c0       	rjmp	.+120    	; 0xa8a <UIMgr_processReceivedData+0x182>
     a12:	86 30       	cpi	r24, 0x06	; 6
     a14:	09 f0       	breq	.+2      	; 0xa18 <UIMgr_processReceivedData+0x110>
     a16:	39 c0       	rjmp	.+114    	; 0xa8a <UIMgr_processReceivedData+0x182>
     a18:	80 91 bc 00 	lds	r24, 0x00BC
     a1c:	88 23       	and	r24, r24
     a1e:	09 f4       	brne	.+2      	; 0xa22 <UIMgr_processReceivedData+0x11a>
     a20:	34 c0       	rjmp	.+104    	; 0xa8a <UIMgr_processReceivedData+0x182>
     a22:	40 e0       	ldi	r20, 0x00	; 0
     a24:	03 ec       	ldi	r16, 0xC3	; 195
     a26:	10 e0       	ldi	r17, 0x00	; 0
     a28:	60 e0       	ldi	r22, 0x00	; 0
     a2a:	73 e0       	ldi	r23, 0x03	; 3
     a2c:	84 2f       	mov	r24, r20
     a2e:	99 27       	eor	r25, r25
     a30:	9c 01       	movw	r18, r24
     a32:	2f 5f       	subi	r18, 0xFF	; 255
     a34:	3f 4f       	sbci	r19, 0xFF	; 255
     a36:	f9 01       	movw	r30, r18
     a38:	e0 0f       	add	r30, r16
     a3a:	f1 1f       	adc	r31, r17
     a3c:	e0 81       	ld	r30, Z
     a3e:	ec 01       	movw	r28, r24
     a40:	c6 0f       	add	r28, r22
     a42:	d7 1f       	adc	r29, r23
     a44:	e8 83       	st	Y, r30
uint8_t 
eeprom_read_byte (const uint8_t *addr) 
{
  uint8_t result;
  asm volatile
     a46:	d9 01       	movw	r26, r18
     a48:	20 d3       	rcall	.+1600   	; 0x108a <__eeprom_read_byte_1C1D1E>
     a4a:	80 2d       	mov	r24, r0
static unsigned char tokenBuffer[MAX_TOKEN_COUNT];
static UIMgr_Cmd_t receivedCmd = noCmd;
static unsigned char AVRcamVersion[] = "AVRcam v1.4\r";

/*  Local Function Declaration */
static unsigned char UIMgr_readRxFifo(void);
static unsigned char UIMgr_readTxFifo(void);
static unsigned char UIMgr_readRxFifo(void);
static void UIMgr_sendNck(void);
static void UIMgr_sendAck(void);
static void UIMgr_convertTokenToCmd(void);
static void UIMgr_convertTokenToValue(void);
static void UIMgr_executeCmd(void);

/*  Extern Variables */
unsigned char UIMgr_rxFifo[UI_MGR_RX_FIFO_SIZE];
unsigned char UIMgr_rxFifoHead=0;
unsigned char UIMgr_rxFifoTail=0;

unsigned char UIMgr_txFifo[UI_MGR_TX_FIFO_SIZE];
unsigned char UIMgr_txFifoHead=0;
unsigned char UIMgr_txFifoTail=0;

/*  Definitions */
#define IS_DATA_IN_TX_FIFO() (!(UIMgr_txFifoHead == UIMgr_txFifoTail))
#define IS_DATA_IN_RX_FIFO() (!(UIMgr_rxFifoHead == UIMgr_rxFifoTail))

/* MAX_EEPROM_WRITE_ATTEMPTS limits the number of writes that can be
done to a particular EEPROM cell, so that it can't possible just 
write to the same cell over and over */
#define MAX_EEPROM_WRITE_ATTEMPTS 3

/***********************************************************
	Function Name: UIMgr_init
	Function Description: This function is responsible for
	initializing the UIMgr module.  It sets up the fifo
	used to hold incoming data, etc.
	Inputs:  none 
	Outputs: none
***********************************************************/	
void UIMgr_init(void)
{
	memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH+1);
	memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
	memset(UIMgr_txFifo,0x00,UI_MGR_TX_FIFO_SIZE);
	memset(UIMgr_rxFifo,0x00,UI_MGR_RX_FIFO_SIZE);
}

/***********************************************************
	Function Name: UIMgr_dispatchEvent
	Function Description: This function is responsible for
	processing events that pertain to the UIMgr.
	Inputs:  event - the generated event
	Outputs: none
***********************************************************/	
void UIMgr_dispatchEvent(unsigned char event)
{
	switch(event)
	{
		case EV_ACQUIRE_LINE_COMPLETE:
			UIMgr_transmitPendingData();
			break;
			
		case EV_SERIAL_DATA_RECEIVED:		
			UIMgr_processReceivedData();
			break;
			
		case EV_SERIAL_DATA_PENDING_TX:
			UIMgr_flushTxBuffer();
			break;
	}
}
/***********************************************************
	Function Name: UIMgr_transmitPendingData
	Function Description: This function is responsible for
	transmitting a single byte of data if data is waiting
	to be sent.  Otherwise, if nothing is waiting, the
	function just returns.
	Inputs:  none 
	Outputs: none
***********************************************************/
void UIMgr_transmitPendingData(void)
{
	if (IS_DATA_IN_TX_FIFO() == TRUE)
	{
		/* data is waiting...send a single byte */
		UartInt_txByte( UIMgr_readTxFifo() );
	}
}
/***********************************************************
	Function Name: UIMgr_processReceivedData
	Function Description: This function is responsible for
	parsing any serial data waiting in the rx fifo
	Inputs:  none 
	Outputs: none
***********************************************************/
void UIMgr_processReceivedData(void)
{
	unsigned char tmpData = 0;

	/* still need to add a mechanism to handle token counts 
	that are excessive!!! FIX ME!!! */
    
	while(IS_DATA_IN_RX_FIFO() == TRUE)
	{
		tmpData = UIMgr_readRxFifo();
		if (tmpData == '\r') 
		{
			/* we have reached a token separator */
			if (tokenCount == 0)
			{
				/* convert the command */
				UIMgr_convertTokenToCmd();				
			}
			else
			{
				/* convert a value */
				UIMgr_convertTokenToValue();
				tokenCount++;
			}
			/* either way, it is time to try to process the received
			token list since we have reached the end of the cmd. */
			Utility_delay(100);
			if (receivedCmd == invalidCmd ||
			     receivedCmd == noCmd )
			{
				UIMgr_sendNck();
				PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
			}
			else
			{
				UIMgr_sendAck();
				/* publish the serial data pending event, so it
				will push the ACK out before we execute the cmd */
				PUBLISH_EVENT(EV_SERIAL_DATA_PENDING_TX);
				UIMgr_executeCmd();
			}
			
			/* reset any necessary data */
			tokenCount = 0;
			memset(tokenBuffer,0x00,MAX_TOKEN_COUNT);
		}
		else if (tmpData == ' ')  /* space char */
		{
			/* the end of a token has been reached */
			if (tokenCount == 0)
			{
				UIMgr_convertTokenToCmd();
				tokenCount++;   /* check this...why is this being incremented here??? This
                means we have received a token, with tokenCount == 0, which means it is a
                command...why is this contributing to tokenCount?
                This might cause the set color map command to include too much data, since
                it sets the color map based on tokenCount...CHECK*/
			}
			else
			{
				/* check to see if this token is going to push
				us over the limit...if so, abort the transaction */
				if (tokenCount+1 >= MAX_TOKEN_COUNT)
				{
					/* we received too many tokens, and 
					need to NCK this request, since its too
					large...reset everything...*/
					charCount=0;
					charIndex=0;
					tokenCount=0;
					receivedCmd = invalidCmd;
				}
				else
				{
					/* tokenCount is still in range...*/
					UIMgr_convertTokenToValue();
					tokenCount++;
				}
			}
		}
		else if ( (tmpData >= 'A' && tmpData <= 'Z') ||
				   (tmpData >= '0' && tmpData <= '9') )
		{
			/* a valid range of token was received */
			asciiTokenBuffer[charIndex] = tmpData;
			charCount++;
			charIndex++;
			if (charCount > MAX_TOKEN_LENGTH)
			{
				/* we have received a token that cannot be handled...
				set the received cmd to an invalid cmd, and wait
				for the \r to process it */
				receivedCmd = invalidCmd;
				charIndex = 0;  /* ...so we won't overwrite memory */
			}
		}
		else
		{
			/* an invalid character was received */
			receivedCmd = invalidCmd;
		}
	}  /* end while */
	
	asm volatile("clt"::);  /* clear out the T flag in case it wasn't
								 cleared already */
}						

/***********************************************************
	Function Name: UIMgr_executeCmd
	Function Description: This function is responsible for
	executing whatever cmd is stored in the receivedCmd
	object.
	Inputs:  none 
	Outputs: none
***********************************************************/
static void UIMgr_executeCmd(void)
{
	unsigned char i,eepromData, num_writes=0;
	unsigned char *pData;
    unsigned char eeprom_write_succeeded = FALSE;
#if	DEBUG_COLOR_MAP	
	unsigned char asciiBuffer[5];
#endif

	if (receivedCmd == pingCmd) 
	{
	}
	else if (receivedCmd == getVersionCmd)
	{
		pData = AVRcamVersion;
		while(*pData != 0)
		{		
			UIMgr_writeTxFifo(*pData++);
		}
	}		
	else if (receivedCmd == resetCameraCmd)
	{
		CamInt_resetCam();
	}
	else if (receivedCmd == dumpFrameCmd)
	{
		/* publish the event that will indicate that
		a request has come to dump a frame...this will
		be received by the FrameMgr, which will begin
		dumping the frame...a short delay is needed
		here to keep the Java demo app happy (sometimes
		it wouldn't be able to receive the serial data
		as quickly as AVRcam can provide it). */
		Utility_delay(100);
		PUBLISH_EVENT(EV_DUMP_FRAME);
	}
	else if (receivedCmd == setCameraRegsCmd)
	{
		/* we need to gather the tokens and
		build config cmds to be sent to the camera */
		for (i=1; i<tokenCount; i+=2)  /* starts at 1 since first token
											is the CR cmd */
		{
			CamConfig_setCamReg(tokenBuffer[i],tokenBuffer[i+1]);
		}
		CamConfig_sendFifoCmds();
	}
	else if (receivedCmd == enableTrackingCmd)
	{
		/* publish the event...again with a short delay */
		Utility_delay(100);
		PUBLISH_EVENT(EV_ENABLE_TRACKING);
	}
	else if (receivedCmd == disableTrackingCmd)
	{
		PUBLISH_EVENT(EV_DISABLE_TRACKING);
	}
	else if (receivedCmd == setColorMapCmd)
	{
		/* copy the received tokens into the color map */
		for (i=0; i<tokenCount; i++)
		{
			colorMap[i] = tokenBuffer[i+1];
            
            /* write each colorMap byte to EEPROM, but only those
            that changed...this will help reduce wear on the EEPROM */
            eepromData = eeprom_read_byte( (unsigned char*)(i+1));
            if (eepromData != colorMap[i])
     a4c:	e8 17       	cp	r30, r24
     a4e:	c1 f0       	breq	.+48     	; 0xa80 <UIMgr_processReceivedData+0x178>

void 
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
  asm volatile (
     a50:	d9 01       	movw	r26, r18
     a52:	0e 2e       	mov	r0, r30
     a54:	27 d3       	rcall	.+1614   	; 0x10a4 <__eeprom_write_byte_1C1D1E>
     a56:	d9 01       	movw	r26, r18
     a58:	18 d3       	rcall	.+1584   	; 0x108a <__eeprom_read_byte_1C1D1E>
     a5a:	80 2d       	mov	r24, r0
            {
                /* need to actually perform the write because the
                data in eeprom is different than the current colorMap */
                eeprom_write_succeeded = FALSE;
                while(eeprom_write_succeeded == FALSE && num_writes < MAX_EEPROM_WRITE_ATTEMPTS)
                {
                    eeprom_write_byte((unsigned char*)(i+1),colorMap[i]);
                    num_writes++;
                    eepromData = eeprom_read_byte( (unsigned char*)(i+1));
                    if (eepromData == colorMap[i])
     a5c:	98 81       	ld	r25, Y
     a5e:	98 17       	cp	r25, r24
     a60:	79 f0       	breq	.+30     	; 0xa80 <UIMgr_processReceivedData+0x178>

void 
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
  asm volatile (
     a62:	d9 01       	movw	r26, r18
     a64:	09 2e       	mov	r0, r25
     a66:	1e d3       	rcall	.+1596   	; 0x10a4 <__eeprom_write_byte_1C1D1E>
     a68:	d9 01       	movw	r26, r18
     a6a:	0f d3       	rcall	.+1566   	; 0x108a <__eeprom_read_byte_1C1D1E>
     a6c:	80 2d       	mov	r24, r0
     a6e:	98 81       	ld	r25, Y
     a70:	98 17       	cp	r25, r24
     a72:	31 f0       	breq	.+12     	; 0xa80 <UIMgr_processReceivedData+0x178>

void 
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
  asm volatile (
     a74:	d9 01       	movw	r26, r18
     a76:	09 2e       	mov	r0, r25
     a78:	15 d3       	rcall	.+1578   	; 0x10a4 <__eeprom_write_byte_1C1D1E>
     a7a:	d9 01       	movw	r26, r18
     a7c:	06 d3       	rcall	.+1548   	; 0x108a <__eeprom_read_byte_1C1D1E>
     a7e:	80 2d       	mov	r24, r0
     a80:	4f 5f       	subi	r20, 0xFF	; 255
     a82:	80 91 bc 00 	lds	r24, 0x00BC
     a86:	48 17       	cp	r20, r24
     a88:	88 f2       	brcs	.-94     	; 0xa2c <UIMgr_processReceivedData+0x124>
     a8a:	10 92 bc 00 	sts	0x00BC, r1
     a8e:	80 e4       	ldi	r24, 0x40	; 64
     a90:	e3 ec       	ldi	r30, 0xC3	; 195
     a92:	f0 e0       	ldi	r31, 0x00	; 0
     a94:	11 92       	st	Z+, r1
     a96:	8a 95       	dec	r24
     a98:	e9 f7       	brne	.-6      	; 0xa94 <UIMgr_processReceivedData+0x18c>
     a9a:	3f c0       	rjmp	.+126    	; 0xb1a <UIMgr_processReceivedData+0x212>
     a9c:	90 32       	cpi	r25, 0x20	; 32
     a9e:	f1 f4       	brne	.+60     	; 0xadc <UIMgr_processReceivedData+0x1d4>
     aa0:	80 91 bc 00 	lds	r24, 0x00BC
     aa4:	88 23       	and	r24, r24
     aa6:	39 f4       	brne	.+14     	; 0xab6 <UIMgr_processReceivedData+0x1ae>
     aa8:	8f de       	rcall	.-738    	; 0x7c8 <UIMgr_convertTokenToCmd>
     aaa:	80 91 bc 00 	lds	r24, 0x00BC
     aae:	8f 5f       	subi	r24, 0xFF	; 255
     ab0:	80 93 bc 00 	sts	0x00BC, r24
     ab4:	32 c0       	rjmp	.+100    	; 0xb1a <UIMgr_processReceivedData+0x212>
     ab6:	99 27       	eor	r25, r25
     ab8:	cf 97       	sbiw	r24, 0x3f	; 63
     aba:	4c f0       	brlt	.+18     	; 0xace <UIMgr_processReceivedData+0x1c6>
     abc:	10 92 bd 00 	sts	0x00BD, r1
     ac0:	10 92 be 00 	sts	0x00BE, r1
     ac4:	10 92 bc 00 	sts	0x00BC, r1
     ac8:	f0 92 62 00 	sts	0x0062, r15
     acc:	26 c0       	rjmp	.+76     	; 0xb1a <UIMgr_processReceivedData+0x212>
     ace:	f6 de       	rcall	.-532    	; 0x8bc <UIMgr_convertTokenToValue>
     ad0:	80 91 bc 00 	lds	r24, 0x00BC
     ad4:	8f 5f       	subi	r24, 0xFF	; 255
     ad6:	80 93 bc 00 	sts	0x00BC, r24
     ada:	1f c0       	rjmp	.+62     	; 0xb1a <UIMgr_processReceivedData+0x212>
     adc:	89 2f       	mov	r24, r25
     ade:	81 54       	subi	r24, 0x41	; 65
     ae0:	8a 31       	cpi	r24, 0x1A	; 26
     ae2:	18 f0       	brcs	.+6      	; 0xaea <UIMgr_processReceivedData+0x1e2>
     ae4:	8f 5e       	subi	r24, 0xEF	; 239
     ae6:	8a 30       	cpi	r24, 0x0A	; 10
     ae8:	b0 f4       	brcc	.+44     	; 0xb16 <UIMgr_processReceivedData+0x20e>
     aea:	80 91 be 00 	lds	r24, 0x00BE
     aee:	e8 2f       	mov	r30, r24
     af0:	ff 27       	eor	r31, r31
     af2:	e1 54       	subi	r30, 0x41	; 65
     af4:	ff 4f       	sbci	r31, 0xFF	; 255
     af6:	90 83       	st	Z, r25
     af8:	90 91 bd 00 	lds	r25, 0x00BD
     afc:	9f 5f       	subi	r25, 0xFF	; 255
     afe:	90 93 bd 00 	sts	0x00BD, r25
     b02:	8f 5f       	subi	r24, 0xFF	; 255
     b04:	80 93 be 00 	sts	0x00BE, r24
     b08:	94 30       	cpi	r25, 0x04	; 4
     b0a:	38 f0       	brcs	.+14     	; 0xb1a <UIMgr_processReceivedData+0x212>
     b0c:	f0 92 62 00 	sts	0x0062, r15
     b10:	10 92 be 00 	sts	0x00BE, r1
     b14:	02 c0       	rjmp	.+4      	; 0xb1a <UIMgr_processReceivedData+0x212>
     b16:	f0 92 62 00 	sts	0x0062, r15
     b1a:	20 91 b9 00 	lds	r18, 0x00B9
     b1e:	80 91 b8 00 	lds	r24, 0x00B8
     b22:	82 17       	cp	r24, r18
     b24:	09 f0       	breq	.+2      	; 0xb28 <UIMgr_processReceivedData+0x220>
     b26:	fa ce       	rjmp	.-524    	; 0x91c <UIMgr_processReceivedData+0x14>
     b28:	e8 94       	clt
     b2a:	df 91       	pop	r29
     b2c:	cf 91       	pop	r28
     b2e:	1f 91       	pop	r17
     b30:	0f 91       	pop	r16
     b32:	ff 90       	pop	r15
     b34:	08 95       	ret

00000b36 <UIMgr_dispatchEvent>:
     b36:	80 31       	cpi	r24, 0x10	; 16
     b38:	29 f0       	breq	.+10     	; 0xb44 <UIMgr_dispatchEvent+0xe>
     b3a:	80 39       	cpi	r24, 0x90	; 144
     b3c:	39 f0       	breq	.+14     	; 0xb4c <UIMgr_dispatchEvent+0x16>
     b3e:	81 30       	cpi	r24, 0x01	; 1
     b40:	31 f4       	brne	.+12     	; 0xb4e <UIMgr_dispatchEvent+0x18>
     b42:	02 c0       	rjmp	.+4      	; 0xb48 <UIMgr_dispatchEvent+0x12>
     b44:	38 de       	rcall	.-912    	; 0x7b6 <UIMgr_transmitPendingData>
     b46:	08 95       	ret
     b48:	df de       	rcall	.-578    	; 0x908 <UIMgr_processReceivedData>
     b4a:	08 95       	ret
     b4c:	0e de       	rcall	.-996    	; 0x76a <UIMgr_flushTxBuffer>
     b4e:	08 95       	ret

00000b50 <UartInt_init>:
     b50:	10 bc       	out	0x20, r1	; 32
     b52:	82 e1       	ldi	r24, 0x12	; 18
     b54:	89 b9       	out	0x09, r24	; 9
     b56:	88 e9       	ldi	r24, 0x98	; 152
     b58:	8a b9       	out	0x0a, r24	; 10
     b5a:	86 e8       	ldi	r24, 0x86	; 134
     b5c:	80 bd       	out	0x20, r24	; 32
     b5e:	82 e0       	ldi	r24, 0x02	; 2
     b60:	8b b9       	out	0x0b, r24	; 11
     b62:	08 95       	ret

00000b64 <UartInt_txByte>:
     b64:	5d 9b       	sbis	0x0b, 5	; 11
     b66:	fe cf       	rjmp	.-4      	; 0xb64 <UartInt_txByte>
     b68:	8c b9       	out	0x0c, r24	; 12
     b6a:	08 95       	ret

00000b6c <__vector_11>:
     b6c:	1f 92       	push	r1
     b6e:	0f 92       	push	r0
     b70:	0f b6       	in	r0, 0x3f	; 63
     b72:	0f 92       	push	r0
     b74:	11 24       	eor	r1, r1
     b76:	8f 93       	push	r24
     b78:	9f 93       	push	r25
     b7a:	ef 93       	push	r30
     b7c:	ff 93       	push	r31
     b7e:	80 91 b8 00 	lds	r24, 0x00B8
     b82:	9c b1       	in	r25, 0x0c	; 12
     b84:	e4 e7       	ldi	r30, 0x74	; 116
     b86:	f2 e0       	ldi	r31, 0x02	; 2
     b88:	e8 0f       	add	r30, r24
     b8a:	f1 1d       	adc	r31, r1
     b8c:	90 83       	st	Z, r25
     b8e:	8f 5f       	subi	r24, 0xFF	; 255
     b90:	8f 71       	andi	r24, 0x1F	; 31
     b92:	80 93 b8 00 	sts	0x00B8, r24
     b96:	80 91 70 00 	lds	r24, 0x0070
     b9a:	ec e6       	ldi	r30, 0x6C	; 108
     b9c:	f2 e0       	ldi	r31, 0x02	; 2
     b9e:	e8 0f       	add	r30, r24
     ba0:	f1 1d       	adc	r31, r1
     ba2:	91 e0       	ldi	r25, 0x01	; 1
     ba4:	90 83       	st	Z, r25
     ba6:	8f 5f       	subi	r24, 0xFF	; 255
     ba8:	87 70       	andi	r24, 0x07	; 7
     baa:	80 93 70 00 	sts	0x0070, r24
     bae:	ff 91       	pop	r31
     bb0:	ef 91       	pop	r30
     bb2:	9f 91       	pop	r25
     bb4:	8f 91       	pop	r24
     bb6:	0f 90       	pop	r0
     bb8:	0f be       	out	0x3f, r0	; 63
     bba:	0f 90       	pop	r0
     bbc:	1f 90       	pop	r1
     bbe:	18 95       	reti

00000bc0 <I2CInt_init>:
     bc0:	11 b8       	out	0x01, r1	; 1
     bc2:	88 e4       	ldi	r24, 0x48	; 72
     bc4:	80 b9       	out	0x00, r24	; 0
     bc6:	08 95       	ret

00000bc8 <I2CInt_writeData>:
     bc8:	98 2f       	mov	r25, r24
     bca:	80 91 08 01 	lds	r24, 0x0108
     bce:	88 23       	and	r24, r24
     bd0:	e4 f3       	brlt	.-8      	; 0xbca <I2CInt_writeData+0x2>
     bd2:	06 b6       	in	r0, 0x36	; 54
     bd4:	04 fc       	sbrc	r0, 4
     bd6:	fd cf       	rjmp	.-6      	; 0xbd2 <I2CInt_writeData+0xa>
     bd8:	90 93 03 01 	sts	0x0103, r25
     bdc:	70 93 05 01 	sts	0x0105, r23
     be0:	60 93 04 01 	sts	0x0104, r22
     be4:	40 93 07 01 	sts	0x0107, r20
     be8:	10 92 06 01 	sts	0x0106, r1
     bec:	10 92 09 01 	sts	0x0109, r1
     bf0:	85 ea       	ldi	r24, 0xA5	; 165
     bf2:	86 bf       	out	0x36, r24	; 54
     bf4:	80 91 08 01 	lds	r24, 0x0108
     bf8:	80 68       	ori	r24, 0x80	; 128
     bfa:	80 93 08 01 	sts	0x0108, r24
     bfe:	08 95       	ret

00000c00 <I2CInt_readData>:
     c00:	98 2f       	mov	r25, r24
     c02:	80 91 08 01 	lds	r24, 0x0108
     c06:	88 23       	and	r24, r24
     c08:	e4 f3       	brlt	.-8      	; 0xc02 <I2CInt_readData+0x2>
     c0a:	90 93 03 01 	sts	0x0103, r25
     c0e:	70 93 05 01 	sts	0x0105, r23
     c12:	60 93 04 01 	sts	0x0104, r22
     c16:	40 93 07 01 	sts	0x0107, r20
     c1a:	81 e0       	ldi	r24, 0x01	; 1
     c1c:	80 93 06 01 	sts	0x0106, r24
     c20:	10 92 09 01 	sts	0x0109, r1
     c24:	85 ea       	ldi	r24, 0xA5	; 165
     c26:	86 bf       	out	0x36, r24	; 54
     c28:	80 91 08 01 	lds	r24, 0x0108
     c2c:	80 68       	ori	r24, 0x80	; 128
     c2e:	80 93 08 01 	sts	0x0108, r24
     c32:	08 95       	ret

00000c34 <I2CInt_isI2cBusy>:
     c34:	80 91 08 01 	lds	r24, 0x0108
     c38:	88 1f       	adc	r24, r24
     c3a:	88 27       	eor	r24, r24
     c3c:	88 1f       	adc	r24, r24
     c3e:	99 27       	eor	r25, r25
     c40:	08 95       	ret

00000c42 <__vector_17>:
     c42:	1f 92       	push	r1
     c44:	0f 92       	push	r0
     c46:	0f b6       	in	r0, 0x3f	; 63
     c48:	0f 92       	push	r0
     c4a:	11 24       	eor	r1, r1
     c4c:	8f 93       	push	r24
     c4e:	9f 93       	push	r25
     c50:	af 93       	push	r26
     c52:	bf 93       	push	r27
     c54:	ef 93       	push	r30
     c56:	ff 93       	push	r31
     c58:	81 b1       	in	r24, 0x01	; 1
     c5a:	99 27       	eor	r25, r25
     c5c:	aa 27       	eor	r26, r26
     c5e:	bb 27       	eor	r27, r27
     c60:	88 7f       	andi	r24, 0xF8	; 248
     c62:	90 70       	andi	r25, 0x00	; 0
     c64:	a0 70       	andi	r26, 0x00	; 0
     c66:	b0 70       	andi	r27, 0x00	; 0
     c68:	fc 01       	movw	r30, r24
     c6a:	38 97       	sbiw	r30, 0x08	; 8
     c6c:	e1 35       	cpi	r30, 0x51	; 81
     c6e:	f1 05       	cpc	r31, r1
     c70:	08 f0       	brcs	.+2      	; 0xc74 <__vector_17+0x32>
     c72:	9a c0       	rjmp	.+308    	; 0xda8 <__vector_17+0x166>
     c74:	ed 5e       	subi	r30, 0xED	; 237
     c76:	ff 4f       	sbci	r31, 0xFF	; 255
     c78:	09 94       	ijmp
     c7a:	80 91 09 01 	lds	r24, 0x0109
     c7e:	83 30       	cpi	r24, 0x03	; 3
     c80:	48 f0       	brcs	.+18     	; 0xc94 <__vector_17+0x52>
     c82:	86 b7       	in	r24, 0x36	; 54
     c84:	80 69       	ori	r24, 0x90	; 144
     c86:	86 bf       	out	0x36, r24	; 54
     c88:	80 91 08 01 	lds	r24, 0x0108
     c8c:	8f 77       	andi	r24, 0x7F	; 127
     c8e:	80 93 08 01 	sts	0x0108, r24
     c92:	8a c0       	rjmp	.+276    	; 0xda8 <__vector_17+0x166>
     c94:	80 91 03 01 	lds	r24, 0x0103
     c98:	90 91 06 01 	lds	r25, 0x0106
     c9c:	88 0f       	add	r24, r24
     c9e:	89 0f       	add	r24, r25
     ca0:	83 b9       	out	0x03, r24	; 3
     ca2:	86 b7       	in	r24, 0x36	; 54
     ca4:	8f 7d       	andi	r24, 0xDF	; 223
     ca6:	86 bf       	out	0x36, r24	; 54
     ca8:	7f c0       	rjmp	.+254    	; 0xda8 <__vector_17+0x166>
     caa:	10 92 09 01 	sts	0x0109, r1
     cae:	e0 91 04 01 	lds	r30, 0x0104
     cb2:	f0 91 05 01 	lds	r31, 0x0105
     cb6:	80 81       	ld	r24, Z
     cb8:	83 b9       	out	0x03, r24	; 3
     cba:	31 96       	adiw	r30, 0x01	; 1
     cbc:	f0 93 05 01 	sts	0x0105, r31
     cc0:	e0 93 04 01 	sts	0x0104, r30
     cc4:	86 b7       	in	r24, 0x36	; 54
     cc6:	80 68       	ori	r24, 0x80	; 128
     cc8:	86 bf       	out	0x36, r24	; 54
     cca:	6e c0       	rjmp	.+220    	; 0xda8 <__vector_17+0x166>
     ccc:	80 91 09 01 	lds	r24, 0x0109
     cd0:	8f 5f       	subi	r24, 0xFF	; 255
     cd2:	80 93 09 01 	sts	0x0109, r24
     cd6:	86 b7       	in	r24, 0x36	; 54
     cd8:	80 6b       	ori	r24, 0xB0	; 176
     cda:	86 bf       	out	0x36, r24	; 54
     cdc:	65 c0       	rjmp	.+202    	; 0xda8 <__vector_17+0x166>
     cde:	80 91 07 01 	lds	r24, 0x0107
     ce2:	81 50       	subi	r24, 0x01	; 1
     ce4:	80 93 07 01 	sts	0x0107, r24
     ce8:	80 91 07 01 	lds	r24, 0x0107
     cec:	88 23       	and	r24, r24
     cee:	79 f0       	breq	.+30     	; 0xd0e <__vector_17+0xcc>
     cf0:	e0 91 04 01 	lds	r30, 0x0104
     cf4:	f0 91 05 01 	lds	r31, 0x0105
     cf8:	80 81       	ld	r24, Z
     cfa:	83 b9       	out	0x03, r24	; 3
     cfc:	31 96       	adiw	r30, 0x01	; 1
     cfe:	f0 93 05 01 	sts	0x0105, r31
     d02:	e0 93 04 01 	sts	0x0104, r30
     d06:	86 b7       	in	r24, 0x36	; 54
     d08:	80 68       	ori	r24, 0x80	; 128
     d0a:	86 bf       	out	0x36, r24	; 54
     d0c:	4d c0       	rjmp	.+154    	; 0xda8 <__vector_17+0x166>
     d0e:	86 b7       	in	r24, 0x36	; 54
     d10:	80 69       	ori	r24, 0x90	; 144
     d12:	86 bf       	out	0x36, r24	; 54
     d14:	80 91 08 01 	lds	r24, 0x0108
     d18:	8f 77       	andi	r24, 0x7F	; 127
     d1a:	80 93 08 01 	sts	0x0108, r24
     d1e:	44 c0       	rjmp	.+136    	; 0xda8 <__vector_17+0x166>
     d20:	86 b7       	in	r24, 0x36	; 54
     d22:	80 69       	ori	r24, 0x90	; 144
     d24:	86 bf       	out	0x36, r24	; 54
     d26:	80 91 08 01 	lds	r24, 0x0108
     d2a:	8f 77       	andi	r24, 0x7F	; 127
     d2c:	80 93 08 01 	sts	0x0108, r24
     d30:	3b c0       	rjmp	.+118    	; 0xda8 <__vector_17+0x166>
     d32:	80 91 07 01 	lds	r24, 0x0107
     d36:	81 50       	subi	r24, 0x01	; 1
     d38:	80 93 07 01 	sts	0x0107, r24
     d3c:	80 91 07 01 	lds	r24, 0x0107
     d40:	88 23       	and	r24, r24
     d42:	21 f0       	breq	.+8      	; 0xd4c <__vector_17+0x10a>
     d44:	86 b7       	in	r24, 0x36	; 54
     d46:	80 6c       	ori	r24, 0xC0	; 192
     d48:	86 bf       	out	0x36, r24	; 54
     d4a:	2e c0       	rjmp	.+92     	; 0xda8 <__vector_17+0x166>
     d4c:	86 b7       	in	r24, 0x36	; 54
     d4e:	80 68       	ori	r24, 0x80	; 128
     d50:	86 bf       	out	0x36, r24	; 54
     d52:	2a c0       	rjmp	.+84     	; 0xda8 <__vector_17+0x166>
     d54:	e0 91 04 01 	lds	r30, 0x0104
     d58:	f0 91 05 01 	lds	r31, 0x0105
     d5c:	83 b1       	in	r24, 0x03	; 3
     d5e:	80 83       	st	Z, r24
     d60:	31 96       	adiw	r30, 0x01	; 1
     d62:	f0 93 05 01 	sts	0x0105, r31
     d66:	e0 93 04 01 	sts	0x0104, r30
     d6a:	80 91 07 01 	lds	r24, 0x0107
     d6e:	81 50       	subi	r24, 0x01	; 1
     d70:	80 93 07 01 	sts	0x0107, r24
     d74:	80 91 07 01 	lds	r24, 0x0107
     d78:	88 23       	and	r24, r24
     d7a:	21 f0       	breq	.+8      	; 0xd84 <__vector_17+0x142>
     d7c:	86 b7       	in	r24, 0x36	; 54
     d7e:	80 6c       	ori	r24, 0xC0	; 192
     d80:	86 bf       	out	0x36, r24	; 54
     d82:	12 c0       	rjmp	.+36     	; 0xda8 <__vector_17+0x166>
     d84:	86 b7       	in	r24, 0x36	; 54
     d86:	8f 7b       	andi	r24, 0xBF	; 191
     d88:	86 bf       	out	0x36, r24	; 54
     d8a:	0e c0       	rjmp	.+28     	; 0xda8 <__vector_17+0x166>
     d8c:	e0 91 04 01 	lds	r30, 0x0104
     d90:	f0 91 05 01 	lds	r31, 0x0105
     d94:	83 b1       	in	r24, 0x03	; 3
     d96:	80 83       	st	Z, r24
     d98:	86 b7       	in	r24, 0x36	; 54
     d9a:	80 69       	ori	r24, 0x90	; 144
     d9c:	86 bf       	out	0x36, r24	; 54
     d9e:	80 91 08 01 	lds	r24, 0x0108
     da2:	8f 77       	andi	r24, 0x7F	; 127
     da4:	80 93 08 01 	sts	0x0108, r24
     da8:	ff 91       	pop	r31
     daa:	ef 91       	pop	r30
     dac:	bf 91       	pop	r27
     dae:	af 91       	pop	r26
     db0:	9f 91       	pop	r25
     db2:	8f 91       	pop	r24
     db4:	0f 90       	pop	r0
     db6:	0f be       	out	0x3f, r0	; 63
     db8:	0f 90       	pop	r0
     dba:	1f 90       	pop	r1
     dbc:	18 95       	reti

00000dbe <CamConfig_writeTxFifo>:
     dbe:	20 91 0a 01 	lds	r18, 0x010A
     dc2:	e2 2f       	mov	r30, r18
     dc4:	ff 27       	eor	r31, r31
     dc6:	ee 0f       	add	r30, r30
     dc8:	ff 1f       	adc	r31, r31
     dca:	ec 52       	subi	r30, 0x2C	; 44
     dcc:	fd 4f       	sbci	r31, 0xFD	; 253
     dce:	91 83       	std	Z+1, r25	; 0x01
     dd0:	80 83       	st	Z, r24
     dd2:	2f 5f       	subi	r18, 0xFF	; 255
     dd4:	27 70       	andi	r18, 0x07	; 7
     dd6:	20 93 0a 01 	sts	0x010A, r18
     dda:	90 e0       	ldi	r25, 0x00	; 0
     ddc:	80 91 0b 01 	lds	r24, 0x010B
     de0:	28 17       	cp	r18, r24
     de2:	09 f4       	brne	.+2      	; 0xde6 <CamConfig_writeTxFifo+0x28>
     de4:	91 e0       	ldi	r25, 0x01	; 1
     de6:	81 e0       	ldi	r24, 0x01	; 1
     de8:	89 27       	eor	r24, r25
     dea:	99 27       	eor	r25, r25
     dec:	08 95       	ret

00000dee <CamConfig_setCamReg>:
     dee:	28 2f       	mov	r18, r24
     df0:	36 2f       	mov	r19, r22
     df2:	c9 01       	movw	r24, r18
     df4:	e4 df       	rcall	.-56     	; 0xdbe <CamConfig_writeTxFifo>
     df6:	08 95       	ret

00000df8 <CamConfig_sendFifoCmds>:
     df8:	0f 93       	push	r16
     dfa:	1f 93       	push	r17
     dfc:	cf 93       	push	r28
     dfe:	df 93       	push	r29
     e00:	cd b7       	in	r28, 0x3d	; 61
     e02:	de b7       	in	r29, 0x3e	; 62
     e04:	22 97       	sbiw	r28, 0x02	; 2
     e06:	0f b6       	in	r0, 0x3f	; 63
     e08:	f8 94       	cli
     e0a:	de bf       	out	0x3e, r29	; 62
     e0c:	0f be       	out	0x3f, r0	; 63
     e0e:	cd bf       	out	0x3d, r28	; 61
     e10:	8e 01       	movw	r16, r28
     e12:	0f 5f       	subi	r16, 0xFF	; 255
     e14:	1f 4f       	sbci	r17, 0xFF	; 255
     e16:	19 c0       	rjmp	.+50     	; 0xe4a <CamConfig_sendFifoCmds+0x52>
     e18:	e3 2f       	mov	r30, r19
     e1a:	ff 27       	eor	r31, r31
     e1c:	ee 0f       	add	r30, r30
     e1e:	ff 1f       	adc	r31, r31
     e20:	ec 52       	subi	r30, 0x2C	; 44
     e22:	fd 4f       	sbci	r31, 0xFD	; 253
     e24:	91 81       	ldd	r25, Z+1	; 0x01
     e26:	20 81       	ld	r18, Z
     e28:	83 2f       	mov	r24, r19
     e2a:	8f 5f       	subi	r24, 0xFF	; 255
     e2c:	87 70       	andi	r24, 0x07	; 7
     e2e:	80 93 0b 01 	sts	0x010B, r24
     e32:	9a 83       	std	Y+2, r25	; 0x02
     e34:	29 83       	std	Y+1, r18	; 0x01
     e36:	42 e0       	ldi	r20, 0x02	; 2
     e38:	b8 01       	movw	r22, r16
     e3a:	80 e6       	ldi	r24, 0x60	; 96
     e3c:	c5 de       	rcall	.-630    	; 0xbc8 <I2CInt_writeData>
     e3e:	84 e6       	ldi	r24, 0x64	; 100
     e40:	90 e0       	ldi	r25, 0x00	; 0
     e42:	25 d0       	rcall	.+74     	; 0xe8e <Utility_delay>
     e44:	f7 de       	rcall	.-530    	; 0xc34 <I2CInt_isI2cBusy>
     e46:	81 30       	cpi	r24, 0x01	; 1
     e48:	e9 f3       	breq	.-6      	; 0xe44 <CamConfig_sendFifoCmds+0x4c>
     e4a:	30 91 0b 01 	lds	r19, 0x010B
     e4e:	80 91 0a 01 	lds	r24, 0x010A
     e52:	83 17       	cp	r24, r19
     e54:	09 f7       	brne	.-62     	; 0xe18 <CamConfig_sendFifoCmds+0x20>
     e56:	22 96       	adiw	r28, 0x02	; 2
     e58:	0f b6       	in	r0, 0x3f	; 63
     e5a:	f8 94       	cli
     e5c:	de bf       	out	0x3e, r29	; 62
     e5e:	0f be       	out	0x3f, r0	; 63
     e60:	cd bf       	out	0x3d, r28	; 61
     e62:	df 91       	pop	r29
     e64:	cf 91       	pop	r28
     e66:	1f 91       	pop	r17
     e68:	0f 91       	pop	r16
     e6a:	08 95       	ret

00000e6c <CamConfig_init>:
     e6c:	60 e2       	ldi	r22, 0x20	; 32
     e6e:	84 e1       	ldi	r24, 0x14	; 20
     e70:	be df       	rcall	.-132    	; 0xdee <CamConfig_setCamReg>
     e72:	60 e4       	ldi	r22, 0x40	; 64
     e74:	89 e3       	ldi	r24, 0x39	; 57
     e76:	bb df       	rcall	.-138    	; 0xdee <CamConfig_setCamReg>
     e78:	68 e2       	ldi	r22, 0x28	; 40
     e7a:	82 e1       	ldi	r24, 0x12	; 18
     e7c:	b8 df       	rcall	.-144    	; 0xdee <CamConfig_setCamReg>
     e7e:	65 e0       	ldi	r22, 0x05	; 5
     e80:	88 e2       	ldi	r24, 0x28	; 40
     e82:	b5 df       	rcall	.-150    	; 0xdee <CamConfig_setCamReg>
     e84:	61 e0       	ldi	r22, 0x01	; 1
     e86:	83 e1       	ldi	r24, 0x13	; 19
     e88:	b2 df       	rcall	.-156    	; 0xdee <CamConfig_setCamReg>
     e8a:	b6 df       	rcall	.-148    	; 0xdf8 <CamConfig_sendFifoCmds>
     e8c:	08 95       	ret

00000e8e <Utility_delay>:
     e8e:	cf 93       	push	r28
     e90:	df 93       	push	r29
     e92:	cd b7       	in	r28, 0x3d	; 61
     e94:	de b7       	in	r29, 0x3e	; 62
     e96:	24 97       	sbiw	r28, 0x04	; 4
     e98:	0f b6       	in	r0, 0x3f	; 63
     e9a:	f8 94       	cli
     e9c:	de bf       	out	0x3e, r29	; 62
     e9e:	0f be       	out	0x3f, r0	; 63
     ea0:	cd bf       	out	0x3d, r28	; 61
     ea2:	9c 01       	movw	r18, r24
     ea4:	1a 82       	std	Y+2, r1	; 0x02
     ea6:	19 82       	std	Y+1, r1	; 0x01
     ea8:	1c 82       	std	Y+4, r1	; 0x04
     eaa:	1b 82       	std	Y+3, r1	; 0x03
     eac:	1a 82       	std	Y+2, r1	; 0x02
     eae:	19 82       	std	Y+1, r1	; 0x01
     eb0:	89 81       	ldd	r24, Y+1	; 0x01
     eb2:	9a 81       	ldd	r25, Y+2	; 0x02
     eb4:	82 17       	cp	r24, r18
     eb6:	93 07       	cpc	r25, r19
     eb8:	e0 f4       	brcc	.+56     	; 0xef2 <Utility_delay+0x64>
     eba:	1c 82       	std	Y+4, r1	; 0x04
     ebc:	1b 82       	std	Y+3, r1	; 0x03
     ebe:	8b 81       	ldd	r24, Y+3	; 0x03
     ec0:	9c 81       	ldd	r25, Y+4	; 0x04
     ec2:	88 5e       	subi	r24, 0xE8	; 232
     ec4:	93 40       	sbci	r25, 0x03	; 3
     ec6:	58 f4       	brcc	.+22     	; 0xede <Utility_delay+0x50>
     ec8:	00 00       	nop
     eca:	8b 81       	ldd	r24, Y+3	; 0x03
     ecc:	9c 81       	ldd	r25, Y+4	; 0x04
     ece:	01 96       	adiw	r24, 0x01	; 1
     ed0:	9c 83       	std	Y+4, r25	; 0x04
     ed2:	8b 83       	std	Y+3, r24	; 0x03
     ed4:	8b 81       	ldd	r24, Y+3	; 0x03
     ed6:	9c 81       	ldd	r25, Y+4	; 0x04
     ed8:	88 5e       	subi	r24, 0xE8	; 232
     eda:	93 40       	sbci	r25, 0x03	; 3
     edc:	a8 f3       	brcs	.-22     	; 0xec8 <Utility_delay+0x3a>
     ede:	89 81       	ldd	r24, Y+1	; 0x01
     ee0:	9a 81       	ldd	r25, Y+2	; 0x02
     ee2:	01 96       	adiw	r24, 0x01	; 1
     ee4:	9a 83       	std	Y+2, r25	; 0x02
     ee6:	89 83       	std	Y+1, r24	; 0x01
     ee8:	89 81       	ldd	r24, Y+1	; 0x01
     eea:	9a 81       	ldd	r25, Y+2	; 0x02
     eec:	82 17       	cp	r24, r18
     eee:	93 07       	cpc	r25, r19
     ef0:	20 f3       	brcs	.-56     	; 0xeba <Utility_delay+0x2c>
     ef2:	24 96       	adiw	r28, 0x04	; 4
     ef4:	0f b6       	in	r0, 0x3f	; 63
     ef6:	f8 94       	cli
     ef8:	de bf       	out	0x3e, r29	; 62
     efa:	0f be       	out	0x3f, r0	; 63
     efc:	cd bf       	out	0x3d, r28	; 61
     efe:	df 91       	pop	r29
     f00:	cf 91       	pop	r28
     f02:	08 95       	ret

00000f04 <DebugInt_init>:
     f04:	8e 9a       	sbi	0x11, 6	; 17
     f06:	96 9a       	sbi	0x12, 6	; 18
     f08:	84 ef       	ldi	r24, 0xF4	; 244
     f0a:	91 e0       	ldi	r25, 0x01	; 1
     f0c:	c0 df       	rcall	.-128    	; 0xe8e <Utility_delay>
     f0e:	96 98       	cbi	0x12, 6	; 18
     f10:	84 ef       	ldi	r24, 0xF4	; 244
     f12:	91 e0       	ldi	r25, 0x01	; 1
     f14:	bc df       	rcall	.-136    	; 0xe8e <Utility_delay>
     f16:	96 9a       	sbi	0x12, 6	; 18
     f18:	84 ef       	ldi	r24, 0xF4	; 244
     f1a:	91 e0       	ldi	r25, 0x01	; 1
     f1c:	b8 df       	rcall	.-144    	; 0xe8e <Utility_delay>
     f1e:	96 98       	cbi	0x12, 6	; 18
     f20:	84 ef       	ldi	r24, 0xF4	; 244
     f22:	91 e0       	ldi	r25, 0x01	; 1
     f24:	b4 df       	rcall	.-152    	; 0xe8e <Utility_delay>
     f26:	96 9a       	sbi	0x12, 6	; 18
     f28:	84 ef       	ldi	r24, 0xF4	; 244
     f2a:	91 e0       	ldi	r25, 0x01	; 1
     f2c:	b0 df       	rcall	.-160    	; 0xe8e <Utility_delay>
     f2e:	96 98       	cbi	0x12, 6	; 18
     f30:	84 ef       	ldi	r24, 0xF4	; 244
     f32:	91 e0       	ldi	r25, 0x01	; 1
     f34:	ac df       	rcall	.-168    	; 0xe8e <Utility_delay>
     f36:	96 9a       	sbi	0x12, 6	; 18
     f38:	08 95       	ret

00000f3a <CamIntAsm_waitForNewTrackingFrame>:
;		set, and the function will return.
;*****************************************************************
		
CamIntAsm_waitForNewTrackingFrame:
		sbi		_SFR_IO_ADDR(PORTD),PD6  ; For testing...
     f3a:	96 9a       	sbi	0x12, 6	; 18
		cbi		_SFR_IO_ADDR(PORTD),PD6		
     f3c:	96 98       	cbi	0x12, 6	; 18
		sleep
     f3e:	88 95       	sleep

00000f40 <CamIntAsm_acquireTrackingLine>:

;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
; synchronized with the flow of pixel data from the camera...
;*****************************************************************

CamIntAsm_acquireTrackingLine:
		brts	_cleanUp
     f40:	e6 f1       	brts	.+120    	; 0xfba <_cleanUp>
		;sbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...
		;cbi		_SFR_IO_ADDR(PORTD),PD6
        
        in      tmp1,_SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
     f42:	3e b5       	in	r19, 0x2e	; 46
        ori     tmp1, 0x07                 ; feed Timer1
     f44:	37 60       	ori	r19, 0x07	; 7
        out     _SFR_IO_ADDR(TCCR1B),tmp1 
     f46:	3e bd       	out	0x2e, r19	; 46
										; The line is about to start...		
		ldi     pixelCount,0			; Initialize the RLE stats...
     f48:	00 e0       	ldi	r16, 0x00	; 0
		ldi		pixelRunStart,PIXEL_RUN_START_INITIAL  	; Remember, we always calculate
     f4a:	10 e5       	ldi	r17, 0x50	; 80
														; the pixel run length as
														; TCNT1L - pixelRunStart
		
		ldi		lastColor,0x00				; clear out the last color before we start
     f4c:	20 e0       	ldi	r18, 0x00	; 0
		
		mov   	XH,currLineBuffHigh    	; Load the pointer to the current line
     f4e:	b9 2f       	mov	r27, r25
		mov		XL,currLineBuffLow		; buffer into the X pointer regs		 
     f50:	a8 2f       	mov	r26, r24
		
		mov   	ZH,colorMapHigh      	; Load the pointers to the membership
     f52:	f7 2f       	mov	r31, r23
		mov		ZL,colorMapLow			; lookup tables (ZL and YL will be overwritten
     f54:	e6 2f       	mov	r30, r22
		mov 	YH,colorMapHigh	 		; as soon as we start reading data) to Z and Y
     f56:	d7 2f       	mov	r29, r23
		
		in		tmp1, _SFR_IO_ADDR(TIMSK)			; enable TIMER1 to start counting
     f58:	39 b7       	in	r19, 0x39	; 57
		ori		tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK 	; external PCLK pulses and interrupt on 
     f5a:	34 60       	ori	r19, 0x04	; 4
		out		_SFR_IO_ADDR(TIMSK),tmp1			; overflow
     f5c:	39 bf       	out	0x39, r19	; 57
		
		ldi 	tmp1,PIXEL_RUN_START_INITIAL	; set up the TCNT1 to overflow (and
     f5e:	30 e5       	ldi	r19, 0x50	; 80
		ldi 	tmp2,0xFF 						; interrupts) after 176 pixels		
     f60:	4f ef       	ldi	r20, 0xFF	; 255
		out 	_SFR_IO_ADDR(TCNT1H),tmp2		
     f62:	4d bd       	out	0x2d, r20	; 45
		out 	_SFR_IO_ADDR(TCNT1L),tmp1				
     f64:	3c bd       	out	0x2c, r19	; 44
		
		mov		YL,colorMapLow		
     f66:	c6 2f       	mov	r28, r22
		
		in 		tmp1, _SFR_IO_ADDR(GICR)	; enable the HREF interrupt...remember, we
     f68:	3b b7       	in	r19, 0x3b	; 59
											; only use this interrupt to synchronize
											; the beginning of the line
		ori 	tmp1, HREF_INTERRUPT_ENABLE_MASK
     f6a:	30 68       	ori	r19, 0x80	; 128
		out		_SFR_IO_ADDR(GICR), tmp1
     f6c:	3b bf       	out	0x3b, r19	; 59

00000f6e <_trackFrame>:
		
;*******************************************************************************************
;   Track Frame handler 
;*******************************************************************************************		
		
_trackFrame:		
		sbi		_SFR_IO_ADDR(PORTD),PD6
     f6e:	96 9a       	sbi	0x12, 6	; 18
		sleep   ; ...And we wait...
     f70:	88 95       	sleep
		
	; Returning from the interrupt/sleep wakeup will consume
	; 14 clock cycles (7 to wakeup from idle sleep, 3 to vector, and 4 to return)	

	; Disable the HREF interrupt
		cbi		_SFR_IO_ADDR(PORTD),PD6
     f72:	96 98       	cbi	0x12, 6	; 18
		in 		tmp1, _SFR_IO_ADDR(GICR)
     f74:	3b b7       	in	r19, 0x3b	; 59
		andi 	tmp1, HREF_INTERRUPT_DISABLE_MASK
     f76:	3f 77       	andi	r19, 0x7F	; 127
		out		_SFR_IO_ADDR(GICR), tmp1
     f78:	3b bf       	out	0x3b, r19	; 59
		
	; A couple of NOPs are needed here to sync up the pixel data...the number (2)
	; of NOPs was determined emperically by trial and error.
		nop
     f7a:	00 00       	nop
	...

00000f7e <_acquirePixelBlock>:
		nop
_acquirePixelBlock:							;							Clock Cycle Count
		in		ZL,RB_PORT         			; sample the red value (PINB)		(1)
     f7e:	e6 b3       	in	r30, 0x16	; 22
		in		YL,G_PORT         			; sample the green value (PINC)		(1)
     f80:	c3 b3       	in	r28, 0x13	; 19
		andi	YL,0x0F            			; clear the high nibble				(1)
     f82:	cf 70       	andi	r28, 0x0F	; 15
		ldd		color,Z+RED_MEM_OFFSET  	; lookup the red membership			(2)
     f84:	30 81       	ld	r19, Z
		in		ZL,RB_PORT         			; sample the blue value (PINB)		(1)
     f86:	e6 b3       	in	r30, 0x16	; 22
		ldd		greenData,Y+GREEN_MEM_OFFSET; lookup the green membership		(2)
     f88:	48 89       	ldd	r20, Y+16	; 0x10
		ldd		blueData,Z+BLUE_MEM_OFFSET	; lookup the blue membership		(2)
     f8a:	50 a1       	ldd	r21, Z+32	; 0x20
		and		color,greenData 			; mask memberships together			(1)
     f8c:	34 23       	and	r19, r20
		and		color,blueData  			; to produce the final color		(1)
     f8e:	35 23       	and	r19, r21
		brts    _cleanUpTrackingLine		; if some interrupt routine has		(1...not set)
     f90:	76 f0       	brts	.+28     	; 0xfae <_cleanUpTrackingLine>
											; come in and set our T flag in 
											; SREG, then we need to hop out
											; and blow away this frames data (common cleanup)									
		cp		color,lastColor     		; check to see if the run continues	(1)
     f92:	32 17       	cp	r19, r18
		breq    _acquirePixelBlock  		;									(2...equal)
     f94:	a1 f3       	breq	.-24     	; 0xf7e <_acquirePixelBlock>
											;									___________
											;								16 clock cycles 		
											; (16 clock cycles = 1 uS = 1 pixelBlock time)
		
		; Toggle the debug line to indicate a color change
		sbi     _SFR_IO_ADDR(PORTD),PD6
     f96:	96 9a       	sbi	0x12, 6	; 18
		nop
     f98:	00 00       	nop
		cbi		_SFR_IO_ADDR(PORTD),PD6
     f9a:	96 98       	cbi	0x12, 6	; 18
		
		mov		tmp2,pixelRunStart				; get the count value of the
     f9c:	41 2f       	mov	r20, r17
												; current pixel run
		in		pixelCount,_SFR_IO_ADDR(TCNT1L)	; get the current TCNT1 value 
     f9e:	0c b5       	in	r16, 0x2c	; 44
		mov   	pixelRunStart,pixelCount		; reload pixelRunStart for the
     fa0:	10 2f       	mov	r17, r16
												; next run
		sub		pixelCount,tmp2     			; pixelCount = TCNT1L - pixelRunStart
     fa2:	04 1b       	sub	r16, r20
										
		st		X+,lastColor			; record the color run in the current line buffer
     fa4:	2d 93       	st	X+, r18
		st		X+,pixelCount			; with its length
     fa6:	0d 93       	st	X+, r16
		mov		lastColor,color			; set lastColor so we can figure out when it changes
     fa8:	23 2f       	mov	r18, r19
		
		nop								; waste one more cycle for a total of 16
     faa:	00 00       	nop
		rjmp	_acquirePixelBlock	
     fac:	e8 cf       	rjmp	.-48     	; 0xf7e <_acquirePixelBlock>

00000fae <_cleanUpTrackingLine>:
		
; _cleanUpTrackingLine is used to write the last run length block off to the currentLineBuffer so
; that all 176 pixels in the line are accounted for.
_cleanUpTrackingLine:		
		ldi		pixelCount,0xFF		; the length of the last run is ALWAYS 0xFF minus the last
     fae:	0f ef       	ldi	r16, 0xFF	; 255
		sub		pixelCount,pixelRunStart  	; pixelRunStart
     fb0:	01 1b       	sub	r16, r17
		
		inc		pixelCount				; increment pixelCount since we actually need to account
     fb2:	03 95       	inc	r16
										; for the overflow of TCNT1
										
		st		X+,color				; record the color run in the current line buffer
     fb4:	3d 93       	st	X+, r19
		st		X,pixelCount		
     fb6:	0c 93       	st	X, r16
		rjmp	_cleanUp
     fb8:	00 c0       	rjmp	.+0      	; 0xfba <_cleanUp>

00000fba <_cleanUp>:
		
_cleanUpDumpLine:		
		; NOTE: If serial data is received, to interrupt the tracking of a line, we'll
		; get a EV_SERIAL_DATA_RECEIVED event, and the T bit set so we will end the
		; line's processing...however, the PCLK will keep on ticking for the rest of
		; the frame/line, which will cause the TCNT to eventually overflow and
		; interrupt us, generating a EV_ACQUIRE_LINE_COMPLETE event.  We don't want
		; this, so we need to actually turn off the PCLK counting each time we exit
		; this loop, and only turn it on when we begin acquiring lines....
        ; NOT NEEDED FOR NOW...
		;in		tmp1, _SFR_IO_ADDR(TIMSK)			; disable TIMER1 to stop counting
		;andi	tmp1, DISABLE_PCLK_TIMER1_OVERFLOW_BITMASK 	; external PCLK pulses
		;out		_SFR_IO_ADDR(TIMSK),tmp1

_cleanUp:
        ; Disable the external clocking of the Timer1 counter 
        in      tmp1, _SFR_IO_ADDR(TCCR1B)
     fba:	3e b5       	in	r19, 0x2e	; 46
        andi    tmp1, 0xF8
     fbc:	38 7f       	andi	r19, 0xF8	; 248
        out     _SFR_IO_ADDR(TCCR1B),tmp1
     fbe:	3e bd       	out	0x2e, r19	; 46
		
		; Toggle the debug line to indicate the line is complete
		sbi     _SFR_IO_ADDR(PORTD),PD6
     fc0:	96 9a       	sbi	0x12, 6	; 18
		cbi		_SFR_IO_ADDR(PORTD),PD6
     fc2:	96 98       	cbi	0x12, 6	; 18
		clt				; clear out the T bit since we have detected
     fc4:	e8 94       	clt

00000fc6 <_exit>:
						; the interruption and are exiting to handle it
_exit:
		ret
     fc6:	08 95       	ret

00000fc8 <CamIntAsm_waitForNewDumpFrame>:
		
;*****************************************************************		
;   	Function Name: CamIntAsm_waitForNewDumpFrame
;       Function Description: This function is responsible for
;       going to sleep until a new frame begins (indicated by
;    	VSYNC transitioning from low to high.  This will wake
;       the "VSYNC sleep" up and allow it to continue with 
;       acquiring a line of pixel data to dump out to the UI.
;       Inputs:  r25 - MSB of currentLineBuffer
;                r24 - LSB of currentLineBuffer
;				 r23 - MSB of prevLineBuffer
;				 r22 - LSB of prevLineBuffer
;       Outputs: none
;       NOTES: This function doesn't really return...it sorta just
;       floats into the acquireDumpLine function after the "VSYNC sleep"
;       is awoken.
;*****************************************************************		
CamIntAsm_waitForNewDumpFrame:
		sbi		_SFR_IO_ADDR(PORTD),PD6  ; For testing...
     fc8:	96 9a       	sbi	0x12, 6	; 18
		cbi		_SFR_IO_ADDR(PORTD),PD6
     fca:	96 98       	cbi	0x12, 6	; 18
		sleep
     fcc:	88 95       	sleep

00000fce <CamIntAsm_acquireDumpLine>:

;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
; synchronized with the flow of pixel data from the camera...
;*****************************************************************

CamIntAsm_acquireDumpLine:
		brts	_cleanUp
     fce:	ae f3       	brts	.-22     	; 0xfba <_cleanUp>
		;sbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...
		;cbi		_SFR_IO_ADDR(PORTD),PD6
		
		mov   	XH,currLineBuffHigh    	; Load the pointer to the current line
     fd0:	b9 2f       	mov	r27, r25
		mov		XL,currLineBuffLow		; buffer into the X pointer regs
     fd2:	a8 2f       	mov	r26, r24

		mov		YH,prevLineBuffHigh		; Load the pointer to the previous line
     fd4:	d7 2f       	mov	r29, r23
		mov		YL,prevLineBuffLow  	; buffer into the Y pointer regs
     fd6:	c6 2f       	mov	r28, r22
		
		ldi 	tmp1,PIXEL_RUN_START_INITIAL	; set up the TCNT1 to overflow (and
     fd8:	30 e5       	ldi	r19, 0x50	; 80
		ldi 	tmp2,0xFF 						; interrupts) after 176 pixels		
     fda:	4f ef       	ldi	r20, 0xFF	; 255
		out 	_SFR_IO_ADDR(TCNT1H),tmp2		
     fdc:	4d bd       	out	0x2d, r20	; 45
		out 	_SFR_IO_ADDR(TCNT1L),tmp1		
     fde:	3c bd       	out	0x2c, r19	; 44
		
        in      tmp1, _SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
     fe0:	3e b5       	in	r19, 0x2e	; 46
        ori     tmp1, 0x07                 ; feed Timer1
     fe2:	37 60       	ori	r19, 0x07	; 7
        out     _SFR_IO_ADDR(TCCR1B),tmp1
     fe4:	3e bd       	out	0x2e, r19	; 46
        nop
     fe6:	00 00       	nop
        
		in		tmp1, _SFR_IO_ADDR(TIMSK)			; enable TIMER1 to start counting
     fe8:	39 b7       	in	r19, 0x39	; 57
		ori		tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK 	; external PCLK pulses and interrupt on 
     fea:	34 60       	ori	r19, 0x04	; 4
		out		_SFR_IO_ADDR(TIMSK),tmp1			; overflow			
     fec:	39 bf       	out	0x39, r19	; 57
		
		in 		tmp1, _SFR_IO_ADDR(GICR)	; enable the HREF interrupt...remember, we
     fee:	3b b7       	in	r19, 0x3b	; 59
											; only use this interrupt to synchronize
											; the beginning of the line
		ori 	tmp1, HREF_INTERRUPT_ENABLE_MASK
     ff0:	30 68       	ori	r19, 0x80	; 128
		out		_SFR_IO_ADDR(GICR), tmp1
     ff2:	3b bf       	out	0x3b, r19	; 59

00000ff4 <_dumpFrame>:
		
;*******************************************************************************************
;   Dump Frame handler 
;*******************************************************************************************		
		
_dumpFrame:		
		sbi		_SFR_IO_ADDR(PORTD),PD6
     ff4:	96 9a       	sbi	0x12, 6	; 18
		sleep   ; ...And we wait...
     ff6:	88 95       	sleep

		cbi		_SFR_IO_ADDR(PORTD),PD6
     ff8:	96 98       	cbi	0x12, 6	; 18
		in 		tmp1, _SFR_IO_ADDR(GICR)			; disable the HREF interrupt
     ffa:	3b b7       	in	r19, 0x3b	; 59
		andi 	tmp1, HREF_INTERRUPT_DISABLE_MASK  	; so we don't get interrupted
     ffc:	3f 77       	andi	r19, 0x7F	; 127
		out		_SFR_IO_ADDR(GICR), tmp1			; while dumping the line
     ffe:	3b bf       	out	0x3b, r19	; 59
	...

00001002 <_sampleDumpPixel>:
	
		nop		; Remember...if we ever remove the "cbi" instruction above,
				; we need to add two more NOPs to cover this
    
; Ok...the following loop needs to run in 8 clock cycles, so we can get every
; pixel in the line...this shouldn't be a problem, since the PCLK timing was
; reduced by a factor of 2 whenever we go to dump a line (this is to give us
; enough time to do the sampling and storing of the pixel data).  In addition,
; it is assumed that we will have to do some minor processing on the data right
; before we send it out, like mask off the top 4-bits of each, and then pack both
; low nibbles into a single byte for transmission...we just don't have time to
; do that here (only 8 instruction cycles :-)  )
_sampleDumpPixel:
		in		tmp1,G_PORT				; sample the G value					(1)
    1002:	33 b3       	in	r19, 0x13	; 19
		in		tmp2,RB_PORT			; sample the R/B value					(1)
    1004:	46 b3       	in	r20, 0x16	; 22
		st		X+,tmp1					; store to the currLineBuff and inc ptrs(2)
    1006:	3d 93       	st	X+, r19
		st		Y+,tmp2					; store to the prevLineBuff and inc ptrs(2)
    1008:	49 93       	st	Y+, r20
		brtc	_sampleDumpPixel		; loop back unless flag is set			(2...if not set)
    100a:	de f7       	brtc	.-10     	; 0x1002 <_sampleDumpPixel>
										;									___________
										;									8 cycles normally
																			
		; if we make it here, it means the T flag is set, and we must have been interrupted
		; so we need to exit (what if we were interrupted for serial? should we disable it?)
		rjmp	_cleanUpDumpLine
    100c:	d6 cf       	rjmp	.-84     	; 0xfba <_cleanUp>

0000100e <__vector_1>:

;***********************************************************
;	Function Name: <interrupt handler for External Interrupt0> 
;	Function Description: This function is responsible
;	for handling a rising edge on the Ext Interrupt 0.  This
;	routine simply returns, since we just want to wake up
;	whenever the VSYNC transitions (meaning the start of a new
;	frame).
;	Inputs:  none
;	Outputs: none
;***********************************************************
SIG_INTERRUPT0:
; This will wake us up when VSYNC transitions high...we just want to return
		reti
    100e:	18 95       	reti

00001010 <__vector_2>:
		
;***********************************************************
;	Function Name: <interrupt handler for External Interrupt1> 
;	Function Description: This function is responsible
;	for handling a falling edge on the Ext Interrupt 1.  This
;	routine simply returns, since we just want to wake up
;	whenever the HREF transitions (meaning the pixels 
;	are starting after VSYNC transitioned, and we need to
; 	start acquiring the pixel blocks
;	Inputs:  none
;	Outputs: none
;***********************************************************	
SIG_INTERRUPT1:
; This will wake us up when HREF transitions high...we just want to return
		reti
    1010:	18 95       	reti

00001012 <__vector_8>:
		
;***********************************************************
;	Function Name: <interrupt handler for Timer0 overflow>
;	Function Description: This function is responsible
;	for handling the Timer0 overflow (hooked up to indicate
;	when we have reached the number of HREFs required in a
;	single frame).  We set the T flag in the SREG to
;	indicate to the _acquirePixelBlock routine that it needs
;	to exit, and then set the appropriate action to take in
;	the eventList of the Executive module.
;	Inputs:  none
;	Outputs: none
;   Note: Originally, the HREF pulses were also going to
;   be counted by a hardware counter, but it didn't end up
;   being necessary
;***********************************************************
;SIG_OVERFLOW0:
;		set				; set the T bit in SREG
;		lds		tmp1,eventBitmask
;		ori		tmp1,EV_ACQUIRE_FRAME_COMPLETE
;		sts		eventBitmask,tmp1
;		reti
		
;***********************************************************
;	Function Name: <interrupt handler for Timer1 overflow>
;	Function Description: This function is responsible
;	for handling the Timer1 overflow (hooked up to indicate
;	when we have reached the end of a line of pixel data,
;	since PCLK is hooked up to overflow TCNT1 after 176 
;	pixels).  This routine generates an acquire line complete
;	event in the fastEventBitmask, which is streamlined for
;	efficiency reasons.
;***********************************************************
SIG_OVERFLOW1:				
		lds		tmp1,fastEventBitmask   		; set a flag indicating
    1012:	30 91 72 00 	lds	r19, 0x0072
		ori		tmp1,FEV_ACQUIRE_LINE_COMPLETE	; a line is complete
    1016:	31 60       	ori	r19, 0x01	; 1
		sts		fastEventBitmask,tmp1
    1018:	30 93 72 00 	sts	0x0072, r19
		set		; set the T bit in SREG 
    101c:	68 94       	set
		;sbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...
		;cbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...

		reti
    101e:	18 95       	reti

00001020 <__vector_default>:

; This is the default handler for all interrupts that don't
; have handler routines specified for them.
        .global __vector_default              
__vector_default:
        reti
    1020:	18 95       	reti

00001022 <atoi>:
    1022:	fc 01       	movw	r30, r24
    1024:	88 27       	eor	r24, r24
    1026:	99 27       	eor	r25, r25
    1028:	e8 94       	clt
    102a:	21 91       	ld	r18, Z+
    102c:	22 23       	and	r18, r18
    102e:	e9 f0       	breq	.+58     	; 0x106a <atoi+0x48>
    1030:	20 32       	cpi	r18, 0x20	; 32
    1032:	d9 f3       	breq	.-10     	; 0x102a <atoi+0x8>
    1034:	29 30       	cpi	r18, 0x09	; 9
    1036:	c9 f3       	breq	.-14     	; 0x102a <atoi+0x8>
    1038:	2a 30       	cpi	r18, 0x0A	; 10
    103a:	b9 f3       	breq	.-18     	; 0x102a <atoi+0x8>
    103c:	2c 30       	cpi	r18, 0x0C	; 12
    103e:	a9 f3       	breq	.-22     	; 0x102a <atoi+0x8>
    1040:	2d 30       	cpi	r18, 0x0D	; 13
    1042:	99 f3       	breq	.-26     	; 0x102a <atoi+0x8>
    1044:	26 37       	cpi	r18, 0x76	; 118
    1046:	89 f3       	breq	.-30     	; 0x102a <atoi+0x8>
    1048:	2b 32       	cpi	r18, 0x2B	; 43
    104a:	19 f0       	breq	.+6      	; 0x1052 <atoi+0x30>
    104c:	2d 32       	cpi	r18, 0x2D	; 45
    104e:	21 f4       	brne	.+8      	; 0x1058 <atoi+0x36>
    1050:	68 94       	set
    1052:	21 91       	ld	r18, Z+
    1054:	22 23       	and	r18, r18
    1056:	49 f0       	breq	.+18     	; 0x106a <atoi+0x48>
    1058:	20 33       	cpi	r18, 0x30	; 48
    105a:	3c f0       	brlt	.+14     	; 0x106a <atoi+0x48>
    105c:	2a 33       	cpi	r18, 0x3A	; 58
    105e:	2c f4       	brge	.+10     	; 0x106a <atoi+0x48>
    1060:	20 53       	subi	r18, 0x30	; 48
    1062:	0b d0       	rcall	.+22     	; 0x107a <__mulhi_const_10>
    1064:	82 0f       	add	r24, r18
    1066:	91 1d       	adc	r25, r1
    1068:	f4 cf       	rjmp	.-24     	; 0x1052 <atoi+0x30>
    106a:	81 15       	cp	r24, r1
    106c:	91 05       	cpc	r25, r1
    106e:	21 f0       	breq	.+8      	; 0x1078 <atoi+0x56>
    1070:	1e f4       	brtc	.+6      	; 0x1078 <atoi+0x56>
    1072:	80 95       	com	r24
    1074:	90 95       	com	r25
    1076:	01 96       	adiw	r24, 0x01	; 1
    1078:	08 95       	ret

0000107a <__mulhi_const_10>:
    107a:	7a e0       	ldi	r23, 0x0A	; 10
    107c:	97 9f       	mul	r25, r23
    107e:	90 2d       	mov	r25, r0
    1080:	87 9f       	mul	r24, r23
    1082:	80 2d       	mov	r24, r0
    1084:	91 0d       	add	r25, r1
    1086:	11 24       	eor	r1, r1
    1088:	08 95       	ret

0000108a <__eeprom_read_byte_1C1D1E>:
    108a:	e1 99       	sbic	0x1c, 1	; 28
    108c:	fe cf       	rjmp	.-4      	; 0x108a <__eeprom_read_byte_1C1D1E>
    108e:	bf bb       	out	0x1f, r27	; 31
    1090:	ae bb       	out	0x1e, r26	; 30
    1092:	e0 9a       	sbi	0x1c, 0	; 28
    1094:	11 96       	adiw	r26, 0x01	; 1
    1096:	0d b2       	in	r0, 0x1d	; 29
    1098:	08 95       	ret

0000109a <__eeprom_read_block_1C1D1E>:
    109a:	f7 df       	rcall	.-18     	; 0x108a <__eeprom_read_byte_1C1D1E>
    109c:	01 92       	st	Z+, r0
    109e:	1a 94       	dec	r1
    10a0:	e1 f7       	brne	.-8      	; 0x109a <__eeprom_read_block_1C1D1E>
    10a2:	08 95       	ret

000010a4 <__eeprom_write_byte_1C1D1E>:
    10a4:	e1 99       	sbic	0x1c, 1	; 28
    10a6:	fe cf       	rjmp	.-4      	; 0x10a4 <__eeprom_write_byte_1C1D1E>
    10a8:	bf bb       	out	0x1f, r27	; 31
    10aa:	ae bb       	out	0x1e, r26	; 30
    10ac:	0d ba       	out	0x1d, r0	; 29
    10ae:	11 96       	adiw	r26, 0x01	; 1
    10b0:	0f b6       	in	r0, 0x3f	; 63
    10b2:	f8 94       	cli
    10b4:	e2 9a       	sbi	0x1c, 2	; 28
    10b6:	e1 9a       	sbi	0x1c, 1	; 28
    10b8:	0f be       	out	0x3f, r0	; 63
    10ba:	08 95       	ret

000010bc <_exit>:
    10bc:	ff cf       	rjmp	.-2      	; 0x10bc <_exit>
